From ffa7d7659bbda5414e65f81d4c86515e1e90c7b7 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Thu, 21 Feb 2019 18:07:31 +0100 Subject: [PATCH 001/653] Added the share_string field --- view/theme/frio/config.php | 3 +++ view/theme/frio/templates/theme_settings.tpl | 1 + 2 files changed, 4 insertions(+) diff --git a/view/theme/frio/config.php b/view/theme/frio/config.php index dcf38d423..c1ac98286 100644 --- a/view/theme/frio/config.php +++ b/view/theme/frio/config.php @@ -57,6 +57,7 @@ function theme_content(App $a) $arr = []; $arr['scheme'] = PConfig::get(local_user(), 'frio', 'scheme', PConfig::get(local_user(), 'frio', 'schema')); + $arr['share_string'] = ''; $arr['nav_bg'] = PConfig::get(local_user(), 'frio', 'nav_bg'); $arr['nav_icon_color'] = PConfig::get(local_user(), 'frio', 'nav_icon_color'); $arr['link_color'] = PConfig::get(local_user(), 'frio', 'link_color'); @@ -76,6 +77,7 @@ function theme_admin(App $a) $arr = []; $arr['scheme'] = Config::get('frio', 'scheme', Config::get('frio', 'scheme')); + $arr['share_string'] = ''; $arr['nav_bg'] = Config::get('frio', 'nav_bg'); $arr['nav_icon_color'] = Config::get('frio', 'nav_icon_color'); $arr['link_color'] = Config::get('frio', 'link_color'); @@ -120,6 +122,7 @@ function frio_form($arr) '$baseurl' => System::baseUrl(), '$title' => L10n::t('Theme settings'), '$scheme' => ['frio_scheme', L10n::t('Select color scheme'), $arr['scheme'], '', $scheme_choices], + '$share_string' => ['frio_share_string', L10n::t('Copy or paste schemestring'), $arr['share_string'], L10n::t('You can copy this string to share your theme with others. Pasting here applies the schemestring'), false, false], '$nav_bg' => array_key_exists('nav_bg', $disable) ? '' : ['frio_nav_bg', L10n::t('Navigation bar background color'), $arr['nav_bg'], '', false], '$nav_icon_color' => array_key_exists('nav_icon_color', $disable) ? '' : ['frio_nav_icon_color', L10n::t('Navigation bar icon color '), $arr['nav_icon_color'], '', false], '$link_color' => array_key_exists('link_color', $disable) ? '' : ['frio_link_color', L10n::t('Link color'), $arr['link_color'], '', false], diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index 50a8934d1..4f26e090e 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -6,6 +6,7 @@ {{include file="field_select.tpl" field=$scheme}} +{{if $nav_bg}}{{include file="field_input.tpl" field=$share_string}}{{/if}} {{if $nav_bg}}{{include file="field_colorinput.tpl" field=$nav_bg}}{{/if}} {{if $nav_icon_color}}{{include file="field_colorinput.tpl" field=$nav_icon_color}}{{/if}} {{if $link_color}}{{include file="field_colorinput.tpl" field=$link_color}}{{/if}} From 1e84411e84756c3aa267fa0dfeb0003aafa72db2 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Thu, 21 Feb 2019 18:37:11 +0100 Subject: [PATCH 002/653] Added string creation --- view/theme/frio/templates/theme_settings.tpl | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index 4f26e090e..0598c7e48 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -37,6 +37,19 @@ From 10a8d6a563d1efd44cb730e53dc4117a7ec3db86 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 22 Feb 2019 12:16:48 +0100 Subject: [PATCH 005/653] Implemented parsing share string --- view/theme/frio/templates/theme_settings.tpl | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index 9f780471e..1e1485586 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -77,6 +77,37 @@ window.setInterval(GenerateShareString, 500); GenerateShareString(); + $(document).on("keyup", "#id_frio_share_string", function() { + theme = JSON.parse($("#id_frio_share_string").val()); + + if ($("#id_frio_nav_bg").length) { + $("#id_frio_nav_bg").val(theme.nav_bg); + } + + if ($("#id_frio_nav_icon_color").length) { + $("#id_frio_nav_icon_color").val(theme.nav_icon_color); + } + + if ($("#id_frio_link_color").length) { + $("#id_frio_link_color").val(theme.link_color); + } + + if ($("#id_frio_background_color").length) { + $("#id_frio_background_color").val(theme.background_color); + } + + if ($("#frio_contentbg_transp").length) { + $("#frio_contentbg_transp").val(theme.contentbg_transp); + } + + if ($("#id_frio_login_bg_image").length) { + $("#id_frio_login_bg_image").val(theme.login_bg_image); + } + + if ($("#id_frio_login_bg_color").length) { + $("#id_frio_login_bg_color").val(theme.login_bg_color); + } + }); // Create colorpickers $("#frio_nav_bg, #frio_nav_icon_color, #frio_background_color, #frio_link_color, #frio_login_bg_color").colorpicker({format: 'hex', align: 'left'}); From 3af3887bfae73934604af40168a2d0dab5eff541 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 22 Feb 2019 12:42:51 +0100 Subject: [PATCH 006/653] Added background image sharing Why did I miss this? --- view/theme/frio/templates/theme_settings.tpl | 44 ++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index 1e1485586..44817449d 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -57,6 +57,25 @@ theme.background_color = $("#id_frio_background_color").val(); } + if ($("#id_frio_background_image").length) { + theme.background_image = $("#id_frio_background_image").val(); + + var elText = theme.background_image; + + if ($("#id_frio_bg_image_option_stretch").is(":checked") == true) { + theme.background_image_option = "stretch"; + } + if ($("#id_frio_bg_image_option_cover").is(":checked") == true) { + theme.background_image_option = "cover"; + } + if ($("#id_frio_bg_image_option_contain").is(":checked") == true) { + theme.background_image_option = "contain"; + } + if ($("#id_frio_bg_image_option_repeat").is(":checked") == true) { + theme.background_image_option = "repeat"; + } + } + if ($("#frio_contentbg_transp").length) { theme.contentbg_transp = $("#frio_contentbg_transp").val(); } @@ -96,6 +115,31 @@ $("#id_frio_background_color").val(theme.background_color); } + if ($("#id_frio_background_image").length) { + $("#id_frio_background_image").val(theme.background_image); + var elText = theme.background_image; + if(elText.length !== 0) { + $("#frio_bg_image_options").show(); + } else { + $("#frio_bg_image_options").hide(); + } + + switch (theme.background_image_option) { + case 'stretch': + $("#id_frio_bg_image_option_stretch").prop("checked", true); + break; + case 'cover': + $("#id_frio_bg_image_option_cover").prop("checked", true); + break; + case 'contain': + $("#id_frio_bg_image_option_contain").prop("checked", true); + break; + case 'repeat': + $("#id_frio_bg_image_option_repeat").prop("checked", true); + break; + } + } + if ($("#frio_contentbg_transp").length) { $("#frio_contentbg_transp").val(theme.contentbg_transp); } From 42769c69765920d5addf5321c34da2883fe96fef Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 22 Feb 2019 12:59:44 +0100 Subject: [PATCH 007/653] Changed spaces into tabs --- view/theme/frio/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/theme/frio/config.php b/view/theme/frio/config.php index c1ac98286..7ac7f489e 100644 --- a/view/theme/frio/config.php +++ b/view/theme/frio/config.php @@ -57,7 +57,7 @@ function theme_content(App $a) $arr = []; $arr['scheme'] = PConfig::get(local_user(), 'frio', 'scheme', PConfig::get(local_user(), 'frio', 'schema')); - $arr['share_string'] = ''; + $arr['share_string'] = ''; $arr['nav_bg'] = PConfig::get(local_user(), 'frio', 'nav_bg'); $arr['nav_icon_color'] = PConfig::get(local_user(), 'frio', 'nav_icon_color'); $arr['link_color'] = PConfig::get(local_user(), 'frio', 'link_color'); From 1c33c2094079a1aa93a9bcefe0437ec46e24a089 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 22 Feb 2019 13:11:10 +0100 Subject: [PATCH 008/653] Add a comment --- view/theme/frio/templates/theme_settings.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index 44817449d..eaa71d3fe 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -96,6 +96,7 @@ window.setInterval(GenerateShareString, 500); GenerateShareString(); + // Take advantage of the effects of previous comment $(document).on("keyup", "#id_frio_share_string", function() { theme = JSON.parse($("#id_frio_share_string").val()); From a8cc4b3362d809f0cefb3ebf08392ed7142961ca Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 22 Feb 2019 14:13:07 +0100 Subject: [PATCH 009/653] I will not share options that are not being used. --- view/theme/frio/templates/theme_settings.tpl | 58 ++++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index eaa71d3fe..656d8dee8 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -60,20 +60,20 @@ if ($("#id_frio_background_image").length) { theme.background_image = $("#id_frio_background_image").val(); - var elText = theme.background_image; - - if ($("#id_frio_bg_image_option_stretch").is(":checked") == true) { - theme.background_image_option = "stretch"; - } - if ($("#id_frio_bg_image_option_cover").is(":checked") == true) { - theme.background_image_option = "cover"; - } - if ($("#id_frio_bg_image_option_contain").is(":checked") == true) { - theme.background_image_option = "contain"; - } - if ($("#id_frio_bg_image_option_repeat").is(":checked") == true) { - theme.background_image_option = "repeat"; - } + if (theme.background_image.length > 0) { + if ($("#id_frio_bg_image_option_stretch").is(":checked") == true) { + theme.background_image_option = "stretch"; + } + if ($("#id_frio_bg_image_option_cover").is(":checked") == true) { + theme.background_image_option = "cover"; + } + if ($("#id_frio_bg_image_option_contain").is(":checked") == true) { + theme.background_image_option = "contain"; + } + if ($("#id_frio_bg_image_option_repeat").is(":checked") == true) { + theme.background_image_option = "repeat"; + } + } } if ($("#frio_contentbg_transp").length) { @@ -121,23 +121,23 @@ var elText = theme.background_image; if(elText.length !== 0) { $("#frio_bg_image_options").show(); - } else { - $("#frio_bg_image_options").hide(); - } + } else { + $("#frio_bg_image_options").hide(); + } switch (theme.background_image_option) { - case 'stretch': - $("#id_frio_bg_image_option_stretch").prop("checked", true); - break; - case 'cover': - $("#id_frio_bg_image_option_cover").prop("checked", true); - break; - case 'contain': - $("#id_frio_bg_image_option_contain").prop("checked", true); - break; - case 'repeat': - $("#id_frio_bg_image_option_repeat").prop("checked", true); - break; + case 'stretch': + $("#id_frio_bg_image_option_stretch").prop("checked", true); + break; + case 'cover': + $("#id_frio_bg_image_option_cover").prop("checked", true); + break; + case 'contain': + $("#id_frio_bg_image_option_contain").prop("checked", true); + break; + case 'repeat': + $("#id_frio_bg_image_option_repeat").prop("checked", true); + break; } } From bf04bccc77fed52a798b580f0f566d3dd27ef849 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Fri, 22 Feb 2019 16:44:12 +0100 Subject: [PATCH 010/653] No schemestring update if focus --- view/theme/frio/templates/theme_settings.tpl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index 656d8dee8..1c870c92b 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -87,9 +87,10 @@ if ($("#id_frio_login_bg_color").length) { theme.login_bg_color = $("#id_frio_login_bg_color").val(); } - - var share_string = JSON.stringify(theme); - $("#id_frio_share_string").val(share_string); + if (!($("#id_frio_share_string").is(":focus"))){ + var share_string = JSON.stringify(theme); + $("#id_frio_share_string").val(share_string); + } } // interval because jquery.val does not trigger events From ef850a05674fea868e76202e0255d14e314aa39b Mon Sep 17 00:00:00 2001 From: Adam Clark Date: Fri, 22 Feb 2019 12:01:01 -0800 Subject: [PATCH 011/653] Updated Bootstrap to 3.4.1 --- .../bootstrap/css/bootstrap-theme.css | 200 ++-- .../bootstrap/css/bootstrap-theme.css.map | 2 +- .../bootstrap/css/bootstrap-theme.min.css | 6 +- .../bootstrap/css/bootstrap-theme.min.css.map | 2 +- .../frameworks/bootstrap/css/bootstrap.css | 988 ++++++++++-------- .../bootstrap/css/bootstrap.css.map | 2 +- .../bootstrap/css/bootstrap.min.css | 6 +- .../bootstrap/css/bootstrap.min.css.map | 2 +- .../frio/frameworks/bootstrap/js/bootstrap.js | 431 ++++++-- .../frameworks/bootstrap/js/bootstrap.min.js | 7 +- 10 files changed, 968 insertions(+), 678 deletions(-) diff --git a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css index ebe57fbf6..ea33f76a7 100644 --- a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css +++ b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ .btn-default, @@ -9,9 +9,9 @@ .btn-info, .btn-warning, .btn-danger { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); } .btn-default:active, .btn-primary:active, @@ -25,8 +25,8 @@ .btn-info.active, .btn-warning.active, .btn-danger.active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .btn-default.disabled, .btn-primary.disabled, @@ -47,7 +47,7 @@ fieldset[disabled] .btn-info, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-danger { -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .btn-default .badge, .btn-primary .badge, @@ -62,15 +62,15 @@ fieldset[disabled] .btn-danger { background-image: none; } .btn-default { - text-shadow: 0 1px 0 #fff; background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); - background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); + background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; border-color: #dbdbdb; + text-shadow: 0 1px 0 #fff; border-color: #ccc; } .btn-default:hover, @@ -106,9 +106,9 @@ fieldset[disabled] .btn-default.active { } .btn-primary { background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); - background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; @@ -147,9 +147,9 @@ fieldset[disabled] .btn-primary.active { } .btn-success { background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; @@ -188,9 +188,9 @@ fieldset[disabled] .btn-success.active { } .btn-info { background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; @@ -229,9 +229,9 @@ fieldset[disabled] .btn-info.active { } .btn-warning { background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; @@ -270,9 +270,9 @@ fieldset[disabled] .btn-warning.active { } .btn-danger { background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; @@ -311,81 +311,81 @@ fieldset[disabled] .btn-danger.active { } .thumbnail, .img-thumbnail { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { - background-color: #e8e8e8; background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); background-repeat: repeat-x; + background-color: #e8e8e8; } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { - background-color: #2e6da4; background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); background-repeat: repeat-x; + background-color: #2e6da4; } .navbar-default { - background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); - background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); + background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); } .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .active > a { background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); - background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075); } .navbar-brand, .navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255, 255, 255, .25); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); } .navbar-inverse { background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); - background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); border-radius: 4px; } .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .active > a { background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); - background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25); } .navbar-inverse .navbar-brand, .navbar-inverse .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); } .navbar-static-top, .navbar-fixed-top, @@ -398,120 +398,120 @@ fieldset[disabled] .btn-danger.active { .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff; background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); background-repeat: repeat-x; } } .alert { - text-shadow: 0 1px 0 rgba(255, 255, 255, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); } .alert-success { background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); background-repeat: repeat-x; border-color: #b2dba1; } .alert-info { background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); background-repeat: repeat-x; border-color: #9acfea; } .alert-warning { background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); background-repeat: repeat-x; border-color: #f5e79e; } .alert-danger { background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); - background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); background-repeat: repeat-x; border-color: #dca7a7; } .progress { background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); background-repeat: repeat-x; } .progress-bar { background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); - background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); background-repeat: repeat-x; } .progress-bar-success { background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); background-repeat: repeat-x; } .progress-bar-info { background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); background-repeat: repeat-x; } .progress-bar-warning { background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); background-repeat: repeat-x; } .progress-bar-danger { background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); background-repeat: repeat-x; } .progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .list-group { border-radius: 4px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); } .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { text-shadow: 0 -1px 0 #286090; background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); background-repeat: repeat-x; border-color: #2b669a; @@ -522,66 +522,66 @@ fieldset[disabled] .btn-danger.active { text-shadow: none; } .panel { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: 0 1px 2px rgba(0, 0, 0, .05); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } .panel-default > .panel-heading { background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); background-repeat: repeat-x; } .panel-primary > .panel-heading { background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); background-repeat: repeat-x; } .panel-success > .panel-heading { background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); background-repeat: repeat-x; } .panel-info > .panel-heading { background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); background-repeat: repeat-x; } .panel-warning > .panel-heading { background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); background-repeat: repeat-x; } .panel-danger > .panel-heading { background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); - background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); background-repeat: repeat-x; } .well { background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); background-repeat: repeat-x; border-color: #dcdcdc; - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); } -/*# sourceMappingURL=bootstrap-theme.css.map */ +/*# sourceMappingURL=bootstrap-theme.css.map */ \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css.map b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css.map index 21e19101e..949d09738 100644 --- a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css.map +++ b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.css.map @@ -1 +1 @@ -{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;GAIG;ACeH;;;;;;EAME,yCAAA;EC2CA,4FAAA;EACQ,oFAAA;CFvDT;ACgBC;;;;;;;;;;;;ECsCA,yDAAA;EACQ,iDAAA;CFxCT;ACMC;;;;;;;;;;;;;;;;;;ECiCA,yBAAA;EACQ,iBAAA;CFnBT;AC/BD;;;;;;EAuBI,kBAAA;CDgBH;ACyBC;;EAEE,uBAAA;CDvBH;AC4BD;EErEI,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;EAuC2C,0BAAA;EAA2B,mBAAA;CDjBvE;ACpBC;;EAEE,0BAAA;EACA,6BAAA;CDsBH;ACnBC;;EAEE,0BAAA;EACA,sBAAA;CDqBH;ACfG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6BL;ACbD;EEtEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8DD;AC5DC;;EAEE,0BAAA;EACA,6BAAA;CD8DH;AC3DC;;EAEE,0BAAA;EACA,sBAAA;CD6DH;ACvDG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqEL;ACpDD;EEvEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsGD;ACpGC;;EAEE,0BAAA;EACA,6BAAA;CDsGH;ACnGC;;EAEE,0BAAA;EACA,sBAAA;CDqGH;AC/FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6GL;AC3FD;EExEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ID;AC5IC;;EAEE,0BAAA;EACA,6BAAA;CD8IH;AC3IC;;EAEE,0BAAA;EACA,sBAAA;CD6IH;ACvIG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqJL;AClID;EEzEI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CDsLD;ACpLC;;EAEE,0BAAA;EACA,6BAAA;CDsLH;ACnLC;;EAEE,0BAAA;EACA,sBAAA;CDqLH;AC/KG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD6LL;ACzKD;EE1EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EAEA,uHAAA;ECnBF,oEAAA;EH4CA,4BAAA;EACA,sBAAA;CD8ND;AC5NC;;EAEE,0BAAA;EACA,6BAAA;CD8NH;AC3NC;;EAEE,0BAAA;EACA,sBAAA;CD6NH;ACvNG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDqOL;AC1MD;;EClCE,mDAAA;EACQ,2CAAA;CFgPT;ACrMD;;EE3FI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF0FF,0BAAA;CD2MD;ACzMD;;;EEhGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFgGF,0BAAA;CD+MD;ACtMD;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EH+HA,mBAAA;ECjEA,4FAAA;EACQ,oFAAA;CF8QT;ACjND;;EE7GI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,yDAAA;EACQ,iDAAA;CFwRT;AC9MD;;EAEE,+CAAA;CDgND;AC5MD;EEhII,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EACA,4BAAA;EACA,uHAAA;ECnBF,oEAAA;EHkJA,mBAAA;CDkND;ACrND;;EEhII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;ED2CF,wDAAA;EACQ,gDAAA;CF+ST;AC/ND;;EAYI,0CAAA;CDuNH;AClND;;;EAGE,iBAAA;CDoND;AC/LD;EAfI;;;IAGE,YAAA;IE7JF,yEAAA;IACA,oEAAA;IACA,8FAAA;IAAA,uEAAA;IACA,4BAAA;IACA,uHAAA;GH+WD;CACF;AC3MD;EACE,8CAAA;EC3HA,2FAAA;EACQ,mFAAA;CFyUT;ACnMD;EEtLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+MD;AC1MD;EEvLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuND;ACjND;EExLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CD+ND;ACxND;EEzLI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EF8KF,sBAAA;CDuOD;ACxND;EEjMI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH4ZH;ACrND;EE3MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHmaH;AC3ND;EE5MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH0aH;ACjOD;EE7MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHibH;ACvOD;EE9MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHwbH;AC7OD;EE/MI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH+bH;AChPD;EElLI,8MAAA;EACA,yMAAA;EACA,sMAAA;CHqaH;AC5OD;EACE,mBAAA;EC9KA,mDAAA;EACQ,2CAAA;CF6ZT;AC7OD;;;EAGE,8BAAA;EEnOE,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFiOF,sBAAA;CDmPD;ACxPD;;;EAQI,kBAAA;CDqPH;AC3OD;ECnME,kDAAA;EACQ,0CAAA;CFibT;ACrOD;EE5PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHoeH;AC3OD;EE7PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CH2eH;ACjPD;EE9PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHkfH;ACvPD;EE/PI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHyfH;AC7PD;EEhQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHggBH;ACnQD;EEjQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;CHugBH;ACnQD;EExQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,4BAAA;EACA,uHAAA;EFsQF,sBAAA;EC3NA,0FAAA;EACQ,kFAAA;CFqeT","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file +{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;GAIG;ACiBH;;;;;;EAME,yCAAA;EC2CA,4FAAA;EACQ,oFAAA;CFzDT;ACkBC;;;;;;;;;;;;ECsCA,yDAAA;EACQ,iDAAA;CF1CT;ACQC;;;;;;;;;;;;;;;;;;ECiCA,yBAAA;EACQ,iBAAA;CFrBT;AC7BD;;;;;;EAuBI,kBAAA;CDcH;AC2BC;;EAEE,uBAAA;CDzBH;AC8BD;EEvEI,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EACA,uHAAA;EClBF,oEAAA;EH8CA,4BAAA;EACA,sBAAA;EAyCA,0BAAA;EACA,mBAAA;CDtBD;AClBC;;EAEE,0BAAA;EACA,6BAAA;CDoBH;ACjBC;;EAEE,0BAAA;EACA,sBAAA;CDmBH;ACbG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD2BL;ACPD;EE5EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EClBF,oEAAA;EH8CA,4BAAA;EACA,sBAAA;CD4DD;AC1DC;;EAEE,0BAAA;EACA,6BAAA;CD4DH;ACzDC;;EAEE,0BAAA;EACA,sBAAA;CD2DH;ACrDG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDmEL;AC9CD;EE7EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EClBF,oEAAA;EH8CA,4BAAA;EACA,sBAAA;CDoGD;AClGC;;EAEE,0BAAA;EACA,6BAAA;CDoGH;ACjGC;;EAEE,0BAAA;EACA,sBAAA;CDmGH;AC7FG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD2GL;ACrFD;EE9EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EClBF,oEAAA;EH8CA,4BAAA;EACA,sBAAA;CD4ID;AC1IC;;EAEE,0BAAA;EACA,6BAAA;CD4IH;ACzIC;;EAEE,0BAAA;EACA,sBAAA;CD2IH;ACrIG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDmJL;AC5HD;EE/EI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EClBF,oEAAA;EH8CA,4BAAA;EACA,sBAAA;CDoLD;AClLC;;EAEE,0BAAA;EACA,6BAAA;CDoLH;ACjLC;;EAEE,0BAAA;EACA,sBAAA;CDmLH;AC7KG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CD2LL;ACnKD;EEhFI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EClBF,oEAAA;EH8CA,4BAAA;EACA,sBAAA;CD4ND;AC1NC;;EAEE,0BAAA;EACA,6BAAA;CD4NH;ACzNC;;EAEE,0BAAA;EACA,sBAAA;CD2NH;ACrNG;;;;;;;;;;;;;;;;;;EAME,0BAAA;EACA,uBAAA;CDmOL;ACpMD;;ECtCE,mDAAA;EACQ,2CAAA;CF8OT;AC/LD;;EEjGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFgGF,0BAAA;CDqMD;ACnMD;;;EEtGI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFsGF,0BAAA;CDyMD;AChMD;EEnHI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;ECnBF,oEAAA;EHqIA,mBAAA;ECrEA,4FAAA;EACQ,oFAAA;CF4QT;AC3MD;;EEnHI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;ED6CF,yDAAA;EACQ,iDAAA;CFsRT;ACxMD;;EAEE,+CAAA;CD0MD;ACtMD;EEtII,sEAAA;EACA,iEAAA;EACA,2FAAA;EAAA,oEAAA;EACA,uHAAA;EACA,4BAAA;ECnBF,oEAAA;EHwJA,mBAAA;CD4MD;AC/MD;;EEtII,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;ED6CF,wDAAA;EACQ,gDAAA;CF6ST;ACzND;;EAYI,0CAAA;CDiNH;AC5MD;;;EAGE,iBAAA;CD8MD;AC1MD;EAEI;;;IAGE,YAAA;IEnKF,yEAAA;IACA,oEAAA;IACA,8FAAA;IAAA,uEAAA;IACA,uHAAA;IACA,4BAAA;GH+WD;CACF;ACrMD;EACE,8CAAA;EC/HA,2FAAA;EACQ,mFAAA;CFuUT;AC7LD;EE5LI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFoLF,sBAAA;CDyMD;ACpMD;EE7LI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFoLF,sBAAA;CDiND;AC3MD;EE9LI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFoLF,sBAAA;CDyND;AClND;EE/LI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFoLF,sBAAA;CDiOD;AClND;EEvMI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CH4ZH;AC/MD;EEjNI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHmaH;ACrND;EElNI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CH0aH;AC3ND;EEnNI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHibH;ACjOD;EEpNI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHwbH;ACvOD;EErNI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CH+bH;AC1OD;EExLI,8MAAA;EACA,yMAAA;EACA,sMAAA;CHqaH;ACtOD;EACE,mBAAA;EClLA,mDAAA;EACQ,2CAAA;CF2ZT;ACvOD;;;EAGE,8BAAA;EEzOE,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EFuOF,sBAAA;CD6OD;AClPD;;;EAQI,kBAAA;CD+OH;ACrOD;ECvME,kDAAA;EACQ,0CAAA;CF+aT;AC/ND;EElQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHoeH;ACrOD;EEnQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CH2eH;AC3OD;EEpQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHkfH;ACjPD;EErQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHyfH;ACvPD;EEtQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHggBH;AC7PD;EEvQI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;CHugBH;AC7PD;EE9QI,yEAAA;EACA,oEAAA;EACA,8FAAA;EAAA,uEAAA;EACA,uHAAA;EACA,4BAAA;EF4QF,sBAAA;EC/NA,0FAAA;EACQ,kFAAA;CFmeT","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors\n\n/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n .btn-styles(@btn-default-bg);\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n .box-shadow(@shadow);\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css index dc95d8e4e..2a69f48c7 100644 --- a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css +++ b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css @@ -1,6 +1,6 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x;background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x;background-color:#2e6da4}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} /*# sourceMappingURL=bootstrap-theme.min.css.map */ \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css.map b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css.map index 2c6b65afc..5d75106e0 100644 --- a/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css.map +++ b/view/theme/frio/frameworks/bootstrap/css/bootstrap-theme.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":";;;;AAmBA,YAAA,aAAA,UAAA,aAAA,aAAA,aAME,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBDvCR,mBAAA,mBAAA,oBAAA,oBAAA,iBAAA,iBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBAAA,oBCsCA,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBDlCR,qBAAA,sBAAA,sBAAA,uBAAA,mBAAA,oBAAA,sBAAA,uBAAA,sBAAA,uBAAA,sBAAA,uBAAA,+BAAA,gCAAA,6BAAA,gCAAA,gCAAA,gCCiCA,mBAAA,KACQ,WAAA,KDlDV,mBAAA,oBAAA,iBAAA,oBAAA,oBAAA,oBAuBI,YAAA,KAyCF,YAAA,YAEE,iBAAA,KAKJ,aErEI,YAAA,EAAA,IAAA,EAAA,KACA,iBAAA,iDACA,iBAAA,4CAAA,iBAAA,qEAEA,iBAAA,+CCnBF,OAAA,+GH4CA,OAAA,0DACA,kBAAA,SAuC2C,aAAA,QAA2B,aAAA,KArCtE,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAgBN,aEtEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAiBN,aEvEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAkBN,UExEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,gBAAA,gBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,iBAAA,iBAEE,iBAAA,QACA,aAAA,QAMA,mBAAA,0BAAA,yBAAA,0BAAA,yBAAA,yBAAA,oBAAA,2BAAA,0BAAA,2BAAA,0BAAA,0BAAA,6BAAA,oCAAA,mCAAA,oCAAA,mCAAA,mCAME,iBAAA,QACA,iBAAA,KAmBN,aEzEI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,mBAAA,mBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,oBAAA,oBAEE,iBAAA,QACA,aAAA,QAMA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,uBAAA,8BAAA,6BAAA,8BAAA,6BAAA,6BAAA,gCAAA,uCAAA,sCAAA,uCAAA,sCAAA,sCAME,iBAAA,QACA,iBAAA,KAoBN,YE1EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDAEA,OAAA,+GCnBF,OAAA,0DH4CA,kBAAA,SACA,aAAA,QAEA,kBAAA,kBAEE,iBAAA,QACA,oBAAA,EAAA,MAGF,mBAAA,mBAEE,iBAAA,QACA,aAAA,QAMA,qBAAA,4BAAA,2BAAA,4BAAA,2BAAA,2BAAA,sBAAA,6BAAA,4BAAA,6BAAA,4BAAA,4BAAA,+BAAA,sCAAA,qCAAA,sCAAA,qCAAA,qCAME,iBAAA,QACA,iBAAA,KA2BN,eAAA,WClCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBD2CV,0BAAA,0BE3FI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GF0FF,kBAAA,SAEF,yBAAA,+BAAA,+BEhGI,iBAAA,QACA,iBAAA,oDACA,iBAAA,+CAAA,iBAAA,wEACA,iBAAA,kDACA,OAAA,+GFgGF,kBAAA,SASF,gBE7GI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SH+HA,cAAA,ICjEA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,iBD6DV,sCAAA,oCE7GI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD0EV,cAAA,iBAEE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEhII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,OAAA,0DCnBF,kBAAA,SHkJA,cAAA,IAHF,sCAAA,oCEhII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD2CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDgFV,8BAAA,iCAYI,YAAA,EAAA,KAAA,EAAA,gBAKJ,qBAAA,kBAAA,mBAGE,cAAA,EAqBF,yBAfI,mDAAA,yDAAA,yDAGE,MAAA,KE7JF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UFqKJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC3HA,mBAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,sBAAA,EAAA,IAAA,IAAA,gBDsIV,eEtLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAKF,YEvLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAMF,eExLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAOF,cEzLI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8KF,aAAA,QAeF,UEjMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuMJ,cE3MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFwMJ,sBE5MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyMJ,mBE7MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0MJ,sBE9MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2MJ,qBE/MI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,sBElLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKFyLJ,YACE,cAAA,IC9KA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDgLV,wBAAA,8BAAA,8BAGE,YAAA,EAAA,KAAA,EAAA,QEnOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiOF,aAAA,QALF,+BAAA,qCAAA,qCAQI,YAAA,KAUJ,OCnME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBD4MV,8BE5PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFyPJ,8BE7PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0PJ,8BE9PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF2PJ,2BE/PI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4PJ,8BEhQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6PJ,6BEjQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoQJ,MExQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsQF,aAAA,QC3NA,mBAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBAAA,EAAA,IAAA,EAAA"} \ No newline at end of file +{"version":3,"sources":["bootstrap-theme.css","dist/css/bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"AAAA;;;;ACUA,YCWA,aDbA,UAFA,aACA,aAEA,aCkBE,YAAA,EAAA,KAAA,EAAA,eC2CA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBF7CV,mBANA,mBACA,oBCWE,oBDRF,iBANA,iBAIA,oBANA,oBAOA,oBANA,oBAQA,oBANA,oBEmDE,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBFpCV,qBAMA,sBCJE,sBDDF,uBAHA,mBAMA,oBARA,sBAMA,uBALA,sBAMA,uBAJA,sBAMA,uBAOA,+BALA,gCAGA,6BAFA,gCACA,gCAEA,gCEwBE,mBAAA,KACQ,WAAA,KFfV,mBCnCA,oBDiCA,iBAFA,oBACA,oBAEA,oBCXI,YAAA,KDgBJ,YCyBE,YAEE,iBAAA,KAKJ,aEvEI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QAyCA,YAAA,EAAA,IAAA,EAAA,KACA,aAAA,KDnBF,mBCrBE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDuBJ,oBCpBE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBD8BJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCCdM,iBAAA,QACA,iBAAA,KAoBN,aE5EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDgEF,mBC9DE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDgEJ,oBC7DE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDuEJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCCvDM,iBAAA,QACA,iBAAA,KAqBN,aE7EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDyGF,mBCvGE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MDyGJ,oBCtGE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDgHJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCChGM,iBAAA,QACA,iBAAA,KAsBN,UE9EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDkJF,gBChJE,gBAEE,iBAAA,QACA,oBAAA,EAAA,MDkJJ,iBC/IE,iBAEE,iBAAA,QACA,aAAA,QAMA,mBDyJJ,0BANA,yBAGA,0BANA,yBAHA,yBAFA,oBAeA,2BANA,0BAGA,2BANA,0BAHA,0BAFA,6BAeA,oCANA,mCAGA,oCANA,mCAHA,mCCzIM,iBAAA,QACA,iBAAA,KAuBN,aE/EI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QD2LF,mBCzLE,mBAEE,iBAAA,QACA,oBAAA,EAAA,MD2LJ,oBCxLE,oBAEE,iBAAA,QACA,aAAA,QAMA,sBDkMJ,6BANA,4BAGA,6BANA,4BAHA,4BAFA,uBAeA,8BANA,6BAGA,8BANA,6BAHA,6BAFA,gCAeA,uCANA,sCAGA,uCANA,sCAHA,sCClLM,iBAAA,QACA,iBAAA,KAwBN,YEhFI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GClBF,OAAA,0DH8CA,kBAAA,SACA,aAAA,QDoOF,kBClOE,kBAEE,iBAAA,QACA,oBAAA,EAAA,MDoOJ,mBCjOE,mBAEE,iBAAA,QACA,aAAA,QAMA,qBD2OJ,4BANA,2BAGA,4BANA,2BAHA,2BAFA,sBAeA,6BANA,4BAGA,6BANA,4BAHA,4BAFA,+BAeA,sCANA,qCAGA,sCANA,qCAHA,qCC3NM,iBAAA,QACA,iBAAA,KD2ON,eC5MA,WCtCE,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBFsPV,0BCvMA,0BEjGI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgGF,iBAAA,QAEF,yBD6MA,+BADA,+BGlTI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFsGF,iBAAA,QASF,gBEnHI,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,kBAAA,SCnBF,OAAA,0DHqIA,cAAA,ICrEA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,iBFuRV,sCCtNA,oCEnHI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD6CF,mBAAA,MAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,iBD8EV,cDoNA,iBClNE,YAAA,EAAA,IAAA,EAAA,sBAIF,gBEtII,iBAAA,iDACA,iBAAA,4CACA,iBAAA,qEAAA,iBAAA,+CACA,OAAA,+GACA,kBAAA,SCnBF,OAAA,0DHwJA,cAAA,IDyNF,sCC5NA,oCEtII,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SD6CF,mBAAA,MAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,gBDoFV,8BDuOA,iCC3NI,YAAA,EAAA,KAAA,EAAA,gBDgOJ,qBADA,kBC1NA,mBAGE,cAAA,EAIF,yBAEI,mDDwNF,yDADA,yDCpNI,MAAA,KEnKF,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,UF2KJ,OACE,YAAA,EAAA,IAAA,EAAA,qBC/HA,mBAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,MAAA,EAAA,IAAA,EAAA,qBAAA,CAAA,EAAA,IAAA,IAAA,gBD0IV,eE5LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAKF,YE7LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAMF,eE9LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAOF,cE/LI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFoLF,aAAA,QAeF,UEvMI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF6MJ,cEjNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF8MJ,sBElNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+MJ,mBEnNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgNJ,sBEpNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiNJ,qBErNI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFqNJ,sBExLI,iBAAA,yKACA,iBAAA,oKACA,iBAAA,iKF+LJ,YACE,cAAA,IClLA,mBAAA,EAAA,IAAA,IAAA,iBACQ,WAAA,EAAA,IAAA,IAAA,iBDoLV,wBDiQA,8BADA,8BC7PE,YAAA,EAAA,KAAA,EAAA,QEzOE,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFuOF,aAAA,QALF,+BD6QA,qCADA,qCCpQI,YAAA,KAUJ,OCvME,mBAAA,EAAA,IAAA,IAAA,gBACQ,WAAA,EAAA,IAAA,IAAA,gBDgNV,8BElQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF+PJ,8BEnQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFgQJ,8BEpQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFiQJ,2BErQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFkQJ,8BEtQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SFmQJ,6BEvQI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF0QJ,ME9QI,iBAAA,oDACA,iBAAA,+CACA,iBAAA,wEAAA,iBAAA,kDACA,OAAA,+GACA,kBAAA,SF4QF,aAAA,QC/NA,mBAAA,MAAA,EAAA,IAAA,IAAA,eAAA,CAAA,EAAA,IAAA,EAAA,qBACQ,WAAA,MAAA,EAAA,IAAA,IAAA,eAAA,CAAA,EAAA,IAAA,EAAA","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));\n background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8));\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n background-repeat: repeat-x;\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n background-repeat: repeat-x;\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n background-repeat: repeat-x;\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n background-repeat: repeat-x;\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n background-repeat: repeat-x;\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n background-repeat: repeat-x;\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n background-repeat: repeat-x;\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n background-repeat: repeat-x;\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","// stylelint-disable selector-no-qualifying-type, selector-max-compound-selectors\n\n/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0, 0, 0, .125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default {\n .btn-styles(@btn-default-bg);\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0, 0, 0, .25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, .2);\n @shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0, 0, 0, .075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0, 0, 0, .05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);\n .box-shadow(@shadow);\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// stylelint-disable value-no-vendor-prefix, selector-max-id\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down\n background-repeat: repeat-x;\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\", argb(@start-color), argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n background-repeat: no-repeat;\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255, 255, 255, .15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap/css/bootstrap.css b/view/theme/frio/frameworks/bootstrap/css/bootstrap.css index 42c79d6e4..fcab41554 100644 --- a/view/theme/frio/frameworks/bootstrap/css/bootstrap.css +++ b/view/theme/frio/frameworks/bootstrap/css/bootstrap.css @@ -1,13 +1,13 @@ /*! - * Bootstrap v3.3.6 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. + * Bootstrap v3.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { font-family: sans-serif; + -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; } body { margin: 0; @@ -50,7 +50,11 @@ a:hover { outline: 0; } abbr[title] { - border-bottom: 1px dotted; + border-bottom: none; + text-decoration: underline; + -webkit-text-decoration: underline dotted; + -moz-text-decoration: underline dotted; + text-decoration: underline dotted; } b, strong { @@ -60,28 +64,28 @@ dfn { font-style: italic; } h1 { - margin: .67em 0; font-size: 2em; + margin: 0.67em 0; } mark { - color: #000; background: #ff0; + color: #000; } small { font-size: 80%; } sub, sup { - position: relative; font-size: 75%; line-height: 0; + position: relative; vertical-align: baseline; } sup { - top: -.5em; + top: -0.5em; } sub { - bottom: -.25em; + bottom: -0.25em; } img { border: 0; @@ -93,10 +97,10 @@ figure { margin: 1em 40px; } hr { - height: 0; -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; } pre { overflow: auto; @@ -113,9 +117,9 @@ input, optgroup, select, textarea { - margin: 0; - font: inherit; color: inherit; + font: inherit; + margin: 0; } button { overflow: visible; @@ -137,8 +141,8 @@ html input[disabled] { } button::-moz-focus-inner, input::-moz-focus-inner { - padding: 0; border: 0; + padding: 0; } input { line-height: normal; @@ -146,8 +150,8 @@ input { input[type="checkbox"], input[type="radio"] { -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; padding: 0; } input[type="number"]::-webkit-inner-spin-button, @@ -155,23 +159,23 @@ input[type="number"]::-webkit-outer-spin-button { height: auto; } input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } fieldset { - padding: .35em .625em .75em; - margin: 0 2px; border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } legend { - padding: 0; border: 0; + padding: 0; } textarea { overflow: auto; @@ -180,8 +184,8 @@ optgroup { font-weight: bold; } table { - border-spacing: 0; border-collapse: collapse; + border-spacing: 0; } td, th { @@ -196,7 +200,7 @@ th { text-shadow: none !important; background: transparent !important; -webkit-box-shadow: none !important; - box-shadow: none !important; + box-shadow: none !important; } a, a:visited { @@ -215,7 +219,6 @@ th { pre, blockquote { border: 1px solid #999; - page-break-inside: avoid; } thead { @@ -261,20 +264,18 @@ th { } } @font-face { - font-family: 'Glyphicons Halflings'; - - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); + font-family: "Glyphicons Halflings"; + src: url("../fonts/glyphicons-halflings-regular.eot"); + src: url("../fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); } .glyphicon { position: relative; top: 1px; display: inline-block; - font-family: 'Glyphicons Halflings'; + font-family: "Glyphicons Halflings"; font-style: normal; - font-weight: normal; + font-weight: 400; line-height: 1; - -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } @@ -1067,25 +1068,24 @@ th { } * { -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } *:before, *:after { -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } html { font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; - color: #333; + color: #333333; background-color: #fff; } input, @@ -1106,7 +1106,6 @@ a:focus { text-decoration: underline; } a:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -1129,17 +1128,17 @@ img { border-radius: 6px; } .img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; padding: 4px; line-height: 1.42857143; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; } .img-circle { border-radius: 50%; @@ -1148,7 +1147,7 @@ hr { margin-top: 20px; margin-bottom: 20px; border: 0; - border-top: 1px solid #eee; + border-top: 1px solid #eeeeee; } .sr-only { position: absolute; @@ -1213,9 +1212,9 @@ h6 .small, .h4 .small, .h5 .small, .h6 .small { - font-weight: normal; + font-weight: 400; line-height: 1; - color: #777; + color: #777777; } h1, .h1, @@ -1307,7 +1306,7 @@ small, } mark, .mark { - padding: .2em; + padding: 0.2em; background-color: #fcf8e3; } .text-left { @@ -1335,7 +1334,7 @@ mark, text-transform: capitalize; } .text-muted { - color: #777; + color: #777777; } .text-primary { color: #337ab7; @@ -1411,7 +1410,7 @@ a.bg-danger:focus { .page-header { padding-bottom: 9px; margin: 40px 0 20px; - border-bottom: 1px solid #eee; + border-bottom: 1px solid #eeeeee; } ul, ol { @@ -1430,8 +1429,8 @@ ol ol { } .list-inline { padding-left: 0; - margin-left: -5px; list-style: none; + margin-left: -5px; } .list-inline > li { display: inline-block; @@ -1447,7 +1446,7 @@ dd { line-height: 1.42857143; } dt { - font-weight: bold; + font-weight: 700; } dd { margin-left: 0; @@ -1456,9 +1455,9 @@ dd { .dl-horizontal dt { float: left; width: 160px; - overflow: hidden; clear: left; text-align: right; + overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } @@ -1469,7 +1468,6 @@ dd { abbr[title], abbr[data-original-title] { cursor: help; - border-bottom: 1px dotted #777; } .initialism { font-size: 90%; @@ -1479,7 +1477,7 @@ blockquote { padding: 10px 20px; margin: 0 0 20px; font-size: 17.5px; - border-left: 5px solid #eee; + border-left: 5px solid #eeeeee; } blockquote p:last-child, blockquote ul:last-child, @@ -1492,19 +1490,19 @@ blockquote .small { display: block; font-size: 80%; line-height: 1.42857143; - color: #777; + color: #777777; } blockquote footer:before, blockquote small:before, blockquote .small:before { - content: '\2014 \00A0'; + content: "\2014 \00A0"; } .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; text-align: right; - border-right: 5px solid #eee; + border-right: 5px solid #eeeeee; border-left: 0; } .blockquote-reverse footer:before, @@ -1513,7 +1511,7 @@ blockquote.pull-right footer:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { - content: ''; + content: ""; } .blockquote-reverse footer:after, blockquote.pull-right footer:after, @@ -1521,7 +1519,7 @@ blockquote.pull-right footer:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { - content: '\00A0 \2014'; + content: "\00A0 \2014"; } address { margin-bottom: 20px; @@ -1547,15 +1545,15 @@ kbd { color: #fff; background-color: #333; border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); } kbd kbd { padding: 0; font-size: 100%; - font-weight: bold; + font-weight: 700; -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } pre { display: block; @@ -1563,7 +1561,7 @@ pre { margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; - color: #333; + color: #333333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; @@ -1613,13 +1611,79 @@ pre code { margin-right: -15px; margin-left: -15px; } -.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { +.row-no-gutters { + margin-right: 0; + margin-left: 0; +} +.row-no-gutters [class*="col-"] { + padding-right: 0; + padding-left: 0; +} +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 { position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px; } -.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 { float: left; } .col-xs-12 { @@ -1773,10 +1837,21 @@ pre code { margin-left: 8.33333333%; } .col-xs-offset-0 { - margin-left: 0; + margin-left: 0%; } @media (min-width: 768px) { - .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 { float: left; } .col-sm-12 { @@ -1930,11 +2005,22 @@ pre code { margin-left: 8.33333333%; } .col-sm-offset-0 { - margin-left: 0; + margin-left: 0%; } } @media (min-width: 992px) { - .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 { float: left; } .col-md-12 { @@ -2088,11 +2174,22 @@ pre code { margin-left: 8.33333333%; } .col-md-offset-0 { - margin-left: 0; + margin-left: 0%; } } @media (min-width: 1200px) { - .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 { float: left; } .col-lg-12 { @@ -2246,16 +2343,27 @@ pre code { margin-left: 8.33333333%; } .col-lg-offset-0 { - margin-left: 0; + margin-left: 0%; } } table { background-color: transparent; } +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} caption { padding-top: 8px; padding-bottom: 8px; - color: #777; + color: #777777; text-align: left; } th { @@ -2324,17 +2432,6 @@ th { .table-hover > tbody > tr:hover { background-color: #f5f5f5; } -table col[class*="col-"] { - position: static; - display: table-column; - float: none; -} -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} .table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, @@ -2441,7 +2538,7 @@ table th[class*="col-"] { background-color: #ebcccc; } .table-responsive { - min-height: .01%; + min-height: 0.01%; overflow-x: auto; } @media screen and (max-width: 767px) { @@ -2502,7 +2599,7 @@ legend { margin-bottom: 20px; font-size: 21px; line-height: inherit; - color: #333; + color: #333333; border: 0; border-bottom: 1px solid #e5e5e5; } @@ -2510,12 +2607,15 @@ label { display: inline-block; max-width: 100%; margin-bottom: 5px; - font-weight: bold; + font-weight: 700; } input[type="search"] { -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } input[type="radio"], input[type="checkbox"] { @@ -2523,6 +2623,14 @@ input[type="checkbox"] { margin-top: 1px \9; line-height: normal; } +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} input[type="file"] { display: block; } @@ -2537,7 +2645,6 @@ select[size] { input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -2546,7 +2653,7 @@ output { padding-top: 7px; font-size: 14px; line-height: 1.42857143; - color: #555; + color: #555555; } .form-control { display: block; @@ -2555,22 +2662,25 @@ output { padding: 6px 12px; font-size: 14px; line-height: 1.42857143; - color: #555; + color: #555555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; - -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; - transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; } .form-control:focus { border-color: #66afe9; outline: 0; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6); } .form-control::-moz-placeholder { color: #999; @@ -2589,7 +2699,7 @@ output { .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { - background-color: #eee; + background-color: #eeeeee; opacity: 1; } .form-control[disabled], @@ -2599,9 +2709,6 @@ fieldset[disabled] .form-control { textarea.form-control { height: auto; } -input[type="search"] { - -webkit-appearance: none; -} @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"].form-control, input[type="time"].form-control, @@ -2640,12 +2747,18 @@ input[type="search"] { margin-top: 10px; margin-bottom: 10px; } +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} .radio label, .checkbox label { min-height: 20px; padding-left: 20px; margin-bottom: 0; - font-weight: normal; + font-weight: 400; cursor: pointer; } .radio input[type="radio"], @@ -2666,34 +2779,20 @@ input[type="search"] { display: inline-block; padding-left: 20px; margin-bottom: 0; - font-weight: normal; + font-weight: 400; vertical-align: middle; cursor: pointer; } -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"].disabled, -input[type="checkbox"].disabled, -fieldset[disabled] input[type="radio"], -fieldset[disabled] input[type="checkbox"] { - cursor: not-allowed; -} .radio-inline.disabled, .checkbox-inline.disabled, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox-inline { cursor: not-allowed; } -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; } .form-control-static { min-height: 34px; @@ -2826,13 +2925,13 @@ select[multiple].input-lg { } .has-success .form-control { border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .has-success .form-control:focus { border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; } .has-success .input-group-addon { color: #3c763d; @@ -2856,13 +2955,13 @@ select[multiple].input-lg { } .has-warning .form-control { border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .has-warning .form-control:focus { border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; } .has-warning .input-group-addon { color: #8a6d3b; @@ -2886,13 +2985,13 @@ select[multiple].input-lg { } .has-error .form-control { border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } .has-error .form-control:focus { border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; } .has-error .input-group-addon { color: #a94442; @@ -3004,24 +3103,24 @@ select[multiple].input-lg { } .btn { display: inline-block; - padding: 6px 12px; margin-bottom: 0; - font-size: 14px; font-weight: normal; - line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; - touch-action: manipulation; + touch-action: manipulation; cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; background-image: none; border: 1px solid transparent; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } .btn:focus, .btn:active:focus, @@ -3029,7 +3128,6 @@ select[multiple].input-lg { .btn.focus, .btn:active.focus, .btn.active.focus { - outline: thin dotted; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } @@ -3043,17 +3141,17 @@ select[multiple].input-lg { .btn.active { background-image: none; outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; filter: alpha(opacity=65); + opacity: 0.65; -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; + box-shadow: none; } a.btn.disabled, fieldset[disabled] a.btn { @@ -3080,6 +3178,7 @@ fieldset[disabled] a.btn { .open > .dropdown-toggle.btn-default { color: #333; background-color: #e6e6e6; + background-image: none; border-color: #adadad; } .btn-default:active:hover, @@ -3095,11 +3194,6 @@ fieldset[disabled] a.btn { background-color: #d4d4d4; border-color: #8c8c8c; } -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; -} .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, @@ -3137,6 +3231,7 @@ fieldset[disabled] .btn-default.focus { .open > .dropdown-toggle.btn-primary { color: #fff; background-color: #286090; + background-image: none; border-color: #204d74; } .btn-primary:active:hover, @@ -3152,11 +3247,6 @@ fieldset[disabled] .btn-default.focus { background-color: #204d74; border-color: #122b40; } -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; -} .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, @@ -3194,6 +3284,7 @@ fieldset[disabled] .btn-primary.focus { .open > .dropdown-toggle.btn-success { color: #fff; background-color: #449d44; + background-image: none; border-color: #398439; } .btn-success:active:hover, @@ -3209,11 +3300,6 @@ fieldset[disabled] .btn-primary.focus { background-color: #398439; border-color: #255625; } -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; -} .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, @@ -3251,6 +3337,7 @@ fieldset[disabled] .btn-success.focus { .open > .dropdown-toggle.btn-info { color: #fff; background-color: #31b0d5; + background-image: none; border-color: #269abc; } .btn-info:active:hover, @@ -3266,11 +3353,6 @@ fieldset[disabled] .btn-success.focus { background-color: #269abc; border-color: #1b6d85; } -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; -} .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, @@ -3308,6 +3390,7 @@ fieldset[disabled] .btn-info.focus { .open > .dropdown-toggle.btn-warning { color: #fff; background-color: #ec971f; + background-image: none; border-color: #d58512; } .btn-warning:active:hover, @@ -3323,11 +3406,6 @@ fieldset[disabled] .btn-info.focus { background-color: #d58512; border-color: #985f0d; } -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; -} .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, @@ -3365,6 +3443,7 @@ fieldset[disabled] .btn-warning.focus { .open > .dropdown-toggle.btn-danger { color: #fff; background-color: #c9302c; + background-image: none; border-color: #ac2925; } .btn-danger:active:hover, @@ -3380,11 +3459,6 @@ fieldset[disabled] .btn-warning.focus { background-color: #ac2925; border-color: #761c19; } -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; -} .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, @@ -3402,7 +3476,7 @@ fieldset[disabled] .btn-danger.focus { background-color: #fff; } .btn-link { - font-weight: normal; + font-weight: 400; color: #337ab7; border-radius: 0; } @@ -3413,7 +3487,7 @@ fieldset[disabled] .btn-danger.focus { fieldset[disabled] .btn-link { background-color: transparent; -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .btn-link, .btn-link:hover, @@ -3431,7 +3505,7 @@ fieldset[disabled] .btn-link { fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { - color: #777; + color: #777777; text-decoration: none; } .btn-lg, @@ -3469,9 +3543,9 @@ input[type="button"].btn-block { } .fade { opacity: 0; - -webkit-transition: opacity .15s linear; - -o-transition: opacity .15s linear; - transition: opacity .15s linear; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; } .fade.in { opacity: 1; @@ -3492,15 +3566,15 @@ tbody.collapse.in { position: relative; height: 0; overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; + -webkit-transition-duration: 0.35s; + -o-transition-duration: 0.35s; + transition-duration: 0.35s; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; } .caret { display: inline-block; @@ -3534,13 +3608,12 @@ tbody.collapse.in { text-align: left; list-style: none; background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; + background-clip: padding-box; border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); + border: 1px solid rgba(0, 0, 0, 0.15); border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); } .dropdown-menu.pull-right { right: 0; @@ -3556,9 +3629,9 @@ tbody.collapse.in { display: block; padding: 3px 20px; clear: both; - font-weight: normal; + font-weight: 400; line-height: 1.42857143; - color: #333; + color: #333333; white-space: nowrap; } .dropdown-menu > li > a:hover, @@ -3578,7 +3651,7 @@ tbody.collapse.in { .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - color: #777; + color: #777777; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { @@ -3607,7 +3680,7 @@ tbody.collapse.in { padding: 3px 20px; font-size: 12px; line-height: 1.42857143; - color: #777; + color: #777777; white-space: nowrap; } .dropdown-backdrop { @@ -3728,12 +3801,12 @@ tbody.collapse.in { padding-left: 12px; } .btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } .btn-group.open .dropdown-toggle.btn-link { -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .btn .caret { margin-left: 0; @@ -3901,11 +3974,11 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .input-group-addon { padding: 6px 12px; font-size: 14px; - font-weight: normal; + font-weight: 400; line-height: 1; - color: #555; + color: #555555; text-align: center; - background-color: #eee; + background-color: #eeeeee; border: 1px solid #ccc; border-radius: 4px; } @@ -3991,14 +4064,14 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; - background-color: #eee; + background-color: #eeeeee; } .nav > li.disabled > a { - color: #777; + color: #777777; } .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { - color: #777; + color: #777777; text-decoration: none; cursor: not-allowed; background-color: transparent; @@ -4006,7 +4079,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { - background-color: #eee; + background-color: #eeeeee; border-color: #337ab7; } .nav .nav-divider { @@ -4032,12 +4105,12 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 4px 4px 0 0; } .nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; + border-color: #eeeeee #eeeeee #ddd; } .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { - color: #555; + color: #555555; cursor: default; background-color: #fff; border: 1px solid #ddd; @@ -4186,10 +4259,10 @@ select[multiple].input-group-sm > .input-group-btn > .btn { padding-right: 15px; padding-left: 15px; overflow-x: visible; - -webkit-overflow-scrolling: touch; border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; } .navbar-collapse.in { overflow-y: auto; @@ -4199,7 +4272,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { width: auto; border-top: 0; -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .navbar-collapse.collapse { display: block !important; @@ -4217,6 +4290,13 @@ select[multiple].input-group-sm > .input-group-btn > .btn { padding-left: 0; } } +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: 340px; @@ -4227,6 +4307,21 @@ select[multiple].input-group-sm > .input-group-btn > .btn { max-height: 200px; } } +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, @@ -4252,28 +4347,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn { border-radius: 0; } } -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; - } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 0; -} .navbar-brand { float: left; height: 50px; @@ -4298,8 +4371,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn { position: relative; float: right; padding: 9px 10px; - margin-top: 8px; margin-right: 15px; + margin-top: 8px; margin-bottom: 8px; background-color: transparent; background-image: none; @@ -4340,7 +4413,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { background-color: transparent; border: 0; -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header { @@ -4369,14 +4442,14 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } .navbar-form { padding: 10px 15px; - margin-top: 8px; margin-right: -15px; - margin-bottom: 8px; margin-left: -15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + margin-top: 8px; + margin-bottom: 8px; } @media (min-width: 768px) { .navbar-form .form-group { @@ -4445,7 +4518,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn { margin-left: 0; border: 0; -webkit-box-shadow: none; - box-shadow: none; + box-shadow: none; } } .navbar-nav > li > .dropdown-menu { @@ -4530,20 +4603,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn { color: #ccc; background-color: transparent; } -.navbar-default .navbar-toggle { - border-color: #ddd; -} -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; -} -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; -} -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; -} .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { @@ -4572,6 +4631,20 @@ select[multiple].input-group-sm > .input-group-btn > .btn { background-color: transparent; } } +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} .navbar-default .navbar-link { color: #777; } @@ -4626,20 +4699,6 @@ fieldset[disabled] .navbar-default .btn-link:focus { color: #444; background-color: transparent; } -.navbar-inverse .navbar-toggle { - border-color: #333; -} -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; -} -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; -} -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; -} .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { @@ -4674,6 +4733,20 @@ fieldset[disabled] .navbar-default .btn-link:focus { background-color: transparent; } } +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} .navbar-inverse .navbar-link { color: #9d9d9d; } @@ -4709,7 +4782,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { content: "/\00a0"; } .breadcrumb > .active { - color: #777; + color: #777777; } .pagination { display: inline-block; @@ -4732,6 +4805,15 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { background-color: #fff; border: 1px solid #ddd; } +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eeeeee; + border-color: #ddd; +} .pagination > li:first-child > a, .pagination > li:first-child > span { margin-left: 0; @@ -4743,15 +4825,6 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } -.pagination > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - z-index: 2; - color: #23527c; - background-color: #eee; - border-color: #ddd; -} .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, @@ -4770,7 +4843,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { - color: #777; + color: #777777; cursor: not-allowed; background-color: #fff; border-color: #ddd; @@ -4827,7 +4900,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pager li > a:hover, .pager li > a:focus { text-decoration: none; - background-color: #eee; + background-color: #eeeeee; } .pager .next > a, .pager .next > span { @@ -4841,21 +4914,21 @@ fieldset[disabled] .navbar-inverse .btn-link:focus { .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { - color: #777; + color: #777777; cursor: not-allowed; background-color: #fff; } .label { display: inline; - padding: .2em .6em .3em; + padding: 0.2em 0.6em 0.3em; font-size: 75%; - font-weight: bold; + font-weight: 700; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; - border-radius: .25em; + border-radius: 0.25em; } a.label:hover, a.label:focus { @@ -4871,7 +4944,7 @@ a.label:focus { top: -1px; } .label-default { - background-color: #777; + background-color: #777777; } .label-default[href]:hover, .label-default[href]:focus { @@ -4923,7 +4996,7 @@ a.label:focus { text-align: center; white-space: nowrap; vertical-align: middle; - background-color: #777; + background-color: #777777; border-radius: 10px; } .badge:empty { @@ -4963,7 +5036,7 @@ a.badge:focus { padding-bottom: 30px; margin-bottom: 30px; color: inherit; - background-color: #eee; + background-color: #eeeeee; } .jumbotron h1, .jumbotron .h1 { @@ -5009,9 +5082,9 @@ a.badge:focus { background-color: #fff; border: 1px solid #ddd; border-radius: 4px; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; - transition: border .2s ease-in-out; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; } .thumbnail > img, .thumbnail a > img { @@ -5025,7 +5098,7 @@ a.thumbnail.active { } .thumbnail .caption { padding: 9px; - color: #333; + color: #333333; } .alert { padding: 15px; @@ -5132,69 +5205,69 @@ a.thumbnail.active { overflow: hidden; background-color: #f5f5f5; border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } .progress-bar { float: left; - width: 0; + width: 0%; height: 100%; font-size: 12px; line-height: 20px; color: #fff; text-align: center; background-color: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - -o-transition: width .6s ease; - transition: width .6s ease; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; } .progress-striped .progress-bar, .progress-bar-striped { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -webkit-background-size: 40px 40px; - background-size: 40px 40px; + background-size: 40px 40px; } .progress.active .progress-bar, .progress-bar.active { -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; } .progress-bar-success { background-color: #5cb85c; } .progress-striped .progress-bar-success { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: #5bc0de; } .progress-striped .progress-bar-info { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: #f0ad4e; } .progress-striped .progress-bar-warning { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: #d9534f; } .progress-striped .progress-bar-danger { - background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); - background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } .media { margin-top: 15px; @@ -5265,32 +5338,12 @@ a.thumbnail.active { border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } -a.list-group-item, -button.list-group-item { - color: #555; -} -a.list-group-item .list-group-item-heading, -button.list-group-item .list-group-item-heading { - color: #333; -} -a.list-group-item:hover, -button.list-group-item:hover, -a.list-group-item:focus, -button.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -button.list-group-item { - width: 100%; - text-align: left; -} .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { - color: #777; + color: #777777; cursor: not-allowed; - background-color: #eee; + background-color: #eeeeee; } .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, @@ -5300,7 +5353,7 @@ button.list-group-item { .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { - color: #777; + color: #777777; } .list-group-item.active, .list-group-item.active:hover, @@ -5326,6 +5379,26 @@ button.list-group-item { .list-group-item.active:focus .list-group-item-text { color: #c7ddef; } +a.list-group-item, +button.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +button.list-group-item { + width: 100%; + text-align: left; +} .list-group-item-success { color: #3c763d; background-color: #dff0d8; @@ -5455,8 +5528,8 @@ button.list-group-item-danger.active:focus { background-color: #fff; border: 1px solid transparent; border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); } .panel-body { padding: 15px; @@ -5689,7 +5762,7 @@ button.list-group-item-danger.active:focus { border-color: #ddd; } .panel-default > .panel-heading { - color: #333; + color: #333333; background-color: #f5f5f5; border-color: #ddd; } @@ -5698,7 +5771,7 @@ button.list-group-item-danger.active:focus { } .panel-default > .panel-heading .badge { color: #f5f5f5; - background-color: #333; + background-color: #333333; } .panel-default > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #ddd; @@ -5826,12 +5899,12 @@ button.list-group-item-danger.active:focus { background-color: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } .well blockquote { border-color: #ddd; - border-color: rgba(0, 0, 0, .15); + border-color: rgba(0, 0, 0, 0.15); } .well-lg { padding: 24px; @@ -5849,7 +5922,7 @@ button.list-group-item-danger.active:focus { color: #000; text-shadow: 0 1px 0 #fff; filter: alpha(opacity=20); - opacity: .2; + opacity: 0.2; } .close:hover, .close:focus { @@ -5857,14 +5930,16 @@ button.list-group-item-danger.active:focus { text-decoration: none; cursor: pointer; filter: alpha(opacity=50); - opacity: .5; + opacity: 0.5; } button.close { - -webkit-appearance: none; padding: 0; cursor: pointer; background: transparent; border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } .modal-open { overflow: hidden; @@ -5882,19 +5957,21 @@ button.close { outline: 0; } .modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: -webkit-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out, -o-transform 0.3s ease-out; } .modal.in .modal-dialog { -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); } .modal-open .modal { overflow-x: hidden; @@ -5908,14 +5985,13 @@ button.close { .modal-content { position: relative; background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; + background-clip: padding-box; border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); + border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } .modal-backdrop { position: fixed; @@ -5932,7 +6008,7 @@ button.close { } .modal-backdrop.in { filter: alpha(opacity=50); - opacity: .5; + opacity: 0.5; } .modal-header { padding: 15px; @@ -5977,8 +6053,8 @@ button.close { margin: 30px auto; } .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); } .modal-sm { width: 300px; @@ -5994,10 +6070,10 @@ button.close { z-index: 1070; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; font-style: normal; - font-weight: normal; + font-weight: 400; line-height: 1.42857143; + line-break: auto; text-align: left; text-align: start; text-decoration: none; @@ -6008,14 +6084,13 @@ button.close { word-spacing: normal; word-wrap: normal; white-space: normal; + font-size: 12px; filter: alpha(opacity=0); opacity: 0; - - line-break: auto; } .tooltip.in { filter: alpha(opacity=90); - opacity: .9; + opacity: 0.9; } .tooltip.top { padding: 5px 0; @@ -6033,21 +6108,6 @@ button.close { padding: 0 5px; margin-left: -3px; } -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} .tooltip.top .tooltip-arrow { bottom: 0; left: 50%; @@ -6104,6 +6164,21 @@ button.close { border-width: 0 5px 5px; border-bottom-color: #000; } +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} .popover { position: absolute; top: 0; @@ -6113,10 +6188,10 @@ button.close { max-width: 276px; padding: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; font-style: normal; - font-weight: normal; + font-weight: 400; line-height: 1.42857143; + line-break: auto; text-align: left; text-align: start; text-decoration: none; @@ -6127,16 +6202,14 @@ button.close { word-spacing: normal; word-wrap: normal; white-space: normal; + font-size: 14px; background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; + background-clip: padding-box; border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); + border: 1px solid rgba(0, 0, 0, 0.2); border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - - line-break: auto; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } .popover.top { margin-top: -10px; @@ -6150,16 +6223,8 @@ button.close { .popover.left { margin-left: -10px; } -.popover-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; +.popover > .arrow { + border-width: 11px; } .popover > .arrow, .popover > .arrow:after { @@ -6170,9 +6235,6 @@ button.close { border-color: transparent; border-style: solid; } -.popover > .arrow { - border-width: 11px; -} .popover > .arrow:after { content: ""; border-width: 10px; @@ -6181,8 +6243,8 @@ button.close { bottom: -11px; left: 50%; margin-left: -11px; - border-top-color: #999; - border-top-color: rgba(0, 0, 0, .25); + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); border-bottom-width: 0; } .popover.top > .arrow:after { @@ -6196,8 +6258,8 @@ button.close { top: 50%; left: -11px; margin-top: -11px; - border-right-color: #999; - border-right-color: rgba(0, 0, 0, .25); + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); border-left-width: 0; } .popover.right > .arrow:after { @@ -6212,8 +6274,8 @@ button.close { left: 50%; margin-left: -11px; border-top-width: 0; - border-bottom-color: #999; - border-bottom-color: rgba(0, 0, 0, .25); + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); } .popover.bottom > .arrow:after { top: 1px; @@ -6227,8 +6289,8 @@ button.close { right: -11px; margin-top: -11px; border-right-width: 0; - border-left-color: #999; - border-left-color: rgba(0, 0, 0, .25); + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); } .popover.left > .arrow:after { right: 1px; @@ -6237,6 +6299,17 @@ button.close { border-right-width: 0; border-left-color: #fff; } +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} .carousel { position: relative; } @@ -6248,9 +6321,9 @@ button.close { .carousel-inner > .item { position: relative; display: none; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; + -webkit-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; } .carousel-inner > .item > img, .carousel-inner > .item > a > img { @@ -6258,33 +6331,34 @@ button.close { } @media all and (transform-3d), (-webkit-transform-3d) { .carousel-inner > .item { - -webkit-transition: -webkit-transform .6s ease-in-out; - -o-transition: -o-transform .6s ease-in-out; - transition: transform .6s ease-in-out; - + -webkit-transition: -webkit-transform 0.6s ease-in-out; + -o-transition: -o-transform 0.6s ease-in-out; + transition: -webkit-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out, -webkit-transform 0.6s ease-in-out, -o-transform 0.6s ease-in-out; -webkit-backface-visibility: hidden; - backface-visibility: hidden; + backface-visibility: hidden; -webkit-perspective: 1000px; - perspective: 1000px; + perspective: 1000px; } .carousel-inner > .item.next, .carousel-inner > .item.active.right { - left: 0; -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + left: 0; } .carousel-inner > .item.prev, .carousel-inner > .item.active.left { - left: 0; -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + left: 0; } .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { - left: 0; -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + left: 0; } } .carousel-inner > .active, @@ -6326,26 +6400,26 @@ button.close { font-size: 20px; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); background-color: rgba(0, 0, 0, 0); filter: alpha(opacity=50); - opacity: .5; + opacity: 0.5; } .carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); background-repeat: repeat-x; } .carousel-control.right { right: 0; left: auto; - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); background-repeat: repeat-x; } @@ -6353,9 +6427,9 @@ button.close { .carousel-control:focus { color: #fff; text-decoration: none; - filter: alpha(opacity=90); outline: 0; - opacity: .9; + filter: alpha(opacity=90); + opacity: 0.9; } .carousel-control .icon-prev, .carousel-control .icon-next, @@ -6385,10 +6459,10 @@ button.close { line-height: 1; } .carousel-control .icon-prev:before { - content: '\2039'; + content: "\2039"; } .carousel-control .icon-next:before { - content: '\203a'; + content: "\203a"; } .carousel-indicators { position: absolute; @@ -6429,7 +6503,7 @@ button.close { padding-bottom: 20px; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } .carousel-caption .btn { text-shadow: none; @@ -6757,4 +6831,4 @@ button.close { display: none !important; } } -/*# sourceMappingURL=bootstrap.css.map */ +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/view/theme/frio/frameworks/bootstrap/css/bootstrap.css.map b/view/theme/frio/frameworks/bootstrap/css/bootstrap.css.map index 09f8cda78..caac3e612 100644 --- a/view/theme/frio/frameworks/bootstrap/css/bootstrap.css.map +++ b/view/theme/frio/frameworks/bootstrap/css/bootstrap.css.map @@ -1 +1 @@ -{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,iBAAA;CH8O9C;AG7OmC;EAAW,iBAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EErDA,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNqkCD;AIxgCD;EACE,UAAA;CJ0gCD;AIpgCD;EACE,uBAAA;CJsgCD;AIlgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CPglCD;AItgCD;EACE,mBAAA;CJwgCD;AIlgCD;EACE,aAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CPgmCD;AIlgCD;EACE,mBAAA;CJogCD;AI9/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJggCD;AIx/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJ0/BD;AIl/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJo/BH;AIz+BD;EACE,gBAAA;CJ2+BD;AQloCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR8oCD;AQnpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRoqCH;AQhqCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRqqCD;AQzqCD;;;;;;;;;;;;EAQI,eAAA;CR+qCH;AQ5qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRirCD;AQrrCD;;;;;;;;;;;;EAQI,eAAA;CR2rCH;AQvrCD;;EAAU,gBAAA;CR2rCT;AQ1rCD;;EAAU,gBAAA;CR8rCT;AQ7rCD;;EAAU,gBAAA;CRisCT;AQhsCD;;EAAU,gBAAA;CRosCT;AQnsCD;;EAAU,gBAAA;CRusCT;AQtsCD;;EAAU,gBAAA;CR0sCT;AQpsCD;EACE,iBAAA;CRssCD;AQnsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRqsCD;AQhsCD;EAwOA;IA1OI,gBAAA;GRssCD;CACF;AQ9rCD;;EAEE,eAAA;CRgsCD;AQ7rCD;;EAEE,0BAAA;EACA,cAAA;CR+rCD;AQ3rCD;EAAuB,iBAAA;CR8rCtB;AQ7rCD;EAAuB,kBAAA;CRgsCtB;AQ/rCD;EAAuB,mBAAA;CRksCtB;AQjsCD;EAAuB,oBAAA;CRosCtB;AQnsCD;EAAuB,oBAAA;CRssCtB;AQnsCD;EAAuB,0BAAA;CRssCtB;AQrsCD;EAAuB,0BAAA;CRwsCtB;AQvsCD;EAAuB,2BAAA;CR0sCtB;AQvsCD;EACE,eAAA;CRysCD;AQvsCD;ECrGE,eAAA;CT+yCD;AS9yCC;;EAEE,eAAA;CTgzCH;AQ3sCD;ECxGE,eAAA;CTszCD;ASrzCC;;EAEE,eAAA;CTuzCH;AQ/sCD;EC3GE,eAAA;CT6zCD;AS5zCC;;EAEE,eAAA;CT8zCH;AQntCD;EC9GE,eAAA;CTo0CD;ASn0CC;;EAEE,eAAA;CTq0CH;AQvtCD;ECjHE,eAAA;CT20CD;AS10CC;;EAEE,eAAA;CT40CH;AQvtCD;EAGE,YAAA;EE3HA,0BAAA;CVm1CD;AUl1CC;;EAEE,0BAAA;CVo1CH;AQztCD;EE9HE,0BAAA;CV01CD;AUz1CC;;EAEE,0BAAA;CV21CH;AQ7tCD;EEjIE,0BAAA;CVi2CD;AUh2CC;;EAEE,0BAAA;CVk2CH;AQjuCD;EEpIE,0BAAA;CVw2CD;AUv2CC;;EAEE,0BAAA;CVy2CH;AQruCD;EEvIE,0BAAA;CV+2CD;AU92CC;;EAEE,0BAAA;CVg3CH;AQpuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRsuCD;AQ9tCD;;EAEE,cAAA;EACA,oBAAA;CRguCD;AQnuCD;;;;EAMI,iBAAA;CRmuCH;AQ5tCD;EACE,gBAAA;EACA,iBAAA;CR8tCD;AQ1tCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR6tCD;AQ/tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR6tCH;AQxtCD;EACE,cAAA;EACA,oBAAA;CR0tCD;AQxtCD;;EAEE,wBAAA;CR0tCD;AQxtCD;EACE,kBAAA;CR0tCD;AQxtCD;EACE,eAAA;CR0tCD;AQjsCD;EA6EA;IAvFM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXs6CC;EQ9nCH;IAhFM,mBAAA;GRitCH;CACF;AQxsCD;;EAGE,aAAA;EACA,kCAAA;CRysCD;AQvsCD;EACE,eAAA;EA9IqB,0BAAA;CRw1CtB;AQrsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRusCD;AQlsCG;;;EACE,iBAAA;CRssCL;AQhtCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRksCH;AQhsCG;;;EACE,uBAAA;CRosCL;AQ5rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR8rCD;AQxrCG;;;;;;EAAW,YAAA;CRgsCd;AQ/rCG;;;;;;EACE,uBAAA;CRssCL;AQhsCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRksCD;AYx+CD;;;;EAIE,+DAAA;CZ0+CD;AYt+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZw+CD;AYp+CD;EACE,iBAAA;EACA,eAAA;EACA,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZs+CD;AY5+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZs+CH;AYj+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;CZm+CD;AY9+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZk+CH;AY79CD;EACE,kBAAA;EACA,mBAAA;CZ+9CD;AazhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd+hDD;AazhDC;EAqEF;IAvEI,aAAA;Gb+hDD;CACF;Aa3hDC;EAkEF;IApEI,aAAA;GbiiDD;CACF;Aa7hDD;EA+DA;IAjEI,cAAA;GbmiDD;CACF;Aa1hDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdojDD;AavhDD;ECvBE,mBAAA;EACA,oBAAA;CdijDD;AejjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfijDL;AejiDG;EACE,YAAA;CfmiDL;Ae5hDC;EACE,YAAA;Cf8hDH;Ae/hDC;EACE,oBAAA;CfiiDH;AeliDC;EACE,oBAAA;CfoiDH;AeriDC;EACE,WAAA;CfuiDH;AexiDC;EACE,oBAAA;Cf0iDH;Ae3iDC;EACE,oBAAA;Cf6iDH;Ae9iDC;EACE,WAAA;CfgjDH;AejjDC;EACE,oBAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,WAAA;CfyjDH;Ae1jDC;EACE,oBAAA;Cf4jDH;Ae7jDC;EACE,mBAAA;Cf+jDH;AejjDC;EACE,YAAA;CfmjDH;AepjDC;EACE,oBAAA;CfsjDH;AevjDC;EACE,oBAAA;CfyjDH;Ae1jDC;EACE,WAAA;Cf4jDH;Ae7jDC;EACE,oBAAA;Cf+jDH;AehkDC;EACE,oBAAA;CfkkDH;AenkDC;EACE,WAAA;CfqkDH;AetkDC;EACE,oBAAA;CfwkDH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBsrED;AgBzrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,2BAAA;ChBsrEP;AgBpsED;EAoBI,uBAAA;EACA,8BAAA;ChBmrEH;AgBxsED;;;;;;EA8BQ,cAAA;ChBkrEP;AgBhtED;EAoCI,2BAAA;ChB+qEH;AgBntED;EAyCI,uBAAA;ChB6qEH;AgBtqED;;;;;;EAOQ,aAAA;ChBuqEP;AgB5pED;EACE,uBAAA;ChB8pED;AgB/pED;;;;;;EAQQ,uBAAA;ChB+pEP;AgBvqED;;EAeM,yBAAA;ChB4pEL;AgBlpED;EAEI,0BAAA;ChBmpEH;AgB1oED;EAEI,0BAAA;ChB2oEH;AgBloED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBooED;AgB/nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBkoEL;AiB9wEC;;;;;;;;;;;;EAOI,0BAAA;CjBqxEL;AiB/wEC;;;;;EAMI,0BAAA;CjBgxEL;AiBnyEC;;;;;;;;;;;;EAOI,0BAAA;CjB0yEL;AiBpyEC;;;;;EAMI,0BAAA;CjBqyEL;AiBxzEC;;;;;;;;;;;;EAOI,0BAAA;CjB+zEL;AiBzzEC;;;;;EAMI,0BAAA;CjB0zEL;AiB70EC;;;;;;;;;;;;EAOI,0BAAA;CjBo1EL;AiB90EC;;;;;EAMI,0BAAA;CjB+0EL;AiBl2EC;;;;;;;;;;;;EAOI,0BAAA;CjBy2EL;AiBn2EC;;;;;EAMI,0BAAA;CjBo2EL;AgBltED;EACE,iBAAA;EACA,kBAAA;ChBotED;AgBvpED;EACA;IA3DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,uBAAA;GhBqtED;EgB9pEH;IAnDM,iBAAA;GhBotEH;EgBjqEH;;;;;;IA1CY,oBAAA;GhBmtET;EgBzqEH;IAlCM,UAAA;GhB8sEH;EgB5qEH;;;;;;IAzBY,eAAA;GhB6sET;EgBprEH;;;;;;IArBY,gBAAA;GhBitET;EgB5rEH;;;;IARY,iBAAA;GhB0sET;CACF;AkBp6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBm6ED;AkBh6ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBk6ED;AkB/5ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBi6ED;AkBt5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL63ET;AkBt5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBw5ED;AkBr5ED;EACE,eAAA;ClBu5ED;AkBn5ED;EACE,eAAA;EACA,YAAA;ClBq5ED;AkBj5ED;;EAEE,aAAA;ClBm5ED;AkB/4ED;;;EZvEE,qBAAA;EAEA,2CAAA;EACA,qBAAA;CN09ED;AkB/4ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClBi5ED;AkBv3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CL0zET;AmBl8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CL27ET;AK15EC;EACE,YAAA;EACA,WAAA;CL45EH;AK15EC;EAA0B,YAAA;CL65E3B;AK55EC;EAAgC,YAAA;CL+5EjC;AkBn4EC;EACE,UAAA;EACA,8BAAA;ClBq4EH;AkB73EC;;;EAGE,0BAAA;EACA,WAAA;ClB+3EH;AkB53EC;;EAEE,oBAAA;ClB83EH;AkB13EC;EACE,aAAA;ClB43EH;AkBh3ED;EACE,yBAAA;ClBk3ED;AkB10ED;EAtBI;;;;IACE,kBAAA;GlBs2EH;EkBn2EC;;;;;;;;IAEE,kBAAA;GlB22EH;EkBx2EC;;;;;;;;IAEE,kBAAA;GlBg3EH;CACF;AkBt2ED;EACE,oBAAA;ClBw2ED;AkBh2ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBk2ED;AkBv2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBm2EH;AkBh2ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBk2ED;AkB/1ED;;EAEE,iBAAA;ClBi2ED;AkB71ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClB+1ED;AkB71ED;;EAEE,cAAA;EACA,kBAAA;ClB+1ED;AkBt1EC;;;;;;EAGE,oBAAA;ClB21EH;AkBr1EC;;;;EAEE,oBAAA;ClBy1EH;AkBn1EC;;;;EAGI,oBAAA;ClBs1EL;AkB30ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClB20ED;AkBz0EC;;EAEE,gBAAA;EACA,iBAAA;ClB20EH;AkB9zED;ECnQE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBokFD;AmBlkFC;EACE,aAAA;EACA,kBAAA;CnBokFH;AmBjkFC;;EAEE,aAAA;CnBmkFH;AkB10ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClB20EH;AkBj1ED;EASI,aAAA;EACA,kBAAA;ClB20EH;AkBr1ED;;EAcI,aAAA;ClB20EH;AkBz1ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClB20EH;AkBv0ED;EC/RE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBymFD;AmBvmFC;EACE,aAAA;EACA,kBAAA;CnBymFH;AmBtmFC;;EAEE,aAAA;CnBwmFH;AkBn1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBo1EH;AkB11ED;EASI,aAAA;EACA,kBAAA;ClBo1EH;AkB91ED;;EAcI,aAAA;ClBo1EH;AkBl2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBo1EH;AkB30ED;EAEE,mBAAA;ClB40ED;AkB90ED;EAMI,sBAAA;ClB20EH;AkBv0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBy0ED;AkBv0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBy0ED;AkBv0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBy0ED;AkBr0ED;;;;;;;;;;EC1ZI,eAAA;CnB2uFH;AkBj1ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL4rFT;AmB1uFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CLisFT;AkB31ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnB0uFH;AkBh2ED;ECtYI,eAAA;CnByuFH;AkBh2ED;;;;;;;;;;EC7ZI,eAAA;CnBywFH;AkB52ED;ECzZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL0tFT;AmBxwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL+tFT;AkBt3ED;EC/YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBwwFH;AkB33ED;ECzYI,eAAA;CnBuwFH;AkB33ED;;;;;;;;;;EChaI,eAAA;CnBuyFH;AkBv4ED;EC5ZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwvFT;AmBtyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6vFT;AkBj5ED;EClZI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBsyFH;AkBt5ED;EC5YI,eAAA;CnBqyFH;AkBl5EC;EACE,UAAA;ClBo5EH;AkBl5EC;EACE,OAAA;ClBo5EH;AkB14ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB44ED;AkBzzED;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB23EH;EkBvvEH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBy3EH;EkB5vEH;IAxHM,sBAAA;GlBu3EH;EkB/vEH;IApHM,sBAAA;IACA,uBAAA;GlBs3EH;EkBnwEH;;;IA9GQ,YAAA;GlBs3EL;EkBxwEH;IAxGM,YAAA;GlBm3EH;EkB3wEH;IApGM,iBAAA;IACA,uBAAA;GlBk3EH;EkB/wEH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB+2EH;EkBtxEH;;IAtFQ,gBAAA;GlBg3EL;EkB1xEH;;IAjFM,mBAAA;IACA,eAAA;GlB+2EH;EkB/xEH;IA3EM,OAAA;GlB62EH;CACF;AkBn2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClBg2EH;AkB32ED;;EAiBI,iBAAA;ClB81EH;AkB/2ED;EJthBE,mBAAA;EACA,oBAAA;Cdw4FD;AkB50EC;EAyBF;IAnCM,kBAAA;IACA,iBAAA;IACA,iBAAA;GlB01EH;CACF;AkB13ED;EAwCI,YAAA;ClBq1EH;AkBv0EC;EAUF;IAdQ,kBAAA;IACA,gBAAA;GlB+0EL;CACF;AkBr0EC;EAEF;IANQ,iBAAA;IACA,gBAAA;GlB60EL;CACF;AoBt6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC0CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB+JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CLiuFT;AoBz6FG;;;;;;EdrBF,qBAAA;EAEA,2CAAA;EACA,qBAAA;CNq8FD;AoB76FC;;;EAGE,YAAA;EACA,sBAAA;CpB+6FH;AoB56FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLo5FT;AoB56FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CL65FT;AoB56FG;;EAEE,qBAAA;CpB86FL;AoBr6FD;EC3DE,YAAA;EACA,uBAAA;EACA,mBAAA;CrBm+FD;AqBj+FC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBm+FP;AqBj+FG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBy+FT;AqBt+FC;;;EAGE,uBAAA;CrBw+FH;AqBn+FG;;;;;;;;;EAGE,uBAAA;EACI,mBAAA;CrB2+FT;AoB19FD;ECZI,YAAA;EACA,uBAAA;CrBy+FH;AoB39FD;EC9DE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB4hGD;AqB1hGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB4hGP;AqB1hGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB4hGP;AqB1hGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB4hGP;AqB1hGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBkiGT;AqB/hGC;;;EAGE,uBAAA;CrBiiGH;AqB5hGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBoiGT;AoBhhGD;ECfI,eAAA;EACA,uBAAA;CrBkiGH;AoBhhGD;EClEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBqlGD;AqBnlGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBqlGP;AqBnlGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBqlGP;AqBnlGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBqlGP;AqBnlGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2lGT;AqBxlGC;;;EAGE,uBAAA;CrB0lGH;AqBrlGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB6lGT;AoBrkGD;ECnBI,eAAA;EACA,uBAAA;CrB2lGH;AoBrkGD;ECtEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB8oGD;AqB5oGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB8oGP;AqB5oGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB8oGP;AqB5oGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB8oGP;AqB5oGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBopGT;AqBjpGC;;;EAGE,uBAAA;CrBmpGH;AqB9oGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBspGT;AoB1nGD;ECvBI,eAAA;EACA,uBAAA;CrBopGH;AoB1nGD;EC1EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBusGD;AqBrsGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBusGP;AqBrsGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBusGP;AqBrsGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBusGP;AqBrsGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6sGT;AqB1sGC;;;EAGE,uBAAA;CrB4sGH;AqBvsGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB+sGT;AoB/qGD;EC3BI,eAAA;EACA,uBAAA;CrB6sGH;AoB/qGD;EC9EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBgwGD;AqB9vGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBgwGP;AqB9vGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBgwGP;AqB9vGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBgwGP;AqB9vGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBswGT;AqBnwGC;;;EAGE,uBAAA;CrBqwGH;AqBhwGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBwwGT;AoBpuGD;EC/BI,eAAA;EACA,uBAAA;CrBswGH;AoB/tGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpBiuGD;AoB/tGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CLqwGT;AoBhuGC;;;;EAIE,0BAAA;CpBkuGH;AoBhuGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpBkuGH;AoB9tGG;;;;EAEE,eAAA;EACA,sBAAA;CpBkuGL;AoBztGD;;ECxEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBqyGD;AoB5tGD;;EC5EE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrB4yGD;AoB/tGD;;EChFE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBmzGD;AoB9tGD;EACE,eAAA;EACA,YAAA;CpBguGD;AoB5tGD;EACE,gBAAA;CpB8tGD;AoBvtGC;;;EACE,YAAA;CpB2tGH;AuBr3GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CLosGT;AuBx3GC;EACE,WAAA;CvB03GH;AuBt3GD;EACE,cAAA;CvBw3GD;AuBt3GC;EAAY,eAAA;CvBy3Gb;AuBx3GC;EAAY,mBAAA;CvB23Gb;AuB13GC;EAAY,yBAAA;CvB63Gb;AuB13GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CL8sGT;AwBx5GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxB05GD;AwBt5GD;;EAEE,mBAAA;CxBw5GD;AwBp5GD;EACE,WAAA;CxBs5GD;AwBl5GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxBq5GD;AwBh5GC;EACE,SAAA;EACA,WAAA;CxBk5GH;AwB36GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBu8GD;AwBj7GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBi5GH;AwB34GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxB64GH;AwBv4GC;;;EAGE,YAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxBy4GH;AwBh4GC;;;EAGE,eAAA;CxBk4GH;AwB93GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxBg4GH;AwB33GD;EAGI,eAAA;CxB23GH;AwB93GD;EAQI,WAAA;CxBy3GH;AwBj3GD;EACE,WAAA;EACA,SAAA;CxBm3GD;AwB32GD;EACE,QAAA;EACA,YAAA;CxB62GD;AwBz2GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxB22GD;AwBv2GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxBy2GD;AwBr2GD;EACE,SAAA;EACA,WAAA;CxBu2GD;AwB/1GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxB+1GH;AwBt2GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxB+1GH;AwB10GD;EAXE;IApEA,WAAA;IACA,SAAA;GxB65GC;EwB11GD;IA1DA,QAAA;IACA,YAAA;GxBu5GC;CACF;A2BviHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3ByiHD;A2B7iHD;;EAMI,mBAAA;EACA,YAAA;C3B2iHH;A2BziHG;;;;;;;;EAIE,WAAA;C3B+iHL;A2BziHD;;;;EAKI,kBAAA;C3B0iHH;A2BriHD;EACE,kBAAA;C3BuiHD;A2BxiHD;;;EAOI,YAAA;C3BsiHH;A2B7iHD;;;EAYI,iBAAA;C3BsiHH;A2BliHD;EACE,iBAAA;C3BoiHD;A2BhiHD;EACE,eAAA;C3BkiHD;A2BjiHC;EClDA,8BAAA;EACG,2BAAA;C5BslHJ;A2BhiHD;;EC/CE,6BAAA;EACG,0BAAA;C5BmlHJ;A2B/hHD;EACE,YAAA;C3BiiHD;A2B/hHD;EACE,iBAAA;C3BiiHD;A2B/hHD;;ECnEE,8BAAA;EACG,2BAAA;C5BsmHJ;A2B9hHD;ECjEE,6BAAA;EACG,0BAAA;C5BkmHJ;A2B7hHD;;EAEE,WAAA;C3B+hHD;A2B9gHD;EACE,kBAAA;EACA,mBAAA;C3BghHD;A2B9gHD;EACE,mBAAA;EACA,oBAAA;C3BghHD;A2B3gHD;EtB/CE,yDAAA;EACQ,iDAAA;CL6jHT;A2B3gHC;EtBnDA,yBAAA;EACQ,iBAAA;CLikHT;A2BxgHD;EACE,eAAA;C3B0gHD;A2BvgHD;EACE,wBAAA;EACA,uBAAA;C3BygHD;A2BtgHD;EACE,wBAAA;C3BwgHD;A2BjgHD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3BkgHH;A2BzgHD;EAcM,YAAA;C3B8/GL;A2B5gHD;;;;EAsBI,iBAAA;EACA,eAAA;C3B4/GH;A2Bv/GC;EACE,iBAAA;C3By/GH;A2Bv/GC;EC3KA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B+pHF;A2Bz/GC;EC/KA,2BAAA;EACC,0BAAA;EAOD,gCAAA;EACC,+BAAA;C5BqqHF;A2B1/GD;EACE,iBAAA;C3B4/GD;A2B1/GD;;EC/KE,8BAAA;EACC,6BAAA;C5B6qHF;A2Bz/GD;EC7LE,2BAAA;EACC,0BAAA;C5ByrHF;A2Br/GD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3Bu/GD;A2B3/GD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3Bw/GH;A2BjgHD;EAYI,YAAA;C3Bw/GH;A2BpgHD;EAgBI,WAAA;C3Bu/GH;A2Bt+GD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3Bu+GL;A6BjtHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BmtHD;A6BhtHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7BktHH;A6B3tHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7B0sHH;A6BxsHG;EACE,WAAA;C7B0sHL;A6BhsHD;;;EV0BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnB2qHD;AmBzqHC;;;EACE,aAAA;EACA,kBAAA;CnB6qHH;AmB1qHC;;;;;;EAEE,aAAA;CnBgrHH;A6BltHD;;;EVqBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBksHD;AmBhsHC;;;EACE,aAAA;EACA,kBAAA;CnBosHH;AmBjsHC;;;;;;EAEE,aAAA;CnBusHH;A6BhuHD;;;EAGE,oBAAA;C7BkuHD;A6BhuHC;;;EACE,iBAAA;C7BouHH;A6BhuHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7BkuHD;A6B7tHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;C7B+tHD;A6B5tHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7B8tHH;A6B5tHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7B8tHH;A6BlvHD;;EA0BI,cAAA;C7B4tHH;A6BvtHD;;;;;;;EDpGE,8BAAA;EACG,2BAAA;C5Bo0HJ;A6BxtHD;EACE,gBAAA;C7B0tHD;A6BxtHD;;;;;;;EDxGE,6BAAA;EACG,0BAAA;C5By0HJ;A6BztHD;EACE,eAAA;C7B2tHD;A6BttHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7BstHD;A6B3tHD;EAUI,mBAAA;C7BotHH;A6B9tHD;EAYM,kBAAA;C7BqtHL;A6BltHG;;;EAGE,WAAA;C7BotHL;A6B/sHC;;EAGI,mBAAA;C7BgtHL;A6B7sHC;;EAGI,WAAA;EACA,kBAAA;C7B8sHL;A8B72HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9B+2HD;A8Bl3HD;EAOI,mBAAA;EACA,eAAA;C9B82HH;A8Bt3HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B82HL;A8B72HK;;EAEE,sBAAA;EACA,0BAAA;C9B+2HP;A8B12HG;EACE,eAAA;C9B42HL;A8B12HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9B42HP;A8Br2HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bu2HL;A8Bh5HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBs5HD;A8Bt5HD;EA0DI,gBAAA;C9B+1HH;A8Bt1HD;EACE,8BAAA;C9Bw1HD;A8Bz1HD;EAGI,YAAA;EAEA,oBAAA;C9Bw1HH;A8B71HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bu1HL;A8Bt1HK;EACE,mCAAA;C9Bw1HP;A8Bl1HK;;;EAGE,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,iCAAA;EACA,gBAAA;C9Bo1HP;A8B/0HC;EAqDA,YAAA;EA8BA,iBAAA;C9BgwHD;A8Bn1HC;EAwDE,YAAA;C9B8xHH;A8Bt1HC;EA0DI,mBAAA;EACA,mBAAA;C9B+xHL;A8B11HC;EAgEE,UAAA;EACA,WAAA;C9B6xHH;A8BjxHD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B4xHH;E8B5tHH;IA9DQ,iBAAA;G9B6xHL;CACF;A8Bv2HC;EAuFE,gBAAA;EACA,mBAAA;C9BmxHH;A8B32HC;;;EA8FE,uBAAA;C9BkxHH;A8BpwHD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9BixHH;E8B9uHH;;;IA9BM,0BAAA;G9BixHH;CACF;A8Bl3HD;EAEI,YAAA;C9Bm3HH;A8Br3HD;EAMM,mBAAA;C9Bk3HL;A8Bx3HD;EASM,iBAAA;C9Bk3HL;A8B72HK;;;EAGE,YAAA;EACA,0BAAA;C9B+2HP;A8Bv2HD;EAEI,YAAA;C9Bw2HH;A8B12HD;EAIM,gBAAA;EACA,eAAA;C9By2HL;A8B71HD;EACE,YAAA;C9B+1HD;A8Bh2HD;EAII,YAAA;C9B+1HH;A8Bn2HD;EAMM,mBAAA;EACA,mBAAA;C9Bg2HL;A8Bv2HD;EAYI,UAAA;EACA,WAAA;C9B81HH;A8Bl1HD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B61HH;E8B7xHH;IA9DQ,iBAAA;G9B81HL;CACF;A8Bt1HD;EACE,iBAAA;C9Bw1HD;A8Bz1HD;EAKI,gBAAA;EACA,mBAAA;C9Bu1HH;A8B71HD;;;EAYI,uBAAA;C9Bs1HH;A8Bx0HD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9Bq1HH;E8BlzHH;;;IA9BM,0BAAA;G9Bq1HH;CACF;A8B50HD;EAEI,cAAA;C9B60HH;A8B/0HD;EAKI,eAAA;C9B60HH;A8Bp0HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5BijIF;A+B3iID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B6iID;A+BriID;EA8nBA;IAhoBI,mBAAA;G/B2iID;CACF;A+B5hID;EAgnBA;IAlnBI,YAAA;G/BkiID;CACF;A+BphID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BqhID;A+BnhIC;EACE,iBAAA;C/BqhIH;A+Bz/HD;EA6jBA;IArlBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BqhID;E+BnhIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BqhIH;E+BlhIC;IACE,oBAAA;G/BohIH;E+B/gIC;;;IAGE,gBAAA;IACA,iBAAA;G/BihIH;CACF;A+B7gID;;EAGI,kBAAA;C/B8gIH;A+BzgIC;EAmjBF;;IArjBM,kBAAA;G/BghIH;CACF;A+BvgID;;;;EAII,oBAAA;EACA,mBAAA;C/BygIH;A+BngIC;EAgiBF;;;;IAniBM,gBAAA;IACA,eAAA;G/B6gIH;CACF;A+BjgID;EACE,cAAA;EACA,sBAAA;C/BmgID;A+B9/HD;EA8gBA;IAhhBI,iBAAA;G/BogID;CACF;A+BhgID;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/BkgID;A+B5/HD;EAggBA;;IAlgBI,iBAAA;G/BmgID;CACF;A+BjgID;EACE,OAAA;EACA,sBAAA;C/BmgID;A+BjgID;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BmgID;A+B7/HD;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/B+/HD;A+B7/HC;;EAEE,sBAAA;C/B+/HH;A+BxgID;EAaI,eAAA;C/B8/HH;A+Br/HD;EALI;;IAEE,mBAAA;G/B6/HH;CACF;A+Bn/HD;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/Bs/HD;A+Bl/HC;EACE,WAAA;C/Bo/HH;A+BlgID;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/Bk/HH;A+BxgID;EAyBI,gBAAA;C/Bk/HH;A+B5+HD;EAqbA;IAvbI,cAAA;G/Bk/HD;CACF;A+Bz+HD;EACE,oBAAA;C/B2+HD;A+B5+HD;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/B2+HH;A+B/8HC;EA2YF;IAjaM,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/By+HH;E+B9kHH;;IAxZQ,2BAAA;G/B0+HL;E+BllHH;IArZQ,kBAAA;G/B0+HL;E+Bz+HK;;IAEE,uBAAA;G/B2+HP;CACF;A+Bz9HD;EA+XA;IA1YI,YAAA;IACA,UAAA;G/Bw+HD;E+B/lHH;IAtYM,YAAA;G/Bw+HH;E+BlmHH;IApYQ,kBAAA;IACA,qBAAA;G/By+HL;CACF;A+B99HD;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChC+vID;AkBzuHD;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB2yHH;EkBvqHH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlByyHH;EkB5qHH;IAxHM,sBAAA;GlBuyHH;EkB/qHH;IApHM,sBAAA;IACA,uBAAA;GlBsyHH;EkBnrHH;;;IA9GQ,YAAA;GlBsyHL;EkBxrHH;IAxGM,YAAA;GlBmyHH;EkB3rHH;IApGM,iBAAA;IACA,uBAAA;GlBkyHH;EkB/rHH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB+xHH;EkBtsHH;;IAtFQ,gBAAA;GlBgyHL;EkB1sHH;;IAjFM,mBAAA;IACA,eAAA;GlB+xHH;EkB/sHH;IA3EM,OAAA;GlB6xHH;CACF;A+BvgIC;EAmWF;IAzWM,mBAAA;G/BihIH;E+B/gIG;IACE,iBAAA;G/BihIL;CACF;A+BhgID;EAoVA;IA5VI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLswIP;CACF;A+BtgID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B60IF;A+BtgID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B40IF;A+BlgID;EChVE,gBAAA;EACA,mBAAA;ChCq1ID;A+BngIC;ECnVA,iBAAA;EACA,oBAAA;ChCy1ID;A+BpgIC;ECtVA,iBAAA;EACA,oBAAA;ChC61ID;A+B9/HD;EChWE,iBAAA;EACA,oBAAA;ChCi2ID;A+B1/HD;EAsSA;IA1SI,YAAA;IACA,kBAAA;IACA,mBAAA;G/BkgID;CACF;A+Br+HD;EAhBE;IExWA,uBAAA;GjCi2IC;E+Bx/HD;IE5WA,wBAAA;IF8WE,oBAAA;G/B0/HD;E+B5/HD;IAKI,gBAAA;G/B0/HH;CACF;A+Bj/HD;EACE,0BAAA;EACA,sBAAA;C/Bm/HD;A+Br/HD;EAKI,YAAA;C/Bm/HH;A+Bl/HG;;EAEE,eAAA;EACA,8BAAA;C/Bo/HL;A+B7/HD;EAcI,YAAA;C/Bk/HH;A+BhgID;EAmBM,YAAA;C/Bg/HL;A+B9+HK;;EAEE,YAAA;EACA,8BAAA;C/Bg/HP;A+B5+HK;;;EAGE,YAAA;EACA,0BAAA;C/B8+HP;A+B1+HK;;;EAGE,YAAA;EACA,8BAAA;C/B4+HP;A+BphID;EA8CI,mBAAA;C/By+HH;A+Bx+HG;;EAEE,uBAAA;C/B0+HL;A+B3hID;EAoDM,uBAAA;C/B0+HL;A+B9hID;;EA0DI,sBAAA;C/Bw+HH;A+Bj+HK;;;EAGE,0BAAA;EACA,YAAA;C/Bm+HP;A+Bl8HC;EAoKF;IA7LU,YAAA;G/B+9HP;E+B99HO;;IAEE,YAAA;IACA,8BAAA;G/Bg+HT;E+B59HO;;;IAGE,YAAA;IACA,0BAAA;G/B89HT;E+B19HO;;;IAGE,YAAA;IACA,8BAAA;G/B49HT;CACF;A+B9jID;EA8GI,YAAA;C/Bm9HH;A+Bl9HG;EACE,YAAA;C/Bo9HL;A+BpkID;EAqHI,YAAA;C/Bk9HH;A+Bj9HG;;EAEE,YAAA;C/Bm9HL;A+B/8HK;;;;EAEE,YAAA;C/Bm9HP;A+B38HD;EACE,uBAAA;EACA,sBAAA;C/B68HD;A+B/8HD;EAKI,eAAA;C/B68HH;A+B58HG;;EAEE,YAAA;EACA,8BAAA;C/B88HL;A+Bv9HD;EAcI,eAAA;C/B48HH;A+B19HD;EAmBM,eAAA;C/B08HL;A+Bx8HK;;EAEE,YAAA;EACA,8BAAA;C/B08HP;A+Bt8HK;;;EAGE,YAAA;EACA,0BAAA;C/Bw8HP;A+Bp8HK;;;EAGE,YAAA;EACA,8BAAA;C/Bs8HP;A+B9+HD;EA+CI,mBAAA;C/Bk8HH;A+Bj8HG;;EAEE,uBAAA;C/Bm8HL;A+Br/HD;EAqDM,uBAAA;C/Bm8HL;A+Bx/HD;;EA2DI,sBAAA;C/Bi8HH;A+B37HK;;;EAGE,0BAAA;EACA,YAAA;C/B67HP;A+Bt5HC;EAwBF;IAvDU,sBAAA;G/By7HP;E+Bl4HH;IApDU,0BAAA;G/By7HP;E+Br4HH;IAjDU,eAAA;G/By7HP;E+Bx7HO;;IAEE,YAAA;IACA,8BAAA;G/B07HT;E+Bt7HO;;;IAGE,YAAA;IACA,0BAAA;G/Bw7HT;E+Bp7HO;;;IAGE,YAAA;IACA,8BAAA;G/Bs7HT;CACF;A+B9hID;EA+GI,eAAA;C/Bk7HH;A+Bj7HG;EACE,YAAA;C/Bm7HL;A+BpiID;EAsHI,eAAA;C/Bi7HH;A+Bh7HG;;EAEE,YAAA;C/Bk7HL;A+B96HK;;;;EAEE,YAAA;C/Bk7HP;AkC5jJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC8jJD;AkCnkJD;EAQI,sBAAA;ClC8jJH;AkCtkJD;EAWM,kBAAA;EACA,eAAA;EACA,YAAA;ClC8jJL;AkC3kJD;EAkBI,eAAA;ClC4jJH;AmChlJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnCklJD;AmCtlJD;EAOI,gBAAA;CnCklJH;AmCzlJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,kBAAA;CnCmlJL;AmCjlJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B8lJJ;AmChlJG;;EPvBF,gCAAA;EACG,6BAAA;C5B2mJJ;AmC3kJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CnC+kJL;AmCzkJG;;;;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC8kJL;AmCroJD;;;;;;EAkEM,eAAA;EACA,uBAAA;EACA,mBAAA;EACA,oBAAA;CnC2kJL;AmClkJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpCipJL;AoC/oJG;;ERKF,+BAAA;EACG,4BAAA;C5B8oJJ;AoC9oJG;;ERTF,gCAAA;EACG,6BAAA;C5B2pJJ;AmC7kJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpCiqJL;AoC/pJG;;ERKF,+BAAA;EACG,4BAAA;C5B8pJJ;AoC9pJG;;ERTF,gCAAA;EACG,6BAAA;C5B2qJJ;AqC9qJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrCgrJD;AqCprJD;EAOI,gBAAA;CrCgrJH;AqCvrJD;;EAUM,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,uBAAA;EACA,oBAAA;CrCirJL;AqC/rJD;;EAmBM,sBAAA;EACA,0BAAA;CrCgrJL;AqCpsJD;;EA2BM,aAAA;CrC6qJL;AqCxsJD;;EAkCM,YAAA;CrC0qJL;AqC5sJD;;;;EA2CM,eAAA;EACA,uBAAA;EACA,oBAAA;CrCuqJL;AsCrtJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCutJD;AsCntJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CtCqtJL;AsChtJC;EACE,cAAA;CtCktJH;AsC9sJC;EACE,mBAAA;EACA,UAAA;CtCgtJH;AsCzsJD;ECtCE,0BAAA;CvCkvJD;AuC/uJG;;EAEE,0BAAA;CvCivJL;AsC5sJD;EC1CE,0BAAA;CvCyvJD;AuCtvJG;;EAEE,0BAAA;CvCwvJL;AsC/sJD;EC9CE,0BAAA;CvCgwJD;AuC7vJG;;EAEE,0BAAA;CvC+vJL;AsCltJD;EClDE,0BAAA;CvCuwJD;AuCpwJG;;EAEE,0BAAA;CvCswJL;AsCrtJD;ECtDE,0BAAA;CvC8wJD;AuC3wJG;;EAEE,0BAAA;CvC6wJL;AsCxtJD;EC1DE,0BAAA;CvCqxJD;AuClxJG;;EAEE,0BAAA;CvCoxJL;AwCtxJD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCwxJD;AwCrxJC;EACE,cAAA;CxCuxJH;AwCnxJC;EACE,mBAAA;EACA,UAAA;CxCqxJH;AwClxJC;;EAEE,OAAA;EACA,iBAAA;CxCoxJH;AwC/wJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CxCixJL;AwC5wJC;;EAEE,eAAA;EACA,uBAAA;CxC8wJH;AwC3wJC;EACE,aAAA;CxC6wJH;AwC1wJC;EACE,kBAAA;CxC4wJH;AwCzwJC;EACE,iBAAA;CxC2wJH;AyCr0JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCu0JD;AyC50JD;;EASI,eAAA;CzCu0JH;AyCh1JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCs0JH;AyCr1JD;EAmBI,0BAAA;CzCq0JH;AyCl0JC;;EAEE,mBAAA;EACA,mBAAA;EACA,oBAAA;CzCo0JH;AyC91JD;EA8BI,gBAAA;CzCm0JH;AyCjzJD;EACA;IAfI,kBAAA;IACA,qBAAA;GzCm0JD;EyCj0JC;;IAEE,mBAAA;IACA,oBAAA;GzCm0JH;EyC1zJH;;IAJM,gBAAA;GzCk0JH;CACF;A0C/2JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CLisJT;A0C33JD;;EAaI,kBAAA;EACA,mBAAA;C1Ck3JH;A0C92JC;;;EAGE,sBAAA;C1Cg3JH;A0Cr4JD;EA0BI,aAAA;EACA,eAAA;C1C82JH;A2Cv4JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Cy4JD;A2C74JD;EAQI,cAAA;EAEA,eAAA;C3Cu4JH;A2Cj5JD;EAeI,kBAAA;C3Cq4JH;A2Cp5JD;;EAqBI,iBAAA;C3Cm4JH;A2Cx5JD;EAyBI,gBAAA;C3Ck4JH;A2C13JD;;EAEE,oBAAA;C3C43JD;A2C93JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3C43JH;A2Cp3JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C86JD;A2Cz3JD;EClDI,0BAAA;C5C86JH;A2C53JD;EC/CI,eAAA;C5C86JH;A2C33JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cy7JD;A2Ch4JD;ECtDI,0BAAA;C5Cy7JH;A2Cn4JD;ECnDI,eAAA;C5Cy7JH;A2Cl4JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Co8JD;A2Cv4JD;EC1DI,0BAAA;C5Co8JH;A2C14JD;ECvDI,eAAA;C5Co8JH;A2Cz4JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C+8JD;A2C94JD;EC9DI,0BAAA;C5C+8JH;A2Cj5JD;EC3DI,eAAA;C5C+8JH;A6Cj9JD;EACE;IAAQ,4BAAA;G7Co9JP;E6Cn9JD;IAAQ,yBAAA;G7Cs9JP;CACF;A6Cn9JD;EACE;IAAQ,4BAAA;G7Cs9JP;E6Cr9JD;IAAQ,yBAAA;G7Cw9JP;CACF;A6C39JD;EACE;IAAQ,4BAAA;G7Cs9JP;E6Cr9JD;IAAQ,yBAAA;G7Cw9JP;CACF;A6Cj9JD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CL86JT;A6Ch9JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CLk0JT;A6C78JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7Ci9JD;A6C18JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CL0/JT;A6Cv8JD;EErEE,0BAAA;C/C+gKD;A+C5gKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C+9JH;A6C38JD;EEzEE,0BAAA;C/CuhKD;A+CphKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Cu+JH;A6C/8JD;EE7EE,0BAAA;C/C+hKD;A+C5hKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C++JH;A6Cn9JD;EEjFE,0BAAA;C/CuiKD;A+CpiKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Cu/JH;AgD/iKD;EAEE,iBAAA;ChDgjKD;AgD9iKC;EACE,cAAA;ChDgjKH;AgD5iKD;;EAEE,QAAA;EACA,iBAAA;ChD8iKD;AgD3iKD;EACE,eAAA;ChD6iKD;AgD1iKD;EACE,eAAA;ChD4iKD;AgDziKC;EACE,gBAAA;ChD2iKH;AgDviKD;;EAEE,mBAAA;ChDyiKD;AgDtiKD;;EAEE,oBAAA;ChDwiKD;AgDriKD;;;EAGE,oBAAA;EACA,oBAAA;ChDuiKD;AgDpiKD;EACE,uBAAA;ChDsiKD;AgDniKD;EACE,uBAAA;ChDqiKD;AgDjiKD;EACE,cAAA;EACA,mBAAA;ChDmiKD;AgD7hKD;EACE,gBAAA;EACA,iBAAA;ChD+hKD;AiDtlKD;EAEE,oBAAA;EACA,gBAAA;CjDulKD;AiD/kKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,uBAAA;EACA,uBAAA;CjDglKD;AiD7kKC;ErB3BA,6BAAA;EACC,4BAAA;C5B2mKF;AiD9kKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BwmKF;AiDvkKD;;EAEE,YAAA;CjDykKD;AiD3kKD;;EAKI,YAAA;CjD0kKH;AiDtkKC;;;;EAEE,sBAAA;EACA,YAAA;EACA,0BAAA;CjD0kKH;AiDtkKD;EACE,YAAA;EACA,iBAAA;CjDwkKD;AiDnkKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDqkKH;AiD1kKC;;;EASI,eAAA;CjDskKL;AiD/kKC;;;EAYI,eAAA;CjDwkKL;AiDnkKC;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;CjDqkKH;AiD3kKC;;;;;;;;;EAYI,eAAA;CjD0kKL;AiDtlKC;;;EAeI,eAAA;CjD4kKL;AkD9qKC;EACE,eAAA;EACA,0BAAA;ClDgrKH;AkD9qKG;;EAEE,eAAA;ClDgrKL;AkDlrKG;;EAKI,eAAA;ClDirKP;AkD9qKK;;;;EAEE,eAAA;EACA,0BAAA;ClDkrKP;AkDhrKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDqrKP;AkD3sKC;EACE,eAAA;EACA,0BAAA;ClD6sKH;AkD3sKG;;EAEE,eAAA;ClD6sKL;AkD/sKG;;EAKI,eAAA;ClD8sKP;AkD3sKK;;;;EAEE,eAAA;EACA,0BAAA;ClD+sKP;AkD7sKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDktKP;AkDxuKC;EACE,eAAA;EACA,0BAAA;ClD0uKH;AkDxuKG;;EAEE,eAAA;ClD0uKL;AkD5uKG;;EAKI,eAAA;ClD2uKP;AkDxuKK;;;;EAEE,eAAA;EACA,0BAAA;ClD4uKP;AkD1uKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD+uKP;AkDrwKC;EACE,eAAA;EACA,0BAAA;ClDuwKH;AkDrwKG;;EAEE,eAAA;ClDuwKL;AkDzwKG;;EAKI,eAAA;ClDwwKP;AkDrwKK;;;;EAEE,eAAA;EACA,0BAAA;ClDywKP;AkDvwKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD4wKP;AiD3qKD;EACE,cAAA;EACA,mBAAA;CjD6qKD;AiD3qKD;EACE,iBAAA;EACA,iBAAA;CjD6qKD;AmDvyKD;EACE,oBAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CLgvKT;AmDtyKD;EACE,cAAA;CnDwyKD;AmDnyKD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5B0zKF;AmDzyKD;EAMI,eAAA;CnDsyKH;AmDjyKD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDmyKD;AmDvyKD;;;;;EAWI,eAAA;CnDmyKH;AmD9xKD;EACE,mBAAA;EACA,0BAAA;EACA,2BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5By0KF;AmDxxKD;;EAGI,iBAAA;CnDyxKH;AmD5xKD;;EAMM,oBAAA;EACA,iBAAA;CnD0xKL;AmDtxKG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5Bg2KF;AmDpxKG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5B81KF;AmD7yKD;EvB1DE,2BAAA;EACC,0BAAA;C5B02KF;AmDhxKD;EAEI,oBAAA;CnDixKH;AmD9wKD;EACE,oBAAA;CnDgxKD;AmDxwKD;;;EAII,iBAAA;CnDywKH;AmD7wKD;;;EAOM,mBAAA;EACA,oBAAA;CnD2wKL;AmDnxKD;;EvBzGE,6BAAA;EACC,4BAAA;C5Bg4KF;AmDxxKD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnD2wKP;AmD/xKD;;;;;;;;EAwBU,4BAAA;CnDixKT;AmDzyKD;;;;;;;;EA4BU,6BAAA;CnDuxKT;AmDnzKD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bw5KF;AmDxzKD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDqxKP;AmD/zKD;;;;;;;;EA8CU,+BAAA;CnD2xKT;AmDz0KD;;;;;;;;EAkDU,gCAAA;CnDiyKT;AmDn1KD;;;;EA2DI,2BAAA;CnD8xKH;AmDz1KD;;EA+DI,cAAA;CnD8xKH;AmD71KD;;EAmEI,UAAA;CnD8xKH;AmDj2KD;;;;;;;;;;;;EA0EU,eAAA;CnDqyKT;AmD/2KD;;;;;;;;;;;;EA8EU,gBAAA;CnD+yKT;AmD73KD;;;;;;;;EAuFU,iBAAA;CnDgzKT;AmDv4KD;;;;;;;;EAgGU,iBAAA;CnDizKT;AmDj5KD;EAsGI,UAAA;EACA,iBAAA;CnD8yKH;AmDpyKD;EACE,oBAAA;CnDsyKD;AmDvyKD;EAKI,iBAAA;EACA,mBAAA;CnDqyKH;AmD3yKD;EASM,gBAAA;CnDqyKL;AmD9yKD;EAcI,iBAAA;CnDmyKH;AmDjzKD;;EAkBM,2BAAA;CnDmyKL;AmDrzKD;EAuBI,cAAA;CnDiyKH;AmDxzKD;EAyBM,8BAAA;CnDkyKL;AmD3xKD;EC1PE,mBAAA;CpDwhLD;AoDthLC;EACE,eAAA;EACA,0BAAA;EACA,mBAAA;CpDwhLH;AoD3hLC;EAMI,uBAAA;CpDwhLL;AoD9hLC;EASI,eAAA;EACA,0BAAA;CpDwhLL;AoDrhLC;EAEI,0BAAA;CpDshLL;AmD1yKD;EC7PE,sBAAA;CpD0iLD;AoDxiLC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CpD0iLH;AoD7iLC;EAMI,0BAAA;CpD0iLL;AoDhjLC;EASI,eAAA;EACA,uBAAA;CpD0iLL;AoDviLC;EAEI,6BAAA;CpDwiLL;AmDzzKD;EChQE,sBAAA;CpD4jLD;AoD1jLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD4jLH;AoD/jLC;EAMI,0BAAA;CpD4jLL;AoDlkLC;EASI,eAAA;EACA,0BAAA;CpD4jLL;AoDzjLC;EAEI,6BAAA;CpD0jLL;AmDx0KD;ECnQE,sBAAA;CpD8kLD;AoD5kLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD8kLH;AoDjlLC;EAMI,0BAAA;CpD8kLL;AoDplLC;EASI,eAAA;EACA,0BAAA;CpD8kLL;AoD3kLC;EAEI,6BAAA;CpD4kLL;AmDv1KD;ECtQE,sBAAA;CpDgmLD;AoD9lLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDgmLH;AoDnmLC;EAMI,0BAAA;CpDgmLL;AoDtmLC;EASI,eAAA;EACA,0BAAA;CpDgmLL;AoD7lLC;EAEI,6BAAA;CpD8lLL;AmDt2KD;ECzQE,sBAAA;CpDknLD;AoDhnLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDknLH;AoDrnLC;EAMI,0BAAA;CpDknLL;AoDxnLC;EASI,eAAA;EACA,0BAAA;CpDknLL;AoD/mLC;EAEI,6BAAA;CpDgnLL;AqDhoLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrDkoLD;AqDvoLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrDkoLH;AqD7nLD;EACE,uBAAA;CrD+nLD;AqD3nLD;EACE,oBAAA;CrD6nLD;AsDxpLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CLmmLT;AsDlqLD;EASI,mBAAA;EACA,kCAAA;CtD4pLH;AsDvpLD;EACE,cAAA;EACA,mBAAA;CtDypLD;AsDvpLD;EACE,aAAA;EACA,mBAAA;CtDypLD;AuD/qLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,0BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBwrLD;AuDhrLC;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtBgsLD;AuD5qLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvD8qLH;AwDnsLD;EACE,iBAAA;CxDqsLD;AwDjsLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxDgsLD;AwD7rLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CLghLT;AwDnsLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CL2lLT;AwDvsLD;EACE,mBAAA;EACA,iBAAA;CxDysLD;AwDrsLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDusLD;AwDnsLD;EACE,mBAAA;EACA,uBAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDqsLD;AwDjsLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,uBAAA;CxDmsLD;AwDjsLC;ElCrEA,WAAA;EAGA,yBAAA;CtBuwLD;AwDpsLC;ElCtEA,aAAA;EAGA,0BAAA;CtB2wLD;AwDnsLD;EACE,cAAA;EACA,iCAAA;CxDqsLD;AwDjsLD;EACE,iBAAA;CxDmsLD;AwD/rLD;EACE,UAAA;EACA,wBAAA;CxDisLD;AwD5rLD;EACE,mBAAA;EACA,cAAA;CxD8rLD;AwD1rLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxD4rLD;AwD/rLD;EAQI,iBAAA;EACA,iBAAA;CxD0rLH;AwDnsLD;EAaI,kBAAA;CxDyrLH;AwDtsLD;EAiBI,eAAA;CxDwrLH;AwDnrLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDqrLD;AwDnqLD;EAZE;IACE,aAAA;IACA,kBAAA;GxDkrLD;EwDhrLD;InDvEA,kDAAA;IACQ,0CAAA;GL0vLP;EwD/qLD;IAAY,aAAA;GxDkrLX;CACF;AwD7qLD;EAFE;IAAY,aAAA;GxDmrLX;CACF;AyDl0LD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBy1LD;AyD90LC;EnCdA,aAAA;EAGA,0BAAA;CtB61LD;AyDj1LC;EAAW,iBAAA;EAAmB,eAAA;CzDq1L/B;AyDp1LC;EAAW,iBAAA;EAAmB,eAAA;CzDw1L/B;AyDv1LC;EAAW,gBAAA;EAAmB,eAAA;CzD21L/B;AyD11LC;EAAW,kBAAA;EAAmB,eAAA;CzD81L/B;AyD11LD;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;CzD41LD;AyDx1LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzD01LD;AyDt1LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,uBAAA;CzDw1LH;AyDt1LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDw1LH;AyDt1LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDw1LH;AyDt1LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;CzDw1LH;AyDt1LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,wBAAA;CzDw1LH;AyDt1LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDw1LH;AyDt1LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDw1LH;AyDt1LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDw1LH;A2Dr7LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,uBAAA;EACA,qCAAA;UAAA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLq5LT;A2Dh8LC;EAAY,kBAAA;C3Dm8Lb;A2Dl8LC;EAAY,kBAAA;C3Dq8Lb;A2Dp8LC;EAAY,iBAAA;C3Du8Lb;A2Dt8LC;EAAY,mBAAA;C3Dy8Lb;A2Dt8LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Dw8LD;A2Dr8LD;EACE,kBAAA;C3Du8LD;A2D/7LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3Di8LH;A2D97LD;EACE,mBAAA;C3Dg8LD;A2D97LD;EACE,mBAAA;EACA,YAAA;C3Dg8LD;A2D57LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D87LH;A2D77LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,uBAAA;C3D+7LL;A2D57LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D87LH;A2D77LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;C3D+7LL;A2D57LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D87LH;A2D77LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,0BAAA;C3D+7LL;A2D37LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D67LH;A2D57LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,wBAAA;EACA,cAAA;C3D87LL;A4DvjMD;EACE,mBAAA;C5DyjMD;A4DtjMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DwjMD;A4D3jMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CL44LT;A4DlkMD;;EAcM,eAAA;C5DwjML;A4D9hMC;EA4NF;IvD3DE,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GLi7LP;E4D5jMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D+jML;E4D7jMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5DgkML;E4D9jMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5DikML;CACF;A4DvmMD;;;EA6CI,eAAA;C5D+jMH;A4D5mMD;EAiDI,QAAA;C5D8jMH;A4D/mMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5D6jMH;A4DrnMD;EA4DI,WAAA;C5D4jMH;A4DxnMD;EA+DI,YAAA;C5D4jMH;A4D3nMD;;EAmEI,QAAA;C5D4jMH;A4D/nMD;EAuEI,YAAA;C5D2jMH;A4DloMD;EA0EI,WAAA;C5D2jMH;A4DnjMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;EACA,mCAAA;C5DsjMD;A4DjjMC;EdnGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CupMH;A4DrjMC;EACE,WAAA;EACA,SAAA;EdxGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CgqMH;A4DvjMC;;EAEE,WAAA;EACA,YAAA;EACA,sBAAA;EtCvHF,aAAA;EAGA,0BAAA;CtB+qMD;A4DzlMD;;;;EAuCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DwjMH;A4DnmMD;;EA+CI,UAAA;EACA,mBAAA;C5DwjMH;A4DxmMD;;EAoDI,WAAA;EACA,oBAAA;C5DwjMH;A4D7mMD;;EAyDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DwjMH;A4DnjMG;EACE,iBAAA;C5DqjML;A4DjjMG;EACE,iBAAA;C5DmjML;A4DziMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5D2iMD;A4DpjMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5DiiMH;A4DhkMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;C5DiiMH;A4D1hMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;C5D4hMD;A4D3hMC;EACE,kBAAA;C5D6hMH;A4Dp/LD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DshMH;E4D9hMD;;IAYI,mBAAA;G5DshMH;E4DliMD;;IAgBI,oBAAA;G5DshMH;E4DjhMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5DmhMD;E4D/gMD;IACE,aAAA;G5DihMD;CACF;A6DhxMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7DgzMH;A6D9yMC;;;;;;;;;;;;;;;;EACE,YAAA;C7D+zMH;AiCv0MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9Dk1MD;AiCz0MD;EACE,wBAAA;CjC20MD;AiCz0MD;EACE,uBAAA;CjC20MD;AiCn0MD;EACE,yBAAA;CjCq0MD;AiCn0MD;EACE,0BAAA;CjCq0MD;AiCn0MD;EACE,mBAAA;CjCq0MD;AiCn0MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/D+1MD;AiCj0MD;EACE,yBAAA;CjCm0MD;AiC5zMD;EACE,gBAAA;CjC8zMD;AgE/1MD;EACE,oBAAA;ChEi2MD;AgE31MD;;;;ECdE,yBAAA;CjE+2MD;AgE11MD;;;;;;;;;;;;EAYE,yBAAA;ChE41MD;AgEr1MD;EA6IA;IC7LE,0BAAA;GjEy4MC;EiEx4MD;IAAU,0BAAA;GjE24MT;EiE14MD;IAAU,8BAAA;GjE64MT;EiE54MD;;IACU,+BAAA;GjE+4MT;CACF;AgE/1MD;EAwIA;IA1II,0BAAA;GhEq2MD;CACF;AgE/1MD;EAmIA;IArII,2BAAA;GhEq2MD;CACF;AgE/1MD;EA8HA;IAhII,iCAAA;GhEq2MD;CACF;AgE91MD;EAwHA;IC7LE,0BAAA;GjEu6MC;EiEt6MD;IAAU,0BAAA;GjEy6MT;EiEx6MD;IAAU,8BAAA;GjE26MT;EiE16MD;;IACU,+BAAA;GjE66MT;CACF;AgEx2MD;EAmHA;IArHI,0BAAA;GhE82MD;CACF;AgEx2MD;EA8GA;IAhHI,2BAAA;GhE82MD;CACF;AgEx2MD;EAyGA;IA3GI,iCAAA;GhE82MD;CACF;AgEv2MD;EAmGA;IC7LE,0BAAA;GjEq8MC;EiEp8MD;IAAU,0BAAA;GjEu8MT;EiEt8MD;IAAU,8BAAA;GjEy8MT;EiEx8MD;;IACU,+BAAA;GjE28MT;CACF;AgEj3MD;EA8FA;IAhGI,0BAAA;GhEu3MD;CACF;AgEj3MD;EAyFA;IA3FI,2BAAA;GhEu3MD;CACF;AgEj3MD;EAoFA;IAtFI,iCAAA;GhEu3MD;CACF;AgEh3MD;EA8EA;IC7LE,0BAAA;GjEm+MC;EiEl+MD;IAAU,0BAAA;GjEq+MT;EiEp+MD;IAAU,8BAAA;GjEu+MT;EiEt+MD;;IACU,+BAAA;GjEy+MT;CACF;AgE13MD;EAyEA;IA3EI,0BAAA;GhEg4MD;CACF;AgE13MD;EAoEA;IAtEI,2BAAA;GhEg4MD;CACF;AgE13MD;EA+DA;IAjEI,iCAAA;GhEg4MD;CACF;AgEz3MD;EAyDA;ICrLE,yBAAA;GjEy/MC;CACF;AgEz3MD;EAoDA;ICrLE,yBAAA;GjE8/MC;CACF;AgEz3MD;EA+CA;ICrLE,yBAAA;GjEmgNC;CACF;AgEz3MD;EA0CA;ICrLE,yBAAA;GjEwgNC;CACF;AgEt3MD;ECnJE,yBAAA;CjE4gND;AgEn3MD;EA4BA;IC7LE,0BAAA;GjEwhNC;EiEvhND;IAAU,0BAAA;GjE0hNT;EiEzhND;IAAU,8BAAA;GjE4hNT;EiE3hND;;IACU,+BAAA;GjE8hNT;CACF;AgEj4MD;EACE,yBAAA;ChEm4MD;AgE93MD;EAqBA;IAvBI,0BAAA;GhEo4MD;CACF;AgEl4MD;EACE,yBAAA;ChEo4MD;AgE/3MD;EAcA;IAhBI,2BAAA;GhEq4MD;CACF;AgEn4MD;EACE,yBAAA;ChEq4MD;AgEh4MD;EAOA;IATI,iCAAA;GhEs4MD;CACF;AgE/3MD;EACA;ICrLE,yBAAA;GjEujNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.6 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n border: 0;\n background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #fff;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #fff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #ccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #fff;\n border: 1px solid #ddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #fff;\n border-color: #ddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #fff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #fff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #fff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #fff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #fff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #fff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: floor((@gutter / 2));\n padding-right: ceil((@gutter / 2));\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Unstyle the caret on ``\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n display: inline-block;\n margin-bottom: 0; // For input.btn\n font-weight: @btn-font-weight;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n white-space: nowrap;\n .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n .user-select(none);\n\n &,\n &:active,\n &.active {\n &:focus,\n &.focus {\n .tab-focus();\n }\n }\n\n &:hover,\n &:focus,\n &.focus {\n color: @btn-default-color;\n text-decoration: none;\n }\n\n &:active,\n &.active {\n outline: 0;\n background-image: none;\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n .opacity(.65);\n .box-shadow(none);\n }\n\n a& {\n &.disabled,\n fieldset[disabled] & {\n pointer-events: none; // Future-proof disabling of clicks on `` elements\n }\n }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n color: @link-color;\n font-weight: normal;\n border-radius: 0;\n\n &,\n &:active,\n &.active,\n &[disabled],\n fieldset[disabled] & {\n background-color: transparent;\n .box-shadow(none);\n }\n &,\n &:hover,\n &:focus,\n &:active {\n border-color: transparent;\n }\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n background-color: transparent;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @btn-link-disabled-color;\n text-decoration: none;\n }\n }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n // line-height: ensure even-numbered height of button next to large input\n .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n // line-height: ensure proper height of button next to small input\n .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 25%);\n }\n &:hover {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 10%);\n border-color: darken(@border, 12%);\n\n &:hover,\n &:focus,\n &.focus {\n color: @color;\n background-color: darken(@background, 17%);\n border-color: darken(@border, 25%);\n }\n }\n &:active,\n &.active,\n .open > .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus,\n &.focus {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n opacity: 0;\n .transition(opacity .15s linear);\n &.in {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n\n &.in { display: block; }\n tr&.in { display: table-row; }\n tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n .transition-property(~\"height, visibility\");\n .transition-duration(.35s);\n .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: @caret-width-base dashed;\n border-top: @caret-width-base solid ~\"\\9\"; // IE8\n border-right: @caret-width-base solid transparent;\n border-left: @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: @zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0; // override default ul\n list-style: none;\n font-size: @font-size-base;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n background-color: @dropdown-bg;\n border: 1px solid @dropdown-fallback-border; // IE8 fallback\n border: 1px solid @dropdown-border;\n border-radius: @border-radius-base;\n .box-shadow(0 6px 12px rgba(0,0,0,.175));\n background-clip: padding-box;\n\n // Aligns the dropdown menu to right\n //\n // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n &.pull-right {\n right: 0;\n left: auto;\n }\n\n // Dividers (basically an hr) within the dropdown\n .divider {\n .nav-divider(@dropdown-divider-bg);\n }\n\n // Links within the dropdown menu\n > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: @line-height-base;\n color: @dropdown-link-color;\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n &:hover,\n &:focus {\n text-decoration: none;\n color: @dropdown-link-hover-color;\n background-color: @dropdown-link-hover-bg;\n }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-active-color;\n text-decoration: none;\n outline: 0;\n background-color: @dropdown-link-active-bg;\n }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @dropdown-link-disabled-color;\n }\n\n // Nuke hover/focus effects\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none; // Remove CSS gradient\n .reset-filter();\n cursor: @cursor-disabled;\n }\n}\n\n// Open state for the dropdown\n.open {\n // Show the menu\n > .dropdown-menu {\n display: block;\n }\n\n // Remove the outline when :focus is triggered\n > a {\n outline: 0;\n }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n left: auto; // Reset the default from `.dropdown-menu`\n right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: @font-size-small;\n line-height: @line-height-base;\n color: @dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n // Reverse the caret\n .caret {\n border-top: 0;\n border-bottom: @caret-width-base dashed;\n border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n content: \"\";\n }\n // Different positioning for bottom up menu\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-right {\n .dropdown-menu {\n .dropdown-menu-right();\n }\n // Necessary for overrides of the default right aligned menu.\n // Will remove come v4 in all likelihood.\n .dropdown-menu-left {\n .dropdown-menu-left();\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle; // match .btn alignment given font-size hack above\n > .btn {\n position: relative;\n float: left;\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active,\n &.active {\n z-index: 2;\n }\n }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -1px;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n margin-left: -5px; // Offset the first child's margin\n &:extend(.clearfix all);\n\n .btn,\n .btn-group,\n .input-group {\n float: left;\n }\n > .btn,\n > .btn-group,\n > .input-group {\n margin-left: 5px;\n }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n margin-left: 0;\n &:not(:last-child):not(.dropdown-toggle) {\n .border-right-radius(0);\n }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-right-radius(0);\n }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n .box-shadow(none);\n }\n}\n\n\n// Reposition the caret\n.btn .caret {\n margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n border-width: @caret-width-large @caret-width-large 0;\n border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n > .btn,\n > .btn-group,\n > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n }\n\n // Clear floats so dropdown menus can be properly placed\n > .btn-group {\n &:extend(.clearfix all);\n > .btn {\n float: none;\n }\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n }\n}\n\n.btn-group-vertical > .btn {\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n &:first-child:not(:last-child) {\n .border-top-radius(@btn-border-radius-base);\n .border-bottom-radius(0);\n }\n &:last-child:not(:first-child) {\n .border-top-radius(0);\n .border-bottom-radius(@btn-border-radius-base);\n }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n > .btn:last-child,\n > .dropdown-toggle {\n .border-bottom-radius(0);\n }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n > .btn,\n > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n }\n > .btn-group .btn {\n width: 100%;\n }\n\n > .btn-group .dropdown-menu {\n left: auto;\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n > .btn,\n > .btn-group > .btn {\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0,0,0,0);\n pointer-events: none;\n }\n }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n position: relative; // For dropdowns\n display: table;\n border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n // Undo padding and float of grid classes\n &[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n }\n\n .form-control {\n // Ensure that the input is always above the *appended* addon button for\n // proper border colors.\n position: relative;\n z-index: 2;\n\n // IE9 fubars the placeholder attribute in text inputs and the arrows on\n // select elements in input groups. To fix it, we float the input. Details:\n // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n float: left;\n\n width: 100%;\n margin-bottom: 0;\n \n &:focus {\n z-index: 3;\n }\n }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n\n &:not(:first-child):not(:last-child) {\n border-radius: 0;\n }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n font-weight: normal;\n line-height: 1;\n color: @input-color;\n text-align: center;\n background-color: @input-group-addon-bg;\n border: 1px solid @input-group-addon-border-color;\n border-radius: @input-border-radius;\n\n // Sizing\n &.input-sm {\n padding: @padding-small-vertical @padding-small-horizontal;\n font-size: @font-size-small;\n border-radius: @input-border-radius-small;\n }\n &.input-lg {\n padding: @padding-large-vertical @padding-large-horizontal;\n font-size: @font-size-large;\n border-radius: @input-border-radius-large;\n }\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n .border-right-radius(0);\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n .border-left-radius(0);\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n position: relative;\n // Jankily prevent input button groups from wrapping with `white-space` and\n // `font-size` in combination with `inline-block` on buttons.\n font-size: 0;\n white-space: nowrap;\n\n // Negative margin for spacing, position for bringing hovered/focused/actived\n // element above the siblings.\n > .btn {\n position: relative;\n + .btn {\n margin-left: -1px;\n }\n // Bring the \"active\" button to the front\n &:hover,\n &:focus,\n &:active {\n z-index: 2;\n }\n }\n\n // Negative margin to only have a 1px border between the two\n &:first-child {\n > .btn,\n > .btn-group {\n margin-right: -1px;\n }\n }\n &:last-child {\n > .btn,\n > .btn-group {\n z-index: 2;\n margin-left: -1px;\n }\n }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n margin-bottom: 0;\n padding-left: 0; // Override default ul/ol\n list-style: none;\n &:extend(.clearfix all);\n\n > li {\n position: relative;\n display: block;\n\n > a {\n position: relative;\n display: block;\n padding: @nav-link-padding;\n &:hover,\n &:focus {\n text-decoration: none;\n background-color: @nav-link-hover-bg;\n }\n }\n\n // Disabled state sets text to gray and nukes hover/tab effects\n &.disabled > a {\n color: @nav-disabled-link-color;\n\n &:hover,\n &:focus {\n color: @nav-disabled-link-hover-color;\n text-decoration: none;\n background-color: transparent;\n cursor: @cursor-disabled;\n }\n }\n }\n\n // Open dropdowns\n .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @nav-link-hover-bg;\n border-color: @link-color;\n }\n }\n\n // Nav dividers (deprecated with v3.0.1)\n //\n // This should have been removed in v3 with the dropping of `.nav-list`, but\n // we missed it. We don't currently support this anywhere, but in the interest\n // of maintaining backward compatibility in case you use it, it's deprecated.\n .nav-divider {\n .nav-divider();\n }\n\n // Prevent IE8 from misplacing imgs\n //\n // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n > li > a > img {\n max-width: none;\n }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n border-bottom: 1px solid @nav-tabs-border-color;\n > li {\n float: left;\n // Make the list-items overlay the bottom border\n margin-bottom: -1px;\n\n // Actual tabs (as links)\n > a {\n margin-right: 2px;\n line-height: @line-height-base;\n border: 1px solid transparent;\n border-radius: @border-radius-base @border-radius-base 0 0;\n &:hover {\n border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n }\n }\n\n // Active state, and its :hover to override normal :hover\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-tabs-active-link-hover-color;\n background-color: @nav-tabs-active-link-hover-bg;\n border: 1px solid @nav-tabs-active-link-hover-border-color;\n border-bottom-color: transparent;\n cursor: default;\n }\n }\n }\n // pulling this in mainly for less shorthand\n &.nav-justified {\n .nav-justified();\n .nav-tabs-justified();\n }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n > li {\n float: left;\n\n // Links rendered as pills\n > a {\n border-radius: @nav-pills-border-radius;\n }\n + li {\n margin-left: 2px;\n }\n\n // Active state\n &.active > a {\n &,\n &:hover,\n &:focus {\n color: @nav-pills-active-link-hover-color;\n background-color: @nav-pills-active-link-hover-bg;\n }\n }\n }\n}\n\n\n// Stacked pills\n.nav-stacked {\n > li {\n float: none;\n + li {\n margin-top: 2px;\n margin-left: 0; // no need for this gap between nav items\n }\n }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n width: 100%;\n\n > li {\n float: none;\n > a {\n text-align: center;\n margin-bottom: 5px;\n }\n }\n\n > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n }\n\n @media (min-width: @screen-sm-min) {\n > li {\n display: table-cell;\n width: 1%;\n > a {\n margin-bottom: 0;\n }\n }\n }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n border-bottom: 0;\n\n > li > a {\n // Override margin from .nav-tabs\n margin-right: 0;\n border-radius: @border-radius-base;\n }\n\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border: 1px solid @nav-tabs-justified-link-border-color;\n }\n\n @media (min-width: @screen-sm-min) {\n > li > a {\n border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n border-radius: @border-radius-base @border-radius-base 0 0;\n }\n > .active > a,\n > .active > a:hover,\n > .active > a:focus {\n border-bottom-color: @nav-tabs-justified-active-link-border-color;\n }\n }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n // make dropdown border overlap tab border\n margin-top: -1px;\n // Remove the top rounded corners here since there is a hard edge above the menu\n .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n margin-bottom: @navbar-margin-bottom;\n border: 1px solid transparent;\n\n // Prevent floats from breaking the navbar\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: @navbar-border-radius;\n }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n &:extend(.clearfix all);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n overflow-x: visible;\n padding-right: @navbar-padding-horizontal;\n padding-left: @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n &:extend(.clearfix all);\n -webkit-overflow-scrolling: touch;\n\n &.in {\n overflow-y: auto;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border-top: 0;\n box-shadow: none;\n\n &.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0; // Override default setting\n overflow: visible !important;\n }\n\n &.in {\n overflow-y: visible;\n }\n\n // Undo the collapse side padding for navbars with containers to ensure\n // alignment of right-aligned contents.\n .navbar-fixed-top &,\n .navbar-static-top &,\n .navbar-fixed-bottom & {\n padding-left: 0;\n padding-right: 0;\n }\n }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n .navbar-collapse {\n max-height: @navbar-collapse-max-height;\n\n @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n max-height: 200px;\n }\n }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n > .navbar-header,\n > .navbar-collapse {\n margin-right: -@navbar-padding-horizontal;\n margin-left: -@navbar-padding-horizontal;\n\n @media (min-width: @grid-float-breakpoint) {\n margin-right: 0;\n margin-left: 0;\n }\n }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n z-index: @zindex-navbar;\n border-width: 0 0 1px;\n\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @zindex-navbar-fixed;\n\n // Undo the rounded corners\n @media (min-width: @grid-float-breakpoint) {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0; // override .navbar defaults\n border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n float: left;\n padding: @navbar-padding-vertical @navbar-padding-horizontal;\n font-size: @font-size-large;\n line-height: @line-height-computed;\n height: @navbar-height;\n\n &:hover,\n &:focus {\n text-decoration: none;\n }\n\n > img {\n display: block;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n .navbar > .container &,\n .navbar > .container-fluid & {\n margin-left: -@navbar-padding-horizontal;\n }\n }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: @navbar-padding-horizontal;\n padding: 9px 10px;\n .navbar-vertical-align(34px);\n background-color: transparent;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid transparent;\n border-radius: @border-radius-base;\n\n // We remove the `outline` here, but later compensate by attaching `:hover`\n // styles to `:focus`.\n &:focus {\n outline: 0;\n }\n\n // Bars\n .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n }\n .icon-bar + .icon-bar {\n margin-top: 4px;\n }\n\n @media (min-width: @grid-float-breakpoint) {\n display: none;\n }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: @line-height-computed;\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n > li > a,\n .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n > li > a {\n line-height: @line-height-computed;\n &:hover,\n &:focus {\n background-image: none;\n }\n }\n }\n }\n\n // Uncollapse the nav\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin: 0;\n\n > li {\n float: left;\n > a {\n padding-top: @navbar-padding-vertical;\n padding-bottom: @navbar-padding-vertical;\n }\n }\n }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n margin-left: -@navbar-padding-horizontal;\n margin-right: -@navbar-padding-horizontal;\n padding: 10px @navbar-padding-horizontal;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n\n // Mixin behavior for optimum display\n .form-inline();\n\n .form-group {\n @media (max-width: @grid-float-breakpoint-max) {\n margin-bottom: 5px;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n }\n\n // Vertically center in expanded, horizontal navbar\n .navbar-vertical-align(@input-height-base);\n\n // Undo 100% width for pull classes\n @media (min-width: @grid-float-breakpoint) {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n .box-shadow(none);\n }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n .border-top-radius(@navbar-border-radius);\n .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n .navbar-vertical-align(@input-height-base);\n\n &.btn-sm {\n .navbar-vertical-align(@input-height-small);\n }\n &.btn-xs {\n .navbar-vertical-align(22);\n }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n .navbar-vertical-align(@line-height-computed);\n\n @media (min-width: @grid-float-breakpoint) {\n float: left;\n margin-left: @navbar-padding-horizontal;\n margin-right: @navbar-padding-horizontal;\n }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n .navbar-left { .pull-left(); }\n .navbar-right {\n .pull-right();\n margin-right: -@navbar-padding-horizontal;\n\n ~ .navbar-right {\n margin-right: 0;\n }\n }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n background-color: @navbar-default-bg;\n border-color: @navbar-default-border;\n\n .navbar-brand {\n color: @navbar-default-brand-color;\n &:hover,\n &:focus {\n color: @navbar-default-brand-hover-color;\n background-color: @navbar-default-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-default-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-default-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n\n .navbar-toggle {\n border-color: @navbar-default-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-default-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-default-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: @navbar-default-border;\n }\n\n // Dropdown menu items\n .navbar-nav {\n // Remove background color from open dropdown\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-default-link-active-bg;\n color: @navbar-default-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display when collapsed\n .open .dropdown-menu {\n > li > a {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n background-color: @navbar-default-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-active-color;\n background-color: @navbar-default-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n background-color: @navbar-default-link-disabled-bg;\n }\n }\n }\n }\n }\n\n\n // Links in navbars\n //\n // Add a class to ensure links outside the navbar nav are colored correctly.\n\n .navbar-link {\n color: @navbar-default-link-color;\n &:hover {\n color: @navbar-default-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-default-link-color;\n &:hover,\n &:focus {\n color: @navbar-default-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-default-link-disabled-color;\n }\n }\n }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n background-color: @navbar-inverse-bg;\n border-color: @navbar-inverse-border;\n\n .navbar-brand {\n color: @navbar-inverse-brand-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-brand-hover-color;\n background-color: @navbar-inverse-brand-hover-bg;\n }\n }\n\n .navbar-text {\n color: @navbar-inverse-color;\n }\n\n .navbar-nav {\n > li > a {\n color: @navbar-inverse-link-color;\n\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n\n // Darken the responsive nav toggle\n .navbar-toggle {\n border-color: @navbar-inverse-toggle-border-color;\n &:hover,\n &:focus {\n background-color: @navbar-inverse-toggle-hover-bg;\n }\n .icon-bar {\n background-color: @navbar-inverse-toggle-icon-bar-bg;\n }\n }\n\n .navbar-collapse,\n .navbar-form {\n border-color: darken(@navbar-inverse-bg, 7%);\n }\n\n // Dropdowns\n .navbar-nav {\n > .open > a {\n &,\n &:hover,\n &:focus {\n background-color: @navbar-inverse-link-active-bg;\n color: @navbar-inverse-link-active-color;\n }\n }\n\n @media (max-width: @grid-float-breakpoint-max) {\n // Dropdowns get custom display\n .open .dropdown-menu {\n > .dropdown-header {\n border-color: @navbar-inverse-border;\n }\n .divider {\n background-color: @navbar-inverse-border;\n }\n > li > a {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n background-color: @navbar-inverse-link-hover-bg;\n }\n }\n > .active > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-active-color;\n background-color: @navbar-inverse-link-active-bg;\n }\n }\n > .disabled > a {\n &,\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n background-color: @navbar-inverse-link-disabled-bg;\n }\n }\n }\n }\n }\n\n .navbar-link {\n color: @navbar-inverse-link-color;\n &:hover {\n color: @navbar-inverse-link-hover-color;\n }\n }\n\n .btn-link {\n color: @navbar-inverse-link-color;\n &:hover,\n &:focus {\n color: @navbar-inverse-link-hover-color;\n }\n &[disabled],\n fieldset[disabled] & {\n &:hover,\n &:focus {\n color: @navbar-inverse-link-disabled-color;\n }\n }\n }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n .clearfix();\n}\n.center-block {\n .center-block();\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n margin-bottom: @line-height-computed;\n list-style: none;\n background-color: @breadcrumb-bg;\n border-radius: @border-radius-base;\n\n > li {\n display: inline-block;\n\n + li:before {\n content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n padding: 0 5px;\n color: @breadcrumb-color;\n }\n }\n\n > .active {\n color: @breadcrumb-active-color;\n }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: @line-height-computed 0;\n border-radius: @border-radius-base;\n\n > li {\n display: inline; // Remove list-style and block-level defaults\n > a,\n > span {\n position: relative;\n float: left; // Collapse white-space\n padding: @padding-base-vertical @padding-base-horizontal;\n line-height: @line-height-base;\n text-decoration: none;\n color: @pagination-color;\n background-color: @pagination-bg;\n border: 1px solid @pagination-border;\n margin-left: -1px;\n }\n &:first-child {\n > a,\n > span {\n margin-left: 0;\n .border-left-radius(@border-radius-base);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius-base);\n }\n }\n }\n\n > li > a,\n > li > span {\n &:hover,\n &:focus {\n z-index: 2;\n color: @pagination-hover-color;\n background-color: @pagination-hover-bg;\n border-color: @pagination-hover-border;\n }\n }\n\n > .active > a,\n > .active > span {\n &,\n &:hover,\n &:focus {\n z-index: 3;\n color: @pagination-active-color;\n background-color: @pagination-active-bg;\n border-color: @pagination-active-border;\n cursor: default;\n }\n }\n\n > .disabled {\n > span,\n > span:hover,\n > span:focus,\n > a,\n > a:hover,\n > a:focus {\n color: @pagination-disabled-color;\n background-color: @pagination-disabled-bg;\n border-color: @pagination-disabled-border;\n cursor: @cursor-disabled;\n }\n }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n padding-left: 0;\n margin: @line-height-computed 0;\n list-style: none;\n text-align: center;\n &:extend(.clearfix all);\n li {\n display: inline;\n > a,\n > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: @pager-bg;\n border: 1px solid @pager-border;\n border-radius: @pager-border-radius;\n }\n\n > a:hover,\n > a:focus {\n text-decoration: none;\n background-color: @pager-hover-bg;\n }\n }\n\n .next {\n > a,\n > span {\n float: right;\n }\n }\n\n .previous {\n > a,\n > span {\n float: left;\n }\n }\n\n .disabled {\n > a,\n > a:hover,\n > a:focus,\n > span {\n color: @pager-disabled-color;\n background-color: @pager-bg;\n cursor: @cursor-disabled;\n }\n }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: @label-color;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n\n // Add hover effects, but only for links\n a& {\n &:hover,\n &:focus {\n color: @label-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Empty labels collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for labels in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n .label-variant(@label-default-bg);\n}\n\n.label-primary {\n .label-variant(@label-primary-bg);\n}\n\n.label-success {\n .label-variant(@label-success-bg);\n}\n\n.label-info {\n .label-variant(@label-info-bg);\n}\n\n.label-warning {\n .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n background-color: @color;\n\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: @font-size-small;\n font-weight: @badge-font-weight;\n color: @badge-color;\n line-height: @badge-line-height;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: @badge-bg;\n border-radius: @badge-border-radius;\n\n // Empty badges collapse automatically (not available in IE8)\n &:empty {\n display: none;\n }\n\n // Quick fix for badges in buttons\n .btn & {\n position: relative;\n top: -1px;\n }\n\n .btn-xs &,\n .btn-group-xs > .btn & {\n top: 0;\n padding: 1px 5px;\n }\n\n // Hover state, but only for links\n a& {\n &:hover,\n &:focus {\n color: @badge-link-hover-color;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n // Account for badges in navs\n .list-group-item.active > &,\n .nav-pills > .active > a > & {\n color: @badge-active-color;\n background-color: @badge-active-bg;\n }\n\n .list-group-item > & {\n float: right;\n }\n\n .list-group-item > & + & {\n margin-right: 5px;\n }\n\n .nav-pills > li > a > & {\n margin-left: 3px;\n }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n padding-top: @jumbotron-padding;\n padding-bottom: @jumbotron-padding;\n margin-bottom: @jumbotron-padding;\n color: @jumbotron-color;\n background-color: @jumbotron-bg;\n\n h1,\n .h1 {\n color: @jumbotron-heading-color;\n }\n\n p {\n margin-bottom: (@jumbotron-padding / 2);\n font-size: @jumbotron-font-size;\n font-weight: 200;\n }\n\n > hr {\n border-top-color: darken(@jumbotron-bg, 10%);\n }\n\n .container &,\n .container-fluid & {\n border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n\n .container {\n max-width: 100%;\n }\n\n @media screen and (min-width: @screen-sm-min) {\n padding-top: (@jumbotron-padding * 1.6);\n padding-bottom: (@jumbotron-padding * 1.6);\n\n .container &,\n .container-fluid & {\n padding-left: (@jumbotron-padding * 2);\n padding-right: (@jumbotron-padding * 2);\n }\n\n h1,\n .h1 {\n font-size: @jumbotron-heading-font-size;\n }\n }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n display: block;\n padding: @thumbnail-padding;\n margin-bottom: @line-height-computed;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(border .2s ease-in-out);\n\n > img,\n a > img {\n &:extend(.img-responsive);\n margin-left: auto;\n margin-right: auto;\n }\n\n // Add a hover state for linked versions only\n a&:hover,\n a&:focus,\n a&.active {\n border-color: @link-color;\n }\n\n // Image captions\n .caption {\n padding: @thumbnail-caption-padding;\n color: @thumbnail-caption-color;\n }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n padding: @alert-padding;\n margin-bottom: @line-height-computed;\n border: 1px solid transparent;\n border-radius: @alert-border-radius;\n\n // Headings for larger alerts\n h4 {\n margin-top: 0;\n // Specified for the h4 to prevent conflicts of changing @headings-color\n color: inherit;\n }\n\n // Provide class for links that match alerts\n .alert-link {\n font-weight: @alert-link-font-weight;\n }\n\n // Improve alignment and spacing of inner content\n > p,\n > ul {\n margin-bottom: 0;\n }\n\n > p + p {\n margin-top: 5px;\n }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n padding-right: (@alert-padding + 20);\n\n // Adjust close link position\n .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n from { background-position: 40px 0; }\n to { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n overflow: hidden;\n height: @line-height-computed;\n margin-bottom: @line-height-computed;\n background-color: @progress-bg;\n border-radius: @progress-border-radius;\n .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: @font-size-small;\n line-height: @line-height-computed;\n color: @progress-bar-color;\n text-align: center;\n background-color: @progress-bar-bg;\n .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n #gradient > .striped();\n background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n background-color: @color;\n\n // Deprecated parent class requirement as of v3.2.0\n .progress-striped & {\n #gradient > .striped();\n }\n}\n",".media {\n // Proper spacing between instances of .media\n margin-top: 15px;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n\n.media-body {\n width: 10000px;\n}\n\n.media-object {\n display: block;\n\n // Fix collapse in webkit from max-width: 100% and display: table-cell.\n &.img-thumbnail {\n max-width: none;\n }\n}\n\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n\n.media-middle {\n vertical-align: middle;\n}\n\n.media-bottom {\n vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on
    ,
      , or
      .\n\n.list-group {\n // No need to set list-style: none; since .list-group-item is block level\n margin-bottom: 20px;\n padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -1px;\n background-color: @list-group-bg;\n border: 1px solid @list-group-border;\n\n // Round the first and last items\n &:first-child {\n .border-top-radius(@list-group-border-radius);\n }\n &:last-child {\n margin-bottom: 0;\n .border-bottom-radius(@list-group-border-radius);\n }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n color: @list-group-link-color;\n\n .list-group-item-heading {\n color: @list-group-link-heading-color;\n }\n\n // Hover state\n &:hover,\n &:focus {\n text-decoration: none;\n color: @list-group-link-hover-color;\n background-color: @list-group-hover-bg;\n }\n}\n\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n\n.list-group-item {\n // Disabled state\n &.disabled,\n &.disabled:hover,\n &.disabled:focus {\n background-color: @list-group-disabled-bg;\n color: @list-group-disabled-color;\n cursor: @cursor-disabled;\n\n // Force color to inherit for custom content\n .list-group-item-heading {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-disabled-text-color;\n }\n }\n\n // Active class on item itself, not parent\n &.active,\n &.active:hover,\n &.active:focus {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: @list-group-active-color;\n background-color: @list-group-active-bg;\n border-color: @list-group-active-border;\n\n // Force color to inherit for custom content\n .list-group-item-heading,\n .list-group-item-heading > small,\n .list-group-item-heading > .small {\n color: inherit;\n }\n .list-group-item-text {\n color: @list-group-active-text-color;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a&,\n button& {\n color: @color;\n\n .list-group-item-heading {\n color: inherit;\n }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n margin-bottom: @line-height-computed;\n background-color: @panel-bg;\n border: 1px solid transparent;\n border-radius: @panel-border-radius;\n .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n padding: @panel-body-padding;\n &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n padding: @panel-heading-padding;\n border-bottom: 1px solid transparent;\n .border-top-radius((@panel-border-radius - 1));\n\n > .dropdown .dropdown-toggle {\n color: inherit;\n }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: ceil((@font-size-base * 1.125));\n color: inherit;\n\n > a,\n > small,\n > .small,\n > small > a,\n > .small > a {\n color: inherit;\n }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n padding: @panel-footer-padding;\n background-color: @panel-footer-bg;\n border-top: 1px solid @panel-inner-border;\n .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n > .list-group,\n > .panel-collapse > .list-group {\n margin-bottom: 0;\n\n .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n }\n\n // Add border top radius for first one\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n .border-top-radius((@panel-border-radius - 1));\n }\n }\n\n // Add border bottom radius for last one\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n .border-bottom-radius((@panel-border-radius - 1));\n }\n }\n }\n > .panel-heading + .panel-collapse > .list-group {\n .list-group-item:first-child {\n .border-top-radius(0);\n }\n }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n .list-group-item:first-child {\n border-top-width: 0;\n }\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n > .table,\n > .table-responsive > .table,\n > .panel-collapse > .table {\n margin-bottom: 0;\n\n caption {\n padding-left: @panel-body-padding;\n padding-right: @panel-body-padding;\n }\n }\n // Add border top radius for first one\n > .table:first-child,\n > .table-responsive:first-child > .table:first-child {\n .border-top-radius((@panel-border-radius - 1));\n\n > thead:first-child,\n > tbody:first-child {\n > tr:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n border-top-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-top-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-top-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n // Add border bottom radius for last one\n > .table:last-child,\n > .table-responsive:last-child > .table:last-child {\n .border-bottom-radius((@panel-border-radius - 1));\n\n > tbody:last-child,\n > tfoot:last-child {\n > tr:last-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n border-bottom-right-radius: (@panel-border-radius - 1);\n\n td:first-child,\n th:first-child {\n border-bottom-left-radius: (@panel-border-radius - 1);\n }\n td:last-child,\n th:last-child {\n border-bottom-right-radius: (@panel-border-radius - 1);\n }\n }\n }\n }\n > .panel-body + .table,\n > .panel-body + .table-responsive,\n > .table + .panel-body,\n > .table-responsive + .panel-body {\n border-top: 1px solid @table-border-color;\n }\n > .table > tbody:first-child > tr:first-child th,\n > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n }\n > .table-bordered,\n > .table-responsive > .table-bordered {\n border: 0;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n > thead,\n > tbody {\n > tr:first-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n > tbody,\n > tfoot {\n > tr:last-child {\n > td,\n > th {\n border-bottom: 0;\n }\n }\n }\n }\n > .table-responsive {\n border: 0;\n margin-bottom: 0;\n }\n}\n\n\n// Collapsable panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n margin-bottom: @line-height-computed;\n\n // Tighten up margin so it's only between panels\n .panel {\n margin-bottom: 0;\n border-radius: @panel-border-radius;\n\n + .panel {\n margin-top: 5px;\n }\n }\n\n .panel-heading {\n border-bottom: 0;\n\n + .panel-collapse > .panel-body,\n + .panel-collapse > .list-group {\n border-top: 1px solid @panel-inner-border;\n }\n }\n\n .panel-footer {\n border-top: 0;\n + .panel-collapse .panel-body {\n border-bottom: 1px solid @panel-inner-border;\n }\n }\n}\n\n\n// Contextual variations\n.panel-default {\n .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse > .panel-body {\n border-top-color: @border;\n }\n .badge {\n color: @heading-bg-color;\n background-color: @heading-text-color;\n }\n }\n & > .panel-footer {\n + .panel-collapse > .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: @well-bg;\n border: 1px solid @well-border;\n border-radius: @border-radius-base;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n blockquote {\n border-color: #ddd;\n border-color: rgba(0,0,0,.15);\n }\n}\n\n// Sizes\n.well-lg {\n padding: 24px;\n border-radius: @border-radius-large;\n}\n.well-sm {\n padding: 9px;\n border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n float: right;\n font-size: (@font-size-base * 1.5);\n font-weight: @close-font-weight;\n line-height: 1;\n color: @close-color;\n text-shadow: @close-text-shadow;\n .opacity(.2);\n\n &:hover,\n &:focus {\n color: @close-color;\n text-decoration: none;\n cursor: pointer;\n .opacity(.5);\n }\n\n // Additional properties for button version\n // iOS requires the button element instead of an anchor tag.\n // If you want the anchor version, it requires `href=\"#\"`.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n button& {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal;\n -webkit-overflow-scrolling: touch;\n\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n\n // When fading in the modal, animate it to slide down\n &.fade .modal-dialog {\n .translate(0, -25%);\n .transition-transform(~\"0.3s ease-out\");\n }\n &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n background-color: @modal-content-bg;\n border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n border: 1px solid @modal-content-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 3px 9px rgba(0,0,0,.5));\n background-clip: padding-box;\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: @zindex-modal-background;\n background-color: @modal-backdrop-bg;\n // Fade for backdrop\n &.fade { .opacity(0); }\n &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n padding: @modal-title-padding;\n border-bottom: 1px solid @modal-header-border-color;\n &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n margin: 0;\n line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n padding: @modal-inner-padding;\n text-align: right; // right align buttons\n border-top: 1px solid @modal-footer-border-color;\n &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n // Properly space out buttons\n .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n }\n // but override that for button groups\n .btn-group .btn + .btn {\n margin-left: -1px;\n }\n // and override it for block buttons as well\n .btn-block + .btn-block {\n margin-left: 0;\n }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n width: @modal-md;\n margin: 30px auto;\n }\n .modal-content {\n .box-shadow(0 5px 15px rgba(0,0,0,.5));\n }\n\n // Modal sizes\n .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n position: absolute;\n z-index: @zindex-tooltip;\n display: block;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-small;\n\n .opacity(0);\n\n &.in { .opacity(@tooltip-opacity); }\n &.top { margin-top: -3px; padding: @tooltip-arrow-width 0; }\n &.right { margin-left: 3px; padding: 0 @tooltip-arrow-width; }\n &.bottom { margin-top: 3px; padding: @tooltip-arrow-width 0; }\n &.left { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: @tooltip-max-width;\n padding: 3px 8px;\n color: @tooltip-color;\n text-align: center;\n background-color: @tooltip-bg;\n border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n &.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-left .tooltip-arrow {\n bottom: 0;\n right: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.top-right .tooltip-arrow {\n bottom: 0;\n left: @tooltip-arrow-width;\n margin-bottom: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n border-top-color: @tooltip-arrow-color;\n }\n &.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n border-right-color: @tooltip-arrow-color;\n }\n &.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -@tooltip-arrow-width;\n border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-left-color: @tooltip-arrow-color;\n }\n &.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-left .tooltip-arrow {\n top: 0;\n right: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n &.bottom-right .tooltip-arrow {\n top: 0;\n left: @tooltip-arrow-width;\n margin-top: -@tooltip-arrow-width;\n border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n border-bottom-color: @tooltip-arrow-color;\n }\n}\n",".reset-text() {\n font-family: @font-family-base;\n // We deliberately do NOT reset font-size.\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: @line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: @zindex-popover;\n display: none;\n max-width: @popover-max-width;\n padding: 1px;\n // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n .reset-text();\n font-size: @font-size-base;\n\n background-color: @popover-bg;\n background-clip: padding-box;\n border: 1px solid @popover-fallback-border-color;\n border: 1px solid @popover-border-color;\n border-radius: @border-radius-large;\n .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n // Offset the popover to account for the popover arrow\n &.top { margin-top: -@popover-arrow-width; }\n &.right { margin-left: @popover-arrow-width; }\n &.bottom { margin-top: @popover-arrow-width; }\n &.left { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n margin: 0; // reset heading margin\n padding: 8px 14px;\n font-size: @font-size-base;\n background-color: @popover-title-bg;\n border-bottom: 1px solid darken(@popover-title-bg, 5%);\n border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n &,\n &:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n }\n}\n.popover > .arrow {\n border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n border-width: @popover-arrow-width;\n content: \"\";\n}\n\n.popover {\n &.top > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-top-color: @popover-arrow-outer-color;\n bottom: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n bottom: 1px;\n margin-left: -@popover-arrow-width;\n border-bottom-width: 0;\n border-top-color: @popover-arrow-color;\n }\n }\n &.right > .arrow {\n top: 50%;\n left: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-right-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n left: 1px;\n bottom: -@popover-arrow-width;\n border-left-width: 0;\n border-right-color: @popover-arrow-color;\n }\n }\n &.bottom > .arrow {\n left: 50%;\n margin-left: -@popover-arrow-outer-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-bottom-color: @popover-arrow-outer-color;\n top: -@popover-arrow-outer-width;\n &:after {\n content: \" \";\n top: 1px;\n margin-left: -@popover-arrow-width;\n border-top-width: 0;\n border-bottom-color: @popover-arrow-color;\n }\n }\n\n &.left > .arrow {\n top: 50%;\n right: -@popover-arrow-outer-width;\n margin-top: -@popover-arrow-outer-width;\n border-right-width: 0;\n border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n border-left-color: @popover-arrow-outer-color;\n &:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: @popover-arrow-color;\n bottom: -@popover-arrow-width;\n }\n }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n\n > .item {\n display: none;\n position: relative;\n .transition(.6s ease-in-out left);\n\n // Account for jankitude on images\n > img,\n > a > img {\n &:extend(.img-responsive);\n line-height: 1;\n }\n\n // WebKit CSS3 transforms for supported devices\n @media all and (transform-3d), (-webkit-transform-3d) {\n .transition-transform(~'0.6s ease-in-out');\n .backface-visibility(~'hidden');\n .perspective(1000px);\n\n &.next,\n &.active.right {\n .translate3d(100%, 0, 0);\n left: 0;\n }\n &.prev,\n &.active.left {\n .translate3d(-100%, 0, 0);\n left: 0;\n }\n &.next.left,\n &.prev.right,\n &.active {\n .translate3d(0, 0, 0);\n left: 0;\n }\n }\n }\n\n > .active,\n > .next,\n > .prev {\n display: block;\n }\n\n > .active {\n left: 0;\n }\n\n > .next,\n > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n }\n\n > .next {\n left: 100%;\n }\n > .prev {\n left: -100%;\n }\n > .next.left,\n > .prev.right {\n left: 0;\n }\n\n > .active.left {\n left: -100%;\n }\n > .active.right {\n left: 100%;\n }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: @carousel-control-width;\n .opacity(@carousel-control-opacity);\n font-size: @carousel-control-font-size;\n color: @carousel-control-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n // We can't have this transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Set gradients for backgrounds\n &.left {\n #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n }\n &.right {\n left: auto;\n right: 0;\n #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n }\n\n // Hover/focus state\n &:hover,\n &:focus {\n outline: 0;\n color: @carousel-control-color;\n text-decoration: none;\n .opacity(.9);\n }\n\n // Toggles\n .icon-prev,\n .icon-next,\n .glyphicon-chevron-left,\n .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n }\n .icon-prev,\n .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n }\n .icon-next,\n .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n }\n .icon-prev,\n .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n }\n\n\n .icon-prev {\n &:before {\n content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n }\n }\n .icon-next {\n &:before {\n content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n }\n }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n\n li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid @carousel-indicator-border-color;\n border-radius: 10px;\n cursor: pointer;\n\n // IE8-9 hack for event handling\n //\n // Internet Explorer 8-9 does not support clicks on elements without a set\n // `background-color`. We cannot use `filter` since that's not viewed as a\n // background color by the browser. Thus, a hack is needed.\n // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n //\n // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n // set alpha transparency for the best results possible.\n background-color: #000 \\9; // IE8\n background-color: rgba(0,0,0,0); // IE9\n }\n .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: @carousel-indicator-active-bg;\n }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: @carousel-caption-color;\n text-align: center;\n text-shadow: @carousel-text-shadow;\n & .btn {\n text-shadow: none; // No shadow for button elements in carousel-caption\n }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n // Scale up the controls a smidge\n .carousel-control {\n .glyphicon-chevron-left,\n .glyphicon-chevron-right,\n .icon-prev,\n .icon-next {\n width: (@carousel-control-font-size * 1.5);\n height: (@carousel-control-font-size * 1.5);\n margin-top: (@carousel-control-font-size / -2);\n font-size: (@carousel-control-font-size * 1.5);\n }\n .glyphicon-chevron-left,\n .icon-prev {\n margin-left: (@carousel-control-font-size / -2);\n }\n .glyphicon-chevron-right,\n .icon-next {\n margin-right: (@carousel-control-font-size / -2);\n }\n }\n\n // Show and left align the captions\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n\n // Move up the indicators\n .carousel-indicators {\n bottom: 20px;\n }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n","// Center-align a block level element\n\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n\n.visible-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-visibility();\n }\n}\n.visible-xs-block {\n @media (max-width: @screen-xs-max) {\n display: block !important;\n }\n}\n.visible-xs-inline {\n @media (max-width: @screen-xs-max) {\n display: inline !important;\n }\n}\n.visible-xs-inline-block {\n @media (max-width: @screen-xs-max) {\n display: inline-block !important;\n }\n}\n\n.visible-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-visibility();\n }\n}\n.visible-sm-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: block !important;\n }\n}\n.visible-sm-inline {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline !important;\n }\n}\n.visible-sm-inline-block {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n display: inline-block !important;\n }\n}\n\n.visible-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-visibility();\n }\n}\n.visible-md-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: block !important;\n }\n}\n.visible-md-inline {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline !important;\n }\n}\n.visible-md-inline-block {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n display: inline-block !important;\n }\n}\n\n.visible-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-visibility();\n }\n}\n.visible-lg-block {\n @media (min-width: @screen-lg-min) {\n display: block !important;\n }\n}\n.visible-lg-inline {\n @media (min-width: @screen-lg-min) {\n display: inline !important;\n }\n}\n.visible-lg-inline-block {\n @media (min-width: @screen-lg-min) {\n display: inline-block !important;\n }\n}\n\n.hidden-xs {\n @media (max-width: @screen-xs-max) {\n .responsive-invisibility();\n }\n}\n.hidden-sm {\n @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .responsive-invisibility();\n }\n}\n.hidden-md {\n @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .responsive-invisibility();\n }\n}\n.hidden-lg {\n @media (min-width: @screen-lg-min) {\n .responsive-invisibility();\n }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n .responsive-invisibility();\n\n @media print {\n .responsive-visibility();\n }\n}\n.visible-print-block {\n display: none !important;\n\n @media print {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n\n @media print {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n\n @media print {\n display: inline-block !important;\n }\n}\n\n.hidden-print {\n @media print {\n .responsive-invisibility();\n }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table !important; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n"]} \ No newline at end of file +{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACK5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDHD;ACUD;EACE,UAAA;CDRD;ACqBD;;;;;;;;;;;;;EAaE,eAAA;CDnBD;AC2BD;;;;EAIE,sBAAA;EACA,yBAAA;CDzBD;ACiCD;EACE,cAAA;EACA,UAAA;CD/BD;ACuCD;;EAEE,cAAA;CDrCD;AC+CD;EACE,8BAAA;CD7CD;ACqDD;;EAEE,WAAA;CDnDD;AC8DD;EACE,oBAAA;EACA,2BAAA;EACA,0CAAA;EAAA,uCAAA;EAAA,kCAAA;CD5DD;ACmED;;EAEE,kBAAA;CDjED;ACwED;EACE,mBAAA;CDtED;AC8ED;EACE,eAAA;EACA,iBAAA;CD5ED;ACmFD;EACE,iBAAA;EACA,YAAA;CDjFD;ACwFD;EACE,eAAA;CDtFD;AC6FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CD3FD;AC8FD;EACE,YAAA;CD5FD;AC+FD;EACE,gBAAA;CD7FD;ACuGD;EACE,UAAA;CDrGD;AC4GD;EACE,iBAAA;CD1GD;ACoHD;EACE,iBAAA;CDlHD;ACyHD;EACE,gCAAA;EAAA,6BAAA;EAAA,wBAAA;EACA,UAAA;CDvHD;AC8HD;EACE,eAAA;CD5HD;ACmID;;;;EAIE,kCAAA;EACA,eAAA;CDjID;ACmJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CDjJD;ACwJD;EACE,kBAAA;CDtJD;ACgKD;;EAEE,qBAAA;CD9JD;ACyKD;;;;EAIE,2BAAA;EACA,gBAAA;CDvKD;AC8KD;;EAEE,gBAAA;CD5KD;ACmLD;;EAEE,UAAA;EACA,WAAA;CDjLD;ACyLD;EACE,oBAAA;CDvLD;ACkMD;;EAEE,+BAAA;EAAA,4BAAA;EAAA,uBAAA;EACA,WAAA;CDhMD;ACyMD;;EAEE,aAAA;CDvMD;AC+MD;EACE,8BAAA;EACA,gCAAA;EAAA,6BAAA;EAAA,wBAAA;CD7MD;ACsND;;EAEE,yBAAA;CDpND;AC2ND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDzND;ACiOD;EACE,UAAA;EACA,WAAA;CD/ND;ACsOD;EACE,eAAA;CDpOD;AC4OD;EACE,kBAAA;CD1OD;ACoPD;EACE,0BAAA;EACA,kBAAA;CDlPD;ACqPD;;EAEE,WAAA;CDnPD;AACD,qFAAqF;AEhLrF;EACE;;;IAGE,uBAAA;IACA,6BAAA;IACA,mCAAA;IACA,oCAAA;IAAA,4BAAA;GFkLD;EE/KD;;IAEE,2BAAA;GFiLD;EE9KD;IACE,6BAAA;GFgLD;EE7KD;IACE,8BAAA;GF+KD;EE1KD;;IAEE,YAAA;GF4KD;EEzKD;;IAEE,uBAAA;IACA,yBAAA;GF2KD;EExKD;IACE,4BAAA;GF0KD;EEvKD;;IAEE,yBAAA;GFyKD;EEtKD;IACE,2BAAA;GFwKD;EErKD;;;IAGE,WAAA;IACA,UAAA;GFuKD;EEpKD;;IAEE,wBAAA;GFsKD;EEhKD;IACE,cAAA;GFkKD;EEhKD;;IAGI,kCAAA;GFiKH;EE9JD;IACE,uBAAA;GFgKD;EE7JD;IACE,qCAAA;GF+JD;EEhKD;;IAKI,kCAAA;GF+JH;EE5JD;;IAGI,kCAAA;GF6JH;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,iBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,iBAAA;CH8O9C;AG7OmC;EAAW,iBAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIxhCD;ECkEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AI1hCD;;EC+DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIxhCD;EACE,gBAAA;EACA,8CAAA;CJ0hCD;AIvhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;CJyhCD;AIrhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJuhCD;AIjhCD;EACE,eAAA;EACA,sBAAA;CJmhCD;AIjhCC;;EAEE,eAAA;EACA,2BAAA;CJmhCH;AIhhCC;EEnDA,2CAAA;EACA,qBAAA;CNskCD;AIzgCD;EACE,UAAA;CJ2gCD;AIrgCD;EACE,uBAAA;CJugCD;AIngCD;;;;;EG1EE,eAAA;EACA,gBAAA;EACA,aAAA;CPolCD;AIvgCD;EACE,mBAAA;CJygCD;AIngCD;EACE,aAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EC+FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EE5LR,sBAAA;EACA,gBAAA;EACA,aAAA;CPomCD;AIngCD;EACE,mBAAA;CJqgCD;AI//BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJigCD;AIz/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,WAAA;EACA,aAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJ2/BD;AIn/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJq/BH;AI1+BD;EACE,gBAAA;CJ4+BD;AQjoCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR6oCD;AQlpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,iBAAA;EACA,eAAA;EACA,eAAA;CRmqCH;AQ/pCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRoqCD;AQxqCD;;;;;;;;;;;;EAQI,eAAA;CR8qCH;AQ3qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRgrCD;AQprCD;;;;;;;;;;;;EAQI,eAAA;CR0rCH;AQtrCD;;EAAU,gBAAA;CR0rCT;AQzrCD;;EAAU,gBAAA;CR6rCT;AQ5rCD;;EAAU,gBAAA;CRgsCT;AQ/rCD;;EAAU,gBAAA;CRmsCT;AQlsCD;;EAAU,gBAAA;CRssCT;AQrsCD;;EAAU,gBAAA;CRysCT;AQnsCD;EACE,iBAAA;CRqsCD;AQlsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRosCD;AQlsCC;EAAA;IACE,gBAAA;GRqsCD;CACF;AQ7rCD;;EAEE,eAAA;CR+rCD;AQ5rCD;;EAEE,eAAA;EACA,0BAAA;CR8rCD;AQ1rCD;EAAuB,iBAAA;CR6rCtB;AQ5rCD;EAAuB,kBAAA;CR+rCtB;AQ9rCD;EAAuB,mBAAA;CRisCtB;AQhsCD;EAAuB,oBAAA;CRmsCtB;AQlsCD;EAAuB,oBAAA;CRqsCtB;AQlsCD;EAAuB,0BAAA;CRqsCtB;AQpsCD;EAAuB,0BAAA;CRusCtB;AQtsCD;EAAuB,2BAAA;CRysCtB;AQtsCD;EACE,eAAA;CRwsCD;AQtsCD;ECvGE,eAAA;CTgzCD;AS/yCC;;EAEE,eAAA;CTizCH;AQ1sCD;EC1GE,eAAA;CTuzCD;AStzCC;;EAEE,eAAA;CTwzCH;AQ9sCD;EC7GE,eAAA;CT8zCD;AS7zCC;;EAEE,eAAA;CT+zCH;AQltCD;EChHE,eAAA;CTq0CD;ASp0CC;;EAEE,eAAA;CTs0CH;AQttCD;ECnHE,eAAA;CT40CD;AS30CC;;EAEE,eAAA;CT60CH;AQttCD;EAGE,YAAA;EE7HA,0BAAA;CVo1CD;AUn1CC;;EAEE,0BAAA;CVq1CH;AQxtCD;EEhIE,0BAAA;CV21CD;AU11CC;;EAEE,0BAAA;CV41CH;AQ5tCD;EEnIE,0BAAA;CVk2CD;AUj2CC;;EAEE,0BAAA;CVm2CH;AQhuCD;EEtIE,0BAAA;CVy2CD;AUx2CC;;EAEE,0BAAA;CV02CH;AQpuCD;EEzIE,0BAAA;CVg3CD;AU/2CC;;EAEE,0BAAA;CVi3CH;AQnuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRquCD;AQ7tCD;;EAEE,cAAA;EACA,oBAAA;CR+tCD;AQluCD;;;;EAMI,iBAAA;CRkuCH;AQ3tCD;EACE,gBAAA;EACA,iBAAA;CR6tCD;AQztCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR4tCD;AQ9tCD;EAKI,sBAAA;EACA,mBAAA;EACA,kBAAA;CR4tCH;AQvtCD;EACE,cAAA;EACA,oBAAA;CRytCD;AQvtCD;;EAEE,wBAAA;CRytCD;AQvtCD;EACE,iBAAA;CRytCD;AQvtCD;EACE,eAAA;CRytCD;AQ5sCC;EAAA;IAEI,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGxNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXu6CC;EQttCD;IASI,mBAAA;GRgtCH;CACF;AQtsCD;;EAEE,aAAA;CRwsCD;AQrsCD;EACE,eAAA;EA9IqB,0BAAA;CRs1CtB;AQnsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRqsCD;AQhsCG;;;EACE,iBAAA;CRosCL;AQ9sCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRgsCH;AQ9rCG;;;EACE,uBAAA;CRksCL;AQ1rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,kBAAA;EACA,gCAAA;EACA,eAAA;CR4rCD;AQtrCG;;;;;;EAAW,YAAA;CR8rCd;AQ7rCG;;;;;;EACE,uBAAA;CRosCL;AQ9rCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRgsCD;AYx+CD;;;;EAIE,+DAAA;CZ0+CD;AYt+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZw+CD;AYp+CD;EACE,iBAAA;EACA,eAAA;EACA,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,uDAAA;EAAA,+CAAA;CZs+CD;AY5+CD;EASI,WAAA;EACA,gBAAA;EACA,iBAAA;EACA,yBAAA;EAAA,iBAAA;CZs+CH;AYj+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,sBAAA;EACA,sBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;CZm+CD;AY9+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZk+CH;AY79CD;EACE,kBAAA;EACA,mBAAA;CZ+9CD;AazhDD;ECHE,oBAAA;EACA,mBAAA;EACA,mBAAA;EACA,kBAAA;Cd+hDD;Aa5hDC;EAAA;IACE,aAAA;Gb+hDD;CACF;Aa9hDC;EAAA;IACE,aAAA;GbiiDD;CACF;AahiDC;EAAA;IACE,cAAA;GbmiDD;CACF;Aa1hDD;ECvBE,oBAAA;EACA,mBAAA;EACA,mBAAA;EACA,kBAAA;CdojDD;AavhDD;ECvBE,oBAAA;EACA,mBAAA;CdijDD;AavhDD;EACE,gBAAA;EACA,eAAA;CbyhDD;Aa3hDD;EAKI,iBAAA;EACA,gBAAA;CbyhDH;AczkDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECiBK,mBAAA;EAEA,gBAAA;EAEA,oBAAA;EACA,mBAAA;CfwmDL;Ac9nDA;;;;;;;;;;;;ECuCK,YAAA;CfqmDL;Ac5oDA;EC+CG,YAAA;CfgmDH;Ac/oDA;EC+CG,oBAAA;CfmmDH;AclpDA;EC+CG,oBAAA;CfsmDH;AcrpDA;EC+CG,WAAA;CfymDH;AcxpDA;EC+CG,oBAAA;Cf4mDH;Ac3pDA;EC+CG,oBAAA;Cf+mDH;Ac9pDA;EC+CG,WAAA;CfknDH;AcjqDA;EC+CG,oBAAA;CfqnDH;AcpqDA;EC+CG,oBAAA;CfwnDH;AcvqDA;EC+CG,WAAA;Cf2nDH;Ac1qDA;EC+CG,oBAAA;Cf8nDH;Ac7qDA;EC+CG,mBAAA;CfioDH;AchrDA;EC8DG,YAAA;CfqnDH;AcnrDA;EC8DG,oBAAA;CfwnDH;ActrDA;EC8DG,oBAAA;Cf2nDH;AczrDA;EC8DG,WAAA;Cf8nDH;Ac5rDA;EC8DG,oBAAA;CfioDH;Ac/rDA;EC8DG,oBAAA;CfooDH;AclsDA;EC8DG,WAAA;CfuoDH;AcrsDA;EC8DG,oBAAA;Cf0oDH;AcxsDA;EC8DG,oBAAA;Cf6oDH;Ac3sDA;EC8DG,WAAA;CfgpDH;Ac9sDA;EC8DG,oBAAA;CfmpDH;AcjtDA;EC8DG,mBAAA;CfspDH;AcptDA;ECmEG,YAAA;CfopDH;AcvtDA;ECoDG,WAAA;CfsqDH;Ac1tDA;ECoDG,mBAAA;CfyqDH;Ac7tDA;ECoDG,mBAAA;Cf4qDH;AchuDA;ECoDG,UAAA;Cf+qDH;AcnuDA;ECoDG,mBAAA;CfkrDH;ActuDA;ECoDG,mBAAA;CfqrDH;AczuDA;ECoDG,UAAA;CfwrDH;Ac5uDA;ECoDG,mBAAA;Cf2rDH;Ac/uDA;ECoDG,mBAAA;Cf8rDH;AclvDA;ECoDG,UAAA;CfisDH;AcrvDA;ECoDG,mBAAA;CfosDH;AcxvDA;ECoDG,kBAAA;CfusDH;Ac3vDA;ECyDG,WAAA;CfqsDH;Ac9vDA;ECwEG,kBAAA;CfyrDH;AcjwDA;ECwEG,0BAAA;Cf4rDH;AcpwDA;ECwEG,0BAAA;Cf+rDH;AcvwDA;ECwEG,iBAAA;CfksDH;Ac1wDA;ECwEG,0BAAA;CfqsDH;Ac7wDA;ECwEG,0BAAA;CfwsDH;AchxDA;ECwEG,iBAAA;Cf2sDH;AcnxDA;ECwEG,0BAAA;Cf8sDH;ActxDA;ECwEG,0BAAA;CfitDH;AczxDA;ECwEG,iBAAA;CfotDH;Ac5xDA;ECwEG,0BAAA;CfutDH;Ac/xDA;ECwEG,yBAAA;Cf0tDH;AclyDA;ECwEG,gBAAA;Cf6tDH;Aa5tDD;ECzEC;;;;;;;;;;;;ICuCK,YAAA;Gf6wDH;EcpzDF;IC+CG,YAAA;GfwwDD;EcvzDF;IC+CG,oBAAA;Gf2wDD;Ec1zDF;IC+CG,oBAAA;Gf8wDD;Ec7zDF;IC+CG,WAAA;GfixDD;Ech0DF;IC+CG,oBAAA;GfoxDD;Ecn0DF;IC+CG,oBAAA;GfuxDD;Ect0DF;IC+CG,WAAA;Gf0xDD;Ecz0DF;IC+CG,oBAAA;Gf6xDD;Ec50DF;IC+CG,oBAAA;GfgyDD;Ec/0DF;IC+CG,WAAA;GfmyDD;Ecl1DF;IC+CG,oBAAA;GfsyDD;Ecr1DF;IC+CG,mBAAA;GfyyDD;Ecx1DF;IC8DG,YAAA;Gf6xDD;Ec31DF;IC8DG,oBAAA;GfgyDD;Ec91DF;IC8DG,oBAAA;GfmyDD;Ecj2DF;IC8DG,WAAA;GfsyDD;Ecp2DF;IC8DG,oBAAA;GfyyDD;Ecv2DF;IC8DG,oBAAA;Gf4yDD;Ec12DF;IC8DG,WAAA;Gf+yDD;Ec72DF;IC8DG,oBAAA;GfkzDD;Ech3DF;IC8DG,oBAAA;GfqzDD;Ecn3DF;IC8DG,WAAA;GfwzDD;Ect3DF;IC8DG,oBAAA;Gf2zDD;Ecz3DF;IC8DG,mBAAA;Gf8zDD;Ec53DF;ICmEG,YAAA;Gf4zDD;Ec/3DF;ICoDG,WAAA;Gf80DD;Ecl4DF;ICoDG,mBAAA;Gfi1DD;Ecr4DF;ICoDG,mBAAA;Gfo1DD;Ecx4DF;ICoDG,UAAA;Gfu1DD;Ec34DF;ICoDG,mBAAA;Gf01DD;Ec94DF;ICoDG,mBAAA;Gf61DD;Ecj5DF;ICoDG,UAAA;Gfg2DD;Ecp5DF;ICoDG,mBAAA;Gfm2DD;Ecv5DF;ICoDG,mBAAA;Gfs2DD;Ec15DF;ICoDG,UAAA;Gfy2DD;Ec75DF;ICoDG,mBAAA;Gf42DD;Ech6DF;ICoDG,kBAAA;Gf+2DD;Ecn6DF;ICyDG,WAAA;Gf62DD;Ect6DF;ICwEG,kBAAA;Gfi2DD;Ecz6DF;ICwEG,0BAAA;Gfo2DD;Ec56DF;ICwEG,0BAAA;Gfu2DD;Ec/6DF;ICwEG,iBAAA;Gf02DD;Ecl7DF;ICwEG,0BAAA;Gf62DD;Ecr7DF;ICwEG,0BAAA;Gfg3DD;Ecx7DF;ICwEG,iBAAA;Gfm3DD;Ec37DF;ICwEG,0BAAA;Gfs3DD;Ec97DF;ICwEG,0BAAA;Gfy3DD;Ecj8DF;ICwEG,iBAAA;Gf43DD;Ecp8DF;ICwEG,0BAAA;Gf+3DD;Ecv8DF;ICwEG,yBAAA;Gfk4DD;Ec18DF;ICwEG,gBAAA;Gfq4DD;CACF;Aa53DD;EClFC;;;;;;;;;;;;ICuCK,YAAA;Gfs7DH;Ec79DF;IC+CG,YAAA;Gfi7DD;Ech+DF;IC+CG,oBAAA;Gfo7DD;Ecn+DF;IC+CG,oBAAA;Gfu7DD;Ect+DF;IC+CG,WAAA;Gf07DD;Ecz+DF;IC+CG,oBAAA;Gf67DD;Ec5+DF;IC+CG,oBAAA;Gfg8DD;Ec/+DF;IC+CG,WAAA;Gfm8DD;Ecl/DF;IC+CG,oBAAA;Gfs8DD;Ecr/DF;IC+CG,oBAAA;Gfy8DD;Ecx/DF;IC+CG,WAAA;Gf48DD;Ec3/DF;IC+CG,oBAAA;Gf+8DD;Ec9/DF;IC+CG,mBAAA;Gfk9DD;EcjgEF;IC8DG,YAAA;Gfs8DD;EcpgEF;IC8DG,oBAAA;Gfy8DD;EcvgEF;IC8DG,oBAAA;Gf48DD;Ec1gEF;IC8DG,WAAA;Gf+8DD;Ec7gEF;IC8DG,oBAAA;Gfk9DD;EchhEF;IC8DG,oBAAA;Gfq9DD;EcnhEF;IC8DG,WAAA;Gfw9DD;EcthEF;IC8DG,oBAAA;Gf29DD;EczhEF;IC8DG,oBAAA;Gf89DD;Ec5hEF;IC8DG,WAAA;Gfi+DD;Ec/hEF;IC8DG,oBAAA;Gfo+DD;EcliEF;IC8DG,mBAAA;Gfu+DD;EcriEF;ICmEG,YAAA;Gfq+DD;EcxiEF;ICoDG,WAAA;Gfu/DD;Ec3iEF;ICoDG,mBAAA;Gf0/DD;Ec9iEF;ICoDG,mBAAA;Gf6/DD;EcjjEF;ICoDG,UAAA;GfggED;EcpjEF;ICoDG,mBAAA;GfmgED;EcvjEF;ICoDG,mBAAA;GfsgED;Ec1jEF;ICoDG,UAAA;GfygED;Ec7jEF;ICoDG,mBAAA;Gf4gED;EchkEF;ICoDG,mBAAA;Gf+gED;EcnkEF;ICoDG,UAAA;GfkhED;EctkEF;ICoDG,mBAAA;GfqhED;EczkEF;ICoDG,kBAAA;GfwhED;Ec5kEF;ICyDG,WAAA;GfshED;Ec/kEF;ICwEG,kBAAA;Gf0gED;EcllEF;ICwEG,0BAAA;Gf6gED;EcrlEF;ICwEG,0BAAA;GfghED;EcxlEF;ICwEG,iBAAA;GfmhED;Ec3lEF;ICwEG,0BAAA;GfshED;Ec9lEF;ICwEG,0BAAA;GfyhED;EcjmEF;ICwEG,iBAAA;Gf4hED;EcpmEF;ICwEG,0BAAA;Gf+hED;EcvmEF;ICwEG,0BAAA;GfkiED;Ec1mEF;ICwEG,iBAAA;GfqiED;Ec7mEF;ICwEG,0BAAA;GfwiED;EchnEF;ICwEG,yBAAA;Gf2iED;EcnnEF;ICwEG,gBAAA;Gf8iED;CACF;Aa5hED;EC3FC;;;;;;;;;;;;ICuCK,YAAA;Gf+lEH;EctoEF;IC+CG,YAAA;Gf0lED;EczoEF;IC+CG,oBAAA;Gf6lED;Ec5oEF;IC+CG,oBAAA;GfgmED;Ec/oEF;IC+CG,WAAA;GfmmED;EclpEF;IC+CG,oBAAA;GfsmED;EcrpEF;IC+CG,oBAAA;GfymED;EcxpEF;IC+CG,WAAA;Gf4mED;Ec3pEF;IC+CG,oBAAA;Gf+mED;Ec9pEF;IC+CG,oBAAA;GfknED;EcjqEF;IC+CG,WAAA;GfqnED;EcpqEF;IC+CG,oBAAA;GfwnED;EcvqEF;IC+CG,mBAAA;Gf2nED;Ec1qEF;IC8DG,YAAA;Gf+mED;Ec7qEF;IC8DG,oBAAA;GfknED;EchrEF;IC8DG,oBAAA;GfqnED;EcnrEF;IC8DG,WAAA;GfwnED;EctrEF;IC8DG,oBAAA;Gf2nED;EczrEF;IC8DG,oBAAA;Gf8nED;Ec5rEF;IC8DG,WAAA;GfioED;Ec/rEF;IC8DG,oBAAA;GfooED;EclsEF;IC8DG,oBAAA;GfuoED;EcrsEF;IC8DG,WAAA;Gf0oED;EcxsEF;IC8DG,oBAAA;Gf6oED;Ec3sEF;IC8DG,mBAAA;GfgpED;Ec9sEF;ICmEG,YAAA;Gf8oED;EcjtEF;ICoDG,WAAA;GfgqED;EcptEF;ICoDG,mBAAA;GfmqED;EcvtEF;ICoDG,mBAAA;GfsqED;Ec1tEF;ICoDG,UAAA;GfyqED;Ec7tEF;ICoDG,mBAAA;Gf4qED;EchuEF;ICoDG,mBAAA;Gf+qED;EcnuEF;ICoDG,UAAA;GfkrED;EctuEF;ICoDG,mBAAA;GfqrED;EczuEF;ICoDG,mBAAA;GfwrED;Ec5uEF;ICoDG,UAAA;Gf2rED;Ec/uEF;ICoDG,mBAAA;Gf8rED;EclvEF;ICoDG,kBAAA;GfisED;EcrvEF;ICyDG,WAAA;Gf+rED;EcxvEF;ICwEG,kBAAA;GfmrED;Ec3vEF;ICwEG,0BAAA;GfsrED;Ec9vEF;ICwEG,0BAAA;GfyrED;EcjwEF;ICwEG,iBAAA;Gf4rED;EcpwEF;ICwEG,0BAAA;Gf+rED;EcvwEF;ICwEG,0BAAA;GfksED;Ec1wEF;ICwEG,iBAAA;GfqsED;Ec7wEF;ICwEG,0BAAA;GfwsED;EchxEF;ICwEG,0BAAA;Gf2sED;EcnxEF;ICwEG,iBAAA;Gf8sED;EctxEF;ICwEG,0BAAA;GfitED;EczxEF;ICwEG,yBAAA;GfotED;Ec5xEF;ICwEG,gBAAA;GfutED;CACF;AgBzxED;EACE,8BAAA;ChB2xED;AgB5xED;EAQI,iBAAA;EACA,sBAAA;EACA,YAAA;ChBuxEH;AgBlxEG;;EACE,iBAAA;EACA,oBAAA;EACA,YAAA;ChBqxEL;AgBhxED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChBkxED;AgB/wED;EACE,iBAAA;ChBixED;AgB3wED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChB6wED;AgBhxED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,2BAAA;ChB6wEP;AgB3xED;EAoBI,uBAAA;EACA,8BAAA;ChB0wEH;AgB/xED;;;;;;EA8BQ,cAAA;ChBywEP;AgBvyED;EAoCI,2BAAA;ChBswEH;AgB1yED;EAyCI,uBAAA;ChBowEH;AgB7vED;;;;;;EAOQ,aAAA;ChB8vEP;AgBnvED;EACE,uBAAA;ChBqvED;AgBtvED;;;;;;EAQQ,uBAAA;ChBsvEP;AgB9vED;;EAeM,yBAAA;ChBmvEL;AgBzuED;EAEI,0BAAA;ChB0uEH;AgBjuED;EAEI,0BAAA;ChBkuEH;AiBj3EC;;;;;;;;;;;;EAOI,0BAAA;CjBw3EL;AiBl3EC;;;;;EAMI,0BAAA;CjBm3EL;AiBt4EC;;;;;;;;;;;;EAOI,0BAAA;CjB64EL;AiBv4EC;;;;;EAMI,0BAAA;CjBw4EL;AiB35EC;;;;;;;;;;;;EAOI,0BAAA;CjBk6EL;AiB55EC;;;;;EAMI,0BAAA;CjB65EL;AiBh7EC;;;;;;;;;;;;EAOI,0BAAA;CjBu7EL;AiBj7EC;;;;;EAMI,0BAAA;CjBk7EL;AiBr8EC;;;;;;;;;;;;EAOI,0BAAA;CjB48EL;AiBt8EC;;;;;EAMI,0BAAA;CjBu8EL;AgBnzED;EACE,kBAAA;EACA,iBAAA;ChBqzED;AgBnzEC;EAAA;IACE,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,uBAAA;GhBszED;EgB3zED;IASI,iBAAA;GhBqzEH;EgB9zED;;;;;;IAkBU,oBAAA;GhBozET;EgBt0ED;IA0BI,UAAA;GhB+yEH;EgBz0ED;;;;;;IAmCU,eAAA;GhB8yET;EgBj1ED;;;;;;IAuCU,gBAAA;GhBkzET;EgBz1ED;;;;IAoDU,iBAAA;GhB2yET;CACF;AkBrgFD;EAIE,aAAA;EACA,WAAA;EACA,UAAA;EACA,UAAA;ClBogFD;AkBjgFD;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBmgFD;AkBhgFD;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,iBAAA;ClBkgFD;AkBx/ED;Eb6BE,+BAAA;EACG,4BAAA;EACK,uBAAA;EarBR,yBAAA;EACA,sBAAA;EAAA,iBAAA;ClBo/ED;AkBh/ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBk/ED;AkB5+EC;;;;;;EAGE,oBAAA;ClBi/EH;AkB7+ED;EACE,eAAA;ClB++ED;AkB3+ED;EACE,eAAA;EACA,YAAA;ClB6+ED;AkBz+ED;;EAEE,aAAA;ClB2+ED;AkBv+ED;;;EZ1FE,2CAAA;EACA,qBAAA;CNskFD;AkBt+ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClBw+ED;AkB98ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;Eb3EA,yDAAA;EACQ,iDAAA;EAyHR,+EAAA;EACK,0EAAA;EACG,uFAAA;EAAA,+EAAA;EAAA,uEAAA;EAAA,4GAAA;CLo6ET;AmB9iFC;EACE,sBAAA;EACA,WAAA;EdYF,0FAAA;EACQ,kFAAA;CLqiFT;AKpgFC;EACE,YAAA;EACA,WAAA;CLsgFH;AKpgFC;EAA0B,YAAA;CLugF3B;AKtgFC;EAAgC,YAAA;CLygFjC;AkB19EC;EACE,8BAAA;EACA,UAAA;ClB49EH;AkBp9EC;;;EAGE,0BAAA;EACA,WAAA;ClBs9EH;AkBn9EC;;EAEE,oBAAA;ClBq9EH;AkBj9EC;EACE,aAAA;ClBm9EH;AkBr8ED;EAKI;;;;IACE,kBAAA;GlBs8EH;EkBn8EC;;;;;;;;IAEE,kBAAA;GlB28EH;EkBx8EC;;;;;;;;IAEE,kBAAA;GlBg9EH;CACF;AkBt8ED;EACE,oBAAA;ClBw8ED;AkBh8ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBk8ED;AkB/7EC;;;;EAGI,oBAAA;ClBk8EL;AkB78ED;;EAgBI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,iBAAA;EACA,gBAAA;ClBi8EH;AkB97ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBg8ED;AkB77ED;;EAEE,iBAAA;ClB+7ED;AkB37ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,iBAAA;EACA,uBAAA;EACA,gBAAA;ClB67ED;AkB17EC;;;;EAEE,oBAAA;ClB87EH;AkB37ED;;EAEE,cAAA;EACA,kBAAA;ClB67ED;AkBp7ED;EACE,iBAAA;EAEA,iBAAA;EACA,oBAAA;EAEA,iBAAA;ClBo7ED;AkBl7EC;;EAEE,iBAAA;EACA,gBAAA;ClBo7EH;AkBv6ED;EC3PE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBqqFD;AmBnqFC;EACE,aAAA;EACA,kBAAA;CnBqqFH;AmBlqFC;;EAEE,aAAA;CnBoqFH;AkBn7ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClBo7EH;AkB17ED;EASI,aAAA;EACA,kBAAA;ClBo7EH;AkB97ED;;EAcI,aAAA;ClBo7EH;AkBl8ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClBo7EH;AkBh7ED;ECvRE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnB0sFD;AmBxsFC;EACE,aAAA;EACA,kBAAA;CnB0sFH;AmBvsFC;;EAEE,aAAA;CnBysFH;AkB57ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClB67EH;AkBn8ED;EASI,aAAA;EACA,kBAAA;ClB67EH;AkBv8ED;;EAcI,aAAA;ClB67EH;AkB38ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClB67EH;AkBp7ED;EAEE,mBAAA;ClBq7ED;AkBv7ED;EAMI,sBAAA;ClBo7EH;AkBh7ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBk7ED;AkBh7ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBk7ED;AkBh7ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBk7ED;AkB96ED;;;;;;;;;;EClZI,eAAA;CnB40FH;AkB17ED;EC9YI,sBAAA;EdiDF,yDAAA;EACQ,iDAAA;CL2xFT;AmB30FG;EACE,sBAAA;Ed8CJ,0EAAA;EACQ,kEAAA;CLgyFT;AkBp8ED;ECpYI,eAAA;EACA,0BAAA;EACA,sBAAA;CnB20FH;AkBz8ED;EC9XI,eAAA;CnB00FH;AkBz8ED;;;;;;;;;;ECrZI,eAAA;CnB02FH;AkBr9ED;ECjZI,sBAAA;EdiDF,yDAAA;EACQ,iDAAA;CLyzFT;AmBz2FG;EACE,sBAAA;Ed8CJ,0EAAA;EACQ,kEAAA;CL8zFT;AkB/9ED;ECvYI,eAAA;EACA,0BAAA;EACA,sBAAA;CnBy2FH;AkBp+ED;ECjYI,eAAA;CnBw2FH;AkBp+ED;;;;;;;;;;ECxZI,eAAA;CnBw4FH;AkBh/ED;ECpZI,sBAAA;EdiDF,yDAAA;EACQ,iDAAA;CLu1FT;AmBv4FG;EACE,sBAAA;Ed8CJ,0EAAA;EACQ,kEAAA;CL41FT;AkB1/ED;EC1YI,eAAA;EACA,0BAAA;EACA,sBAAA;CnBu4FH;AkB//ED;ECpYI,eAAA;CnBs4FH;AkB3/EC;EACE,UAAA;ClB6/EH;AkB3/EC;EACE,OAAA;ClB6/EH;AkBn/ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClBq/ED;AkBn+EC;EAAA;IAGI,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBo+EH;EkBz+ED;IAUI,sBAAA;IACA,YAAA;IACA,uBAAA;GlBk+EH;EkB9+ED;IAiBI,sBAAA;GlBg+EH;EkBj/ED;IAqBI,sBAAA;IACA,uBAAA;GlB+9EH;EkBr/ED;;;IA2BM,YAAA;GlB+9EL;EkB1/ED;IAiCI,YAAA;GlB49EH;EkB7/ED;IAqCI,iBAAA;IACA,uBAAA;GlB29EH;EkBjgFD;;IA6CI,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlBw9EH;EkBxgFD;;IAmDM,gBAAA;GlBy9EL;EkB5gFD;;IAwDI,mBAAA;IACA,eAAA;GlBw9EH;EkBjhFD;IA8DI,OAAA;GlBs9EH;CACF;AkB58ED;;;;EASI,iBAAA;EACA,cAAA;EACA,iBAAA;ClBy8EH;AkBp9ED;;EAiBI,iBAAA;ClBu8EH;AkBx9ED;EJ9gBE,oBAAA;EACA,mBAAA;Cdy+FD;AkBj8EC;EAAA;IAEI,iBAAA;IACA,iBAAA;IACA,kBAAA;GlBm8EH;CACF;AkBn+ED;EAwCI,YAAA;ClB87EH;AkBt7EG;EAAA;IAEI,kBAAA;IACA,gBAAA;GlBw7EL;CACF;AkBp7EG;EAAA;IAEI,iBAAA;IACA,gBAAA;GlBs7EL;CACF;AoBrgGD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,+BAAA;EAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;ECoCA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhBqKA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CLg0FT;AoBxgGG;;;;;;EdrBF,2CAAA;EACA,qBAAA;CNqiGD;AoB3gGC;;;EAGE,YAAA;EACA,sBAAA;CpB6gGH;AoB1gGC;;EAEE,uBAAA;EACA,WAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLk/FT;AoB1gGC;;;EAGE,oBAAA;EE9CF,0BAAA;EACA,cAAA;EjBiEA,yBAAA;EACQ,iBAAA;CL2/FT;AoB1gGG;;EAEE,qBAAA;CpB4gGL;AoBngGD;EC7DE,YAAA;EACA,uBAAA;EACA,mBAAA;CrBmkGD;AqBjkGC;;EAEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBmkGH;AqBjkGC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBmkGH;AqBjkGC;;;EAGE,YAAA;EACA,0BAAA;EACA,uBAAA;EACA,sBAAA;CrBmkGH;AqBjkGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBykGL;AqBnkGG;;;;;;;;;EAGE,uBAAA;EACA,mBAAA;CrB2kGL;AoBpjGD;EClBI,YAAA;EACA,uBAAA;CrBykGH;AoBrjGD;EChEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBwnGD;AqBtnGC;;EAEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBwnGH;AqBtnGC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBwnGH;AqBtnGC;;;EAGE,YAAA;EACA,0BAAA;EACA,uBAAA;EACA,sBAAA;CrBwnGH;AqBtnGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB8nGL;AqBxnGG;;;;;;;;;EAGE,0BAAA;EACA,sBAAA;CrBgoGL;AoBtmGD;ECrBI,eAAA;EACA,uBAAA;CrB8nGH;AoBtmGD;ECpEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6qGD;AqB3qGC;;EAEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6qGH;AqB3qGC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6qGH;AqB3qGC;;;EAGE,YAAA;EACA,0BAAA;EACA,uBAAA;EACA,sBAAA;CrB6qGH;AqB3qGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBmrGL;AqB7qGG;;;;;;;;;EAGE,0BAAA;EACA,sBAAA;CrBqrGL;AoBvpGD;ECzBI,eAAA;EACA,uBAAA;CrBmrGH;AoBvpGD;ECxEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBkuGD;AqBhuGC;;EAEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBkuGH;AqBhuGC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBkuGH;AqBhuGC;;;EAGE,YAAA;EACA,0BAAA;EACA,uBAAA;EACA,sBAAA;CrBkuGH;AqBhuGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBwuGL;AqBluGG;;;;;;;;;EAGE,0BAAA;EACA,sBAAA;CrB0uGL;AoBxsGD;EC7BI,eAAA;EACA,uBAAA;CrBwuGH;AoBxsGD;EC5EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBuxGD;AqBrxGC;;EAEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBuxGH;AqBrxGC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBuxGH;AqBrxGC;;;EAGE,YAAA;EACA,0BAAA;EACA,uBAAA;EACA,sBAAA;CrBuxGH;AqBrxGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6xGL;AqBvxGG;;;;;;;;;EAGE,0BAAA;EACA,sBAAA;CrB+xGL;AoBzvGD;ECjCI,eAAA;EACA,uBAAA;CrB6xGH;AoBzvGD;EChFE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB40GD;AqB10GC;;EAEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB40GH;AqB10GC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB40GH;AqB10GC;;;EAGE,YAAA;EACA,0BAAA;EACA,uBAAA;EACA,sBAAA;CrB40GH;AqB10GG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBk1GL;AqB50GG;;;;;;;;;EAGE,0BAAA;EACA,sBAAA;CrBo1GL;AoB1yGD;ECrCI,eAAA;EACA,uBAAA;CrBk1GH;AoBryGD;EACE,iBAAA;EACA,eAAA;EACA,iBAAA;CpBuyGD;AoBryGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CL20GT;AoBtyGC;;;;EAIE,0BAAA;CpBwyGH;AoBtyGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpBwyGH;AoBpyGG;;;;EAEE,eAAA;EACA,sBAAA;CpBwyGL;AoB/xGD;;EC9EE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBi3GD;AoBlyGD;;EClFE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBw3GD;AoBryGD;;ECtFE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrB+3GD;AoBpyGD;EACE,eAAA;EACA,YAAA;CpBsyGD;AoBlyGD;EACE,gBAAA;CpBoyGD;AoB7xGC;;;EACE,YAAA;CpBiyGH;AuB37GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CL0wGT;AuB77GC;EACE,WAAA;CvB+7GH;AuB37GD;EACE,cAAA;CvB67GD;AuB37GC;EAAY,eAAA;CvB87Gb;AuB77GC;EAAY,mBAAA;CvBg8Gb;AuB/7GC;EAAY,yBAAA;CvBk8Gb;AuB/7GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBsKA,gDAAA;EACQ,2CAAA;EAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;EAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;EAAA,iCAAA;CLoxGT;AwBh+GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxBk+GD;AwB99GD;;EAEE,mBAAA;CxBg+GD;AwB59GD;EACE,WAAA;CxB89GD;AwB19GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;EACA,uBAAA;EACA,6BAAA;EACA,uBAAA;EACA,sCAAA;EACA,mBAAA;EnBuBA,oDAAA;EACQ,4CAAA;CLs8GT;AwBx9GC;EACE,SAAA;EACA,WAAA;CxB09GH;AwBn/GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzB+gHD;AwBz/GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,iBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBy9GH;AwBv9GG;;EAEE,eAAA;EACA,sBAAA;EACA,0BAAA;CxBy9GL;AwBl9GC;;;EAGE,YAAA;EACA,sBAAA;EACA,0BAAA;EACA,WAAA;CxBo9GH;AwB38GC;;;EAGE,eAAA;CxB68GH;AwBz8GC;;EAEE,sBAAA;EACA,oBAAA;EACA,8BAAA;EACA,uBAAA;EEzGF,oEAAA;C1BqjHD;AwBt8GD;EAGI,eAAA;CxBs8GH;AwBz8GD;EAQI,WAAA;CxBo8GH;AwB57GD;EACE,SAAA;EACA,WAAA;CxB87GD;AwBt7GD;EACE,YAAA;EACA,QAAA;CxBw7GD;AwBp7GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBs7GD;AwBl7GD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,aAAA;CxBo7GD;AwBh7GD;EACE,SAAA;EACA,WAAA;CxBk7GD;AwB16GD;;EAII,YAAA;EACA,cAAA;EACA,0BAAA;EACA,4BAAA;CxB06GH;AwBj7GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxB06GH;AwBj6GD;EACE;IApEA,SAAA;IACA,WAAA;GxBw+GC;EwBr6GD;IA1DA,YAAA;IACA,QAAA;GxBk+GC;CACF;A2B7mHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3B+mHD;A2BnnHD;;EAMI,mBAAA;EACA,YAAA;C3BinHH;A2B/mHG;;;;;;;;EAIE,WAAA;C3BqnHL;A2B/mHD;;;;EAKI,kBAAA;C3BgnHH;A2B3mHD;EACE,kBAAA;C3B6mHD;A2B9mHD;;;EAOI,YAAA;C3B4mHH;A2BnnHD;;;EAYI,iBAAA;C3B4mHH;A2BxmHD;EACE,iBAAA;C3B0mHD;A2BtmHD;EACE,eAAA;C3BwmHD;A2BvmHC;ECpDA,2BAAA;EACA,8BAAA;C5B8pHD;A2BtmHD;;ECjDE,0BAAA;EACA,6BAAA;C5B2pHD;A2BrmHD;EACE,YAAA;C3BumHD;A2BrmHD;EACE,iBAAA;C3BumHD;A2BrmHD;;ECrEE,2BAAA;EACA,8BAAA;C5B8qHD;A2BpmHD;ECnEE,0BAAA;EACA,6BAAA;C5B0qHD;A2BnmHD;;EAEE,WAAA;C3BqmHD;A2BplHD;EACE,mBAAA;EACA,kBAAA;C3BslHD;A2BplHD;EACE,oBAAA;EACA,mBAAA;C3BslHD;A2BjlHD;EtB/CE,yDAAA;EACQ,iDAAA;CLmoHT;A2BjlHC;EtBnDA,yBAAA;EACQ,iBAAA;CLuoHT;A2B9kHD;EACE,eAAA;C3BglHD;A2B7kHD;EACE,wBAAA;EACA,uBAAA;C3B+kHD;A2B5kHD;EACE,wBAAA;C3B8kHD;A2BvkHD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3BwkHH;A2B/kHD;EAcM,YAAA;C3BokHL;A2BllHD;;;;EAsBI,iBAAA;EACA,eAAA;C3BkkHH;A2B7jHC;EACE,iBAAA;C3B+jHH;A2B7jHC;EC7KA,4BAAA;EACA,6BAAA;EAOA,8BAAA;EACA,6BAAA;C5BuuHD;A2B/jHC;ECjLA,0BAAA;EACA,2BAAA;EAOA,gCAAA;EACA,+BAAA;C5B6uHD;A2BhkHD;EACE,iBAAA;C3BkkHD;A2BhkHD;;ECjLE,8BAAA;EACA,6BAAA;C5BqvHD;A2B/jHD;EC/LE,0BAAA;EACA,2BAAA;C5BiwHD;A2B3jHD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3B6jHD;A2BjkHD;;EAOI,oBAAA;EACA,YAAA;EACA,UAAA;C3B8jHH;A2BvkHD;EAYI,YAAA;C3B8jHH;A2B1kHD;EAgBI,WAAA;C3B6jHH;A2B5iHD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3B6iHL;A6BvxHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7ByxHD;A6BtxHC;EACE,YAAA;EACA,iBAAA;EACA,gBAAA;C7BwxHH;A6BjyHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7BgxHH;A6B9wHG;EACE,WAAA;C7BgxHL;A6BtwHD;;;EVwBE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBmvHD;AmBjvHC;;;EACE,aAAA;EACA,kBAAA;CnBqvHH;AmBlvHC;;;;;;EAEE,aAAA;CnBwvHH;A6BxxHD;;;EVmBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnB0wHD;AmBxwHC;;;EACE,aAAA;EACA,kBAAA;CnB4wHH;AmBzwHC;;;;;;EAEE,aAAA;CnB+wHH;A6BtyHD;;;EAGE,oBAAA;C7BwyHD;A6BtyHC;;;EACE,iBAAA;C7B0yHH;A6BtyHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7BwyHD;A6BnyHD;EACE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;C7BqyHD;A6BlyHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7BoyHH;A6BlyHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7BoyHH;A6BxzHD;;EA0BI,cAAA;C7BkyHH;A6B7xHD;;;;;;;EDtGE,2BAAA;EACA,8BAAA;C5B44HD;A6B9xHD;EACE,gBAAA;C7BgyHD;A6B9xHD;;;;;;;ED1GE,0BAAA;EACA,6BAAA;C5Bi5HD;A6B/xHD;EACE,eAAA;C7BiyHD;A6B5xHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7B4xHD;A6BjyHD;EAUI,mBAAA;C7B0xHH;A6BpyHD;EAYM,kBAAA;C7B2xHL;A6BxxHG;;;EAGE,WAAA;C7B0xHL;A6BrxHC;;EAGI,mBAAA;C7BsxHL;A6BnxHC;;EAGI,WAAA;EACA,kBAAA;C7BoxHL;A8Bn7HD;EACE,gBAAA;EACA,iBAAA;EACA,iBAAA;C9Bq7HD;A8Bx7HD;EAOI,mBAAA;EACA,eAAA;C9Bo7HH;A8B57HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9Bo7HL;A8Bn7HK;;EAEE,sBAAA;EACA,0BAAA;C9Bq7HP;A8Bh7HG;EACE,eAAA;C9Bk7HL;A8Bh7HK;;EAEE,eAAA;EACA,sBAAA;EACA,oBAAA;EACA,8BAAA;C9Bk7HP;A8B36HG;;;EAGE,0BAAA;EACA,sBAAA;C9B66HL;A8Bt9HD;ELLE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzB89HD;A8B59HD;EA0DI,gBAAA;C9Bq6HH;A8B55HD;EACE,8BAAA;C9B85HD;A8B/5HD;EAGI,YAAA;EAEA,oBAAA;C9B85HH;A8Bn6HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9B65HL;A8B55HK;EACE,mCAAA;C9B85HP;A8Bx5HK;;;EAGE,eAAA;EACA,gBAAA;EACA,uBAAA;EACA,uBAAA;EACA,iCAAA;C9B05HP;A8Br5HC;EAqDA,YAAA;EA8BA,iBAAA;C9Bs0HD;A8Bz5HC;EAwDE,YAAA;C9Bo2HH;A8B55HC;EA0DI,mBAAA;EACA,mBAAA;C9Bq2HL;A8Bh6HC;EAgEE,UAAA;EACA,WAAA;C9Bm2HH;A8Bh2HC;EAAA;IAEI,oBAAA;IACA,UAAA;G9Bk2HH;E8Br2HD;IAKM,iBAAA;G9Bm2HL;CACF;A8B76HC;EAuFE,gBAAA;EACA,mBAAA;C9By1HH;A8Bj7HC;;;EA8FE,uBAAA;C9Bw1HH;A8Br1HC;EAAA;IAEI,8BAAA;IACA,2BAAA;G9Bu1HH;E8B11HD;;;IAQI,0BAAA;G9Bu1HH;CACF;A8Bx7HD;EAEI,YAAA;C9By7HH;A8B37HD;EAMM,mBAAA;C9Bw7HL;A8B97HD;EASM,iBAAA;C9Bw7HL;A8Bn7HK;;;EAGE,YAAA;EACA,0BAAA;C9Bq7HP;A8B76HD;EAEI,YAAA;C9B86HH;A8Bh7HD;EAIM,gBAAA;EACA,eAAA;C9B+6HL;A8Bn6HD;EACE,YAAA;C9Bq6HD;A8Bt6HD;EAII,YAAA;C9Bq6HH;A8Bz6HD;EAMM,mBAAA;EACA,mBAAA;C9Bs6HL;A8B76HD;EAYI,UAAA;EACA,WAAA;C9Bo6HH;A8Bj6HC;EAAA;IAEI,oBAAA;IACA,UAAA;G9Bm6HH;E8Bt6HD;IAKM,iBAAA;G9Bo6HL;CACF;A8B55HD;EACE,iBAAA;C9B85HD;A8B/5HD;EAKI,gBAAA;EACA,mBAAA;C9B65HH;A8Bn6HD;;;EAYI,uBAAA;C9B45HH;A8Bz5HC;EAAA;IAEI,8BAAA;IACA,2BAAA;G9B25HH;E8B95HD;;;IAQI,0BAAA;G9B25HH;CACF;A8Bl5HD;EAEI,cAAA;C9Bm5HH;A8Br5HD;EAKI,eAAA;C9Bm5HH;A8B14HD;EAEE,iBAAA;EF7OA,0BAAA;EACA,2BAAA;C5BynID;A+BjnID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/BmnID;A+B9mIC;EAAA;IACE,mBAAA;G/BinID;CACF;A+BrmIC;EAAA;IACE,YAAA;G/BwmID;CACF;A+B1lID;EACE,oBAAA;EACA,mBAAA;EACA,oBAAA;EACA,kCAAA;EACA,2DAAA;EAAA,mDAAA;EAEA,kCAAA;C/B2lID;A+BzlIC;EACE,iBAAA;C/B2lIH;A+BxlIC;EAAA;IACE,YAAA;IACA,cAAA;IACA,yBAAA;IAAA,iBAAA;G/B2lID;E+BzlIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/B2lIH;E+BxlIC;IACE,oBAAA;G/B0lIH;E+BrlIC;;;IAGE,iBAAA;IACA,gBAAA;G/BulIH;CACF;A+BnlID;;EAWE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/B4kID;A+B1lID;;EAGI,kBAAA;C/B2lIH;A+BzlIG;EAAA;;IACE,kBAAA;G/B6lIH;CACF;A+BnlIC;EAAA;;IACE,iBAAA;G/BulID;CACF;A+BplID;EACE,OAAA;EACA,sBAAA;C/BslID;A+BplID;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BslID;A+B9kID;;;;EAII,oBAAA;EACA,mBAAA;C/BglIH;A+B9kIG;EAAA;;;;IACE,gBAAA;IACA,eAAA;G/BolIH;CACF;A+BxkID;EACE,cAAA;EACA,sBAAA;C/B0kID;A+BxkIC;EAAA;IACE,iBAAA;G/B2kID;CACF;A+BrkID;EACE,YAAA;EACA,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;C/BukID;A+BrkIC;;EAEE,sBAAA;C/BukIH;A+BhlID;EAaI,eAAA;C/BskIH;A+BnkIC;EACE;;IAEE,mBAAA;G/BqkIH;CACF;A+B3jID;EACE,mBAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/B8jID;A+B1jIC;EACE,WAAA;C/B4jIH;A+B1kID;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/B0jIH;A+BhlID;EAyBI,gBAAA;C/B0jIH;A+BvjIC;EAAA;IACE,cAAA;G/B0jID;CACF;A+BjjID;EACE,oBAAA;C/BmjID;A+BpjID;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/BmjIH;A+BhjIC;EAAA;IAGI,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;IAAA,iBAAA;G/BijIH;E+B1jID;;IAYM,2BAAA;G/BkjIL;E+B9jID;IAeM,kBAAA;G/BkjIL;E+BjjIK;;IAEE,uBAAA;G/BmjIP;CACF;A+B7iIC;EAAA;IACE,YAAA;IACA,UAAA;G/BgjID;E+BljID;IAKI,YAAA;G/BgjIH;E+BrjID;IAOM,kBAAA;IACA,qBAAA;G/BijIL;CACF;A+BtiID;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B5NA,6FAAA;EACQ,qFAAA;E2BjER,gBAAA;EACA,mBAAA;ChCu0ID;AkB13HC;EAAA;IAGI,sBAAA;IACA,iBAAA;IACA,uBAAA;GlB23HH;EkBh4HD;IAUI,sBAAA;IACA,YAAA;IACA,uBAAA;GlBy3HH;EkBr4HD;IAiBI,sBAAA;GlBu3HH;EkBx4HD;IAqBI,sBAAA;IACA,uBAAA;GlBs3HH;EkB54HD;;;IA2BM,YAAA;GlBs3HL;EkBj5HD;IAiCI,YAAA;GlBm3HH;EkBp5HD;IAqCI,iBAAA;IACA,uBAAA;GlBk3HH;EkBx5HD;;IA6CI,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB+2HH;EkB/5HD;;IAmDM,gBAAA;GlBg3HL;EkBn6HD;;IAwDI,mBAAA;IACA,eAAA;GlB+2HH;EkBx6HD;IA8DI,OAAA;GlB62HH;CACF;A+BtlIG;EAAA;IACE,mBAAA;G/BylIH;E+BvlIG;IACE,iBAAA;G/BylIL;CACF;A+BjlIC;EAAA;IACE,YAAA;IACA,eAAA;IACA,kBAAA;IACA,gBAAA;IACA,eAAA;IACA,UAAA;I1BvPF,yBAAA;IACQ,iBAAA;GL40IP;CACF;A+B9kID;EACE,cAAA;EHpUA,0BAAA;EACA,2BAAA;C5Bq5ID;A+B9kID;EACE,iBAAA;EHzUA,4BAAA;EACA,6BAAA;EAOA,8BAAA;EACA,6BAAA;C5Bo5ID;A+B1kID;EChVE,gBAAA;EACA,mBAAA;ChC65ID;A+B3kIC;ECnVA,iBAAA;EACA,oBAAA;ChCi6ID;A+B5kIC;ECtVA,iBAAA;EACA,oBAAA;ChCq6ID;A+BtkID;EChWE,iBAAA;EACA,oBAAA;ChCy6ID;A+BvkIC;EAAA;IACE,YAAA;IACA,mBAAA;IACA,kBAAA;G/B0kID;CACF;A+B9jID;EACE;IEtWA,uBAAA;GjCu6IC;E+BhkID;IE1WA,wBAAA;IF4WE,oBAAA;G/BkkID;E+BpkID;IAKI,gBAAA;G/BkkIH;CACF;A+BzjID;EACE,0BAAA;EACA,sBAAA;C/B2jID;A+B7jID;EAKI,YAAA;C/B2jIH;A+B1jIG;;EAEE,eAAA;EACA,8BAAA;C/B4jIL;A+BrkID;EAcI,YAAA;C/B0jIH;A+BxkID;EAmBM,YAAA;C/BwjIL;A+BtjIK;;EAEE,YAAA;EACA,8BAAA;C/BwjIP;A+BpjIK;;;EAGE,YAAA;EACA,0BAAA;C/BsjIP;A+BljIK;;;EAGE,YAAA;EACA,8BAAA;C/BojIP;A+B7iIK;;;EAGE,YAAA;EACA,0BAAA;C/B+iIP;A+B3iIG;EAAA;IAIM,YAAA;G/B2iIP;E+B1iIO;;IAEE,YAAA;IACA,8BAAA;G/B4iIT;E+BxiIO;;;IAGE,YAAA;IACA,0BAAA;G/B0iIT;E+BtiIO;;;IAGE,YAAA;IACA,8BAAA;G/BwiIT;CACF;A+BxnID;EAuFI,mBAAA;C/BoiIH;A+BniIG;;EAEE,uBAAA;C/BqiIL;A+B/nID;EA6FM,uBAAA;C/BqiIL;A+BloID;;EAmGI,sBAAA;C/BmiIH;A+BtoID;EA4GI,YAAA;C/B6hIH;A+B5hIG;EACE,YAAA;C/B8hIL;A+B5oID;EAmHI,YAAA;C/B4hIH;A+B3hIG;;EAEE,YAAA;C/B6hIL;A+BzhIK;;;;EAEE,YAAA;C/B6hIP;A+BrhID;EACE,uBAAA;EACA,sBAAA;C/BuhID;A+BzhID;EAKI,eAAA;C/BuhIH;A+BthIG;;EAEE,YAAA;EACA,8BAAA;C/BwhIL;A+BjiID;EAcI,eAAA;C/BshIH;A+BpiID;EAmBM,eAAA;C/BohIL;A+BlhIK;;EAEE,YAAA;EACA,8BAAA;C/BohIP;A+BhhIK;;;EAGE,YAAA;EACA,0BAAA;C/BkhIP;A+B9gIK;;;EAGE,YAAA;EACA,8BAAA;C/BghIP;A+B1gIK;;;EAGE,YAAA;EACA,0BAAA;C/B4gIP;A+BxgIG;EAAA;IAIM,sBAAA;G/BwgIP;E+B5gIC;IAOM,0BAAA;G/BwgIP;E+B/gIC;IAUM,eAAA;G/BwgIP;E+BvgIO;;IAEE,YAAA;IACA,8BAAA;G/BygIT;E+BrgIO;;;IAGE,YAAA;IACA,0BAAA;G/BugIT;E+BngIO;;;IAGE,YAAA;IACA,8BAAA;G/BqgIT;CACF;A+B1lID;EA6FI,mBAAA;C/BggIH;A+B//HG;;EAEE,uBAAA;C/BigIL;A+BjmID;EAmGM,uBAAA;C/BigIL;A+BpmID;;EAyGI,sBAAA;C/B+/HH;A+BxmID;EA6GI,eAAA;C/B8/HH;A+B7/HG;EACE,YAAA;C/B+/HL;A+B9mID;EAoHI,eAAA;C/B6/HH;A+B5/HG;;EAEE,YAAA;C/B8/HL;A+B1/HK;;;;EAEE,YAAA;C/B8/HP;AkCpoJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClCsoJD;AkC3oJD;EAQI,sBAAA;ClCsoJH;AkC9oJD;EAWM,eAAA;EACA,YAAA;EACA,kBAAA;ClCsoJL;AkCnpJD;EAkBI,eAAA;ClCooJH;AmCxpJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnC0pJD;AmC9pJD;EAOI,gBAAA;CnC0pJH;AmCjqJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,kBAAA;EACA,wBAAA;EACA,eAAA;EACA,sBAAA;EACA,uBAAA;EACA,uBAAA;CnC2pJL;AmCzpJK;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CnC6pJP;AmC1pJG;;EAGI,eAAA;EPnBN,4BAAA;EACA,+BAAA;C5B+qJD;AmCzpJG;;EP/BF,6BAAA;EACA,gCAAA;C5B4rJD;AmCppJG;;;;;;EAGE,WAAA;EACA,YAAA;EACA,gBAAA;EACA,0BAAA;EACA,sBAAA;CnCypJL;AmC7sJD;;;;;;EA+DM,eAAA;EACA,oBAAA;EACA,uBAAA;EACA,mBAAA;CnCspJL;AmC7oJD;;ECxEM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpCytJL;AoCvtJG;;ERKF,4BAAA;EACA,+BAAA;C5BstJD;AoCttJG;;ERTF,6BAAA;EACA,gCAAA;C5BmuJD;AmCxpJD;;EC7EM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpCyuJL;AoCvuJG;;ERKF,4BAAA;EACA,+BAAA;C5BsuJD;AoCtuJG;;ERTF,6BAAA;EACA,gCAAA;C5BmvJD;AqCtvJD;EACE,gBAAA;EACA,eAAA;EACA,mBAAA;EACA,iBAAA;CrCwvJD;AqC5vJD;EAOI,gBAAA;CrCwvJH;AqC/vJD;;EAUM,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,uBAAA;EACA,oBAAA;CrCyvJL;AqCvwJD;;EAmBM,sBAAA;EACA,0BAAA;CrCwvJL;AqC5wJD;;EA2BM,aAAA;CrCqvJL;AqChxJD;;EAkCM,YAAA;CrCkvJL;AqCpxJD;;;;EA2CM,eAAA;EACA,oBAAA;EACA,uBAAA;CrC+uJL;AsC7xJD;EACE,gBAAA;EACA,2BAAA;EACA,eAAA;EACA,iBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,sBAAA;CtC+xJD;AsC3xJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CtC6xJL;AsCxxJC;EACE,cAAA;CtC0xJH;AsCtxJC;EACE,mBAAA;EACA,UAAA;CtCwxJH;AsCjxJD;ECtCE,0BAAA;CvC0zJD;AuCvzJG;;EAEE,0BAAA;CvCyzJL;AsCpxJD;EC1CE,0BAAA;CvCi0JD;AuC9zJG;;EAEE,0BAAA;CvCg0JL;AsCvxJD;EC9CE,0BAAA;CvCw0JD;AuCr0JG;;EAEE,0BAAA;CvCu0JL;AsC1xJD;EClDE,0BAAA;CvC+0JD;AuC50JG;;EAEE,0BAAA;CvC80JL;AsC7xJD;ECtDE,0BAAA;CvCs1JD;AuCn1JG;;EAEE,0BAAA;CvCq1JL;AsChyJD;EC1DE,0BAAA;CvC61JD;AuC11JG;;EAEE,0BAAA;CvC41JL;AwC91JD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,0BAAA;EACA,oBAAA;CxCg2JD;AwC71JC;EACE,cAAA;CxC+1JH;AwC31JC;EACE,mBAAA;EACA,UAAA;CxC61JH;AwC11JC;;EAEE,OAAA;EACA,iBAAA;CxC41JH;AwCv1JG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CxCy1JL;AwCp1JC;;EAEE,eAAA;EACA,uBAAA;CxCs1JH;AwCn1JC;EACE,aAAA;CxCq1JH;AwCl1JC;EACE,kBAAA;CxCo1JH;AwCj1JC;EACE,iBAAA;CxCm1JH;AyC74JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzC+4JD;AyCp5JD;;EASI,eAAA;CzC+4JH;AyCx5JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzC84JH;AyC75JD;EAmBI,0BAAA;CzC64JH;AyC14JC;;EAEE,oBAAA;EACA,mBAAA;EACA,mBAAA;CzC44JH;AyCt6JD;EA8BI,gBAAA;CzC24JH;AyCx4JC;EAAA;IACE,kBAAA;IACA,qBAAA;GzC24JD;EyCz4JC;;IAEE,oBAAA;IACA,mBAAA;GzC24JH;EyCl5JD;;IAYI,gBAAA;GzC04JH;CACF;A0Cr7JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CLuwJT;A0Cj8JD;;EAaI,mBAAA;EACA,kBAAA;C1Cw7JH;A0Cp7JC;;;EAGE,sBAAA;C1Cs7JH;A0C38JD;EA0BI,aAAA;EACA,eAAA;C1Co7JH;A2C/8JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Ci9JD;A2Cr9JD;EAQI,cAAA;EACA,eAAA;C3Cg9JH;A2Cz9JD;EAcI,kBAAA;C3C88JH;A2C59JD;;EAoBI,iBAAA;C3C48JH;A2Ch+JD;EAwBI,gBAAA;C3C28JH;A2Cl8JD;;EAEE,oBAAA;C3Co8JD;A2Ct8JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3Co8JH;A2C57JD;ECvDE,eAAA;EACA,0BAAA;EACA,sBAAA;C5Cs/JD;A2Cj8JD;EClDI,0BAAA;C5Cs/JH;A2Cp8JD;EC9CI,eAAA;C5Cq/JH;A2Cn8JD;EC3DE,eAAA;EACA,0BAAA;EACA,sBAAA;C5CigKD;A2Cx8JD;ECtDI,0BAAA;C5CigKH;A2C38JD;EClDI,eAAA;C5CggKH;A2C18JD;EC/DE,eAAA;EACA,0BAAA;EACA,sBAAA;C5C4gKD;A2C/8JD;EC1DI,0BAAA;C5C4gKH;A2Cl9JD;ECtDI,eAAA;C5C2gKH;A2Cj9JD;ECnEE,eAAA;EACA,0BAAA;EACA,sBAAA;C5CuhKD;A2Ct9JD;EC9DI,0BAAA;C5CuhKH;A2Cz9JD;EC1DI,eAAA;C5CshKH;A6CvhKD;EACE;IAAQ,4BAAA;G7C0hKP;E6CzhKD;IAAQ,yBAAA;G7C4hKP;CACF;A6CzhKD;EACE;IAAQ,4BAAA;G7C4hKP;E6C3hKD;IAAQ,yBAAA;G7C8hKP;CACF;A6CjiKD;EACE;IAAQ,4BAAA;G7C4hKP;E6C3hKD;IAAQ,yBAAA;G7C8hKP;CACF;A6CvhKD;EACE,aAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CLo/JT;A6CthKD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CLw4JT;A6CnhKD;;ECDI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDEF,mCAAA;EAAA,2BAAA;C7CuhKD;A6ChhKD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CLgkKT;A6C7gKD;EEvEE,0BAAA;C/CulKD;A+CplKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9CuiKH;A6CjhKD;EE3EE,0BAAA;C/C+lKD;A+C5lKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C+iKH;A6CrhKD;EE/EE,0BAAA;C/CumKD;A+CpmKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9CujKH;A6CzhKD;EEnFE,0BAAA;C/C+mKD;A+C5mKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C+jKH;AgDvnKD;EAEE,iBAAA;ChDwnKD;AgDtnKC;EACE,cAAA;ChDwnKH;AgDpnKD;;EAEE,iBAAA;EACA,QAAA;ChDsnKD;AgDnnKD;EACE,eAAA;ChDqnKD;AgDlnKD;EACE,eAAA;ChDonKD;AgDjnKC;EACE,gBAAA;ChDmnKH;AgD/mKD;;EAEE,mBAAA;ChDinKD;AgD9mKD;;EAEE,oBAAA;ChDgnKD;AgD7mKD;;;EAGE,oBAAA;EACA,oBAAA;ChD+mKD;AgD5mKD;EACE,uBAAA;ChD8mKD;AgD3mKD;EACE,uBAAA;ChD6mKD;AgDzmKD;EACE,cAAA;EACA,mBAAA;ChD2mKD;AgDrmKD;EACE,gBAAA;EACA,iBAAA;ChDumKD;AiD5pKD;EAEE,gBAAA;EACA,oBAAA;CjD6pKD;AiDrpKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,uBAAA;EACA,uBAAA;CjDspKD;AiDnpKC;ErB7BA,4BAAA;EACA,6BAAA;C5BmrKD;AiDppKC;EACE,iBAAA;ErBzBF,gCAAA;EACA,+BAAA;C5BgrKD;AiDnpKC;;;EAGE,eAAA;EACA,oBAAA;EACA,0BAAA;CjDqpKH;AiD1pKC;;;EASI,eAAA;CjDspKL;AiD/pKC;;;EAYI,eAAA;CjDwpKL;AiDnpKC;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;CjDqpKH;AiD3pKC;;;;;;;;;EAYI,eAAA;CjD0pKL;AiDtqKC;;;EAeI,eAAA;CjD4pKL;AiDjpKD;;EAEE,YAAA;CjDmpKD;AiDrpKD;;EAKI,YAAA;CjDopKH;AiDhpKC;;;;EAEE,YAAA;EACA,sBAAA;EACA,0BAAA;CjDopKH;AiDhpKD;EACE,YAAA;EACA,iBAAA;CjDkpKD;AczvKA;EoCIG,eAAA;EACA,0BAAA;ClDwvKH;AkDtvKG;;EAEE,eAAA;ClDwvKL;AkD1vKG;;EAKI,eAAA;ClDyvKP;AkDtvKK;;;;EAEE,eAAA;EACA,0BAAA;ClD0vKP;AkDxvKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD6vKP;ActxKA;EoCIG,eAAA;EACA,0BAAA;ClDqxKH;AkDnxKG;;EAEE,eAAA;ClDqxKL;AkDvxKG;;EAKI,eAAA;ClDsxKP;AkDnxKK;;;;EAEE,eAAA;EACA,0BAAA;ClDuxKP;AkDrxKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD0xKP;AcnzKA;EoCIG,eAAA;EACA,0BAAA;ClDkzKH;AkDhzKG;;EAEE,eAAA;ClDkzKL;AkDpzKG;;EAKI,eAAA;ClDmzKP;AkDhzKK;;;;EAEE,eAAA;EACA,0BAAA;ClDozKP;AkDlzKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDuzKP;Ach1KA;EoCIG,eAAA;EACA,0BAAA;ClD+0KH;AkD70KG;;EAEE,eAAA;ClD+0KL;AkDj1KG;;EAKI,eAAA;ClDg1KP;AkD70KK;;;;EAEE,eAAA;EACA,0BAAA;ClDi1KP;AkD/0KK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDo1KP;AiDnvKD;EACE,cAAA;EACA,mBAAA;CjDqvKD;AiDnvKD;EACE,iBAAA;EACA,iBAAA;CjDqvKD;AmD72KD;EACE,oBAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CLszKT;AmD52KD;EACE,cAAA;CnD82KD;AmDz2KD;EACE,mBAAA;EACA,qCAAA;EvBtBA,4BAAA;EACA,6BAAA;C5Bk4KD;AmD/2KD;EAMI,eAAA;CnD42KH;AmDv2KD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDy2KD;AmD72KD;;;;;EAWI,eAAA;CnDy2KH;AmDp2KD;EACE,mBAAA;EACA,0BAAA;EACA,2BAAA;EvB1CA,gCAAA;EACA,+BAAA;C5Bi5KD;AmD91KD;;EAGI,iBAAA;CnD+1KH;AmDl2KD;;EAMM,oBAAA;EACA,iBAAA;CnDg2KL;AmD51KG;;EAEI,cAAA;EvBzEN,4BAAA;EACA,6BAAA;C5Bw6KD;AmD11KG;;EAEI,iBAAA;EvBzEN,gCAAA;EACA,+BAAA;C5Bs6KD;AmDn3KD;EvB5DE,0BAAA;EACA,2BAAA;C5Bk7KD;AmDt1KD;EAEI,oBAAA;CnDu1KH;AmDp1KD;EACE,oBAAA;CnDs1KD;AmD90KD;;;EAII,iBAAA;CnD+0KH;AmDn1KD;;;EAOM,oBAAA;EACA,mBAAA;CnDi1KL;AmDz1KD;;EvB3GE,4BAAA;EACA,6BAAA;C5Bw8KD;AmD91KD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnDi1KP;AmDr2KD;;;;;;;;EAwBU,4BAAA;CnDu1KT;AmD/2KD;;;;;;;;EA4BU,6BAAA;CnD61KT;AmDz3KD;;EvBnGE,gCAAA;EACA,+BAAA;C5Bg+KD;AmD93KD;;;;EAyCQ,gCAAA;EACA,+BAAA;CnD21KP;AmDr4KD;;;;;;;;EA8CU,+BAAA;CnDi2KT;AmD/4KD;;;;;;;;EAkDU,gCAAA;CnDu2KT;AmDz5KD;;;;EA2DI,2BAAA;CnDo2KH;AmD/5KD;;EA+DI,cAAA;CnDo2KH;AmDn6KD;;EAmEI,UAAA;CnDo2KH;AmDv6KD;;;;;;;;;;;;EA0EU,eAAA;CnD22KT;AmDr7KD;;;;;;;;;;;;EA8EU,gBAAA;CnDq3KT;AmDn8KD;;;;;;;;EAuFU,iBAAA;CnDs3KT;AmD78KD;;;;;;;;EAgGU,iBAAA;CnDu3KT;AmDv9KD;EAsGI,iBAAA;EACA,UAAA;CnDo3KH;AmD12KD;EACE,oBAAA;CnD42KD;AmD72KD;EAKI,iBAAA;EACA,mBAAA;CnD22KH;AmDj3KD;EASM,gBAAA;CnD22KL;AmDp3KD;EAcI,iBAAA;CnDy2KH;AmDv3KD;;EAkBM,2BAAA;CnDy2KL;AmD33KD;EAuBI,cAAA;CnDu2KH;AmD93KD;EAyBM,8BAAA;CnDw2KL;AmDj2KD;EC5PE,mBAAA;CpDgmLD;AoD9lLC;EACE,eAAA;EACA,0BAAA;EACA,mBAAA;CpDgmLH;AoDnmLC;EAMI,uBAAA;CpDgmLL;AoDtmLC;EASI,eAAA;EACA,0BAAA;CpDgmLL;AoD7lLC;EAEI,0BAAA;CpD8lLL;AmDh3KD;EC/PE,sBAAA;CpDknLD;AoDhnLC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CpDknLH;AoDrnLC;EAMI,0BAAA;CpDknLL;AoDxnLC;EASI,eAAA;EACA,uBAAA;CpDknLL;AoD/mLC;EAEI,6BAAA;CpDgnLL;AmD/3KD;EClQE,sBAAA;CpDooLD;AoDloLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDooLH;AoDvoLC;EAMI,0BAAA;CpDooLL;AoD1oLC;EASI,eAAA;EACA,0BAAA;CpDooLL;AoDjoLC;EAEI,6BAAA;CpDkoLL;AmD94KD;ECrQE,sBAAA;CpDspLD;AoDppLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDspLH;AoDzpLC;EAMI,0BAAA;CpDspLL;AoD5pLC;EASI,eAAA;EACA,0BAAA;CpDspLL;AoDnpLC;EAEI,6BAAA;CpDopLL;AmD75KD;ECxQE,sBAAA;CpDwqLD;AoDtqLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDwqLH;AoD3qLC;EAMI,0BAAA;CpDwqLL;AoD9qLC;EASI,eAAA;EACA,0BAAA;CpDwqLL;AoDrqLC;EAEI,6BAAA;CpDsqLL;AmD56KD;EC3QE,sBAAA;CpD0rLD;AoDxrLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD0rLH;AoD7rLC;EAMI,0BAAA;CpD0rLL;AoDhsLC;EASI,eAAA;EACA,0BAAA;CpD0rLL;AoDvrLC;EAEI,6BAAA;CpDwrLL;AqDxsLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrD0sLD;AqD/sLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,UAAA;EACA,QAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;CrD0sLH;AqDrsLD;EACE,uBAAA;CrDusLD;AqDnsLD;EACE,oBAAA;CrDqsLD;AsDhuLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjD0DA,wDAAA;EACQ,gDAAA;CLyqLT;AsD1uLD;EASI,mBAAA;EACA,kCAAA;CtDouLH;AsD/tLD;EACE,cAAA;EACA,mBAAA;CtDiuLD;AsD/tLD;EACE,aAAA;EACA,mBAAA;CtDiuLD;AuDrvLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,0BAAA;EjCTA,0BAAA;EACA,aAAA;CtBiwLD;AuDtvLC;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;EjChBF,0BAAA;EACA,aAAA;CtBywLD;AuDlvLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;EACA,sBAAA;EAAA,iBAAA;CvDovLH;AwD5wLD;EACE,iBAAA;CxD8wLD;AwD1wLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,kCAAA;EAIA,WAAA;CxDywLD;AwDtwLC;EnDiHA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,4CAAA;EAAA,oCAAA;EAAA,iGAAA;CLulLT;AwD5wLC;EnD6GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CLkqLT;AwDhxLD;EACE,mBAAA;EACA,iBAAA;CxDkxLD;AwD9wLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDgxLD;AwD5wLD;EACE,mBAAA;EACA,uBAAA;EACA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EnDcA,iDAAA;EACQ,yCAAA;EmDZR,WAAA;CxD8wLD;AwD1wLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,uBAAA;CxD4wLD;AwD1wLC;ElCpEA,yBAAA;EACA,WAAA;CtBi1LD;AwD7wLC;ElCrEA,0BAAA;EACA,aAAA;CtBq1LD;AwD5wLD;EACE,cAAA;EACA,iCAAA;CxD8wLD;AwD1wLD;EACE,iBAAA;CxD4wLD;AwDxwLD;EACE,UAAA;EACA,wBAAA;CxD0wLD;AwDrwLD;EACE,mBAAA;EACA,cAAA;CxDuwLD;AwDnwLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxDqwLD;AwDxwLD;EAQI,iBAAA;EACA,iBAAA;CxDmwLH;AwD5wLD;EAaI,kBAAA;CxDkwLH;AwD/wLD;EAiBI,eAAA;CxDiwLH;AwD5vLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxD8vLD;AwD1vLD;EAEE;IACE,aAAA;IACA,kBAAA;GxD2vLD;EwDzvLD;InDrEA,kDAAA;IACQ,0CAAA;GLi0LP;EwDxvLD;IAAY,aAAA;GxD2vLX;CACF;AwDzvLD;EACE;IAAY,aAAA;GxD4vLX;CACF;AyD34LD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,uBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EACA,oBAAA;EDHA,gBAAA;EnCTA,yBAAA;EACA,WAAA;CtBm6LD;AyDv5LC;EnCbA,0BAAA;EACA,aAAA;CtBu6LD;AyD15LC;EACE,eAAA;EACA,iBAAA;CzD45LH;AyD15LC;EACE,eAAA;EACA,iBAAA;CzD45LH;AyD15LC;EACE,eAAA;EACA,gBAAA;CzD45LH;AyD15LC;EACE,eAAA;EACA,kBAAA;CzD45LH;AyDx5LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,uBAAA;CzD05LH;AyDx5LC;EACE,WAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzD05LH;AyDx5LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzD05LH;AyDx5LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;CzD05LH;AyDx5LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,wBAAA;CzD05LH;AyDx5LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzD05LH;AyDx5LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzD05LH;AyDx5LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzD05LH;AyDr5LD;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;CzDu5LD;AyDn5LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzDq5LD;A2D9/LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,uBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EACA,oBAAA;ECAA,gBAAA;EACA,uBAAA;EACA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EtDiDA,kDAAA;EACQ,0CAAA;CL49LT;A2D1gMC;EAAQ,kBAAA;C3D6gMT;A2D5gMC;EAAU,kBAAA;C3D+gMX;A2D9gMC;EAAW,iBAAA;C3DihMZ;A2DhhMC;EAAS,mBAAA;C3DmhMV;A2D1iMD;EA4BI,mBAAA;C3DihMH;A2D/gMG;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3DihML;A2D9gMG;EACE,YAAA;EACA,mBAAA;C3DghML;A2D5gMC;EACE,cAAA;EACA,UAAA;EACA,mBAAA;EACA,0BAAA;EACA,sCAAA;EACA,uBAAA;C3D8gMH;A2D7gMG;EACE,YAAA;EACA,mBAAA;EACA,aAAA;EACA,uBAAA;EACA,uBAAA;C3D+gML;A2D5gMC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,4BAAA;EACA,wCAAA;EACA,qBAAA;C3D8gMH;A2D7gMG;EACE,cAAA;EACA,UAAA;EACA,aAAA;EACA,yBAAA;EACA,qBAAA;C3D+gML;A2D5gMC;EACE,WAAA;EACA,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;C3D8gMH;A2D7gMG;EACE,SAAA;EACA,mBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;C3D+gML;A2D3gMC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D6gMH;A2D5gMG;EACE,WAAA;EACA,cAAA;EACA,aAAA;EACA,sBAAA;EACA,wBAAA;C3D8gML;A2DzgMD;EACE,kBAAA;EACA,UAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3D2gMD;A2DxgMD;EACE,kBAAA;C3D0gMD;A4D9nMD;EACE,mBAAA;C5DgoMD;A4D7nMD;EACE,mBAAA;EACA,YAAA;EACA,iBAAA;C5D+nMD;A4DloMD;EAMI,mBAAA;EACA,cAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CLm9LT;A4DzoMD;;EAcM,eAAA;C5D+nML;A4D3nMG;EAAA;IvDuLF,uDAAA;IAEK,6CAAA;IACG,+CAAA;IAAA,uCAAA;IAAA,0GAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GLw/LP;E4DnoMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5DsoML;E4DpoMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5DuoML;E4DroMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5DwoML;CACF;A4D9qMD;;;EA6CI,eAAA;C5DsoMH;A4DnrMD;EAiDI,QAAA;C5DqoMH;A4DtrMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5DooMH;A4D5rMD;EA4DI,WAAA;C5DmoMH;A4D/rMD;EA+DI,YAAA;C5DmoMH;A4DlsMD;;EAmEI,QAAA;C5DmoMH;A4DtsMD;EAuEI,YAAA;C5DkoMH;A4DzsMD;EA0EI,WAAA;C5DkoMH;A4D1nMD;EACE,mBAAA;EACA,OAAA;EACA,UAAA;EACA,QAAA;EACA,WAAA;EACA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;EACA,mCAAA;EtCpGA,0BAAA;EACA,aAAA;CtBiuMD;A4DxnMC;EdrGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,uHAAA;EACA,4BAAA;C9CguMH;A4D5nMC;EACE,SAAA;EACA,WAAA;Ed1GA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,uHAAA;EACA,4BAAA;C9CyuMH;A4D9nMC;;EAEE,YAAA;EACA,sBAAA;EACA,WAAA;EtCxHF,0BAAA;EACA,aAAA;CtByvMD;A4DhqMD;;;;EAuCI,mBAAA;EACA,SAAA;EACA,WAAA;EACA,sBAAA;EACA,kBAAA;C5D+nMH;A4D1qMD;;EA+CI,UAAA;EACA,mBAAA;C5D+nMH;A4D/qMD;;EAoDI,WAAA;EACA,oBAAA;C5D+nMH;A4DprMD;;EAyDI,YAAA;EACA,aAAA;EACA,mBAAA;EACA,eAAA;C5D+nMH;A4D3nMG;EACE,iBAAA;C5D6nML;A4DznMG;EACE,iBAAA;C5D2nML;A4DjnMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,mBAAA;EACA,iBAAA;C5DmnMD;A4D5nMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,gBAAA;EAUA,0BAAA;EACA,mCAAA;EAEA,uBAAA;EACA,oBAAA;C5DymMH;A4DxoMD;EAmCI,YAAA;EACA,aAAA;EACA,UAAA;EACA,uBAAA;C5DwmMH;A4DjmMD;EACE,mBAAA;EACA,WAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;C5DmmMD;A4DjmMC;EACE,kBAAA;C5DmmMH;A4D7lMD;EAGE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5D4lMH;E4DpmMD;;IAYI,mBAAA;G5D4lMH;E4DxmMD;;IAgBI,oBAAA;G5D4lMH;E4DvlMD;IACE,WAAA;IACA,UAAA;IACA,qBAAA;G5DylMD;E4DrlMD;IACE,aAAA;G5DulMD;CACF;A6Dz1MC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,eAAA;EACA,aAAA;C7Dy3MH;A6Dv3MC;;;;;;;;;;;;;;;;EACE,YAAA;C7Dw4MH;AiC94MD;E6BVE,eAAA;EACA,mBAAA;EACA,kBAAA;C9D25MD;AiCh5MD;EACE,wBAAA;CjCk5MD;AiCh5MD;EACE,uBAAA;CjCk5MD;AiC14MD;EACE,yBAAA;CjC44MD;AiC14MD;EACE,0BAAA;CjC44MD;AiC14MD;EACE,mBAAA;CjC44MD;AiC14MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/Ds6MD;AiCx4MD;EACE,yBAAA;CjC04MD;AiCn4MD;EACE,gBAAA;CjCq4MD;AgEt6MD;EACE,oBAAA;ChEw6MD;AgEl6MD;;;;EClBE,yBAAA;CjE07MD;AgEj6MD;;;;;;;;;;;;EAYE,yBAAA;ChEm6MD;AgE/5MC;EAAA;ICjDA,0BAAA;GjEo9MC;EiEn9MD;IAAU,0BAAA;GjEs9MT;EiEr9MD;IAAU,8BAAA;GjEw9MT;EiEv9MD;;IACU,+BAAA;GjE09MT;CACF;AgEz6MC;EAAA;IACE,0BAAA;GhE46MD;CACF;AgEz6MC;EAAA;IACE,2BAAA;GhE46MD;CACF;AgEz6MC;EAAA;IACE,iCAAA;GhE46MD;CACF;AgEx6MC;EAAA;ICtEA,0BAAA;GjEk/MC;EiEj/MD;IAAU,0BAAA;GjEo/MT;EiEn/MD;IAAU,8BAAA;GjEs/MT;EiEr/MD;;IACU,+BAAA;GjEw/MT;CACF;AgEl7MC;EAAA;IACE,0BAAA;GhEq7MD;CACF;AgEl7MC;EAAA;IACE,2BAAA;GhEq7MD;CACF;AgEl7MC;EAAA;IACE,iCAAA;GhEq7MD;CACF;AgEj7MC;EAAA;IC3FA,0BAAA;GjEghNC;EiE/gND;IAAU,0BAAA;GjEkhNT;EiEjhND;IAAU,8BAAA;GjEohNT;EiEnhND;;IACU,+BAAA;GjEshNT;CACF;AgE37MC;EAAA;IACE,0BAAA;GhE87MD;CACF;AgE37MC;EAAA;IACE,2BAAA;GhE87MD;CACF;AgE37MC;EAAA;IACE,iCAAA;GhE87MD;CACF;AgE17MC;EAAA;IChHA,0BAAA;GjE8iNC;EiE7iND;IAAU,0BAAA;GjEgjNT;EiE/iND;IAAU,8BAAA;GjEkjNT;EiEjjND;;IACU,+BAAA;GjEojNT;CACF;AgEp8MC;EAAA;IACE,0BAAA;GhEu8MD;CACF;AgEp8MC;EAAA;IACE,2BAAA;GhEu8MD;CACF;AgEp8MC;EAAA;IACE,iCAAA;GhEu8MD;CACF;AgEn8MC;EAAA;IC7HA,yBAAA;GjEokNC;CACF;AgEn8MC;EAAA;IClIA,yBAAA;GjEykNC;CACF;AgEn8MC;EAAA;ICvIA,yBAAA;GjE8kNC;CACF;AgEn8MC;EAAA;IC5IA,yBAAA;GjEmlNC;CACF;AgE77MD;ECvJE,yBAAA;CjEulND;AgE77MC;EAAA;IClKA,0BAAA;GjEmmNC;EiElmND;IAAU,0BAAA;GjEqmNT;EiEpmND;IAAU,8BAAA;GjEumNT;EiEtmND;;IACU,+BAAA;GjEymNT;CACF;AgEx8MD;EACE,yBAAA;ChE08MD;AgEx8MC;EAAA;IACE,0BAAA;GhE28MD;CACF;AgEz8MD;EACE,yBAAA;ChE28MD;AgEz8MC;EAAA;IACE,2BAAA;GhE48MD;CACF;AgE18MD;EACE,yBAAA;ChE48MD;AgE18MC;EAAA;IACE,iCAAA;GhE68MD;CACF;AgEz8MC;EAAA;ICrLA,yBAAA;GjEkoNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: none;\n text-decoration: underline;\n text-decoration: underline dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important;\n text-shadow: none !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"../fonts/glyphicons-halflings-regular.eot\");\n src: url(\"../fonts/glyphicons-halflings-regular.eot?#iefix\") format(\"embedded-opentype\"), url(\"../fonts/glyphicons-halflings-regular.woff2\") format(\"woff2\"), url(\"../fonts/glyphicons-halflings-regular.woff\") format(\"woff\"), url(\"../fonts/glyphicons-halflings-regular.ttf\") format(\"truetype\"), url(\"../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular\") format(\"svg\");\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\002a\";\n}\n.glyphicon-plus:before {\n content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: 400;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: \"\\2014 \\00A0\";\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: \"\";\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: \"\\00A0 \\2014\";\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #fff;\n background-color: #333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n color: #333333;\n word-break: break-all;\n word-wrap: break-word;\n background-color: #f5f5f5;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n.row {\n margin-right: -15px;\n margin-left: -15px;\n}\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n.row-no-gutters [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.col-xs-1,\n.col-sm-1,\n.col-md-1,\n.col-lg-1,\n.col-xs-2,\n.col-sm-2,\n.col-md-2,\n.col-lg-2,\n.col-xs-3,\n.col-sm-3,\n.col-md-3,\n.col-lg-3,\n.col-xs-4,\n.col-sm-4,\n.col-md-4,\n.col-lg-4,\n.col-xs-5,\n.col-sm-5,\n.col-md-5,\n.col-lg-5,\n.col-xs-6,\n.col-sm-6,\n.col-md-6,\n.col-lg-6,\n.col-xs-7,\n.col-sm-7,\n.col-md-7,\n.col-lg-7,\n.col-xs-8,\n.col-sm-8,\n.col-md-8,\n.col-lg-8,\n.col-xs-9,\n.col-sm-9,\n.col-md-9,\n.col-lg-9,\n.col-xs-10,\n.col-sm-10,\n.col-md-10,\n.col-lg-10,\n.col-xs-11,\n.col-sm-11,\n.col-md-11,\n.col-lg-11,\n.col-xs-12,\n.col-sm-12,\n.col-md-12,\n.col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n.col-xs-1,\n.col-xs-2,\n.col-xs-3,\n.col-xs-4,\n.col-xs-5,\n.col-xs-6,\n.col-xs-7,\n.col-xs-8,\n.col-xs-9,\n.col-xs-10,\n.col-xs-11,\n.col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1,\n .col-sm-2,\n .col-sm-3,\n .col-sm-4,\n .col-sm-5,\n .col-sm-6,\n .col-sm-7,\n .col-sm-8,\n .col-sm-9,\n .col-sm-10,\n .col-sm-11,\n .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1,\n .col-md-2,\n .col-md-3,\n .col-md-4,\n .col-md-5,\n .col-md-6,\n .col-md-7,\n .col-md-8,\n .col-md-9,\n .col-md-10,\n .col-md-11,\n .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1,\n .col-lg-2,\n .col-lg-3,\n .col-lg-4,\n .col-lg-5,\n .col-lg-6,\n .col-lg-7,\n .col-lg-8,\n .col-lg-9,\n .col-lg-10,\n .col-lg-11,\n .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ntable col[class*=\"col-\"] {\n position: static;\n display: table-column;\n float: none;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n display: table-cell;\n float: none;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #ddd;\n}\n.table .table {\n background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n min-height: 0.01%;\n overflow-x: auto;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #ddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: 700;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n -webkit-appearance: none;\n appearance: none;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #fff;\n background-image: none;\n border: 1px solid #ccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999;\n}\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-top: 4px \\9;\n margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: 400;\n vertical-align: middle;\n cursor: pointer;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\n.form-control-static {\n min-height: 34px;\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-right: 0;\n padding-left: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #3c763d;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #8a6d3b;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n background-color: #f2dede;\n border-color: #a94442;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n padding-top: 7px;\n margin-top: 0;\n margin-bottom: 0;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n padding-top: 7px;\n margin-bottom: 0;\n text-align: right;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 11px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n outline: 0;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n filter: alpha(opacity=65);\n opacity: 0.65;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333;\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333;\n background-color: #e6e6e6;\n background-image: none;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n background-color: #fff;\n border-color: #ccc;\n}\n.btn-default .badge {\n color: #fff;\n background-color: #333;\n}\n.btn-primary {\n color: #fff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #fff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #fff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #fff;\n background-color: #286090;\n background-image: none;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #fff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.btn-success {\n color: #fff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #fff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #fff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #fff;\n background-color: #449d44;\n background-image: none;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #fff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #fff;\n}\n.btn-info {\n color: #fff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #fff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #fff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #fff;\n background-color: #31b0d5;\n background-image: none;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #fff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #fff;\n}\n.btn-warning {\n color: #fff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #fff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #fff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #fff;\n background-color: #ec971f;\n background-image: none;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #fff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #fff;\n}\n.btn-danger {\n color: #fff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #fff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #fff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #fff;\n background-color: #c9302c;\n background-image: none;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #fff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #fff;\n}\n.btn-link {\n font-weight: 400;\n color: #337ab7;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n font-size: 14px;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: 400;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n color: #262626;\n text-decoration: none;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #fff;\n text-decoration: none;\n background-color: #337ab7;\n outline: 0;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n content: \"\";\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n right: 0;\n left: auto;\n }\n .navbar-right .dropdown-menu-left {\n right: auto;\n left: 0;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-right: 8px;\n padding-left: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-right: 12px;\n padding-left: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n display: table-cell;\n float: none;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-right: 0;\n padding-left: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group .form-control:focus {\n z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #ccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n cursor: not-allowed;\n background-color: transparent;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n cursor: default;\n background-color: #fff;\n border: 1px solid #ddd;\n border-bottom-color: transparent;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #fff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n margin-bottom: 5px;\n text-align: center;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #ddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #fff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n padding-right: 15px;\n padding-left: 15px;\n overflow-x: visible;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-right: 0;\n padding-left: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-brand {\n float: left;\n height: 50px;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n padding: 9px 10px;\n margin-right: 15px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n padding: 10px 15px;\n margin-right: -15px;\n margin-left: -15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n padding-top: 0;\n padding-bottom: 0;\n margin-right: 0;\n margin-left: 0;\n border: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-right: 15px;\n margin-left: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n color: #555;\n background-color: #e7e7e7;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #ccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-toggle {\n border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-link {\n color: #777;\n}\n.navbar-default .navbar-link:hover {\n color: #333;\n}\n.navbar-default .btn-link {\n color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #ccc;\n}\n.navbar-inverse {\n background-color: #222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #fff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #fff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n color: #fff;\n background-color: #080808;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #fff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #fff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n padding: 0 5px;\n color: #ccc;\n content: \"/\\00a0\";\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n margin-left: -1px;\n line-height: 1.42857143;\n color: #337ab7;\n text-decoration: none;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 2;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #ddd;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-top-left-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 3;\n color: #fff;\n cursor: default;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n border-color: #ddd;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n text-align: center;\n list-style: none;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n cursor: not-allowed;\n background-color: #fff;\n}\n.label {\n display: inline;\n padding: 0.2em 0.6em 0.3em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25em;\n}\na.label:hover,\na.label:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n line-height: 1;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #fff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n padding-right: 15px;\n padding-left: 15px;\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-right: 60px;\n padding-left: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #fff;\n border: 1px solid #ddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-right: auto;\n margin-left: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n height: 20px;\n margin-bottom: 20px;\n overflow: hidden;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #fff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n overflow: hidden;\n zoom: 1;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n padding-left: 0;\n margin-bottom: 20px;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n color: #777777;\n cursor: not-allowed;\n background-color: #eeeeee;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n color: #555;\n text-decoration: none;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #fff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #ddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-right: 15px;\n padding-left: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n margin-bottom: 0;\n border: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #ddd;\n}\n.panel-default {\n border-color: #ddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #fff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n filter: alpha(opacity=20);\n opacity: 0.2;\n}\n.close:hover,\n.close:focus {\n color: #000;\n text-decoration: none;\n cursor: pointer;\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n.modal-backdrop.fade {\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.modal-backdrop.in {\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-bottom: 0;\n margin-left: 5px;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 12px;\n filter: alpha(opacity=0);\n opacity: 0;\n}\n.tooltip.in {\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.tooltip.top {\n padding: 5px 0;\n margin-top: -3px;\n}\n.tooltip.right {\n padding: 0 5px;\n margin-left: 3px;\n}\n.tooltip.bottom {\n padding: 5px 0;\n margin-top: 3px;\n}\n.tooltip.left {\n padding: 0 5px;\n margin-left: -3px;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n right: 5px;\n bottom: 0;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 1.42857143;\n line-break: auto;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n white-space: normal;\n font-size: 14px;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow:after {\n content: \"\";\n border-width: 10px;\n}\n.popover.top > .arrow {\n bottom: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n border-bottom-width: 0;\n}\n.popover.top > .arrow:after {\n bottom: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-color: #fff;\n border-bottom-width: 0;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n border-left-width: 0;\n}\n.popover.right > .arrow:after {\n bottom: -10px;\n left: 1px;\n content: \" \";\n border-right-color: #fff;\n border-left-width: 0;\n}\n.popover.bottom > .arrow {\n top: -11px;\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n.popover.bottom > .arrow:after {\n top: 1px;\n margin-left: -10px;\n content: \" \";\n border-top-width: 0;\n border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n right: 1px;\n bottom: -10px;\n content: \" \";\n border-right-width: 0;\n border-left-color: #fff;\n}\n.popover-title {\n padding: 8px 14px;\n margin: 0;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner > .item {\n position: relative;\n display: none;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 15%;\n font-size: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n background-color: rgba(0, 0, 0, 0);\n filter: alpha(opacity=50);\n opacity: 0.5;\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control.right {\n right: 0;\n left: auto;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n background-repeat: repeat-x;\n}\n.carousel-control:hover,\n.carousel-control:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n filter: alpha(opacity=90);\n opacity: 0.9;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n z-index: 5;\n display: inline-block;\n margin-top: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n font-family: serif;\n line-height: 1;\n}\n.carousel-control .icon-prev:before {\n content: \"\\2039\";\n}\n.carousel-control .icon-next:before {\n content: \"\\203a\";\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n padding-left: 0;\n margin-left: -30%;\n text-align: center;\n list-style: none;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n border: 1px solid #fff;\n border-radius: 10px;\n}\n.carousel-indicators .active {\n width: 12px;\n height: 12px;\n margin: 0;\n background-color: #fff;\n}\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -10px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -10px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -10px;\n }\n .carousel-caption {\n right: 20%;\n left: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n display: table;\n content: \" \";\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable\n\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// 1. Remove the bottom border in Chrome 57- and Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n//\n\nabbr[title] {\n border-bottom: none; // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n color: #000 !important; // Black prints faster: h5bp.com/s\n text-shadow: none !important;\n background: transparent !important;\n box-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n}\n","// stylelint-disable value-list-comma-newline-after, value-list-comma-space-after, indentation, declaration-colon-newline-after, font-family-no-missing-generic-family-keyword\n\n//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: \"Glyphicons Halflings\";\n src: url(\"@{icon-font-path}@{icon-font-name}.eot\");\n src: url(\"@{icon-font-path}@{icon-font-name}.eot?#iefix\") format(\"embedded-opentype\"),\n url(\"@{icon-font-path}@{icon-font-name}.woff2\") format(\"woff2\"),\n url(\"@{icon-font-path}@{icon-font-name}.woff\") format(\"woff\"),\n url(\"@{icon-font-path}@{icon-font-name}.ttf\") format(\"truetype\"),\n url(\"@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}\") format(\"svg\");\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: \"Glyphicons Halflings\";\n font-style: normal;\n font-weight: 400;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\002a\"; } }\n.glyphicon-plus { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// https://getbootstrap.com/docs/3.4/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// stylelint-disable indentation, property-no-vendor-prefix, selector-no-vendor-prefix\n\n// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n word-wrap: break-word;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // WebKit-specific. Other browsers will keep their default outline style.\n // (Initially tried to also force default via `outline: initial`,\n // but that seems to erroneously remove the outline in Firefox altogether.)\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// stylelint-disable media-feature-name-no-vendor-prefix, media-feature-parentheses-space-inside, media-feature-name-no-unknown, indentation, at-rule-name-space-after\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","// stylelint-disable selector-list-comma-newline-after, selector-no-qualifying-type\n\n//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: 400;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n padding: .2em;\n background-color: @state-warning-bg;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: 700;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @dl-horizontal-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n}\n\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n text-align: right;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: \"\"; }\n &:after {\n content: \"\\00A0 \\2014\"; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n color: @pre-color;\n word-break: break-all;\n word-wrap: break-word;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n.row-no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n padding-right: ceil((@gutter / 2));\n padding-left: floor((@gutter / 2));\n margin-right: auto;\n margin-left: auto;\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-right: floor((@gutter / -2));\n margin-left: ceil((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-right: (@gutter / 2);\n padding-left: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-right: floor((@grid-gutter-width / 2));\n padding-left: ceil((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","// stylelint-disable selector-max-type, selector-max-compound-selectors, selector-no-qualifying-type\n\n//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n\n // Table cell sizing\n //\n // Reset default table behavior\n\n col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n display: table-column;\n float: none;\n }\n\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n display: table-cell;\n float: none;\n }\n }\n}\n\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\n\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n min-height: .01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n overflow-x: auto;\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * .75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type, property-no-vendor-prefix, media-feature-name-no-vendor-prefix\n\n//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: 700;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\ninput[type=\"search\"] {\n // Override content-box in Normalize (* isn't specific enough)\n .box-sizing(border-box);\n\n // Search inputs in iOS\n //\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n -webkit-appearance: none;\n appearance: none;\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n\n // Apply same disabled cursor tweak as for inputs\n // Some special care is needed because
      +{{if !$edit}} {{* Insert the comments *}}
      {{$comments nofilter}}
      {{$paginate nofilter}} +{{/if}} diff --git a/view/theme/quattro/templates/photo_view.tpl b/view/theme/quattro/templates/photo_view.tpl index a4787270f..1ce336b0a 100644 --- a/view/theme/quattro/templates/photo_view.tpl +++ b/view/theme/quattro/templates/photo_view.tpl @@ -3,11 +3,22 @@
      diff --git a/view/theme/vier/templates/photo_view.tpl b/view/theme/vier/templates/photo_view.tpl index 617bcc5b2..f70ec5b56 100644 --- a/view/theme/vier/templates/photo_view.tpl +++ b/view/theme/vier/templates/photo_view.tpl @@ -4,11 +4,22 @@ {{if $prevlink}}{{/if}} From 9fa21396819fd1ffe70635e417d29c1be5d865f7 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 1 May 2019 20:29:01 -0400 Subject: [PATCH 286/653] Remove unused code mentioning App->error in mod/videos --- mod/videos.php | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/mod/videos.php b/mod/videos.php index 4120c136f..2e4aa6b1f 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -84,33 +84,6 @@ function videos_post(App $a) } if (($a->argc == 2) && !empty($_POST['delete']) && !empty($_POST['id'])) { - // Check if we should do HTML-based delete confirmation - if (empty($_REQUEST['confirm'])) { - if (!empty($_REQUEST['canceled'])) { - $a->internalRedirect('videos/' . $a->data['user']['nickname']); - } - - $drop_url = $a->query_string; - - $a->page['content'] = Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [ - '$method' => 'post', - '$message' => L10n::t('Do you really want to delete this video?'), - '$extra_inputs' => [ - ['name' => 'id' , 'value' => $_POST['id']], - ['name' => 'delete', 'value' => 'x'] - ], - '$confirm' => L10n::t('Delete Video'), - '$confirm_url' => $drop_url, - '$confirm_name' => 'confirm', // Needed so that confirmation will bring us back into this if statement - '$cancel' => L10n::t('Cancel'), - - ]); - - $a->error = 1; // Set $a->error so the other module functions don't execute - - return; - } - $video_id = $_POST['id']; if (Attach::exists(['id' => $video_id, 'uid' => local_user()])) { From 9b91b0550d0220377c1fce3dc3d0875f07552d6a Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 1 May 2019 21:13:33 -0400 Subject: [PATCH 287/653] Rework suggest module without App->error - Add POST treatment for ignore request --- mod/suggest.php | 62 ++++++++++++++++++++++++------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/mod/suggest.php b/mod/suggest.php index bca2694d3..4b67dd6eb 100644 --- a/mod/suggest.php +++ b/mod/suggest.php @@ -19,39 +19,16 @@ function suggest_init(App $a) if (! local_user()) { return; } +} - if (!empty($_GET['ignore'])) { - // Check if we should do HTML-based delete confirmation - if ($_REQUEST['confirm']) { - //
      can't take arguments in its "action" parameter - // so add any arguments as hidden inputs - $query = explode_querystring($a->query_string); - $inputs = []; - foreach ($query['args'] as $arg) { - if (strpos($arg, 'confirm=') === false) { - $arg_parts = explode('=', $arg); - $inputs[] = ['name' => $arg_parts[0], 'value' => $arg_parts[1]]; - } - } - - $a->page['content'] = Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [ - '$method' => 'get', - '$message' => L10n::t('Do you really want to delete this suggestion?'), - '$extra_inputs' => $inputs, - '$confirm' => L10n::t('Yes'), - '$confirm_url' => $query['base'], - '$confirm_name' => 'confirmed', - '$cancel' => L10n::t('Cancel'), - ]); - $a->error = 1; // Set $a->error so the other module functions don't execute - return; - } - // Now check how the user responded to the confirmation query - if (!$_REQUEST['canceled']) { - DBA::insert('gcign', ['uid' => local_user(), 'gcid' => $_GET['ignore']]); - } +function suggest_post(App $a) +{ + if (!empty($_POST['ignore']) && !empty($_POST['confirm'])) { + DBA::insert('gcign', ['uid' => local_user(), 'gcid' => $_POST['ignore']]); + notice(L10n::t('Contact suggestion successfully ignored.')); } + $a->internalRedirect('suggest'); } function suggest_content(App $a) @@ -76,11 +53,34 @@ function suggest_content(App $a) return $o; } + + if (!empty($_GET['ignore'])) { + // can't take arguments in its "action" parameter + // so add any arguments as hidden inputs + $query = explode_querystring($a->query_string); + $inputs = []; + foreach ($query['args'] as $arg) { + if (strpos($arg, 'confirm=') === false) { + $arg_parts = explode('=', $arg); + $inputs[] = ['name' => $arg_parts[0], 'value' => $arg_parts[1]]; + } + } + + return Renderer::replaceMacros(Renderer::getMarkupTemplate('confirm.tpl'), [ + '$method' => 'post', + '$message' => L10n::t('Do you really want to delete this suggestion?'), + '$extra_inputs' => $inputs, + '$confirm' => L10n::t('Yes'), + '$confirm_url' => $query['base'], + '$confirm_name' => 'confirm', + '$cancel' => L10n::t('Cancel'), + ]); + } + $id = 0; $entries = []; foreach ($r as $rr) { - $connlnk = System::baseUrl() . '/follow/?url=' . (($rr['connect']) ? $rr['connect'] : $rr['url']); $ignlnk = System::baseUrl() . '/suggest?ignore=' . $rr['id']; $photo_menu = [ From 7b1ea6cad6f714a669a1d0a8a1fea8c2bb3f3782 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 1 May 2019 21:17:03 -0400 Subject: [PATCH 288/653] Remove App->error --- mod/hcard.php | 1 - mod/notice.php | 1 - mod/viewsrc.php | 1 - src/App.php | 9 +-------- src/Model/Profile.php | 2 -- 5 files changed, 1 insertion(+), 13 deletions(-) diff --git a/mod/hcard.php b/mod/hcard.php index cbaebc8ff..e27ea29be 100644 --- a/mod/hcard.php +++ b/mod/hcard.php @@ -18,7 +18,6 @@ function hcard_init(App $a) $which = $a->argv[1]; } else { notice(L10n::t('No profile') . EOL); - $a->error = 404; return; } diff --git a/mod/notice.php b/mod/notice.php index 1a584000c..edcbefdad 100644 --- a/mod/notice.php +++ b/mod/notice.php @@ -16,7 +16,6 @@ function notice_init(App $a) $nick = $r[0]['nickname']; $a->internalRedirect('display/' . $nick . '/' . $id); } else { - $a->error = 404; notice(L10n::t('Item not found.') . EOL); } diff --git a/mod/viewsrc.php b/mod/viewsrc.php index f05996d2f..939c73a14 100644 --- a/mod/viewsrc.php +++ b/mod/viewsrc.php @@ -18,7 +18,6 @@ function viewsrc_content(App $a) $item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); if (!$item_id) { - $a->error = 404; notice(L10n::t('Item not found.') . EOL); return; } diff --git a/src/App.php b/src/App.php index 9cde12499..328a1a152 100644 --- a/src/App.php +++ b/src/App.php @@ -49,7 +49,6 @@ class App public $page_contact; public $content; public $data = []; - public $error = false; public $cmd = ''; public $argv; public $argc; @@ -1252,9 +1251,7 @@ class App // "rawContent" is especially meant for technical endpoints. // This endpoint doesn't need any theme initialization or other comparable stuff. - if (!$this->error) { call_user_func([$this->module_class, 'rawContent']); - } } // Load current theme info after module has been initialized as theme could have been set in module @@ -1269,24 +1266,20 @@ class App } if ($this->module_class) { - if (! $this->error && $_SERVER['REQUEST_METHOD'] === 'POST') { + if ($_SERVER['REQUEST_METHOD'] === 'POST') { Core\Hook::callAll($this->module . '_mod_post', $_POST); call_user_func([$this->module_class, 'post']); } - if (! $this->error) { Core\Hook::callAll($this->module . '_mod_afterpost', $placeholder); call_user_func([$this->module_class, 'afterpost']); - } - if (! $this->error) { $arr = ['content' => $content]; Core\Hook::callAll($this->module . '_mod_content', $arr); $content = $arr['content']; $arr = ['content' => call_user_func([$this->module_class, 'content'])]; Core\Hook::callAll($this->module . '_mod_aftercontent', $arr); $content .= $arr['content']; - } } // initialise content region diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 79971cd99..3c4ca6fed 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -113,7 +113,6 @@ class Profile if (!DBA::isResult($user) && empty($profiledata)) { Logger::log('profile error: ' . $a->query_string, Logger::DEBUG); notice(L10n::t('Requested account is not available.') . EOL); - $a->error = 404; return; } @@ -131,7 +130,6 @@ class Profile if (empty($pdata) && empty($profiledata)) { Logger::log('profile error: ' . $a->query_string, Logger::DEBUG); notice(L10n::t('Requested profile is not available.') . EOL); - $a->error = 404; return; } From 28f316b7e4ca77a7f40b2462ef6a16cce2a536dc Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 2 May 2019 13:05:31 +0000 Subject: [PATCH 289/653] Replace the legacy DFRN connection process with AP --- config/dbstructure.config.php | 6 +- database.sql | 3 +- mod/follow.php | 14 ++-- src/Model/APContact.php | 10 ++- src/Model/Contact.php | 93 ++++++++++++++++++++------ src/Protocol/ActivityPub/Processor.php | 2 + 6 files changed, 96 insertions(+), 32 deletions(-) diff --git a/config/dbstructure.config.php b/config/dbstructure.config.php index 3996205db..86965a201 100755 --- a/config/dbstructure.config.php +++ b/config/dbstructure.config.php @@ -34,7 +34,7 @@ use Friendica\Database\DBA; if (!defined('DB_UPDATE_VERSION')) { - define('DB_UPDATE_VERSION', 1310); + define('DB_UPDATE_VERSION', 1311); } return [ @@ -74,6 +74,7 @@ return [ "alias" => ["type" => "varchar(255)", "comment" => ""], "pubkey" => ["type" => "text", "comment" => ""], "baseurl" => ["type" => "varchar(255)", "comment" => "baseurl of the ap contact"], + "generator" => ["type" => "varchar(255)", "comment" => "Name of the contact's system"], "updated" => ["type" => "datetime", "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => ""] ], "indexes" => [ @@ -185,7 +186,8 @@ return [ "remote_self" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], "rel" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => "The kind of the relation between the user and the contact"], "duplex" => ["type" => "boolean", "not null" => "1", "default" => "0", "comment" => ""], - "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Network protocol of the contact"], + "network" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Network of the contact"], + "protocol" => ["type" => "char(4)", "not null" => "1", "default" => "", "comment" => "Protocol of the contact"], "name" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Name that this contact is known by"], "nick" => ["type" => "varchar(255)", "not null" => "1", "default" => "", "comment" => "Nick- and user name of the contact"], "location" => ["type" => "varchar(255)", "default" => "", "comment" => ""], diff --git a/database.sql b/database.sql index b9e70097e..62c91262c 100644 --- a/database.sql +++ b/database.sql @@ -1,6 +1,6 @@ -- ------------------------------------------ -- Friendica 2019.06-dev (Dalmatian Bellflower) --- DB_UPDATE_VERSION 1310 +-- DB_UPDATE_VERSION 1311 -- ------------------------------------------ @@ -40,6 +40,7 @@ CREATE TABLE IF NOT EXISTS `apcontact` ( `alias` varchar(255) COMMENT '', `pubkey` text COMMENT '', `baseurl` varchar(255) COMMENT 'baseurl of the ap contact', + `generator` varchar(255) COMMENT 'Name of the contact\'s system', `updated` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' COMMENT '', PRIMARY KEY(`url`), INDEX `addr` (`addr`(32)), diff --git a/mod/follow.php b/mod/follow.php index ba4ff35f1..48e621f4a 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -91,32 +91,34 @@ function follow_content(App $a) $ret = Probe::uri($url); - if (($ret['network'] == Protocol::DIASPORA) && !Config::get('system', 'diaspora_enabled')) { + $protocol = Contact::getProtocol($ret['url'], $ret['network']); + + if (($protocol == Protocol::DIASPORA) && !Config::get('system', 'diaspora_enabled')) { notice(L10n::t("Diaspora support isn't enabled. Contact can't be added.")); $submit = ''; //$a->internalRedirect($_SESSION['return_path']); // NOTREACHED } - if (($ret['network'] == Protocol::OSTATUS) && Config::get('system', 'ostatus_disabled')) { + if (($protocol == Protocol::OSTATUS) && Config::get('system', 'ostatus_disabled')) { notice(L10n::t("OStatus support is disabled. Contact can't be added.")); $submit = ''; //$a->internalRedirect($_SESSION['return_path']); // NOTREACHED } - if ($ret['network'] == Protocol::PHANTOM) { + if ($protocol == Protocol::PHANTOM) { notice(L10n::t("The network type couldn't be detected. Contact can't be added.")); $submit = ''; //$a->internalRedirect($_SESSION['return_path']); // NOTREACHED } - if ($ret['network'] == Protocol::MAIL) { + if ($protocol == Protocol::MAIL) { $ret['url'] = $ret['addr']; } - if (($ret['network'] === Protocol::DFRN) && !DBA::isResult($r)) { + if (($protocol === Protocol::DFRN) && !DBA::isResult($r)) { $request = $ret['request']; $tpl = Renderer::getMarkupTemplate('dfrn_request.tpl'); } else { @@ -147,7 +149,7 @@ function follow_content(App $a) $gcontact_id = $r[0]['id']; } - if ($ret['network'] === Protocol::DIASPORA) { + if ($protocol === Protocol::DIASPORA) { $r[0]['location'] = ''; $r[0]['about'] = ''; } diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 47bbe7d59..cf1f9b723 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -167,10 +167,15 @@ class APContact extends BaseObject $apcontact['manually-approve'] = (int)JsonLD::fetchElement($compacted, 'as:manuallyApprovesFollowers'); + if (!empty($compacted['as:generator'])) { + $apcontact['baseurl'] = JsonLD::fetchElement($compacted['as:generator'], 'as:url', '@id'); + $apcontact['generator'] = JsonLD::fetchElement($compacted['as:generator'], 'as:name', '@value'); + } + // To-Do // Unhandled - // @context, tag, attachment, image, nomadicLocations, signature, following, followers, featured, movedTo, liked + // tag, attachment, image, nomadicLocations, signature, featured, movedTo, liked // Unhandled from Misskey // sharedInbox, isCat @@ -185,6 +190,9 @@ class APContact extends BaseObject $apcontact['baseurl'] = Network::unparseURL($parts); } else { $apcontact['addr'] = null; + } + + if (empty($apcontact['baseurl'])) { $apcontact['baseurl'] = null; } diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 85d1bfe9a..ee1eb20c2 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -653,9 +653,15 @@ class Contact extends BaseObject if (empty($contact['network'])) { return; } - if (($contact['network'] == Protocol::DFRN) && $dissolve) { + + $protocol = $contact['network']; + if (($protocol == Protocol::DFRN) && !self::isLegacyDFRNContact($contact)) { + $protocol = Protocol::ACTIVITYPUB; + } + + if (($protocol == Protocol::DFRN) && $dissolve) { DFRN::deliver($user, $contact, 'placeholder', true); - } elseif (in_array($contact['network'], [Protocol::OSTATUS, Protocol::DFRN])) { + } elseif (in_array($protocol, [Protocol::OSTATUS, Protocol::DFRN])) { // create an unfollow slap $item = []; $item['verb'] = NAMESPACE_OSTATUS . "/unfollow"; @@ -670,9 +676,9 @@ class Contact extends BaseObject if (!empty($contact['notify'])) { Salmon::slapper($user, $contact['notify'], $slap); } - } elseif ($contact['network'] == Protocol::DIASPORA) { + } elseif ($protocol == Protocol::DIASPORA) { Diaspora::sendUnshare($user, $contact); - } elseif ($contact['network'] == Protocol::ACTIVITYPUB) { + } elseif ($protocol == Protocol::ACTIVITYPUB) { ActivityPub\Transmitter::sendContactUndo($contact['url'], $contact['id'], $user['uid']); if ($dissolve) { @@ -1338,6 +1344,7 @@ class Contact extends BaseObject 'location' => defaults($data, 'location', ''), 'about' => defaults($data, 'about', ''), 'network' => $data['network'], + 'protocol' => self::getProtocol($data['url'], $data['network']), 'pubkey' => defaults($data, 'pubkey', ''), 'rel' => self::SHARING, 'priority' => defaults($data, 'priority', 0), @@ -1398,7 +1405,7 @@ class Contact extends BaseObject self::updateAvatar($data['photo'], $uid, $contact_id); } - $fields = ['url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date', 'pubkey']; + $fields = ['url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date', 'pubkey', 'protocol']; $contact = DBA::selectFirst('contact', $fields, ['id' => $contact_id]); // This condition should always be true @@ -1411,7 +1418,8 @@ class Contact extends BaseObject 'url' => $data['url'], 'nurl' => Strings::normaliseLink($data['url']), 'name' => $data['name'], - 'nick' => $data['nick']]; + 'nick' => $data['nick'], + 'protocol' => self::getProtocol($data['url'], $data['network'])]; if (!empty($data['keywords'])) { $updated['keywords'] = $data['keywords']; @@ -1768,6 +1776,40 @@ class Contact extends BaseObject return true; } + /** + * Detects if a given contact array belongs to a legacy DFRN connection + * + * @param array $contact + * @return boolean + */ + private static function isLegacyDFRNContact($contact) + { + // Newer Friendica contacts are connected via AP, then these fields aren't set + return !empty($contact['dfrn-id']) || !empty($contact['issued-id']); + } + + /** + * Detects the communication protocol for a given contact url. + * This is used to detect Friendica contacts that we can communicate via AP. + * + * @param string $url contact url + * @param string $network Network of that contact + * @return string with protocol + */ + public static function getProtocol($url, $network) + { + if ($network != Protocol::DFRN) { + return $network; + } + + $apcontact = APContact::getByURL($url); + if (!empty($apcontact) && !empty($apcontact['generator'])) { + return Protocol::ACTIVITYPUB; + } else { + return $network; + } + } + /** * Takes a $uid and a url/handle and adds a new contact * Currently if the contact is DFRN, interactive needs to be true, to redirect to the @@ -1843,7 +1885,9 @@ class Contact extends BaseObject $contact = DBA::selectFirst('contact', ['id', 'rel'], $condition); } - if (($ret['network'] === Protocol::DFRN) && !DBA::isResult($contact)) { + $protocol = self::getProtocol($url, $ret['network']); + + if (($protocol === Protocol::DFRN) && !DBA::isResult($contact)) { if ($interactive) { if (strlen($a->getURLPath())) { $myaddr = bin2hex(System::baseUrl() . '/profile/' . $a->user['nickname']); @@ -1862,7 +1906,7 @@ class Contact extends BaseObject } // This extra param just confuses things, remove it - if ($ret['network'] === Protocol::DIASPORA) { + if ($protocol === Protocol::DIASPORA) { $ret['url'] = str_replace('?absolute=true', '', $ret['url']); } @@ -1885,7 +1929,7 @@ class Contact extends BaseObject return $result; } - if ($ret['network'] === Protocol::OSTATUS && Config::get('system', 'ostatus_disabled')) { + if ($protocol === Protocol::OSTATUS && Config::get('system', 'ostatus_disabled')) { $result['message'] .= L10n::t('The profile address specified belongs to a network which has been disabled on this site.') . EOL; $ret['notify'] = ''; } @@ -1894,15 +1938,15 @@ class Contact extends BaseObject $result['message'] .= L10n::t('Limited profile. This person will be unable to receive direct/personal notifications from you.') . EOL; } - $writeable = ((($ret['network'] === Protocol::OSTATUS) && ($ret['notify'])) ? 1 : 0); + $writeable = ((($protocol === Protocol::OSTATUS) && ($ret['notify'])) ? 1 : 0); - $subhub = (($ret['network'] === Protocol::OSTATUS) ? true : false); + $subhub = (($protocol === Protocol::OSTATUS) ? true : false); - $hidden = (($ret['network'] === Protocol::MAIL) ? 1 : 0); + $hidden = (($protocol === Protocol::MAIL) ? 1 : 0); - $pending = in_array($ret['network'], [Protocol::ACTIVITYPUB]); + $pending = in_array($protocol, [Protocol::ACTIVITYPUB]); - if (in_array($ret['network'], [Protocol::MAIL, Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { + if (in_array($protocol, [Protocol::MAIL, Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { $writeable = 1; } @@ -1913,7 +1957,7 @@ class Contact extends BaseObject $fields = ['rel' => $new_relation, 'subhub' => $subhub, 'readonly' => false]; DBA::update('contact', $fields, ['id' => $contact['id']]); } else { - $new_relation = (in_array($ret['network'], [Protocol::MAIL]) ? self::FRIEND : self::SHARING); + $new_relation = (in_array($protocol, [Protocol::MAIL]) ? self::FRIEND : self::SHARING); // create contact record DBA::insert('contact', [ @@ -1930,6 +1974,7 @@ class Contact extends BaseObject 'name' => $ret['name'], 'nick' => $ret['nick'], 'network' => $ret['network'], + 'protocol' => $protocol, 'pubkey' => $ret['pubkey'], 'rel' => $new_relation, 'priority'=> $ret['priority'], @@ -1963,7 +2008,7 @@ class Contact extends BaseObject $owner = User::getOwnerDataById($uid); if (DBA::isResult($owner)) { - if (in_array($contact['network'], [Protocol::OSTATUS, Protocol::DFRN])) { + if (in_array($protocol, [Protocol::OSTATUS, Protocol::DFRN])) { // create a follow slap $item = []; $item['verb'] = ACTIVITY_FOLLOW; @@ -1979,10 +2024,10 @@ class Contact extends BaseObject if (!empty($contact['notify'])) { Salmon::slapper($owner, $contact['notify'], $slap); } - } elseif ($contact['network'] == Protocol::DIASPORA) { + } elseif ($protocol == Protocol::DIASPORA) { $ret = Diaspora::sendShare($a->user, $contact); Logger::log('share returns: ' . $ret); - } elseif ($contact['network'] == Protocol::ACTIVITYPUB) { + } elseif ($protocol == Protocol::ACTIVITYPUB) { $activity_id = ActivityPub\Transmitter::activityIDFromContact($contact_id); if (empty($activity_id)) { // This really should never happen @@ -2060,13 +2105,15 @@ class Contact extends BaseObject $network = $pub_contact['network']; if (is_array($contact)) { + $protocol = self::getProtocol($url, $contact['network']); + if (($contact['rel'] == self::SHARING) || ($sharing && $contact['rel'] == self::FOLLOWER)) { DBA::update('contact', ['rel' => self::FRIEND, 'writable' => true], ['id' => $contact['id'], 'uid' => $importer['uid']]); } - if ($contact['network'] == Protocol::ACTIVITYPUB) { + if ($protocol == Protocol::ACTIVITYPUB) { ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $importer['uid']); } @@ -2077,9 +2124,9 @@ class Contact extends BaseObject return; } // create contact record - q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`, + q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `protocol`, `rel`, `blocked`, `readonly`, `pending`, `writable`) - VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, 1)", + VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, 1)", intval($importer['uid']), DBA::escape(DateTimeFormat::utcNow()), DBA::escape($url), @@ -2087,6 +2134,7 @@ class Contact extends BaseObject DBA::escape($name), DBA::escape($nick), DBA::escape($photo), + DBA::escape($protocol), DBA::escape($network), intval(self::FOLLOWER) ); @@ -2140,8 +2188,9 @@ class Contact extends BaseObject DBA::update('contact', ['pending' => false], $condition); $contact = DBA::selectFirst('contact', ['url', 'network', 'hub-verify'], ['id' => $contact_record['id']]); + $protocol = self::getProtocol($contact['url'], $contact['network']); - if ($contact['network'] == Protocol::ACTIVITYPUB) { + if ($protocol == Protocol::ACTIVITYPUB) { ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $importer['uid']); } } diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 475ccfc0b..81790b1b7 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -456,6 +456,7 @@ class Processor self::switchContact($cid); DBA::update('contact', ['hub-verify' => $activity['id']], ['id' => $cid]); $contact = DBA::selectFirst('contact', [], ['id' => $cid, 'network' => Protocol::NATIVE_SUPPORT]); + Logger::info('hub-verify', ['hub-verify' => $contact['hub-verify'], 'url' => $contact['url']]); } else { $contact = false; } @@ -474,6 +475,7 @@ class Processor if (empty($contact)) { DBA::update('contact', ['hub-verify' => $activity['id']], ['id' => $cid]); + Logger::info('hub-verify', ['hub-verify' => $activity['id'], 'cid' => $cid]); } Logger::log('Follow user ' . $uid . ' from contact ' . $cid . ' with id ' . $activity['id']); From 8adf0e6e5c4133b380eecbae8d76bef9fed2a0f4 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 2 May 2019 13:46:12 +0000 Subject: [PATCH 290/653] Removed test logging --- src/Protocol/ActivityPub/Processor.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 81790b1b7..475ccfc0b 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -456,7 +456,6 @@ class Processor self::switchContact($cid); DBA::update('contact', ['hub-verify' => $activity['id']], ['id' => $cid]); $contact = DBA::selectFirst('contact', [], ['id' => $cid, 'network' => Protocol::NATIVE_SUPPORT]); - Logger::info('hub-verify', ['hub-verify' => $contact['hub-verify'], 'url' => $contact['url']]); } else { $contact = false; } @@ -475,7 +474,6 @@ class Processor if (empty($contact)) { DBA::update('contact', ['hub-verify' => $activity['id']], ['id' => $cid]); - Logger::info('hub-verify', ['hub-verify' => $activity['id'], 'cid' => $cid]); } Logger::log('Follow user ' . $uid . ' from contact ' . $cid . ' with id ' . $activity['id']); From dd0b7d26428d6bac9c57bd430385e651455d78e8 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 2 May 2019 09:49:20 -0400 Subject: [PATCH 291/653] Replace straightforward q() calls by DBA::selectFirst or DBA::exists in mod/photos --- mod/photos.php | 102 +++++++++++++++++-------------------------------- 1 file changed, 35 insertions(+), 67 deletions(-) diff --git a/mod/photos.php b/mod/photos.php index caacaf2ce..f6deb3270 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -47,16 +47,14 @@ function photos_init(App $a) { if ($a->argc > 1) { $nick = $a->argv[1]; - $user = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `blocked` = 0 LIMIT 1", - DBA::escape($nick) - ); + $user = DBA::selectFirst('user', [], ['nickname' => $nick, 'blocked' => false]); if (!DBA::isResult($user)) { return; } - $a->data['user'] = $user[0]; - $a->profile_uid = $user[0]['uid']; + $a->data['user'] = $user; + $a->profile_uid = $user['uid']; $is_owner = (local_user() && (local_user() == $a->profile_uid)); $profile = Profile::getByNickname($nick, $a->profile_uid); @@ -170,12 +168,7 @@ function photos_post(App $a) } if ($contact_id > 0) { - $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", - intval($contact_id), - intval($page_owner_uid) - ); - - if (DBA::isResult($r)) { + if (DBA::exists('contact', ['id' => $contact_id, 'uid' => $page_owner_uid, 'blocked' => false, 'pending' => false])) { $can_post = true; $visitor = $contact_id; } @@ -285,22 +278,18 @@ function photos_post(App $a) if (!empty($_POST['delete'])) { // same as above but remove single photo if ($visitor) { - $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `contact-id` = %d AND `uid` = %d AND `resource-id` = '%s' LIMIT 1", - intval($visitor), - intval($page_owner_uid), - DBA::escape($a->argv[3]) - ); + $condition = ['contact-id' => $visitor, 'uid' => $page_owner_uid, 'resource-id' => $a->argv[3]]; + } else { - $r = q("SELECT `id`, `resource-id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' LIMIT 1", - intval(local_user()), - DBA::escape($a->argv[3]) - ); + $condition = ['uid' => local_user(), 'resource-id' => $a->argv[3]]; } - if (DBA::isResult($r)) { - Photo::delete(['uid' => $page_owner_uid, 'resource-id' => $r[0]['resource-id']]); + $photo = DBA::selectFirst('photo', ['resource-id'], $condition); - Item::deleteForUser(['resource-id' => $r[0]['resource-id'], 'uid' => $page_owner_uid], $page_owner_uid); + if (DBA::isResult($photo)) { + Photo::delete(['uid' => $page_owner_uid, 'resource-id' => $photo['resource-id']]); + + Item::deleteForUser(['resource-id' => $photo['resource-id'], 'uid' => $page_owner_uid], $page_owner_uid); // Update the photo albums cache Photo::clearAlbumCache($page_owner_uid); @@ -453,6 +442,7 @@ function photos_post(App $a) foreach ($tags as $tag) { if (strpos($tag, '@') === 0) { $profile = ''; + $contact = null; $name = substr($tag,1); if ((strpos($name, '@')) || (strpos($name, 'http://'))) { @@ -487,34 +477,26 @@ function photos_post(App $a) } if ($tagcid) { - $r = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1", - intval($tagcid), - intval($page_owner_uid) - ); + $contact = DBA::selectFirst('contact', [], ['id' => $tagcid, 'uid' => $page_owner_uid]); } else { $newname = str_replace('_',' ',$name); //select someone from this user's contacts by name - $r = q("SELECT * FROM `contact` WHERE `name` = '%s' AND `uid` = %d LIMIT 1", - DBA::escape($newname), - intval($page_owner_uid) - ); - - if (!DBA::isResult($r)) { + $contact = DBA::selectFirst('contact', [], ['name' => $newname, 'uid' => $page_owner_uid]); + if (!DBA::isResult($contact)) { //select someone by attag or nick and the name passed in - $r = q("SELECT * FROM `contact` WHERE `attag` = '%s' OR `nick` = '%s' AND `uid` = %d ORDER BY `attag` DESC LIMIT 1", - DBA::escape($name), - DBA::escape($name), - intval($page_owner_uid) + $contact = DBA::selectFirst('contact', [], + ['(`attag` = ? OR `nick` = ?) AND `uid` = ?', $name, $name, $page_owner_uid], + ['order' => ['attag' => true]] ); } } - if (DBA::isResult($r)) { - $newname = $r[0]['name']; - $profile = $r[0]['url']; + if (DBA::isResult($contact)) { + $newname = $contact['name']; + $profile = $contact['url']; - $notify = 'cid:' . $r[0]['id']; + $notify = 'cid:' . $contact['id']; if (strlen($inform)) { $inform .= ','; } @@ -523,8 +505,8 @@ function photos_post(App $a) } if ($profile) { - if (substr($notify, 0, 4) === 'cid:') { - $taginfo[] = [$newname, $profile, $notify, $r[0], '@[url=' . str_replace(',','%2c',$profile) . ']' . $newname . '[/url]']; + if (!empty($contact)) { + $taginfo[] = [$newname, $profile, $notify, $contact, '@[url=' . str_replace(',', '%2c', $profile) . ']' . $newname . '[/url]']; } else { $taginfo[] = [$newname, $profile, $notify, null, $str_tags .= '@[url=' . $profile . ']' . $newname . '[/url]']; } @@ -917,15 +899,12 @@ function photos_content(App $a) } } } - if ($contact_id) { - $r = q("SELECT `uid` FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", - intval($contact_id), - intval($owner_uid) - ); - if (DBA::isResult($r)) { + if ($contact_id) { + $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]); + + if (DBA::isResult($contact)) { $can_post = true; - $contact = $r[0]; $remote_contact = true; $visitor = $contact_id; } @@ -946,16 +925,13 @@ function photos_content(App $a) } } } + if ($contact_id) { $groups = Group::getIdsByContactId($contact_id); - $r = q("SELECT * FROM `contact` WHERE `blocked` = 0 AND `pending` = 0 AND `id` = %d AND `uid` = %d LIMIT 1", - intval($contact_id), - intval($owner_uid) - ); - if (DBA::isResult($r)) { - $contact = $r[0]; - $remote_contact = true; - } + + $contact = DBA::selectFirst('contact', [], ['id' => $contact_id, 'uid' => $owner_uid, 'blocked' => false, 'pending' => false]); + + $remote_contact = DBA::isResult($contact); } } @@ -1187,12 +1163,7 @@ function photos_content(App $a) ); if (!DBA::isResult($ph)) { - $ph = q("SELECT `id` FROM `photo` WHERE `uid` = %d AND `resource-id` = '%s' - LIMIT 1", - intval($owner_uid), - DBA::escape($datum) - ); - if (DBA::isResult($ph)) { + if (DBA::exists('photo', ['resource-id' => $datum, 'uid' => $owner_uid])) { notice(L10n::t('Permission denied. Access to this item may be restricted.')); } else { notice(L10n::t('Photo not available') . EOL); @@ -1323,9 +1294,6 @@ function photos_content(App $a) 'filename' => $hires['filename'], ]; - - - // Do we have an item for this photo? // FIXME! - replace following code to display the conversation with our normal From 6387a77b52a3c4b01c3ae0a1542afa9dfe11dd74 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 14 Apr 2019 11:13:18 -0400 Subject: [PATCH 292/653] Move admin summary to src/Module - Add BaseAdminModule class - Add Module\Admin\Summary class - Add Route for Admin\Summary module - Remove admin_page_summary() in mod/admin - Remove $showwarning variable from admin/summary.tpl --- mod/admin.php | 133 ----------------- src/App/Router.php | 4 + src/Module/Admin/Summary.php | 149 ++++++++++++++++++++ src/Module/BaseAdminModule.php | 74 ++++++++++ view/templates/admin/summary.tpl | 2 +- view/theme/frio/templates/admin/summary.tpl | 2 +- 6 files changed, 229 insertions(+), 135 deletions(-) create mode 100644 src/Module/Admin/Summary.php create mode 100644 src/Module/BaseAdminModule.php diff --git a/mod/admin.php b/mod/admin.php index 22bb66265..0c7724573 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -298,8 +298,6 @@ function admin_content(App $a) default: notice(L10n::t("Item not found.")); } - } else { - $o = admin_page_summary($a); } if ($a->isAjax()) { @@ -837,137 +835,6 @@ function admin_page_workerqueue(App $a, $deferred) ]); } -/** - * @brief Admin Summary Page - * - * The summary page is the "start page" of the admin panel. It gives the admin - * a first overview of the open adminastrative tasks. - * - * The returned string contains the HTML content of the generated page. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_summary(App $a) -{ - // are there MyISAM tables in the DB? If so, trigger a warning message - $r = q("SELECT `engine` FROM `information_schema`.`tables` WHERE `engine` = 'myisam' AND `table_schema` = '%s' LIMIT 1", DBA::escape(DBA::databaseName())); - $showwarning = false; - $warningtext = []; - if (DBA::isResult($r)) { - $showwarning = true; - $warningtext[] = L10n::t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
      ', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); - } - // Check if github.com/friendica/master/VERSION is higher then - // the local version of Friendica. Check is opt-in, source may be master or devel branch - if (Config::get('system', 'check_new_version_url', 'none') != 'none') { - $gitversion = Config::get('system', 'git_friendica_version'); - if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) { - $warningtext[] = L10n::t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion); - $showwarning = true; - } - } - - if (Config::get('system', 'dbupdate', DBStructure::UPDATE_NOT_CHECKED) == DBStructure::UPDATE_NOT_CHECKED) { - DBStructure::update($a->getBasePath(), false, true); - } - if (Config::get('system', 'dbupdate') == DBStructure::UPDATE_FAILED) { - $showwarning = true; - $warningtext[] = L10n::t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.'); - } - if (Config::get('system', 'update') == Update::FAILED) { - $showwarning = true; - $warningtext[] = L10n::t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)'); - } - - $last_worker_call = Config::get('system', 'last_worker_execution', false); - if (!$last_worker_call) { - $showwarning = true; - $warningtext[] = L10n::t('The worker was never executed. Please check your database structure!'); - } elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) { - $showwarning = true; - $warningtext[] = L10n::t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call); - } - - // Legacy config file warning - if (file_exists('.htconfig.php')) { - $showwarning = true; - $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); - } - if (file_exists('config/local.ini.php')) { - $showwarning = true; - $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); - } - - // Check server vitality - if (!admin_page_server_vital()) { - $showwarning = true; - $well_known = $a->getBaseURL() . '/.well-known/host-meta'; - $warningtext[] = L10n::t('%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help.', - $well_known, $well_known, $a->getBaseURL() . '/help/Install'); - } - - $r = q("SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`"); - $accounts = [ - [L10n::t('Normal Account'), 0], - [L10n::t('Automatic Follower Account'), 0], - [L10n::t('Public Forum Account'), 0], - [L10n::t('Automatic Friend Account'), 0], - [L10n::t('Blog Account'), 0], - [L10n::t('Private Forum Account'), 0] - ]; - - $users = 0; - foreach ($r as $u) { - $accounts[$u['page-flags']][1] = $u['count']; - $users += $u['count']; - } - - Logger::log('accounts: ' . print_r($accounts, true), Logger::DATA); - - $pending = Register::getPendingCount(); - - $deferred = DBA::count('workerqueue', ["`executed` <= ? AND NOT `done` AND `next_try` > ?", - DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); - - $workerqueue = DBA::count('workerqueue', ["`executed` <= ? AND NOT `done` AND `next_try` < ?", - DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); - - // We can do better, but this is a quick queue status - - $queues = ['label' => L10n::t('Message queues'), 'deferred' => $deferred, 'workerq' => $workerqueue]; - - - $r = q("SHOW variables LIKE 'max_allowed_packet'"); - $max_allowed_packet = (($r) ? $r[0]['Value'] : 0); - - $server_settings = ['label' => L10n::t('Server Settings'), - 'php' => ['upload_max_filesize' => ini_get('upload_max_filesize'), - 'post_max_size' => ini_get('post_max_size'), - 'memory_limit' => ini_get('memory_limit')], - 'mysql' => ['max_allowed_packet' => $max_allowed_packet]]; - - $t = Renderer::getMarkupTemplate('admin/summary.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Summary'), - '$queues' => $queues, - '$users' => [L10n::t('Registered users'), $users], - '$accounts' => $accounts, - '$pending' => [L10n::t('Pending registrations'), $pending], - '$version' => [L10n::t('Version'), FRIENDICA_VERSION], - '$baseurl' => System::baseUrl(), - '$platform' => FRIENDICA_PLATFORM, - '$codename' => FRIENDICA_CODENAME, - '$build' => Config::get('system', 'build'), - '$addons' => [L10n::t('Active addons'), Addon::getEnabledList()], - '$serversettings' => $server_settings, - '$showwarning' => $showwarning, - '$warningtext' => $warningtext - ]); -} - /** * @brief Process send data from Admin Site Page * diff --git a/src/App/Router.php b/src/App/Router.php index cdd40ac9d..85134bf44 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -117,6 +117,10 @@ class Router $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); $this->routeCollector->addRoute(['GET'], '/webfinger', Module\WebFinger::class); $this->routeCollector->addRoute(['GET'], '/xrd', Module\Xrd::class); + + $this->routeCollector->addGroup('/admin', function (RouteCollector $collector) { + $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); + }); } public function __construct(RouteCollector $routeCollector = null) diff --git a/src/Module/Admin/Summary.php b/src/Module/Admin/Summary.php new file mode 100644 index 000000000..49ad59cdf --- /dev/null +++ b/src/Module/Admin/Summary.php @@ -0,0 +1,149 @@ + 'myisam', 'table_schema' => DBA::databaseName()])) { + $warningtext[] = L10n::t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
      ', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); + } + + // Check if github.com/friendica/master/VERSION is higher then + // the local version of Friendica. Check is opt-in, source may be master or devel branch + if (Config::get('system', 'check_new_version_url', 'none') != 'none') { + $gitversion = Config::get('system', 'git_friendica_version'); + if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) { + $warningtext[] = L10n::t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion); + } + } + + if (Config::get('system', 'dbupdate', DBStructure::UPDATE_NOT_CHECKED) == DBStructure::UPDATE_NOT_CHECKED) { + DBStructure::update($a->getBasePath(), false, true); + } + + if (Config::get('system', 'dbupdate') == DBStructure::UPDATE_FAILED) { + $warningtext[] = L10n::t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.'); + } + + if (Config::get('system', 'update') == Update::FAILED) { + $warningtext[] = L10n::t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)'); + } + + $last_worker_call = Config::get('system', 'last_worker_execution', false); + if (!$last_worker_call) { + $warningtext[] = L10n::t('The worker was never executed. Please check your database structure!'); + } elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) { + $warningtext[] = L10n::t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call); + } + + // Legacy config file warning + if (file_exists('.htconfig.php')) { + $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); + } + + if (file_exists('config/local.ini.php')) { + $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); + } + + // Check server vitality + if (!self::checkSelfHostMeta()) { + $well_known = $a->getBaseURL() . '/.well-known/host-meta'; + $warningtext[] = L10n::t('%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help.', + $well_known, $well_known, $a->getBaseURL() . '/help/Install'); + } + + $accounts = [ + [L10n::t('Normal Account'), 0], + [L10n::t('Automatic Follower Account'), 0], + [L10n::t('Public Forum Account'), 0], + [L10n::t('Automatic Friend Account'), 0], + [L10n::t('Blog Account'), 0], + [L10n::t('Private Forum Account'), 0] + ]; + + $users = 0; + $pageFlagsCountStmt = DBA::p('SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`'); + while ($pageFlagsCount = DBA::fetch($pageFlagsCountStmt)) { + $accounts[$pageFlagsCount['page-flags']][1] = $pageFlagsCount['count']; + $users += $pageFlagsCount['count']; + } + DBA::close($pageFlagsCountStmt); + + Logger::log('accounts: ' . print_r($accounts, true), Logger::DATA); + + $pending = Register::getPendingCount(); + + $queue = DBA::count('queue', []); + + $deferred = DBA::count('workerqueue', ['`executed` <= ? AND NOT `done` AND `next_try` > ?', + DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); + + $workerqueue = DBA::count('workerqueue', ['`executed` <= ? AND NOT `done` AND `next_try` < ?', + DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); + + // We can do better, but this is a quick queue status + $queues = ['label' => L10n::t('Message queues'), 'queue' => $queue, 'deferred' => $deferred, 'workerq' => $workerqueue]; + + $variables = DBA::toArray(DBA::p('SHOW variables LIKE "max_allowed_packet"')); + $max_allowed_packet = $variables ? $variables[0]['Value'] : 0; + + $server_settings = [ + 'label' => L10n::t('Server Settings'), + 'php' => [ + 'upload_max_filesize' => ini_get('upload_max_filesize'), + 'post_max_size' => ini_get('post_max_size'), + 'memory_limit' => ini_get('memory_limit') + ], + 'mysql' => [ + 'max_allowed_packet' => $max_allowed_packet + ] + ]; + + $t = Renderer::getMarkupTemplate('admin/summary.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Summary'), + '$queues' => $queues, + '$users' => [L10n::t('Registered users'), $users], + '$accounts' => $accounts, + '$pending' => [L10n::t('Pending registrations'), $pending], + '$version' => [L10n::t('Version'), FRIENDICA_VERSION], + '$baseurl' => System::baseUrl(), + '$platform' => FRIENDICA_PLATFORM, + '$codename' => FRIENDICA_CODENAME, + '$build' => Config::get('system', 'build'), + '$addons' => [L10n::t('Active addons'), Addon::getEnabledList()], + '$serversettings' => $server_settings, + '$warningtext' => $warningtext + ]); + } + + private static function checkSelfHostMeta() + { + // Fetch the host-meta to check if this really is a vital server + return Network::curl(System::baseUrl() . '/.well-known/host-meta')->isSuccess(); + } + +} \ No newline at end of file diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php new file mode 100644 index 000000000..4664c90fc --- /dev/null +++ b/src/Module/BaseAdminModule.php @@ -0,0 +1,74 @@ +page['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/settings_head.tpl'), []); + + /* + * Side bar links + */ + + // array(url, name, extra css classes) + // not part of $aside to make the template more adjustable + $aside_sub = [ + 'information' => [L10n::t('Information'), [ + 'overview' => ['admin' , L10n::t('Overview') , 'overview'], + ]], + ]; + + $addons_admin = []; + $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); + foreach (DBA::toArray($addonsAdminStmt) as $addon) { + $addons_admin[] = ['admin/addons/' . $addon['name'], $addon['name'], 'addon']; + } + + $t = Renderer::getMarkupTemplate('admin/aside.tpl'); + $a->page['aside'] .= Renderer::replaceMacros($t, [ + '$admin' => ['addons_admin' => $addons_admin], + '$subpages' => $aside_sub, + '$admtxt' => L10n::t('Admin'), + '$plugadmtxt' => L10n::t('Addon Features'), + '$h_pending' => L10n::t('User registrations waiting for confirmation'), + '$admurl' => 'admin/' + ]); + + return ''; + } +} diff --git a/view/templates/admin/summary.tpl b/view/templates/admin/summary.tpl index 09419929d..7b655a8ec 100644 --- a/view/templates/admin/summary.tpl +++ b/view/templates/admin/summary.tpl @@ -1,7 +1,7 @@

      {{$title}} - {{$page}}

      -{{if $showwarning}} +{{if $warningtext|count}}
      {{foreach $warningtext as $wt}}

      {{$wt nofilter}}

      diff --git a/view/theme/frio/templates/admin/summary.tpl b/view/theme/frio/templates/admin/summary.tpl index d183e3fa2..9dbd3f7e6 100644 --- a/view/theme/frio/templates/admin/summary.tpl +++ b/view/theme/frio/templates/admin/summary.tpl @@ -2,7 +2,7 @@

      {{$title}} - {{$page}}

      - {{if $showwarning}} + {{if $warningtext|count}}
      {{foreach $warningtext as $wt}}

      {{$wt nofilter}}

      From 35d222f95d482de4daf85afec9728bc023cc597d Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 14 Apr 2019 11:20:44 -0400 Subject: [PATCH 293/653] Move admin/federation to src/Module - Add Module\Admin\Federation class - Add missing abstract keyword in Module\BaseAdminModule - Add route for admin/federation - Remove admin_page_federation() from mod/admin.php --- mod/admin.php | 193 ------------------------------ src/App/Router.php | 1 + src/Module/Admin/Federation.php | 200 ++++++++++++++++++++++++++++++++ src/Module/BaseAdminModule.php | 3 +- 4 files changed, 203 insertions(+), 194 deletions(-) create mode 100644 src/Module/Admin/Federation.php diff --git a/mod/admin.php b/mod/admin.php index 0c7724573..dd441023d 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -280,9 +280,6 @@ function admin_content(App $a) case 'workerqueue': $o = admin_page_workerqueue($a, false); break; - case 'federation': - $o = admin_page_federation($a); - break; case 'contactblock': $o = admin_page_contactblock($a); break; @@ -594,196 +591,6 @@ function admin_page_deleteitem_post(App $a) return; // NOTREACHED } -/** - * @brief Subpage with some stats about "the federation" network - * - * This function generates the "Federation Statistics" subpage for the admin - * panel. The page lists some numbers to the part of "The Federation" known to - * the node. This data includes the different connected networks (e.g. - * Diaspora, Hubzilla, GNU Social) and the used versions in the different - * networks. - * - * The returned string contains the HTML code of the subpage for display. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_federation(App $a) -{ - // get counts on active friendica, diaspora, redmatrix, hubzilla, gnu - // social and statusnet nodes this node is knowing - // - // We are looking for the following platforms in the DB, "Red" should find - // all variants of that platform ID string as the q() function is stripping - // off one % two of them are needed in the query - // Add more platforms if you like, when one returns 0 known nodes it is not - // displayed on the stats page. - $platforms = ['Friendi%%a', 'Diaspora', '%%red%%', 'Hubzilla', 'BlaBlaNet', 'GNU Social', 'StatusNet', 'Mastodon', 'Pleroma', 'socialhome', 'ganggo']; - $colors = [ - 'Friendi%%a' => '#ffc018', // orange from the logo - 'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray - '%%red%%' => '#c50001', // fire red from the logo - 'Hubzilla' => '#43488a', // blue from the logo - 'BlaBlaNet' => '#3B5998', // blue from the navbar at blablanet-dot-com - 'GNU Social' => '#a22430', // dark red from the logo - 'StatusNet' => '#789240', // the green from the logo (red and blue have already others - 'Mastodon' => '#1a9df9', // blue from the Mastodon logo - 'Pleroma' => '#E46F0F', // Orange from the text that is used on Pleroma instances - 'socialhome' => '#52056b' , // lilac from the Django Image used at the Socialhome homepage - 'ganggo' => '#69d7e2' // from the favicon - ]; - $counts = []; - $total = 0; - $users = 0; - - foreach ($platforms as $p) { - // get a total count for the platform, the name and version of the - // highest version and the protocol tpe - $c = q('SELECT COUNT(*) AS `total`, SUM(`registered-users`) AS `users`, ANY_VALUE(`platform`) AS `platform`, - ANY_VALUE(`network`) AS `network`, MAX(`version`) AS `version` FROM `gserver` - WHERE `platform` LIKE "%s" AND `last_contact` >= `last_failure` - ORDER BY `version` ASC;', $p); - $total += $c[0]['total']; - $users += $c[0]['users']; - - // what versions for that platform do we know at all? - // again only the active nodes - $v = q('SELECT COUNT(*) AS `total`, `version` FROM `gserver` - WHERE `last_contact` >= `last_failure` AND `platform` LIKE "%s" - GROUP BY `version` - ORDER BY `version`;', $p); - - // - // clean up version numbers - // - // some platforms do not provide version information, add a unkown there - // to the version string for the displayed list. - foreach ($v as $key => $value) { - if ($v[$key]['version'] == '') { - $v[$key] = ['total' => $v[$key]['total'], 'version' => L10n::t('unknown')]; - } - } - - // Reformat and compact version numbers - if ($p == 'Pleroma') { - $compacted = []; - - foreach ($v as $key => $value) { - $version = $v[$key]['version']; - $parts = explode(' ', trim($version)); - do { - $part = array_pop($parts); - } while (!empty($parts) && ((strlen($part) >= 40) || (strlen($part) <= 3))); - // only take the x.x.x part of the version, not the "release" after the dash - $part = array_shift(explode('-', $part)); - - if (!empty($part)) { - if (empty($compacted[$part])) { - $compacted[$part] = $v[$key]['total']; - } else { - $compacted[$part] += $v[$key]['total']; - } - } - } - - $v = []; - foreach ($compacted as $version => $pl_total) { - $v[] = ['version' => $version, 'total' => $pl_total]; - } - } - - // in the DB the Diaspora versions have the format x.x.x.x-xx the last - // part (-xx) should be removed to clean up the versions from the "head - // commit" information and combined into a single entry for x.x.x.x - if ($p == 'Diaspora') { - $newV = []; - $newVv = []; - foreach ($v as $vv) { - $newVC = $vv['total']; - $newVV = $vv['version']; - $posDash = strpos($newVV, '-'); - if ($posDash) { - $newVV = substr($newVV, 0, $posDash); - } - if (isset($newV[$newVV])) { - $newV[$newVV] += $newVC; - } else { - $newV[$newVV] = $newVC; - } - } - foreach ($newV as $key => $value) { - array_push($newVv, ['total' => $value, 'version' => $key]); - } - $v = $newVv; - } - - // early friendica versions have the format x.x.xxxx where xxxx is the - // DB version stamp; those should be operated out and versions be - // conbined - if ($p == 'Friendi%%a') { - $newV = []; - $newVv = []; - foreach ($v as $vv) { - $newVC = $vv['total']; - $newVV = $vv['version']; - $lastDot = strrpos($newVV, '.'); - $len = strlen($newVV) - 1; - if (($lastDot == $len - 4) && (!strrpos($newVV, '-rc') == $len - 3)) { - $newVV = substr($newVV, 0, $lastDot); - } - if (isset($newV[$newVV])) { - $newV[$newVV] += $newVC; - } else { - $newV[$newVV] = $newVC; - } - } - foreach ($newV as $key => $value) { - array_push($newVv, ['total' => $value, 'version' => $key]); - } - $v = $newVv; - } - - // Assure that the versions are sorted correctly - $v2 = []; - $versions = []; - foreach ($v as $vv) { - $version = trim(strip_tags($vv["version"])); - $v2[$version] = $vv; - $versions[] = $version; - } - - usort($versions, 'version_compare'); - - $v = []; - foreach ($versions as $version) { - $v[] = $v2[$version]; - } - - // the 3rd array item is needed for the JavaScript graphs as JS does - // not like some characters in the names of variables... - $counts[$p] = [$c[0], $v, str_replace([' ', '%'], '', $p), $colors[$p]]; - } - - // some helpful text - $intro = L10n::t('This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of.'); - $hint = L10n::t('The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here.'); - - // load the template, replace the macros and return the page content - $t = Renderer::getMarkupTemplate('admin/federation.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Federation Statistics'), - '$intro' => $intro, - '$hint' => $hint, - '$autoactive' => Config::get('system', 'poco_completion'), - '$counts' => $counts, - '$version' => FRIENDICA_VERSION, - '$legendtext' => L10n::t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users), - '$baseurl' => System::baseUrl(), - ]); -} - /** * @brief Admin Inspect Worker Queue Page * diff --git a/src/App/Router.php b/src/App/Router.php index 85134bf44..4137c4ada 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -120,6 +120,7 @@ class Router $this->routeCollector->addGroup('/admin', function (RouteCollector $collector) { $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); + $collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class); }); } diff --git a/src/Module/Admin/Federation.php b/src/Module/Admin/Federation.php new file mode 100644 index 000000000..3d697a7fd --- /dev/null +++ b/src/Module/Admin/Federation.php @@ -0,0 +1,200 @@ + '#ffc018', // orange from the logo + 'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray + '%%red%%' => '#c50001', // fire red from the logo + 'Hubzilla' => '#43488a', // blue from the logo + 'BlaBlaNet' => '#3B5998', // blue from the navbar at blablanet-dot-com + 'GNU Social' => '#a22430', // dark red from the logo + 'StatusNet' => '#789240', // the green from the logo (red and blue have already others + 'Mastodon' => '#1a9df9', // blue from the Mastodon logo + 'Pleroma' => '#E46F0F', // Orange from the text that is used on Pleroma instances + 'socialhome' => '#52056b', // lilac from the Django Image used at the Socialhome homepage + 'ganggo' => '#69d7e2', // from the favicon + ]; + $counts = []; + $total = 0; + $users = 0; + + foreach ($platforms as $platform) { + // get a total count for the platform, the name and version of the + // highest version and the protocol tpe + $platformCountStmt = DBA::p('SELECT + COUNT(*) AS `total`, + SUM(`registered-users`) AS `users`, + ANY_VALUE(`platform`) AS `platform`, + ANY_VALUE(`network`) AS `network`, + MAX(`version`) AS `version` FROM `gserver` + WHERE `platform` LIKE ? + AND `last_contact` >= `last_failure` + ORDER BY `version` ASC', $platform); + $platformCount = DBA::fetch($platformCountStmt); + $total += $platformCount['total']; + $users += $platformCount['users']; + + DBA::close($platformCountStmt); + + // what versions for that platform do we know at all? + // again only the active nodes + $versionCountsStmt = DBA::p('SELECT + COUNT(*) AS `total`, + `version` FROM `gserver` + WHERE `last_contact` >= `last_failure` + AND `platform` LIKE ? + GROUP BY `version` + ORDER BY `version`;', $platform); + $versionCounts = DBA::toArray($versionCountsStmt); + + // + // clean up version numbers + // + // some platforms do not provide version information, add a unkown there + // to the version string for the displayed list. + foreach ($versionCounts as $key => $value) { + if ($versionCounts[$key]['version'] == '') { + $versionCounts[$key] = ['total' => $versionCounts[$key]['total'], 'version' => L10n::t('unknown')]; + } + } + + // Reformat and compact version numbers + if ($platform == 'Pleroma') { + $compacted = []; + + foreach ($versionCounts as $key => $value) { + $version = $versionCounts[$key]['version']; + $parts = explode(' ', trim($version)); + do { + $part = array_pop($parts); + } while (!empty($parts) && ((strlen($part) >= 40) || (strlen($part) <= 3))); + + if (!empty($part)) { + if (empty($compacted[$part])) { + $compacted[$part] = $versionCounts[$key]['total']; + } else { + $compacted[$part] += $versionCounts[$key]['total']; + } + } + } + + $versionCounts = []; + foreach ($compacted as $version => $pl_total) { + $versionCounts[] = ['version' => $version, 'total' => $pl_total]; + } + } + + // in the DB the Diaspora versions have the format x.x.x.x-xx the last + // part (-xx) should be removed to clean up the versions from the "head + // commit" information and combined into a single entry for x.x.x.x + if ($platform == 'Diaspora') { + $newV = []; + $newVv = []; + foreach ($versionCounts as $vv) { + $newVC = $vv['total']; + $newVV = $vv['version']; + $posDash = strpos($newVV, '-'); + if ($posDash) { + $newVV = substr($newVV, 0, $posDash); + } + if (isset($newV[$newVV])) { + $newV[$newVV] += $newVC; + } else { + $newV[$newVV] = $newVC; + } + } + foreach ($newV as $key => $value) { + array_push($newVv, ['total' => $value, 'version' => $key]); + } + $versionCounts = $newVv; + } + + // early friendica versions have the format x.x.xxxx where xxxx is the + // DB version stamp; those should be operated out and versions be + // conbined + if ($platform == 'Friendi%%a') { + $newV = []; + $newVv = []; + foreach ($versionCounts as $vv) { + $newVC = $vv['total']; + $newVV = $vv['version']; + $lastDot = strrpos($newVV, '.'); + $len = strlen($newVV) - 1; + if (($lastDot == $len - 4) && (!strrpos($newVV, '-rc') == $len - 3)) { + $newVV = substr($newVV, 0, $lastDot); + } + if (isset($newV[$newVV])) { + $newV[$newVV] += $newVC; + } else { + $newV[$newVV] = $newVC; + } + } + foreach ($newV as $key => $value) { + array_push($newVv, ['total' => $value, 'version' => $key]); + } + $versionCounts = $newVv; + } + + // Assure that the versions are sorted correctly + $v2 = []; + $versions = []; + foreach ($versionCounts as $vv) { + $version = trim(strip_tags($vv["version"])); + $v2[$version] = $vv; + $versions[] = $version; + } + + usort($versions, 'version_compare'); + + $versionCounts = []; + foreach ($versions as $version) { + $versionCounts[] = $v2[$version]; + } + + // the 3rd array item is needed for the JavaScript graphs as JS does + // not like some characters in the names of variables... + $counts[$platform] = [$platformCount, $versionCounts, str_replace([' ', '%'], '', $platform), $colors[$platform]]; + } + + // some helpful text + $intro = L10n::t('This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of.'); + $hint = L10n::t('The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here.'); + + // load the template, replace the macros and return the page content + $t = Renderer::getMarkupTemplate('admin/federation.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Federation Statistics'), + '$intro' => $intro, + '$hint' => $hint, + '$autoactive' => Config::get('system', 'poco_completion'), + '$counts' => $counts, + '$version' => FRIENDICA_VERSION, + '$legendtext' => L10n::t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users), + '$baseurl' => System::baseUrl(), + ]); + } +} diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 4664c90fc..2df7a6b82 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -7,7 +7,7 @@ use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Database\DBA; -class BaseAdminModule extends BaseModule +abstract class BaseAdminModule extends BaseModule { public static function post() { @@ -50,6 +50,7 @@ class BaseAdminModule extends BaseModule $aside_sub = [ 'information' => [L10n::t('Information'), [ 'overview' => ['admin' , L10n::t('Overview') , 'overview'], + 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], ]; From 488e425416f4c946a0f4c7de95e8e77d6ee107cf Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 14 Apr 2019 11:25:27 -0400 Subject: [PATCH 294/653] Move admin/tos to src/Module - Add Module\Admin\Tos class - Add route for admin/tos - Add admin aside menu entry - Remove admin_page_tos and admin_page_tos_post from mod/admin.php --- mod/admin.php | 57 ---------------------------------- src/App/Router.php | 2 ++ src/Module/Admin/Tos.php | 53 +++++++++++++++++++++++++++++++ src/Module/BaseAdminModule.php | 3 ++ 4 files changed, 58 insertions(+), 57 deletions(-) create mode 100644 src/Module/Admin/Tos.php diff --git a/mod/admin.php b/mod/admin.php index dd441023d..af4c874c2 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -126,9 +126,6 @@ function admin_post(App $a) } $return_path = 'admin/themes/' . $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : ''); break; - case 'tos': - admin_page_tos_post($a); - break; case 'features': admin_page_features_post($a); break; @@ -289,9 +286,6 @@ function admin_content(App $a) case 'deleteitem': $o = admin_page_deleteitem($a); break; - case 'tos': - $o = admin_page_tos($a); - break; default: notice(L10n::t("Item not found.")); } @@ -305,57 +299,6 @@ function admin_content(App $a) } } -/** - * @brief Subpage to define the display of a Terms of Usage page. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_tos(App $a) -{ - $tos = new Tos(); - $t = Renderer::getMarkupTemplate('admin/tos.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Terms of Service'), - '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')], - '$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], - '$preview' => L10n::t('Privacy Statement Preview'), - '$privtext' => $tos->privacy_complete, - '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], - '$form_security_token' => BaseModule::getFormSecurityToken("admin_tos"), - '$submit' => L10n::t('Save Settings'), - ]); -} - -/** - * @brief Process send data from Admin TOS Page - * - * @param App $a - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_tos_post(App $a) -{ - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/tos', 'admin_tos'); - - if (empty($_POST['page_tos'])) { - return; - } - - $displaytos = !empty($_POST['displaytos']); - $displayprivstatement = !empty($_POST['displayprivstatement']); - $tostext = (!empty($_POST['tostext']) ? strip_tags(trim($_POST['tostext'])) : ''); - - Config::set('system', 'tosdisplay', $displaytos); - Config::set('system', 'tosprivstatement', $displayprivstatement); - Config::set('system', 'tostext', $tostext); - - $a->internalRedirect('admin/tos'); - - return; // NOTREACHED -} - /** * @brief Subpage to modify the server wide block list via the admin panel. * diff --git a/src/App/Router.php b/src/App/Router.php index 4137c4ada..ca362f484 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -121,6 +121,8 @@ class Router $this->routeCollector->addGroup('/admin', function (RouteCollector $collector) { $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); $collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class); + + $collector->addRoute(['GET', 'POST'], '/tos' , Module\Admin\Tos::class); }); } diff --git a/src/Module/Admin/Tos.php b/src/Module/Admin/Tos.php new file mode 100644 index 000000000..efab22f8e --- /dev/null +++ b/src/Module/Admin/Tos.php @@ -0,0 +1,53 @@ +internalRedirect('admin/tos'); + } + + public static function content() + { + parent::content(); + + $tos = new \Friendica\Module\Tos(); + $t = Renderer::getMarkupTemplate('admin/tos.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Terms of Service'), + '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')], + '$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], + '$preview' => L10n::t('Privacy Statement Preview'), + '$privtext' => $tos->privacy_complete, + '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], + '$form_security_token' => parent::getFormSecurityToken('admin_tos'), + '$submit' => L10n::t('Save Settings'), + ]); + } +} \ No newline at end of file diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 2df7a6b82..90f781037 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -52,6 +52,9 @@ abstract class BaseAdminModule extends BaseModule 'overview' => ['admin' , L10n::t('Overview') , 'overview'], 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], + 'configuration' => [L10n::t('Configuration'), [ + 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], + ]], ]; $addons_admin = []; From 9227aab83749fcb69525a914369a6819294fb53f Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Mon, 15 Apr 2019 01:04:02 -0400 Subject: [PATCH 295/653] Add system.allowed_themes config key handling in Core\Theme - Add Theme::setAllowedList method - Update the allowed theme list on theme install/uninstall - Add theme file inclusion on uninstall allowing for theme_uninstall function to be called - Removing logging from frontend methods --- src/Core/Theme.php | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/Core/Theme.php b/src/Core/Theme.php index c972e09fc..ae389515c 100644 --- a/src/Core/Theme.php +++ b/src/Core/Theme.php @@ -34,6 +34,11 @@ class Theme return $allowed_themes; } + public static function setAllowedList(array $allowed_themes) + { + Config::set('system', 'allowed_themes', implode(',', $allowed_themes)); + } + /** * @brief Parse theme comment in search of theme infos. * @@ -133,13 +138,20 @@ class Theme // silently fail if theme was removed or if $theme is funky if (file_exists("view/theme/$theme/theme.php")) { - Logger::log("Addons: uninstalling theme " . $theme); + include_once "view/theme/$theme/theme.php"; - if (function_exists("{$theme}_uninstall")) { - $func = "{$theme}_uninstall"; + $func = "{$theme}_uninstall"; + if (function_exists($func)) { $func(); } } + + $allowed_themes = Theme::getAllowedList(); + $key = array_search($theme, $allowed_themes); + if ($key !== false) { + unset($allowed_themes[$key]); + Theme::setAllowedList($allowed_themes); + } } public static function install($theme) @@ -151,16 +163,20 @@ class Theme return false; } - Logger::log("Addons: installing theme $theme"); + try { + include_once "view/theme/$theme/theme.php"; - include_once "view/theme/$theme/theme.php"; - - if (function_exists("{$theme}_install")) { $func = "{$theme}_install"; - $func(); + if (function_exists($func)) { + $func(); + } + + $allowed_themes = Theme::getAllowedList(); + $allowed_themes[] = $theme; + Theme::setAllowedList($allowed_themes); + return true; - } else { - Logger::log("Addons: FAILED installing theme $theme"); + } catch (\Exception $e) { return false; } } From a13bc149338b3d2b1b34cf053f28b5d7e34742c4 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Mon, 15 Apr 2019 01:11:46 -0400 Subject: [PATCH 296/653] Move admin/themes to src/Module - Add Module\Admin\Themes\Index class - Add route for admin/themes - Add themes admin aside menu entry - Add admin/addons/index.tpl template - Remove theme list from mod/admin --- mod/admin.php | 38 --------- src/App/Router.php | 2 + src/Module/Admin/Themes/Index.php | 109 ++++++++++++++++++++++++++ src/Module/BaseAdminModule.php | 1 + view/templates/admin/addons/index.tpl | 24 ++++++ 5 files changed, 136 insertions(+), 38 deletions(-) create mode 100644 src/Module/Admin/Themes/Index.php create mode 100644 view/templates/admin/addons/index.tpl diff --git a/mod/admin.php b/mod/admin.php index af4c874c2..a717943d6 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -2017,44 +2017,6 @@ function admin_page_themes(App $a) '$form_security_token' => BaseModule::getFormSecurityToken("admin_themes"), ]); } - - // reload active themes - if (!empty($_GET['a']) && $_GET['a'] == "r") { - BaseModule::checkFormSecurityTokenRedirectOnError(System::baseUrl() . '/admin/themes', 'admin_themes', 't'); - foreach ($themes as $th) { - if ($th['allowed']) { - Theme::uninstall($th['name']); - Theme::install($th['name']); - } - } - info("Themes reloaded"); - $a->internalRedirect('admin/themes'); - } - - /* - * List themes - */ - - $addons = []; - foreach ($themes as $th) { - $addons[] = [$th['name'], (($th['allowed']) ? "on" : "off"), Theme::getInfo($th['name'])]; - } - - $t = Renderer::getMarkupTemplate('admin/addons.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Themes'), - '$submit' => L10n::t('Save Settings'), - '$reload' => L10n::t('Reload active themes'), - '$baseurl' => System::baseUrl(true), - '$function' => 'themes', - '$addons' => $addons, - '$pcount' => count($themes), - '$noplugshint' => L10n::t('No themes found on the system. They should be placed in %1$s', '/view/themes'), - '$experimental' => L10n::t('[Experimental]'), - '$unsupported' => L10n::t('[Unsupported]'), - '$form_security_token' => BaseModule::getFormSecurityToken("admin_themes"), - ]); } /** diff --git a/src/App/Router.php b/src/App/Router.php index ca362f484..e1accefd9 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -122,6 +122,8 @@ class Router $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); $collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class); + $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); + $collector->addRoute(['GET', 'POST'], '/tos' , Module\Admin\Tos::class); }); } diff --git a/src/Module/Admin/Themes/Index.php b/src/Module/Admin/Themes/Index.php new file mode 100644 index 000000000..2b89c4e20 --- /dev/null +++ b/src/Module/Admin/Themes/Index.php @@ -0,0 +1,109 @@ +internalRedirect('admin/themes'); + } + + $themes = []; + $files = glob('view/theme/*'); + if (is_array($files)) { + foreach ($files as $file) { + $theme = basename($file); + + // Is there a style file? + $theme_files = glob('view/theme/' . $theme . '/style.*'); + + // If not then quit + if (count($theme_files) == 0) { + continue; + } + + $is_experimental = intval(file_exists($file . '/experimental')); + $is_supported = 1 - (intval(file_exists($file . '/unsupported'))); + $is_allowed = intval(in_array($theme, $allowed_themes)); + + if ($is_allowed || $is_supported || Config::get('system', 'show_unsupported_themes')) { + $themes[] = ['name' => $theme, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed]; + } + } + } + + $addons = []; + foreach ($themes as $theme) { + $addons[] = [$theme['name'], (($theme['allowed']) ? 'on' : 'off'), Theme::getInfo($theme['name'])]; + } + + $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Themes'), + '$submit' => L10n::t('Save Settings'), + '$reload' => L10n::t('Reload active themes'), + '$baseurl' => System::baseUrl(true), + '$function' => 'themes', + '$addons' => $addons, + '$pcount' => count($themes), + '$noplugshint' => L10n::t('No themes found on the system. They should be placed in %1$s', '/view/themes'), + '$experimental' => L10n::t('[Experimental]'), + '$unsupported' => L10n::t('[Unsupported]'), + '$form_security_token' => parent::getFormSecurityToken('admin_themes'), + ]); + } +} \ No newline at end of file diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 90f781037..330b9dd74 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -53,6 +53,7 @@ abstract class BaseAdminModule extends BaseModule 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], 'configuration' => [L10n::t('Configuration'), [ + 'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'], 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], ]], ]; diff --git a/view/templates/admin/addons/index.tpl b/view/templates/admin/addons/index.tpl new file mode 100644 index 000000000..4a2b057bf --- /dev/null +++ b/view/templates/admin/addons/index.tpl @@ -0,0 +1,24 @@ + +
      +

      {{$title}} - {{$page}}

      +{{if $pcount eq 0}} +
      + {{$noplugshint}} +
      +{{else}} + {{$reload}} +
        + {{foreach $addons as $p}} +
      • + + + + + {{$p.2.name}} - {{$p.2.version}} + {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}} +
        {{$p.2.description nofilter}}
        +
      • + {{/foreach}} +
      +{{/if}} +
      From 9bbb4385345640b39d51086b9d8e0471ff682591 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 21 Apr 2019 12:20:04 -0400 Subject: [PATCH 297/653] Move admin/addons to src/Module - Add Module\Admin\Addons\Index class - Add route for admin/addons - Add addons admin aside menu entry - Remove unused template admin/addons.tpl from base and frio - Remove addon list from mod/admin --- mod/admin.php | 50 --------------- src/App/Router.php | 2 + src/Core/Addon.php | 32 +++++++++- src/Module/Admin/Addons/Index.php | 72 ++++++++++++++++++++++ src/Module/BaseAdminModule.php | 1 + view/templates/admin/addons.tpl | 22 ------- view/theme/frio/templates/admin/addons.tpl | 22 ------- 7 files changed, 104 insertions(+), 97 deletions(-) create mode 100644 src/Module/Admin/Addons/Index.php delete mode 100644 view/templates/admin/addons.tpl delete mode 100644 view/theme/frio/templates/admin/addons.tpl diff --git a/mod/admin.php b/mod/admin.php index a717943d6..b3933a16b 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -1762,56 +1762,6 @@ function admin_page_addons(App $a, array $addons_admin) '$form_security_token' => BaseModule::getFormSecurityToken("admin_themes"), ]); } - - /* - * List addons - */ - if (!empty($_GET['a']) && $_GET['a'] == "r") { - BaseModule::checkFormSecurityTokenRedirectOnError($a->getBaseURL() . '/admin/addons', 'admin_themes', 't'); - Addon::reload(); - info("Addons reloaded"); - $a->internalRedirect('admin/addons'); - } - - $addons = []; - $files = glob("addon/*/"); - if (is_array($files)) { - foreach ($files as $file) { - if (is_dir($file)) { - list($tmp, $id) = array_map("trim", explode("/", $file)); - $info = Addon::getInfo($id); - $show_addon = true; - - // If the addon is unsupported, then only show it, when it is enabled - if ((strtolower($info["status"]) == "unsupported") && !Addon::isEnabled($id)) { - $show_addon = false; - } - - // Override the above szenario, when the admin really wants to see outdated stuff - if (Config::get("system", "show_unsupported_addons")) { - $show_addon = true; - } - - if ($show_addon) { - $addons[] = [$id, (Addon::isEnabled($id) ? "on" : "off"), $info]; - } - } - } - } - - $t = Renderer::getMarkupTemplate('admin/addons.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Addons'), - '$submit' => L10n::t('Save Settings'), - '$reload' => L10n::t('Reload active addons'), - '$baseurl' => System::baseUrl(true), - '$function' => 'addons', - '$addons' => $addons, - '$pcount' => count($addons), - '$noplugshint' => L10n::t('There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s', 'https://github.com/friendica/friendica-addons', 'http://addons.friendi.ca'), - '$form_security_token' => BaseModule::getFormSecurityToken("admin_themes"), - ]); } /** diff --git a/src/App/Router.php b/src/App/Router.php index e1accefd9..eacf95db3 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -120,6 +120,8 @@ class Router $this->routeCollector->addGroup('/admin', function (RouteCollector $collector) { $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); + + $collector->addRoute(['GET', 'POST'], '/addons' , Module\Admin\Addons\Index::class); $collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class); $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); diff --git a/src/Core/Addon.php b/src/Core/Addon.php index 06a731b2c..2c28c24ee 100644 --- a/src/Core/Addon.php +++ b/src/Core/Addon.php @@ -26,6 +26,29 @@ class Addon extends BaseObject */ private static $addons = []; + public static function getAvailableList() + { + $addons = []; + $files = glob('addon/*/'); + if (is_array($files)) { + foreach ($files as $file) { + if (is_dir($file)) { + list($tmp, $addon) = array_map('trim', explode('/', $file)); + $info = self::getInfo($addon); + + if (Config::get('system', 'show_unsupported_addons') + || strtolower($info['status']) != 'unsupported' + || self::isEnabled($addon) + ) { + $addons[] = [$addon, (self::isEnabled($addon) ? 'on' : 'off'), $info]; + } + } + } + } + + return $addons; + } + /** * @brief Synchronize addons: * @@ -94,6 +117,8 @@ class Addon extends BaseObject } unset(self::$addons[array_search($addon, self::$addons)]); + + Addon::saveEnabledList(); } /** @@ -136,9 +161,11 @@ class Addon extends BaseObject self::$addons[] = $addon; } + Addon::saveEnabledList(); + return true; } else { - Logger::error("Addon {addon}: {action} failed", ['action' => 'uninstall', 'addon' => $addon]); + Logger::error("Addon {addon}: {action} failed", ['action' => 'install', 'addon' => $addon]); return false; } } @@ -283,11 +310,10 @@ class Addon extends BaseObject * Saves the current enabled addon list in the system.addon config key * * @return boolean - * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function saveEnabledList() { - return Config::set("system", "addon", implode(", ", self::$addons)); + return Config::set('system', 'addon', implode(', ', self::$addons)); } /** diff --git a/src/Module/Admin/Addons/Index.php b/src/Module/Admin/Addons/Index.php new file mode 100644 index 000000000..20d8ff196 --- /dev/null +++ b/src/Module/Admin/Addons/Index.php @@ -0,0 +1,72 @@ +internalRedirect('admin/addons'); + } + + $addons_admin = []; + $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); + foreach (DBA::toArray($addonsAdminStmt) as $addon) { + $addons_admin[] = $addon['name']; + } + + $addons = Addon::getAvailableList(); + + $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Addons'), + '$submit' => L10n::t('Save Settings'), + '$reload' => L10n::t('Reload active addons'), + '$baseurl' => System::baseUrl(true), + '$function' => 'addons', + '$addons' => $addons, + '$pcount' => count($addons), + '$noplugshint' => L10n::t('There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s', 'https://github.com/friendica/friendica-addons', 'http://addons.friendi.ca'), + '$form_security_token' => parent::getFormSecurityToken('admin_addons'), + ]); + } +} \ No newline at end of file diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 330b9dd74..44ef39113 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -53,6 +53,7 @@ abstract class BaseAdminModule extends BaseModule 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], 'configuration' => [L10n::t('Configuration'), [ + 'addons' => ['admin/addons' , L10n::t('Addons') , 'addons'], 'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'], 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], ]], diff --git a/view/templates/admin/addons.tpl b/view/templates/admin/addons.tpl deleted file mode 100644 index c144a5eec..000000000 --- a/view/templates/admin/addons.tpl +++ /dev/null @@ -1,22 +0,0 @@ - -
      -

      {{$title}} - {{$page}}

      - {{if $pcount eq 0}} -
      - {{$noplugshint}} -
      - {{else}} - {{$reload}} -
        - {{foreach $addons as $p}} -
      • - - {{$p.2.name}} - {{$p.2.version}} - {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}} - -
        {{$p.2.description nofilter}}
        -
      • - {{/foreach}} -
      - {{/if}} -
      diff --git a/view/theme/frio/templates/admin/addons.tpl b/view/theme/frio/templates/admin/addons.tpl deleted file mode 100644 index fa598f467..000000000 --- a/view/theme/frio/templates/admin/addons.tpl +++ /dev/null @@ -1,22 +0,0 @@ - -
      -

      {{$title}} - {{$page}}

      - {{if $pcount eq 0}} -
      - {{$noplugshint}} -
      - {{else}} - {{$reload}} -
        - {{foreach $addons as $p}} -
      • - - - {{$p.2.name}} - {{$p.2.version}} - {{if $p.2.experimental}} {{$experimental}} {{/if}}{{if $p.2.unsupported}} {{$unsupported}} {{/if}} -
        {{$p.2.description nofilter}}
        -
      • - {{/foreach}} -
      - {{/if}} -
      From 87e51ddd6715a27ca74d68ed96f95c6952e5ed22 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 21 Apr 2019 15:47:25 -0400 Subject: [PATCH 298/653] Move admin/addons/{addon} to src/Module - Add Module\Admin\Addons\Details class - Add route for admin/addons/{addon} - Remove addons pages from mod/admin --- mod/admin.php | 121 ---------------------- src/App/Router.php | 2 + src/Module/Admin/Addons/Details.php | 129 ++++++++++++++++++++++++ view/templates/admin/addons/details.tpl | 37 +++++++ 4 files changed, 168 insertions(+), 121 deletions(-) create mode 100644 src/Module/Admin/Addons/Details.php create mode 100644 view/templates/admin/addons/details.tpl diff --git a/mod/admin.php b/mod/admin.php index b3933a16b..22fd5adf3 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -10,7 +10,6 @@ use Friendica\BaseModule; use Friendica\Content\Feature; use Friendica\Content\Pager; use Friendica\Content\Text\Markdown; -use Friendica\Core\Addon; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Logger; @@ -91,17 +90,6 @@ function admin_post(App $a) case 'users': admin_page_users_post($a); break; - case 'addons': - if ($a->argc > 2 && - is_file("addon/" . $a->argv[2] . "/" . $a->argv[2] . ".php")) { - include_once "addon/" . $a->argv[2] . "/" . $a->argv[2] . ".php"; - if (function_exists($a->argv[2] . '_addon_admin_post')) { - $func = $a->argv[2] . '_addon_admin_post'; - $func($a); - } - } - $return_path = 'admin/addons/' . $a->argv[2]; - break; case 'themes': if ($a->argc < 2) { if ($a->isAjax()) { @@ -220,17 +208,7 @@ function admin_content(App $a) ]] ]; - /* get addons admin page */ - - $r = q("SELECT `name` FROM `addon` WHERE `plugin_admin` = 1 ORDER BY `name`"); $aside_tools['addons_admin'] = []; - $addons_admin = []; - foreach ($r as $h) { - $addon = $h['name']; - $aside_tools['addons_admin'][] = ["admin/addons/" . $addon, $addon, "addon"]; - // temp addons with admin - $addons_admin[] = $addon; - } $t = Renderer::getMarkupTemplate('admin/aside.tpl'); $a->page['aside'] .= Renderer::replaceMacros($t, [ @@ -253,9 +231,6 @@ function admin_content(App $a) case 'users': $o = admin_page_users($a); break; - case 'addons': - $o = admin_page_addons($a, $addons_admin); - break; case 'themes': $o = admin_page_themes($a); break; @@ -1668,102 +1643,6 @@ function admin_page_users(App $a) return $o; } -/** - * @brief Addons admin page - * - * This function generates the admin panel page for managing addons on the - * friendica node. If an addon name is given a single page showing the details - * for this addon is generated. If no name is given, a list of available - * addons is shown. - * - * The template used for displaying the list of addons and the details of the - * addon are the same as used for the templates. - * - * The returned string returned hulds the HTML code of the page. - * - * @param App $a - * @param array $addons_admin A list of admin addon names - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_addons(App $a, array $addons_admin) -{ - /* - * Single addon - */ - if ($a->argc == 3) { - $addon = $a->argv[2]; - if (!is_file("addon/$addon/$addon.php")) { - notice(L10n::t("Item not found.")); - return ''; - } - - if (defaults($_GET, 'a', '') == "t") { - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't'); - - // Toggle addon status - if (Addon::isEnabled($addon)) { - Addon::uninstall($addon); - info(L10n::t("Addon %s disabled.", $addon)); - } else { - Addon::install($addon); - info(L10n::t("Addon %s enabled.", $addon)); - } - - Addon::saveEnabledList(); - $a->internalRedirect('admin/addons'); - return ''; // NOTREACHED - } - - // display addon details - if (Addon::isEnabled($addon)) { - $status = "on"; - $action = L10n::t("Disable"); - } else { - $status = "off"; - $action = L10n::t("Enable"); - } - - $readme = null; - if (is_file("addon/$addon/README.md")) { - $readme = Markdown::convert(file_get_contents("addon/$addon/README.md"), false); - } elseif (is_file("addon/$addon/README")) { - $readme = "
      " . file_get_contents("addon/$addon/README") . "
      "; - } - - $admin_form = ""; - if (in_array($addon, $addons_admin)) { - require_once "addon/$addon/$addon.php"; - $func = $addon . '_addon_admin'; - $func($a, $admin_form); - } - - $t = Renderer::getMarkupTemplate('admin/addon_details.tpl'); - - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Addons'), - '$toggle' => L10n::t('Toggle'), - '$settings' => L10n::t('Settings'), - '$baseurl' => $a->getBaseURL(true), - - '$addon' => $addon, - '$status' => $status, - '$action' => $action, - '$info' => Addon::getInfo($addon), - '$str_author' => L10n::t('Author: '), - '$str_maintainer' => L10n::t('Maintainer: '), - - '$admin_form' => $admin_form, - '$function' => 'addons', - '$screenshot' => '', - '$readme' => $readme, - - '$form_security_token' => BaseModule::getFormSecurityToken("admin_themes"), - ]); - } -} - /** * @param array $themes * @param string $th diff --git a/src/App/Router.php b/src/App/Router.php index eacf95db3..6c152eb8a 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -122,6 +122,8 @@ class Router $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); $collector->addRoute(['GET', 'POST'], '/addons' , Module\Admin\Addons\Index::class); + $collector->addRoute(['GET', 'POST'], '/addons/{addon}' , Module\Admin\Addons\Details::class); + $collector->addRoute(['GET'] , '/federation' , Module\Admin\Federation::class); $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); diff --git a/src/Module/Admin/Addons/Details.php b/src/Module/Admin/Addons/Details.php new file mode 100644 index 000000000..9ef2035de --- /dev/null +++ b/src/Module/Admin/Addons/Details.php @@ -0,0 +1,129 @@ +argc > 2) { + // @TODO: Replace with parameter from router + $addon = $a->argv[2]; + $addon = Strings::sanitizeFilePathItem($addon); + if (is_file('addon/' . $addon . '/' . $addon . '.php')) { + include_once 'addon/' . $addon . '/' . $addon . '.php'; + if (function_exists($addon . '_addon_admin_post')) { + $func = $addon . '_addon_admin_post'; + $func($a); + } + + $a->internalRedirect('admin/addons/' . $addon); + } + } + + $a->internalRedirect('admin/addons'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + $addons_admin = []; + $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); + foreach (DBA::toArray($addonsAdminStmt) as $addon) { + $addonName = $addon['name']; + // temp addons with admin + $addons_admin[] = $addonName; + } + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $addon = $a->argv[2]; + $addon = Strings::sanitizeFilePathItem($addon); + if (!is_file("addon/$addon/$addon.php")) { + notice(L10n::t('Item not found.')); + $a->internalRedirect('admin/addons'); + } + + if (defaults($_GET, 'action', '') == 'toggle') { + parent::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't'); + + // Toggle addon status + if (Addon::isEnabled($addon)) { + Addon::uninstall($addon); + info(L10n::t('Addon %s disabled.', $addon)); + } else { + Addon::install($addon); + info(L10n::t('Addon %s enabled.', $addon)); + } + + Addon::saveEnabledList(); + + $a->internalRedirect('admin/addons/' . $addon); + } + + // display addon details + if (Addon::isEnabled($addon)) { + $status = 'on'; + $action = L10n::t('Disable'); + } else { + $status = 'off'; + $action = L10n::t('Enable'); + } + + $readme = null; + if (is_file("addon/$addon/README.md")) { + $readme = Markdown::convert(file_get_contents("addon/$addon/README.md"), false); + } elseif (is_file("addon/$addon/README")) { + $readme = '
      ' . file_get_contents("addon/$addon/README") . '
      '; + } + + $admin_form = ''; + if (in_array($addon, $addons_admin)) { + require_once "addon/$addon/$addon.php"; + $func = $addon . '_addon_admin'; + $func($a, $admin_form); + } + + $t = Renderer::getMarkupTemplate('admin/addons/details.tpl'); + + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Addons'), + '$toggle' => L10n::t('Toggle'), + '$settings' => L10n::t('Settings'), + '$baseurl' => $a->getBaseURL(true), + + '$addon' => $addon, + '$status' => $status, + '$action' => $action, + '$info' => Addon::getInfo($addon), + '$str_author' => L10n::t('Author: '), + '$str_maintainer' => L10n::t('Maintainer: '), + + '$admin_form' => $admin_form, + '$function' => 'addons', + '$screenshot' => '', + '$readme' => $readme, + + '$form_security_token' => parent::getFormSecurityToken('admin_themes'), + ]); + } + + $a->internalRedirect('admin/addons'); + } +} \ No newline at end of file diff --git a/view/templates/admin/addons/details.tpl b/view/templates/admin/addons/details.tpl new file mode 100644 index 000000000..f5bb165e0 --- /dev/null +++ b/view/templates/admin/addons/details.tpl @@ -0,0 +1,37 @@ + +
      +

      {{$title}} - {{$page}}

      + +

      {{$info.name}} - {{$info.version}} : {{$action}}

      +

      {{$info.description nofilter}}

      + +

      {{$str_author}} + {{foreach $info.author as $a name=authors}} + {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}{{if $smarty.foreach.authors.last}}{{else}}, {{/if}} + {{/foreach}} +

      + +

      {{$str_maintainer}} + {{foreach $info.maintainer as $a name=maintainers}} + {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}{{if $smarty.foreach.maintainers.last}}{{else}}, {{/if}} + {{/foreach}} +

      + + {{if $screenshot}} + {{$screenshot.1}} + {{/if}} + + {{if $admin_form}} +

      {{$settings}}

      + + {{$admin_form nofilter}} + + {{/if}} + + {{if $readme}} +

      Readme

      +
      + {{$readme nofilter}} +
      + {{/if}} +
      From f3f055758ceb7d270731995600b8c59ad2984710 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 21 Apr 2019 19:14:31 -0400 Subject: [PATCH 299/653] Move admin/users to src/Module - Add Module\Admin\Users class - Add route for admin/users[/{action}/{uid}] - Add users admin aside menu entry - Remove admin_page_users and admin_page_users_post from mod/admin.php --- mod/admin.php | 312 ------------------ src/App/Router.php | 2 + src/Module/Admin/Users.php | 319 +++++++++++++++++++ src/Module/BaseAdminModule.php | 1 + view/templates/admin/users.tpl | 6 +- view/theme/frio/templates/admin/users.tpl | 17 +- view/theme/quattro/templates/admin/users.tpl | 6 +- 7 files changed, 343 insertions(+), 320 deletions(-) create mode 100644 src/Module/Admin/Users.php diff --git a/mod/admin.php b/mod/admin.php index 22fd5adf3..d6b447c79 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -87,9 +87,6 @@ function admin_post(App $a) case 'site': admin_page_site_post($a); break; - case 'users': - admin_page_users_post($a); - break; case 'themes': if ($a->argc < 2) { if ($a->isAjax()) { @@ -228,9 +225,6 @@ function admin_content(App $a) case 'site': $o = admin_page_site($a); break; - case 'users': - $o = admin_page_users($a); - break; case 'themes': $o = admin_page_themes($a); break; @@ -1337,312 +1331,6 @@ function admin_page_dbsync(App $a) return $o; } -/** - * @brief Process data send by Users admin page - * - * @param App $a - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_users_post(App $a) -{ - $pending = defaults($_POST, 'pending' , []); - $users = defaults($_POST, 'user' , []); - $nu_name = defaults($_POST, 'new_user_name' , ''); - $nu_nickname = defaults($_POST, 'new_user_nickname', ''); - $nu_email = defaults($_POST, 'new_user_email' , ''); - $nu_language = Config::get('system', 'language'); - - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users'); - - if (!($nu_name === "") && !($nu_email === "") && !($nu_nickname === "")) { - try { - $result = User::create([ - 'username' => $nu_name, - 'email' => $nu_email, - 'nickname' => $nu_nickname, - 'verified' => 1, - 'language' => $nu_language - ]); - } catch (Exception $ex) { - notice($ex->getMessage()); - return; - } - - $user = $result['user']; - $preamble = Strings::deindent(L10n::t(' - Dear %1$s, - the administrator of %2$s has set up an account for you.')); - $body = Strings::deindent(L10n::t(' - The login details are as follows: - - Site Location: %1$s - Login Name: %2$s - Password: %3$s - - You may change your password from your account "Settings" page after logging - in. - - Please take a few moments to review the other account settings on that page. - - You may also wish to add some basic information to your default profile - ' . "\x28" . 'on the "Profiles" page' . "\x29" . ' so that other people can easily find you. - - We recommend setting your full name, adding a profile photo, - adding some profile "keywords" ' . "\x28" . 'very useful in making new friends' . "\x29" . ' - and - perhaps what country you live in; if you do not wish to be more specific - than that. - - We fully respect your right to privacy, and none of these items are necessary. - If you are new and do not know anybody here, they may help - you to make some new and interesting friends. - - If you ever want to delete your account, you can do so at %1$s/removeme - - Thank you and welcome to %4$s.')); - - $preamble = sprintf($preamble, $user['username'], Config::get('config', 'sitename')); - $body = sprintf($body, System::baseUrl(), $user['nickname'], $result['password'], Config::get('config', 'sitename')); - - notification([ - 'type' => SYSTEM_EMAIL, - 'language' => $user['language'], - 'to_name' => $user['username'], - 'to_email' => $user['email'], - 'uid' => $user['uid'], - 'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')), - 'preamble' => $preamble, - 'body' => $body]); - } - - if (!empty($_POST['page_users_block'])) { - foreach ($users as $uid) { - q("UPDATE `user` SET `blocked` = 1-`blocked` WHERE `uid` = %s", intval($uid) - ); - } - notice(L10n::tt("%s user blocked/unblocked", "%s users blocked/unblocked", count($users))); - } - if (!empty($_POST['page_users_delete'])) { - foreach ($users as $uid) { - if (local_user() != $uid) { - User::remove($uid); - } else { - notice(L10n::t('You can\'t remove yourself')); - } - } - notice(L10n::tt("%s user deleted", "%s users deleted", count($users))); - } - - if (!empty($_POST['page_users_approve'])) { - require_once "mod/regmod.php"; - foreach ($pending as $hash) { - user_allow($hash); - } - } - if (!empty($_POST['page_users_deny'])) { - require_once "mod/regmod.php"; - foreach ($pending as $hash) { - user_deny($hash); - } - } - $a->internalRedirect('admin/users'); - return; // NOTREACHED -} - -/** - * @brief Admin panel subpage for User management - * - * This function generates the admin panel page for user management of the - * node. It offers functionality to add/block/delete users and offers some - * statistics about the userbase. - * - * The returned string holds the HTML code of the page. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_users(App $a) -{ - if ($a->argc > 2) { - $uid = $a->argv[3]; - $user = DBA::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]); - if (!DBA::isResult($user)) { - notice('User not found' . EOL); - $a->internalRedirect('admin/users'); - return ''; // NOTREACHED - } - switch ($a->argv[2]) { - case "delete": - if (local_user() != $uid) { - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); - // delete user - User::remove($uid); - - notice(L10n::t("User '%s' deleted", $user['username'])); - } else { - notice(L10n::t('You can\'t remove yourself')); - } - break; - case "block": - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); - q("UPDATE `user` SET `blocked` = %d WHERE `uid` = %s", - intval(1 - $user['blocked']), - intval($uid) - ); - notice(sprintf(($user['blocked'] ? L10n::t("User '%s' unblocked") : L10n::t("User '%s' blocked")), $user['username']) . EOL); - break; - } - $a->internalRedirect('admin/users'); - return ''; // NOTREACHED - } - - /* get pending */ - $pending = Register::getPending(); - - $pager = new Pager($a->query_string, 100); - - /* ordering */ - $valid_orders = [ - 'contact.name', - 'user.email', - 'user.register_date', - 'user.login_date', - 'lastitem_date', - 'user.page-flags' - ]; - - $order = "contact.name"; - $order_direction = "+"; - if (!empty($_GET['o'])) { - $new_order = $_GET['o']; - if ($new_order[0] === "-") { - $order_direction = "-"; - $new_order = substr($new_order, 1); - } - - if (in_array($new_order, $valid_orders)) { - $order = $new_order; - } - } - $sql_order = "`" . str_replace('.', '`.`', $order) . "`"; - $sql_order_direction = ($order_direction === "+") ? "ASC" : "DESC"; - - $users = q("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date` - FROM `user` - INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` - WHERE `user`.`verified` - ORDER BY $sql_order $sql_order_direction LIMIT %d, %d", $pager->getStart(), $pager->getItemsPerPage() - ); - - $adminlist = explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))); - $_setup_users = function ($e) use ($adminlist) { - $page_types = [ - User::PAGE_FLAGS_NORMAL => L10n::t('Normal Account Page'), - User::PAGE_FLAGS_SOAPBOX => L10n::t('Soapbox Page'), - User::PAGE_FLAGS_COMMUNITY => L10n::t('Public Forum'), - User::PAGE_FLAGS_FREELOVE => L10n::t('Automatic Friend Page'), - User::PAGE_FLAGS_PRVGROUP => L10n::t('Private Forum') - ]; - $account_types = [ - User::ACCOUNT_TYPE_PERSON => L10n::t('Personal Page'), - User::ACCOUNT_TYPE_ORGANISATION => L10n::t('Organisation Page'), - User::ACCOUNT_TYPE_NEWS => L10n::t('News Page'), - User::ACCOUNT_TYPE_COMMUNITY => L10n::t('Community Forum'), - User::ACCOUNT_TYPE_RELAY => L10n::t('Relay'), - ]; - - $e['page_flags_raw'] = $e['page-flags']; - $e['page-flags'] = $page_types[$e['page-flags']]; - - $e['account_type_raw'] = ($e['page_flags_raw'] == 0) ? $e['account-type'] : -1; - $e['account-type'] = ($e['page_flags_raw'] == 0) ? $account_types[$e['account-type']] : ""; - - $e['register_date'] = Temporal::getRelativeDate($e['register_date']); - $e['login_date'] = Temporal::getRelativeDate($e['login_date']); - $e['lastitem_date'] = Temporal::getRelativeDate($e['lastitem_date']); - $e['is_admin'] = in_array($e['email'], $adminlist); - $e['is_deletable'] = (intval($e['uid']) != local_user()); - $e['deleted'] = ($e['account_removed'] ? Temporal::getRelativeDate($e['account_expires_on']) : False); - - return $e; - }; - - $users = array_map($_setup_users, $users); - - - // Get rid of dashes in key names, Smarty3 can't handle them - // and extracting deleted users - - $tmp_users = []; - $deleted = []; - - while (count($users)) { - $new_user = []; - foreach (array_pop($users) as $k => $v) { - $k = str_replace('-', '_', $k); - $new_user[$k] = $v; - } - if ($new_user['deleted']) { - array_push($deleted, $new_user); - } else { - array_push($tmp_users, $new_user); - } - } - //Reversing the two array, and moving $tmp_users to $users - array_reverse($deleted); - while (count($tmp_users)) { - array_push($users, array_pop($tmp_users)); - } - - $th_users = array_map(null, [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Type')], $valid_orders); - - $t = Renderer::getMarkupTemplate('admin/users.tpl'); - $o = Renderer::replaceMacros($t, [ - // strings // - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Users'), - '$submit' => L10n::t('Add User'), - '$select_all' => L10n::t('select all'), - '$h_pending' => L10n::t('User registrations waiting for confirm'), - '$h_deleted' => L10n::t('User waiting for permanent deletion'), - '$th_pending' => [L10n::t('Request date'), L10n::t('Name'), L10n::t('Email')], - '$no_pending' => L10n::t('No registrations.'), - '$pendingnotetext' => L10n::t('Note from the user'), - '$approve' => L10n::t('Approve'), - '$deny' => L10n::t('Deny'), - '$delete' => L10n::t('Delete'), - '$block' => L10n::t('Block'), - '$blocked' => L10n::t('User blocked'), - '$unblock' => L10n::t('Unblock'), - '$siteadmin' => L10n::t('Site admin'), - '$accountexpired' => L10n::t('Account expired'), - - '$h_users' => L10n::t('Users'), - '$h_newuser' => L10n::t('New User'), - '$th_deleted' => [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Permanent deletion')], - '$th_users' => $th_users, - '$order_users' => $order, - '$order_direction_users' => $order_direction, - - '$confirm_delete_multi' => L10n::t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'), - '$confirm_delete' => L10n::t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'), - - '$form_security_token' => BaseModule::getFormSecurityToken("admin_users"), - - // values // - '$baseurl' => $a->getBaseURL(true), - - '$pending' => $pending, - 'deleted' => $deleted, - '$users' => $users, - '$newusername' => ['new_user_name', L10n::t("Name"), '', L10n::t("Name of the new user.")], - '$newusernickname' => ['new_user_nickname', L10n::t("Nickname"), '', L10n::t("Nickname of the new user.")], - '$newuseremail' => ['new_user_email', L10n::t("Email"), '', L10n::t("Email address of the new user."), '', '', 'email'], - ]); - $o .= $pager->renderFull(DBA::count('user')); - return $o; -} - /** * @param array $themes * @param string $th diff --git a/src/App/Router.php b/src/App/Router.php index 6c152eb8a..30f48f7c5 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -129,6 +129,8 @@ class Router $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); $collector->addRoute(['GET', 'POST'], '/tos' , Module\Admin\Tos::class); + + $collector->addRoute(['GET', 'POST'], '/users[/{action}/{uid}]' , Module\Admin\Users::class); }); } diff --git a/src/Module/Admin/Users.php b/src/Module/Admin/Users.php new file mode 100644 index 000000000..85567fd2a --- /dev/null +++ b/src/Module/Admin/Users.php @@ -0,0 +1,319 @@ + $nu_name, + 'email' => $nu_email, + 'nickname' => $nu_nickname, + 'verified' => 1, + 'language' => $nu_language + ]); + } catch (\Exception $ex) { + notice($ex->getMessage()); + return; + } + + $user = $result['user']; + $preamble = Strings::deindent(L10n::t(' + Dear %1$s, + the administrator of %2$s has set up an account for you.')); + $body = Strings::deindent(L10n::t(' + The login details are as follows: + + Site Location: %1$s + Login Name: %2$s + Password: %3$s + + You may change your password from your account "Settings" page after logging + in. + + Please take a few moments to review the other account settings on that page. + + You may also wish to add some basic information to your default profile + (on the "Profiles" page) so that other people can easily find you. + + We recommend setting your full name, adding a profile photo, + adding some profile "keywords" (very useful in making new friends) - and + perhaps what country you live in; if you do not wish to be more specific + than that. + + We fully respect your right to privacy, and none of these items are necessary. + If you are new and do not know anybody here, they may help + you to make some new and interesting friends. + + If you ever want to delete your account, you can do so at %1$s/removeme + + Thank you and welcome to %4$s.')); + + $preamble = sprintf($preamble, $user['username'], Config::get('config', 'sitename')); + $body = sprintf($body, System::baseUrl(), $user['nickname'], $result['password'], Config::get('config', 'sitename')); + + notification([ + 'type' => SYSTEM_EMAIL, + 'language' => $user['language'], + 'to_name' => $user['username'], + 'to_email' => $user['email'], + 'uid' => $user['uid'], + 'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')), + 'preamble' => $preamble, + 'body' => $body]); + } + + if (!empty($_POST['page_users_block'])) { + DBA::update('user', ['blocked' => 1], ['uid' => $users]); + notice(L10n::tt('%s user blocked', '%s users blocked', count($users))); + } + + if (!empty($_POST['page_users_unblock'])) { + DBA::update('user', ['blocked' => 0], ['uid' => $users]); + notice(L10n::tt('%s user unblocked', '%s users unblocked', count($users))); + } + + if (!empty($_POST['page_users_delete'])) { + foreach ($users as $uid) { + if (local_user() != $uid) { + User::remove($uid); + } else { + notice(L10n::t('You can\'t remove yourself')); + } + } + + notice(L10n::tt('%s user deleted', '%s users deleted', count($users))); + } + + if (!empty($_POST['page_users_approve'])) { + require_once 'mod/regmod.php'; + foreach ($pending as $hash) { + user_allow($hash); + } + } + + if (!empty($_POST['page_users_deny'])) { + require_once 'mod/regmod.php'; + foreach ($pending as $hash) { + user_deny($hash); + } + } + + $a->internalRedirect('admin/users'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + if ($a->argc > 3) { + // @TODO: Replace with parameter from router + $action = $a->argv[2]; + $uid = $a->argv[3]; + $user = DBA::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]); + if (!DBA::isResult($user)) { + notice('User not found' . EOL); + $a->internalRedirect('admin/users'); + return ''; // NOTREACHED + } + + switch ($action) { + case 'delete': + if (local_user() != $uid) { + parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + // delete user + User::remove($uid); + + notice(L10n::t('User "%s" deleted', $user['username'])); + } else { + notice(L10n::t('You can\'t remove yourself')); + } + break; + case 'block': + parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + DBA::update('user', ['blocked' => 1], ['uid' => $uid]); + notice(L10n::t('User "%s" blocked', $user['username'])); + break; + case 'unblock': + parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + DBA::update('user', ['blocked' => 0], ['uid' => $uid]); + notice(L10n::t('User "%s" unblocked', $user['username'])); + break; + } + + $a->internalRedirect('admin/users'); + } + + /* get pending */ + $pending = Register::getPending(); + + $pager = new Pager($a->query_string, 100); + + /* ordering */ + $valid_orders = [ + 'contact.name', + 'user.email', + 'user.register_date', + 'user.login_date', + 'lastitem_date', + 'user.page-flags' + ]; + + $order = 'contact.name'; + $order_direction = '+'; + if (!empty($_GET['o'])) { + $new_order = $_GET['o']; + if ($new_order[0] === '-') { + $order_direction = '-'; + $new_order = substr($new_order, 1); + } + + if (in_array($new_order, $valid_orders)) { + $order = $new_order; + } + } + $sql_order = '`' . str_replace('.', '`.`', $order) . '`'; + $sql_order_direction = ($order_direction === '+') ? 'ASC' : 'DESC'; + + $usersStmt = DBA::p("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date` + FROM `user` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` + WHERE `user`.`verified` + ORDER BY $sql_order $sql_order_direction LIMIT ?, ?", $pager->getStart(), $pager->getItemsPerPage() + ); + $users = DBA::toArray($usersStmt); + + $adminlist = explode(',', str_replace(' ', '', Config::get('config', 'admin_email'))); + $_setup_users = function ($e) use ($adminlist) { + $page_types = [ + User::PAGE_FLAGS_NORMAL => L10n::t('Normal Account Page'), + User::PAGE_FLAGS_SOAPBOX => L10n::t('Soapbox Page'), + User::PAGE_FLAGS_COMMUNITY => L10n::t('Public Forum'), + User::PAGE_FLAGS_FREELOVE => L10n::t('Automatic Friend Page'), + User::PAGE_FLAGS_PRVGROUP => L10n::t('Private Forum') + ]; + $account_types = [ + User::ACCOUNT_TYPE_PERSON => L10n::t('Personal Page'), + User::ACCOUNT_TYPE_ORGANISATION => L10n::t('Organisation Page'), + User::ACCOUNT_TYPE_NEWS => L10n::t('News Page'), + User::ACCOUNT_TYPE_COMMUNITY => L10n::t('Community Forum'), + User::ACCOUNT_TYPE_RELAY => L10n::t('Relay'), + ]; + + $e['page_flags_raw'] = $e['page-flags']; + $e['page-flags'] = $page_types[$e['page-flags']]; + + $e['account_type_raw'] = ($e['page_flags_raw'] == 0) ? $e['account-type'] : -1; + $e['account-type'] = ($e['page_flags_raw'] == 0) ? $account_types[$e['account-type']] : ''; + + $e['register_date'] = Temporal::getRelativeDate($e['register_date']); + $e['login_date'] = Temporal::getRelativeDate($e['login_date']); + $e['lastitem_date'] = Temporal::getRelativeDate($e['lastitem_date']); + $e['is_admin'] = in_array($e['email'], $adminlist); + $e['is_deletable'] = (intval($e['uid']) != local_user()); + $e['deleted'] = ($e['account_removed'] ? Temporal::getRelativeDate($e['account_expires_on']) : False); + + return $e; + }; + + $tmp_users = array_map($_setup_users, $users); + + // Get rid of dashes in key names, Smarty3 can't handle them + // and extracting deleted users + + $deleted = []; + $users = []; + foreach ($tmp_users as $user) { + foreach ($user as $k => $v) { + $newkey = str_replace('-', '_', $k); + $user[$newkey] = $v; + } + + if ($user['deleted']) { + $deleted[] = $user; + } else { + $users[] = $user; + } + } + + $th_users = array_map(null, [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Type')], $valid_orders); + + $t = Renderer::getMarkupTemplate('admin/users.tpl'); + $o = Renderer::replaceMacros($t, [ + // strings // + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Users'), + '$submit' => L10n::t('Add User'), + '$select_all' => L10n::t('select all'), + '$h_pending' => L10n::t('User registrations waiting for confirm'), + '$h_deleted' => L10n::t('User waiting for permanent deletion'), + '$th_pending' => [L10n::t('Request date'), L10n::t('Name'), L10n::t('Email')], + '$no_pending' => L10n::t('No registrations.'), + '$pendingnotetext' => L10n::t('Note from the user'), + '$approve' => L10n::t('Approve'), + '$deny' => L10n::t('Deny'), + '$delete' => L10n::t('Delete'), + '$block' => L10n::t('Block'), + '$blocked' => L10n::t('User blocked'), + '$unblock' => L10n::t('Unblock'), + '$siteadmin' => L10n::t('Site admin'), + '$accountexpired' => L10n::t('Account expired'), + + '$h_users' => L10n::t('Users'), + '$h_newuser' => L10n::t('New User'), + '$th_deleted' => [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Permanent deletion')], + '$th_users' => $th_users, + '$order_users' => $order, + '$order_direction_users' => $order_direction, + + '$confirm_delete_multi' => L10n::t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'), + '$confirm_delete' => L10n::t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'), + + '$form_security_token' => parent::getFormSecurityToken('admin_users'), + + // values // + '$baseurl' => $a->getBaseURL(true), + + '$pending' => $pending, + 'deleted' => $deleted, + '$users' => $users, + '$newusername' => ['new_user_name', L10n::t('Name'), '', L10n::t('Name of the new user.')], + '$newusernickname' => ['new_user_nickname', L10n::t('Nickname'), '', L10n::t('Nickname of the new user.')], + '$newuseremail' => ['new_user_email', L10n::t('Email'), '', L10n::t('Email address of the new user.'), '', '', 'email'], + ]); + + $o .= $pager->renderFull(DBA::count('user')); + + return $o; + } +} \ No newline at end of file diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 44ef39113..cf434537e 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -53,6 +53,7 @@ abstract class BaseAdminModule extends BaseModule 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], 'configuration' => [L10n::t('Configuration'), [ + 'users' => ['admin/users' , L10n::t('Users') , 'users'], 'addons' => ['admin/addons' , L10n::t('Addons') , 'addons'], 'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'], 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], diff --git a/view/templates/admin/users.tpl b/view/templates/admin/users.tpl index 88feb6136..6ca85fe7a 100644 --- a/view/templates/admin/users.tpl +++ b/view/templates/admin/users.tpl @@ -105,7 +105,11 @@ -
      +
      + + + +
      {{else}} NO USERS?!? {{/if}} diff --git a/view/theme/frio/templates/admin/users.tpl b/view/theme/frio/templates/admin/users.tpl index 273eb81e6..f2d407845 100644 --- a/view/theme/frio/templates/admin/users.tpl +++ b/view/theme/frio/templates/admin/users.tpl @@ -223,13 +223,15 @@ {{if $u.is_deletable}} - - {{if $u.blocked == 0}} - - {{else}} + {{if $u.blocked}} + - {{/if}} + {{else}} + + + + {{/if}} @@ -256,7 +258,10 @@
      + +
      +
      +
      + + + From a88df9b25921fef25b5c9bb16347e98464d97c86 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 25 Apr 2019 22:06:27 -0400 Subject: [PATCH 305/653] Ensure theme consistency when using filebrowser - Send frio filebrowser result to current frame instead of parent one --- mod/fbrowser.php | 7 +++++++ view/theme/frio/js/filebrowser.js | 16 +++++----------- view/theme/frio/js/modal.js | 4 ++-- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/mod/fbrowser.php b/mod/fbrowser.php index 559896acb..faff17381 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -11,6 +11,7 @@ use Friendica\Core\Renderer; use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Object\Image; +use Friendica\Util\Strings; /** * @param App $a @@ -27,6 +28,12 @@ function fbrowser_content(App $a) exit(); } + // Needed to match the correct template in a module that uses a different theme than the user/site/default + $theme = Strings::sanitizeFilePathItem(defaults($_GET, 'theme', null)); + if ($theme && is_file("view/theme/$theme/config.php")) { + $a->setCurrentTheme($theme); + } + $template_file = "filebrowser.tpl"; $o = ''; diff --git a/view/theme/frio/js/filebrowser.js b/view/theme/frio/js/filebrowser.js index 40c0fbb74..16d60b61d 100644 --- a/view/theme/frio/js/filebrowser.js +++ b/view/theme/frio/js/filebrowser.js @@ -99,7 +99,7 @@ var FileBrowser = { // Click on album link $(".fbrowser").on("click", ".folders a, .path a", function(e) { e.preventDefault(); - var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=none"; + var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + this.dataset.folder + "?mode=none&theme=frio"; FileBrowser.folder = this.dataset.folder; FileBrowser.loadContent(url); @@ -134,7 +134,7 @@ var FileBrowser = { console.log(FileBrowser.event, this.dataset.filename, embed, FileBrowser.id); - parent.$("body").trigger(FileBrowser.event, [ + $("body").trigger(FileBrowser.event, [ this.dataset.filename, embed, FileBrowser.id, @@ -152,7 +152,7 @@ var FileBrowser = { e.preventDefault(); FileBrowser.type = this.getAttribute("data-mode"); $(".fbrowser").removeClass().addClass("fbrowser " + FileBrowser.type); - url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none"; + url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none&theme=frio"; FileBrowser.loadContent(url); }); @@ -183,10 +183,7 @@ var FileBrowser = { return; } -// location = baseurl + "/fbrowser/image/?mode=none"+location['hash']; -// location.reload(true); - - var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + FileBrowser.folder + "?mode=none"; + var url = baseurl + "/fbrowser/" + FileBrowser.type + "/" + FileBrowser.folder + "?mode=none&theme=frio"; // load new content to fbrowser window FileBrowser.loadContent(url); } @@ -214,10 +211,7 @@ var FileBrowser = { return; } -// location = baseurl + "/fbrowser/file/?mode=none"+location['hash']; -// location.reload(true); - - var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none"; + var url = baseurl + "/fbrowser/" + FileBrowser.type + "?mode=none&theme=frio"; // Load new content to fbrowser window FileBrowser.loadContent(url); } diff --git a/view/theme/frio/js/modal.js b/view/theme/frio/js/modal.js index 1c5314c4b..ab263bc2a 100644 --- a/view/theme/frio/js/modal.js +++ b/view/theme/frio/js/modal.js @@ -120,7 +120,7 @@ Dialog.show = function(url, title) { Dialog._get_url = function(type, name, id) { var hash = name; if (id !== undefined) hash = hash + "-" + id; - return "fbrowser/"+type+"/?mode=none#"+hash; + return "fbrowser/"+type+"/?mode=none&theme=frio#"+hash; }; // Does load the filebrowser into the jot modal. @@ -148,7 +148,7 @@ Dialog._load = function(url) { var type = $("#fb-type").attr("value"); // Try to fetch the hash form the url. - var match = url.match(/fbrowser\/[a-z]+\/\?mode=none(.*)/); + var match = url.match(/fbrowser\/[a-z]+\/.*(#.*)/); if (match===null) return; //not fbrowser var hash = match[1]; From d6a5274bb92fb0f8174cdf5e6121d319a6995fba Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 25 Apr 2019 22:17:04 -0400 Subject: [PATCH 306/653] [frio] Update theme settings form for use in embed mode - Replace jRange with native slider to prevent overflowing on the right in embed mode - Move color swatch to the left of colorinput fields to prevent overflowing on the right in embed mode --- view/theme/frio/config.php | 2 +- view/theme/frio/css/style.css | 47 -- view/theme/frio/frameworks/jRange/LICENSE | 21 - view/theme/frio/frameworks/jRange/README.md | 5 - .../frameworks/jRange/jquery.range-min.js | 1 - .../frio/frameworks/jRange/jquery.range.css | 173 -------- .../frio/frameworks/jRange/jquery.range.js | 401 ------------------ .../frio/frameworks/jRange/jquery.range.less | 198 --------- .../theme/frio/frameworks/jRange/package.json | 23 - .../theme/frio/templates/field_colorinput.tpl | 2 +- view/theme/frio/templates/theme_settings.tpl | 40 +- 11 files changed, 15 insertions(+), 898 deletions(-) delete mode 100644 view/theme/frio/frameworks/jRange/LICENSE delete mode 100644 view/theme/frio/frameworks/jRange/README.md delete mode 100644 view/theme/frio/frameworks/jRange/jquery.range-min.js delete mode 100644 view/theme/frio/frameworks/jRange/jquery.range.css delete mode 100644 view/theme/frio/frameworks/jRange/jquery.range.js delete mode 100644 view/theme/frio/frameworks/jRange/jquery.range.less delete mode 100644 view/theme/frio/frameworks/jRange/package.json diff --git a/view/theme/frio/config.php b/view/theme/frio/config.php index 7ac7f489e..cd4d7b894 100644 --- a/view/theme/frio/config.php +++ b/view/theme/frio/config.php @@ -30,7 +30,7 @@ function theme_post(App $a) function theme_admin_post(App $a) { - if (!local_user()) { + if (!is_site_admin()) { return; } diff --git a/view/theme/frio/css/style.css b/view/theme/frio/css/style.css index 968e1dd7b..e6b42e52e 100644 --- a/view/theme/frio/css/style.css +++ b/view/theme/frio/css/style.css @@ -3236,53 +3236,6 @@ main .nav-tabs>li.active>a:hover { * Framework overwrite */ -/* jRange */ -.theme-frio .back-bar { - height: 5px !important; - border-radius: 2px; - background-color: #eeeeee; - background-color: #e7e7e7; - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(to bottom, #eeeeee, #dddddd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffdddddd', GradientType=0); -} -.theme-frio .back-bar .selected-bar { - border-radius: 2px; - background-color: $link_color; -/* background-image: -moz-linear-gradient(top, #bdfade, #76fabc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bdfade), to(#76fabc)); - background-image: -webkit-linear-gradient(top, #bdfade, #76fabc); - background-image: -o-linear-gradient(top, #bdfade, #76fabc); - background-image: linear-gradient(to bottom, #bdfade, #76fabc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbdfade', endColorstr='#ff76fabc', GradientType=0);*/ -} -.theme-frio .back-bar .pointer { - width: 14px !important; - height: 14px !important; - top: -5px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 10px; - border: 1px solid #AAA; - background-color: #e7e7e7 !important; - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(to bottom, #eeeeee, #dddddd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffdddddd', GradientType=0); -} -.theme-frio .back-bar .pointer-label { - color: #999; -} - /* textcomplete for contact filtering*/ #contact-list ul.dropdown-menu.textcomplete-dropdown.media-list { position: relative !important; diff --git a/view/theme/frio/frameworks/jRange/LICENSE b/view/theme/frio/frameworks/jRange/LICENSE deleted file mode 100644 index 8f47b9a63..000000000 --- a/view/theme/frio/frameworks/jRange/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Nitin Hayaran - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/view/theme/frio/frameworks/jRange/README.md b/view/theme/frio/frameworks/jRange/README.md deleted file mode 100644 index 5cbfe6aa8..000000000 --- a/view/theme/frio/frameworks/jRange/README.md +++ /dev/null @@ -1,5 +0,0 @@ -## jQuery plugin to create Range Selector - -![jRange Preview](http://i.imgur.com/da8uZwx.png) - -[Demo and Documentation](http://nitinhayaran.github.io/jRange/demo/) \ No newline at end of file diff --git a/view/theme/frio/frameworks/jRange/jquery.range-min.js b/view/theme/frio/frameworks/jRange/jquery.range-min.js deleted file mode 100644 index 2bf854e23..000000000 --- a/view/theme/frio/frameworks/jRange/jquery.range-min.js +++ /dev/null @@ -1 +0,0 @@ -!function($,t,i,s){"use strict";var o=function(){return this.init.apply(this,arguments)};o.prototype={defaults:{onstatechange:function(){},ondragend:function(){},onbarclicked:function(){},isRange:!1,showLabels:!0,showScale:!0,step:1,format:"%s",theme:"theme-green",width:300,disable:!1,snap:!1},template:'
      123456
      456789
      ',init:function(t,i){this.options=$.extend({},this.defaults,i),this.inputNode=$(t),this.options.value=this.inputNode.val()||(this.options.isRange?this.options.from+","+this.options.from:this.options.from),this.domNode=$(this.template),this.domNode.addClass(this.options.theme),this.inputNode.after(this.domNode),this.domNode.on("change",this.onChange),this.pointers=$(".pointer",this.domNode),this.lowPointer=this.pointers.first(),this.highPointer=this.pointers.last(),this.labels=$(".pointer-label",this.domNode),this.lowLabel=this.labels.first(),this.highLabel=this.labels.last(),this.scale=$(".scale",this.domNode),this.bar=$(".selected-bar",this.domNode),this.clickableBar=this.domNode.find(".clickable-dummy"),this.interval=this.options.to-this.options.from,this.render()},render:function(){return 0!==this.inputNode.width()||this.options.width?(this.options.width=this.options.width||this.inputNode.width(),this.domNode.width(this.options.width),this.inputNode.hide(),this.isSingle()&&(this.lowPointer.hide(),this.lowLabel.hide()),this.options.showLabels||this.labels.hide(),this.attachEvents(),this.options.showScale&&this.renderScale(),void this.setValue(this.options.value)):void console.log("jRange : no width found, returning")},isSingle:function(){return"number"==typeof this.options.value?!0:-1!==this.options.value.indexOf(",")||this.options.isRange?!1:!0},attachEvents:function(){this.clickableBar.click($.proxy(this.barClicked,this)),this.pointers.on("mousedown touchstart",$.proxy(this.onDragStart,this)),this.pointers.bind("dragstart",function(t){t.preventDefault()})},onDragStart:function(t){if(!(this.options.disable||"mousedown"===t.type&&1!==t.which)){t.stopPropagation(),t.preventDefault();var s=$(t.target);this.pointers.removeClass("last-active"),s.addClass("focused last-active"),this[(s.hasClass("low")?"low":"high")+"Label"].addClass("focused"),$(i).on("mousemove.slider touchmove.slider",$.proxy(this.onDrag,this,s)),$(i).on("mouseup.slider touchend.slider touchcancel.slider",$.proxy(this.onDragEnd,this))}},onDrag:function(t,i){i.stopPropagation(),i.preventDefault(),i.originalEvent.touches&&i.originalEvent.touches.length?i=i.originalEvent.touches[0]:i.originalEvent.changedTouches&&i.originalEvent.changedTouches.length&&(i=i.originalEvent.changedTouches[0]);var s=i.clientX-this.domNode.offset().left;this.domNode.trigger("change",[this,t,s])},onDragEnd:function(t){this.pointers.removeClass("focused").trigger("rangeslideend"),this.labels.removeClass("focused"),$(i).off(".slider"),this.options.ondragend.call(this,this.options.value)},barClicked:function(t){if(!this.options.disable){var i=t.pageX-this.clickableBar.offset().left;if(this.isSingle())this.setPosition(this.pointers.last(),i,!0,!0);else{var s=Math.abs(parseFloat(this.pointers.first().css("left"),10)),o=this.pointers.first().width()/2,e=Math.abs(parseFloat(this.pointers.last().css("left"),10)),n=this.pointers.first().width()/2,a=Math.abs(s-i+o),h=Math.abs(e-i+n),l;l=a==h?s>i?this.pointers.first():this.pointers.last():h>a?this.pointers.first():this.pointers.last(),this.setPosition(l,i,!0,!0),this.options.onbarclicked.call(this,this.options.value)}}},onChange:function(t,i,s,o){var e,n;e=0,n=i.domNode.width(),i.isSingle()||(e=s.hasClass("high")?parseFloat(i.lowPointer.css("left"))+i.lowPointer.width()/2:0,n=s.hasClass("low")?parseFloat(i.highPointer.css("left"))+i.highPointer.width()/2:i.domNode.width());var a=Math.min(Math.max(o,e),n);i.setPosition(s,a,!0)},setPosition:function(t,i,s,o){var e,n,a=parseFloat(this.lowPointer.css("left")),h=parseFloat(this.highPointer.css("left"))||0,l=this.highPointer.width()/2;if(s||(i=this.prcToPx(i)),this.options.snap){var r=this.correctPositionForSnap(i);if(-1===r)return;i=r}t[0]===this.highPointer[0]?h=Math.round(i-l):a=Math.round(i-l),t[o?"animate":"css"]({left:Math.round(i-l)}),this.isSingle()?e=0:(e=a+l,n=h+l);var d=Math.round(h+l-e);this.bar[o?"animate":"css"]({width:Math.abs(d),left:d>0?e:e+d}),this.showPointerValue(t,i,o),this.isReadonly()},correctPositionForSnap:function(t){var i=this.positionToValue(t)-this.options.from,s=this.options.width/(this.interval/this.options.step),o=i/this.options.step*s;return o+s/2>=t&&t>=o-s/2?o:-1},setValue:function(t){var i=t.toString().split(",");i[0]=Math.min(Math.max(i[0],this.options.from),this.options.to)+"",i.length>1&&(i[1]=Math.min(Math.max(i[1],this.options.from),this.options.to)+""),this.options.value=t;var s=this.valuesToPrc(2===i.length?i:[0,i[0]]);this.isSingle()?this.setPosition(this.highPointer,s[1]):(this.setPosition(this.lowPointer,s[0]),this.setPosition(this.highPointer,s[1]))},renderScale:function(){for(var t=this.options.scale||[this.options.from,this.options.to],i=Math.round(100/(t.length-1)*10)/10,s="",o=0;o'+("|"!=t[o]?""+t[o]+"":"")+"";this.scale.html(s),$("ins",this.scale).each(function(){$(this).css({marginLeft:-$(this).outerWidth()/2})})},getBarWidth:function(){var t=this.options.value.split(",");return t.length>1?parseFloat(t[1])-parseFloat(t[0]):parseFloat(t[0])},showPointerValue:function(t,i,o){var e=$(".pointer-label",this.domNode)[t.hasClass("low")?"first":"last"](),n,a=this.positionToValue(i);if($.isFunction(this.options.format)){var h=this.isSingle()?s:t.hasClass("low")?"low":"high";n=this.options.format(a,h)}else n=this.options.format.replace("%s",a);var l=e.html(n).width(),r=i-l/2;r=Math.min(Math.max(r,0),this.options.width-l),e[o?"animate":"css"]({left:r}),this.setInputValue(t,a)},valuesToPrc:function(t){var i=100*(parseFloat(t[0])-parseFloat(this.options.from))/this.interval,s=100*(parseFloat(t[1])-parseFloat(this.options.from))/this.interval;return[i,s]},prcToPx:function(t){return this.domNode.width()*t/100},isDecimal:function(){return-1===(this.options.value+this.options.from+this.options.to).indexOf(".")?!1:!0},positionToValue:function(t){var i=t/this.domNode.width()*this.interval;if(i=parseFloat(i,10)+parseFloat(this.options.from,10),this.isDecimal()){var s=Math.round(Math.round(i/this.options.step)*this.options.step*100)/100;if(0!==s)for(s=""+s,-1===s.indexOf(".")&&(s+=".");s.length-s.indexOf(".")<3;)s+="0";else s="0.00";return s}return Math.round(i/this.options.step)*this.options.step},setInputValue:function(t,i){if(this.isSingle())this.options.value=i.toString();else{var s=this.options.value.split(",");t.hasClass("low")?this.options.value=i+","+s[1]:this.options.value=s[0]+","+i}this.inputNode.val()!==this.options.value&&(this.inputNode.val(this.options.value).trigger("change"),this.options.onstatechange.call(this,this.options.value))},getValue:function(){return this.options.value},getOptions:function(){return this.options},getRange:function(){return this.options.from+","+this.options.to},isReadonly:function(){this.domNode.toggleClass("slider-readonly",this.options.disable)},disable:function(){this.options.disable=!0,this.isReadonly()},enable:function(){this.options.disable=!1,this.isReadonly()},toggleDisable:function(){this.options.disable=!this.options.disable,this.isReadonly()},updateRange:function(t,i){var s=t.toString().split(",");this.interval=parseInt(s[1])-parseInt(s[0]),i?this.setValue(i):this.setValue(this.getValue())}};var e="jRange";$.fn[e]=function(i){var s=arguments,n;return this.each(function(){var a=$(this),h=$.data(this,"plugin_"+e),l="object"==typeof i&&i;h||(a.data("plugin_"+e,h=new o(this,l)),$(t).resize(function(){h.setValue(h.getValue())})),"string"==typeof i&&(n=h[i].apply(h,Array.prototype.slice.call(s,1)))}),n||this}}(jQuery,window,document); \ No newline at end of file diff --git a/view/theme/frio/frameworks/jRange/jquery.range.css b/view/theme/frio/frameworks/jRange/jquery.range.css deleted file mode 100644 index 62dc15b4f..000000000 --- a/view/theme/frio/frameworks/jRange/jquery.range.css +++ /dev/null @@ -1,173 +0,0 @@ -.slider-container { - width: 300px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.slider-container .back-bar { - height: 10px; - position: relative; -} -.slider-container .back-bar .selected-bar { - position: absolute; - height: 100%; -} -.slider-container .back-bar .pointer { - position: absolute; - width: 10px; - height: 10px; - background-color: red; - cursor: col-resize; - opacity: 1; - z-index: 2; -} -.slider-container .back-bar .pointer.last-active { - z-index: 3; -} -.slider-container .back-bar .pointer-label { - position: absolute; - top: -17px; - font-size: 8px; - background: white; - white-space: nowrap; - line-height: 1; -} -.slider-container .back-bar .focused { - z-index: 10; -} -.slider-container .clickable-dummy { - cursor: pointer; - position: absolute; - width: 100%; - height: 100%; - z-index: 1; -} -.slider-container .scale { - top: 2px; - position: relative; -} -.slider-container .scale span { - position: absolute; - height: 5px; - border-left: 1px solid #999; - font-size: 0; -} -.slider-container .scale ins { - font-size: 9px; - text-decoration: none; - position: absolute; - left: 0; - top: 5px; - color: #999; - line-height: 1; -} -.slider-container.slider-readonly .clickable-dummy, -.slider-container.slider-readonly .pointer { - cursor: auto; -} -.theme-green .back-bar { - height: 5px; - border-radius: 2px; - background-color: #eeeeee; - background-color: #e7e7e7; - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(to bottom, #eeeeee, #dddddd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffdddddd', GradientType=0); -} -.theme-green .back-bar .selected-bar { - border-radius: 2px; - background-color: #a1fad0; - background-image: -moz-linear-gradient(top, #bdfade, #76fabc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#bdfade), to(#76fabc)); - background-image: -webkit-linear-gradient(top, #bdfade, #76fabc); - background-image: -o-linear-gradient(top, #bdfade, #76fabc); - background-image: linear-gradient(to bottom, #bdfade, #76fabc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbdfade', endColorstr='#ff76fabc', GradientType=0); -} -.theme-green .back-bar .pointer { - width: 14px; - height: 14px; - top: -5px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 10px; - border: 1px solid #AAA; - background-color: #e7e7e7; - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(to bottom, #eeeeee, #dddddd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffdddddd', GradientType=0); -} -.theme-green .back-bar .pointer-label { - color: #999; -} -.theme-green .back-bar .focused { - color: #333; -} -.theme-green .scale span { - border-left: 1px solid #e5e5e5; -} -.theme-green .scale ins { - color: #999; -} -.theme-blue .back-bar { - height: 5px; - border-radius: 2px; - background-color: #eeeeee; - background-color: #e7e7e7; - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(to bottom, #eeeeee, #dddddd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffdddddd', GradientType=0); -} -.theme-blue .back-bar .selected-bar { - border-radius: 2px; - background-color: #92c1f9; - background-image: -moz-linear-gradient(top, #b1d1f9, #64a8f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b1d1f9), to(#64a8f9)); - background-image: -webkit-linear-gradient(top, #b1d1f9, #64a8f9); - background-image: -o-linear-gradient(top, #b1d1f9, #64a8f9); - background-image: linear-gradient(to bottom, #b1d1f9, #64a8f9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb1d1f9', endColorstr='#ff64a8f9', GradientType=0); -} -.theme-blue .back-bar .pointer { - width: 14px; - height: 14px; - top: -5px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 10px; - border: 1px solid #AAA; - background-color: #e7e7e7; - background-image: -moz-linear-gradient(top, #eeeeee, #dddddd); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eeeeee), to(#dddddd)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dddddd); - background-image: -o-linear-gradient(top, #eeeeee, #dddddd); - background-image: linear-gradient(to bottom, #eeeeee, #dddddd); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee', endColorstr='#ffdddddd', GradientType=0); -} -.theme-blue .back-bar .pointer-label { - color: #999; -} -.theme-blue .back-bar .focused { - color: #333; -} -.theme-blue .scale span { - border-left: 1px solid #e5e5e5; -} -.theme-blue .scale ins { - color: #999; -} diff --git a/view/theme/frio/frameworks/jRange/jquery.range.js b/view/theme/frio/frameworks/jRange/jquery.range.js deleted file mode 100644 index 188ee749d..000000000 --- a/view/theme/frio/frameworks/jRange/jquery.range.js +++ /dev/null @@ -1,401 +0,0 @@ -/*jshint multistr:true, curly: false */ -/*global jQuery:false, define: false */ -/** - * jRange - Awesome range control - * - * Written by - * ---------- - * Nitin Hayaran (nitinhayaran@gmail.com) - * - * Licensed under the MIT (MIT-LICENSE.txt). - * - * @author Nitin Hayaran - * @version 0.1-RELEASE - * - * Dependencies - * ------------ - * jQuery (http://jquery.com) - * - **/ -; -(function($, window, document, undefined) { - 'use strict'; - - var jRange = function() { - return this.init.apply(this, arguments); - }; - jRange.prototype = { - defaults: { - onstatechange: function() {}, - ondragend: function() {}, - onbarclicked: function() {}, - isRange: false, - showLabels: true, - showScale: true, - step: 1, - format: '%s', - theme: 'theme-green', - width: 300, - disable: false, - snap: false - }, - template: '
      \ -
      \ -
      \ -
      123456
      \ -
      456789
      \ -
      \ -
      \ -
      \ -
      ', - init: function(node, options) { - this.options = $.extend({}, this.defaults, options); - this.inputNode = $(node); - this.options.value = this.inputNode.val() || (this.options.isRange ? this.options.from + ',' + this.options.from : this.options.from); - this.domNode = $(this.template); - this.domNode.addClass(this.options.theme); - this.inputNode.after(this.domNode); - this.domNode.on('change', this.onChange); - this.pointers = $('.pointer', this.domNode); - this.lowPointer = this.pointers.first(); - this.highPointer = this.pointers.last(); - this.labels = $('.pointer-label', this.domNode); - this.lowLabel = this.labels.first(); - this.highLabel = this.labels.last(); - this.scale = $('.scale', this.domNode); - this.bar = $('.selected-bar', this.domNode); - this.clickableBar = this.domNode.find('.clickable-dummy'); - this.interval = this.options.to - this.options.from; - this.render(); - }, - render: function() { - // Check if inputNode is visible, and have some width, so that we can set slider width accordingly. - if (this.inputNode.width() === 0 && !this.options.width) { - console.log('jRange : no width found, returning'); - return; - } else { - this.options.width = this.options.width || this.inputNode.width(); - this.domNode.width(this.options.width); - this.inputNode.hide(); - } - - if (this.isSingle()) { - this.lowPointer.hide(); - this.lowLabel.hide(); - } - if (!this.options.showLabels) { - this.labels.hide(); - } - this.attachEvents(); - if (this.options.showScale) { - this.renderScale(); - } - this.setValue(this.options.value); - }, - isSingle: function() { - if (typeof(this.options.value) === 'number') { - return true; - } - return (this.options.value.indexOf(',') !== -1 || this.options.isRange) ? - false : true; - }, - attachEvents: function() { - this.clickableBar.click($.proxy(this.barClicked, this)); - this.pointers.on('mousedown touchstart', $.proxy(this.onDragStart, this)); - this.pointers.bind('dragstart', function(event) { - event.preventDefault(); - }); - }, - onDragStart: function(e) { - if ( this.options.disable || (e.type === 'mousedown' && e.which !== 1)) { - return; - } - e.stopPropagation(); - e.preventDefault(); - var pointer = $(e.target); - this.pointers.removeClass('last-active'); - pointer.addClass('focused last-active'); - this[(pointer.hasClass('low') ? 'low' : 'high') + 'Label'].addClass('focused'); - $(document).on('mousemove.slider touchmove.slider', $.proxy(this.onDrag, this, pointer)); - $(document).on('mouseup.slider touchend.slider touchcancel.slider', $.proxy(this.onDragEnd, this)); - }, - onDrag: function(pointer, e) { - e.stopPropagation(); - e.preventDefault(); - - if (e.originalEvent.touches && e.originalEvent.touches.length) { - e = e.originalEvent.touches[0]; - } else if (e.originalEvent.changedTouches && e.originalEvent.changedTouches.length) { - e = e.originalEvent.changedTouches[0]; - } - - var position = e.clientX - this.domNode.offset().left; - this.domNode.trigger('change', [this, pointer, position]); - }, - onDragEnd: function(e) { - this.pointers.removeClass('focused') - .trigger('rangeslideend'); - this.labels.removeClass('focused'); - $(document).off('.slider'); - this.options.ondragend.call(this, this.options.value); - }, - barClicked: function(e) { - if(this.options.disable) return; - var x = e.pageX - this.clickableBar.offset().left; - if (this.isSingle()) - this.setPosition(this.pointers.last(), x, true, true); - else { - var firstLeft = Math.abs(parseFloat(this.pointers.first().css('left'), 10)), - firstHalfWidth = this.pointers.first().width() / 2, - lastLeft = Math.abs(parseFloat(this.pointers.last().css('left'), 10)), - lastHalfWidth = this.pointers.first().width() / 2, - leftSide = Math.abs(firstLeft - x + firstHalfWidth), - rightSide = Math.abs(lastLeft - x + lastHalfWidth), - pointer; - - if(leftSide == rightSide) { - pointer = x < firstLeft ? this.pointers.first() : this.pointers.last(); - } else { - pointer = leftSide < rightSide ? this.pointers.first() : this.pointers.last(); - } - this.setPosition(pointer, x, true, true); - } - this.options.onbarclicked.call(this, this.options.value); - }, - onChange: function(e, self, pointer, position) { - var min, max; - min = 0; - max = self.domNode.width(); - - if (!self.isSingle()) { - min = pointer.hasClass('high') ? parseFloat(self.lowPointer.css("left")) + (self.lowPointer.width() / 2) : 0; - max = pointer.hasClass('low') ? parseFloat(self.highPointer.css("left")) + (self.highPointer.width() / 2) : self.domNode.width(); - } - - var value = Math.min(Math.max(position, min), max); - self.setPosition(pointer, value, true); - }, - setPosition: function(pointer, position, isPx, animate) { - var leftPos, rightPos, - lowPos = parseFloat(this.lowPointer.css("left")), - highPos = parseFloat(this.highPointer.css("left")) || 0, - circleWidth = this.highPointer.width() / 2; - if (!isPx) { - position = this.prcToPx(position); - } - if(this.options.snap){ - var expPos = this.correctPositionForSnap(position); - if(expPos === -1){ - return; - }else{ - position = expPos; - } - } - if (pointer[0] === this.highPointer[0]) { - highPos = Math.round(position - circleWidth); - } else { - lowPos = Math.round(position - circleWidth); - } - pointer[animate ? 'animate' : 'css']({ - 'left': Math.round(position - circleWidth) - }); - if (this.isSingle()) { - leftPos = 0; - } else { - leftPos = lowPos + circleWidth; - rightPos = highPos + circleWidth; - } - var w = Math.round(highPos + circleWidth - leftPos); - this.bar[animate ? 'animate' : 'css']({ - 'width': Math.abs(w), - 'left': (w>0) ? leftPos : leftPos + w - }); - this.showPointerValue(pointer, position, animate); - this.isReadonly(); - }, - correctPositionForSnap: function(position){ - var currentValue = this.positionToValue(position) - this.options.from; - var diff = this.options.width / (this.interval / this.options.step), - expectedPosition = (currentValue / this.options.step) * diff; - if( position <= expectedPosition + diff / 2 && position >= expectedPosition - diff / 2){ - return expectedPosition; - }else{ - return -1; - } - }, - // will be called from outside - setValue: function(value) { - var values = value.toString().split(','); - values[0] = Math.min(Math.max(values[0], this.options.from), this.options.to) + ''; - if (values.length > 1){ - values[1] = Math.min(Math.max(values[1], this.options.from), this.options.to) + ''; - } - this.options.value = value; - var prc = this.valuesToPrc(values.length === 2 ? values : [0, values[0]]); - if (this.isSingle()) { - this.setPosition(this.highPointer, prc[1]); - } else { - this.setPosition(this.lowPointer, prc[0]); - this.setPosition(this.highPointer, prc[1]); - } - }, - renderScale: function() { - var s = this.options.scale || [this.options.from, this.options.to]; - var prc = Math.round((100 / (s.length - 1)) * 10) / 10; - var str = ''; - for (var i = 0; i < s.length; i++) { - str += '' + (s[i] != '|' ? '' + s[i] + '' : '') + ''; - } - this.scale.html(str); - - $('ins', this.scale).each(function() { - $(this).css({ - marginLeft: -$(this).outerWidth() / 2 - }); - }); - }, - getBarWidth: function() { - var values = this.options.value.split(','); - if (values.length > 1) { - return parseFloat(values[1]) - parseFloat(values[0]); - } else { - return parseFloat(values[0]); - } - }, - showPointerValue: function(pointer, position, animate) { - var label = $('.pointer-label', this.domNode)[pointer.hasClass('low') ? 'first' : 'last'](); - var text; - var value = this.positionToValue(position); - // Is it higer or lower than it should be? - - if ($.isFunction(this.options.format)) { - var type = this.isSingle() ? undefined : (pointer.hasClass('low') ? 'low' : 'high'); - text = this.options.format(value, type); - } else { - text = this.options.format.replace('%s', value); - } - - var width = label.html(text).width(), - left = position - width / 2; - left = Math.min(Math.max(left, 0), this.options.width - width); - label[animate ? 'animate' : 'css']({ - left: left - }); - this.setInputValue(pointer, value); - }, - valuesToPrc: function(values) { - var lowPrc = ((parseFloat(values[0]) - parseFloat(this.options.from)) * 100 / this.interval), - highPrc = ((parseFloat(values[1]) - parseFloat(this.options.from)) * 100 / this.interval); - return [lowPrc, highPrc]; - }, - prcToPx: function(prc) { - return (this.domNode.width() * prc) / 100; - }, - isDecimal: function() { - return ((this.options.value + this.options.from + this.options.to).indexOf(".")===-1) ? false : true; - }, - positionToValue: function(pos) { - var value = (pos / this.domNode.width()) * this.interval; - value = parseFloat(value, 10) + parseFloat(this.options.from, 10); - if (this.isDecimal()) { - var final = Math.round(Math.round(value / this.options.step) * this.options.step *100)/100; - if (final!==0.0) { - final = '' + final; - if (final.indexOf(".")===-1) { - final = final + "."; - } - while (final.length - final.indexOf('.')<3) { - final = final + "0"; - } - } else { - final = "0.00"; - } - return final; - } else { - return Math.round(value / this.options.step) * this.options.step; - } - }, - setInputValue: function(pointer, v) { - // if(!isChanged) return; - if (this.isSingle()) { - this.options.value = v.toString(); - } else { - var values = this.options.value.split(','); - if (pointer.hasClass('low')) { - this.options.value = v + ',' + values[1]; - } else { - this.options.value = values[0] + ',' + v; - } - } - if (this.inputNode.val() !== this.options.value) { - this.inputNode.val(this.options.value) - .trigger('change'); - this.options.onstatechange.call(this, this.options.value); - } - }, - getValue: function() { - return this.options.value; - }, - getOptions: function() { - return this.options; - }, - getRange: function() { - return this.options.from + "," + this.options.to; - }, - isReadonly: function(){ - this.domNode.toggleClass('slider-readonly', this.options.disable); - }, - disable: function(){ - this.options.disable = true; - this.isReadonly(); - }, - enable: function(){ - this.options.disable = false; - this.isReadonly(); - }, - toggleDisable: function(){ - this.options.disable = !this.options.disable; - this.isReadonly(); - }, - updateRange: function(range, value) { - var values = range.toString().split(','); - this.interval = parseInt(values[1]) - parseInt(values[0]); - if(value){ - this.setValue(value); - }else{ - this.setValue(this.getValue()); - } - } - }; - - var pluginName = 'jRange'; - // A really lightweight plugin wrapper around the constructor, - // preventing against multiple instantiations - $.fn[pluginName] = function(option) { - var args = arguments, - result; - - this.each(function() { - var $this = $(this), - data = $.data(this, 'plugin_' + pluginName), - options = typeof option === 'object' && option; - if (!data) { - $this.data('plugin_' + pluginName, (data = new jRange(this, options))); - $(window).resize(function() { - data.setValue(data.getValue()); - }); // Update slider position when window is resized to keep it in sync with scale - } - // if first argument is a string, call silimarly named function - // this gives flexibility to call functions of the plugin e.g. - // - $('.dial').plugin('destroy'); - // - $('.dial').plugin('render', $('.new-child')); - if (typeof option === 'string') { - result = data[option].apply(data, Array.prototype.slice.call(args, 1)); - } - }); - - // To enable plugin returns values - return result || this; - }; - -})(jQuery, window, document); diff --git a/view/theme/frio/frameworks/jRange/jquery.range.less b/view/theme/frio/frameworks/jRange/jquery.range.less deleted file mode 100644 index 4034bdd66..000000000 --- a/view/theme/frio/frameworks/jRange/jquery.range.less +++ /dev/null @@ -1,198 +0,0 @@ -#gradient { - .horizontal(@startColor: #555, @endColor: #333) { - background-color: @endColor; - background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+ - background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ - background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+ - background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10 - background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10 - background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down - } - .vertical(@startColor: #555, @endColor: #333) { - background-color: mix(@startColor, @endColor, 60%); - background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+ - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+ - background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+ - background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10 - background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10 - background-repeat: repeat-x; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down - } - .directional(@startColor: #555, @endColor: #333, @deg: 45deg) { - background-color: @endColor; - background-repeat: repeat-x; - background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+ - background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+ - background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10 - background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10 - } - .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) { - background-color: mix(@midColor, @endColor, 80%); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor)); - background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor); - background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor); - background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor); - background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor); - background-repeat: no-repeat; - filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback - } - .radial(@innerColor: #555, @outerColor: #333) { - background-color: @outerColor; - background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor)); - background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor); - background-image: -moz-radial-gradient(circle, @innerColor, @outerColor); - background-image: -o-radial-gradient(circle, @innerColor, @outerColor); - background-repeat: no-repeat; - } - .striped(@color: #555, @angle: 45deg) { - background-color: @color; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent); - } -} - -.slider-container { - width: 300px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - .back-bar { - height: 10px; - position: relative; - .selected-bar { - position: absolute; - height: 100%; - } - .pointer { - position: absolute; - width: 10px; - height: 10px; - background-color: red; - cursor: col-resize; - opacity: 1; - z-index: 2; - &.last-active{ - z-index: 3; - } - } - .pointer-label { - position: absolute; - top: -17px; - font-size: 8px; - background: white; - white-space: nowrap; - line-height: 1; - } - .focused { - z-index: 10; - } - } - .clickable-dummy { - cursor: pointer; - position: absolute; - width: 100%; - height: 100%; - z-index: 1; - } - .scale { - top: 2px; - position: relative; - span { - position: absolute; - height: 5px; - border-left: 1px solid #999; - font-size: 0; - } - ins { - font-size: 9px; - text-decoration: none; - position: absolute; - left: 0; - top: 5px; - color: #999; - line-height: 1; - } - } - &.slider-readonly{ - .clickable-dummy, .pointer { - cursor: auto; - } - } -} -.theme-green { - .back-bar { - height: 5px; - border-radius: 2px; - background-color: #eeeeee; - #gradient > .vertical(#eeeeee, #dddddd); - .selected-bar { - border-radius: 2px; - #gradient > .vertical(#bdfade, #76fabc); - } - .pointer { - width: 14px; - height: 14px; - top: -5px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 10px; - border: 1px solid #AAA; - #gradient > .vertical(#eeeeee, #dddddd); - } - .pointer-label { - color: #999; - } - .focused { - color: #333; - } - } - .scale { - span { - border-left: 1px solid #e5e5e5; - } - ins { - color: #999; - } - } -} - -.theme-blue { - .back-bar { - height: 5px; - border-radius: 2px; - background-color: #eeeeee; - #gradient > .vertical(#eeeeee, #dddddd); - .selected-bar { - border-radius: 2px; - #gradient > .vertical(#b1d1f9, #64a8f9); - } - .pointer { - width: 14px; - height: 14px; - top: -5px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - border-radius: 10px; - border: 1px solid #AAA; - #gradient > .vertical(#eeeeee, #dddddd); - } - .pointer-label { - color: #999; - } - .focused { - color: #333; - } - } - .scale { - span { - border-left: 1px solid #e5e5e5; - } - ins { - color: #999; - } - } -} diff --git a/view/theme/frio/frameworks/jRange/package.json b/view/theme/frio/frameworks/jRange/package.json deleted file mode 100644 index 25d0cd3d9..000000000 --- a/view/theme/frio/frameworks/jRange/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "jquery-range", - "version": "1.0.0", - "description": "jQuery plugin to create range selector", - "main": "jquery.range-min.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/nitinhayaran/jRange.git" - }, - "keywords": [ - "jquery", - "range" - ], - "author": "Nitin Hayaran ", - "license": "ISC", - "bugs": { - "url": "https://github.com/nitinhayaran/jRange/issues" - }, - "homepage": "https://github.com/nitinhayaran/jRange#readme" -} diff --git a/view/theme/frio/templates/field_colorinput.tpl b/view/theme/frio/templates/field_colorinput.tpl index 285501ef3..c4affb7ee 100644 --- a/view/theme/frio/templates/field_colorinput.tpl +++ b/view/theme/frio/templates/field_colorinput.tpl @@ -2,9 +2,9 @@
      + {{if $field.4}}{{$field.4}}{{/if}} -
      {{if $field.3}} {{$field.3 nofilter}} diff --git a/view/theme/frio/templates/theme_settings.tpl b/view/theme/frio/templates/theme_settings.tpl index b84f5f28a..3ac6282ca 100644 --- a/view/theme/frio/templates/theme_settings.tpl +++ b/view/theme/frio/templates/theme_settings.tpl @@ -1,7 +1,4 @@ - - - {{include file="field_select.tpl" field=$scheme}} @@ -17,7 +14,19 @@ {{if $contentbg_transp}}
      - + +
      +
      + +
      +
      +
      + + % +
      +
      +
      + {{$contentbg_transp.3}}
      @@ -171,25 +180,6 @@ if($("#id_frio_background_image").val().length != 0) { $("#frio_bg_image_options").show(); } - - $('.slider-input').jRange({ - from: 0, - to: 100, - step: 1, - scale: [0,10,20,30,40,50,60,70,80,90,100], - format: '%s', - width: '100%', - showLabels: true, - theme: 'theme-frio', - }); - - // The position of the slider is wrong calculated on hidden elements. - // So set an event listener toggle and update the jRange value. - $(document).on('click', '#custom-settings-title a', function() { - var bgTransp = $('#frio_contentbg_transp').val(); - $('.slider-input').jRange('setValue', bgTransp); - }); - }); @@ -197,7 +187,3 @@
      - - From a5da0fd98fb53ebf54b2898ce82c11ff4f6fb7e7 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 25 Apr 2019 22:20:20 -0400 Subject: [PATCH 307/653] Add admin/themes/{theme}/embed module - This module allows editing the site settings for a theme with a different user theme --- src/App/Router.php | 1 + src/Module/Admin/Themes/Embed.php | 92 +++++++++++++++++++++++++++ view/templates/admin/addons/embed.tpl | 5 ++ 3 files changed, 98 insertions(+) create mode 100644 src/Module/Admin/Themes/Embed.php create mode 100644 view/templates/admin/addons/embed.tpl diff --git a/src/App/Router.php b/src/App/Router.php index 0fbb78b8b..649d347bb 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -133,6 +133,7 @@ class Router $collector->addRoute(['GET'] , '/queue[/deferred]' , Module\Admin\Queue::class); $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); + $collector->addRoute(['GET', 'POST'], '/themes/{theme}/embed' , Module\Admin\Themes\Embed::class); $collector->addRoute(['GET', 'POST'], '/tos' , Module\Admin\Tos::class); diff --git a/src/Module/Admin/Themes/Embed.php b/src/Module/Admin/Themes/Embed.php new file mode 100644 index 000000000..0a309e23c --- /dev/null +++ b/src/Module/Admin/Themes/Embed.php @@ -0,0 +1,92 @@ +argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (is_file("view/theme/$theme/config.php")) { + $a->setCurrentTheme($theme); + } + } + } + + public static function post() + { + parent::post(); + + $a = self::getApp(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (is_file("view/theme/$theme/config.php")) { + self::checkFormSecurityTokenRedirectOnError('/admin/themes/' . $theme . '/embed?mode=minimal', 'admin_theme_settings'); + + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin_post')) { + theme_admin_post($a); + } + } + + info(L10n::t('Theme settings updated.')); + + if ($a->isAjax()) { + return; + } + + $a->internalRedirect('admin/themes/' . $theme . '/embed?mode=minimal'); + } + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (!is_dir("view/theme/$theme")) { + notice(L10n::t('Unknown theme.')); + return ''; + } + + $admin_form = ''; + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin')) { + $admin_form = theme_admin($a); + } + } + + $t = Renderer::getMarkupTemplate('admin/addons/embed.tpl'); + return Renderer::replaceMacros($t, [ + '$action' => '/admin/themes/' . $theme . '/embed?mode=minimal', + '$form' => $admin_form, + '$form_security_token' => parent::getFormSecurityToken("admin_theme_settings"), + ]); + } + + return ''; + } +} \ No newline at end of file diff --git a/view/templates/admin/addons/embed.tpl b/view/templates/admin/addons/embed.tpl new file mode 100644 index 000000000..71fb12d43 --- /dev/null +++ b/view/templates/admin/addons/embed.tpl @@ -0,0 +1,5 @@ + + + + {{$form nofilter}} + From d0b40cda4c26d1e57f0b23e68a52dd366d568b40 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 25 Apr 2019 22:25:13 -0400 Subject: [PATCH 308/653] Move admin/themes/{theme} to src/Module - Remove now unused templates/admin/addon_detail.tpl - Remove references to themes admin in mod/admin.php --- mod/admin.php | 249 ------------------------- src/App/Router.php | 1 + src/Module/Admin/Themes/Details.php | 128 +++++++++++++ view/templates/admin/addon_details.tpl | 37 ---- 4 files changed, 129 insertions(+), 286 deletions(-) create mode 100644 src/Module/Admin/Themes/Details.php delete mode 100644 view/templates/admin/addon_details.tpl diff --git a/mod/admin.php b/mod/admin.php index 7f2077bea..d2bba6f11 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -38,23 +38,6 @@ use Friendica\Util\Strings; use Friendica\Util\Temporal; use Psr\Log\LogLevel; -/** - * Sets the current theme for theme settings pages. - * - * This needs to be done before the post() or content() methods are called. - * - * @param App $a - */ -function admin_init(App $a) -{ - if ($a->argc > 2 && $a->argv[1] == 'themes') { - $theme = $a->argv[2]; - if (is_file("view/theme/$theme/config.php")) { - $a->setCurrentTheme($theme); - } - } -} - /** * @brief Process send data from the admin panels subpages * @@ -87,30 +70,6 @@ function admin_post(App $a) case 'site': admin_page_site_post($a); break; - case 'themes': - if ($a->argc < 2) { - if ($a->isAjax()) { - return; - } - $a->internalRedirect('admin/'); - return; - } - - $theme = $a->argv[2]; - if (is_file("view/theme/$theme/config.php")) { - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin_post')) { - theme_admin_post($a); - } - } - - info(L10n::t('Theme settings updated.')); - if ($a->isAjax()) { - return; - } - $return_path = 'admin/themes/' . $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : ''); - break; case 'logs': admin_page_logs_post($a); break; @@ -216,9 +175,6 @@ function admin_content(App $a) case 'site': $o = admin_page_site($a); break; - case 'themes': - $o = admin_page_themes($a); - break; case 'logs': $o = admin_page_logs($a); break; @@ -1082,211 +1038,6 @@ function admin_page_dbsync(App $a) return $o; } -/** - * @param array $themes - * @param string $th - * @param int $result - */ -function toggle_theme(&$themes, $th, &$result) -{ - $count = count($themes); - for ($x = 0; $x < $count; $x++) { - if ($themes[$x]['name'] === $th) { - if ($themes[$x]['allowed']) { - $themes[$x]['allowed'] = 0; - $result = 0; - } else { - $themes[$x]['allowed'] = 1; - $result = 1; - } - } - } -} - -/** - * @param array $themes - * @param string $th - * @return int - */ -function theme_status($themes, $th) -{ - $count = count($themes); - for ($x = 0; $x < $count; $x++) { - if ($themes[$x]['name'] === $th) { - if ($themes[$x]['allowed']) { - return 1; - } else { - return 0; - } - } - } - return 0; -} - -/** - * @param array $themes - * @return string - */ -function rebuild_theme_table($themes) -{ - $o = ''; - if (count($themes)) { - foreach ($themes as $th) { - if ($th['allowed']) { - if (strlen($o)) { - $o .= ','; - } - $o .= $th['name']; - } - } - } - return $o; -} - -/** - * @brief Themes admin page - * - * This function generates the admin panel page to control the themes available - * on the friendica node. If the name of a theme is given as parameter a page - * with the details for the theme is shown. Otherwise a list of available - * themes is generated. - * - * The template used for displaying the list of themes and the details of the - * themes are the same as used for the addons. - * - * The returned string contains the HTML code of the admin panel page. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_themes(App $a) -{ - $allowed_themes_str = Config::get('system', 'allowed_themes'); - $allowed_themes_raw = explode(',', $allowed_themes_str); - $allowed_themes = []; - if (count($allowed_themes_raw)) { - foreach ($allowed_themes_raw as $x) { - if (strlen(trim($x))) { - $allowed_themes[] = trim($x); - } - } - } - - $themes = []; - $files = glob('view/theme/*'); - if (is_array($files)) { - foreach ($files as $file) { - $f = basename($file); - - // Is there a style file? - $theme_files = glob('view/theme/' . $f . '/style.*'); - - // If not then quit - if (count($theme_files) == 0) { - continue; - } - - $is_experimental = intval(file_exists($file . '/experimental')); - $is_supported = 1 - (intval(file_exists($file . '/unsupported'))); - $is_allowed = intval(in_array($f, $allowed_themes)); - - if ($is_allowed || $is_supported || Config::get("system", "show_unsupported_themes")) { - $themes[] = ['name' => $f, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed]; - } - } - } - - if (!count($themes)) { - notice(L10n::t('No themes found.')); - return ''; - } - - /* - * Single theme - */ - - if ($a->argc == 3) { - $theme = $a->argv[2]; - if (!is_dir("view/theme/$theme")) { - notice(L10n::t("Item not found.")); - return ''; - } - - if (!empty($_GET['a']) && $_GET['a'] == "t") { - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/themes', 'admin_themes', 't'); - - // Toggle theme status - - toggle_theme($themes, $theme, $result); - $s = rebuild_theme_table($themes); - if ($result) { - Theme::install($theme); - info(sprintf('Theme %s enabled.', $theme)); - } else { - Theme::uninstall($theme); - info(sprintf('Theme %s disabled.', $theme)); - } - - Config::set('system', 'allowed_themes', $s); - $a->internalRedirect('admin/themes'); - return ''; // NOTREACHED - } - - // display theme details - if (theme_status($themes, $theme)) { - $status = "on"; - $action = L10n::t("Disable"); - } else { - $status = "off"; - $action = L10n::t("Enable"); - } - - $readme = null; - - if (is_file("view/theme/$theme/README.md")) { - $readme = Markdown::convert(file_get_contents("view/theme/$theme/README.md"), false); - } elseif (is_file("view/theme/$theme/README")) { - $readme = "
      " . file_get_contents("view/theme/$theme/README") . "
      "; - } - - $admin_form = ''; - if (is_file("view/theme/$theme/config.php")) { - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin')) { - $admin_form = theme_admin($a); - } - } - - $screenshot = [Theme::getScreenshot($theme), L10n::t('Screenshot')]; - if (!stristr($screenshot[0], $theme)) { - $screenshot = null; - } - - $t = Renderer::getMarkupTemplate('admin/addon_details.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Themes'), - '$toggle' => L10n::t('Toggle'), - '$settings' => L10n::t('Settings'), - '$baseurl' => System::baseUrl(true), - '$addon' => $theme . (!empty($_GET['mode']) ? '?mode=' . $_GET['mode'] : ''), - '$status' => $status, - '$action' => $action, - '$info' => Theme::getInfo($theme), - '$function' => 'themes', - '$admin_form' => $admin_form, - '$str_author' => L10n::t('Author: '), - '$str_maintainer' => L10n::t('Maintainer: '), - '$screenshot' => $screenshot, - '$readme' => $readme, - - '$form_security_token' => BaseModule::getFormSecurityToken("admin_themes"), - ]); - } -} - /** * @brief Prosesses data send by Logs admin page * diff --git a/src/App/Router.php b/src/App/Router.php index 649d347bb..b78c58bc4 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -133,6 +133,7 @@ class Router $collector->addRoute(['GET'] , '/queue[/deferred]' , Module\Admin\Queue::class); $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); + $collector->addRoute(['GET', 'POST'], '/themes/{theme}' , Module\Admin\Themes\Details::class); $collector->addRoute(['GET', 'POST'], '/themes/{theme}/embed' , Module\Admin\Themes\Embed::class); $collector->addRoute(['GET', 'POST'], '/tos' , Module\Admin\Tos::class); diff --git a/src/Module/Admin/Themes/Details.php b/src/Module/Admin/Themes/Details.php new file mode 100644 index 000000000..540083bb2 --- /dev/null +++ b/src/Module/Admin/Themes/Details.php @@ -0,0 +1,128 @@ +argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin_post')) { + theme_admin_post($a); + } + } + + info(L10n::t('Theme settings updated.')); + + if ($a->isAjax()) { + return; + } + + $a->internalRedirect('admin/themes/' . $theme); + } + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (!is_dir("view/theme/$theme")) { + notice(L10n::t("Item not found.")); + return ''; + } + + $isEnabled = in_array($theme, Theme::getAllowedList()); + if ($isEnabled) { + $status = "on"; + $action = L10n::t("Disable"); + } else { + $status = "off"; + $action = L10n::t("Enable"); + } + + if (!empty($_GET['action']) && $_GET['action'] == 'toggle') { + parent::checkFormSecurityTokenRedirectOnError('/admin/themes', 'admin_themes', 't'); + + if ($isEnabled) { + Theme::uninstall($theme); + info(L10n::t('Theme %s disabled.', $theme)); + } elseif (Theme::install($theme)) { + info(L10n::t('Theme %s successfully enabled.', $theme)); + } else { + info(L10n::t('Theme %s failed to install.', $theme)); + } + + $a->internalRedirect('admin/themes/' . $theme); + } + + $readme = null; + if (is_file("view/theme/$theme/README.md")) { + $readme = Markdown::convert(file_get_contents("view/theme/$theme/README.md"), false); + } elseif (is_file("view/theme/$theme/README")) { + $readme = "
      " . file_get_contents("view/theme/$theme/README") . "
      "; + } + + $admin_form = ''; + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin')) { + $admin_form = ''; + } + } + + $screenshot = [Theme::getScreenshot($theme), L10n::t('Screenshot')]; + if (!stristr($screenshot[0], $theme)) { + $screenshot = null; + } + + $t = Renderer::getMarkupTemplate('admin/addons/details.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Themes'), + '$toggle' => L10n::t('Toggle'), + '$settings' => L10n::t('Settings'), + '$baseurl' => System::baseUrl(true), + '$addon' => $theme, + '$status' => $status, + '$action' => $action, + '$info' => Theme::getInfo($theme), + '$function' => 'themes', + '$admin_form' => $admin_form, + '$str_author' => L10n::t('Author: '), + '$str_maintainer' => L10n::t('Maintainer: '), + '$screenshot' => $screenshot, + '$readme' => $readme, + + '$form_security_token' => parent::getFormSecurityToken("admin_themes"), + ]); + } + + $a->internalRedirect('admin/themes'); + } +} \ No newline at end of file diff --git a/view/templates/admin/addon_details.tpl b/view/templates/admin/addon_details.tpl deleted file mode 100644 index 7479b1385..000000000 --- a/view/templates/admin/addon_details.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
      -

      {{$title}} - {{$page}}

      - -

      {{$info.name}} - {{$info.version}} : {{$action}}

      -

      {{$info.description nofilter}}

      - -

      {{$str_author}} - {{foreach $info.author as $a name=authors}} - {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}{{if $smarty.foreach.authors.last}}{{else}}, {{/if}} - {{/foreach}} -

      - -

      {{$str_maintainer}} - {{foreach $info.maintainer as $a name=maintainers}} - {{if $a.link}}{{$a.name}}{{else}}{{$a.name}}{{/if}}{{if $smarty.foreach.maintainers.last}}{{else}}, {{/if}} - {{/foreach}} -

      - - {{if $screenshot}} - {{$screenshot.1}} - {{/if}} - - {{if $admin_form}} -

      {{$settings}}

      -
      - {{$admin_form nofilter}} -
      - {{/if}} - - {{if $readme}} -

      Readme

      -
      - {{$readme nofilter}} -
      - {{/if}} -
      From 740723534f1154ea417ec88aa1b47d9ebe673a5e Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 25 Apr 2019 22:35:38 -0400 Subject: [PATCH 309/653] Move admin/site to src/Module - Replace default theme settings modal with simple link to admin/themes --- mod/admin.php | 685 ----------------------- src/App/Router.php | 2 + src/Module/Admin/Site.php | 685 +++++++++++++++++++++++ src/Module/BaseAdminModule.php | 1 + view/templates/admin/site.tpl | 41 -- view/theme/frio/templates/admin/site.tpl | 41 -- 6 files changed, 688 insertions(+), 767 deletions(-) create mode 100644 src/Module/Admin/Site.php diff --git a/mod/admin.php b/mod/admin.php index d2bba6f11..ad4dcf398 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -67,9 +67,6 @@ function admin_post(App $a) $return_path = 'admin'; if ($a->argc > 1) { switch ($a->argv[1]) { - case 'site': - admin_page_site_post($a); - break; case 'logs': admin_page_logs_post($a); break; @@ -172,9 +169,6 @@ function admin_content(App $a) // urls if ($a->argc > 1) { switch ($a->argv[1]) { - case 'site': - $o = admin_page_site($a); - break; case 'logs': $o = admin_page_logs($a); break; @@ -261,685 +255,6 @@ function admin_page_deleteitem_post(App $a) return; // NOTREACHED } -/** - * @brief Process send data from Admin Site Page - * - * @param App $a - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_site_post(App $a) -{ - BaseModule::checkFormSecurityTokenRedirectOnError('/admin/site', 'admin_site'); - - if (!empty($_POST['republish_directory'])) { - Worker::add(PRIORITY_LOW, 'Directory'); - return; - } - - if (empty($_POST['page_site'])) { - return; - } - - // relocate - if (!empty($_POST['relocate']) && !empty($_POST['relocate_url']) && $_POST['relocate_url'] != "") { - $new_url = $_POST['relocate_url']; - $new_url = rtrim($new_url, "/"); - - $parsed = @parse_url($new_url); - if (!is_array($parsed) || empty($parsed['host']) || empty($parsed['scheme'])) { - notice(L10n::t("Can not parse base url. Must have at least ://")); - $a->internalRedirect('admin/site'); - } - - /* steps: - * replace all "baseurl" to "new_url" in config, profile, term, items and contacts - * send relocate for every local user - * */ - - $old_url = $a->getBaseURL(true); - - // Generate host names for relocation the addresses in the format user@address.tld - $new_host = str_replace("http://", "@", Strings::normaliseLink($new_url)); - $old_host = str_replace("http://", "@", Strings::normaliseLink($old_url)); - - function update_table(App $a, $table_name, $fields, $old_url, $new_url) - { - $dbold = DBA::escape($old_url); - $dbnew = DBA::escape($new_url); - - $upd = []; - foreach ($fields as $f) { - $upd[] = "`$f` = REPLACE(`$f`, '$dbold', '$dbnew')"; - } - - $upds = implode(", ", $upd); - - $r = q("UPDATE %s SET %s;", $table_name, $upds); - - if (!DBA::isResult($r)) { - notice("Failed updating '$table_name': " . DBA::errorMessage()); - $a->internalRedirect('admin/site'); - } - } - - // update tables - // update profile links in the format "http://server.tld" - update_table($a, "profile", ['photo', 'thumb'], $old_url, $new_url); - update_table($a, "term", ['url'], $old_url, $new_url); - update_table($a, "contact", ['photo', 'thumb', 'micro', 'url', 'nurl', 'alias', 'request', 'notify', 'poll', 'confirm', 'poco', 'avatar'], $old_url, $new_url); - update_table($a, "gcontact", ['url', 'nurl', 'photo', 'server_url', 'notify', 'alias'], $old_url, $new_url); - update_table($a, "item", ['owner-link', 'author-link', 'body', 'plink', 'tag'], $old_url, $new_url); - - // update profile addresses in the format "user@server.tld" - update_table($a, "contact", ['addr'], $old_host, $new_host); - update_table($a, "gcontact", ['connect', 'addr'], $old_host, $new_host); - - // update config - Config::set('system', 'url', $new_url); - $a->setBaseURL($new_url); - - // send relocate - $users = q("SELECT `uid` FROM `user` WHERE `account_removed` = 0 AND `account_expired` = 0"); - - foreach ($users as $user) { - Worker::add(PRIORITY_HIGH, 'Notifier', 'relocate', $user['uid']); - } - - info("Relocation started. Could take a while to complete."); - - $a->internalRedirect('admin/site'); - } - // end relocate - - $sitename = (!empty($_POST['sitename']) ? Strings::escapeTags(trim($_POST['sitename'])) : ''); - $sender_email = (!empty($_POST['sender_email']) ? Strings::escapeTags(trim($_POST['sender_email'])) : ''); - $banner = (!empty($_POST['banner']) ? trim($_POST['banner']) : false); - $shortcut_icon = (!empty($_POST['shortcut_icon']) ? Strings::escapeTags(trim($_POST['shortcut_icon'])) : ''); - $touch_icon = (!empty($_POST['touch_icon']) ? Strings::escapeTags(trim($_POST['touch_icon'])) : ''); - $additional_info = (!empty($_POST['additional_info']) ? trim($_POST['additional_info']) : ''); - $language = (!empty($_POST['language']) ? Strings::escapeTags(trim($_POST['language'])) : ''); - $theme = (!empty($_POST['theme']) ? Strings::escapeTags(trim($_POST['theme'])) : ''); - $theme_mobile = (!empty($_POST['theme_mobile']) ? Strings::escapeTags(trim($_POST['theme_mobile'])) : ''); - $maximagesize = (!empty($_POST['maximagesize']) ? intval(trim($_POST['maximagesize'])) : 0); - $maximagelength = (!empty($_POST['maximagelength']) ? intval(trim($_POST['maximagelength'])) : MAX_IMAGE_LENGTH); - $jpegimagequality = (!empty($_POST['jpegimagequality']) ? intval(trim($_POST['jpegimagequality'])) : JPEG_QUALITY); - - $register_policy = (!empty($_POST['register_policy']) ? intval(trim($_POST['register_policy'])) : 0); - $daily_registrations = (!empty($_POST['max_daily_registrations']) ? intval(trim($_POST['max_daily_registrations'])) : 0); - $abandon_days = (!empty($_POST['abandon_days']) ? intval(trim($_POST['abandon_days'])) : 0); - - $register_text = (!empty($_POST['register_text']) ? strip_tags(trim($_POST['register_text'])) : ''); - - $allowed_sites = (!empty($_POST['allowed_sites']) ? Strings::escapeTags(trim($_POST['allowed_sites'])) : ''); - $allowed_email = (!empty($_POST['allowed_email']) ? Strings::escapeTags(trim($_POST['allowed_email'])) : ''); - $forbidden_nicknames = (!empty($_POST['forbidden_nicknames']) ? strtolower(Strings::escapeTags(trim($_POST['forbidden_nicknames']))) : ''); - $no_oembed_rich_content = !empty($_POST['no_oembed_rich_content']); - $allowed_oembed = (!empty($_POST['allowed_oembed']) ? Strings::escapeTags(trim($_POST['allowed_oembed'])) : ''); - $block_public = !empty($_POST['block_public']); - $force_publish = !empty($_POST['publish_all']); - $global_directory = (!empty($_POST['directory']) ? Strings::escapeTags(trim($_POST['directory'])) : ''); - $newuser_private = !empty($_POST['newuser_private']); - $enotify_no_content = !empty($_POST['enotify_no_content']); - $private_addons = !empty($_POST['private_addons']); - $disable_embedded = !empty($_POST['disable_embedded']); - $allow_users_remote_self = !empty($_POST['allow_users_remote_self']); - $explicit_content = !empty($_POST['explicit_content']); - - $no_multi_reg = !empty($_POST['no_multi_reg']); - $no_openid = !empty($_POST['no_openid']); - $no_regfullname = !empty($_POST['no_regfullname']); - $community_page_style = (!empty($_POST['community_page_style']) ? intval(trim($_POST['community_page_style'])) : 0); - $max_author_posts_community_page = (!empty($_POST['max_author_posts_community_page']) ? intval(trim($_POST['max_author_posts_community_page'])) : 0); - - $verifyssl = !empty($_POST['verifyssl']); - $proxyuser = (!empty($_POST['proxyuser']) ? Strings::escapeTags(trim($_POST['proxyuser'])) : ''); - $proxy = (!empty($_POST['proxy']) ? Strings::escapeTags(trim($_POST['proxy'])) : ''); - $timeout = (!empty($_POST['timeout']) ? intval(trim($_POST['timeout'])) : 60); - $maxloadavg = (!empty($_POST['maxloadavg']) ? intval(trim($_POST['maxloadavg'])) : 20); - $maxloadavg_frontend = (!empty($_POST['maxloadavg_frontend']) ? intval(trim($_POST['maxloadavg_frontend'])) : 50); - $min_memory = (!empty($_POST['min_memory']) ? intval(trim($_POST['min_memory'])) : 0); - $optimize_max_tablesize = (!empty($_POST['optimize_max_tablesize']) ? intval(trim($_POST['optimize_max_tablesize'])) : 100); - $optimize_fragmentation = (!empty($_POST['optimize_fragmentation']) ? intval(trim($_POST['optimize_fragmentation'])) : 30); - $poco_completion = (!empty($_POST['poco_completion']) ? intval(trim($_POST['poco_completion'])) : false); - $poco_requery_days = (!empty($_POST['poco_requery_days']) ? intval(trim($_POST['poco_requery_days'])) : 7); - $poco_discovery = (!empty($_POST['poco_discovery']) ? intval(trim($_POST['poco_discovery'])) : PortableContact::DISABLED); - $poco_discovery_since = (!empty($_POST['poco_discovery_since']) ? intval(trim($_POST['poco_discovery_since'])) : 30); - $poco_local_search = !empty($_POST['poco_local_search']); - $nodeinfo = !empty($_POST['nodeinfo']); - $dfrn_only = !empty($_POST['dfrn_only']); - $ostatus_disabled = !empty($_POST['ostatus_disabled']); - $ostatus_full_threads = !empty($_POST['ostatus_full_threads']); - $diaspora_enabled = !empty($_POST['diaspora_enabled']); - $ssl_policy = (!empty($_POST['ssl_policy']) ? intval($_POST['ssl_policy']) : 0); - $force_ssl = !empty($_POST['force_ssl']); - $hide_help = !empty($_POST['hide_help']); - $dbclean = !empty($_POST['dbclean']); - $dbclean_expire_days = (!empty($_POST['dbclean_expire_days']) ? intval($_POST['dbclean_expire_days']) : 0); - $dbclean_unclaimed = (!empty($_POST['dbclean_unclaimed']) ? intval($_POST['dbclean_unclaimed']) : 0); - $dbclean_expire_conv = (!empty($_POST['dbclean_expire_conv']) ? intval($_POST['dbclean_expire_conv']) : 0); - $suppress_tags = !empty($_POST['suppress_tags']); - $itemcache = (!empty($_POST['itemcache']) ? Strings::escapeTags(trim($_POST['itemcache'])) : ''); - $itemcache_duration = (!empty($_POST['itemcache_duration']) ? intval($_POST['itemcache_duration']) : 0); - $max_comments = (!empty($_POST['max_comments']) ? intval($_POST['max_comments']) : 0); - $temppath = (!empty($_POST['temppath']) ? Strings::escapeTags(trim($_POST['temppath'])) : ''); - $singleuser = (!empty($_POST['singleuser']) ? Strings::escapeTags(trim($_POST['singleuser'])) : ''); - $proxy_disabled = !empty($_POST['proxy_disabled']); - $only_tag_search = !empty($_POST['only_tag_search']); - $rino = (!empty($_POST['rino']) ? intval($_POST['rino']) : 0); - $check_new_version_url = (!empty($_POST['check_new_version_url']) ? Strings::escapeTags(trim($_POST['check_new_version_url'])) : 'none'); - - $worker_queues = (!empty($_POST['worker_queues']) ? intval($_POST['worker_queues']) : 10); - $worker_dont_fork = !empty($_POST['worker_dont_fork']); - $worker_fastlane = !empty($_POST['worker_fastlane']); - $worker_frontend = !empty($_POST['worker_frontend']); - - $relay_directly = !empty($_POST['relay_directly']); - $relay_server = (!empty($_POST['relay_server']) ? Strings::escapeTags(trim($_POST['relay_server'])) : ''); - $relay_subscribe = !empty($_POST['relay_subscribe']); - $relay_scope = (!empty($_POST['relay_scope']) ? Strings::escapeTags(trim($_POST['relay_scope'])) : ''); - $relay_server_tags = (!empty($_POST['relay_server_tags']) ? Strings::escapeTags(trim($_POST['relay_server_tags'])) : ''); - $relay_user_tags = !empty($_POST['relay_user_tags']); - $active_panel = (!empty($_POST['active_panel']) ? "#" . Strings::escapeTags(trim($_POST['active_panel'])) : ''); - - /** - * @var $storagebackend \Friendica\Model\Storage\IStorage - */ - $storagebackend = Strings::escapeTags(trim(defaults($_POST, 'storagebackend', ''))); - - // save storage backend form - if (!is_null($storagebackend) && $storagebackend != "") { - if (StorageManager::setBackend($storagebackend)) { - $storage_opts = $storagebackend::getOptions(); - $storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|', '', $storagebackend); - $storage_opts_data = []; - foreach ($storage_opts as $name => $info) { - $fieldname = $storage_form_prefix . '_' . $name; - switch ($info[0]) { // type - case 'checkbox': - case 'yesno': - $value = !empty($_POST[$fieldname]); - break; - default: - $value = defaults($_POST, $fieldname, ''); - } - $storage_opts_data[$name] = $value; - } - unset($name); - unset($info); - - $storage_form_errors = $storagebackend::saveOptions($storage_opts_data); - if (count($storage_form_errors)) { - foreach ($storage_form_errors as $name => $err) { - notice('Storage backend, ' . $storage_opts[$name][1] . ': ' . $err); - } - $a->internalRedirect('admin/site' . $active_panel); - } - } else { - info(L10n::t('Invalid storage backend setting value.')); - } - } - - - - // Has the directory url changed? If yes, then resubmit the existing profiles there - if ($global_directory != Config::get('system', 'directory') && ($global_directory != '')) { - Config::set('system', 'directory', $global_directory); - Worker::add(PRIORITY_LOW, 'Directory'); - } - - if ($a->getURLPath() != "") { - $diaspora_enabled = false; - } - if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) { - if ($ssl_policy == BaseURL::SSL_POLICY_FULL) { - q("UPDATE `contact` SET - `url` = REPLACE(`url` , 'http:' , 'https:'), - `photo` = REPLACE(`photo` , 'http:' , 'https:'), - `thumb` = REPLACE(`thumb` , 'http:' , 'https:'), - `micro` = REPLACE(`micro` , 'http:' , 'https:'), - `request` = REPLACE(`request`, 'http:' , 'https:'), - `notify` = REPLACE(`notify` , 'http:' , 'https:'), - `poll` = REPLACE(`poll` , 'http:' , 'https:'), - `confirm` = REPLACE(`confirm`, 'http:' , 'https:'), - `poco` = REPLACE(`poco` , 'http:' , 'https:') - WHERE `self` = 1" - ); - q("UPDATE `profile` SET - `photo` = REPLACE(`photo` , 'http:' , 'https:'), - `thumb` = REPLACE(`thumb` , 'http:' , 'https:') - WHERE 1 " - ); - } elseif ($ssl_policy == BaseURL::SSL_POLICY_SELFSIGN) { - q("UPDATE `contact` SET - `url` = REPLACE(`url` , 'https:' , 'http:'), - `photo` = REPLACE(`photo` , 'https:' , 'http:'), - `thumb` = REPLACE(`thumb` , 'https:' , 'http:'), - `micro` = REPLACE(`micro` , 'https:' , 'http:'), - `request` = REPLACE(`request`, 'https:' , 'http:'), - `notify` = REPLACE(`notify` , 'https:' , 'http:'), - `poll` = REPLACE(`poll` , 'https:' , 'http:'), - `confirm` = REPLACE(`confirm`, 'https:' , 'http:'), - `poco` = REPLACE(`poco` , 'https:' , 'http:') - WHERE `self` = 1" - ); - q("UPDATE `profile` SET - `photo` = REPLACE(`photo` , 'https:' , 'http:'), - `thumb` = REPLACE(`thumb` , 'https:' , 'http:') - WHERE 1 " - ); - } - } - Config::set('system', 'ssl_policy' , $ssl_policy); - Config::set('system', 'maxloadavg' , $maxloadavg); - Config::set('system', 'maxloadavg_frontend' , $maxloadavg_frontend); - Config::set('system', 'min_memory' , $min_memory); - Config::set('system', 'optimize_max_tablesize', $optimize_max_tablesize); - Config::set('system', 'optimize_fragmentation', $optimize_fragmentation); - Config::set('system', 'poco_completion' , $poco_completion); - Config::set('system', 'poco_requery_days' , $poco_requery_days); - Config::set('system', 'poco_discovery' , $poco_discovery); - Config::set('system', 'poco_discovery_since' , $poco_discovery_since); - Config::set('system', 'poco_local_search' , $poco_local_search); - Config::set('system', 'nodeinfo' , $nodeinfo); - Config::set('config', 'sitename' , $sitename); - Config::set('config', 'sender_email' , $sender_email); - Config::set('system', 'suppress_tags' , $suppress_tags); - Config::set('system', 'shortcut_icon' , $shortcut_icon); - Config::set('system', 'touch_icon' , $touch_icon); - - if ($banner == "") { - Config::delete('system', 'banner'); - } else { - Config::set('system', 'banner', $banner); - } - - if (empty($additional_info)) { - Config::delete('config', 'info'); - } else { - Config::set('config', 'info', $additional_info); - } - Config::set('system', 'language', $language); - Config::set('system', 'theme', $theme); - Theme::install($theme); - - if ($theme_mobile == '---') { - Config::delete('system', 'mobile-theme'); - } else { - Config::set('system', 'mobile-theme', $theme_mobile); - } - if ($singleuser == '---') { - Config::delete('system', 'singleuser'); - } else { - Config::set('system', 'singleuser', $singleuser); - } - Config::set('system', 'maximagesize' , $maximagesize); - Config::set('system', 'max_image_length' , $maximagelength); - Config::set('system', 'jpeg_quality' , $jpegimagequality); - - Config::set('config', 'register_policy' , $register_policy); - Config::set('system', 'max_daily_registrations', $daily_registrations); - Config::set('system', 'account_abandon_days' , $abandon_days); - Config::set('config', 'register_text' , $register_text); - Config::set('system', 'allowed_sites' , $allowed_sites); - Config::set('system', 'allowed_email' , $allowed_email); - Config::set('system', 'forbidden_nicknames' , $forbidden_nicknames); - Config::set('system', 'no_oembed_rich_content' , $no_oembed_rich_content); - Config::set('system', 'allowed_oembed' , $allowed_oembed); - Config::set('system', 'block_public' , $block_public); - Config::set('system', 'publish_all' , $force_publish); - Config::set('system', 'newuser_private' , $newuser_private); - Config::set('system', 'enotify_no_content' , $enotify_no_content); - Config::set('system', 'disable_embedded' , $disable_embedded); - Config::set('system', 'allow_users_remote_self', $allow_users_remote_self); - Config::set('system', 'explicit_content' , $explicit_content); - Config::set('system', 'check_new_version_url' , $check_new_version_url); - - Config::set('system', 'block_extended_register', $no_multi_reg); - Config::set('system', 'no_openid' , $no_openid); - Config::set('system', 'no_regfullname' , $no_regfullname); - Config::set('system', 'community_page_style' , $community_page_style); - Config::set('system', 'max_author_posts_community_page', $max_author_posts_community_page); - Config::set('system', 'verifyssl' , $verifyssl); - Config::set('system', 'proxyuser' , $proxyuser); - Config::set('system', 'proxy' , $proxy); - Config::set('system', 'curl_timeout' , $timeout); - Config::set('system', 'dfrn_only' , $dfrn_only); - Config::set('system', 'ostatus_disabled' , $ostatus_disabled); - Config::set('system', 'ostatus_full_threads' , $ostatus_full_threads); - Config::set('system', 'diaspora_enabled' , $diaspora_enabled); - - Config::set('config', 'private_addons' , $private_addons); - - Config::set('system', 'force_ssl' , $force_ssl); - Config::set('system', 'hide_help' , $hide_help); - - Config::set('system', 'dbclean' , $dbclean); - Config::set('system', 'dbclean-expire-days' , $dbclean_expire_days); - Config::set('system', 'dbclean_expire_conversation', $dbclean_expire_conv); - - if ($dbclean_unclaimed == 0) { - $dbclean_unclaimed = $dbclean_expire_days; - } - - Config::set('system', 'dbclean-expire-unclaimed', $dbclean_unclaimed); - - if ($itemcache != '') { - $itemcache = BasePath::getRealPath($itemcache); - } - - Config::set('system', 'itemcache', $itemcache); - Config::set('system', 'itemcache_duration', $itemcache_duration); - Config::set('system', 'max_comments', $max_comments); - - if ($temppath != '') { - $temppath = BasePath::getRealPath($temppath); - } - - Config::set('system', 'temppath', $temppath); - - Config::set('system', 'proxy_disabled' , $proxy_disabled); - Config::set('system', 'only_tag_search' , $only_tag_search); - - Config::set('system', 'worker_queues' , $worker_queues); - Config::set('system', 'worker_dont_fork' , $worker_dont_fork); - Config::set('system', 'worker_fastlane' , $worker_fastlane); - Config::set('system', 'frontend_worker' , $worker_frontend); - - Config::set('system', 'relay_directly' , $relay_directly); - Config::set('system', 'relay_server' , $relay_server); - Config::set('system', 'relay_subscribe' , $relay_subscribe); - Config::set('system', 'relay_scope' , $relay_scope); - Config::set('system', 'relay_server_tags', $relay_server_tags); - Config::set('system', 'relay_user_tags' , $relay_user_tags); - - Config::set('system', 'rino_encrypt' , $rino); - - info(L10n::t('Site settings updated.') . EOL); - - $a->internalRedirect('admin/site' . $active_panel); - return; // NOTREACHED -} - -/** - * @brief Generate Admin Site subpage - * - * This function generates the main configuration page of the admin panel. - * - * @param App $a - * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException - */ -function admin_page_site(App $a) -{ - /* Installed langs */ - $lang_choices = L10n::getAvailableLanguages(); - - if (strlen(Config::get('system', 'directory_submit_url')) && - !strlen(Config::get('system', 'directory'))) { - Config::set('system', 'directory', dirname(Config::get('system', 'directory_submit_url'))); - Config::delete('system', 'directory_submit_url'); - } - - /* Installed themes */ - $theme_choices = []; - $theme_choices_mobile = []; - $theme_choices_mobile["---"] = L10n::t("No special theme for mobile devices"); - $files = glob('view/theme/*'); - if (is_array($files)) { - $allowed_theme_list = Config::get('system', 'allowed_themes'); - - foreach ($files as $file) { - if (intval(file_exists($file . '/unsupported'))) { - continue; - } - - $f = basename($file); - - // Only show allowed themes here - if (($allowed_theme_list != '') && !strstr($allowed_theme_list, $f)) { - continue; - } - - $theme_name = ((file_exists($file . '/experimental')) ? sprintf("%s - \x28Experimental\x29", $f) : $f); - - if (file_exists($file . '/mobile')) { - $theme_choices_mobile[$f] = $theme_name; - } else { - $theme_choices[$f] = $theme_name; - } - } - } - - /* Community page style */ - $community_page_style_choices = [ - CP_NO_INTERNAL_COMMUNITY => L10n::t("No community page for local users"), - CP_NO_COMMUNITY_PAGE => L10n::t("No community page"), - CP_USERS_ON_SERVER => L10n::t("Public postings from users of this site"), - CP_GLOBAL_COMMUNITY => L10n::t("Public postings from the federated network"), - CP_USERS_AND_GLOBAL => L10n::t("Public postings from local users and the federated network") - ]; - - $poco_discovery_choices = [ - PortableContact::DISABLED => L10n::t("Disabled"), - PortableContact::USERS => L10n::t("Users"), - PortableContact::USERS_GCONTACTS => L10n::t("Users, Global Contacts"), - PortableContact::USERS_GCONTACTS_FALLBACK => L10n::t("Users, Global Contacts/fallback"), - ]; - - $poco_discovery_since_choices = [ - "30" => L10n::t("One month"), - "91" => L10n::t("Three months"), - "182" => L10n::t("Half a year"), - "365" => L10n::t("One year"), - ]; - - /* get user names to make the install a personal install of X */ - $user_names = []; - $user_names['---'] = L10n::t('Multi user instance'); - $users = q("SELECT `username`, `nickname` FROM `user`"); - - foreach ($users as $user) { - $user_names[$user['nickname']] = $user['username']; - } - - /* Banner */ - $banner = Config::get('system', 'banner'); - - if ($banner == false) { - $banner = 'logoFriendica'; - } - - $additional_info = Config::get('config', 'info'); - - // Automatically create temporary paths - get_temppath(); - get_itemcachepath(); - - //echo "
      "; var_dump($lang_choices); die("
      "); - - /* Register policy */ - $register_choices = [ - Module\Register::CLOSED => L10n::t("Closed"), - Module\Register::APPROVE => L10n::t("Requires approval"), - Module\Register::OPEN => L10n::t("Open") - ]; - - $ssl_choices = [ - BaseURL::SSL_POLICY_NONE => L10n::t("No SSL policy, links will track page SSL state"), - BaseURL::SSL_POLICY_FULL => L10n::t("Force all links to use SSL"), - BaseURL::SSL_POLICY_SELFSIGN => L10n::t("Self-signed certificate, use SSL for local links only \x28discouraged\x29") - ]; - - $check_git_version_choices = [ - "none" => L10n::t("Don't check"), - "master" => L10n::t("check the stable version"), - "develop" => L10n::t("check the development version") - ]; - - $diaspora_able = ($a->getURLPath() == ""); - - $optimize_max_tablesize = Config::get('system', 'optimize_max_tablesize', -1); - - if ($optimize_max_tablesize <= 0) { - $optimize_max_tablesize = -1; - } - - /* storage backend */ - $storage_backends = StorageManager::listBackends(); - /** - * @var $storage_current_backend \Friendica\Model\Storage\IStorage - */ - $storage_current_backend = StorageManager::getBackend(); - - $storage_backends_choices = []; - - // show legacy option only if it is the current backend: - // once changed can't be selected anymore - if ($storage_current_backend == '') { - $storage_backends_choices[''] = L10n::t('Database (legacy)'); - }; - - foreach ($storage_backends as $name => $class) { - $storage_backends_choices[$class] = $name; - } - unset($storage_backends); - - // build storage config form, - $storage_form_prefix=preg_replace('|[^a-zA-Z0-9]|' ,'', $storage_current_backend); - - $storage_form = []; - if (!is_null($storage_current_backend) && $storage_current_backend != "") { - foreach ($storage_current_backend::getOptions() as $name => $info) { - $type = $info[0]; - $info[0] = $storage_form_prefix . '_' . $name; - $info['type'] = $type; - $info['field'] = 'field_' . $type . '.tpl'; - $storage_form[$name] = $info; - } - } - - - $t = Renderer::getMarkupTemplate('admin/site.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Site'), - '$submit' => L10n::t('Save Settings'), - '$republish' => L10n::t('Republish users to directory'), - '$registration' => L10n::t('Registration'), - '$upload' => L10n::t('File upload'), - '$corporate' => L10n::t('Policies'), - '$advanced' => L10n::t('Advanced'), - '$portable_contacts' => L10n::t('Auto Discovered Contact Directory'), - '$performance' => L10n::t('Performance'), - '$worker_title' => L10n::t('Worker'), - '$relay_title' => L10n::t('Message Relay'), - '$relocate' => L10n::t('Relocate Instance'), - '$relocate_warning' => L10n::t('Warning! Advanced function. Could make this server unreachable.'), - '$baseurl' => System::baseUrl(true), - - // name, label, value, help string, extra data... - '$sitename' => ['sitename', L10n::t("Site name"), Config::get('config', 'sitename'), ''], - '$sender_email' => ['sender_email', L10n::t("Sender Email"), Config::get('config', 'sender_email'), L10n::t("The email address your server shall use to send notification emails from."), "", "", "email"], - '$banner' => ['banner', L10n::t("Banner/Logo"), $banner, ""], - '$shortcut_icon' => ['shortcut_icon', L10n::t("Shortcut icon"), Config::get('system', 'shortcut_icon'), L10n::t("Link to an icon that will be used for browsers.")], - '$touch_icon' => ['touch_icon', L10n::t("Touch icon"), Config::get('system', 'touch_icon'), L10n::t("Link to an icon that will be used for tablets and mobiles.")], - '$additional_info' => ['additional_info', L10n::t('Additional Info'), $additional_info, L10n::t('For public servers: you can add additional information here that will be listed at %s/servers.', get_server())], - '$language' => ['language', L10n::t("System language"), Config::get('system', 'language'), "", $lang_choices], - '$theme' => ['theme', L10n::t("System theme"), Config::get('system', 'theme'), L10n::t("Default system theme - may be over-ridden by user profiles - change theme settings"), $theme_choices], - '$theme_mobile' => ['theme_mobile', L10n::t("Mobile system theme"), Config::get('system', 'mobile-theme', '---'), L10n::t("Theme for mobile devices"), $theme_choices_mobile], - '$ssl_policy' => ['ssl_policy', L10n::t("SSL link policy"), (string)intval(Config::get('system', 'ssl_policy')), L10n::t("Determines whether generated links should be forced to use SSL"), $ssl_choices], - '$force_ssl' => ['force_ssl', L10n::t("Force SSL"), Config::get('system', 'force_ssl'), L10n::t("Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops.")], - '$hide_help' => ['hide_help', L10n::t("Hide help entry from navigation menu"), Config::get('system', 'hide_help'), L10n::t("Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly.")], - '$singleuser' => ['singleuser', L10n::t("Single user instance"), Config::get('system', 'singleuser', '---'), L10n::t("Make this instance multi-user or single-user for the named user"), $user_names], - - '$storagebackend' => ['storagebackend', L10n::t("File storage backend"), $storage_current_backend, L10n::t('The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure.'), $storage_backends_choices], - '$storageform' => $storage_form, - '$maximagesize' => ['maximagesize', L10n::t("Maximum image size"), Config::get('system', 'maximagesize'), L10n::t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")], - '$maximagelength' => ['maximagelength', L10n::t("Maximum image length"), Config::get('system', 'max_image_length'), L10n::t("Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.")], - '$jpegimagequality' => ['jpegimagequality', L10n::t("JPEG image quality"), Config::get('system', 'jpeg_quality'), L10n::t("Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality.")], - - '$register_policy' => ['register_policy', L10n::t("Register policy"), Config::get('config', 'register_policy'), "", $register_choices], - '$daily_registrations' => ['max_daily_registrations', L10n::t("Maximum Daily Registrations"), Config::get('system', 'max_daily_registrations'), L10n::t("If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect.")], - '$register_text' => ['register_text', L10n::t("Register text"), Config::get('config', 'register_text'), L10n::t("Will be displayed prominently on the registration page. You can use BBCode here.")], - '$forbidden_nicknames' => ['forbidden_nicknames', L10n::t('Forbidden Nicknames'), Config::get('system', 'forbidden_nicknames'), L10n::t('Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142.')], - '$abandon_days' => ['abandon_days', L10n::t('Accounts abandoned after x days'), Config::get('system', 'account_abandon_days'), L10n::t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')], - '$allowed_sites' => ['allowed_sites', L10n::t("Allowed friend domains"), Config::get('system', 'allowed_sites'), L10n::t("Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains")], - '$allowed_email' => ['allowed_email', L10n::t("Allowed email domains"), Config::get('system', 'allowed_email'), L10n::t("Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains")], - '$no_oembed_rich_content' => ['no_oembed_rich_content', L10n::t("No OEmbed rich content"), Config::get('system', 'no_oembed_rich_content'), L10n::t("Don't show the rich content \x28e.g. embedded PDF\x29, except from the domains listed below.")], - '$allowed_oembed' => ['allowed_oembed', L10n::t("Allowed OEmbed domains"), Config::get('system', 'allowed_oembed'), L10n::t("Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted.")], - '$block_public' => ['block_public', L10n::t("Block public"), Config::get('system', 'block_public'), L10n::t("Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.")], - '$force_publish' => ['publish_all', L10n::t("Force publish"), Config::get('system', 'publish_all'), L10n::t("Check to force all profiles on this site to be listed in the site directory.") . '' . L10n::t('Enabling this may violate privacy laws like the GDPR') . ''], - '$global_directory' => ['directory', L10n::t("Global directory URL"), Config::get('system', 'directory', 'https://dir.friendica.social'), L10n::t("URL to the global directory. If this is not set, the global directory is completely unavailable to the application.")], - '$newuser_private' => ['newuser_private', L10n::t("Private posts by default for new users"), Config::get('system', 'newuser_private'), L10n::t("Set default post permissions for all new members to the default privacy group rather than public.")], - '$enotify_no_content' => ['enotify_no_content', L10n::t("Don't include post content in email notifications"), Config::get('system', 'enotify_no_content'), L10n::t("Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.")], - '$private_addons' => ['private_addons', L10n::t("Disallow public access to addons listed in the apps menu."), Config::get('config', 'private_addons'), L10n::t("Checking this box will restrict addons listed in the apps menu to members only.")], - '$disable_embedded' => ['disable_embedded', L10n::t("Don't embed private images in posts"), Config::get('system', 'disable_embedded'), L10n::t("Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.")], - '$explicit_content' => ['explicit_content', L10n::t('Explicit Content'), Config::get('system', 'explicit_content', false), L10n::t('Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page.')], - '$allow_users_remote_self'=> ['allow_users_remote_self', L10n::t('Allow Users to set remote_self'), Config::get('system', 'allow_users_remote_self'), L10n::t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')], - '$no_multi_reg' => ['no_multi_reg', L10n::t("Block multiple registrations"), Config::get('system', 'block_extended_register'), L10n::t("Disallow users to register additional accounts for use as pages.")], - '$no_openid' => ['no_openid', L10n::t("Disable OpenID"), Config::get('system', 'no_openid'), L10n::t("Disable OpenID support for registration and logins.")], - '$no_regfullname' => ['no_regfullname', L10n::t("No Fullname check"), Config::get('system', 'no_regfullname'), L10n::t("Allow users to register without a space between the first name and the last name in their full name.")], - '$community_page_style' => ['community_page_style', L10n::t("Community pages for visitors"), Config::get('system', 'community_page_style'), L10n::t("Which community pages should be available for visitors. Local users always see both pages."), $community_page_style_choices], - '$max_author_posts_community_page' => ['max_author_posts_community_page', L10n::t("Posts per user on community page"), Config::get('system', 'max_author_posts_community_page'), L10n::t("The maximum number of posts per user on the community page. \x28Not valid for 'Global Community'\x29")], - '$ostatus_disabled' => ['ostatus_disabled', L10n::t("Disable OStatus support"), Config::get('system', 'ostatus_disabled'), L10n::t("Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.")], - '$ostatus_full_threads' => ['ostatus_full_threads', L10n::t("Only import OStatus/ActivityPub threads from our contacts"), Config::get('system', 'ostatus_full_threads'), L10n::t("Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system.")], - '$ostatus_not_able' => L10n::t("OStatus support can only be enabled if threading is enabled."), - '$diaspora_able' => $diaspora_able, - '$diaspora_not_able' => L10n::t("Diaspora support can't be enabled because Friendica was installed into a sub directory."), - '$diaspora_enabled' => ['diaspora_enabled', L10n::t("Enable Diaspora support"), Config::get('system', 'diaspora_enabled', $diaspora_able), L10n::t("Provide built-in Diaspora network compatibility.")], - '$dfrn_only' => ['dfrn_only', L10n::t('Only allow Friendica contacts'), Config::get('system', 'dfrn_only'), L10n::t("All contacts must use Friendica protocols. All other built-in communication protocols disabled.")], - '$verifyssl' => ['verifyssl', L10n::t("Verify SSL"), Config::get('system', 'verifyssl'), L10n::t("If you wish, you can turn on strict certificate checking. This will mean you cannot connect \x28at all\x29 to self-signed SSL sites.")], - '$proxyuser' => ['proxyuser', L10n::t("Proxy user"), Config::get('system', 'proxyuser'), ""], - '$proxy' => ['proxy', L10n::t("Proxy URL"), Config::get('system', 'proxy'), ""], - '$timeout' => ['timeout', L10n::t("Network timeout"), Config::get('system', 'curl_timeout', 60), L10n::t("Value is in seconds. Set to 0 for unlimited \x28not recommended\x29.")], - '$maxloadavg' => ['maxloadavg', L10n::t("Maximum Load Average"), Config::get('system', 'maxloadavg', 20), L10n::t("Maximum system load before delivery and poll processes are deferred - default %d.", 20)], - '$maxloadavg_frontend' => ['maxloadavg_frontend', L10n::t("Maximum Load Average \x28Frontend\x29"), Config::get('system', 'maxloadavg_frontend', 50), L10n::t("Maximum system load before the frontend quits service - default 50.")], - '$min_memory' => ['min_memory', L10n::t("Minimal Memory"), Config::get('system', 'min_memory', 0), L10n::t("Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 \x28deactivated\x29.")], - '$optimize_max_tablesize' => ['optimize_max_tablesize', L10n::t("Maximum table size for optimization"), $optimize_max_tablesize, L10n::t("Maximum table size \x28in MB\x29 for the automatic optimization. Enter -1 to disable it.")], - '$optimize_fragmentation' => ['optimize_fragmentation', L10n::t("Minimum level of fragmentation"), Config::get('system', 'optimize_fragmentation', 30), L10n::t("Minimum fragmenation level to start the automatic optimization - default value is 30%.")], - - '$poco_completion' => ['poco_completion', L10n::t("Periodical check of global contacts"), Config::get('system', 'poco_completion'), L10n::t("If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers.")], - '$poco_requery_days' => ['poco_requery_days', L10n::t("Days between requery"), Config::get('system', 'poco_requery_days'), L10n::t("Number of days after which a server is requeried for his contacts.")], - '$poco_discovery' => ['poco_discovery', L10n::t("Discover contacts from other servers"), (string)intval(Config::get('system', 'poco_discovery')), L10n::t("Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."), $poco_discovery_choices], - '$poco_discovery_since' => ['poco_discovery_since', L10n::t("Timeframe for fetching global contacts"), (string)intval(Config::get('system', 'poco_discovery_since')), L10n::t("When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."), $poco_discovery_since_choices], - '$poco_local_search' => ['poco_local_search', L10n::t("Search the local directory"), Config::get('system', 'poco_local_search'), L10n::t("Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated.")], - - '$nodeinfo' => ['nodeinfo', L10n::t("Publish server information"), Config::get('system', 'nodeinfo'), L10n::t("If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details.")], - - '$check_new_version_url' => ['check_new_version_url', L10n::t("Check upstream version"), Config::get('system', 'check_new_version_url'), L10n::t("Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."), $check_git_version_choices], - '$suppress_tags' => ['suppress_tags', L10n::t("Suppress Tags"), Config::get('system', 'suppress_tags'), L10n::t("Suppress showing a list of hashtags at the end of the posting.")], - '$dbclean' => ['dbclean', L10n::t("Clean database"), Config::get('system', 'dbclean', false), L10n::t("Remove old remote items, orphaned database records and old content from some other helper tables.")], - '$dbclean_expire_days' => ['dbclean_expire_days', L10n::t("Lifespan of remote items"), Config::get('system', 'dbclean-expire-days', 0), L10n::t("When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour.")], - '$dbclean_unclaimed' => ['dbclean_unclaimed', L10n::t("Lifespan of unclaimed items"), Config::get('system', 'dbclean-expire-unclaimed', 90), L10n::t("When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0.")], - '$dbclean_expire_conv' => ['dbclean_expire_conv', L10n::t("Lifespan of raw conversation data"), Config::get('system', 'dbclean_expire_conversation', 90), L10n::t("The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days.")], - '$itemcache' => ['itemcache', L10n::t("Path to item cache"), Config::get('system', 'itemcache'), L10n::t("The item caches buffers generated bbcode and external images.")], - '$itemcache_duration' => ['itemcache_duration', L10n::t("Cache duration in seconds"), Config::get('system', 'itemcache_duration'), L10n::t("How long should the cache files be hold? Default value is 86400 seconds \x28One day\x29. To disable the item cache, set the value to -1.")], - '$max_comments' => ['max_comments', L10n::t("Maximum numbers of comments per post"), Config::get('system', 'max_comments'), L10n::t("How much comments should be shown for each post? Default value is 100.")], - '$temppath' => ['temppath', L10n::t("Temp path"), Config::get('system', 'temppath'), L10n::t("If you have a restricted system where the webserver can't access the system temp path, enter another path here.")], - '$proxy_disabled' => ['proxy_disabled', L10n::t("Disable picture proxy"), Config::get('system', 'proxy_disabled'), L10n::t("The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth.")], - '$only_tag_search' => ['only_tag_search', L10n::t("Only search in tags"), Config::get('system', 'only_tag_search'), L10n::t("On large systems the text search can slow down the system extremely.")], - - '$relocate_url' => ['relocate_url', L10n::t("New base url"), System::baseUrl(), L10n::t("Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.")], - - '$rino' => ['rino', L10n::t("RINO Encryption"), intval(Config::get('system', 'rino_encrypt')), L10n::t("Encryption layer between nodes."), [0 => L10n::t("Disabled"), 1 => L10n::t("Enabled")]], - - '$worker_queues' => ['worker_queues', L10n::t("Maximum number of parallel workers"), Config::get('system', 'worker_queues'), L10n::t("On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.", 5, 20, 10)], - '$worker_dont_fork' => ['worker_dont_fork', L10n::t("Don't use 'proc_open' with the worker"), Config::get('system', 'worker_dont_fork'), L10n::t("Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab.")], - '$worker_fastlane' => ['worker_fastlane', L10n::t("Enable fastlane"), Config::get('system', 'worker_fastlane'), L10n::t("When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.")], - '$worker_frontend' => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t("When enabled the Worker process is triggered when backend access is performed \x28e.g. messages being delivered\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.", System::baseUrl())], - - '$relay_subscribe' => ['relay_subscribe', L10n::t("Subscribe to relay"), Config::get('system', 'relay_subscribe'), L10n::t("Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page.")], - '$relay_server' => ['relay_server', L10n::t("Relay server"), Config::get('system', 'relay_server', 'https://relay.diasp.org'), L10n::t("Address of the relay server where public posts should be send to. For example https://relay.diasp.org")], - '$relay_directly' => ['relay_directly', L10n::t("Direct relay transfer"), Config::get('system', 'relay_directly'), L10n::t("Enables the direct transfer to other servers without using the relay servers")], - '$relay_scope' => ['relay_scope', L10n::t("Relay scope"), Config::get('system', 'relay_scope'), L10n::t("Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."), ['' => L10n::t('Disabled'), 'all' => L10n::t('all'), 'tags' => L10n::t('tags')]], - '$relay_server_tags' => ['relay_server_tags', L10n::t("Server tags"), Config::get('system', 'relay_server_tags'), L10n::t("Comma separated list of tags for the 'tags' subscription.")], - '$relay_user_tags' => ['relay_user_tags', L10n::t("Allow user tags"), Config::get('system', 'relay_user_tags', true), L10n::t("If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'.")], - - '$form_security_token' => BaseModule::getFormSecurityToken("admin_site"), - '$relocate_button' => L10n::t('Start Relocation'), - ]); -} - /** * @brief Generates admin panel subpage for DB syncronization * diff --git a/src/App/Router.php b/src/App/Router.php index b78c58bc4..cd806e59e 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -132,6 +132,8 @@ class Router $collector->addRoute(['GET'] , '/queue[/deferred]' , Module\Admin\Queue::class); + $collector->addRoute(['GET', 'POST'], '/site' , Module\Admin\Site::class); + $collector->addRoute(['GET', 'POST'], '/themes' , Module\Admin\Themes\Index::class); $collector->addRoute(['GET', 'POST'], '/themes/{theme}' , Module\Admin\Themes\Details::class); $collector->addRoute(['GET', 'POST'], '/themes/{theme}/embed' , Module\Admin\Themes\Embed::class); diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php new file mode 100644 index 000000000..b6b6f5179 --- /dev/null +++ b/src/Module/Admin/Site.php @@ -0,0 +1,685 @@ +://")); + $a->internalRedirect('admin/site'); + } + + /* steps: + * replace all "baseurl" to "new_url" in config, profile, term, items and contacts + * send relocate for every local user + * */ + + $old_url = $a->getBaseURL(true); + + // Generate host names for relocation the addresses in the format user@address.tld + $new_host = str_replace("http://", "@", Strings::normaliseLink($new_url)); + $old_host = str_replace("http://", "@", Strings::normaliseLink($old_url)); + + function update_table(App $a, $table_name, $fields, $old_url, $new_url) + { + $dbold = DBA::escape($old_url); + $dbnew = DBA::escape($new_url); + + $upd = []; + foreach ($fields as $f) { + $upd[] = "`$f` = REPLACE(`$f`, '$dbold', '$dbnew')"; + } + + $upds = implode(", ", $upd); + + $r = DBA::e(sprintf("UPDATE %s SET %s;", $table_name, $upds)); + if (!DBA::isResult($r)) { + notice("Failed updating '$table_name': " . DBA::errorMessage()); + $a->internalRedirect('admin/site'); + } + } + + // update tables + // update profile links in the format "http://server.tld" + update_table($a, "profile", ['photo', 'thumb'], $old_url, $new_url); + update_table($a, "term", ['url'], $old_url, $new_url); + update_table($a, "contact", ['photo', 'thumb', 'micro', 'url', 'nurl', 'alias', 'request', 'notify', 'poll', 'confirm', 'poco', 'avatar'], $old_url, $new_url); + update_table($a, "gcontact", ['url', 'nurl', 'photo', 'server_url', 'notify', 'alias'], $old_url, $new_url); + update_table($a, "item", ['owner-link', 'author-link', 'body', 'plink', 'tag'], $old_url, $new_url); + + // update profile addresses in the format "user@server.tld" + update_table($a, "contact", ['addr'], $old_host, $new_host); + update_table($a, "gcontact", ['connect', 'addr'], $old_host, $new_host); + + // update config + Config::set('system', 'url', $new_url); + $a->setBaseURL($new_url); + + // send relocate + $usersStmt = DBA::select('user', ['uid'], ['account_removed' => false, 'account_expired' => false]); + while ($user = DBA::fetch($usersStmt)) { + Worker::add(PRIORITY_HIGH, 'Notifier', 'relocate', $user['uid']); + } + + info("Relocation started. Could take a while to complete."); + + $a->internalRedirect('admin/site'); + } + // end relocate + + $sitename = (!empty($_POST['sitename']) ? Strings::escapeTags(trim($_POST['sitename'])) : ''); + $sender_email = (!empty($_POST['sender_email']) ? Strings::escapeTags(trim($_POST['sender_email'])) : ''); + $banner = (!empty($_POST['banner']) ? trim($_POST['banner']) : false); + $shortcut_icon = (!empty($_POST['shortcut_icon']) ? Strings::escapeTags(trim($_POST['shortcut_icon'])) : ''); + $touch_icon = (!empty($_POST['touch_icon']) ? Strings::escapeTags(trim($_POST['touch_icon'])) : ''); + $additional_info = (!empty($_POST['additional_info']) ? trim($_POST['additional_info']) : ''); + $language = (!empty($_POST['language']) ? Strings::escapeTags(trim($_POST['language'])) : ''); + $theme = (!empty($_POST['theme']) ? Strings::escapeTags(trim($_POST['theme'])) : ''); + $theme_mobile = (!empty($_POST['theme_mobile']) ? Strings::escapeTags(trim($_POST['theme_mobile'])) : ''); + $maximagesize = (!empty($_POST['maximagesize']) ? intval(trim($_POST['maximagesize'])) : 0); + $maximagelength = (!empty($_POST['maximagelength']) ? intval(trim($_POST['maximagelength'])) : MAX_IMAGE_LENGTH); + $jpegimagequality = (!empty($_POST['jpegimagequality']) ? intval(trim($_POST['jpegimagequality'])) : JPEG_QUALITY); + + $register_policy = (!empty($_POST['register_policy']) ? intval(trim($_POST['register_policy'])) : 0); + $daily_registrations = (!empty($_POST['max_daily_registrations']) ? intval(trim($_POST['max_daily_registrations'])) : 0); + $abandon_days = (!empty($_POST['abandon_days']) ? intval(trim($_POST['abandon_days'])) : 0); + + $register_text = (!empty($_POST['register_text']) ? strip_tags(trim($_POST['register_text'])) : ''); + + $allowed_sites = (!empty($_POST['allowed_sites']) ? Strings::escapeTags(trim($_POST['allowed_sites'])) : ''); + $allowed_email = (!empty($_POST['allowed_email']) ? Strings::escapeTags(trim($_POST['allowed_email'])) : ''); + $forbidden_nicknames = (!empty($_POST['forbidden_nicknames']) ? strtolower(Strings::escapeTags(trim($_POST['forbidden_nicknames']))) : ''); + $no_oembed_rich_content = !empty($_POST['no_oembed_rich_content']); + $allowed_oembed = (!empty($_POST['allowed_oembed']) ? Strings::escapeTags(trim($_POST['allowed_oembed'])) : ''); + $block_public = !empty($_POST['block_public']); + $force_publish = !empty($_POST['publish_all']); + $global_directory = (!empty($_POST['directory']) ? Strings::escapeTags(trim($_POST['directory'])) : ''); + $newuser_private = !empty($_POST['newuser_private']); + $enotify_no_content = !empty($_POST['enotify_no_content']); + $private_addons = !empty($_POST['private_addons']); + $disable_embedded = !empty($_POST['disable_embedded']); + $allow_users_remote_self = !empty($_POST['allow_users_remote_self']); + $explicit_content = !empty($_POST['explicit_content']); + + $no_multi_reg = !empty($_POST['no_multi_reg']); + $no_openid = !empty($_POST['no_openid']); + $no_regfullname = !empty($_POST['no_regfullname']); + $community_page_style = (!empty($_POST['community_page_style']) ? intval(trim($_POST['community_page_style'])) : 0); + $max_author_posts_community_page = (!empty($_POST['max_author_posts_community_page']) ? intval(trim($_POST['max_author_posts_community_page'])) : 0); + + $verifyssl = !empty($_POST['verifyssl']); + $proxyuser = (!empty($_POST['proxyuser']) ? Strings::escapeTags(trim($_POST['proxyuser'])) : ''); + $proxy = (!empty($_POST['proxy']) ? Strings::escapeTags(trim($_POST['proxy'])) : ''); + $timeout = (!empty($_POST['timeout']) ? intval(trim($_POST['timeout'])) : 60); + $maxloadavg = (!empty($_POST['maxloadavg']) ? intval(trim($_POST['maxloadavg'])) : 20); + $maxloadavg_frontend = (!empty($_POST['maxloadavg_frontend']) ? intval(trim($_POST['maxloadavg_frontend'])) : 50); + $min_memory = (!empty($_POST['min_memory']) ? intval(trim($_POST['min_memory'])) : 0); + $optimize_max_tablesize = (!empty($_POST['optimize_max_tablesize']) ? intval(trim($_POST['optimize_max_tablesize'])) : 100); + $optimize_fragmentation = (!empty($_POST['optimize_fragmentation']) ? intval(trim($_POST['optimize_fragmentation'])) : 30); + $poco_completion = (!empty($_POST['poco_completion']) ? intval(trim($_POST['poco_completion'])) : false); + $poco_requery_days = (!empty($_POST['poco_requery_days']) ? intval(trim($_POST['poco_requery_days'])) : 7); + $poco_discovery = (!empty($_POST['poco_discovery']) ? intval(trim($_POST['poco_discovery'])) : PortableContact::DISABLED); + $poco_discovery_since = (!empty($_POST['poco_discovery_since']) ? intval(trim($_POST['poco_discovery_since'])) : 30); + $poco_local_search = !empty($_POST['poco_local_search']); + $nodeinfo = !empty($_POST['nodeinfo']); + $dfrn_only = !empty($_POST['dfrn_only']); + $ostatus_disabled = !empty($_POST['ostatus_disabled']); + $ostatus_full_threads = !empty($_POST['ostatus_full_threads']); + $diaspora_enabled = !empty($_POST['diaspora_enabled']); + $ssl_policy = (!empty($_POST['ssl_policy']) ? intval($_POST['ssl_policy']) : 0); + $force_ssl = !empty($_POST['force_ssl']); + $hide_help = !empty($_POST['hide_help']); + $dbclean = !empty($_POST['dbclean']); + $dbclean_expire_days = (!empty($_POST['dbclean_expire_days']) ? intval($_POST['dbclean_expire_days']) : 0); + $dbclean_unclaimed = (!empty($_POST['dbclean_unclaimed']) ? intval($_POST['dbclean_unclaimed']) : 0); + $dbclean_expire_conv = (!empty($_POST['dbclean_expire_conv']) ? intval($_POST['dbclean_expire_conv']) : 0); + $suppress_tags = !empty($_POST['suppress_tags']); + $itemcache = (!empty($_POST['itemcache']) ? Strings::escapeTags(trim($_POST['itemcache'])) : ''); + $itemcache_duration = (!empty($_POST['itemcache_duration']) ? intval($_POST['itemcache_duration']) : 0); + $max_comments = (!empty($_POST['max_comments']) ? intval($_POST['max_comments']) : 0); + $temppath = (!empty($_POST['temppath']) ? Strings::escapeTags(trim($_POST['temppath'])) : ''); + $singleuser = (!empty($_POST['singleuser']) ? Strings::escapeTags(trim($_POST['singleuser'])) : ''); + $proxy_disabled = !empty($_POST['proxy_disabled']); + $only_tag_search = !empty($_POST['only_tag_search']); + $rino = (!empty($_POST['rino']) ? intval($_POST['rino']) : 0); + $check_new_version_url = (!empty($_POST['check_new_version_url']) ? Strings::escapeTags(trim($_POST['check_new_version_url'])) : 'none'); + + $worker_queues = (!empty($_POST['worker_queues']) ? intval($_POST['worker_queues']) : 10); + $worker_dont_fork = !empty($_POST['worker_dont_fork']); + $worker_fastlane = !empty($_POST['worker_fastlane']); + $worker_frontend = !empty($_POST['worker_frontend']); + + $relay_directly = !empty($_POST['relay_directly']); + $relay_server = (!empty($_POST['relay_server']) ? Strings::escapeTags(trim($_POST['relay_server'])) : ''); + $relay_subscribe = !empty($_POST['relay_subscribe']); + $relay_scope = (!empty($_POST['relay_scope']) ? Strings::escapeTags(trim($_POST['relay_scope'])) : ''); + $relay_server_tags = (!empty($_POST['relay_server_tags']) ? Strings::escapeTags(trim($_POST['relay_server_tags'])) : ''); + $relay_user_tags = !empty($_POST['relay_user_tags']); + $active_panel = (!empty($_POST['active_panel']) ? "#" . Strings::escapeTags(trim($_POST['active_panel'])) : ''); + + /** + * @var $storagebackend \Friendica\Model\Storage\IStorage + */ + $storagebackend = Strings::escapeTags(trim(defaults($_POST, 'storagebackend', ''))); + + // save storage backend form + if (!is_null($storagebackend) && $storagebackend != "") { + if (StorageManager::setBackend($storagebackend)) { + $storage_opts = $storagebackend::getOptions(); + $storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|', '', $storagebackend); + $storage_opts_data = []; + foreach ($storage_opts as $name => $info) { + $fieldname = $storage_form_prefix . '_' . $name; + switch ($info[0]) { // type + case 'checkbox': + case 'yesno': + $value = !empty($_POST[$fieldname]); + break; + default: + $value = defaults($_POST, $fieldname, ''); + } + $storage_opts_data[$name] = $value; + } + unset($name); + unset($info); + + $storage_form_errors = $storagebackend::saveOptions($storage_opts_data); + if (count($storage_form_errors)) { + foreach ($storage_form_errors as $name => $err) { + notice('Storage backend, ' . $storage_opts[$name][1] . ': ' . $err); + } + $a->internalRedirect('admin/site' . $active_panel); + } + } else { + info(L10n::t('Invalid storage backend setting value.')); + } + } + + // Has the directory url changed? If yes, then resubmit the existing profiles there + if ($global_directory != Config::get('system', 'directory') && ($global_directory != '')) { + Config::set('system', 'directory', $global_directory); + Worker::add(PRIORITY_LOW, 'Directory'); + } + + if ($a->getURLPath() != "") { + $diaspora_enabled = false; + } + if ($ssl_policy != intval(Config::get('system', 'ssl_policy'))) { + if ($ssl_policy == BaseURL::SSL_POLICY_FULL) { + DBA::e("UPDATE `contact` SET + `url` = REPLACE(`url` , 'http:' , 'https:'), + `photo` = REPLACE(`photo` , 'http:' , 'https:'), + `thumb` = REPLACE(`thumb` , 'http:' , 'https:'), + `micro` = REPLACE(`micro` , 'http:' , 'https:'), + `request` = REPLACE(`request`, 'http:' , 'https:'), + `notify` = REPLACE(`notify` , 'http:' , 'https:'), + `poll` = REPLACE(`poll` , 'http:' , 'https:'), + `confirm` = REPLACE(`confirm`, 'http:' , 'https:'), + `poco` = REPLACE(`poco` , 'http:' , 'https:') + WHERE `self` = 1" + ); + DBA::e("UPDATE `profile` SET + `photo` = REPLACE(`photo` , 'http:' , 'https:'), + `thumb` = REPLACE(`thumb` , 'http:' , 'https:') + WHERE 1 " + ); + } elseif ($ssl_policy == BaseURL::SSL_POLICY_SELFSIGN) { + DBA::e("UPDATE `contact` SET + `url` = REPLACE(`url` , 'https:' , 'http:'), + `photo` = REPLACE(`photo` , 'https:' , 'http:'), + `thumb` = REPLACE(`thumb` , 'https:' , 'http:'), + `micro` = REPLACE(`micro` , 'https:' , 'http:'), + `request` = REPLACE(`request`, 'https:' , 'http:'), + `notify` = REPLACE(`notify` , 'https:' , 'http:'), + `poll` = REPLACE(`poll` , 'https:' , 'http:'), + `confirm` = REPLACE(`confirm`, 'https:' , 'http:'), + `poco` = REPLACE(`poco` , 'https:' , 'http:') + WHERE `self` = 1" + ); + DBA::e("UPDATE `profile` SET + `photo` = REPLACE(`photo` , 'https:' , 'http:'), + `thumb` = REPLACE(`thumb` , 'https:' , 'http:') + WHERE 1 " + ); + } + } + Config::set('system', 'ssl_policy' , $ssl_policy); + Config::set('system', 'maxloadavg' , $maxloadavg); + Config::set('system', 'maxloadavg_frontend' , $maxloadavg_frontend); + Config::set('system', 'min_memory' , $min_memory); + Config::set('system', 'optimize_max_tablesize', $optimize_max_tablesize); + Config::set('system', 'optimize_fragmentation', $optimize_fragmentation); + Config::set('system', 'poco_completion' , $poco_completion); + Config::set('system', 'poco_requery_days' , $poco_requery_days); + Config::set('system', 'poco_discovery' , $poco_discovery); + Config::set('system', 'poco_discovery_since' , $poco_discovery_since); + Config::set('system', 'poco_local_search' , $poco_local_search); + Config::set('system', 'nodeinfo' , $nodeinfo); + Config::set('config', 'sitename' , $sitename); + Config::set('config', 'sender_email' , $sender_email); + Config::set('system', 'suppress_tags' , $suppress_tags); + Config::set('system', 'shortcut_icon' , $shortcut_icon); + Config::set('system', 'touch_icon' , $touch_icon); + + if ($banner == "") { + Config::delete('system', 'banner'); + } else { + Config::set('system', 'banner', $banner); + } + + if (empty($additional_info)) { + Config::delete('config', 'info'); + } else { + Config::set('config', 'info', $additional_info); + } + Config::set('system', 'language', $language); + Config::set('system', 'theme', $theme); + Theme::install($theme); + + if ($theme_mobile == '---') { + Config::delete('system', 'mobile-theme'); + } else { + Config::set('system', 'mobile-theme', $theme_mobile); + } + if ($singleuser == '---') { + Config::delete('system', 'singleuser'); + } else { + Config::set('system', 'singleuser', $singleuser); + } + Config::set('system', 'maximagesize' , $maximagesize); + Config::set('system', 'max_image_length' , $maximagelength); + Config::set('system', 'jpeg_quality' , $jpegimagequality); + + Config::set('config', 'register_policy' , $register_policy); + Config::set('system', 'max_daily_registrations', $daily_registrations); + Config::set('system', 'account_abandon_days' , $abandon_days); + Config::set('config', 'register_text' , $register_text); + Config::set('system', 'allowed_sites' , $allowed_sites); + Config::set('system', 'allowed_email' , $allowed_email); + Config::set('system', 'forbidden_nicknames' , $forbidden_nicknames); + Config::set('system', 'no_oembed_rich_content' , $no_oembed_rich_content); + Config::set('system', 'allowed_oembed' , $allowed_oembed); + Config::set('system', 'block_public' , $block_public); + Config::set('system', 'publish_all' , $force_publish); + Config::set('system', 'newuser_private' , $newuser_private); + Config::set('system', 'enotify_no_content' , $enotify_no_content); + Config::set('system', 'disable_embedded' , $disable_embedded); + Config::set('system', 'allow_users_remote_self', $allow_users_remote_self); + Config::set('system', 'explicit_content' , $explicit_content); + Config::set('system', 'check_new_version_url' , $check_new_version_url); + + Config::set('system', 'block_extended_register', $no_multi_reg); + Config::set('system', 'no_openid' , $no_openid); + Config::set('system', 'no_regfullname' , $no_regfullname); + Config::set('system', 'community_page_style' , $community_page_style); + Config::set('system', 'max_author_posts_community_page', $max_author_posts_community_page); + Config::set('system', 'verifyssl' , $verifyssl); + Config::set('system', 'proxyuser' , $proxyuser); + Config::set('system', 'proxy' , $proxy); + Config::set('system', 'curl_timeout' , $timeout); + Config::set('system', 'dfrn_only' , $dfrn_only); + Config::set('system', 'ostatus_disabled' , $ostatus_disabled); + Config::set('system', 'ostatus_full_threads' , $ostatus_full_threads); + Config::set('system', 'diaspora_enabled' , $diaspora_enabled); + + Config::set('config', 'private_addons' , $private_addons); + + Config::set('system', 'force_ssl' , $force_ssl); + Config::set('system', 'hide_help' , $hide_help); + + Config::set('system', 'dbclean' , $dbclean); + Config::set('system', 'dbclean-expire-days' , $dbclean_expire_days); + Config::set('system', 'dbclean_expire_conversation', $dbclean_expire_conv); + + if ($dbclean_unclaimed == 0) { + $dbclean_unclaimed = $dbclean_expire_days; + } + + Config::set('system', 'dbclean-expire-unclaimed', $dbclean_unclaimed); + + if ($itemcache != '') { + $itemcache = BasePath::getRealPath($itemcache); + } + + Config::set('system', 'itemcache', $itemcache); + Config::set('system', 'itemcache_duration', $itemcache_duration); + Config::set('system', 'max_comments', $max_comments); + + if ($temppath != '') { + $temppath = BasePath::getRealPath($temppath); + } + + Config::set('system', 'temppath', $temppath); + + Config::set('system', 'proxy_disabled' , $proxy_disabled); + Config::set('system', 'only_tag_search' , $only_tag_search); + + Config::set('system', 'worker_queues' , $worker_queues); + Config::set('system', 'worker_dont_fork' , $worker_dont_fork); + Config::set('system', 'worker_fastlane' , $worker_fastlane); + Config::set('system', 'frontend_worker' , $worker_frontend); + + Config::set('system', 'relay_directly' , $relay_directly); + Config::set('system', 'relay_server' , $relay_server); + Config::set('system', 'relay_subscribe' , $relay_subscribe); + Config::set('system', 'relay_scope' , $relay_scope); + Config::set('system', 'relay_server_tags', $relay_server_tags); + Config::set('system', 'relay_user_tags' , $relay_user_tags); + + Config::set('system', 'rino_encrypt' , $rino); + + info(L10n::t('Site settings updated.') . EOL); + + $a->internalRedirect('admin/site' . $active_panel); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + /* Installed langs */ + $lang_choices = L10n::getAvailableLanguages(); + + if (strlen(Config::get('system', 'directory_submit_url')) && + !strlen(Config::get('system', 'directory'))) { + Config::set('system', 'directory', dirname(Config::get('system', 'directory_submit_url'))); + Config::delete('system', 'directory_submit_url'); + } + + /* Installed themes */ + $theme_choices = []; + $theme_choices_mobile = []; + $theme_choices_mobile['---'] = L10n::t('No special theme for mobile devices'); + $files = glob('view/theme/*'); + if (is_array($files)) { + $allowed_theme_list = Config::get('system', 'allowed_themes'); + + foreach ($files as $file) { + if (intval(file_exists($file . '/unsupported'))) { + continue; + } + + $f = basename($file); + + // Only show allowed themes here + if (($allowed_theme_list != '') && !strstr($allowed_theme_list, $f)) { + continue; + } + + $theme_name = ((file_exists($file . '/experimental')) ? L10n::t('%s - (Experimental)', $f) : $f); + + if (file_exists($file . '/mobile')) { + $theme_choices_mobile[$f] = $theme_name; + } else { + $theme_choices[$f] = $theme_name; + } + } + } + + /* Community page style */ + $community_page_style_choices = [ + CP_NO_INTERNAL_COMMUNITY => L10n::t('No community page for local users'), + CP_NO_COMMUNITY_PAGE => L10n::t('No community page'), + CP_USERS_ON_SERVER => L10n::t('Public postings from users of this site'), + CP_GLOBAL_COMMUNITY => L10n::t('Public postings from the federated network'), + CP_USERS_AND_GLOBAL => L10n::t('Public postings from local users and the federated network') + ]; + + $poco_discovery_choices = [ + PortableContact::DISABLED => L10n::t('Disabled'), + PortableContact::USERS => L10n::t('Users'), + PortableContact::USERS_GCONTACTS => L10n::t('Users, Global Contacts'), + PortableContact::USERS_GCONTACTS_FALLBACK => L10n::t('Users, Global Contacts/fallback'), + ]; + + $poco_discovery_since_choices = [ + '30' => L10n::t('One month'), + '91' => L10n::t('Three months'), + '182' => L10n::t('Half a year'), + '365' => L10n::t('One year'), + ]; + + /* get user names to make the install a personal install of X */ + $user_names = []; + $user_names['---'] = L10n::t('Multi user instance'); + + $usersStmt = DBA::select('user', ['username', 'nickname'], ['account_removed' => 0, 'account_expired' => 0]); + foreach (DBA::toArray($usersStmt) as $user) { + $user_names[$user['nickname']] = $user['username']; + } + + /* Banner */ + $banner = Config::get('system', 'banner'); + + if ($banner == false) { + $banner = 'logoFriendica'; + } + + $additional_info = Config::get('config', 'info'); + + // Automatically create temporary paths + get_temppath(); + get_itemcachepath(); + + /* Register policy */ + $register_choices = [ + Register::CLOSED => L10n::t('Closed'), + Register::APPROVE => L10n::t('Requires approval'), + Register::OPEN => L10n::t('Open') + ]; + + $ssl_choices = [ + BaseURL::SSL_POLICY_NONE => L10n::t('No SSL policy, links will track page SSL state'), + BaseURL::SSL_POLICY_FULL => L10n::t('Force all links to use SSL'), + BaseURL::SSL_POLICY_SELFSIGN => L10n::t('Self-signed certificate, use SSL for local links only (discouraged)') + ]; + + $check_git_version_choices = [ + 'none' => L10n::t('Don\'t check'), + 'master' => L10n::t('check the stable version'), + 'develop' => L10n::t('check the development version') + ]; + + $diaspora_able = ($a->getURLPath() == ''); + + $optimize_max_tablesize = Config::get('system', 'optimize_max_tablesize', -1); + + if ($optimize_max_tablesize <= 0) { + $optimize_max_tablesize = -1; + } + + $storage_backends = StorageManager::listBackends(); + /** @var $current_storage_backend \Friendica\Model\Storage\IStorage */ + $current_storage_backend = StorageManager::getBackend(); + + $available_storage_backends = []; + + // show legacy option only if it is the current backend: + // once changed can't be selected anymore + if ($current_storage_backend == '') { + $available_storage_backends[''] = L10n::t('Database (legacy)'); + } + + foreach ($storage_backends as $name => $class) { + $available_storage_backends[$class] = $name; + } + unset($storage_backends); + + // build storage config form, + $storage_form_prefix = preg_replace('|[^a-zA-Z0-9]|' ,'', $current_storage_backend); + + $storage_form = []; + if (!is_null($current_storage_backend) && $current_storage_backend != '') { + foreach ($current_storage_backend::getOptions() as $name => $info) { + $type = $info[0]; + $info[0] = $storage_form_prefix . '_' . $name; + $info['type'] = $type; + $info['field'] = 'field_' . $type . '.tpl'; + $storage_form[$name] = $info; + } + } + + $t = Renderer::getMarkupTemplate('admin/site.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Site'), + '$submit' => L10n::t('Save Settings'), + '$republish' => L10n::t('Republish users to directory'), + '$registration' => L10n::t('Registration'), + '$upload' => L10n::t('File upload'), + '$corporate' => L10n::t('Policies'), + '$advanced' => L10n::t('Advanced'), + '$portable_contacts' => L10n::t('Auto Discovered Contact Directory'), + '$performance' => L10n::t('Performance'), + '$worker_title' => L10n::t('Worker'), + '$relay_title' => L10n::t('Message Relay'), + '$relocate' => L10n::t('Relocate Instance'), + '$relocate_warning' => L10n::t('Warning! Advanced function. Could make this server unreachable.'), + '$baseurl' => System::baseUrl(true), + + // name, label, value, help string, extra data... + '$sitename' => ['sitename', L10n::t('Site name'), Config::get('config', 'sitename'), ''], + '$sender_email' => ['sender_email', L10n::t('Sender Email'), Config::get('config', 'sender_email'), L10n::t('The email address your server shall use to send notification emails from.'), '', '', 'email'], + '$banner' => ['banner', L10n::t('Banner/Logo'), $banner, ''], + '$shortcut_icon' => ['shortcut_icon', L10n::t('Shortcut icon'), Config::get('system', 'shortcut_icon'), L10n::t('Link to an icon that will be used for browsers.')], + '$touch_icon' => ['touch_icon', L10n::t('Touch icon'), Config::get('system', 'touch_icon'), L10n::t('Link to an icon that will be used for tablets and mobiles.')], + '$additional_info' => ['additional_info', L10n::t('Additional Info'), $additional_info, L10n::t('For public servers: you can add additional information here that will be listed at %s/servers.', get_server())], + '$language' => ['language', L10n::t('System language'), Config::get('system', 'language'), '', $lang_choices], + '$theme' => ['theme', L10n::t('System theme'), Config::get('system', 'theme'), L10n::t('Default system theme - may be over-ridden by user profiles - Change default theme settings'), $theme_choices], + '$theme_mobile' => ['theme_mobile', L10n::t('Mobile system theme'), Config::get('system', 'mobile-theme', '---'), L10n::t('Theme for mobile devices'), $theme_choices_mobile], + '$ssl_policy' => ['ssl_policy', L10n::t('SSL link policy'), (string)intval(Config::get('system', 'ssl_policy')), L10n::t('Determines whether generated links should be forced to use SSL'), $ssl_choices], + '$force_ssl' => ['force_ssl', L10n::t('Force SSL'), Config::get('system', 'force_ssl'), L10n::t('Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops.')], + '$hide_help' => ['hide_help', L10n::t('Hide help entry from navigation menu'), Config::get('system', 'hide_help'), L10n::t('Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly.')], + '$singleuser' => ['singleuser', L10n::t('Single user instance'), Config::get('system', 'singleuser', '---'), L10n::t('Make this instance multi-user or single-user for the named user'), $user_names], + + '$storagebackend' => ['storagebackend', L10n::t('File storage backend'), $current_storage_backend, L10n::t('The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure.'), $available_storage_backends], + '$storageform' => $storage_form, + '$maximagesize' => ['maximagesize', L10n::t('Maximum image size'), Config::get('system', 'maximagesize'), L10n::t('Maximum size in bytes of uploaded images. Default is 0, which means no limits.')], + '$maximagelength' => ['maximagelength', L10n::t('Maximum image length'), Config::get('system', 'max_image_length'), L10n::t('Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits.')], + '$jpegimagequality' => ['jpegimagequality', L10n::t('JPEG image quality'), Config::get('system', 'jpeg_quality'), L10n::t('Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality.')], + + '$register_policy' => ['register_policy', L10n::t('Register policy'), Config::get('config', 'register_policy'), '', $register_choices], + '$daily_registrations' => ['max_daily_registrations', L10n::t('Maximum Daily Registrations'), Config::get('system', 'max_daily_registrations'), L10n::t('If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect.')], + '$register_text' => ['register_text', L10n::t('Register text'), Config::get('config', 'register_text'), L10n::t('Will be displayed prominently on the registration page. You can use BBCode here.')], + '$forbidden_nicknames' => ['forbidden_nicknames', L10n::t('Forbidden Nicknames'), Config::get('system', 'forbidden_nicknames'), L10n::t('Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142.')], + '$abandon_days' => ['abandon_days', L10n::t('Accounts abandoned after x days'), Config::get('system', 'account_abandon_days'), L10n::t('Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit.')], + '$allowed_sites' => ['allowed_sites', L10n::t('Allowed friend domains'), Config::get('system', 'allowed_sites'), L10n::t('Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains')], + '$allowed_email' => ['allowed_email', L10n::t('Allowed email domains'), Config::get('system', 'allowed_email'), L10n::t('Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains')], + '$no_oembed_rich_content' => ['no_oembed_rich_content', L10n::t('No OEmbed rich content'), Config::get('system', 'no_oembed_rich_content'), L10n::t('Don\'t show the rich content (e.g. embedded PDF), except from the domains listed below.')], + '$allowed_oembed' => ['allowed_oembed', L10n::t('Allowed OEmbed domains'), Config::get('system', 'allowed_oembed'), L10n::t('Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted.')], + '$block_public' => ['block_public', L10n::t('Block public'), Config::get('system', 'block_public'), L10n::t('Check to block public access to all otherwise public personal pages on this site unless you are currently logged in.')], + '$force_publish' => ['publish_all', L10n::t('Force publish'), Config::get('system', 'publish_all'), L10n::t('Check to force all profiles on this site to be listed in the site directory.') . '' . L10n::t('Enabling this may violate privacy laws like the GDPR') . ''], + '$global_directory' => ['directory', L10n::t('Global directory URL'), Config::get('system', 'directory', 'https://dir.friendica.social'), L10n::t('URL to the global directory. If this is not set, the global directory is completely unavailable to the application.')], + '$newuser_private' => ['newuser_private', L10n::t('Private posts by default for new users'), Config::get('system', 'newuser_private'), L10n::t('Set default post permissions for all new members to the default privacy group rather than public.')], + '$enotify_no_content' => ['enotify_no_content', L10n::t('Don\'t include post content in email notifications'), Config::get('system', 'enotify_no_content'), L10n::t('Don\'t include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure.')], + '$private_addons' => ['private_addons', L10n::t('Disallow public access to addons listed in the apps menu.'), Config::get('config', 'private_addons'), L10n::t('Checking this box will restrict addons listed in the apps menu to members only.')], + '$disable_embedded' => ['disable_embedded', L10n::t('Don\'t embed private images in posts'), Config::get('system', 'disable_embedded'), L10n::t('Don\'t replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while.')], + '$explicit_content' => ['explicit_content', L10n::t('Explicit Content'), Config::get('system', 'explicit_content', false), L10n::t('Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page.')], + '$allow_users_remote_self'=> ['allow_users_remote_self', L10n::t('Allow Users to set remote_self'), Config::get('system', 'allow_users_remote_self'), L10n::t('With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream.')], + '$no_multi_reg' => ['no_multi_reg', L10n::t('Block multiple registrations'), Config::get('system', 'block_extended_register'), L10n::t('Disallow users to register additional accounts for use as pages.')], + '$no_openid' => ['no_openid', L10n::t('Disable OpenID'), Config::get('system', 'no_openid'), L10n::t('Disable OpenID support for registration and logins.')], + '$no_regfullname' => ['no_regfullname', L10n::t('No Fullname check'), Config::get('system', 'no_regfullname'), L10n::t('Allow users to register without a space between the first name and the last name in their full name.')], + '$community_page_style' => ['community_page_style', L10n::t('Community pages for visitors'), Config::get('system', 'community_page_style'), L10n::t('Which community pages should be available for visitors. Local users always see both pages.'), $community_page_style_choices], + '$max_author_posts_community_page' => ['max_author_posts_community_page', L10n::t('Posts per user on community page'), Config::get('system', 'max_author_posts_community_page'), L10n::t('The maximum number of posts per user on the community page. (Not valid for "Global Community")')], + '$ostatus_disabled' => ['ostatus_disabled', L10n::t('Disable OStatus support'), Config::get('system', 'ostatus_disabled'), L10n::t('Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed.')], + '$ostatus_full_threads' => ['ostatus_full_threads', L10n::t('Only import OStatus/ActivityPub threads from our contacts'), Config::get('system', 'ostatus_full_threads'), L10n::t('Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system.')], + '$ostatus_not_able' => L10n::t('OStatus support can only be enabled if threading is enabled.'), + '$diaspora_able' => $diaspora_able, + '$diaspora_not_able' => L10n::t('Diaspora support can\'t be enabled because Friendica was installed into a sub directory.'), + '$diaspora_enabled' => ['diaspora_enabled', L10n::t('Enable Diaspora support'), Config::get('system', 'diaspora_enabled', $diaspora_able), L10n::t('Provide built-in Diaspora network compatibility.')], + '$dfrn_only' => ['dfrn_only', L10n::t('Only allow Friendica contacts'), Config::get('system', 'dfrn_only'), L10n::t('All contacts must use Friendica protocols. All other built-in communication protocols disabled.')], + '$verifyssl' => ['verifyssl', L10n::t('Verify SSL'), Config::get('system', 'verifyssl'), L10n::t('If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites.')], + '$proxyuser' => ['proxyuser', L10n::t('Proxy user'), Config::get('system', 'proxyuser'), ''], + '$proxy' => ['proxy', L10n::t('Proxy URL'), Config::get('system', 'proxy'), ''], + '$timeout' => ['timeout', L10n::t('Network timeout'), Config::get('system', 'curl_timeout', 60), L10n::t('Value is in seconds. Set to 0 for unlimited (not recommended).')], + '$maxloadavg' => ['maxloadavg', L10n::t('Maximum Load Average'), Config::get('system', 'maxloadavg', 20), L10n::t('Maximum system load before delivery and poll processes are deferred - default %d.', 20)], + '$maxloadavg_frontend' => ['maxloadavg_frontend', L10n::t('Maximum Load Average (Frontend)'), Config::get('system', 'maxloadavg_frontend', 50), L10n::t('Maximum system load before the frontend quits service - default 50.')], + '$min_memory' => ['min_memory', L10n::t('Minimal Memory'), Config::get('system', 'min_memory', 0), L10n::t('Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated).')], + '$optimize_max_tablesize' => ['optimize_max_tablesize', L10n::t('Maximum table size for optimization'), $optimize_max_tablesize, L10n::t('Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it.')], + '$optimize_fragmentation' => ['optimize_fragmentation', L10n::t('Minimum level of fragmentation'), Config::get('system', 'optimize_fragmentation', 30), L10n::t('Minimum fragmenation level to start the automatic optimization - default value is 30%.')], + + '$poco_completion' => ['poco_completion', L10n::t('Periodical check of global contacts'), Config::get('system', 'poco_completion'), L10n::t('If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers.')], + '$poco_requery_days' => ['poco_requery_days', L10n::t('Days between requery'), Config::get('system', 'poco_requery_days'), L10n::t('Number of days after which a server is requeried for his contacts.')], + '$poco_discovery' => ['poco_discovery', L10n::t('Discover contacts from other servers'), (string)intval(Config::get('system', 'poco_discovery')), L10n::t('Periodically query other servers for contacts. You can choose between "Users": the users on the remote system, "Global Contacts": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren\'t available. The fallback increases the server load, so the recommended setting is "Users, Global Contacts".'), $poco_discovery_choices], + '$poco_discovery_since' => ['poco_discovery_since', L10n::t('Timeframe for fetching global contacts'), (string)intval(Config::get('system', 'poco_discovery_since')), L10n::t('When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers.'), $poco_discovery_since_choices], + '$poco_local_search' => ['poco_local_search', L10n::t('Search the local directory'), Config::get('system', 'poco_local_search'), L10n::t('Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated.')], + + '$nodeinfo' => ['nodeinfo', L10n::t('Publish server information'), Config::get('system', 'nodeinfo'), L10n::t('If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details.')], + + '$check_new_version_url' => ['check_new_version_url', L10n::t('Check upstream version'), Config::get('system', 'check_new_version_url'), L10n::t('Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview.'), $check_git_version_choices], + '$suppress_tags' => ['suppress_tags', L10n::t('Suppress Tags'), Config::get('system', 'suppress_tags'), L10n::t('Suppress showing a list of hashtags at the end of the posting.')], + '$dbclean' => ['dbclean', L10n::t('Clean database'), Config::get('system', 'dbclean', false), L10n::t('Remove old remote items, orphaned database records and old content from some other helper tables.')], + '$dbclean_expire_days' => ['dbclean_expire_days', L10n::t('Lifespan of remote items'), Config::get('system', 'dbclean-expire-days', 0), L10n::t('When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour.')], + '$dbclean_unclaimed' => ['dbclean_unclaimed', L10n::t('Lifespan of unclaimed items'), Config::get('system', 'dbclean-expire-unclaimed', 90), L10n::t('When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0.')], + '$dbclean_expire_conv' => ['dbclean_expire_conv', L10n::t('Lifespan of raw conversation data'), Config::get('system', 'dbclean_expire_conversation', 90), L10n::t('The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days.')], + '$itemcache' => ['itemcache', L10n::t('Path to item cache'), Config::get('system', 'itemcache'), L10n::t('The item caches buffers generated bbcode and external images.')], + '$itemcache_duration' => ['itemcache_duration', L10n::t('Cache duration in seconds'), Config::get('system', 'itemcache_duration'), L10n::t('How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1.')], + '$max_comments' => ['max_comments', L10n::t('Maximum numbers of comments per post'), Config::get('system', 'max_comments'), L10n::t('How much comments should be shown for each post? Default value is 100.')], + '$temppath' => ['temppath', L10n::t('Temp path'), Config::get('system', 'temppath'), L10n::t('If you have a restricted system where the webserver can\'t access the system temp path, enter another path here.')], + '$proxy_disabled' => ['proxy_disabled', L10n::t('Disable picture proxy'), Config::get('system', 'proxy_disabled'), L10n::t('The picture proxy increases performance and privacy. It shouldn\'t be used on systems with very low bandwidth.')], + '$only_tag_search' => ['only_tag_search', L10n::t('Only search in tags'), Config::get('system', 'only_tag_search'), L10n::t('On large systems the text search can slow down the system extremely.')], + + '$relocate_url' => ['relocate_url', L10n::t('New base url'), System::baseUrl(), L10n::t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')], + + '$rino' => ['rino', L10n::t('RINO Encryption'), intval(Config::get('system', 'rino_encrypt')), L10n::t('Encryption layer between nodes.'), [0 => L10n::t('Disabled'), 1 => L10n::t('Enabled')]], + + '$worker_queues' => ['worker_queues', L10n::t('Maximum number of parallel workers'), Config::get('system', 'worker_queues'), L10n::t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)], + '$worker_dont_fork' => ['worker_dont_fork', L10n::t('Don\'t use "proc_open" with the worker'), Config::get('system', 'worker_dont_fork'), L10n::t('Enable this if your system doesn\'t allow the use of "proc_open". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab.')], + '$worker_fastlane' => ['worker_fastlane', L10n::t('Enable fastlane'), Config::get('system', 'worker_fastlane'), L10n::t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')], + '$worker_frontend' => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', System::baseUrl())], + + '$relay_subscribe' => ['relay_subscribe', L10n::t('Subscribe to relay'), Config::get('system', 'relay_subscribe'), L10n::t('Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page.')], + '$relay_server' => ['relay_server', L10n::t('Relay server'), Config::get('system', 'relay_server', 'https://relay.diasp.org'), L10n::t('Address of the relay server where public posts should be send to. For example https://relay.diasp.org')], + '$relay_directly' => ['relay_directly', L10n::t('Direct relay transfer'), Config::get('system', 'relay_directly'), L10n::t('Enables the direct transfer to other servers without using the relay servers')], + '$relay_scope' => ['relay_scope', L10n::t('Relay scope'), Config::get('system', 'relay_scope'), L10n::t('Can be "all" or "tags". "all" means that every public post should be received. "tags" means that only posts with selected tags should be received.'), ['' => L10n::t('Disabled'), 'all' => L10n::t('all'), 'tags' => L10n::t('tags')]], + '$relay_server_tags' => ['relay_server_tags', L10n::t('Server tags'), Config::get('system', 'relay_server_tags'), L10n::t('Comma separated list of tags for the "tags" subscription.')], + '$relay_user_tags' => ['relay_user_tags', L10n::t('Allow user tags'), Config::get('system', 'relay_user_tags', true), L10n::t('If enabled, the tags from the saved searches will used for the "tags" subscription in addition to the "relay_server_tags".')], + + '$form_security_token' => parent::getFormSecurityToken('admin_site'), + '$relocate_button' => L10n::t('Start Relocation'), + ]); + } +} diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index c31ce8ca0..13d1b1f19 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -53,6 +53,7 @@ abstract class BaseAdminModule extends BaseModule 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] ]], 'configuration' => [L10n::t('Configuration'), [ + 'site' => ['admin/site' , L10n::t('Site') , 'site'], 'users' => ['admin/users' , L10n::t('Users') , 'users'], 'addons' => ['admin/addons' , L10n::t('Addons') , 'addons'], 'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'], diff --git a/view/templates/admin/site.tpl b/view/templates/admin/site.tpl index 6da3e35f5..a4df56279 100644 --- a/view/templates/admin/site.tpl +++ b/view/templates/admin/site.tpl @@ -1,44 +1,3 @@ -

      {{$title}} - {{$page}}

      diff --git a/view/theme/frio/templates/admin/site.tpl b/view/theme/frio/templates/admin/site.tpl index 504d395e8..2cebb620b 100644 --- a/view/theme/frio/templates/admin/site.tpl +++ b/view/theme/frio/templates/admin/site.tpl @@ -1,44 +1,5 @@ +

      {{$title}} - {{$page}}

      diff --git a/view/theme/frio/templates/admin/site.tpl b/view/theme/frio/templates/admin/site.tpl index 2cebb620b..4c0a6ce06 100644 --- a/view/theme/frio/templates/admin/site.tpl +++ b/view/theme/frio/templates/admin/site.tpl @@ -11,6 +11,11 @@ $(element).addClass('in'); window.scroll(0, $(element).offset().top - 120); } + + $("#cnftheme").click(function(){ + document.location.assign("{{$baseurl}}/admin/themes/" + $("#id_theme :selected").val()); + return false; + }); }); From 9774c95b807eeae0a9f70ce6c75f3f20a5147673 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 27 Apr 2019 22:18:30 -0400 Subject: [PATCH 321/653] Remove duplicate $baseurl template variable - Remove unused $overwriteURL parameter in Renderer::replaceMacros --- mod/cal.php | 2 -- mod/editpost.php | 3 --- mod/events.php | 2 -- mod/fbrowser.php | 2 -- mod/lostpass.php | 1 - mod/opensearch.php | 2 -- mod/photos.php | 1 - mod/poke.php | 4 ---- mod/toggle_mobile.php | 1 - mod/uexport.php | 1 - mod/videos.php | 4 +--- src/App.php | 4 ---- src/Content/Nav.php | 1 - src/Content/OEmbed.php | 1 - src/Core/Renderer.php | 16 +++++++--------- src/Model/Item.php | 4 +--- src/Model/Profile.php | 2 -- src/Module/Admin/Addons/Index.php | 5 ++--- src/Module/Admin/Blocklist/Contact.php | 5 ++--- src/Module/Admin/Blocklist/Server.php | 7 ++++--- src/Module/Admin/DBSync.php | 8 +++----- src/Module/Admin/Federation.php | 2 -- src/Module/Admin/Item/Delete.php | 2 -- src/Module/Admin/Logs/Settings.php | 5 +++-- src/Module/Admin/Site.php | 7 +++---- src/Module/Admin/Summary.php | 4 +--- src/Module/Admin/Themes/Details.php | 4 +--- src/Module/Admin/Themes/Embed.php | 2 -- src/Module/Admin/Themes/Index.php | 6 ++---- src/Module/Admin/Users.php | 3 +-- src/Module/Contact.php | 5 +---- src/Module/Install.php | 10 +++------- src/Module/Manifest.php | 1 - src/Module/Register.php | 1 - src/Module/Xrd.php | 1 - view/templates/admin/dbsync/failed_updates.tpl | 4 ++-- view/templates/admin/dbsync/structure_check.tpl | 2 +- view/theme/duepuntozero/config.php | 1 - view/theme/frio/config.php | 1 - view/theme/quattro/config.php | 1 - view/theme/vier/config.php | 1 - 41 files changed, 38 insertions(+), 101 deletions(-) diff --git a/mod/cal.php b/mod/cal.php index 5baffec8a..cba484344 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -90,7 +90,6 @@ function cal_content(App $a) $htpl = Renderer::getMarkupTemplate('event_head.tpl'); $a->page['htmlhead'] .= Renderer::replaceMacros($htpl, [ - '$baseurl' => System::baseUrl(), '$module_url' => '/cal/' . $a->data['user']['nickname'], '$modparams' => 2, '$i18n' => $i18n, @@ -268,7 +267,6 @@ function cal_content(App $a) } $o = Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$tabs' => $tabs, '$title' => L10n::t('Events'), '$view' => L10n::t('View'), diff --git a/mod/editpost.php b/mod/editpost.php index c1c0d16d7..e14baffa2 100644 --- a/mod/editpost.php +++ b/mod/editpost.php @@ -8,7 +8,6 @@ use Friendica\Content\Feature; use Friendica\Core\Hook; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Model\FileTag; use Friendica\Model\Item; use Friendica\Database\DBA; @@ -48,7 +47,6 @@ function editpost_content(App $a) $tpl = Renderer::getMarkupTemplate('jot-header.tpl'); $a->page['htmlhead'] .= Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$ispublic' => ' ', // L10n::t('Visible to everybody'), '$geotag' => $geotag, '$nickname' => $a->user['nickname'] @@ -91,7 +89,6 @@ function editpost_content(App $a) '$posttype' => $item['post-type'], '$content' => undo_post_tagging($item['body']), '$post_id' => $post_id, - '$baseurl' => System::baseUrl(), '$defloc' => $a->user['default-location'], '$visitor' => 'none', '$pvisit' => 'none', diff --git a/mod/events.php b/mod/events.php index 008cf643c..6569653a0 100644 --- a/mod/events.php +++ b/mod/events.php @@ -237,7 +237,6 @@ function events_content(App $a) $htpl = Renderer::getMarkupTemplate('event_head.tpl'); $a->page['htmlhead'] .= Renderer::replaceMacros($htpl, [ - '$baseurl' => System::baseUrl(), '$module_url' => '/events', '$modparams' => 1, '$i18n' => $i18n, @@ -379,7 +378,6 @@ function events_content(App $a) } $o = Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$tabs' => $tabs, '$title' => L10n::t('Events'), '$view' => L10n::t('View'), diff --git a/mod/fbrowser.php b/mod/fbrowser.php index faff17381..f2bccb085 100644 --- a/mod/fbrowser.php +++ b/mod/fbrowser.php @@ -104,7 +104,6 @@ function fbrowser_content(App $a) $o = Renderer::replaceMacros($tpl, [ '$type' => 'image', - '$baseurl' => System::baseUrl(), '$path' => $path, '$folders' => $albums, '$files' => $files, @@ -134,7 +133,6 @@ function fbrowser_content(App $a) $tpl = Renderer::getMarkupTemplate($template_file); $o = Renderer::replaceMacros($tpl, [ '$type' => 'file', - '$baseurl' => System::baseUrl(), '$path' => [ [ "", L10n::t("Files")] ], '$folders' => false, '$files' => $files, diff --git a/mod/lostpass.php b/mod/lostpass.php index 548cea185..01e84268b 100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php @@ -139,7 +139,6 @@ function lostpass_generate_password($user) '$lbl5' => '' . L10n::t('click here to login') . '.', '$lbl6' => L10n::t('Your password may be changed from the Settings page after successful login.'), '$newpass' => $new_password, - '$baseurl' => System::baseUrl() ]); info("Your password has been reset." . EOL); diff --git a/mod/opensearch.php b/mod/opensearch.php index 2057f0b5d..0744157e5 100644 --- a/mod/opensearch.php +++ b/mod/opensearch.php @@ -2,7 +2,6 @@ use Friendica\App; use Friendica\Core\Renderer; -use Friendica\Core\System; function opensearch_content(App $a) { @@ -11,7 +10,6 @@ function opensearch_content(App $a) { header("Content-type: application/opensearchdescription+xml"); $o = Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$nodename' => $a->getHostName(), ]); diff --git a/mod/photos.php b/mod/photos.php index 137e0adb5..a8160bd4c 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -115,7 +115,6 @@ function photos_init(App $a) { '$title' => L10n::t('Photo Albums'), '$recent' => L10n::t('Recent Photos'), '$albums' => $ret['albums'], - '$baseurl' => System::baseUrl(), '$upload' => [L10n::t('Upload New Photos'), 'photos/' . $a->data['user']['nickname'] . '/upload'], '$can_post' => $can_post ]); diff --git a/mod/poke.php b/mod/poke.php index b8a1ba7bf..e8ddf86cd 100644 --- a/mod/poke.php +++ b/mod/poke.php @@ -154,15 +154,11 @@ function poke_content(App $a) $name = $contact['name']; $id = $contact['id']; - $base = System::baseUrl(); - $head_tpl = Renderer::getMarkupTemplate('poke_head.tpl'); $a->page['htmlhead'] .= Renderer::replaceMacros($head_tpl,[ '$baseurl' => System::baseUrl(true), - '$base' => $base ]); - $parent = (!empty($_GET['parent']) ? intval($_GET['parent']) : '0'); diff --git a/mod/toggle_mobile.php b/mod/toggle_mobile.php index 2821e0a64..d1a26b3ca 100644 --- a/mod/toggle_mobile.php +++ b/mod/toggle_mobile.php @@ -1,7 +1,6 @@ System::baseUrl(), '$title' => L10n::t('Export personal data'), '$options' => $options ]); diff --git a/mod/videos.php b/mod/videos.php index 4120c136f..f45817c4e 100644 --- a/mod/videos.php +++ b/mod/videos.php @@ -67,9 +67,7 @@ function videos_init(App $a) $a->page['aside'] .= $vcard_widget; $tpl = Renderer::getMarkupTemplate("videos_head.tpl"); - $a->page['htmlhead'] .= Renderer::replaceMacros($tpl,[ - '$baseurl' => System::baseUrl(), - ]); + $a->page['htmlhead'] .= Renderer::replaceMacros($tpl); } return; diff --git a/src/App.php b/src/App.php index 9cde12499..70089a767 100644 --- a/src/App.php +++ b/src/App.php @@ -406,8 +406,6 @@ class App * @param bool $ssl Whether to append http or https under BaseURL::SSL_POLICY_SELFSIGN * * @return string Friendica server base URL - * - * @deprecated 2019.06 - use BaseURL->get($ssl) instead */ public function getBaseURL($ssl = false) { @@ -509,7 +507,6 @@ class App * being first */ $this->page['htmlhead'] = Core\Renderer::replaceMacros($tpl, [ - '$baseurl' => $this->getBaseURL(), '$local_user' => local_user(), '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION, '$delitem' => Core\L10n::t('Delete this item?'), @@ -562,7 +559,6 @@ class App $tpl = Core\Renderer::getMarkupTemplate('footer.tpl'); $this->page['footer'] = Core\Renderer::replaceMacros($tpl, [ - '$baseurl' => $this->getBaseURL(), '$footerScripts' => $this->footerScripts, ]) . $this->page['footer']; } diff --git a/src/Content/Nav.php b/src/Content/Nav.php index 1eae2a3e3..a63244e85 100644 --- a/src/Content/Nav.php +++ b/src/Content/Nav.php @@ -67,7 +67,6 @@ class Nav $tpl = Renderer::getMarkupTemplate('nav.tpl'); $nav .= Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$sitelocation' => $nav_info['sitelocation'], '$nav' => $nav_info['nav'], '$banner' => $nav_info['banner'], diff --git a/src/Content/OEmbed.php b/src/Content/OEmbed.php index 0093ba11a..7190f1ce0 100644 --- a/src/Content/OEmbed.php +++ b/src/Content/OEmbed.php @@ -181,7 +181,6 @@ class OEmbed $tw = $th * $tr; $tpl = Renderer::getMarkupTemplate('oembed_video.tpl'); $ret .= Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$embedurl' => $oembed->embed_url, '$escapedhtml' => base64_encode($oembed->html), '$tw' => $tw, diff --git a/src/Core/Renderer.php b/src/Core/Renderer.php index 72073086a..fd5e73302 100644 --- a/src/Core/Renderer.php +++ b/src/Core/Renderer.php @@ -52,22 +52,20 @@ class Renderer extends BaseObject /** * @brief This is our template processor * - * @param string|FriendicaSmarty $s The string requiring macro substitution or an instance of FriendicaSmarty - * @param array $vars key value pairs (search => replace) - * @param bool $overwriteURL Overwrite the base url with the system wide set base url + * @param string|FriendicaSmarty $s The string requiring macro substitution or an instance of FriendicaSmarty + * @param array $vars Key value pairs (search => replace) * * @return string substituted string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws Exception */ - public static function replaceMacros($s, $vars, $overwriteURL = true) + public static function replaceMacros($s, array $vars = []) { $stamp1 = microtime(true); $a = self::getApp(); - // pass $baseurl to all templates - if ($overwriteURL) { - $vars['$baseurl'] = System::baseUrl(); - } + // pass $baseurl to all templates if it isn't set + $vars = array_merge(['$baseurl' => $a->getBaseURL()], $vars); + $t = self::getTemplateEngine(); try { diff --git a/src/Model/Item.php b/src/Model/Item.php index c309da24e..d85ed414f 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -3466,9 +3466,7 @@ class Item extends BaseObject if (strpos($mime, 'video') !== false) { if (!$vhead) { $vhead = true; - $a->page['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('videos_head.tpl'), [ - '$baseurl' => System::baseUrl(), - ]); + $a->page['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('videos_head.tpl')); } $url_parts = explode('/', $the_url); diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 79971cd99..fb87bc521 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -641,7 +641,6 @@ class Profile } $tpl = Renderer::getMarkupTemplate('birthdays_reminder.tpl'); return Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$classtoday' => $classtoday, '$count' => $total, '$event_reminders' => L10n::t('Birthday Reminders'), @@ -730,7 +729,6 @@ class Profile } $tpl = Renderer::getMarkupTemplate('events_reminder.tpl'); return Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$classtoday' => $classtoday, '$count' => count($r), '$event_reminders' => L10n::t('Event Reminders'), diff --git a/src/Module/Admin/Addons/Index.php b/src/Module/Admin/Addons/Index.php index 20d8ff196..6c8d48dc4 100644 --- a/src/Module/Admin/Addons/Index.php +++ b/src/Module/Admin/Addons/Index.php @@ -7,7 +7,6 @@ use Friendica\Core\Addon; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Module\BaseAdminModule; @@ -61,7 +60,7 @@ class Index extends BaseAdminModule '$page' => L10n::t('Addons'), '$submit' => L10n::t('Save Settings'), '$reload' => L10n::t('Reload active addons'), - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), '$function' => 'addons', '$addons' => $addons, '$pcount' => count($addons), @@ -69,4 +68,4 @@ class Index extends BaseAdminModule '$form_security_token' => parent::getFormSecurityToken('admin_addons'), ]); } -} \ No newline at end of file +} diff --git a/src/Module/Admin/Blocklist/Contact.php b/src/Module/Admin/Blocklist/Contact.php index 69aa0a473..bebcf444b 100644 --- a/src/Module/Admin/Blocklist/Contact.php +++ b/src/Module/Admin/Blocklist/Contact.php @@ -5,7 +5,6 @@ namespace Friendica\Module\Admin\Blocklist; use Friendica\Content\Pager; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Module\BaseAdminModule; use Friendica\Model; @@ -77,7 +76,7 @@ class Contact extends BaseAdminModule '$form_security_token' => parent::getFormSecurityToken("admin_contactblock"), // values // - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), '$contacts' => $contacts, '$total_contacts' => L10n::tt('%s total blocked contact', '%s total blocked contacts', $total), @@ -86,4 +85,4 @@ class Contact extends BaseAdminModule ]); return $o; } -} \ No newline at end of file +} diff --git a/src/Module/Admin/Blocklist/Server.php b/src/Module/Admin/Blocklist/Server.php index 1d0dc1fb8..2d5f97893 100644 --- a/src/Module/Admin/Blocklist/Server.php +++ b/src/Module/Admin/Blocklist/Server.php @@ -5,7 +5,6 @@ namespace Friendica\Module\Admin\Blocklist; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; @@ -55,6 +54,8 @@ class Server extends BaseAdminModule { parent::content(); + $a = self::getApp(); + $blocklist = Config::get('system', 'blocklist'); $blocklistform = []; if (is_array($blocklist)) { @@ -83,9 +84,9 @@ class Server extends BaseAdminModule '$threason' => L10n::t('Reason for the block'), '$delentry' => L10n::t('Delete entry from blocklist'), '$entries' => $blocklistform, - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), '$confirm_delete' => L10n::t('Delete entry from blocklist?'), '$form_security_token' => parent::getFormSecurityToken("admin_blocklist") ]); } -} \ No newline at end of file +} diff --git a/src/Module/Admin/DBSync.php b/src/Module/Admin/DBSync.php index c62fefe4c..a9c2cb6db 100644 --- a/src/Module/Admin/DBSync.php +++ b/src/Module/Admin/DBSync.php @@ -5,12 +5,10 @@ namespace Friendica\Module\Admin; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Core\Update; use Friendica\Database\DBA; use Friendica\Database\DBStructure; use Friendica\Module\BaseAdminModule; -use Friendica\Util\Strings; class DBSync extends BaseAdminModule { @@ -88,13 +86,13 @@ class DBSync extends BaseAdminModule if (!count($failed)) { $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/structure_check.tpl'), [ - '$base' => System::baseUrl(true), + '$base' => $a->getBaseURL(true), '$banner' => L10n::t('No failed updates.'), '$check' => L10n::t('Check database structure'), ]); } else { $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/failed_updates.tpl'), [ - '$base' => System::baseUrl(true), + '$base' => $a->getBaseURL(true), '$banner' => L10n::t('Failed Updates'), '$desc' => L10n::t('This does not include updates prior to 1139, which did not return a status.'), '$mark' => L10n::t("Mark success \x28if update was manually applied\x29"), @@ -105,4 +103,4 @@ class DBSync extends BaseAdminModule return $o; } -} \ No newline at end of file +} diff --git a/src/Module/Admin/Federation.php b/src/Module/Admin/Federation.php index 7a1c09db6..ae7445d9e 100644 --- a/src/Module/Admin/Federation.php +++ b/src/Module/Admin/Federation.php @@ -5,7 +5,6 @@ namespace Friendica\Module\Admin; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Module\BaseAdminModule; @@ -194,7 +193,6 @@ class Federation extends BaseAdminModule '$counts' => $counts, '$version' => FRIENDICA_VERSION, '$legendtext' => L10n::t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users), - '$baseurl' => System::baseUrl(), ]); } } diff --git a/src/Module/Admin/Item/Delete.php b/src/Module/Admin/Item/Delete.php index 94bab4eb3..9a9c9209b 100644 --- a/src/Module/Admin/Item/Delete.php +++ b/src/Module/Admin/Item/Delete.php @@ -4,7 +4,6 @@ namespace Friendica\Module\Admin\Item; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Model\Item; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; @@ -50,7 +49,6 @@ class Delete extends BaseAdminModule '$intro1' => L10n::t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'), '$intro2' => L10n::t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'), '$deleteitemguid' => ['deleteitemguid', L10n::t("GUID"), '', L10n::t("The GUID of the item you want to delete."), 'required', 'autofocus'], - '$baseurl' => System::baseUrl(), '$form_security_token' => parent::getFormSecurityToken("admin_deleteitem") ]); } diff --git a/src/Module/Admin/Logs/Settings.php b/src/Module/Admin/Logs/Settings.php index 7a04fcbef..c42c5402c 100644 --- a/src/Module/Admin/Logs/Settings.php +++ b/src/Module/Admin/Logs/Settings.php @@ -5,7 +5,6 @@ namespace Friendica\Module\Admin\Logs; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; use Psr\Log\LogLevel; @@ -36,6 +35,8 @@ class Settings extends BaseAdminModule { parent::content(); + $a = self::getApp(); + $log_choices = [ LogLevel::ERROR => 'Error', LogLevel::WARNING => 'Warning', @@ -57,7 +58,7 @@ class Settings extends BaseAdminModule '$page' => L10n::t('Logs'), '$submit' => L10n::t('Save Settings'), '$clear' => L10n::t('Clear'), - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), '$logname' => Config::get('system', 'logfile'), // see /help/smarty3-templates#1_1 on any Friendica node '$debugging' => ['debugging', L10n::t("Enable Debugging"), Config::get('system', 'debugging'), ""], diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php index 1bafa9ab3..05ca16a16 100644 --- a/src/Module/Admin/Site.php +++ b/src/Module/Admin/Site.php @@ -7,7 +7,6 @@ use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Core\StorageManager; -use Friendica\Core\System; use Friendica\Core\Theme; use Friendica\Core\Worker; use Friendica\Database\DBA; @@ -578,7 +577,7 @@ class Site extends BaseAdminModule '$relay_title' => L10n::t('Message Relay'), '$relocate' => L10n::t('Relocate Instance'), '$relocate_warning' => L10n::t('Warning! Advanced function. Could make this server unreachable.'), - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), // name, label, value, help string, extra data... '$sitename' => ['sitename', L10n::t('Site name'), Config::get('config', 'sitename'), ''], @@ -662,14 +661,14 @@ class Site extends BaseAdminModule '$proxy_disabled' => ['proxy_disabled', L10n::t('Disable picture proxy'), Config::get('system', 'proxy_disabled'), L10n::t('The picture proxy increases performance and privacy. It shouldn\'t be used on systems with very low bandwidth.')], '$only_tag_search' => ['only_tag_search', L10n::t('Only search in tags'), Config::get('system', 'only_tag_search'), L10n::t('On large systems the text search can slow down the system extremely.')], - '$relocate_url' => ['relocate_url', L10n::t('New base url'), System::baseUrl(), L10n::t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')], + '$relocate_url' => ['relocate_url', L10n::t('New base url'), $a->getBaseURL(), L10n::t('Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users.')], '$rino' => ['rino', L10n::t('RINO Encryption'), intval(Config::get('system', 'rino_encrypt')), L10n::t('Encryption layer between nodes.'), [0 => L10n::t('Disabled'), 1 => L10n::t('Enabled')]], '$worker_queues' => ['worker_queues', L10n::t('Maximum number of parallel workers'), Config::get('system', 'worker_queues'), L10n::t('On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d.', 5, 20, 10)], '$worker_dont_fork' => ['worker_dont_fork', L10n::t('Don\'t use "proc_open" with the worker'), Config::get('system', 'worker_dont_fork'), L10n::t('Enable this if your system doesn\'t allow the use of "proc_open". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab.')], '$worker_fastlane' => ['worker_fastlane', L10n::t('Enable fastlane'), Config::get('system', 'worker_fastlane'), L10n::t('When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority.')], - '$worker_frontend' => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', System::baseUrl())], + '$worker_frontend' => ['worker_frontend', L10n::t('Enable frontend worker'), Config::get('system', 'frontend_worker'), L10n::t('When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server.', $a->getBaseURL())], '$relay_subscribe' => ['relay_subscribe', L10n::t('Subscribe to relay'), Config::get('system', 'relay_subscribe'), L10n::t('Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page.')], '$relay_server' => ['relay_server', L10n::t('Relay server'), Config::get('system', 'relay_server', 'https://relay.diasp.org'), L10n::t('Address of the relay server where public posts should be send to. For example https://relay.diasp.org')], diff --git a/src/Module/Admin/Summary.php b/src/Module/Admin/Summary.php index 49ad59cdf..8529c7142 100644 --- a/src/Module/Admin/Summary.php +++ b/src/Module/Admin/Summary.php @@ -7,7 +7,6 @@ use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Core\Update; use Friendica\Database\DBA; use Friendica\Database\DBStructure; @@ -130,7 +129,6 @@ class Summary extends BaseAdminModule '$accounts' => $accounts, '$pending' => [L10n::t('Pending registrations'), $pending], '$version' => [L10n::t('Version'), FRIENDICA_VERSION], - '$baseurl' => System::baseUrl(), '$platform' => FRIENDICA_PLATFORM, '$codename' => FRIENDICA_CODENAME, '$build' => Config::get('system', 'build'), @@ -143,7 +141,7 @@ class Summary extends BaseAdminModule private static function checkSelfHostMeta() { // Fetch the host-meta to check if this really is a vital server - return Network::curl(System::baseUrl() . '/.well-known/host-meta')->isSuccess(); + return Network::curl(self::getApp()->getBaseURL() . '/.well-known/host-meta')->isSuccess(); } } \ No newline at end of file diff --git a/src/Module/Admin/Themes/Details.php b/src/Module/Admin/Themes/Details.php index 540083bb2..d8a2d2139 100644 --- a/src/Module/Admin/Themes/Details.php +++ b/src/Module/Admin/Themes/Details.php @@ -3,10 +3,8 @@ namespace Friendica\Module\Admin\Themes; use Friendica\Content\Text\Markdown; -use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Core\Theme; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; @@ -107,7 +105,7 @@ class Details extends BaseAdminModule '$page' => L10n::t('Themes'), '$toggle' => L10n::t('Toggle'), '$settings' => L10n::t('Settings'), - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), '$addon' => $theme, '$status' => $status, '$action' => $action, diff --git a/src/Module/Admin/Themes/Embed.php b/src/Module/Admin/Themes/Embed.php index 0a309e23c..4ca2a4e7a 100644 --- a/src/Module/Admin/Themes/Embed.php +++ b/src/Module/Admin/Themes/Embed.php @@ -4,8 +4,6 @@ namespace Friendica\Module\Admin\Themes; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; -use Friendica\Core\Theme; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; diff --git a/src/Module/Admin/Themes/Index.php b/src/Module/Admin/Themes/Index.php index 2b89c4e20..62c775bf0 100644 --- a/src/Module/Admin/Themes/Index.php +++ b/src/Module/Admin/Themes/Index.php @@ -2,11 +2,9 @@ namespace Friendica\Module\Admin\Themes; -use Friendica\Content\Text\Markdown; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Core\Theme; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; @@ -23,7 +21,7 @@ class Index extends BaseAdminModule // reload active themes if (!empty($_GET['action'])) { - parent::checkFormSecurityTokenRedirectOnError(System::baseUrl() . '/admin/themes', 'admin_themes', 't'); + parent::checkFormSecurityTokenRedirectOnError($a->getBaseURL() . '/admin/themes', 'admin_themes', 't'); switch ($_GET['action']) { case 'reload': @@ -96,7 +94,7 @@ class Index extends BaseAdminModule '$page' => L10n::t('Themes'), '$submit' => L10n::t('Save Settings'), '$reload' => L10n::t('Reload active themes'), - '$baseurl' => System::baseUrl(true), + '$baseurl' => $a->getBaseURL(true), '$function' => 'themes', '$addons' => $addons, '$pcount' => count($themes), diff --git a/src/Module/Admin/Users.php b/src/Module/Admin/Users.php index 85567fd2a..4d25f4f89 100644 --- a/src/Module/Admin/Users.php +++ b/src/Module/Admin/Users.php @@ -6,7 +6,6 @@ use Friendica\Content\Pager; use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Model\Register; use Friendica\Model\User; @@ -78,7 +77,7 @@ class Users extends BaseAdminModule Thank you and welcome to %4$s.')); $preamble = sprintf($preamble, $user['username'], Config::get('config', 'sitename')); - $body = sprintf($body, System::baseUrl(), $user['nickname'], $result['password'], Config::get('config', 'sitename')); + $body = sprintf($body, $a->getBaseURL(), $user['nickname'], $result['password'], Config::get('config', 'sitename')); notification([ 'type' => SYSTEM_EMAIL, diff --git a/src/Module/Contact.php b/src/Module/Contact.php index 3074bf7d6..ea3eecd4a 100644 --- a/src/Module/Contact.php +++ b/src/Module/Contact.php @@ -120,11 +120,9 @@ class Contact extends BaseModule '$networks_widget' => $networks_widget ]); - $base = $a->getBaseURL(); $tpl = Renderer::getMarkupTemplate('contacts-head.tpl'); $a->page['htmlhead'] .= Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(true), - '$base' => $base + '$baseurl' => $a->getBaseURL(true), ]); } @@ -809,7 +807,6 @@ class Contact extends BaseModule $tpl = Renderer::getMarkupTemplate('contacts-template.tpl'); $o .= Renderer::replaceMacros($tpl, [ - '$baseurl' => System::baseUrl(), '$header' => L10n::t('Contacts') . (($nets) ? ' - ' . ContactSelector::networkToName($nets) : ''), '$tabs' => $t, '$total' => $total, diff --git a/src/Module/Install.php b/src/Module/Install.php index 1cef8fbaf..b19e69a32 100644 --- a/src/Module/Install.php +++ b/src/Module/Install.php @@ -173,15 +173,14 @@ class Install extends BaseModule '$next' => L10n::t('Next'), '$reload' => L10n::t('Check again'), '$php_path' => $php_path, - '$baseurl' => $a->getBaseURL() ]); break; case self::BASE_CONFIG: $ssl_choices = [ - BaseUrl::SSL_POLICY_NONE => L10n::t("No SSL policy, links will track page SSL state"), - BaseUrl::SSL_POLICY_FULL => L10n::t("Force all links to use SSL"), - BaseUrl::SSL_POLICY_SELFSIGN => L10n::t("Self-signed certificate, use SSL for local links only \x28discouraged\x29") + BaseURL::SSL_POLICY_NONE => L10n::t("No SSL policy, links will track page SSL state"), + BaseURL::SSL_POLICY_FULL => L10n::t("Force all links to use SSL"), + BaseURL::SSL_POLICY_SELFSIGN => L10n::t("Self-signed certificate, use SSL for local links only \x28discouraged\x29") ]; $tpl = Renderer::getMarkupTemplate('install_base.tpl'); @@ -208,7 +207,6 @@ class Install extends BaseModule $configCache->get('system', 'urlpath'), L10n::t('Overwrite this field in case the sub path determination isn\'t right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path.'), ''], - '$baseurl' => $a->getBaseURL(), '$php_path' => $configCache->get('config', 'php_path'), '$submit' => L10n::t('Submit'), ]); @@ -249,7 +247,6 @@ class Install extends BaseModule '', 'required'], '$lbl_10' => L10n::t('Please select a default timezone for your website'), - '$baseurl' => $a->getBaseURL(), '$php_path' => $configCache->get('config', 'php_path'), '$submit' => L10n::t('Submit') ]); @@ -286,7 +283,6 @@ class Install extends BaseModule $configCache->get('system', 'language'), L10n::t('Set the default language for your Friendica installation interface and to send emails.'), $lang_choices], - '$baseurl' => $a->getBaseURL(), '$php_path' => $configCache->get('config', 'php_path'), '$submit' => L10n::t('Submit') ]); diff --git a/src/Module/Manifest.php b/src/Module/Manifest.php index 40ae53891..9dadcf0f7 100644 --- a/src/Module/Manifest.php +++ b/src/Module/Manifest.php @@ -22,7 +22,6 @@ class Manifest extends BaseModule } $output = Renderer::replaceMacros($tpl, [ - '$baseurl' => $app->getBaseURL(), '$touch_icon' => $touch_icon, '$title' => $config->get('config', 'sitename', 'Friendica'), ]); diff --git a/src/Module/Register.php b/src/Module/Register.php index 202cf948e..06b62783f 100644 --- a/src/Module/Register.php +++ b/src/Module/Register.php @@ -144,7 +144,6 @@ class Register extends BaseModule '$tostext' => L10n::t('Terms of Service'), '$showprivstatement' => Config::get('system', 'tosprivstatement'), '$privstatement'=> $tos->privacy_complete, - '$baseurl' => System::baseurl(), '$form_security_token' => BaseModule::getFormSecurityToken('register'), '$explicit_content' => Config::get('system', 'explicit_content', false), '$explicit_content_note' => L10n::t('Note: This node explicitly contains adult content') diff --git a/src/Module/Xrd.php b/src/Module/Xrd.php index 38ce151ff..f7e20c9db 100644 --- a/src/Module/Xrd.php +++ b/src/Module/Xrd.php @@ -178,7 +178,6 @@ class Xrd extends BaseModule '$atom' => $baseURL . '/dfrn_poll/' . $user['nickname'], '$poco_url' => $baseURL . '/poco/' . $user['nickname'], '$photo' => $baseURL . '/photo/profile/' . $user['uid'] . '.jpg', - '$baseurl' => $baseURL, '$salmon' => $baseURL . '/salmon/' . $user['nickname'], '$salmen' => $baseURL . '/salmon/' . $user['nickname'] . '/mention', '$subscribe' => $baseURL . '/follow?url={uri}', diff --git a/view/templates/admin/dbsync/failed_updates.tpl b/view/templates/admin/dbsync/failed_updates.tpl index 8a5e0c2fa..f75f266c7 100644 --- a/view/templates/admin/dbsync/failed_updates.tpl +++ b/view/templates/admin/dbsync/failed_updates.tpl @@ -9,8 +9,8 @@

      {{$f}}


      diff --git a/view/templates/admin/dbsync/structure_check.tpl b/view/templates/admin/dbsync/structure_check.tpl index 7193d38ee..06d61a080 100644 --- a/view/templates/admin/dbsync/structure_check.tpl +++ b/view/templates/admin/dbsync/structure_check.tpl @@ -2,7 +2,7 @@

      {{$banner}}

      -

      {{$check}}

      +

      {{$check}}


      diff --git a/view/theme/duepuntozero/config.php b/view/theme/duepuntozero/config.php index 430fa7f60..cd0445551 100644 --- a/view/theme/duepuntozero/config.php +++ b/view/theme/duepuntozero/config.php @@ -70,7 +70,6 @@ function clean_form(App $a, &$colorset, $user) $t = Renderer::getMarkupTemplate("theme_settings.tpl"); $o = Renderer::replaceMacros($t, [ '$submit' => L10n::t('Submit'), - '$baseurl' => System::baseUrl(), '$title' => L10n::t("Theme settings"), '$colorset' => ['duepuntozero_colorset', L10n::t('Variations'), $color, '', $colorset], ]); diff --git a/view/theme/frio/config.php b/view/theme/frio/config.php index cd4d7b894..d1591273f 100644 --- a/view/theme/frio/config.php +++ b/view/theme/frio/config.php @@ -119,7 +119,6 @@ function frio_form($arr) $t = Renderer::getMarkupTemplate('theme_settings.tpl'); $ctx = [ '$submit' => L10n::t('Submit'), - '$baseurl' => System::baseUrl(), '$title' => L10n::t('Theme settings'), '$scheme' => ['frio_scheme', L10n::t('Select color scheme'), $arr['scheme'], '', $scheme_choices], '$share_string' => ['frio_share_string', L10n::t('Copy or paste schemestring'), $arr['share_string'], L10n::t('You can copy this string to share your theme with others. Pasting here applies the schemestring'), false, false], diff --git a/view/theme/quattro/config.php b/view/theme/quattro/config.php index cdef0eeaa..bbe33a1e1 100644 --- a/view/theme/quattro/config.php +++ b/view/theme/quattro/config.php @@ -72,7 +72,6 @@ function quattro_form(App $a, $align, $color, $tfs, $pfs) { $t = Renderer::getMarkupTemplate("theme_settings.tpl" ); $o = Renderer::replaceMacros($t, [ '$submit' => L10n::t('Submit'), - '$baseurl' => System::baseUrl(), '$title' => L10n::t("Theme settings"), '$align' => ['quattro_align', L10n::t('Alignment'), $align, '', ['left' => L10n::t('Left'), 'center' => L10n::t('Center')]], '$color' => ['quattro_color', L10n::t('Color scheme'), $color, '', $colors], diff --git a/view/theme/vier/config.php b/view/theme/vier/config.php index f70935653..d34a447d5 100644 --- a/view/theme/vier/config.php +++ b/view/theme/vier/config.php @@ -118,7 +118,6 @@ function vier_form(App $a, $style, $show_pages, $show_profiles, $show_helpers, $ $t = Renderer::getMarkupTemplate("theme_settings.tpl"); $o = Renderer::replaceMacros($t, [ '$submit' => L10n::t('Submit'), - '$baseurl' => System::baseUrl(), '$title' => L10n::t("Theme settings"), '$style' => ['vier_style', L10n::t('Set style'), $style, '', $styles], '$show_pages' => ['vier_show_pages', L10n::t('Community Pages'), $show_pages, '', $show_or_not], From 9f4fb4906af351f56e4527ad8ba457b479c33281 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 27 Apr 2019 22:19:54 -0400 Subject: [PATCH 322/653] Move addon admin list generation to Core\Addon --- src/Core/Addon.php | 32 +++++++++++++++++++++++ src/Module/Admin/Addons/Details.php | 13 +++------ src/Module/Admin/Addons/Index.php | 9 ------- src/Module/BaseAdminModule.php | 9 ++----- view/theme/frio/templates/admin/aside.tpl | 6 ++--- 5 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/Core/Addon.php b/src/Core/Addon.php index 4dd34eb16..b6f64ad74 100644 --- a/src/Core/Addon.php +++ b/src/Core/Addon.php @@ -27,6 +27,14 @@ class Addon extends BaseObject */ private static $addons = []; + /** + * Returns the list of available addons with their current status and info. + * This list is made from scanning the addon/ folder. + * Unsupported addons are excluded unless they already are enabled or system.show_unsupported_addon is set. + * + * @return array + * @throws \Exception + */ public static function getAvailableList() { $addons = []; @@ -50,6 +58,30 @@ class Addon extends BaseObject return $addons; } + /** + * Returns a list of addons that can be configured at the node level. + * The list is formatted for display in the admin panel aside. + * + * @return array + * @throws \Exception + */ + public static function getAdminList() + { + $addons_admin = []; + $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); + while ($addon = DBA::fetch($addonsAdminStmt)) { + $addons_admin[$addon['name']] = [ + 'url' => 'admin/addons/' . $addon['name'], + 'name' => $addon['name'], + 'class' => 'addon' + ]; + } + DBA::close($addonsAdminStmt); + + return $addons_admin; + } + + /** * @brief Synchronize addons: * diff --git a/src/Module/Admin/Addons/Details.php b/src/Module/Admin/Addons/Details.php index 9ef2035de..25e538122 100644 --- a/src/Module/Admin/Addons/Details.php +++ b/src/Module/Admin/Addons/Details.php @@ -6,7 +6,6 @@ use Friendica\Content\Text\Markdown; use Friendica\Core\Addon; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Database\DBA; use Friendica\Module\BaseAdminModule; use Friendica\Util\Strings; @@ -42,13 +41,7 @@ class Details extends BaseAdminModule $a = self::getApp(); - $addons_admin = []; - $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); - foreach (DBA::toArray($addonsAdminStmt) as $addon) { - $addonName = $addon['name']; - // temp addons with admin - $addons_admin[] = $addonName; - } + $addons_admin = Addon::getAdminList(); if ($a->argc > 2) { // @TODO: Replace with parameter from router @@ -93,7 +86,7 @@ class Details extends BaseAdminModule } $admin_form = ''; - if (in_array($addon, $addons_admin)) { + if (array_key_exists($addon, $addons_admin)) { require_once "addon/$addon/$addon.php"; $func = $addon . '_addon_admin'; $func($a, $admin_form); @@ -126,4 +119,4 @@ class Details extends BaseAdminModule $a->internalRedirect('admin/addons'); } -} \ No newline at end of file +} diff --git a/src/Module/Admin/Addons/Index.php b/src/Module/Admin/Addons/Index.php index 6c8d48dc4..9df486c10 100644 --- a/src/Module/Admin/Addons/Index.php +++ b/src/Module/Admin/Addons/Index.php @@ -2,12 +2,9 @@ namespace Friendica\Module\Admin\Addons; -use Friendica\Content\Text\Markdown; use Friendica\Core\Addon; -use Friendica\Core\Config; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Database\DBA; use Friendica\Module\BaseAdminModule; class Index extends BaseAdminModule @@ -46,12 +43,6 @@ class Index extends BaseAdminModule $a->internalRedirect('admin/addons'); } - $addons_admin = []; - $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); - foreach (DBA::toArray($addonsAdminStmt) as $addon) { - $addons_admin[] = $addon['name']; - } - $addons = Addon::getAvailableList(); $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 140f1223e..5e56bd8d7 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -3,6 +3,7 @@ namespace Friendica\Module; use Friendica\BaseModule; +use Friendica\Core\Addon; use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Core\System; @@ -97,15 +98,9 @@ abstract class BaseAdminModule extends BaseModule ]], ]; - $addons_admin = []; - $addonsAdminStmt = DBA::select('addon', ['name'], ['plugin_admin' => 1], ['order' => ['name']]); - foreach (DBA::toArray($addonsAdminStmt) as $addon) { - $addons_admin[] = ['admin/addons/' . $addon['name'], $addon['name'], 'addon']; - } - $t = Renderer::getMarkupTemplate('admin/aside.tpl'); $a->page['aside'] .= Renderer::replaceMacros($t, [ - '$admin' => ['addons_admin' => $addons_admin], + '$admin' => ['addons_admin' => Addon::getAdminList()], '$subpages' => $aside_sub, '$admtxt' => L10n::t('Admin'), '$plugadmtxt' => L10n::t('Addon Features'), diff --git a/view/theme/frio/templates/admin/aside.tpl b/view/theme/frio/templates/admin/aside.tpl index 5da73e135..0ba58e5ae 100644 --- a/view/theme/frio/templates/admin/aside.tpl +++ b/view/theme/frio/templates/admin/aside.tpl @@ -43,9 +43,9 @@

      {{$plugadmtxt}}

        {{foreach $admin.addons_admin as $name => $item}} - {{/foreach}} From 71546705f8a0e301711da8f2730d833bd67404ed Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 27 Apr 2019 22:21:02 -0400 Subject: [PATCH 323/653] Add Model\Contact::select method --- src/Model/Contact.php | 14 ++++++++++++++ src/Module/Admin/Blocklist/Contact.php | 4 +--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 85d1bfe9a..beb91d11a 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -110,6 +110,20 @@ class Contact extends BaseObject * @} */ + /** + * @param array $fields Array of selected fields, empty for all + * @param array $condition Array of fields for condition + * @param array $params Array of several parameters + * @return array + * @throws \Exception + */ + public static function select(array $fields = [], array $condition = [], array $params = []) + { + $statement = DBA::select('contact', $fields, $condition, $params); + + return DBA::toArray($statement); + } + /** * @param integer $id * @return array|boolean Contact record if it exists, false otherwise diff --git a/src/Module/Admin/Blocklist/Contact.php b/src/Module/Admin/Blocklist/Contact.php index bebcf444b..214a30cff 100644 --- a/src/Module/Admin/Blocklist/Contact.php +++ b/src/Module/Admin/Blocklist/Contact.php @@ -52,9 +52,7 @@ class Contact extends BaseAdminModule $pager = new Pager($a->query_string, 30); - $statement = DBA::select('contact', [], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]); - - $contacts = DBA::toArray($statement); + $contacts = Model\Contact::select([], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]); $t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl'); $o = Renderer::replaceMacros($t, [ From 6df37afb828f4deb5397d512d801427f24a068c9 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 27 Apr 2019 22:22:21 -0400 Subject: [PATCH 324/653] Various feedback items - Add logger call on theme install failure - Add todo in Module\Admin\DBSync --- src/Core/Theme.php | 1 + src/Module/Admin/DBSync.php | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Core/Theme.php b/src/Core/Theme.php index 37e673e40..61798a396 100644 --- a/src/Core/Theme.php +++ b/src/Core/Theme.php @@ -177,6 +177,7 @@ class Theme return true; } catch (\Exception $e) { + Logger::error('Theme installation failed', ['theme' => $theme, 'error' => $e->getMessage()]); return false; } } diff --git a/src/Module/Admin/DBSync.php b/src/Module/Admin/DBSync.php index a9c2cb6db..69001b9ce 100644 --- a/src/Module/Admin/DBSync.php +++ b/src/Module/Admin/DBSync.php @@ -36,6 +36,7 @@ class DBSync extends BaseAdminModule if ($a->argc > 2) { if ($a->argv[2] === 'check') { + // @TODO Seems like a similar logic like Update::check() $retval = DBStructure::update($a->getBasePath(), false, true); if ($retval === '') { $o .= L10n::t("Database structure update %s was successfully applied.", DB_UPDATE_VERSION) . "
        "; From 451a06a597fcb1c62bfb2dd61353df15234a8d6b Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 27 Apr 2019 22:23:29 -0400 Subject: [PATCH 325/653] Various code inspection items - Fix class extension in Module\Admin\Item\Source - Remove useless condition in Module\Admin\Features --- src/Module/Admin/Features.php | 47 ++++++++++++++------------------ src/Module/Admin/Item/Source.php | 9 +++--- 2 files changed, 26 insertions(+), 30 deletions(-) diff --git a/src/Module/Admin/Features.php b/src/Module/Admin/Features.php index e127b8c19..cb9acf4eb 100644 --- a/src/Module/Admin/Features.php +++ b/src/Module/Admin/Features.php @@ -5,7 +5,6 @@ namespace Friendica\Module\Admin; use Friendica\Content\Feature; use Friendica\Core\Config; use Friendica\Core\L10n; -use Friendica\Core\Logger; use Friendica\Core\Renderer; use Friendica\Module\BaseAdminModule; @@ -47,33 +46,29 @@ class Features extends BaseAdminModule { parent::content(); - $a = self::getApp(); + $arr = []; + $features = Feature::get(false); - if (($a->argc > 1) && ($a->getArgumentValue(1) === 'features')) { - $arr = []; - $features = Feature::get(false); - - foreach ($features as $fname => $fdata) { - $arr[$fname] = []; - $arr[$fname][0] = $fdata[0]; - foreach (array_slice($fdata, 1) as $f) { - $set = Config::get('feature', $f[0], $f[3]); - $arr[$fname][1][] = [ - ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]], - ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]] - ]; - } + foreach ($features as $fname => $fdata) { + $arr[$fname] = []; + $arr[$fname][0] = $fdata[0]; + foreach (array_slice($fdata, 1) as $f) { + $set = Config::get('feature', $f[0], $f[3]); + $arr[$fname][1][] = [ + ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]], + ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]] + ]; } - - $tpl = Renderer::getMarkupTemplate('admin/features.tpl'); - $o = Renderer::replaceMacros($tpl, [ - '$form_security_token' => parent::getFormSecurityToken("admin_manage_features"), - '$title' => L10n::t('Manage Additional Features'), - '$features' => $arr, - '$submit' => L10n::t('Save Settings'), - ]); - - return $o; } + + $tpl = Renderer::getMarkupTemplate('admin/features.tpl'); + $o = Renderer::replaceMacros($tpl, [ + '$form_security_token' => parent::getFormSecurityToken("admin_manage_features"), + '$title' => L10n::t('Manage Additional Features'), + '$features' => $arr, + '$submit' => L10n::t('Save Settings'), + ]); + + return $o; } } \ No newline at end of file diff --git a/src/Module/Admin/Item/Source.php b/src/Module/Admin/Item/Source.php index f5eb5afb6..1e85b7dc7 100644 --- a/src/Module/Admin/Item/Source.php +++ b/src/Module/Admin/Item/Source.php @@ -5,20 +5,21 @@ namespace Friendica\Module\Admin\Item; use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Model; +use Friendica\Module\BaseAdminModule; /** * @author Hypolite Petovan */ -class Source extends \Friendica\BaseModule +class Source extends BaseAdminModule + { public static function content() { - if (!is_site_admin()) { - return; - } + parent::content(); $a = self::getApp(); + $guid = null; if (!empty($a->argv[1])) { $guid = $a->argv[1]; } From 2a035b9b2fe65bad28c7da831c708e1a20b44415 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 28 Apr 2019 09:48:26 -0400 Subject: [PATCH 326/653] Use DBA::fetchFirst instead of DBA::p for aggregate query in Module\Admin\Federation --- src/Module/Admin/Federation.php | 393 ++++++++++++++++---------------- 1 file changed, 195 insertions(+), 198 deletions(-) diff --git a/src/Module/Admin/Federation.php b/src/Module/Admin/Federation.php index ae7445d9e..f32f0e2cc 100644 --- a/src/Module/Admin/Federation.php +++ b/src/Module/Admin/Federation.php @@ -1,198 +1,195 @@ - '#ffc018', // orange from the logo - 'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray - '%%red%%' => '#c50001', // fire red from the logo - 'Hubzilla' => '#43488a', // blue from the logo - 'BlaBlaNet' => '#3B5998', // blue from the navbar at blablanet-dot-com - 'GNU Social' => '#a22430', // dark red from the logo - 'StatusNet' => '#789240', // the green from the logo (red and blue have already others - 'Mastodon' => '#1a9df9', // blue from the Mastodon logo - 'Pleroma' => '#E46F0F', // Orange from the text that is used on Pleroma instances - 'socialhome' => '#52056b', // lilac from the Django Image used at the Socialhome homepage - 'ganggo' => '#69d7e2', // from the favicon - ]; - $counts = []; - $total = 0; - $users = 0; - - foreach ($platforms as $platform) { - // get a total count for the platform, the name and version of the - // highest version and the protocol tpe - $platformCountStmt = DBA::p('SELECT - COUNT(*) AS `total`, - SUM(`registered-users`) AS `users`, - ANY_VALUE(`platform`) AS `platform`, - ANY_VALUE(`network`) AS `network`, - MAX(`version`) AS `version` FROM `gserver` - WHERE `platform` LIKE ? - AND `last_contact` >= `last_failure` - ORDER BY `version` ASC', $platform); - $platformCount = DBA::fetch($platformCountStmt); - $total += $platformCount['total']; - $users += $platformCount['users']; - - DBA::close($platformCountStmt); - - // what versions for that platform do we know at all? - // again only the active nodes - $versionCountsStmt = DBA::p('SELECT - COUNT(*) AS `total`, - `version` FROM `gserver` - WHERE `last_contact` >= `last_failure` - AND `platform` LIKE ? - GROUP BY `version` - ORDER BY `version`;', $platform); - $versionCounts = DBA::toArray($versionCountsStmt); - - // - // clean up version numbers - // - // some platforms do not provide version information, add a unkown there - // to the version string for the displayed list. - foreach ($versionCounts as $key => $value) { - if ($versionCounts[$key]['version'] == '') { - $versionCounts[$key] = ['total' => $versionCounts[$key]['total'], 'version' => L10n::t('unknown')]; - } - } - - // Reformat and compact version numbers - if ($platform == 'Pleroma') { - $compacted = []; - foreach ($versionCounts as $key => $value) { - $version = $versionCounts[$key]['version']; - $parts = explode(' ', trim($version)); - do { - $part = array_pop($parts); - } while (!empty($parts) && ((strlen($part) >= 40) || (strlen($part) <= 3))); - // only take the x.x.x part of the version, not the "release" after the dash - $part = array_shift(explode('-', $part)); - if (!empty($part)) { - if (empty($compacted[$part])) { - $compacted[$part] = $versionCounts[$key]['total']; - } else { - $compacted[$part] += $versionCounts[$key]['total']; - } - } - } - - $versionCounts = []; - foreach ($compacted as $version => $pl_total) { - $versionCounts[] = ['version' => $version, 'total' => $pl_total]; - } - } - - // in the DB the Diaspora versions have the format x.x.x.x-xx the last - // part (-xx) should be removed to clean up the versions from the "head - // commit" information and combined into a single entry for x.x.x.x - if ($platform == 'Diaspora') { - $newV = []; - $newVv = []; - foreach ($versionCounts as $vv) { - $newVC = $vv['total']; - $newVV = $vv['version']; - $posDash = strpos($newVV, '-'); - if ($posDash) { - $newVV = substr($newVV, 0, $posDash); - } - if (isset($newV[$newVV])) { - $newV[$newVV] += $newVC; - } else { - $newV[$newVV] = $newVC; - } - } - foreach ($newV as $key => $value) { - array_push($newVv, ['total' => $value, 'version' => $key]); - } - $versionCounts = $newVv; - } - - // early friendica versions have the format x.x.xxxx where xxxx is the - // DB version stamp; those should be operated out and versions be - // conbined - if ($platform == 'Friendi%%a') { - $newV = []; - $newVv = []; - foreach ($versionCounts as $vv) { - $newVC = $vv['total']; - $newVV = $vv['version']; - $lastDot = strrpos($newVV, '.'); - $len = strlen($newVV) - 1; - if (($lastDot == $len - 4) && (!strrpos($newVV, '-rc') == $len - 3)) { - $newVV = substr($newVV, 0, $lastDot); - } - if (isset($newV[$newVV])) { - $newV[$newVV] += $newVC; - } else { - $newV[$newVV] = $newVC; - } - } - foreach ($newV as $key => $value) { - array_push($newVv, ['total' => $value, 'version' => $key]); - } - $versionCounts = $newVv; - } - - // Assure that the versions are sorted correctly - $v2 = []; - $versions = []; - foreach ($versionCounts as $vv) { - $version = trim(strip_tags($vv["version"])); - $v2[$version] = $vv; - $versions[] = $version; - } - - usort($versions, 'version_compare'); - - $versionCounts = []; - foreach ($versions as $version) { - $versionCounts[] = $v2[$version]; - } - - // the 3rd array item is needed for the JavaScript graphs as JS does - // not like some characters in the names of variables... - $counts[$platform] = [$platformCount, $versionCounts, str_replace([' ', '%'], '', $platform), $colors[$platform]]; - } - - // some helpful text - $intro = L10n::t('This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of.'); - $hint = L10n::t('The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here.'); - - // load the template, replace the macros and return the page content - $t = Renderer::getMarkupTemplate('admin/federation.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Federation Statistics'), - '$intro' => $intro, - '$hint' => $hint, - '$autoactive' => Config::get('system', 'poco_completion'), - '$counts' => $counts, - '$version' => FRIENDICA_VERSION, - '$legendtext' => L10n::t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users), - ]); - } -} + '#ffc018', // orange from the logo + 'Diaspora' => '#a1a1a1', // logo is black and white, makes a gray + '%%red%%' => '#c50001', // fire red from the logo + 'Hubzilla' => '#43488a', // blue from the logo + 'BlaBlaNet' => '#3B5998', // blue from the navbar at blablanet-dot-com + 'GNU Social' => '#a22430', // dark red from the logo + 'StatusNet' => '#789240', // the green from the logo (red and blue have already others + 'Mastodon' => '#1a9df9', // blue from the Mastodon logo + 'Pleroma' => '#E46F0F', // Orange from the text that is used on Pleroma instances + 'socialhome' => '#52056b', // lilac from the Django Image used at the Socialhome homepage + 'ganggo' => '#69d7e2', // from the favicon + ]; + $counts = []; + $total = 0; + $users = 0; + + foreach ($platforms as $platform) { + // get a total count for the platform, the name and version of the + // highest version and the protocol tpe + $platformCount = DBA::fetchFirst('SELECT + COUNT(*) AS `total`, + SUM(`registered-users`) AS `users`, + ANY_VALUE(`platform`) AS `platform`, + ANY_VALUE(`network`) AS `network`, + MAX(`version`) AS `version` FROM `gserver` + WHERE `platform` LIKE ? + AND `last_contact` >= `last_failure` + ORDER BY `version` ASC', $platform); + $total += $platformCount['total']; + $users += $platformCount['users']; + + // what versions for that platform do we know at all? + // again only the active nodes + $versionCountsStmt = DBA::p('SELECT + COUNT(*) AS `total`, + `version` FROM `gserver` + WHERE `last_contact` >= `last_failure` + AND `platform` LIKE ? + GROUP BY `version` + ORDER BY `version`;', $platform); + $versionCounts = DBA::toArray($versionCountsStmt); + + // + // clean up version numbers + // + // some platforms do not provide version information, add a unkown there + // to the version string for the displayed list. + foreach ($versionCounts as $key => $value) { + if ($versionCounts[$key]['version'] == '') { + $versionCounts[$key] = ['total' => $versionCounts[$key]['total'], 'version' => L10n::t('unknown')]; + } + } + + // Reformat and compact version numbers + if ($platform == 'Pleroma') { + $compacted = []; + foreach ($versionCounts as $key => $value) { + $version = $versionCounts[$key]['version']; + $parts = explode(' ', trim($version)); + do { + $part = array_pop($parts); + } while (!empty($parts) && ((strlen($part) >= 40) || (strlen($part) <= 3))); + // only take the x.x.x part of the version, not the "release" after the dash + $part = array_shift(explode('-', $part)); + if (!empty($part)) { + if (empty($compacted[$part])) { + $compacted[$part] = $versionCounts[$key]['total']; + } else { + $compacted[$part] += $versionCounts[$key]['total']; + } + } + } + + $versionCounts = []; + foreach ($compacted as $version => $pl_total) { + $versionCounts[] = ['version' => $version, 'total' => $pl_total]; + } + } + + // in the DB the Diaspora versions have the format x.x.x.x-xx the last + // part (-xx) should be removed to clean up the versions from the "head + // commit" information and combined into a single entry for x.x.x.x + if ($platform == 'Diaspora') { + $newV = []; + $newVv = []; + foreach ($versionCounts as $vv) { + $newVC = $vv['total']; + $newVV = $vv['version']; + $posDash = strpos($newVV, '-'); + if ($posDash) { + $newVV = substr($newVV, 0, $posDash); + } + if (isset($newV[$newVV])) { + $newV[$newVV] += $newVC; + } else { + $newV[$newVV] = $newVC; + } + } + foreach ($newV as $key => $value) { + array_push($newVv, ['total' => $value, 'version' => $key]); + } + $versionCounts = $newVv; + } + + // early friendica versions have the format x.x.xxxx where xxxx is the + // DB version stamp; those should be operated out and versions be + // conbined + if ($platform == 'Friendi%%a') { + $newV = []; + $newVv = []; + foreach ($versionCounts as $vv) { + $newVC = $vv['total']; + $newVV = $vv['version']; + $lastDot = strrpos($newVV, '.'); + $len = strlen($newVV) - 1; + if (($lastDot == $len - 4) && (!strrpos($newVV, '-rc') == $len - 3)) { + $newVV = substr($newVV, 0, $lastDot); + } + if (isset($newV[$newVV])) { + $newV[$newVV] += $newVC; + } else { + $newV[$newVV] = $newVC; + } + } + foreach ($newV as $key => $value) { + array_push($newVv, ['total' => $value, 'version' => $key]); + } + $versionCounts = $newVv; + } + + // Assure that the versions are sorted correctly + $v2 = []; + $versions = []; + foreach ($versionCounts as $vv) { + $version = trim(strip_tags($vv["version"])); + $v2[$version] = $vv; + $versions[] = $version; + } + + usort($versions, 'version_compare'); + + $versionCounts = []; + foreach ($versions as $version) { + $versionCounts[] = $v2[$version]; + } + + // the 3rd array item is needed for the JavaScript graphs as JS does + // not like some characters in the names of variables... + $counts[$platform] = [$platformCount, $versionCounts, str_replace([' ', '%'], '', $platform), $colors[$platform]]; + } + + // some helpful text + $intro = L10n::t('This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of.'); + $hint = L10n::t('The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here.'); + + // load the template, replace the macros and return the page content + $t = Renderer::getMarkupTemplate('admin/federation.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Federation Statistics'), + '$intro' => $intro, + '$hint' => $hint, + '$autoactive' => Config::get('system', 'poco_completion'), + '$counts' => $counts, + '$version' => FRIENDICA_VERSION, + '$legendtext' => L10n::t('Currently this node is aware of %d nodes with %d registered users from the following platforms:', $total, $users), + ]); + } +} From 92b415bc3619e4572e798fc1e0f91a945b2f6f78 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 2 May 2019 00:01:43 -0400 Subject: [PATCH 327/653] Fix EOL and EOF in Admin modules --- src/Module/Admin/Addons/Details.php | 244 +++++----- src/Module/Admin/Addons/Index.php | 124 ++--- src/Module/Admin/Blocklist/Contact.php | 172 +++---- src/Module/Admin/Blocklist/Server.php | 184 +++---- src/Module/Admin/DBSync.php | 214 ++++----- src/Module/Admin/Features.php | 148 +++--- src/Module/Admin/Item/Delete.php | 110 ++--- src/Module/Admin/Logs/Settings.php | 148 +++--- src/Module/Admin/Logs/View.php | 104 ++-- src/Module/Admin/PhpInfo.php | 32 +- src/Module/Admin/Queue.php | 132 ++--- src/Module/Admin/Site.php | 1 + src/Module/Admin/Summary.php | 294 ++++++------ src/Module/Admin/Themes/Details.php | 252 +++++----- src/Module/Admin/Themes/Embed.php | 180 +++---- src/Module/Admin/Themes/Index.php | 214 ++++----- src/Module/Admin/Tos.php | 106 ++--- src/Module/Admin/Users.php | 636 ++++++++++++------------- src/Module/BaseAdminModule.php | 235 ++++----- 19 files changed, 1770 insertions(+), 1760 deletions(-) diff --git a/src/Module/Admin/Addons/Details.php b/src/Module/Admin/Addons/Details.php index 25e538122..33e7c7a00 100644 --- a/src/Module/Admin/Addons/Details.php +++ b/src/Module/Admin/Addons/Details.php @@ -1,122 +1,122 @@ -argc > 2) { - // @TODO: Replace with parameter from router - $addon = $a->argv[2]; - $addon = Strings::sanitizeFilePathItem($addon); - if (is_file('addon/' . $addon . '/' . $addon . '.php')) { - include_once 'addon/' . $addon . '/' . $addon . '.php'; - if (function_exists($addon . '_addon_admin_post')) { - $func = $addon . '_addon_admin_post'; - $func($a); - } - - $a->internalRedirect('admin/addons/' . $addon); - } - } - - $a->internalRedirect('admin/addons'); - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - $addons_admin = Addon::getAdminList(); - - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $addon = $a->argv[2]; - $addon = Strings::sanitizeFilePathItem($addon); - if (!is_file("addon/$addon/$addon.php")) { - notice(L10n::t('Item not found.')); - $a->internalRedirect('admin/addons'); - } - - if (defaults($_GET, 'action', '') == 'toggle') { - parent::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't'); - - // Toggle addon status - if (Addon::isEnabled($addon)) { - Addon::uninstall($addon); - info(L10n::t('Addon %s disabled.', $addon)); - } else { - Addon::install($addon); - info(L10n::t('Addon %s enabled.', $addon)); - } - - Addon::saveEnabledList(); - - $a->internalRedirect('admin/addons/' . $addon); - } - - // display addon details - if (Addon::isEnabled($addon)) { - $status = 'on'; - $action = L10n::t('Disable'); - } else { - $status = 'off'; - $action = L10n::t('Enable'); - } - - $readme = null; - if (is_file("addon/$addon/README.md")) { - $readme = Markdown::convert(file_get_contents("addon/$addon/README.md"), false); - } elseif (is_file("addon/$addon/README")) { - $readme = '
        ' . file_get_contents("addon/$addon/README") . '
        '; - } - - $admin_form = ''; - if (array_key_exists($addon, $addons_admin)) { - require_once "addon/$addon/$addon.php"; - $func = $addon . '_addon_admin'; - $func($a, $admin_form); - } - - $t = Renderer::getMarkupTemplate('admin/addons/details.tpl'); - - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Addons'), - '$toggle' => L10n::t('Toggle'), - '$settings' => L10n::t('Settings'), - '$baseurl' => $a->getBaseURL(true), - - '$addon' => $addon, - '$status' => $status, - '$action' => $action, - '$info' => Addon::getInfo($addon), - '$str_author' => L10n::t('Author: '), - '$str_maintainer' => L10n::t('Maintainer: '), - - '$admin_form' => $admin_form, - '$function' => 'addons', - '$screenshot' => '', - '$readme' => $readme, - - '$form_security_token' => parent::getFormSecurityToken('admin_themes'), - ]); - } - - $a->internalRedirect('admin/addons'); - } -} +argc > 2) { + // @TODO: Replace with parameter from router + $addon = $a->argv[2]; + $addon = Strings::sanitizeFilePathItem($addon); + if (is_file('addon/' . $addon . '/' . $addon . '.php')) { + include_once 'addon/' . $addon . '/' . $addon . '.php'; + if (function_exists($addon . '_addon_admin_post')) { + $func = $addon . '_addon_admin_post'; + $func($a); + } + + $a->internalRedirect('admin/addons/' . $addon); + } + } + + $a->internalRedirect('admin/addons'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + $addons_admin = Addon::getAdminList(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $addon = $a->argv[2]; + $addon = Strings::sanitizeFilePathItem($addon); + if (!is_file("addon/$addon/$addon.php")) { + notice(L10n::t('Item not found.')); + $a->internalRedirect('admin/addons'); + } + + if (defaults($_GET, 'action', '') == 'toggle') { + parent::checkFormSecurityTokenRedirectOnError('/admin/addons', 'admin_themes', 't'); + + // Toggle addon status + if (Addon::isEnabled($addon)) { + Addon::uninstall($addon); + info(L10n::t('Addon %s disabled.', $addon)); + } else { + Addon::install($addon); + info(L10n::t('Addon %s enabled.', $addon)); + } + + Addon::saveEnabledList(); + + $a->internalRedirect('admin/addons/' . $addon); + } + + // display addon details + if (Addon::isEnabled($addon)) { + $status = 'on'; + $action = L10n::t('Disable'); + } else { + $status = 'off'; + $action = L10n::t('Enable'); + } + + $readme = null; + if (is_file("addon/$addon/README.md")) { + $readme = Markdown::convert(file_get_contents("addon/$addon/README.md"), false); + } elseif (is_file("addon/$addon/README")) { + $readme = '
        ' . file_get_contents("addon/$addon/README") . '
        '; + } + + $admin_form = ''; + if (array_key_exists($addon, $addons_admin)) { + require_once "addon/$addon/$addon.php"; + $func = $addon . '_addon_admin'; + $func($a, $admin_form); + } + + $t = Renderer::getMarkupTemplate('admin/addons/details.tpl'); + + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Addons'), + '$toggle' => L10n::t('Toggle'), + '$settings' => L10n::t('Settings'), + '$baseurl' => $a->getBaseURL(true), + + '$addon' => $addon, + '$status' => $status, + '$action' => $action, + '$info' => Addon::getInfo($addon), + '$str_author' => L10n::t('Author: '), + '$str_maintainer' => L10n::t('Maintainer: '), + + '$admin_form' => $admin_form, + '$function' => 'addons', + '$screenshot' => '', + '$readme' => $readme, + + '$form_security_token' => parent::getFormSecurityToken('admin_themes'), + ]); + } + + $a->internalRedirect('admin/addons'); + } +} diff --git a/src/Module/Admin/Addons/Index.php b/src/Module/Admin/Addons/Index.php index 9df486c10..2fa39d8e4 100644 --- a/src/Module/Admin/Addons/Index.php +++ b/src/Module/Admin/Addons/Index.php @@ -1,62 +1,62 @@ -internalRedirect('admin/addons'); - } - - $addons = Addon::getAvailableList(); - - $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Addons'), - '$submit' => L10n::t('Save Settings'), - '$reload' => L10n::t('Reload active addons'), - '$baseurl' => $a->getBaseURL(true), - '$function' => 'addons', - '$addons' => $addons, - '$pcount' => count($addons), - '$noplugshint' => L10n::t('There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s', 'https://github.com/friendica/friendica-addons', 'http://addons.friendi.ca'), - '$form_security_token' => parent::getFormSecurityToken('admin_addons'), - ]); - } -} +internalRedirect('admin/addons'); + } + + $addons = Addon::getAvailableList(); + + $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Addons'), + '$submit' => L10n::t('Save Settings'), + '$reload' => L10n::t('Reload active addons'), + '$baseurl' => $a->getBaseURL(true), + '$function' => 'addons', + '$addons' => $addons, + '$pcount' => count($addons), + '$noplugshint' => L10n::t('There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s', 'https://github.com/friendica/friendica-addons', 'http://addons.friendi.ca'), + '$form_security_token' => parent::getFormSecurityToken('admin_addons'), + ]); + } +} diff --git a/src/Module/Admin/Blocklist/Contact.php b/src/Module/Admin/Blocklist/Contact.php index 214a30cff..1ec6e00df 100644 --- a/src/Module/Admin/Blocklist/Contact.php +++ b/src/Module/Admin/Blocklist/Contact.php @@ -1,86 +1,86 @@ -internalRedirect('admin/blocklist/contact'); - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - $condition = ['uid' => 0, 'blocked' => true]; - - $total = DBA::count('contact', $condition); - - $pager = new Pager($a->query_string, 30); - - $contacts = Model\Contact::select([], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]); - - $t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl'); - $o = Renderer::replaceMacros($t, [ - // strings // - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Remote Contact Blocklist'), - '$description' => L10n::t('This page allows you to prevent any message from a remote contact to reach your node.'), - '$submit' => L10n::t('Block Remote Contact'), - '$select_all' => L10n::t('select all'), - '$select_none' => L10n::t('select none'), - '$block' => L10n::t('Block'), - '$unblock' => L10n::t('Unblock'), - '$no_data' => L10n::t('No remote contact is blocked from this node.'), - - '$h_contacts' => L10n::t('Blocked Remote Contacts'), - '$h_newblock' => L10n::t('Block New Remote Contact'), - '$th_contacts' => [L10n::t('Photo'), L10n::t('Name'), L10n::t('Address'), L10n::t('Profile URL')], - - '$form_security_token' => parent::getFormSecurityToken("admin_contactblock"), - - // values // - '$baseurl' => $a->getBaseURL(true), - - '$contacts' => $contacts, - '$total_contacts' => L10n::tt('%s total blocked contact', '%s total blocked contacts', $total), - '$paginate' => $pager->renderFull($total), - '$contacturl' => ['contact_url', L10n::t("Profile URL"), '', L10n::t("URL of the remote contact to block.")], - ]); - return $o; - } -} +internalRedirect('admin/blocklist/contact'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + $condition = ['uid' => 0, 'blocked' => true]; + + $total = DBA::count('contact', $condition); + + $pager = new Pager($a->query_string, 30); + + $contacts = Model\Contact::select([], $condition, ['limit' => [$pager->getStart(), $pager->getItemsPerPage()]]); + + $t = Renderer::getMarkupTemplate('admin/blocklist/contact.tpl'); + $o = Renderer::replaceMacros($t, [ + // strings // + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Remote Contact Blocklist'), + '$description' => L10n::t('This page allows you to prevent any message from a remote contact to reach your node.'), + '$submit' => L10n::t('Block Remote Contact'), + '$select_all' => L10n::t('select all'), + '$select_none' => L10n::t('select none'), + '$block' => L10n::t('Block'), + '$unblock' => L10n::t('Unblock'), + '$no_data' => L10n::t('No remote contact is blocked from this node.'), + + '$h_contacts' => L10n::t('Blocked Remote Contacts'), + '$h_newblock' => L10n::t('Block New Remote Contact'), + '$th_contacts' => [L10n::t('Photo'), L10n::t('Name'), L10n::t('Address'), L10n::t('Profile URL')], + + '$form_security_token' => parent::getFormSecurityToken("admin_contactblock"), + + // values // + '$baseurl' => $a->getBaseURL(true), + + '$contacts' => $contacts, + '$total_contacts' => L10n::tt('%s total blocked contact', '%s total blocked contacts', $total), + '$paginate' => $pager->renderFull($total), + '$contacturl' => ['contact_url', L10n::t("Profile URL"), '', L10n::t("URL of the remote contact to block.")], + ]); + return $o; + } +} diff --git a/src/Module/Admin/Blocklist/Server.php b/src/Module/Admin/Blocklist/Server.php index 2d5f97893..754d1aad5 100644 --- a/src/Module/Admin/Blocklist/Server.php +++ b/src/Module/Admin/Blocklist/Server.php @@ -1,92 +1,92 @@ - Strings::escapeTags(trim($_POST['newentry_domain'])), - 'reason' => Strings::escapeTags(trim($_POST['newentry_reason'])) - ]; - Config::set('system', 'blocklist', $blocklist); - info(L10n::t('Server added to blocklist.') . EOL); - } else { - // Edit the entries from blocklist - $blocklist = []; - foreach ($_POST['domain'] as $id => $domain) { - // Trimming whitespaces as well as any lingering slashes - $domain = Strings::escapeTags(trim($domain, "\x00..\x1F/")); - $reason = Strings::escapeTags(trim($_POST['reason'][$id])); - if (empty($_POST['delete'][$id])) { - $blocklist[] = [ - 'domain' => $domain, - 'reason' => $reason - ]; - } - } - Config::set('system', 'blocklist', $blocklist); - info(L10n::t('Site blocklist updated.') . EOL); - } - - self::getApp()->internalRedirect('admin/blocklist/server'); - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - $blocklist = Config::get('system', 'blocklist'); - $blocklistform = []; - if (is_array($blocklist)) { - foreach ($blocklist as $id => $b) { - $blocklistform[] = [ - 'domain' => ["domain[$id]", L10n::t('Blocked domain'), $b['domain'], '', L10n::t('The blocked domain'), 'required', '', ''], - 'reason' => ["reason[$id]", L10n::t("Reason for the block"), $b['reason'], L10n::t('The reason why you blocked this domain.') . '(' . $b['domain'] . ')', 'required', '', ''], - 'delete' => ["delete[$id]", L10n::t("Delete domain") . ' (' . $b['domain'] . ')', false, L10n::t("Check to delete this entry from the blocklist")] - ]; - } - } - - $t = Renderer::getMarkupTemplate('admin/blocklist/server.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Server Blocklist'), - '$intro' => L10n::t('This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server.'), - '$public' => L10n::t('The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily.'), - '$addtitle' => L10n::t('Add new entry to block list'), - '$newdomain' => ['newentry_domain', L10n::t('Server Domain'), '', L10n::t('The domain of the new server to add to the block list. Do not include the protocol.'), 'required', '', ''], - '$newreason' => ['newentry_reason', L10n::t('Block reason'), '', L10n::t('The reason why you blocked this domain.'), 'required', '', ''], - '$submit' => L10n::t('Add Entry'), - '$savechanges' => L10n::t('Save changes to the blocklist'), - '$currenttitle' => L10n::t('Current Entries in the Blocklist'), - '$thurl' => L10n::t('Blocked domain'), - '$threason' => L10n::t('Reason for the block'), - '$delentry' => L10n::t('Delete entry from blocklist'), - '$entries' => $blocklistform, - '$baseurl' => $a->getBaseURL(true), - '$confirm_delete' => L10n::t('Delete entry from blocklist?'), - '$form_security_token' => parent::getFormSecurityToken("admin_blocklist") - ]); - } -} + Strings::escapeTags(trim($_POST['newentry_domain'])), + 'reason' => Strings::escapeTags(trim($_POST['newentry_reason'])) + ]; + Config::set('system', 'blocklist', $blocklist); + info(L10n::t('Server added to blocklist.') . EOL); + } else { + // Edit the entries from blocklist + $blocklist = []; + foreach ($_POST['domain'] as $id => $domain) { + // Trimming whitespaces as well as any lingering slashes + $domain = Strings::escapeTags(trim($domain, "\x00..\x1F/")); + $reason = Strings::escapeTags(trim($_POST['reason'][$id])); + if (empty($_POST['delete'][$id])) { + $blocklist[] = [ + 'domain' => $domain, + 'reason' => $reason + ]; + } + } + Config::set('system', 'blocklist', $blocklist); + info(L10n::t('Site blocklist updated.') . EOL); + } + + self::getApp()->internalRedirect('admin/blocklist/server'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + $blocklist = Config::get('system', 'blocklist'); + $blocklistform = []; + if (is_array($blocklist)) { + foreach ($blocklist as $id => $b) { + $blocklistform[] = [ + 'domain' => ["domain[$id]", L10n::t('Blocked domain'), $b['domain'], '', L10n::t('The blocked domain'), 'required', '', ''], + 'reason' => ["reason[$id]", L10n::t("Reason for the block"), $b['reason'], L10n::t('The reason why you blocked this domain.') . '(' . $b['domain'] . ')', 'required', '', ''], + 'delete' => ["delete[$id]", L10n::t("Delete domain") . ' (' . $b['domain'] . ')', false, L10n::t("Check to delete this entry from the blocklist")] + ]; + } + } + + $t = Renderer::getMarkupTemplate('admin/blocklist/server.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Server Blocklist'), + '$intro' => L10n::t('This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server.'), + '$public' => L10n::t('The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily.'), + '$addtitle' => L10n::t('Add new entry to block list'), + '$newdomain' => ['newentry_domain', L10n::t('Server Domain'), '', L10n::t('The domain of the new server to add to the block list. Do not include the protocol.'), 'required', '', ''], + '$newreason' => ['newentry_reason', L10n::t('Block reason'), '', L10n::t('The reason why you blocked this domain.'), 'required', '', ''], + '$submit' => L10n::t('Add Entry'), + '$savechanges' => L10n::t('Save changes to the blocklist'), + '$currenttitle' => L10n::t('Current Entries in the Blocklist'), + '$thurl' => L10n::t('Blocked domain'), + '$threason' => L10n::t('Reason for the block'), + '$delentry' => L10n::t('Delete entry from blocklist'), + '$entries' => $blocklistform, + '$baseurl' => $a->getBaseURL(true), + '$confirm_delete' => L10n::t('Delete entry from blocklist?'), + '$form_security_token' => parent::getFormSecurityToken("admin_blocklist") + ]); + } +} diff --git a/src/Module/Admin/DBSync.php b/src/Module/Admin/DBSync.php index 69001b9ce..4c29eea34 100644 --- a/src/Module/Admin/DBSync.php +++ b/src/Module/Admin/DBSync.php @@ -1,107 +1,107 @@ -argc > 3 && $a->argv[2] === 'mark') { - // @TODO: Replace with parameter from router - $update = intval($a->argv[3]); - if ($update) { - Config::set('database', 'update_' . $update, 'success'); - $curr = Config::get('system', 'build'); - if (intval($curr) == $update) { - Config::set('system', 'build', intval($curr) + 1); - } - info(L10n::t('Update has been marked successful') . EOL); - } - $a->internalRedirect('admin/dbsync'); - } - - if ($a->argc > 2) { - if ($a->argv[2] === 'check') { - // @TODO Seems like a similar logic like Update::check() - $retval = DBStructure::update($a->getBasePath(), false, true); - if ($retval === '') { - $o .= L10n::t("Database structure update %s was successfully applied.", DB_UPDATE_VERSION) . "
        "; - Config::set('database', 'last_successful_update', DB_UPDATE_VERSION); - Config::set('database', 'last_successful_update_time', time()); - } else { - $o .= L10n::t("Executing of database structure update %s failed with error: %s", DB_UPDATE_VERSION, $retval) . "
        "; - } - if ($a->argv[2] === 'check') { - return $o; - } - } elseif (intval($a->argv[2])) { - require_once 'update.php'; - - // @TODO: Replace with parameter from router - $update = intval($a->argv[2]); - - $func = 'update_' . $update; - - if (function_exists($func)) { - $retval = $func(); - - if ($retval === Update::FAILED) { - $o .= L10n::t("Executing %s failed with error: %s", $func, $retval); - } elseif ($retval === Update::SUCCESS) { - $o .= L10n::t('Update %s was successfully applied.', $func); - Config::set('database', $func, 'success'); - } else { - $o .= L10n::t('Update %s did not return a status. Unknown if it succeeded.', $func); - } - } else { - $o .= L10n::t('There was no additional update function %s that needed to be called.', $func) . "
        "; - Config::set('database', $func, 'success'); - } - - return $o; - } - } - - $failed = []; - $configStmt = DBA::select('config', ['k', 'v'], ['cat' => 'database']); - while ($config = DBA::fetch($configStmt)) { - $upd = intval(substr($config['k'], 7)); - if ($upd >= 1139 && $config['v'] != 'success') { - $failed[] = $upd; - } - } - - if (!count($failed)) { - $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/structure_check.tpl'), [ - '$base' => $a->getBaseURL(true), - '$banner' => L10n::t('No failed updates.'), - '$check' => L10n::t('Check database structure'), - ]); - } else { - $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/failed_updates.tpl'), [ - '$base' => $a->getBaseURL(true), - '$banner' => L10n::t('Failed Updates'), - '$desc' => L10n::t('This does not include updates prior to 1139, which did not return a status.'), - '$mark' => L10n::t("Mark success \x28if update was manually applied\x29"), - '$apply' => L10n::t('Attempt to execute this update step automatically'), - '$failed' => $failed - ]); - } - - return $o; - } -} +argc > 3 && $a->argv[2] === 'mark') { + // @TODO: Replace with parameter from router + $update = intval($a->argv[3]); + if ($update) { + Config::set('database', 'update_' . $update, 'success'); + $curr = Config::get('system', 'build'); + if (intval($curr) == $update) { + Config::set('system', 'build', intval($curr) + 1); + } + info(L10n::t('Update has been marked successful') . EOL); + } + $a->internalRedirect('admin/dbsync'); + } + + if ($a->argc > 2) { + if ($a->argv[2] === 'check') { + // @TODO Seems like a similar logic like Update::check() + $retval = DBStructure::update($a->getBasePath(), false, true); + if ($retval === '') { + $o .= L10n::t("Database structure update %s was successfully applied.", DB_UPDATE_VERSION) . "
        "; + Config::set('database', 'last_successful_update', DB_UPDATE_VERSION); + Config::set('database', 'last_successful_update_time', time()); + } else { + $o .= L10n::t("Executing of database structure update %s failed with error: %s", DB_UPDATE_VERSION, $retval) . "
        "; + } + if ($a->argv[2] === 'check') { + return $o; + } + } elseif (intval($a->argv[2])) { + require_once 'update.php'; + + // @TODO: Replace with parameter from router + $update = intval($a->argv[2]); + + $func = 'update_' . $update; + + if (function_exists($func)) { + $retval = $func(); + + if ($retval === Update::FAILED) { + $o .= L10n::t("Executing %s failed with error: %s", $func, $retval); + } elseif ($retval === Update::SUCCESS) { + $o .= L10n::t('Update %s was successfully applied.', $func); + Config::set('database', $func, 'success'); + } else { + $o .= L10n::t('Update %s did not return a status. Unknown if it succeeded.', $func); + } + } else { + $o .= L10n::t('There was no additional update function %s that needed to be called.', $func) . "
        "; + Config::set('database', $func, 'success'); + } + + return $o; + } + } + + $failed = []; + $configStmt = DBA::select('config', ['k', 'v'], ['cat' => 'database']); + while ($config = DBA::fetch($configStmt)) { + $upd = intval(substr($config['k'], 7)); + if ($upd >= 1139 && $config['v'] != 'success') { + $failed[] = $upd; + } + } + + if (!count($failed)) { + $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/structure_check.tpl'), [ + '$base' => $a->getBaseURL(true), + '$banner' => L10n::t('No failed updates.'), + '$check' => L10n::t('Check database structure'), + ]); + } else { + $o = Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/dbsync/failed_updates.tpl'), [ + '$base' => $a->getBaseURL(true), + '$banner' => L10n::t('Failed Updates'), + '$desc' => L10n::t('This does not include updates prior to 1139, which did not return a status.'), + '$mark' => L10n::t("Mark success \x28if update was manually applied\x29"), + '$apply' => L10n::t('Attempt to execute this update step automatically'), + '$failed' => $failed + ]); + } + + return $o; + } +} diff --git a/src/Module/Admin/Features.php b/src/Module/Admin/Features.php index cb9acf4eb..328e7e68b 100644 --- a/src/Module/Admin/Features.php +++ b/src/Module/Admin/Features.php @@ -1,74 +1,74 @@ - $fdata) { - foreach (array_slice($fdata, 1) as $f) { - $feature = $f[0]; - $feature_state = 'feature_' . $feature; - $featurelock = 'featurelock_' . $feature; - - if (!empty($_POST[$feature_state])) { - $val = intval($_POST[$feature_state]); - } else { - $val = 0; - } - Config::set('feature', $feature, $val); - - if (!empty($_POST[$featurelock])) { - Config::set('feature_lock', $feature, $val); - } else { - Config::delete('feature_lock', $feature); - } - } - } - - self::getApp()->internalRedirect('admin/features'); - } - - public static function content() - { - parent::content(); - - $arr = []; - $features = Feature::get(false); - - foreach ($features as $fname => $fdata) { - $arr[$fname] = []; - $arr[$fname][0] = $fdata[0]; - foreach (array_slice($fdata, 1) as $f) { - $set = Config::get('feature', $f[0], $f[3]); - $arr[$fname][1][] = [ - ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]], - ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]] - ]; - } - } - - $tpl = Renderer::getMarkupTemplate('admin/features.tpl'); - $o = Renderer::replaceMacros($tpl, [ - '$form_security_token' => parent::getFormSecurityToken("admin_manage_features"), - '$title' => L10n::t('Manage Additional Features'), - '$features' => $arr, - '$submit' => L10n::t('Save Settings'), - ]); - - return $o; - } -} \ No newline at end of file + $fdata) { + foreach (array_slice($fdata, 1) as $f) { + $feature = $f[0]; + $feature_state = 'feature_' . $feature; + $featurelock = 'featurelock_' . $feature; + + if (!empty($_POST[$feature_state])) { + $val = intval($_POST[$feature_state]); + } else { + $val = 0; + } + Config::set('feature', $feature, $val); + + if (!empty($_POST[$featurelock])) { + Config::set('feature_lock', $feature, $val); + } else { + Config::delete('feature_lock', $feature); + } + } + } + + self::getApp()->internalRedirect('admin/features'); + } + + public static function content() + { + parent::content(); + + $arr = []; + $features = Feature::get(false); + + foreach ($features as $fname => $fdata) { + $arr[$fname] = []; + $arr[$fname][0] = $fdata[0]; + foreach (array_slice($fdata, 1) as $f) { + $set = Config::get('feature', $f[0], $f[3]); + $arr[$fname][1][] = [ + ['feature_' . $f[0], $f[1], $set, $f[2], [L10n::t('Off'), L10n::t('On')]], + ['featurelock_' . $f[0], L10n::t('Lock feature %s', $f[1]), (($f[4] !== false) ? "1" : ''), '', [L10n::t('Off'), L10n::t('On')]] + ]; + } + } + + $tpl = Renderer::getMarkupTemplate('admin/features.tpl'); + $o = Renderer::replaceMacros($tpl, [ + '$form_security_token' => parent::getFormSecurityToken("admin_manage_features"), + '$title' => L10n::t('Manage Additional Features'), + '$features' => $arr, + '$submit' => L10n::t('Save Settings'), + ]); + + return $o; + } +} diff --git a/src/Module/Admin/Item/Delete.php b/src/Module/Admin/Item/Delete.php index 9a9c9209b..766e65c9a 100644 --- a/src/Module/Admin/Item/Delete.php +++ b/src/Module/Admin/Item/Delete.php @@ -1,55 +1,55 @@ - $guid]); - } - - info(L10n::t('Item marked for deletion.') . EOL); - self::getApp()->internalRedirect('admin/item/delete'); - } - - public static function content() - { - parent::content(); - - $t = Renderer::getMarkupTemplate('admin/item/delete.tpl'); - - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Delete Item'), - '$submit' => L10n::t('Delete this Item'), - '$intro1' => L10n::t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'), - '$intro2' => L10n::t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'), - '$deleteitemguid' => ['deleteitemguid', L10n::t("GUID"), '', L10n::t("The GUID of the item you want to delete."), 'required', 'autofocus'], - '$form_security_token' => parent::getFormSecurityToken("admin_deleteitem") - ]); - } -} \ No newline at end of file + $guid]); + } + + info(L10n::t('Item marked for deletion.') . EOL); + self::getApp()->internalRedirect('admin/item/delete'); + } + + public static function content() + { + parent::content(); + + $t = Renderer::getMarkupTemplate('admin/item/delete.tpl'); + + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Delete Item'), + '$submit' => L10n::t('Delete this Item'), + '$intro1' => L10n::t('On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted.'), + '$intro2' => L10n::t('You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456.'), + '$deleteitemguid' => ['deleteitemguid', L10n::t("GUID"), '', L10n::t("The GUID of the item you want to delete."), 'required', 'autofocus'], + '$form_security_token' => parent::getFormSecurityToken("admin_deleteitem") + ]); + } +} diff --git a/src/Module/Admin/Logs/Settings.php b/src/Module/Admin/Logs/Settings.php index c42c5402c..d55618454 100644 --- a/src/Module/Admin/Logs/Settings.php +++ b/src/Module/Admin/Logs/Settings.php @@ -1,74 +1,74 @@ -internalRedirect('admin/logs'); - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - $log_choices = [ - LogLevel::ERROR => 'Error', - LogLevel::WARNING => 'Warning', - LogLevel::NOTICE => 'Notice', - LogLevel::INFO => 'Info', - LogLevel::DEBUG => 'Debug', - ]; - - if (ini_get('log_errors')) { - $phplogenabled = L10n::t('PHP log currently enabled.'); - } else { - $phplogenabled = L10n::t('PHP log currently disabled.'); - } - - $t = Renderer::getMarkupTemplate('admin/logs/settings.tpl'); - - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Logs'), - '$submit' => L10n::t('Save Settings'), - '$clear' => L10n::t('Clear'), - '$baseurl' => $a->getBaseURL(true), - '$logname' => Config::get('system', 'logfile'), - // see /help/smarty3-templates#1_1 on any Friendica node - '$debugging' => ['debugging', L10n::t("Enable Debugging"), Config::get('system', 'debugging'), ""], - '$logfile' => ['logfile', L10n::t("Log file"), Config::get('system', 'logfile'), L10n::t("Must be writable by web server. Relative to your Friendica top-level directory.")], - '$loglevel' => ['loglevel', L10n::t("Log level"), Config::get('system', 'loglevel'), "", $log_choices], - '$form_security_token' => parent::getFormSecurityToken("admin_logs"), - '$phpheader' => L10n::t("PHP logging"), - '$phphint' => L10n::t("To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."), - '$phplogcode' => "error_reporting(E_ERROR | E_WARNING | E_PARSE);\nini_set('error_log','php.out');\nini_set('log_errors','1');\nini_set('display_errors', '1');", - '$phplogenabled' => $phplogenabled, - ]); - } -} +internalRedirect('admin/logs'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + $log_choices = [ + LogLevel::ERROR => 'Error', + LogLevel::WARNING => 'Warning', + LogLevel::NOTICE => 'Notice', + LogLevel::INFO => 'Info', + LogLevel::DEBUG => 'Debug', + ]; + + if (ini_get('log_errors')) { + $phplogenabled = L10n::t('PHP log currently enabled.'); + } else { + $phplogenabled = L10n::t('PHP log currently disabled.'); + } + + $t = Renderer::getMarkupTemplate('admin/logs/settings.tpl'); + + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Logs'), + '$submit' => L10n::t('Save Settings'), + '$clear' => L10n::t('Clear'), + '$baseurl' => $a->getBaseURL(true), + '$logname' => Config::get('system', 'logfile'), + // see /help/smarty3-templates#1_1 on any Friendica node + '$debugging' => ['debugging', L10n::t("Enable Debugging"), Config::get('system', 'debugging'), ""], + '$logfile' => ['logfile', L10n::t("Log file"), Config::get('system', 'logfile'), L10n::t("Must be writable by web server. Relative to your Friendica top-level directory.")], + '$loglevel' => ['loglevel', L10n::t("Log level"), Config::get('system', 'loglevel'), "", $log_choices], + '$form_security_token' => parent::getFormSecurityToken("admin_logs"), + '$phpheader' => L10n::t("PHP logging"), + '$phphint' => L10n::t("To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."), + '$phplogcode' => "error_reporting(E_ERROR | E_WARNING | E_PARSE);\nini_set('error_log','php.out');\nini_set('log_errors','1');\nini_set('display_errors', '1');", + '$phplogenabled' => $phplogenabled, + ]); + } +} diff --git a/src/Module/Admin/Logs/View.php b/src/Module/Admin/Logs/View.php index 45b19bfac..b66a6781e 100644 --- a/src/Module/Admin/Logs/View.php +++ b/src/Module/Admin/Logs/View.php @@ -1,52 +1,52 @@ -%1$s log file.\r\n
        Check to see if file %1$s exist and is readable.', $f); - } else { - $fp = fopen($f, 'r'); - if (!$fp) { - $data = L10n::t('Couldn\'t open %1$s log file.\r\n
        Check to see if file %1$s is readable.', $f); - } else { - $fstat = fstat($fp); - $size = $fstat['size']; - if ($size != 0) { - if ($size > 5000000 || $size < 0) { - $size = 5000000; - } - $seek = fseek($fp, 0 - $size, SEEK_END); - if ($seek === 0) { - $data = Strings::escapeHtml(fread($fp, $size)); - while (!feof($fp)) { - $data .= Strings::escapeHtml(fread($fp, 4096)); - } - } - } - fclose($fp); - } - } - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('View Logs'), - '$data' => $data, - '$logname' => Config::get('system', 'logfile') - ]); - } -} +%1$s log file.\r\n
        Check to see if file %1$s exist and is readable.', $f); + } else { + $fp = fopen($f, 'r'); + if (!$fp) { + $data = L10n::t('Couldn\'t open %1$s log file.\r\n
        Check to see if file %1$s is readable.', $f); + } else { + $fstat = fstat($fp); + $size = $fstat['size']; + if ($size != 0) { + if ($size > 5000000 || $size < 0) { + $size = 5000000; + } + $seek = fseek($fp, 0 - $size, SEEK_END); + if ($seek === 0) { + $data = Strings::escapeHtml(fread($fp, $size)); + while (!feof($fp)) { + $data .= Strings::escapeHtml(fread($fp, 4096)); + } + } + } + fclose($fp); + } + } + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('View Logs'), + '$data' => $data, + '$logname' => Config::get('system', 'logfile') + ]); + } +} diff --git a/src/Module/Admin/PhpInfo.php b/src/Module/Admin/PhpInfo.php index 2d0e9c1d5..b912117dc 100644 --- a/src/Module/Admin/PhpInfo.php +++ b/src/Module/Admin/PhpInfo.php @@ -1,16 +1,16 @@ -argc > 2 && $a->argv[2] == 'deferred'; - - // get jobs from the workerqueue table - if ($deferred) { - $condition = ["NOT `done` AND `next_try` > ?", DateTimeFormat::utcNow()]; - $sub_title = L10n::t('Inspect Deferred Worker Queue'); - $info = L10n::t("This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."); - } else { - $condition = ["NOT `done` AND `next_try` < ?", DateTimeFormat::utcNow()]; - $sub_title = L10n::t('Inspect Worker Queue'); - $info = L10n::t('This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you\'ve set up during install.'); - } - - $entries = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], $condition, ['order' => ['priority']]); - - $r = []; - while ($entry = DBA::fetch($entries)) { - // fix GH-5469. ref: src/Core/Worker.php:217 - $entry['parameter'] = Arrays::recursiveImplode(json_decode($entry['parameter'], true), ': '); - $entry['created'] = DateTimeFormat::local($entry['created']); - $r[] = $entry; - } - DBA::close($entries); - - $t = Renderer::getMarkupTemplate('admin/queue.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => $sub_title, - '$count' => count($r), - '$id_header' => L10n::t('ID'), - '$param_header' => L10n::t('Job Parameters'), - '$created_header' => L10n::t('Created'), - '$prio_header' => L10n::t('Priority'), - '$info' => $info, - '$entries' => $r, - ]); - } -} +argc > 2 && $a->argv[2] == 'deferred'; + + // get jobs from the workerqueue table + if ($deferred) { + $condition = ["NOT `done` AND `next_try` > ?", DateTimeFormat::utcNow()]; + $sub_title = L10n::t('Inspect Deferred Worker Queue'); + $info = L10n::t("This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."); + } else { + $condition = ["NOT `done` AND `next_try` < ?", DateTimeFormat::utcNow()]; + $sub_title = L10n::t('Inspect Worker Queue'); + $info = L10n::t('This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you\'ve set up during install.'); + } + + $entries = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], $condition, ['order' => ['priority']]); + + $r = []; + while ($entry = DBA::fetch($entries)) { + // fix GH-5469. ref: src/Core/Worker.php:217 + $entry['parameter'] = Arrays::recursiveImplode(json_decode($entry['parameter'], true), ': '); + $entry['created'] = DateTimeFormat::local($entry['created']); + $r[] = $entry; + } + DBA::close($entries); + + $t = Renderer::getMarkupTemplate('admin/queue.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => $sub_title, + '$count' => count($r), + '$id_header' => L10n::t('ID'), + '$param_header' => L10n::t('Job Parameters'), + '$created_header' => L10n::t('Created'), + '$prio_header' => L10n::t('Priority'), + '$info' => $info, + '$entries' => $r, + ]); + } +} diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php index 05ca16a16..37507ca99 100644 --- a/src/Module/Admin/Site.php +++ b/src/Module/Admin/Site.php @@ -39,6 +39,7 @@ class Site extends BaseAdminModule } // relocate + // @TODO This file could benefit from moving this feature away in a Module\Admin\Relocate class for example if (!empty($_POST['relocate']) && !empty($_POST['relocate_url']) && $_POST['relocate_url'] != "") { $new_url = $_POST['relocate_url']; $new_url = rtrim($new_url, "/"); diff --git a/src/Module/Admin/Summary.php b/src/Module/Admin/Summary.php index 8529c7142..a78a6b8d7 100644 --- a/src/Module/Admin/Summary.php +++ b/src/Module/Admin/Summary.php @@ -1,147 +1,147 @@ - 'myisam', 'table_schema' => DBA::databaseName()])) { - $warningtext[] = L10n::t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
        ', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); - } - - // Check if github.com/friendica/master/VERSION is higher then - // the local version of Friendica. Check is opt-in, source may be master or devel branch - if (Config::get('system', 'check_new_version_url', 'none') != 'none') { - $gitversion = Config::get('system', 'git_friendica_version'); - if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) { - $warningtext[] = L10n::t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion); - } - } - - if (Config::get('system', 'dbupdate', DBStructure::UPDATE_NOT_CHECKED) == DBStructure::UPDATE_NOT_CHECKED) { - DBStructure::update($a->getBasePath(), false, true); - } - - if (Config::get('system', 'dbupdate') == DBStructure::UPDATE_FAILED) { - $warningtext[] = L10n::t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.'); - } - - if (Config::get('system', 'update') == Update::FAILED) { - $warningtext[] = L10n::t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)'); - } - - $last_worker_call = Config::get('system', 'last_worker_execution', false); - if (!$last_worker_call) { - $warningtext[] = L10n::t('The worker was never executed. Please check your database structure!'); - } elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) { - $warningtext[] = L10n::t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call); - } - - // Legacy config file warning - if (file_exists('.htconfig.php')) { - $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); - } - - if (file_exists('config/local.ini.php')) { - $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); - } - - // Check server vitality - if (!self::checkSelfHostMeta()) { - $well_known = $a->getBaseURL() . '/.well-known/host-meta'; - $warningtext[] = L10n::t('%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help.', - $well_known, $well_known, $a->getBaseURL() . '/help/Install'); - } - - $accounts = [ - [L10n::t('Normal Account'), 0], - [L10n::t('Automatic Follower Account'), 0], - [L10n::t('Public Forum Account'), 0], - [L10n::t('Automatic Friend Account'), 0], - [L10n::t('Blog Account'), 0], - [L10n::t('Private Forum Account'), 0] - ]; - - $users = 0; - $pageFlagsCountStmt = DBA::p('SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`'); - while ($pageFlagsCount = DBA::fetch($pageFlagsCountStmt)) { - $accounts[$pageFlagsCount['page-flags']][1] = $pageFlagsCount['count']; - $users += $pageFlagsCount['count']; - } - DBA::close($pageFlagsCountStmt); - - Logger::log('accounts: ' . print_r($accounts, true), Logger::DATA); - - $pending = Register::getPendingCount(); - - $queue = DBA::count('queue', []); - - $deferred = DBA::count('workerqueue', ['`executed` <= ? AND NOT `done` AND `next_try` > ?', - DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); - - $workerqueue = DBA::count('workerqueue', ['`executed` <= ? AND NOT `done` AND `next_try` < ?', - DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); - - // We can do better, but this is a quick queue status - $queues = ['label' => L10n::t('Message queues'), 'queue' => $queue, 'deferred' => $deferred, 'workerq' => $workerqueue]; - - $variables = DBA::toArray(DBA::p('SHOW variables LIKE "max_allowed_packet"')); - $max_allowed_packet = $variables ? $variables[0]['Value'] : 0; - - $server_settings = [ - 'label' => L10n::t('Server Settings'), - 'php' => [ - 'upload_max_filesize' => ini_get('upload_max_filesize'), - 'post_max_size' => ini_get('post_max_size'), - 'memory_limit' => ini_get('memory_limit') - ], - 'mysql' => [ - 'max_allowed_packet' => $max_allowed_packet - ] - ]; - - $t = Renderer::getMarkupTemplate('admin/summary.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Summary'), - '$queues' => $queues, - '$users' => [L10n::t('Registered users'), $users], - '$accounts' => $accounts, - '$pending' => [L10n::t('Pending registrations'), $pending], - '$version' => [L10n::t('Version'), FRIENDICA_VERSION], - '$platform' => FRIENDICA_PLATFORM, - '$codename' => FRIENDICA_CODENAME, - '$build' => Config::get('system', 'build'), - '$addons' => [L10n::t('Active addons'), Addon::getEnabledList()], - '$serversettings' => $server_settings, - '$warningtext' => $warningtext - ]); - } - - private static function checkSelfHostMeta() - { - // Fetch the host-meta to check if this really is a vital server - return Network::curl(self::getApp()->getBaseURL() . '/.well-known/host-meta')->isSuccess(); - } - -} \ No newline at end of file + 'myisam', 'table_schema' => DBA::databaseName()])) { + $warningtext[] = L10n::t('Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
        ', 'https://dev.mysql.com/doc/refman/5.7/en/converting-tables-to-innodb.html'); + } + + // Check if github.com/friendica/master/VERSION is higher then + // the local version of Friendica. Check is opt-in, source may be master or devel branch + if (Config::get('system', 'check_new_version_url', 'none') != 'none') { + $gitversion = Config::get('system', 'git_friendica_version'); + if (version_compare(FRIENDICA_VERSION, $gitversion) < 0) { + $warningtext[] = L10n::t('There is a new version of Friendica available for download. Your current version is %1$s, upstream version is %2$s', FRIENDICA_VERSION, $gitversion); + } + } + + if (Config::get('system', 'dbupdate', DBStructure::UPDATE_NOT_CHECKED) == DBStructure::UPDATE_NOT_CHECKED) { + DBStructure::update($a->getBasePath(), false, true); + } + + if (Config::get('system', 'dbupdate') == DBStructure::UPDATE_FAILED) { + $warningtext[] = L10n::t('The database update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear.'); + } + + if (Config::get('system', 'update') == Update::FAILED) { + $warningtext[] = L10n::t('The last update failed. Please run "php bin/console.php dbstructure update" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)'); + } + + $last_worker_call = Config::get('system', 'last_worker_execution', false); + if (!$last_worker_call) { + $warningtext[] = L10n::t('The worker was never executed. Please check your database structure!'); + } elseif ((strtotime(DateTimeFormat::utcNow()) - strtotime($last_worker_call)) > 60 * 60) { + $warningtext[] = L10n::t('The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings.', $last_worker_call); + } + + // Legacy config file warning + if (file_exists('.htconfig.php')) { + $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); + } + + if (file_exists('config/local.ini.php')) { + $warningtext[] = L10n::t('Friendica\'s configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition.', $a->getBaseURL() . '/help/Config'); + } + + // Check server vitality + if (!self::checkSelfHostMeta()) { + $well_known = $a->getBaseURL() . '/.well-known/host-meta'; + $warningtext[] = L10n::t('%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help.', + $well_known, $well_known, $a->getBaseURL() . '/help/Install'); + } + + $accounts = [ + [L10n::t('Normal Account'), 0], + [L10n::t('Automatic Follower Account'), 0], + [L10n::t('Public Forum Account'), 0], + [L10n::t('Automatic Friend Account'), 0], + [L10n::t('Blog Account'), 0], + [L10n::t('Private Forum Account'), 0] + ]; + + $users = 0; + $pageFlagsCountStmt = DBA::p('SELECT `page-flags`, COUNT(`uid`) AS `count` FROM `user` GROUP BY `page-flags`'); + while ($pageFlagsCount = DBA::fetch($pageFlagsCountStmt)) { + $accounts[$pageFlagsCount['page-flags']][1] = $pageFlagsCount['count']; + $users += $pageFlagsCount['count']; + } + DBA::close($pageFlagsCountStmt); + + Logger::log('accounts: ' . print_r($accounts, true), Logger::DATA); + + $pending = Register::getPendingCount(); + + $queue = DBA::count('queue', []); + + $deferred = DBA::count('workerqueue', ['`executed` <= ? AND NOT `done` AND `next_try` > ?', + DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); + + $workerqueue = DBA::count('workerqueue', ['`executed` <= ? AND NOT `done` AND `next_try` < ?', + DBA::NULL_DATETIME, DateTimeFormat::utcNow()]); + + // We can do better, but this is a quick queue status + $queues = ['label' => L10n::t('Message queues'), 'queue' => $queue, 'deferred' => $deferred, 'workerq' => $workerqueue]; + + $variables = DBA::toArray(DBA::p('SHOW variables LIKE "max_allowed_packet"')); + $max_allowed_packet = $variables ? $variables[0]['Value'] : 0; + + $server_settings = [ + 'label' => L10n::t('Server Settings'), + 'php' => [ + 'upload_max_filesize' => ini_get('upload_max_filesize'), + 'post_max_size' => ini_get('post_max_size'), + 'memory_limit' => ini_get('memory_limit') + ], + 'mysql' => [ + 'max_allowed_packet' => $max_allowed_packet + ] + ]; + + $t = Renderer::getMarkupTemplate('admin/summary.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Summary'), + '$queues' => $queues, + '$users' => [L10n::t('Registered users'), $users], + '$accounts' => $accounts, + '$pending' => [L10n::t('Pending registrations'), $pending], + '$version' => [L10n::t('Version'), FRIENDICA_VERSION], + '$platform' => FRIENDICA_PLATFORM, + '$codename' => FRIENDICA_CODENAME, + '$build' => Config::get('system', 'build'), + '$addons' => [L10n::t('Active addons'), Addon::getEnabledList()], + '$serversettings' => $server_settings, + '$warningtext' => $warningtext + ]); + } + + private static function checkSelfHostMeta() + { + // Fetch the host-meta to check if this really is a vital server + return Network::curl(self::getApp()->getBaseURL() . '/.well-known/host-meta')->isSuccess(); + } + +} diff --git a/src/Module/Admin/Themes/Details.php b/src/Module/Admin/Themes/Details.php index d8a2d2139..3750e9607 100644 --- a/src/Module/Admin/Themes/Details.php +++ b/src/Module/Admin/Themes/Details.php @@ -1,126 +1,126 @@ -argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (is_file("view/theme/$theme/config.php")) { - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin_post')) { - theme_admin_post($a); - } - } - - info(L10n::t('Theme settings updated.')); - - if ($a->isAjax()) { - return; - } - - $a->internalRedirect('admin/themes/' . $theme); - } - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (!is_dir("view/theme/$theme")) { - notice(L10n::t("Item not found.")); - return ''; - } - - $isEnabled = in_array($theme, Theme::getAllowedList()); - if ($isEnabled) { - $status = "on"; - $action = L10n::t("Disable"); - } else { - $status = "off"; - $action = L10n::t("Enable"); - } - - if (!empty($_GET['action']) && $_GET['action'] == 'toggle') { - parent::checkFormSecurityTokenRedirectOnError('/admin/themes', 'admin_themes', 't'); - - if ($isEnabled) { - Theme::uninstall($theme); - info(L10n::t('Theme %s disabled.', $theme)); - } elseif (Theme::install($theme)) { - info(L10n::t('Theme %s successfully enabled.', $theme)); - } else { - info(L10n::t('Theme %s failed to install.', $theme)); - } - - $a->internalRedirect('admin/themes/' . $theme); - } - - $readme = null; - if (is_file("view/theme/$theme/README.md")) { - $readme = Markdown::convert(file_get_contents("view/theme/$theme/README.md"), false); - } elseif (is_file("view/theme/$theme/README")) { - $readme = "
        " . file_get_contents("view/theme/$theme/README") . "
        "; - } - - $admin_form = ''; - if (is_file("view/theme/$theme/config.php")) { - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin')) { - $admin_form = ''; - } - } - - $screenshot = [Theme::getScreenshot($theme), L10n::t('Screenshot')]; - if (!stristr($screenshot[0], $theme)) { - $screenshot = null; - } - - $t = Renderer::getMarkupTemplate('admin/addons/details.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Themes'), - '$toggle' => L10n::t('Toggle'), - '$settings' => L10n::t('Settings'), - '$baseurl' => $a->getBaseURL(true), - '$addon' => $theme, - '$status' => $status, - '$action' => $action, - '$info' => Theme::getInfo($theme), - '$function' => 'themes', - '$admin_form' => $admin_form, - '$str_author' => L10n::t('Author: '), - '$str_maintainer' => L10n::t('Maintainer: '), - '$screenshot' => $screenshot, - '$readme' => $readme, - - '$form_security_token' => parent::getFormSecurityToken("admin_themes"), - ]); - } - - $a->internalRedirect('admin/themes'); - } -} \ No newline at end of file +argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin_post')) { + theme_admin_post($a); + } + } + + info(L10n::t('Theme settings updated.')); + + if ($a->isAjax()) { + return; + } + + $a->internalRedirect('admin/themes/' . $theme); + } + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (!is_dir("view/theme/$theme")) { + notice(L10n::t("Item not found.")); + return ''; + } + + $isEnabled = in_array($theme, Theme::getAllowedList()); + if ($isEnabled) { + $status = "on"; + $action = L10n::t("Disable"); + } else { + $status = "off"; + $action = L10n::t("Enable"); + } + + if (!empty($_GET['action']) && $_GET['action'] == 'toggle') { + parent::checkFormSecurityTokenRedirectOnError('/admin/themes', 'admin_themes', 't'); + + if ($isEnabled) { + Theme::uninstall($theme); + info(L10n::t('Theme %s disabled.', $theme)); + } elseif (Theme::install($theme)) { + info(L10n::t('Theme %s successfully enabled.', $theme)); + } else { + info(L10n::t('Theme %s failed to install.', $theme)); + } + + $a->internalRedirect('admin/themes/' . $theme); + } + + $readme = null; + if (is_file("view/theme/$theme/README.md")) { + $readme = Markdown::convert(file_get_contents("view/theme/$theme/README.md"), false); + } elseif (is_file("view/theme/$theme/README")) { + $readme = "
        " . file_get_contents("view/theme/$theme/README") . "
        "; + } + + $admin_form = ''; + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin')) { + $admin_form = ''; + } + } + + $screenshot = [Theme::getScreenshot($theme), L10n::t('Screenshot')]; + if (!stristr($screenshot[0], $theme)) { + $screenshot = null; + } + + $t = Renderer::getMarkupTemplate('admin/addons/details.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Themes'), + '$toggle' => L10n::t('Toggle'), + '$settings' => L10n::t('Settings'), + '$baseurl' => $a->getBaseURL(true), + '$addon' => $theme, + '$status' => $status, + '$action' => $action, + '$info' => Theme::getInfo($theme), + '$function' => 'themes', + '$admin_form' => $admin_form, + '$str_author' => L10n::t('Author: '), + '$str_maintainer' => L10n::t('Maintainer: '), + '$screenshot' => $screenshot, + '$readme' => $readme, + + '$form_security_token' => parent::getFormSecurityToken("admin_themes"), + ]); + } + + $a->internalRedirect('admin/themes'); + } +} diff --git a/src/Module/Admin/Themes/Embed.php b/src/Module/Admin/Themes/Embed.php index 4ca2a4e7a..dc41d11a4 100644 --- a/src/Module/Admin/Themes/Embed.php +++ b/src/Module/Admin/Themes/Embed.php @@ -1,90 +1,90 @@ -argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (is_file("view/theme/$theme/config.php")) { - $a->setCurrentTheme($theme); - } - } - } - - public static function post() - { - parent::post(); - - $a = self::getApp(); - - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (is_file("view/theme/$theme/config.php")) { - self::checkFormSecurityTokenRedirectOnError('/admin/themes/' . $theme . '/embed?mode=minimal', 'admin_theme_settings'); - - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin_post')) { - theme_admin_post($a); - } - } - - info(L10n::t('Theme settings updated.')); - - if ($a->isAjax()) { - return; - } - - $a->internalRedirect('admin/themes/' . $theme . '/embed?mode=minimal'); - } - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - if ($a->argc > 2) { - // @TODO: Replace with parameter from router - $theme = $a->argv[2]; - $theme = Strings::sanitizeFilePathItem($theme); - if (!is_dir("view/theme/$theme")) { - notice(L10n::t('Unknown theme.')); - return ''; - } - - $admin_form = ''; - if (is_file("view/theme/$theme/config.php")) { - require_once "view/theme/$theme/config.php"; - - if (function_exists('theme_admin')) { - $admin_form = theme_admin($a); - } - } - - $t = Renderer::getMarkupTemplate('admin/addons/embed.tpl'); - return Renderer::replaceMacros($t, [ - '$action' => '/admin/themes/' . $theme . '/embed?mode=minimal', - '$form' => $admin_form, - '$form_security_token' => parent::getFormSecurityToken("admin_theme_settings"), - ]); - } - - return ''; - } -} \ No newline at end of file +argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (is_file("view/theme/$theme/config.php")) { + $a->setCurrentTheme($theme); + } + } + } + + public static function post() + { + parent::post(); + + $a = self::getApp(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (is_file("view/theme/$theme/config.php")) { + self::checkFormSecurityTokenRedirectOnError('/admin/themes/' . $theme . '/embed?mode=minimal', 'admin_theme_settings'); + + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin_post')) { + theme_admin_post($a); + } + } + + info(L10n::t('Theme settings updated.')); + + if ($a->isAjax()) { + return; + } + + $a->internalRedirect('admin/themes/' . $theme . '/embed?mode=minimal'); + } + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + if ($a->argc > 2) { + // @TODO: Replace with parameter from router + $theme = $a->argv[2]; + $theme = Strings::sanitizeFilePathItem($theme); + if (!is_dir("view/theme/$theme")) { + notice(L10n::t('Unknown theme.')); + return ''; + } + + $admin_form = ''; + if (is_file("view/theme/$theme/config.php")) { + require_once "view/theme/$theme/config.php"; + + if (function_exists('theme_admin')) { + $admin_form = theme_admin($a); + } + } + + $t = Renderer::getMarkupTemplate('admin/addons/embed.tpl'); + return Renderer::replaceMacros($t, [ + '$action' => '/admin/themes/' . $theme . '/embed?mode=minimal', + '$form' => $admin_form, + '$form_security_token' => parent::getFormSecurityToken("admin_theme_settings"), + ]); + } + + return ''; + } +} diff --git a/src/Module/Admin/Themes/Index.php b/src/Module/Admin/Themes/Index.php index 62c775bf0..71a91919b 100644 --- a/src/Module/Admin/Themes/Index.php +++ b/src/Module/Admin/Themes/Index.php @@ -1,107 +1,107 @@ -getBaseURL() . '/admin/themes', 'admin_themes', 't'); - - switch ($_GET['action']) { - case 'reload': - foreach ($allowed_themes as $theme) { - Theme::uninstall($theme['name']); - Theme::install($theme['name']); - } - - info('Themes reloaded'); - break; - - case 'toggle' : - $theme = defaults($_GET, 'addon', ''); - if ($theme) { - $theme = Strings::sanitizeFilePathItem($theme); - if (!is_dir("view/theme/$theme")) { - notice(L10n::t('Item not found.')); - return ''; - } - - if (in_array($theme, Theme::getAllowedList())) { - Theme::uninstall($theme); - info(L10n::t('Theme %s disabled.', $theme)); - } elseif (Theme::install($theme)) { - info(L10n::t('Theme %s successfully enabled.', $theme)); - } else { - info(L10n::t('Theme %s failed to install.', $theme)); - } - } - - break; - - } - - $a->internalRedirect('admin/themes'); - } - - $themes = []; - $files = glob('view/theme/*'); - if (is_array($files)) { - foreach ($files as $file) { - $theme = basename($file); - - // Is there a style file? - $theme_files = glob('view/theme/' . $theme . '/style.*'); - - // If not then quit - if (count($theme_files) == 0) { - continue; - } - - $is_experimental = intval(file_exists($file . '/experimental')); - $is_supported = 1 - (intval(file_exists($file . '/unsupported'))); - $is_allowed = intval(in_array($theme, $allowed_themes)); - - if ($is_allowed || $is_supported || Config::get('system', 'show_unsupported_themes')) { - $themes[] = ['name' => $theme, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed]; - } - } - } - - $addons = []; - foreach ($themes as $theme) { - $addons[] = [$theme['name'], (($theme['allowed']) ? 'on' : 'off'), Theme::getInfo($theme['name'])]; - } - - $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Themes'), - '$submit' => L10n::t('Save Settings'), - '$reload' => L10n::t('Reload active themes'), - '$baseurl' => $a->getBaseURL(true), - '$function' => 'themes', - '$addons' => $addons, - '$pcount' => count($themes), - '$noplugshint' => L10n::t('No themes found on the system. They should be placed in %1$s', '/view/themes'), - '$experimental' => L10n::t('[Experimental]'), - '$unsupported' => L10n::t('[Unsupported]'), - '$form_security_token' => parent::getFormSecurityToken('admin_themes'), - ]); - } -} \ No newline at end of file +getBaseURL() . '/admin/themes', 'admin_themes', 't'); + + switch ($_GET['action']) { + case 'reload': + foreach ($allowed_themes as $theme) { + Theme::uninstall($theme['name']); + Theme::install($theme['name']); + } + + info('Themes reloaded'); + break; + + case 'toggle' : + $theme = defaults($_GET, 'addon', ''); + if ($theme) { + $theme = Strings::sanitizeFilePathItem($theme); + if (!is_dir("view/theme/$theme")) { + notice(L10n::t('Item not found.')); + return ''; + } + + if (in_array($theme, Theme::getAllowedList())) { + Theme::uninstall($theme); + info(L10n::t('Theme %s disabled.', $theme)); + } elseif (Theme::install($theme)) { + info(L10n::t('Theme %s successfully enabled.', $theme)); + } else { + info(L10n::t('Theme %s failed to install.', $theme)); + } + } + + break; + + } + + $a->internalRedirect('admin/themes'); + } + + $themes = []; + $files = glob('view/theme/*'); + if (is_array($files)) { + foreach ($files as $file) { + $theme = basename($file); + + // Is there a style file? + $theme_files = glob('view/theme/' . $theme . '/style.*'); + + // If not then quit + if (count($theme_files) == 0) { + continue; + } + + $is_experimental = intval(file_exists($file . '/experimental')); + $is_supported = 1 - (intval(file_exists($file . '/unsupported'))); + $is_allowed = intval(in_array($theme, $allowed_themes)); + + if ($is_allowed || $is_supported || Config::get('system', 'show_unsupported_themes')) { + $themes[] = ['name' => $theme, 'experimental' => $is_experimental, 'supported' => $is_supported, 'allowed' => $is_allowed]; + } + } + } + + $addons = []; + foreach ($themes as $theme) { + $addons[] = [$theme['name'], (($theme['allowed']) ? 'on' : 'off'), Theme::getInfo($theme['name'])]; + } + + $t = Renderer::getMarkupTemplate('admin/addons/index.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Themes'), + '$submit' => L10n::t('Save Settings'), + '$reload' => L10n::t('Reload active themes'), + '$baseurl' => $a->getBaseURL(true), + '$function' => 'themes', + '$addons' => $addons, + '$pcount' => count($themes), + '$noplugshint' => L10n::t('No themes found on the system. They should be placed in %1$s', '/view/themes'), + '$experimental' => L10n::t('[Experimental]'), + '$unsupported' => L10n::t('[Unsupported]'), + '$form_security_token' => parent::getFormSecurityToken('admin_themes'), + ]); + } +} diff --git a/src/Module/Admin/Tos.php b/src/Module/Admin/Tos.php index efab22f8e..4eb6e3426 100644 --- a/src/Module/Admin/Tos.php +++ b/src/Module/Admin/Tos.php @@ -1,53 +1,53 @@ -internalRedirect('admin/tos'); - } - - public static function content() - { - parent::content(); - - $tos = new \Friendica\Module\Tos(); - $t = Renderer::getMarkupTemplate('admin/tos.tpl'); - return Renderer::replaceMacros($t, [ - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Terms of Service'), - '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')], - '$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], - '$preview' => L10n::t('Privacy Statement Preview'), - '$privtext' => $tos->privacy_complete, - '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], - '$form_security_token' => parent::getFormSecurityToken('admin_tos'), - '$submit' => L10n::t('Save Settings'), - ]); - } -} \ No newline at end of file +internalRedirect('admin/tos'); + } + + public static function content() + { + parent::content(); + + $tos = new \Friendica\Module\Tos(); + $t = Renderer::getMarkupTemplate('admin/tos.tpl'); + return Renderer::replaceMacros($t, [ + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Terms of Service'), + '$displaytos' => ['displaytos', L10n::t('Display Terms of Service'), Config::get('system', 'tosdisplay'), L10n::t('Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page.')], + '$displayprivstatement' => ['displayprivstatement', L10n::t('Display Privacy Statement'), Config::get('system', 'tosprivstatement'), L10n::t('Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR.', 'https://en.wikipedia.org/wiki/General_Data_Protection_Regulation')], + '$preview' => L10n::t('Privacy Statement Preview'), + '$privtext' => $tos->privacy_complete, + '$tostext' => ['tostext', L10n::t('The Terms of Service'), Config::get('system', 'tostext'), L10n::t('Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below.')], + '$form_security_token' => parent::getFormSecurityToken('admin_tos'), + '$submit' => L10n::t('Save Settings'), + ]); + } +} diff --git a/src/Module/Admin/Users.php b/src/Module/Admin/Users.php index 4d25f4f89..d9852e98d 100644 --- a/src/Module/Admin/Users.php +++ b/src/Module/Admin/Users.php @@ -1,318 +1,318 @@ - $nu_name, - 'email' => $nu_email, - 'nickname' => $nu_nickname, - 'verified' => 1, - 'language' => $nu_language - ]); - } catch (\Exception $ex) { - notice($ex->getMessage()); - return; - } - - $user = $result['user']; - $preamble = Strings::deindent(L10n::t(' - Dear %1$s, - the administrator of %2$s has set up an account for you.')); - $body = Strings::deindent(L10n::t(' - The login details are as follows: - - Site Location: %1$s - Login Name: %2$s - Password: %3$s - - You may change your password from your account "Settings" page after logging - in. - - Please take a few moments to review the other account settings on that page. - - You may also wish to add some basic information to your default profile - (on the "Profiles" page) so that other people can easily find you. - - We recommend setting your full name, adding a profile photo, - adding some profile "keywords" (very useful in making new friends) - and - perhaps what country you live in; if you do not wish to be more specific - than that. - - We fully respect your right to privacy, and none of these items are necessary. - If you are new and do not know anybody here, they may help - you to make some new and interesting friends. - - If you ever want to delete your account, you can do so at %1$s/removeme - - Thank you and welcome to %4$s.')); - - $preamble = sprintf($preamble, $user['username'], Config::get('config', 'sitename')); - $body = sprintf($body, $a->getBaseURL(), $user['nickname'], $result['password'], Config::get('config', 'sitename')); - - notification([ - 'type' => SYSTEM_EMAIL, - 'language' => $user['language'], - 'to_name' => $user['username'], - 'to_email' => $user['email'], - 'uid' => $user['uid'], - 'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')), - 'preamble' => $preamble, - 'body' => $body]); - } - - if (!empty($_POST['page_users_block'])) { - DBA::update('user', ['blocked' => 1], ['uid' => $users]); - notice(L10n::tt('%s user blocked', '%s users blocked', count($users))); - } - - if (!empty($_POST['page_users_unblock'])) { - DBA::update('user', ['blocked' => 0], ['uid' => $users]); - notice(L10n::tt('%s user unblocked', '%s users unblocked', count($users))); - } - - if (!empty($_POST['page_users_delete'])) { - foreach ($users as $uid) { - if (local_user() != $uid) { - User::remove($uid); - } else { - notice(L10n::t('You can\'t remove yourself')); - } - } - - notice(L10n::tt('%s user deleted', '%s users deleted', count($users))); - } - - if (!empty($_POST['page_users_approve'])) { - require_once 'mod/regmod.php'; - foreach ($pending as $hash) { - user_allow($hash); - } - } - - if (!empty($_POST['page_users_deny'])) { - require_once 'mod/regmod.php'; - foreach ($pending as $hash) { - user_deny($hash); - } - } - - $a->internalRedirect('admin/users'); - } - - public static function content() - { - parent::content(); - - $a = self::getApp(); - - if ($a->argc > 3) { - // @TODO: Replace with parameter from router - $action = $a->argv[2]; - $uid = $a->argv[3]; - $user = DBA::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]); - if (!DBA::isResult($user)) { - notice('User not found' . EOL); - $a->internalRedirect('admin/users'); - return ''; // NOTREACHED - } - - switch ($action) { - case 'delete': - if (local_user() != $uid) { - parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); - // delete user - User::remove($uid); - - notice(L10n::t('User "%s" deleted', $user['username'])); - } else { - notice(L10n::t('You can\'t remove yourself')); - } - break; - case 'block': - parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); - DBA::update('user', ['blocked' => 1], ['uid' => $uid]); - notice(L10n::t('User "%s" blocked', $user['username'])); - break; - case 'unblock': - parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); - DBA::update('user', ['blocked' => 0], ['uid' => $uid]); - notice(L10n::t('User "%s" unblocked', $user['username'])); - break; - } - - $a->internalRedirect('admin/users'); - } - - /* get pending */ - $pending = Register::getPending(); - - $pager = new Pager($a->query_string, 100); - - /* ordering */ - $valid_orders = [ - 'contact.name', - 'user.email', - 'user.register_date', - 'user.login_date', - 'lastitem_date', - 'user.page-flags' - ]; - - $order = 'contact.name'; - $order_direction = '+'; - if (!empty($_GET['o'])) { - $new_order = $_GET['o']; - if ($new_order[0] === '-') { - $order_direction = '-'; - $new_order = substr($new_order, 1); - } - - if (in_array($new_order, $valid_orders)) { - $order = $new_order; - } - } - $sql_order = '`' . str_replace('.', '`.`', $order) . '`'; - $sql_order_direction = ($order_direction === '+') ? 'ASC' : 'DESC'; - - $usersStmt = DBA::p("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date` - FROM `user` - INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` - WHERE `user`.`verified` - ORDER BY $sql_order $sql_order_direction LIMIT ?, ?", $pager->getStart(), $pager->getItemsPerPage() - ); - $users = DBA::toArray($usersStmt); - - $adminlist = explode(',', str_replace(' ', '', Config::get('config', 'admin_email'))); - $_setup_users = function ($e) use ($adminlist) { - $page_types = [ - User::PAGE_FLAGS_NORMAL => L10n::t('Normal Account Page'), - User::PAGE_FLAGS_SOAPBOX => L10n::t('Soapbox Page'), - User::PAGE_FLAGS_COMMUNITY => L10n::t('Public Forum'), - User::PAGE_FLAGS_FREELOVE => L10n::t('Automatic Friend Page'), - User::PAGE_FLAGS_PRVGROUP => L10n::t('Private Forum') - ]; - $account_types = [ - User::ACCOUNT_TYPE_PERSON => L10n::t('Personal Page'), - User::ACCOUNT_TYPE_ORGANISATION => L10n::t('Organisation Page'), - User::ACCOUNT_TYPE_NEWS => L10n::t('News Page'), - User::ACCOUNT_TYPE_COMMUNITY => L10n::t('Community Forum'), - User::ACCOUNT_TYPE_RELAY => L10n::t('Relay'), - ]; - - $e['page_flags_raw'] = $e['page-flags']; - $e['page-flags'] = $page_types[$e['page-flags']]; - - $e['account_type_raw'] = ($e['page_flags_raw'] == 0) ? $e['account-type'] : -1; - $e['account-type'] = ($e['page_flags_raw'] == 0) ? $account_types[$e['account-type']] : ''; - - $e['register_date'] = Temporal::getRelativeDate($e['register_date']); - $e['login_date'] = Temporal::getRelativeDate($e['login_date']); - $e['lastitem_date'] = Temporal::getRelativeDate($e['lastitem_date']); - $e['is_admin'] = in_array($e['email'], $adminlist); - $e['is_deletable'] = (intval($e['uid']) != local_user()); - $e['deleted'] = ($e['account_removed'] ? Temporal::getRelativeDate($e['account_expires_on']) : False); - - return $e; - }; - - $tmp_users = array_map($_setup_users, $users); - - // Get rid of dashes in key names, Smarty3 can't handle them - // and extracting deleted users - - $deleted = []; - $users = []; - foreach ($tmp_users as $user) { - foreach ($user as $k => $v) { - $newkey = str_replace('-', '_', $k); - $user[$newkey] = $v; - } - - if ($user['deleted']) { - $deleted[] = $user; - } else { - $users[] = $user; - } - } - - $th_users = array_map(null, [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Type')], $valid_orders); - - $t = Renderer::getMarkupTemplate('admin/users.tpl'); - $o = Renderer::replaceMacros($t, [ - // strings // - '$title' => L10n::t('Administration'), - '$page' => L10n::t('Users'), - '$submit' => L10n::t('Add User'), - '$select_all' => L10n::t('select all'), - '$h_pending' => L10n::t('User registrations waiting for confirm'), - '$h_deleted' => L10n::t('User waiting for permanent deletion'), - '$th_pending' => [L10n::t('Request date'), L10n::t('Name'), L10n::t('Email')], - '$no_pending' => L10n::t('No registrations.'), - '$pendingnotetext' => L10n::t('Note from the user'), - '$approve' => L10n::t('Approve'), - '$deny' => L10n::t('Deny'), - '$delete' => L10n::t('Delete'), - '$block' => L10n::t('Block'), - '$blocked' => L10n::t('User blocked'), - '$unblock' => L10n::t('Unblock'), - '$siteadmin' => L10n::t('Site admin'), - '$accountexpired' => L10n::t('Account expired'), - - '$h_users' => L10n::t('Users'), - '$h_newuser' => L10n::t('New User'), - '$th_deleted' => [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Permanent deletion')], - '$th_users' => $th_users, - '$order_users' => $order, - '$order_direction_users' => $order_direction, - - '$confirm_delete_multi' => L10n::t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'), - '$confirm_delete' => L10n::t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'), - - '$form_security_token' => parent::getFormSecurityToken('admin_users'), - - // values // - '$baseurl' => $a->getBaseURL(true), - - '$pending' => $pending, - 'deleted' => $deleted, - '$users' => $users, - '$newusername' => ['new_user_name', L10n::t('Name'), '', L10n::t('Name of the new user.')], - '$newusernickname' => ['new_user_nickname', L10n::t('Nickname'), '', L10n::t('Nickname of the new user.')], - '$newuseremail' => ['new_user_email', L10n::t('Email'), '', L10n::t('Email address of the new user.'), '', '', 'email'], - ]); - - $o .= $pager->renderFull(DBA::count('user')); - - return $o; - } -} \ No newline at end of file + $nu_name, + 'email' => $nu_email, + 'nickname' => $nu_nickname, + 'verified' => 1, + 'language' => $nu_language + ]); + } catch (\Exception $ex) { + notice($ex->getMessage()); + return; + } + + $user = $result['user']; + $preamble = Strings::deindent(L10n::t(' + Dear %1$s, + the administrator of %2$s has set up an account for you.')); + $body = Strings::deindent(L10n::t(' + The login details are as follows: + + Site Location: %1$s + Login Name: %2$s + Password: %3$s + + You may change your password from your account "Settings" page after logging + in. + + Please take a few moments to review the other account settings on that page. + + You may also wish to add some basic information to your default profile + (on the "Profiles" page) so that other people can easily find you. + + We recommend setting your full name, adding a profile photo, + adding some profile "keywords" (very useful in making new friends) - and + perhaps what country you live in; if you do not wish to be more specific + than that. + + We fully respect your right to privacy, and none of these items are necessary. + If you are new and do not know anybody here, they may help + you to make some new and interesting friends. + + If you ever want to delete your account, you can do so at %1$s/removeme + + Thank you and welcome to %4$s.')); + + $preamble = sprintf($preamble, $user['username'], Config::get('config', 'sitename')); + $body = sprintf($body, $a->getBaseURL(), $user['nickname'], $result['password'], Config::get('config', 'sitename')); + + notification([ + 'type' => SYSTEM_EMAIL, + 'language' => $user['language'], + 'to_name' => $user['username'], + 'to_email' => $user['email'], + 'uid' => $user['uid'], + 'subject' => L10n::t('Registration details for %s', Config::get('config', 'sitename')), + 'preamble' => $preamble, + 'body' => $body]); + } + + if (!empty($_POST['page_users_block'])) { + DBA::update('user', ['blocked' => 1], ['uid' => $users]); + notice(L10n::tt('%s user blocked', '%s users blocked', count($users))); + } + + if (!empty($_POST['page_users_unblock'])) { + DBA::update('user', ['blocked' => 0], ['uid' => $users]); + notice(L10n::tt('%s user unblocked', '%s users unblocked', count($users))); + } + + if (!empty($_POST['page_users_delete'])) { + foreach ($users as $uid) { + if (local_user() != $uid) { + User::remove($uid); + } else { + notice(L10n::t('You can\'t remove yourself')); + } + } + + notice(L10n::tt('%s user deleted', '%s users deleted', count($users))); + } + + if (!empty($_POST['page_users_approve'])) { + require_once 'mod/regmod.php'; + foreach ($pending as $hash) { + user_allow($hash); + } + } + + if (!empty($_POST['page_users_deny'])) { + require_once 'mod/regmod.php'; + foreach ($pending as $hash) { + user_deny($hash); + } + } + + $a->internalRedirect('admin/users'); + } + + public static function content() + { + parent::content(); + + $a = self::getApp(); + + if ($a->argc > 3) { + // @TODO: Replace with parameter from router + $action = $a->argv[2]; + $uid = $a->argv[3]; + $user = DBA::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]); + if (!DBA::isResult($user)) { + notice('User not found' . EOL); + $a->internalRedirect('admin/users'); + return ''; // NOTREACHED + } + + switch ($action) { + case 'delete': + if (local_user() != $uid) { + parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + // delete user + User::remove($uid); + + notice(L10n::t('User "%s" deleted', $user['username'])); + } else { + notice(L10n::t('You can\'t remove yourself')); + } + break; + case 'block': + parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + DBA::update('user', ['blocked' => 1], ['uid' => $uid]); + notice(L10n::t('User "%s" blocked', $user['username'])); + break; + case 'unblock': + parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + DBA::update('user', ['blocked' => 0], ['uid' => $uid]); + notice(L10n::t('User "%s" unblocked', $user['username'])); + break; + } + + $a->internalRedirect('admin/users'); + } + + /* get pending */ + $pending = Register::getPending(); + + $pager = new Pager($a->query_string, 100); + + /* ordering */ + $valid_orders = [ + 'contact.name', + 'user.email', + 'user.register_date', + 'user.login_date', + 'lastitem_date', + 'user.page-flags' + ]; + + $order = 'contact.name'; + $order_direction = '+'; + if (!empty($_GET['o'])) { + $new_order = $_GET['o']; + if ($new_order[0] === '-') { + $order_direction = '-'; + $new_order = substr($new_order, 1); + } + + if (in_array($new_order, $valid_orders)) { + $order = $new_order; + } + } + $sql_order = '`' . str_replace('.', '`.`', $order) . '`'; + $sql_order_direction = ($order_direction === '+') ? 'ASC' : 'DESC'; + + $usersStmt = DBA::p("SELECT `user`.*, `contact`.`name`, `contact`.`url`, `contact`.`micro`, `user`.`account_expired`, `contact`.`last-item` AS `lastitem_date` + FROM `user` + INNER JOIN `contact` ON `contact`.`uid` = `user`.`uid` AND `contact`.`self` + WHERE `user`.`verified` + ORDER BY $sql_order $sql_order_direction LIMIT ?, ?", $pager->getStart(), $pager->getItemsPerPage() + ); + $users = DBA::toArray($usersStmt); + + $adminlist = explode(',', str_replace(' ', '', Config::get('config', 'admin_email'))); + $_setup_users = function ($e) use ($adminlist) { + $page_types = [ + User::PAGE_FLAGS_NORMAL => L10n::t('Normal Account Page'), + User::PAGE_FLAGS_SOAPBOX => L10n::t('Soapbox Page'), + User::PAGE_FLAGS_COMMUNITY => L10n::t('Public Forum'), + User::PAGE_FLAGS_FREELOVE => L10n::t('Automatic Friend Page'), + User::PAGE_FLAGS_PRVGROUP => L10n::t('Private Forum') + ]; + $account_types = [ + User::ACCOUNT_TYPE_PERSON => L10n::t('Personal Page'), + User::ACCOUNT_TYPE_ORGANISATION => L10n::t('Organisation Page'), + User::ACCOUNT_TYPE_NEWS => L10n::t('News Page'), + User::ACCOUNT_TYPE_COMMUNITY => L10n::t('Community Forum'), + User::ACCOUNT_TYPE_RELAY => L10n::t('Relay'), + ]; + + $e['page_flags_raw'] = $e['page-flags']; + $e['page-flags'] = $page_types[$e['page-flags']]; + + $e['account_type_raw'] = ($e['page_flags_raw'] == 0) ? $e['account-type'] : -1; + $e['account-type'] = ($e['page_flags_raw'] == 0) ? $account_types[$e['account-type']] : ''; + + $e['register_date'] = Temporal::getRelativeDate($e['register_date']); + $e['login_date'] = Temporal::getRelativeDate($e['login_date']); + $e['lastitem_date'] = Temporal::getRelativeDate($e['lastitem_date']); + $e['is_admin'] = in_array($e['email'], $adminlist); + $e['is_deletable'] = (intval($e['uid']) != local_user()); + $e['deleted'] = ($e['account_removed'] ? Temporal::getRelativeDate($e['account_expires_on']) : False); + + return $e; + }; + + $tmp_users = array_map($_setup_users, $users); + + // Get rid of dashes in key names, Smarty3 can't handle them + // and extracting deleted users + + $deleted = []; + $users = []; + foreach ($tmp_users as $user) { + foreach ($user as $k => $v) { + $newkey = str_replace('-', '_', $k); + $user[$newkey] = $v; + } + + if ($user['deleted']) { + $deleted[] = $user; + } else { + $users[] = $user; + } + } + + $th_users = array_map(null, [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Type')], $valid_orders); + + $t = Renderer::getMarkupTemplate('admin/users.tpl'); + $o = Renderer::replaceMacros($t, [ + // strings // + '$title' => L10n::t('Administration'), + '$page' => L10n::t('Users'), + '$submit' => L10n::t('Add User'), + '$select_all' => L10n::t('select all'), + '$h_pending' => L10n::t('User registrations waiting for confirm'), + '$h_deleted' => L10n::t('User waiting for permanent deletion'), + '$th_pending' => [L10n::t('Request date'), L10n::t('Name'), L10n::t('Email')], + '$no_pending' => L10n::t('No registrations.'), + '$pendingnotetext' => L10n::t('Note from the user'), + '$approve' => L10n::t('Approve'), + '$deny' => L10n::t('Deny'), + '$delete' => L10n::t('Delete'), + '$block' => L10n::t('Block'), + '$blocked' => L10n::t('User blocked'), + '$unblock' => L10n::t('Unblock'), + '$siteadmin' => L10n::t('Site admin'), + '$accountexpired' => L10n::t('Account expired'), + + '$h_users' => L10n::t('Users'), + '$h_newuser' => L10n::t('New User'), + '$th_deleted' => [L10n::t('Name'), L10n::t('Email'), L10n::t('Register date'), L10n::t('Last login'), L10n::t('Last item'), L10n::t('Permanent deletion')], + '$th_users' => $th_users, + '$order_users' => $order, + '$order_direction_users' => $order_direction, + + '$confirm_delete_multi' => L10n::t('Selected users will be deleted!\n\nEverything these users had posted on this site will be permanently deleted!\n\nAre you sure?'), + '$confirm_delete' => L10n::t('The user {0} will be deleted!\n\nEverything this user has posted on this site will be permanently deleted!\n\nAre you sure?'), + + '$form_security_token' => parent::getFormSecurityToken('admin_users'), + + // values // + '$baseurl' => $a->getBaseURL(true), + + '$pending' => $pending, + 'deleted' => $deleted, + '$users' => $users, + '$newusername' => ['new_user_name', L10n::t('Name'), '', L10n::t('Name of the new user.')], + '$newusernickname' => ['new_user_nickname', L10n::t('Nickname'), '', L10n::t('Nickname of the new user.')], + '$newuseremail' => ['new_user_email', L10n::t('Email'), '', L10n::t('Email address of the new user.'), '', '', 'email'], + ]); + + $o .= $pager->renderFull(DBA::count('user')); + + return $o; + } +} diff --git a/src/Module/BaseAdminModule.php b/src/Module/BaseAdminModule.php index 5e56bd8d7..dd89bcb6c 100644 --- a/src/Module/BaseAdminModule.php +++ b/src/Module/BaseAdminModule.php @@ -1,113 +1,122 @@ -page['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/settings_head.tpl'), []); - - /* - * Side bar links - */ - - // array(url, name, extra css classes) - // not part of $aside to make the template more adjustable - $aside_sub = [ - 'information' => [L10n::t('Information'), [ - 'overview' => ['admin' , L10n::t('Overview') , 'overview'], - 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] - ]], - 'configuration' => [L10n::t('Configuration'), [ - 'site' => ['admin/site' , L10n::t('Site') , 'site'], - 'users' => ['admin/users' , L10n::t('Users') , 'users'], - 'addons' => ['admin/addons' , L10n::t('Addons') , 'addons'], - 'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'], - 'features' => ['admin/features' , L10n::t('Additional features') , 'features'], - 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], - ]], - 'database' => [L10n::t('Database'), [ - 'dbsync' => ['admin/dbsync' , L10n::t('DB updates') , 'dbsync'], - 'deferred' => ['admin/queue/deferred', L10n::t('Inspect Deferred Workers'), 'deferred'], - 'workerqueue' => ['admin/queue' , L10n::t('Inspect worker Queue') , 'workerqueue'], - ]], - 'tools' => [L10n::t('Tools'), [ - 'contactblock' => ['admin/blocklist/contact', L10n::t('Contact Blocklist') , 'contactblock'], - 'blocklist' => ['admin/blocklist/server' , L10n::t('Server Blocklist') , 'blocklist'], - 'deleteitem' => ['admin/item/delete' , L10n::t('Delete Item') , 'deleteitem'], - ]], - 'logs' => [L10n::t('Logs'), [ - 'logsconfig' => ['admin/logs/', L10n::t('Logs') , 'logs'], - 'logsview' => ['admin/logs/view' , L10n::t('View Logs') , 'viewlogs'], - ]], - 'diagnostics' => [L10n::t('Diagnostics'), [ - 'phpinfo' => ['admin/phpinfo' , L10n::t('PHP Info') , 'phpinfo'], - 'probe' => ['probe' , L10n::t('probe address') , 'probe'], - 'webfinger' => ['webfinger' , L10n::t('check webfinger') , 'webfinger'], - 'itemsource' => ['admin/item/source' , L10n::t('Item Source') , 'itemsource'], - 'babel' => ['babel' , L10n::t('Babel') , 'babel'], - ]], - ]; - - $t = Renderer::getMarkupTemplate('admin/aside.tpl'); - $a->page['aside'] .= Renderer::replaceMacros($t, [ - '$admin' => ['addons_admin' => Addon::getAdminList()], - '$subpages' => $aside_sub, - '$admtxt' => L10n::t('Admin'), - '$plugadmtxt' => L10n::t('Addon Features'), - '$h_pending' => L10n::t('User registrations waiting for confirmation'), - '$admurl' => 'admin/' - ]); - - return ''; - } -} +page['htmlhead'] .= Renderer::replaceMacros(Renderer::getMarkupTemplate('admin/settings_head.tpl'), []); + + /* + * Side bar links + */ + + // array(url, name, extra css classes) + // not part of $aside to make the template more adjustable + $aside_sub = [ + 'information' => [L10n::t('Information'), [ + 'overview' => ['admin' , L10n::t('Overview') , 'overview'], + 'federation' => ['admin/federation' , L10n::t('Federation Statistics') , 'federation'] + ]], + 'configuration' => [L10n::t('Configuration'), [ + 'site' => ['admin/site' , L10n::t('Site') , 'site'], + 'users' => ['admin/users' , L10n::t('Users') , 'users'], + 'addons' => ['admin/addons' , L10n::t('Addons') , 'addons'], + 'themes' => ['admin/themes' , L10n::t('Themes') , 'themes'], + 'features' => ['admin/features' , L10n::t('Additional features') , 'features'], + 'tos' => ['admin/tos' , L10n::t('Terms of Service') , 'tos'], + ]], + 'database' => [L10n::t('Database'), [ + 'dbsync' => ['admin/dbsync' , L10n::t('DB updates') , 'dbsync'], + 'deferred' => ['admin/queue/deferred', L10n::t('Inspect Deferred Workers'), 'deferred'], + 'workerqueue' => ['admin/queue' , L10n::t('Inspect worker Queue') , 'workerqueue'], + ]], + 'tools' => [L10n::t('Tools'), [ + 'contactblock' => ['admin/blocklist/contact', L10n::t('Contact Blocklist') , 'contactblock'], + 'blocklist' => ['admin/blocklist/server' , L10n::t('Server Blocklist') , 'blocklist'], + 'deleteitem' => ['admin/item/delete' , L10n::t('Delete Item') , 'deleteitem'], + ]], + 'logs' => [L10n::t('Logs'), [ + 'logsconfig' => ['admin/logs/', L10n::t('Logs') , 'logs'], + 'logsview' => ['admin/logs/view' , L10n::t('View Logs') , 'viewlogs'], + ]], + 'diagnostics' => [L10n::t('Diagnostics'), [ + 'phpinfo' => ['admin/phpinfo' , L10n::t('PHP Info') , 'phpinfo'], + 'probe' => ['probe' , L10n::t('probe address') , 'probe'], + 'webfinger' => ['webfinger' , L10n::t('check webfinger') , 'webfinger'], + 'itemsource' => ['admin/item/source' , L10n::t('Item Source') , 'itemsource'], + 'babel' => ['babel' , L10n::t('Babel') , 'babel'], + ]], + ]; + + $t = Renderer::getMarkupTemplate('admin/aside.tpl'); + $a->page['aside'] .= Renderer::replaceMacros($t, [ + '$admin' => ['addons_admin' => Addon::getAdminList()], + '$subpages' => $aside_sub, + '$admtxt' => L10n::t('Admin'), + '$plugadmtxt' => L10n::t('Addon Features'), + '$h_pending' => L10n::t('User registrations waiting for confirmation'), + '$admurl' => 'admin/' + ]); + + return ''; + } +} From b4b8c61daf75fc16f2c51baf10c15792f6ace788 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 2 May 2019 10:20:02 -0400 Subject: [PATCH 328/653] Add @TODO comments per @nupplaphil review in various Admin modules --- src/Module/Admin/Queue.php | 1 + src/Module/Admin/Site.php | 1 + src/Module/Admin/Users.php | 8 ++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Module/Admin/Queue.php b/src/Module/Admin/Queue.php index 748a12a6a..e89aa53c6 100644 --- a/src/Module/Admin/Queue.php +++ b/src/Module/Admin/Queue.php @@ -39,6 +39,7 @@ class Queue extends BaseAdminModule $info = L10n::t('This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you\'ve set up during install.'); } + // @TODO Move to Model\WorkerQueue::getEntries() $entries = DBA::select('workerqueue', ['id', 'parameter', 'created', 'priority'], $condition, ['order' => ['priority']]); $r = []; diff --git a/src/Module/Admin/Site.php b/src/Module/Admin/Site.php index 37507ca99..5d2004ca5 100644 --- a/src/Module/Admin/Site.php +++ b/src/Module/Admin/Site.php @@ -483,6 +483,7 @@ class Site extends BaseAdminModule ]; /* get user names to make the install a personal install of X */ + // @TODO Move to Model\User::getNames() $user_names = []; $user_names['---'] = L10n::t('Multi user instance'); diff --git a/src/Module/Admin/Users.php b/src/Module/Admin/Users.php index d9852e98d..92dddd9f7 100644 --- a/src/Module/Admin/Users.php +++ b/src/Module/Admin/Users.php @@ -91,11 +91,13 @@ class Users extends BaseAdminModule } if (!empty($_POST['page_users_block'])) { + // @TODO Move this to Model\User:block($users); DBA::update('user', ['blocked' => 1], ['uid' => $users]); notice(L10n::tt('%s user blocked', '%s users blocked', count($users))); } if (!empty($_POST['page_users_unblock'])) { + // @TODO Move this to Model\User:unblock($users); DBA::update('user', ['blocked' => 0], ['uid' => $users]); notice(L10n::tt('%s user unblocked', '%s users unblocked', count($users))); } @@ -139,7 +141,7 @@ class Users extends BaseAdminModule // @TODO: Replace with parameter from router $action = $a->argv[2]; $uid = $a->argv[3]; - $user = DBA::selectFirst('user', ['username', 'blocked'], ['uid' => $uid]); + $user = User::getById($uid, ['username', 'blocked']); if (!DBA::isResult($user)) { notice('User not found' . EOL); $a->internalRedirect('admin/users'); @@ -160,11 +162,13 @@ class Users extends BaseAdminModule break; case 'block': parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + // @TODO Move this to Model\User:block([$uid]); DBA::update('user', ['blocked' => 1], ['uid' => $uid]); notice(L10n::t('User "%s" blocked', $user['username'])); break; case 'unblock': parent::checkFormSecurityTokenRedirectOnError('/admin/users', 'admin_users', 't'); + // @TODO Move this to Model\User:unblock([$uid]); DBA::update('user', ['blocked' => 0], ['uid' => $uid]); notice(L10n::t('User "%s" unblocked', $user['username'])); break; @@ -178,7 +182,7 @@ class Users extends BaseAdminModule $pager = new Pager($a->query_string, 100); - /* ordering */ + // @TODO Move below block to Model\User::getUsers($start, $count, $order = 'contact.name', $order_direction = '+') $valid_orders = [ 'contact.name', 'user.email', From 8eba329111e832d7efdacf4f6a6fa85b0f7abbf3 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 1 May 2019 21:24:51 -0400 Subject: [PATCH 329/653] Remove code parameter from HTTPException constructor - Remove duplicate HTTPException->httpcode class variable --- src/Network/HTTPException.php | 14 +++++++------- src/Network/HTTPException/AcceptedException.php | 10 ++++++++++ src/Network/HTTPException/BadGatewayException.php | 2 +- src/Network/HTTPException/BadRequestException.php | 2 +- src/Network/HTTPException/ConflictException.php | 2 +- .../HTTPException/ExpectationFailedException.php | 2 +- src/Network/HTTPException/ForbiddenException.php | 4 ++-- .../HTTPException/GatewayTimeoutException.php | 2 +- src/Network/HTTPException/GoneException.php | 2 +- src/Network/HTTPException/ImATeapotException.php | 2 +- .../HTTPException/InternalServerErrorException.php | 2 +- .../HTTPException/LenghtRequiredException.php | 2 +- .../HTTPException/MethodNotAllowedException.php | 2 +- src/Network/HTTPException/NoContentException.php | 10 ++++++++++ .../HTTPException/NonAcceptableException.php | 2 +- src/Network/HTTPException/NotFoundException.php | 5 +++-- .../HTTPException/NotImplementedException.php | 2 +- src/Network/HTTPException/OKException.php | 10 ++++++++++ .../HTTPException/PreconditionFailedException.php | 2 +- .../HTTPException/ServiceUnavaiableException.php | 2 +- .../HTTPException/TooManyRequestsException.php | 2 +- .../HTTPException/UnauthorizedException.php | 2 +- .../HTTPException/UnprocessableEntityException.php | 2 +- .../UnsupportedMediaTypeException.php | 2 +- 24 files changed, 60 insertions(+), 29 deletions(-) create mode 100644 src/Network/HTTPException/AcceptedException.php create mode 100644 src/Network/HTTPException/NoContentException.php create mode 100644 src/Network/HTTPException/OKException.php diff --git a/src/Network/HTTPException.php b/src/Network/HTTPException.php index b9bad457d..89c447b71 100644 --- a/src/Network/HTTPException.php +++ b/src/Network/HTTPException.php @@ -3,7 +3,7 @@ /** * Throwable exceptions to return HTTP status code * - * This list of Exception has be extracted from + * This list of Exception has been extracted from * here http://racksburg.com/choosing-an-http-status-code/ */ @@ -11,17 +11,17 @@ namespace Friendica\Network; use Exception; -class HTTPException extends Exception +abstract class HTTPException extends Exception { - var $httpcode = 200; - var $httpdesc = ""; + public $httpdesc = ''; - public function __construct($message = '', $code = 0, Exception $previous = null) + public function __construct($message = '', Exception $previous = null) { - if ($this->httpdesc == '') { + parent::__construct($message, $this->code, $previous); + + if (empty($this->httpdesc)) { $classname = str_replace('Exception', '', str_replace('Friendica\Network\HTTPException\\', '', get_class($this))); $this->httpdesc = preg_replace("|([a-z])([A-Z])|",'$1 $2', $classname); } - parent::__construct($message, $code, $previous); } } diff --git a/src/Network/HTTPException/AcceptedException.php b/src/Network/HTTPException/AcceptedException.php new file mode 100644 index 000000000..b8c843ec5 --- /dev/null +++ b/src/Network/HTTPException/AcceptedException.php @@ -0,0 +1,10 @@ + Date: Wed, 1 May 2019 21:33:33 -0400 Subject: [PATCH 330/653] Add themed error pages - Module init, post and rawContent-triggered HTTPException generate the classic bare HTTP status page - Module content-triggered HTTPException generate themed error pages - Trim System::httpExit to the bare minimum --- src/App.php | 286 ++++++++++++++------------- src/Core/System.php | 55 +----- src/Module/PageNotFound.php | 15 ++ src/Module/Special/HTTPException.php | 91 +++++++++ view/templates/exception.tpl | 4 + 5 files changed, 262 insertions(+), 189 deletions(-) create mode 100644 src/Module/PageNotFound.php create mode 100644 src/Module/Special/HTTPException.php create mode 100644 view/templates/exception.tpl diff --git a/src/App.php b/src/App.php index 328a1a152..adcb5d7d5 100644 --- a/src/App.php +++ b/src/App.php @@ -14,7 +14,7 @@ use Friendica\Core\Hook; use Friendica\Core\Theme; use Friendica\Database\DBA; use Friendica\Model\Profile; -use Friendica\Network\HTTPException\InternalServerErrorException; +use Friendica\Network\HTTPException; use Friendica\Util\BaseURL; use Friendica\Util\Config\ConfigFileLoader; use Friendica\Util\HTTPSignature; @@ -572,7 +572,7 @@ class App * @param string $origURL * * @return string The cleaned url - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function removeBaseURL($origURL) { @@ -593,7 +593,7 @@ class App * Returns the current UserAgent as a String * * @return string the UserAgent as a String - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function getUserAgent() { @@ -723,7 +723,7 @@ class App * @brief Checks if the minimal memory is reached * * @return bool Is the memory limit reached? - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function isMinMemoryReached() { @@ -768,7 +768,7 @@ class App * @brief Checks if the maximum load is reached * * @return bool Is the load reached? - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function isMaxLoadReached() { @@ -801,7 +801,7 @@ class App * * @param string $command The command to execute * @param array $args Arguments to pass to the command ( [ 'key' => value, 'key2' => value2, ... ] - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function proc_run($command, $args) { @@ -842,7 +842,7 @@ class App * Generates the site's default sender email address * * @return string - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function getSenderEmailAddress() { @@ -863,7 +863,7 @@ class App * Returns the current theme name. * * @return string the name of the current theme - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function getCurrentTheme() { @@ -944,7 +944,7 @@ class App * Provide a sane default if nothing is chosen or the specified theme does not exist. * * @return string - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function getCurrentThemeStylesheetPath() { @@ -1010,7 +1010,10 @@ class App { // Missing DB connection: ERROR if ($this->getMode()->has(App\Mode::LOCALCONFIGPRESENT) && !$this->getMode()->has(App\Mode::DBAVAILABLE)) { - Core\System::httpExit(500, ['title' => 'Error 500 - Internal Server Error', 'description' => 'Apologies but the website is unavailable at the moment.']); + echo Module\Special\HTTPException::rawContent( + new HTTPException\InternalServerErrorException('Apologies but the website is unavailable at the moment.') + ); + exit; } // Max Load Average reached: ERROR @@ -1018,11 +1021,17 @@ class App header('Retry-After: 120'); header('Refresh: 120; url=' . $this->getBaseURL() . "/" . $this->query_string); - Core\System::httpExit(503, ['title' => 'Error 503 - Service Temporarily Unavailable', 'description' => 'Core\System is currently overloaded. Please try again later.']); + echo Module\Special\HTTPException::rawContent( + new HTTPException\ServiceUnavaiableException('The node is currently overloaded. Please try again later.') + ); + exit; } if (strstr($this->query_string, '.well-known/host-meta') && ($this->query_string != '.well-known/host-meta')) { - Core\System::httpExit(404); + echo Module\Special\HTTPException::rawContent( + new HTTPException\NotFoundException() + ); + exit; } if (!$this->getMode()->isInstall()) { @@ -1073,7 +1082,10 @@ class App // Someone came with an invalid parameter, maybe as a DDoS attempt // We simply stop processing here Core\Logger::log("Invalid ZRL parameter " . $_GET['zrl'], Core\Logger::DEBUG); - Core\System::httpExit(403, ['title' => '403 Forbidden']); + echo Module\Special\HTTPException::rawContent( + new HTTPException\ForbiddenException() + ); + exit; } } } @@ -1126,123 +1138,115 @@ class App 'title' => '' ]; - if (strlen($this->module)) { - // Compatibility with the Android Diaspora client - if ($this->module == 'stream') { - $this->internalRedirect('network?f=&order=post'); - } + // Compatibility with the Android Diaspora client + if ($this->module == 'stream') { + $this->internalRedirect('network?f=&order=post'); + } - if ($this->module == 'conversations') { - $this->internalRedirect('message'); - } + if ($this->module == 'conversations') { + $this->internalRedirect('message'); + } - if ($this->module == 'commented') { - $this->internalRedirect('network?f=&order=comment'); - } + if ($this->module == 'commented') { + $this->internalRedirect('network?f=&order=comment'); + } - if ($this->module == 'liked') { - $this->internalRedirect('network?f=&order=comment'); - } + if ($this->module == 'liked') { + $this->internalRedirect('network?f=&order=comment'); + } - if ($this->module == 'activity') { - $this->internalRedirect('network/?f=&conv=1'); - } + if ($this->module == 'activity') { + $this->internalRedirect('network/?f=&conv=1'); + } - if (($this->module == 'status_messages') && ($this->cmd == 'status_messages/new')) { - $this->internalRedirect('bookmarklet'); - } + if (($this->module == 'status_messages') && ($this->cmd == 'status_messages/new')) { + $this->internalRedirect('bookmarklet'); + } - if (($this->module == 'user') && ($this->cmd == 'user/edit')) { - $this->internalRedirect('settings'); - } + if (($this->module == 'user') && ($this->cmd == 'user/edit')) { + $this->internalRedirect('settings'); + } - if (($this->module == 'tag_followings') && ($this->cmd == 'tag_followings/manage')) { - $this->internalRedirect('search'); - } + if (($this->module == 'tag_followings') && ($this->cmd == 'tag_followings/manage')) { + $this->internalRedirect('search'); + } - // Compatibility with the Firefox App - if (($this->module == "users") && ($this->cmd == "users/sign_in")) { - $this->module = "login"; - } + // Compatibility with the Firefox App + if (($this->module == "users") && ($this->cmd == "users/sign_in")) { + $this->module = "login"; + } - /* - * ROUTING - * - * From the request URL, routing consists of obtaining the name of a BaseModule-extending class of which the - * post() and/or content() static methods can be respectively called to produce a data change or an output. - */ + /* + * ROUTING + * + * From the request URL, routing consists of obtaining the name of a BaseModule-extending class of which the + * post() and/or content() static methods can be respectively called to produce a data change or an output. + */ - // First we try explicit routes defined in App\Router - $this->router->collectRoutes(); + // First we try explicit routes defined in App\Router + $this->router->collectRoutes(); - $data = $this->router->getRouteCollector(); - Hook::callAll('route_collection', $data); + $data = $this->router->getRouteCollector(); + Hook::callAll('route_collection', $data); - $this->module_class = $this->router->getModuleClass($this->cmd); + $this->module_class = $this->router->getModuleClass($this->cmd); - // Then we try addon-provided modules that we wrap in the LegacyModule class - if (!$this->module_class && Core\Addon::isEnabled($this->module) && file_exists("addon/{$this->module}/{$this->module}.php")) { - //Check if module is an app and if public access to apps is allowed or not - $privateapps = $this->config->get('config', 'private_addons', false); - if ((!local_user()) && Core\Hook::isAddonApp($this->module) && $privateapps) { - info(Core\L10n::t("You must be logged in to use addons. ")); - } else { - include_once "addon/{$this->module}/{$this->module}.php"; - if (function_exists($this->module . '_module')) { - LegacyModule::setModuleFile("addon/{$this->module}/{$this->module}.php"); - $this->module_class = 'Friendica\\LegacyModule'; - } + // Then we try addon-provided modules that we wrap in the LegacyModule class + if (!$this->module_class && Core\Addon::isEnabled($this->module) && file_exists("addon/{$this->module}/{$this->module}.php")) { + //Check if module is an app and if public access to apps is allowed or not + $privateapps = $this->config->get('config', 'private_addons', false); + if ((!local_user()) && Core\Hook::isAddonApp($this->module) && $privateapps) { + info(Core\L10n::t("You must be logged in to use addons. ")); + } else { + include_once "addon/{$this->module}/{$this->module}.php"; + if (function_exists($this->module . '_module')) { + LegacyModule::setModuleFile("addon/{$this->module}/{$this->module}.php"); + $this->module_class = LegacyModule::class; } } - - // Then we try name-matching a Friendica\Module class - if (!$this->module_class && class_exists('Friendica\\Module\\' . ucfirst($this->module))) { - $this->module_class = 'Friendica\\Module\\' . ucfirst($this->module); - } - - /* Finally, we look for a 'standard' program module in the 'mod' directory - * We emulate a Module class through the LegacyModule class - */ - if (!$this->module_class && file_exists("mod/{$this->module}.php")) { - LegacyModule::setModuleFile("mod/{$this->module}.php"); - $this->module_class = 'Friendica\\LegacyModule'; - } - - /* The URL provided does not resolve to a valid module. - * - * On Dreamhost sites, quite often things go wrong for no apparent reason and they send us to '/internal_error.html'. - * We don't like doing this, but as it occasionally accounts for 10-20% or more of all site traffic - - * we are going to trap this and redirect back to the requested page. As long as you don't have a critical error on your page - * this will often succeed and eventually do the right thing. - * - * Otherwise we are going to emit a 404 not found. - */ - if (!$this->module_class) { - // Stupid browser tried to pre-fetch our Javascript img template. Don't log the event or return anything - just quietly exit. - if (!empty($_SERVER['QUERY_STRING']) && preg_match('/{[0-9]}/', $_SERVER['QUERY_STRING']) !== 0) { - exit(); - } - - if (!empty($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] === 'q=internal_error.html') && isset($dreamhost_error_hack)) { - Core\Logger::log('index.php: dreamhost_error_hack invoked. Original URI =' . $_SERVER['REQUEST_URI']); - $this->internalRedirect($_SERVER['REQUEST_URI']); - } - - Core\Logger::log('index.php: page not found: ' . $_SERVER['REQUEST_URI'] . ' ADDRESS: ' . $_SERVER['REMOTE_ADDR'] . ' QUERY: ' . $_SERVER['QUERY_STRING'], Core\Logger::DEBUG); - - header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . Core\L10n::t('Not Found')); - $tpl = Core\Renderer::getMarkupTemplate("404.tpl"); - $this->page['content'] = Core\Renderer::replaceMacros($tpl, [ - '$message' => Core\L10n::t('Page not found.') - ]); - } } - $content = ''; + // Then we try name-matching a Friendica\Module class + if (!$this->module_class && class_exists('Friendica\\Module\\' . ucfirst($this->module))) { + $this->module_class = 'Friendica\\Module\\' . ucfirst($this->module); + } + + /* Finally, we look for a 'standard' program module in the 'mod' directory + * We emulate a Module class through the LegacyModule class + */ + if (!$this->module_class && file_exists("mod/{$this->module}.php")) { + LegacyModule::setModuleFile("mod/{$this->module}.php"); + $this->module_class = LegacyModule::class; + } + + /* The URL provided does not resolve to a valid module. + * + * On Dreamhost sites, quite often things go wrong for no apparent reason and they send us to '/internal_error.html'. + * We don't like doing this, but as it occasionally accounts for 10-20% or more of all site traffic - + * we are going to trap this and redirect back to the requested page. As long as you don't have a critical error on your page + * this will often succeed and eventually do the right thing. + * + * Otherwise we are going to emit a 404 not found. + */ + if (!$this->module_class) { + // Stupid browser tried to pre-fetch our Javascript img template. Don't log the event or return anything - just quietly exit. + if (!empty($_SERVER['QUERY_STRING']) && preg_match('/{[0-9]}/', $_SERVER['QUERY_STRING']) !== 0) { + exit(); + } + + if (!empty($_SERVER['QUERY_STRING']) && ($_SERVER['QUERY_STRING'] === 'q=internal_error.html') && isset($dreamhost_error_hack)) { + Core\Logger::log('index.php: dreamhost_error_hack invoked. Original URI =' . $_SERVER['REQUEST_URI']); + $this->internalRedirect($_SERVER['REQUEST_URI']); + } + + Core\Logger::log('index.php: page not found: ' . $_SERVER['REQUEST_URI'] . ' ADDRESS: ' . $_SERVER['REMOTE_ADDR'] . ' QUERY: ' . $_SERVER['QUERY_STRING'], Core\Logger::DEBUG); + + $this->module_class = Module\PageNotFound::class; + } // Initialize module that can set the current theme in the init() method, either directly or via App->profile_uid - if ($this->module_class) { - $this->page['page_title'] = $this->module; + $this->page['page_title'] = $this->module; + try { $placeholder = ''; Core\Hook::callAll($this->module . '_mod_init', $placeholder); @@ -1251,35 +1255,42 @@ class App // "rawContent" is especially meant for technical endpoints. // This endpoint doesn't need any theme initialization or other comparable stuff. - call_user_func([$this->module_class, 'rawContent']); - } + call_user_func([$this->module_class, 'rawContent']); - // Load current theme info after module has been initialized as theme could have been set in module - $theme_info_file = 'view/theme/' . $this->getCurrentTheme() . '/theme.php'; - if (file_exists($theme_info_file)) { - require_once $theme_info_file; - } + // Load current theme info after module has been initialized as theme could have been set in module + $theme_info_file = 'view/theme/' . $this->getCurrentTheme() . '/theme.php'; + if (file_exists($theme_info_file)) { + require_once $theme_info_file; + } - if (function_exists(str_replace('-', '_', $this->getCurrentTheme()) . '_init')) { - $func = str_replace('-', '_', $this->getCurrentTheme()) . '_init'; - $func($this); - } + if (function_exists(str_replace('-', '_', $this->getCurrentTheme()) . '_init')) { + $func = str_replace('-', '_', $this->getCurrentTheme()) . '_init'; + $func($this); + } - if ($this->module_class) { if ($_SERVER['REQUEST_METHOD'] === 'POST') { Core\Hook::callAll($this->module . '_mod_post', $_POST); call_user_func([$this->module_class, 'post']); } - Core\Hook::callAll($this->module . '_mod_afterpost', $placeholder); - call_user_func([$this->module_class, 'afterpost']); + Core\Hook::callAll($this->module . '_mod_afterpost', $placeholder); + call_user_func([$this->module_class, 'afterpost']); + } catch(HTTPException $e) { + echo Module\Special\HTTPException::rawContent($e); + exit; + } - $arr = ['content' => $content]; - Core\Hook::callAll($this->module . '_mod_content', $arr); - $content = $arr['content']; - $arr = ['content' => call_user_func([$this->module_class, 'content'])]; - Core\Hook::callAll($this->module . '_mod_aftercontent', $arr); - $content .= $arr['content']; + $content = ''; + + try { + $arr = ['content' => $content]; + Core\Hook::callAll($this->module . '_mod_content', $arr); + $content = $arr['content']; + $arr = ['content' => call_user_func([$this->module_class, 'content'])]; + Core\Hook::callAll($this->module . '_mod_aftercontent', $arr); + $content .= $arr['content']; + } catch(HTTPException $e) { + $content = Module\Special\HTTPException::content($e); } // initialise content region @@ -1303,13 +1314,6 @@ class App */ $this->initFooter(); - /* now that we've been through the module content, see if the page reported - * a permission problem and if so, a 403 response would seem to be in order. - */ - if (stristr(implode("", $_SESSION['sysmsg']), Core\L10n::t('Permission denied'))) { - header($_SERVER["SERVER_PROTOCOL"] . ' 403 ' . Core\L10n::t('Permission denied.')); - } - if (!$this->isAjax()) { Core\Hook::callAll('page_end', $this->page['content']); } @@ -1401,12 +1405,12 @@ class App * @param string $toUrl The destination URL (Default is empty, which is the default page of the Friendica node) * @param bool $ssl if true, base URL will try to get called with https:// (works just for relative paths) * - * @throws InternalServerErrorException In Case the given URL is not relative to the Friendica node + * @throws HTTPException\InternalServerErrorException In Case the given URL is not relative to the Friendica node */ public function internalRedirect($toUrl = '', $ssl = false) { if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) { - throw new InternalServerErrorException("'$toUrl is not a relative path, please use System::externalRedirectTo"); + throw new HTTPException\InternalServerErrorException("'$toUrl is not a relative path, please use System::externalRedirectTo"); } $redirectTo = $this->getBaseURL($ssl) . '/' . ltrim($toUrl, '/'); @@ -1418,7 +1422,7 @@ class App * Should only be used if it isn't clear if the URL is either internal or external * * @param string $toUrl The target URL - * @throws InternalServerErrorException + * @throws HTTPException\InternalServerErrorException */ public function redirect($toUrl) { diff --git a/src/Core/System.php b/src/Core/System.php index 83c3dc908..e2966a9b0 100644 --- a/src/Core/System.php +++ b/src/Core/System.php @@ -120,58 +120,17 @@ class System extends BaseObject /** * @brief Send HTTP status header and exit. * - * @param integer $val HTTP status result value - * @param array $description optional message - * 'title' => header title - * 'description' => optional message - * @throws InternalServerErrorException + * @param integer $val HTTP status result value + * @param string $message Error message. Optional. + * @param string $content Response body. Optional. + * @throws \Exception */ - public static function httpExit($val, $description = []) + public static function httpExit($val, $message = '', $content = '') { - $err = ''; - if ($val >= 400) { - if (!empty($description['title'])) { - $err = $description['title']; - } else { - $title = [ - '400' => L10n::t('Error 400 - Bad Request'), - '401' => L10n::t('Error 401 - Unauthorized'), - '403' => L10n::t('Error 403 - Forbidden'), - '404' => L10n::t('Error 404 - Not Found'), - '500' => L10n::t('Error 500 - Internal Server Error'), - '503' => L10n::t('Error 503 - Service Unavailable'), - ]; - $err = defaults($title, $val, 'Error ' . $val); - $description['title'] = $err; - } - if (empty($description['description'])) { - // Explanations are taken from https://en.wikipedia.org/wiki/List_of_HTTP_status_codes - $explanation = [ - '400' => L10n::t('The server cannot or will not process the request due to an apparent client error.'), - '401' => L10n::t('Authentication is required and has failed or has not yet been provided.'), - '403' => L10n::t('The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account.'), - '404' => L10n::t('The requested resource could not be found but may be available in the future.'), - '500' => L10n::t('An unexpected condition was encountered and no more specific message is suitable.'), - '503' => L10n::t('The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later.'), - ]; - if (!empty($explanation[$val])) { - $description['description'] = $explanation[$val]; - } - } - } - - if ($val >= 200 && $val < 300) { - $err = 'OK'; - } - Logger::log('http_status_exit ' . $val); - header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $err); + header($_SERVER["SERVER_PROTOCOL"] . ' ' . $val . ' ' . $message); - if (isset($description["title"])) { - $tpl = Renderer::getMarkupTemplate('http_status.tpl'); - echo Renderer::replaceMacros($tpl, ['$title' => $description["title"], - '$description' => defaults($description, 'description', '')]); - } + echo $content; exit(); } diff --git a/src/Module/PageNotFound.php b/src/Module/PageNotFound.php new file mode 100644 index 000000000..764903c2a --- /dev/null +++ b/src/Module/PageNotFound.php @@ -0,0 +1,15 @@ + ..., '$description' => ...] + */ + private static function getVars(\Friendica\Network\HTTPException $e) + { + $message = $e->getMessage(); + + $titles = [ + 200 => 'OK', + 400 => L10n::t('Bad Request'), + 401 => L10n::t('Unauthorized'), + 403 => L10n::t('Forbidden'), + 404 => L10n::t('Not Found'), + 500 => L10n::t('Internal Server Error'), + 503 => L10n::t('Service Unavailable'), + ]; + $title = defaults($titles, $e->getCode(), 'Error ' . $e->getCode()); + + if (empty($message)) { + // Explanations are taken from https://en.wikipedia.org/wiki/List_of_HTTP_status_codes + $explanation = [ + 400 => L10n::t('The server cannot or will not process the request due to an apparent client error.'), + 401 => L10n::t('Authentication is required and has failed or has not yet been provided.'), + 403 => L10n::t('The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account.'), + 404 => L10n::t('The requested resource could not be found but may be available in the future.'), + 500 => L10n::t('An unexpected condition was encountered and no more specific message is suitable.'), + 503 => L10n::t('The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later.'), + ]; + + $message = defaults($explanation, $e->getCode(), ''); + } + + return ['$title' => $title, '$description' => $message]; + } + + /** + * Displays a bare message page with no theming at all. + * + * @param \Friendica\Network\HTTPException $e + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + */ + public static function rawContent(\Friendica\Network\HTTPException $e) + { + $content = ''; + + if ($e->getCode() >= 400) { + $tpl = Renderer::getMarkupTemplate('http_status.tpl'); + $content = Renderer::replaceMacros($tpl, self::getVars($e)); + } + + System::httpExit($e->getCode(), $e->httpdesc, $content); + } + + /** + * Returns a content string that can be integrated in the current theme. + * + * @param \Friendica\Network\HTTPException $e + * @return string + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + */ + public static function content(\Friendica\Network\HTTPException $e) + { + header($_SERVER["SERVER_PROTOCOL"] . ' ' . $e->getCode() . ' ' . $e->httpdesc); + + $tpl = Renderer::getMarkupTemplate('exception.tpl'); + + return Renderer::replaceMacros($tpl, self::getVars($e)); + } +} diff --git a/view/templates/exception.tpl b/view/templates/exception.tpl new file mode 100644 index 000000000..cc4e6167d --- /dev/null +++ b/view/templates/exception.tpl @@ -0,0 +1,4 @@ +
        +

        {{$title}}

        +

        {{$message}}

        +
        From 41f781c52af32b8748368b5c51f68b31fe0b7164 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 1 May 2019 23:16:10 -0400 Subject: [PATCH 331/653] Replace System::httpExit() by HTTPException throwing --- mod/bookmarklet.php | 2 +- mod/cal.php | 6 +++--- mod/dfrn_notify.php | 2 +- mod/dfrn_poll.php | 6 +++--- mod/display.php | 15 +++++++-------- mod/fetch.php | 7 +++---- mod/follow.php | 2 +- mod/hcard.php | 3 +-- mod/help.php | 6 +----- mod/hovercard.php | 2 +- mod/notice.php | 2 +- mod/poco.php | 11 ++++++----- mod/probe.php | 6 +++--- mod/pubsub.php | 5 ++--- mod/pubsubhubbub.php | 20 ++++++++++---------- mod/receive.php | 17 ++++++++++------- mod/salmon.php | 15 +++++++-------- mod/search.php | 14 ++++---------- mod/viewcontacts.php | 6 +++--- mod/viewsrc.php | 3 +-- src/BaseModule.php | 2 +- src/Model/Profile.php | 2 -- src/Module/Attach.php | 8 ++++---- src/Module/Feed.php | 2 +- src/Module/Followers.php | 4 ++-- src/Module/Following.php | 4 ++-- src/Module/Group.php | 4 ++-- src/Module/Inbox.php | 6 +++--- src/Module/Install.php | 4 ++-- src/Module/NodeInfo.php | 6 +++--- src/Module/Objects.php | 4 ++-- src/Module/Outbox.php | 4 ++-- src/Module/Photo.php | 9 ++++----- src/Module/Profile.php | 2 +- src/Module/Proxy.php | 2 +- src/Module/Statistics.php | 2 +- src/Module/WebFinger.php | 21 ++++++--------------- src/Module/Xrd.php | 2 +- src/Protocol/Diaspora.php | 18 +++++++++--------- 39 files changed, 116 insertions(+), 140 deletions(-) diff --git a/mod/bookmarklet.php b/mod/bookmarklet.php index 1c4d191c4..f15d12d6d 100644 --- a/mod/bookmarklet.php +++ b/mod/bookmarklet.php @@ -29,7 +29,7 @@ function bookmarklet_content(App $a) if (!strstr($referer, $page)) { if (empty($_REQUEST["url"])) { - System::httpExit(400, ["title" => L10n::t('Bad Request')]); + throw new \Friendica\Network\HTTPException\BadRequestException(L10n::t('This page is missing a url parameter.')); } $content = add_page_info($_REQUEST["url"]); diff --git a/mod/cal.php b/mod/cal.php index 5baffec8a..ce6d501ff 100644 --- a/mod/cal.php +++ b/mod/cal.php @@ -31,11 +31,11 @@ function cal_init(App $a) } if (Config::get('system', 'block_public') && !local_user() && !remote_user()) { - System::httpExit(403, ['title' => L10n::t('Access denied.')]); + throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.')); } if ($a->argc < 2) { - System::httpExit(403, ['title' => L10n::t('Access denied.')]); + throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.')); } Nav::setSelected('events'); @@ -43,7 +43,7 @@ function cal_init(App $a) $nick = $a->argv[1]; $user = DBA::selectFirst('user', [], ['nickname' => $nick, 'blocked' => false]); if (!DBA::isResult($user)) { - System::httpExit(404, ['title' => L10n::t('Page not found.')]); + throw new \Slim\Exception\NotFoundException(); } $a->data['user'] = $user; diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 745411a8e..1a9f98fa3 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -29,7 +29,7 @@ function dfrn_notify_post(App $a) { $user = DBA::selectFirst('user', [], ['nickname' => $nick, 'account_expired' => false, 'account_removed' => false]); if (!DBA::isResult($user)) { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } dfrn_dispatch_private($user, $postdata); } elseif (!dfrn_dispatch_public($postdata)) { diff --git a/mod/dfrn_poll.php b/mod/dfrn_poll.php index 5b72c0bf9..6c849cb80 100644 --- a/mod/dfrn_poll.php +++ b/mod/dfrn_poll.php @@ -50,7 +50,7 @@ function dfrn_poll_init(App $a) if (($dfrn_id === '') && empty($_POST['dfrn_id'])) { if (Config::get('system', 'block_public') && !local_user() && !remote_user()) { - System::httpExit(403); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } $user = ''; @@ -59,7 +59,7 @@ function dfrn_poll_init(App $a) DBA::escape($a->argv[1]) ); if (!$r) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $hidewall = ($r[0]['hidewall'] && !local_user()); @@ -483,7 +483,7 @@ function dfrn_poll_content(App $a) // heluecht: I don't know why we don't fail immediately when the user or contact hadn't been found. // Since it doesn't make sense to continue from this point on, we now fail here. This should be safe. if (!DBA::isResult($r)) { - System::httpExit(404, ["title" => L10n::t('Page not found.')]); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // URL reply diff --git a/mod/display.php b/mod/display.php index acc2a5b09..fa5b2e196 100644 --- a/mod/display.php +++ b/mod/display.php @@ -20,6 +20,7 @@ use Friendica\Model\Group; use Friendica\Model\Item; use Friendica\Model\Profile; use Friendica\Module\Objects; +use Friendica\Network\HTTPException; use Friendica\Protocol\ActivityPub; use Friendica\Protocol\DFRN; use Friendica\Util\Strings; @@ -76,7 +77,7 @@ function display_init(App $a) } if (!DBA::isResult($item)) { - System::httpExit(404); + return; } if ($a->argc >= 3 && $nick == 'feed-item') { @@ -200,8 +201,7 @@ function display_fetchauthor($a, $item) function display_content(App $a, $update = false, $update_uid = 0) { if (Config::get('system','block_public') && !local_user() && !remote_user()) { - notice(L10n::t('Public access denied.') . EOL); - return; + throw new HTTPException\ForbiddenException(L10n::t('Public access denied.')); } $o = ''; @@ -254,7 +254,7 @@ function display_content(App $a, $update = false, $update_uid = 0) } if (!$item_id) { - System::httpExit(404); + throw new HTTPException\NotFoundException(L10n::t('The requested item doesn\'t exist or has been deleted.')); } // We are displaying an "alternate" link if that post was public. See issue 2864 @@ -303,8 +303,7 @@ function display_content(App $a, $update = false, $update_uid = 0) $is_owner = (local_user() && (in_array($a->profile['profile_uid'], [local_user(), 0])) ? true : false); if (!empty($a->profile['hidewall']) && !$is_owner && !$is_remote_contact) { - notice(L10n::t('Access to this profile has been restricted.') . EOL); - return; + throw new HTTPException\ForbiddenException(L10n::t('Access to this profile has been restricted.')); } // We need the editor here to be able to reshare an item. @@ -340,7 +339,7 @@ function display_content(App $a, $update = false, $update_uid = 0) $item = Item::selectFirstForUser(local_user(), $fields, $condition); if (!DBA::isResult($item)) { - System::httpExit(404); + throw new HTTPException\NotFoundException(L10n::t('The requested item doesn\'t exist or has been deleted.')); } $item['uri'] = $item['parent-uri']; @@ -415,7 +414,7 @@ function displayShowFeed($item_id, $conversation) { $xml = DFRN::itemFeed($item_id, $conversation); if ($xml == '') { - System::httpExit(500); + throw new HTTPException\InternalServerErrorException(L10n::t('The feed for this item is unavailable.')); } header("Content-type: application/atom+xml"); echo $xml; diff --git a/mod/fetch.php b/mod/fetch.php index 3e9c4e662..492f319ef 100644 --- a/mod/fetch.php +++ b/mod/fetch.php @@ -14,9 +14,8 @@ use Friendica\Database\DBA; function fetch_init(App $a) { - if (($a->argc != 3) || (!in_array($a->argv[1], ["post", "status_message", "reshare"]))) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $guid = $a->argv[2]; @@ -42,13 +41,13 @@ function fetch_init(App $a) } } - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // Fetch some data from the author (We could combine both queries - but I think this is more readable) $user = User::getOwnerDataById($item["uid"]); if (!$user) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $status = Diaspora::buildStatus($item, $user); diff --git a/mod/follow.php b/mod/follow.php index ba4ff35f1..e0b6e1733 100644 --- a/mod/follow.php +++ b/mod/follow.php @@ -17,7 +17,7 @@ use Friendica\Util\Strings; function follow_post(App $a) { if (!local_user()) { - System::httpExit(403, ['title' => L10n::t('Access denied.')]); + throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.')); } if (isset($_REQUEST['cancel'])) { diff --git a/mod/hcard.php b/mod/hcard.php index e27ea29be..828eeaf09 100644 --- a/mod/hcard.php +++ b/mod/hcard.php @@ -17,8 +17,7 @@ function hcard_init(App $a) if ($a->argc > 1) { $which = $a->argv[1]; } else { - notice(L10n::t('No profile') . EOL); - return; + throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('No profile')); } $profile = 0; diff --git a/mod/help.php b/mod/help.php index cdfedac6f..19b629271 100644 --- a/mod/help.php +++ b/mod/help.php @@ -62,11 +62,7 @@ function help_content(App $a) } if (!strlen($text)) { - header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . L10n::t('Not Found')); - $tpl = Renderer::getMarkupTemplate("404.tpl"); - return Renderer::replaceMacros($tpl, [ - '$message' => L10n::t('Page not found.') - ]); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $html = Markdown::convert($text, false); diff --git a/mod/hovercard.php b/mod/hovercard.php index 603c617ca..ca3991963 100644 --- a/mod/hovercard.php +++ b/mod/hovercard.php @@ -31,7 +31,7 @@ function hovercard_content() // Get out if the system doesn't have public access allowed if (intval(Config::get('system', 'block_public'))) { - System::httpExit(401); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } // Return the raw content of the template. We use this to make templates usable for js functions. diff --git a/mod/notice.php b/mod/notice.php index edcbefdad..b0a6a5439 100644 --- a/mod/notice.php +++ b/mod/notice.php @@ -16,7 +16,7 @@ function notice_init(App $a) $nick = $r[0]['nickname']; $a->internalRedirect('display/' . $nick . '/' . $id); } else { - notice(L10n::t('Item not found.') . EOL); + throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item not found.')); } return; diff --git a/mod/poco.php b/mod/poco.php index 064e0e9a8..c288f6b63 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -22,7 +22,7 @@ function poco_init(App $a) { $system_mode = false; if (intval(Config::get('system', 'block_public')) || (Config::get('system', 'block_local_dir'))) { - System::httpExit(401); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } if ($a->argc > 1) { @@ -31,7 +31,7 @@ function poco_init(App $a) { if (empty($nickname)) { $c = q("SELECT * FROM `pconfig` WHERE `cat` = 'system' AND `k` = 'suggestme' AND `v` = 1"); if (!DBA::isResult($c)) { - System::httpExit(401); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } $system_mode = true; } @@ -73,7 +73,7 @@ function poco_init(App $a) { DBA::escape($nickname) ); if (! DBA::isResult($users) || $users[0]['hidewall'] || $users[0]['hide-friends']) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $user = $users[0]; @@ -371,8 +371,9 @@ function poco_init(App $a) { $ret['entry'][] = []; } } else { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } + Logger::log("End of poco", Logger::DEBUG); if ($format === 'xml') { @@ -385,6 +386,6 @@ function poco_init(App $a) { echo json_encode($ret); exit(); } else { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } } diff --git a/mod/probe.php b/mod/probe.php index e120ce172..7fc3a9289 100644 --- a/mod/probe.php +++ b/mod/probe.php @@ -10,9 +10,9 @@ use Friendica\Network\Probe; function probe_content(App $a) { if (!local_user()) { - System::httpExit(403, ["title" => L10n::t("Public access denied."), - "description" => L10n::t("Only logged in users are permitted to perform a probing.")]); - exit(); + $e = new \Friendica\Network\HTTPException\ForbiddenException(L10n::t("Only logged in users are permitted to perform a probing.")); + $e->httpdesc = L10n::t("Public access denied."); + throw $e; } $o = '
        '; diff --git a/mod/pubsub.php b/mod/pubsub.php index c5744f399..e5ede6c80 100644 --- a/mod/pubsub.php +++ b/mod/pubsub.php @@ -12,10 +12,9 @@ use Friendica\Core\System; function hub_return($valid, $body) { if ($valid) { - header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK'); echo $body; } else { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } exit(); } @@ -24,7 +23,7 @@ function hub_return($valid, $body) function hub_post_return() { - System::httpExit(200); + throw new \Friendica\Network\HTTPException\OKException(); } function pubsub_init(App $a) diff --git a/mod/pubsubhubbub.php b/mod/pubsubhubbub.php index 342facd10..f71984ec1 100644 --- a/mod/pubsubhubbub.php +++ b/mod/pubsubhubbub.php @@ -17,7 +17,7 @@ function pubsubhubbub_init(App $a) { // PuSH subscription must be considered "public" so just block it // if public access isn't enabled. if (Config::get('system', 'block_public')) { - System::httpExit(403); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } // Subscription request from subscriber @@ -44,7 +44,7 @@ function pubsubhubbub_init(App $a) { $subscribe = 0; } else { Logger::log("Invalid hub_mode=$hub_mode, ignoring."); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } Logger::log("$hub_mode request from " . $_SERVER['REMOTE_ADDR']); @@ -61,7 +61,7 @@ function pubsubhubbub_init(App $a) { if (!$nick) { Logger::log('Bad hub_topic=$hub_topic, ignoring.'); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // fetch user from database given the nickname @@ -69,13 +69,13 @@ function pubsubhubbub_init(App $a) { $owner = DBA::selectFirst('user', ['uid', 'hidewall', 'nickname'], $condition); if (!DBA::isResult($owner)) { Logger::log('Local account not found: ' . $nick . ' - topic: ' . $hub_topic . ' - callback: ' . $hub_callback); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // abort if user's wall is supposed to be private if ($owner['hidewall']) { Logger::log('Local user ' . $nick . 'has chosen to hide wall, ignoring.'); - System::httpExit(403); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } // get corresponding row from contact table @@ -84,7 +84,7 @@ function pubsubhubbub_init(App $a) { $contact = DBA::selectFirst('contact', ['poll'], $condition); if (!DBA::isResult($contact)) { Logger::log('Self contact for user ' . $owner['uid'] . ' not found.'); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // sanity check that topic URLs are the same @@ -93,7 +93,7 @@ function pubsubhubbub_init(App $a) { if (!Strings::compareLink($hub_topic, $contact['poll']) && !Strings::compareLink($hub_topic2, $contact['poll']) && !Strings::compareLink($hub_topic, $self)) { Logger::log('Hub topic ' . $hub_topic . ' != ' . $contact['poll']); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // do subscriber verification according to the PuSH protocol @@ -121,19 +121,19 @@ function pubsubhubbub_init(App $a) { // give up if the HTTP return code wasn't a success (2xx) if ($ret < 200 || $ret > 299) { Logger::log("Subscriber verification for $hub_topic at $hub_callback returned $ret, ignoring."); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // check that the correct hub_challenge code was echoed back if (trim($body) !== $hub_challenge) { Logger::log("Subscriber did not echo back hub.challenge, ignoring."); Logger::log("\"$hub_challenge\" != \"".trim($body)."\""); - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } PushSubscriber::renew($owner['uid'], $nick, $subscribe, $hub_callback, $hub_topic, $hub_secret); - System::httpExit(202); + throw new \Friendica\Network\HTTPException\AcceptedException(); } exit(); } diff --git a/mod/receive.php b/mod/receive.php index b0258acbd..db1287ea6 100644 --- a/mod/receive.php +++ b/mod/receive.php @@ -22,7 +22,7 @@ function receive_post(App $a) $enabled = intval(Config::get('system', 'diaspora_enabled')); if (!$enabled) { Logger::log('mod-diaspora: disabled'); - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } if (($a->argc == 2) && ($a->argv[1] === 'public')) { @@ -32,13 +32,13 @@ function receive_post(App $a) $public = false; if ($a->argc != 3 || $a->argv[1] !== 'users') { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } $guid = $a->argv[2]; $importer = DBA::selectFirst('user', [], ['guid' => $guid, 'account_expired' => false, 'account_removed' => false]); if (!DBA::isResult($importer)) { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } } @@ -49,7 +49,7 @@ function receive_post(App $a) if (empty($_POST['xml'])) { $postdata = file_get_contents("php://input"); if ($postdata == '') { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } Logger::log('mod-diaspora: message is in the new format', Logger::DEBUG); @@ -71,7 +71,7 @@ function receive_post(App $a) Logger::log('mod-diaspora: decoded msg: ' . print_r($msg, true), Logger::DATA); if (!is_array($msg)) { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } Logger::log('mod-diaspora: dispatching', Logger::DEBUG); @@ -83,6 +83,9 @@ function receive_post(App $a) $ret = Diaspora::dispatch($importer, $msg); } - System::httpExit(($ret) ? 200 : 500); - // NOTREACHED + if ($ret) { + throw new \Friendica\Network\HTTPException\OKException(); + } else { + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); + } } diff --git a/mod/salmon.php b/mod/salmon.php index 84d2942d5..ba1bc8d46 100644 --- a/mod/salmon.php +++ b/mod/salmon.php @@ -28,7 +28,7 @@ function salmon_post(App $a, $xml = '') { DBA::escape($nick) ); if (! DBA::isResult($r)) { - System::httpExit(500); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(); } $importer = $r[0]; @@ -49,7 +49,7 @@ function salmon_post(App $a, $xml = '') { if (empty($base)) { Logger::log('unable to locate salmon data in xml '); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } // Stash the signature away for now. We have to find their key or it won't be good for anything. @@ -87,7 +87,7 @@ function salmon_post(App $a, $xml = '') { if(! $author_link) { Logger::log('Could not retrieve author URI.'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } // Once we have the author URI, go to the web and try to find their public key @@ -98,7 +98,7 @@ function salmon_post(App $a, $xml = '') { if(! $key) { Logger::log('Could not retrieve author key.'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } $key_info = explode('.',$key); @@ -130,7 +130,7 @@ function salmon_post(App $a, $xml = '') { if (! $verify) { Logger::log('Message did not verify. Discarding.'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } Logger::log('Message verified with mode '.$mode); @@ -177,8 +177,7 @@ function salmon_post(App $a, $xml = '') { //if((DBA::isResult($r)) && (($r[0]['readonly']) || ($r[0]['rel'] == Contact::FOLLOWER) || ($r[0]['blocked']))) { if (DBA::isResult($r) && $r[0]['blocked']) { Logger::log('Ignoring this author.'); - System::httpExit(202); - // NOTREACHED + throw new \Friendica\Network\HTTPException\AcceptedException(); } // Placeholder for hub discovery. @@ -188,5 +187,5 @@ function salmon_post(App $a, $xml = '') { OStatus::import($data, $importer, $contact_rec, $hub); - System::httpExit(200); + throw new \Friendica\Network\HTTPException\OKException(); } diff --git a/mod/search.php b/mod/search.php index 9a70bcac9..1416f1d89 100644 --- a/mod/search.php +++ b/mod/search.php @@ -98,12 +98,9 @@ function search_content(App $a) { } if (Config::get('system','local_search') && !local_user() && !remote_user()) { - System::httpExit(403, - ["title" => L10n::t("Public access denied."), - "description" => L10n::t("Only logged in users are permitted to perform a search.")]); - exit(); - //notice(L10n::t('Public access denied.').EOL); - //return; + $e = new \Friendica\Network\HTTPException\ForbiddenException(L10n::t("Only logged in users are permitted to perform a search.")); + $e->httpdesc = L10n::t("Public access denied."); + throw $e; } if (Config::get('system','permit_crawling') && !local_user() && !remote_user()) { @@ -123,10 +120,7 @@ function search_content(App $a) { if (!is_null($result)) { $resultdata = json_decode($result); if (($resultdata->time > (time() - $crawl_permit_period)) && ($resultdata->accesses > $free_crawls)) { - System::httpExit(429, - ["title" => L10n::t("Too Many Requests"), - "description" => L10n::t("Only one search per minute is permitted for not logged in users.")]); - exit(); + throw new \Friendica\Network\HTTPException\TooManyRequestsException(L10n::t("Only one search per minute is permitted for not logged in users.")); } Cache::set("remote_search:".$remote, json_encode(["time" => time(), "accesses" => $resultdata->accesses + 1]), Cache::HOUR); } else diff --git a/mod/viewcontacts.php b/mod/viewcontacts.php index 7c2b96fad..14919820d 100644 --- a/mod/viewcontacts.php +++ b/mod/viewcontacts.php @@ -20,18 +20,18 @@ use Friendica\Util\Proxy as ProxyUtils; function viewcontacts_init(App $a) { if (Config::get('system', 'block_public') && !local_user() && !remote_user()) { - System::httpExit(403, ["title" => L10n::t('Access denied.')]); + throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.')); } if ($a->argc < 2) { - System::httpExit(403, ["title" => L10n::t('Access denied.')]); + throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Access denied.')); } Nav::setSelected('home'); $user = DBA::selectFirst('user', [], ['nickname' => $a->argv[1], 'blocked' => false]); if (!DBA::isResult($user)) { - System::httpExit(404, ["title" => L10n::t('Page not found.')]); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $a->data['user'] = $user; diff --git a/mod/viewsrc.php b/mod/viewsrc.php index 939c73a14..55eb0b990 100644 --- a/mod/viewsrc.php +++ b/mod/viewsrc.php @@ -18,8 +18,7 @@ function viewsrc_content(App $a) $item_id = (($a->argc > 1) ? intval($a->argv[1]) : 0); if (!$item_id) { - notice(L10n::t('Item not found.') . EOL); - return; + throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item not found.')); } $item = Item::selectFirst(['body'], ['uid' => local_user(), 'id' => $item_id]); diff --git a/src/BaseModule.php b/src/BaseModule.php index 3878d1507..dd9059bfb 100644 --- a/src/BaseModule.php +++ b/src/BaseModule.php @@ -153,7 +153,7 @@ abstract class BaseModule extends BaseObject Logger::log('checkFormSecurityToken failed: user ' . $a->user['guid'] . ' - form element ' . $typename); Logger::log('checkFormSecurityToken failed: _REQUEST data: ' . print_r($_REQUEST, true), Logger::DATA); - System::httpExit(403); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } } } diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 3c4ca6fed..13156a932 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -112,7 +112,6 @@ class Profile if (!DBA::isResult($user) && empty($profiledata)) { Logger::log('profile error: ' . $a->query_string, Logger::DEBUG); - notice(L10n::t('Requested account is not available.') . EOL); return; } @@ -129,7 +128,6 @@ class Profile if (empty($pdata) && empty($profiledata)) { Logger::log('profile error: ' . $a->query_string, Logger::DEBUG); - notice(L10n::t('Requested profile is not available.') . EOL); return; } diff --git a/src/Module/Attach.php b/src/Module/Attach.php index 24e0edc55..e9af90fac 100644 --- a/src/Module/Attach.php +++ b/src/Module/Attach.php @@ -24,7 +24,7 @@ class Attach extends BaseModule { $a = self::getApp(); if ($a->argc != 2) { - System::httpExit(400); // Bad Request. + throw new \Friendica\Network\HTTPException\BadRequestException(); } // @TODO: Replace with parameter from router @@ -33,19 +33,19 @@ class Attach extends BaseModule // Check for existence $item = MAttach::exists(['id' => $item_id]); if ($item === false) { - System::httpExit(404, ['description' => L10n::t('Item was not found.')]); + throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item was not found.')); } // Now we'll fetch the item, if we have enough permisson $item = MAttach::getByIdWithPermission($item_id); if ($item === false) { - System::httpExit(403, ['description' => L10n::t('Permission denied.')]); + throw new \Friendica\Network\HTTPException\ForbiddenException(L10n::t('Permission denied.')); } $data = MAttach::getData($item); if (is_null($data)) { Logger::log('NULL data for attachment with id ' . $item['id']); - System::httpExit(404, ['description' => L10n::t('Item was not found.')]); + throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item was not found.')); } // Use quotes around the filename to prevent a "multiple Content-Disposition" diff --git a/src/Module/Feed.php b/src/Module/Feed.php index eabd45da2..ba1b08596 100644 --- a/src/Module/Feed.php +++ b/src/Module/Feed.php @@ -33,7 +33,7 @@ class Feed extends BaseModule // @TODO: Replace with parameter from router if ($a->argc < 2) { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } $type = null; diff --git a/src/Module/Followers.php b/src/Module/Followers.php index 9906dfc33..79f34021b 100644 --- a/src/Module/Followers.php +++ b/src/Module/Followers.php @@ -20,13 +20,13 @@ class Followers extends BaseModule // @TODO: Replace with parameter from router if (empty($a->argv[1])) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // @TODO: Replace with parameter from router $owner = User::getOwnerDataByNick($a->argv[1]); if (empty($owner)) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $page = defaults($_REQUEST, 'page', null); diff --git a/src/Module/Following.php b/src/Module/Following.php index 670142c48..3a68e7e0a 100644 --- a/src/Module/Following.php +++ b/src/Module/Following.php @@ -20,13 +20,13 @@ class Following extends BaseModule // @TODO: Replace with parameter from router if (empty($a->argv[1])) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } // @TODO: Replace with parameter from router $owner = User::getOwnerDataByNick($a->argv[1]); if (empty($owner)) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $page = defaults($_REQUEST, 'page', null); diff --git a/src/Module/Group.php b/src/Module/Group.php index eb1389d79..acc969c7e 100644 --- a/src/Module/Group.php +++ b/src/Module/Group.php @@ -137,7 +137,7 @@ class Group extends BaseModule $change = false; if (!local_user()) { - System::httpExit(403); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } $a = self::getApp(); @@ -276,7 +276,7 @@ class Group extends BaseModule } if (!isset($group)) { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } $groupeditor = [ diff --git a/src/Module/Inbox.php b/src/Module/Inbox.php index 35160bd88..5367adb7e 100644 --- a/src/Module/Inbox.php +++ b/src/Module/Inbox.php @@ -25,7 +25,7 @@ class Inbox extends BaseModule $postdata = file_get_contents('php://input'); if (empty($postdata)) { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } if (Config::get('debug', 'ap_inbox_log')) { @@ -43,7 +43,7 @@ class Inbox extends BaseModule if (!empty($a->argv[1])) { $user = DBA::selectFirst('user', ['uid'], ['nickname' => $a->argv[1]]); if (!DBA::isResult($user)) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $uid = $user['uid']; } else { @@ -52,6 +52,6 @@ class Inbox extends BaseModule ActivityPub\Receiver::processInbox($postdata, $_SERVER, $uid); - System::httpExit(202); + throw new \Friendica\Network\HTTPException\AcceptedException(); } } diff --git a/src/Module/Install.php b/src/Module/Install.php index 1cef8fbaf..eae018fe1 100644 --- a/src/Module/Install.php +++ b/src/Module/Install.php @@ -51,7 +51,7 @@ class Install extends BaseModule $a = self::getApp(); if (!$a->getMode()->isInstall()) { - Core\System::httpExit(403); + throw new \Friendica\Network\HTTPException\ForbiddenException(); } // route: install/testrwrite @@ -59,7 +59,7 @@ class Install extends BaseModule // @TODO: Replace with parameter from router if ($a->getArgumentValue(1, '') == 'testrewrite') { // Status Code 204 means that it worked without content - Core\System::httpExit(204); + throw new \Friendica\Network\HTTPException\NoContentException(); } self::$installer = new Core\Installer(); diff --git a/src/Module/NodeInfo.php b/src/Module/NodeInfo.php index c8d75b8e1..3261ef690 100644 --- a/src/Module/NodeInfo.php +++ b/src/Module/NodeInfo.php @@ -18,7 +18,7 @@ class NodeInfo extends BaseModule $config = self::getApp()->getConfig(); if (!$config->get('system', 'nodeinfo')) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } } @@ -41,14 +41,14 @@ class NodeInfo extends BaseModule * * @param App $app * - * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws \Friendica\Network\HTTPException\NotFoundException */ private static function printWellKnown(App $app) { $config = $app->getConfig(); if (!$config->get('system', 'nodeinfo')) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $nodeinfo = [ diff --git a/src/Module/Objects.php b/src/Module/Objects.php index f34af3a08..2104e8042 100644 --- a/src/Module/Objects.php +++ b/src/Module/Objects.php @@ -20,7 +20,7 @@ class Objects extends BaseModule $a = self::getApp(); if (empty($a->argv[1])) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } if (!ActivityPub::isRequest()) { @@ -38,7 +38,7 @@ class Objects extends BaseModule // @TODO: Replace with parameter from router $item = Item::selectFirst(['id', 'author-link'], ['guid' => $a->argv[1], 'private' => false]); if (!DBA::isResult($item) || !strstr($item['author-link'], System::baseUrl())) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } } diff --git a/src/Module/Outbox.php b/src/Module/Outbox.php index 27dcd5c1f..148256779 100644 --- a/src/Module/Outbox.php +++ b/src/Module/Outbox.php @@ -20,12 +20,12 @@ class Outbox extends BaseModule // @TODO: Replace with parameter from router if (empty($a->argv[1])) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $owner = User::getOwnerDataByNick($a->argv[1]); if (empty($owner)) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $page = defaults($_REQUEST, 'page', null); diff --git a/src/Module/Photo.php b/src/Module/Photo.php index 9165af8be..bcfe13f53 100644 --- a/src/Module/Photo.php +++ b/src/Module/Photo.php @@ -6,6 +6,7 @@ namespace Friendica\Module; use Friendica\BaseModule; +use Friendica\Core\L10n; use Friendica\Core\Logger; use Friendica\Core\System; use Friendica\Model\Photo as MPhoto; @@ -27,7 +28,7 @@ class Photo extends BaseModule $a = self::getApp(); // @TODO: Replace with parameter from router if ($a->argc <= 1 || $a->argc > 4) { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } if (isset($_SERVER["HTTP_IF_MODIFIED_SINCE"])) { @@ -74,9 +75,7 @@ class Photo extends BaseModule } if ($photo === false) { - // not using System::httpExit() because we don't want html here. - header($_SERVER["SERVER_PROTOCOL"] . " 404 Not Found" , true, 404); - exit(); + System::httpExit('404', 'Not Found'); } $cacheable = ($photo["allow_cid"] . $photo["allow_gid"] . $photo["deny_cid"] . $photo["deny_gid"] === "") && (isset($photo["cacheable"]) ? $photo["cacheable"] : true); @@ -85,7 +84,7 @@ class Photo extends BaseModule if (is_null($img) || !$img->isValid()) { Logger::log("Invalid photo with id {$photo["id"]}."); - System::httpExit(500, ["description" => "Invalid photo with id {$photo["id"]}."]); + throw new \Friendica\Network\HTTPException\InternalServerErrorException(L10n::t('Invalid photo with id %s.', $photo["id"])); } // if customsize is set and image is not a gif, resize it diff --git a/src/Module/Profile.php b/src/Module/Profile.php index c3297d261..fceea726b 100644 --- a/src/Module/Profile.php +++ b/src/Module/Profile.php @@ -38,7 +38,7 @@ class Profile extends BaseModule // @TODO: Replace with parameter from router if ($a->argc < 2) { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } self::$which = filter_var($a->argv[1], FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_BACKTICK); diff --git a/src/Module/Proxy.php b/src/Module/Proxy.php index 387667a1a..75a1142af 100644 --- a/src/Module/Proxy.php +++ b/src/Module/Proxy.php @@ -70,7 +70,7 @@ class Proxy extends BaseModule $request = self::getRequestInfo(); if (empty($request['url'])) { - System::httpExit(400, ['title' => L10n::t('Bad Request.')]); + throw new \Friendica\Network\HTTPException\BadRequestException(); } // Webserver already tried direct cache... diff --git a/src/Module/Statistics.php b/src/Module/Statistics.php index 566ace333..3e64828e7 100644 --- a/src/Module/Statistics.php +++ b/src/Module/Statistics.php @@ -13,7 +13,7 @@ class Statistics extends BaseModule $config = self::getApp()->getConfig(); if (!$config->get("system", "nodeinfo")) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } } diff --git a/src/Module/WebFinger.php b/src/Module/WebFinger.php index 3afcecb05..0c1a692e1 100644 --- a/src/Module/WebFinger.php +++ b/src/Module/WebFinger.php @@ -5,7 +5,6 @@ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Core\L10n; use Friendica\Core\Renderer; -use Friendica\Core\System; use Friendica\Network\Probe; /** @@ -13,22 +12,14 @@ use Friendica\Network\Probe; */ class WebFinger extends BaseModule { - public static function init() - { - if (!local_user()) { - System::httpExit( - 403, - [ - 'title' => L10n::t('Public access denied.'), - 'description' => L10n::t('Only logged in users are permitted to perform a probing.'), - ], - ); - exit(); - } - } - public static function content() { + if (!local_user()) { + $e = new \Friendica\Network\HTTPException\ForbiddenException(L10n::t("Only logged in users are permitted to perform a probing.")); + $e->httpdesc = L10n::t("Public access denied."); + throw $e; + } + $app = self::getApp(); $addr = defaults($_GET, 'addr', ''); diff --git a/src/Module/Xrd.php b/src/Module/Xrd.php index 38ce151ff..a3b161d18 100644 --- a/src/Module/Xrd.php +++ b/src/Module/Xrd.php @@ -58,7 +58,7 @@ class Xrd extends BaseModule $user = User::getByNickname($name); if (empty($user)) { - System::httpExit(404); + throw new \Friendica\Network\HTTPException\NotFoundException(); } $profileURL = $app->getBaseURL() . '/profile/' . $user['nickname']; diff --git a/src/Protocol/Diaspora.php b/src/Protocol/Diaspora.php index 33cbb2659..3a7e73cee 100644 --- a/src/Protocol/Diaspora.php +++ b/src/Protocol/Diaspora.php @@ -400,7 +400,7 @@ class Diaspora if ($no_exit) { return false; } else { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } } @@ -419,7 +419,7 @@ class Diaspora if ($no_exit) { return false; } else { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } } @@ -445,7 +445,7 @@ class Diaspora if ($no_exit) { return false; } else { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } } @@ -455,7 +455,7 @@ class Diaspora if ($no_exit) { return false; } else { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } } @@ -465,7 +465,7 @@ class Diaspora if ($no_exit) { return false; } else { - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } } @@ -550,7 +550,7 @@ class Diaspora if (!$base) { Logger::log('unable to locate salmon data in xml'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } @@ -588,7 +588,7 @@ class Diaspora if (!$author_link) { Logger::log('Could not retrieve author URI.'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } // Once we have the author URI, go to the web and try to find their public key // (first this will look it up locally if it is in the fcontact cache) @@ -599,14 +599,14 @@ class Diaspora if (!$key) { Logger::log('Could not retrieve author key.'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } $verify = Crypto::rsaVerify($signed_data, $signature, $key); if (!$verify) { Logger::log('Message did not verify. Discarding.'); - System::httpExit(400); + throw new \Friendica\Network\HTTPException\BadRequestException(); } Logger::log('Message verified.'); From ba3cd1334ad8a81137fa20cb6c407657ae6424b3 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Wed, 1 May 2019 23:20:25 -0400 Subject: [PATCH 332/653] Fix Api and BaseObject tests --- tests/include/ApiTest.php | 16 ++++++++-------- tests/src/BaseObjectTest.php | 5 ++--- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/tests/include/ApiTest.php b/tests/include/ApiTest.php index 8dc3304f2..6f1172666 100644 --- a/tests/include/ApiTest.php +++ b/tests/include/ApiTest.php @@ -610,8 +610,8 @@ class ApiTest extends DatabaseTest public function testApiErrorWithJson() { $this->assertEquals( - '{"status":{"error":"error_message","code":"200 Friendica\\\\Network\\\\HTTP","request":""}}', - api_error('json', new HTTPException('error_message')) + '{"status":{"error":"error_message","code":"200 OK","request":""}}', + api_error('json', new HTTPException\OKException('error_message')) ); } @@ -628,10 +628,10 @@ class ApiTest extends DatabaseTest 'xmlns:friendica="http://friendi.ca/schema/api/1/" '. 'xmlns:georss="http://www.georss.org/georss">'."\n". ' error_message'."\n". - ' 200 Friendica\Network\HTTP'."\n". + ' 200 OK'."\n". ' '."\n". ''."\n", - api_error('xml', new HTTPException('error_message')) + api_error('xml', new HTTPException\OKException('error_message')) ); } @@ -648,10 +648,10 @@ class ApiTest extends DatabaseTest 'xmlns:friendica="http://friendi.ca/schema/api/1/" '. 'xmlns:georss="http://www.georss.org/georss">'."\n". ' error_message'."\n". - ' 200 Friendica\Network\HTTP'."\n". + ' 200 OK'."\n". ' '."\n". ''."\n", - api_error('rss', new HTTPException('error_message')) + api_error('rss', new HTTPException\OKException('error_message')) ); } @@ -668,10 +668,10 @@ class ApiTest extends DatabaseTest 'xmlns:friendica="http://friendi.ca/schema/api/1/" '. 'xmlns:georss="http://www.georss.org/georss">'."\n". ' error_message'."\n". - ' 200 Friendica\Network\HTTP'."\n". + ' 200 OK'."\n". ' '."\n". ''."\n", - api_error('atom', new HTTPException('error_message')) + api_error('atom', new HTTPException\OKException('error_message')) ); } diff --git a/tests/src/BaseObjectTest.php b/tests/src/BaseObjectTest.php index 749ae77c2..cb980b47e 100644 --- a/tests/src/BaseObjectTest.php +++ b/tests/src/BaseObjectTest.php @@ -33,7 +33,7 @@ class BaseObjectTest extends TestCase $this->setUpVfsDir(); $this->mockApp($this->root); - $this->assertNull($baseObject->setApp($this->app)); + $baseObject->setApp($this->app); $this->assertEquals($this->app, $baseObject->getApp()); } @@ -45,7 +45,6 @@ class BaseObjectTest extends TestCase */ public function testGetAppFailed() { - $baseObject = new BaseObject(); - $baseObject->getApp(); + BaseObject::getApp(); } } From 08ef4c23d7ed2c969b17b622af397a3d69474ef5 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 2 May 2019 13:08:06 -0400 Subject: [PATCH 333/653] Replace last references to removed HTTPException->httpcode property --- include/api.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/api.php b/include/api.php index 698fa2f99..f360dc411 100644 --- a/include/api.php +++ b/include/api.php @@ -364,7 +364,7 @@ function api_call(App $a) Logger::warning(API_LOG_PREFIX . 'not implemented', ['module' => 'api', 'action' => 'call']); throw new NotImplementedException(); } catch (HTTPException $e) { - header("HTTP/1.1 {$e->httpcode} {$e->httpdesc}"); + header("HTTP/1.1 {$e->getCode()} {$e->httpdesc}"); return api_error($type, $e); } } @@ -384,7 +384,7 @@ function api_error($type, $e) /// @TODO: https://dev.twitter.com/overview/api/response-codes $error = ["error" => $error, - "code" => $e->httpcode . " " . $e->httpdesc, + "code" => $e->getCode() . " " . $e->httpdesc, "request" => $a->query_string]; $return = api_format_data('status', $type, ['status' => $error]); From a4dffee5f4ce2526d9a2bf36cb3a767851c51d82 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 2 May 2019 19:22:43 +0000 Subject: [PATCH 334/653] Fix wrong error message when updated a contact --- src/Model/Contact.php | 2 +- src/Worker/OnePoll.php | 93 +++++++++++++++++++++--------------------- 2 files changed, 48 insertions(+), 47 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index ee1eb20c2..159b888b5 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1782,7 +1782,7 @@ class Contact extends BaseObject * @param array $contact * @return boolean */ - private static function isLegacyDFRNContact($contact) + public static function isLegacyDFRNContact($contact) { // Newer Friendica contacts are connected via AP, then these fields aren't set return !empty($contact['dfrn-id']) || !empty($contact['issued-id']); diff --git a/src/Worker/OnePoll.php b/src/Worker/OnePoll.php index 8523ce2e0..8f494af53 100644 --- a/src/Worker/OnePoll.php +++ b/src/Worker/OnePoll.php @@ -48,20 +48,27 @@ class OnePoll return; } + if (($contact['network'] == Protocol::DFRN) && !Contact::isLegacyDFRNContact($contact)) { + $protocol = Protocol::ACTIVITYPUB; + } else { + $protocol = $contact['network']; + } + $importer_uid = $contact['uid']; // Possibly switch the remote contact to AP - if ($contact['network'] === Protocol::OSTATUS) { + if ($protocol === Protocol::OSTATUS) { ActivityPub\Receiver::switchContact($contact['id'], $importer_uid, $contact['url']); $contact = DBA::selectFirst('contact', [], ['id' => $contact_id]); } + $updated = DateTimeFormat::utcNow(); + // These three networks can be able to speak AP, so we are trying to fetch AP profile data here - if (in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DIASPORA, Protocol::DFRN])) { + if (in_array($protocol, [Protocol::ACTIVITYPUB, Protocol::DIASPORA, Protocol::DFRN])) { $apcontact = APContact::getByURL($contact['url'], true); - $updated = DateTimeFormat::utcNow(); - if (($contact['network'] === Protocol::ACTIVITYPUB) && empty($apcontact)) { + if (($protocol === Protocol::ACTIVITYPUB) && empty($apcontact)) { self::updateContact($contact, ['last-update' => $updated, 'failure_update' => $updated]); Contact::markForArchival($contact); Logger::log('Contact archived'); @@ -74,9 +81,8 @@ class OnePoll } // Diaspora users, archived users and followers are only checked if they still exist. - if (($contact['network'] != Protocol::ACTIVITYPUB) && ($contact['archive'] || ($contact["network"] == Protocol::DIASPORA) || ($contact["rel"] == Contact::FOLLOWER))) { + if (($protocol != Protocol::ACTIVITYPUB) && ($contact['archive'] || ($contact["network"] == Protocol::DIASPORA) || ($contact["rel"] == Contact::FOLLOWER))) { $last_updated = PortableContact::lastUpdated($contact["url"], true); - $updated = DateTimeFormat::utcNow(); if ($last_updated) { Logger::log('Contact '.$contact['id'].' had last update on '.$last_updated, Logger::DEBUG); @@ -98,10 +104,9 @@ class OnePoll } // Update the contact entry - if (in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN])) { - $updated = DateTimeFormat::utcNow(); + if (in_array($protocol, [Protocol::ACTIVITYPUB, Protocol::OSTATUS, Protocol::DIASPORA, Protocol::DFRN])) { // Currently we can't check every AP implementation, so we don't do it at all - if (($contact['network'] != Protocol::ACTIVITYPUB) && !PortableContact::reachable($contact['url'])) { + if (($protocol != Protocol::ACTIVITYPUB) && !PortableContact::reachable($contact['url'])) { Logger::log("Skipping probably dead contact ".$contact['url']); // set the last-update so we don't keep polling @@ -140,25 +145,25 @@ class OnePoll Logger::log("Don't poll follower"); // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); return; } // Don't poll if polling is deactivated (But we poll feeds and mails anyway) - if (!in_array($contact['network'], [Protocol::FEED, Protocol::MAIL]) && Config::get('system', 'disable_polling')) { + if (!in_array($protocol, [Protocol::FEED, Protocol::MAIL]) && Config::get('system', 'disable_polling')) { Logger::log('Polling is disabled'); // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); return; } // We don't poll AP contacts by now - if ($contact['network'] === Protocol::ACTIVITYPUB) { + if ($protocol === Protocol::ACTIVITYPUB) { Logger::log("Don't poll AP contact"); // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); return; } @@ -166,7 +171,7 @@ class OnePoll Logger::log('Ignore public contacts'); // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); return; } @@ -178,7 +183,7 @@ class OnePoll Logger::log('No self contact for user '.$importer_uid); // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); return; } @@ -203,9 +208,9 @@ class OnePoll : DateTimeFormat::utc($contact['last-update'], DateTimeFormat::ATOM) ); - Logger::log("poll: ({$contact['network']}-{$contact['id']}) IMPORTER: {$importer['name']}, CONTACT: {$contact['name']}"); + Logger::log("poll: ({$protocol}-{$contact['id']}) IMPORTER: {$importer['name']}, CONTACT: {$contact['name']}"); - if ($contact['network'] === Protocol::DFRN) { + if ($protocol === Protocol::DFRN) { $idtosend = $orig_id = (($contact['dfrn-id']) ? $contact['dfrn-id'] : $contact['issued-id']); if (intval($contact['duplex']) && $contact['dfrn-id']) { $idtosend = '0:' . $orig_id; @@ -233,7 +238,7 @@ class OnePoll if (!$curlResult->isSuccess() && ($curlResult->getErrorNumber() == CURLE_OPERATION_TIMEDOUT)) { // set the last-update so we don't keep polling - self::updateContact($contact, ['last-update' => DateTimeFormat::utcNow()]); + self::updateContact($contact, ['last-update' => $updated]); Contact::markForArchival($contact); Logger::log('Contact archived'); return; @@ -251,7 +256,7 @@ class OnePoll Logger::log("$url appears to be dead - marking for death "); // set the last-update so we don't keep polling - $fields = ['last-update' => DateTimeFormat::utcNow(), 'failure_update' => DateTimeFormat::utcNow()]; + $fields = ['last-update' => $updated, 'failure_update' => $updated]; self::updateContact($contact, $fields); Contact::markForArchival($contact); return; @@ -260,7 +265,7 @@ class OnePoll if (!strstr($handshake_xml, '<')) { Logger::log('response from ' . $url . ' did not contain XML.'); - $fields = ['last-update' => DateTimeFormat::utcNow(), 'failure_update' => DateTimeFormat::utcNow()]; + $fields = ['last-update' => $updated, 'failure_update' => $updated]; self::updateContact($contact, $fields); Contact::markForArchival($contact); return; @@ -274,7 +279,7 @@ class OnePoll Logger::log("$url replied status 1 - marking for death "); // set the last-update so we don't keep polling - $fields = ['last-update' => DateTimeFormat::utcNow(), 'failure_update' => DateTimeFormat::utcNow()]; + $fields = ['last-update' => $updated, 'failure_update' => $updated]; self::updateContact($contact, $fields); Contact::markForArchival($contact); } elseif ($contact['term-date'] > DBA::NULL_DATETIME) { @@ -283,7 +288,7 @@ class OnePoll if ((intval($res->status) != 0) || !strlen($res->challenge) || !strlen($res->dfrn_id)) { // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); Logger::log('Contact status is ' . $res->status); return; } @@ -326,7 +331,7 @@ class OnePoll Logger::log('ID did not decode: ' . $contact['id'] . ' orig: ' . $orig_id . ' final: ' . $final_dfrn_id); // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); Contact::markForArchival($contact); return; } @@ -337,9 +342,9 @@ class OnePoll $xml = Network::post($contact['poll'], $postvars)->getBody(); - } elseif (($contact['network'] === Protocol::OSTATUS) - || ($contact['network'] === Protocol::DIASPORA) - || ($contact['network'] === Protocol::FEED)) { + } elseif (($protocol === Protocol::OSTATUS) + || ($protocol === Protocol::DIASPORA) + || ($protocol === Protocol::FEED)) { // Upgrading DB fields from an older Friendica version // Will only do this once per notify-enabled OStatus contact @@ -348,7 +353,7 @@ class OnePoll $stat_writeable = ((($contact['notify']) && ($contact['rel'] == Contact::FOLLOWER || $contact['rel'] == Contact::FRIEND)) ? 1 : 0); // Contacts from OStatus are always writable - if ($contact['network'] === Protocol::OSTATUS) { + if ($protocol === Protocol::OSTATUS) { $stat_writeable = 1; } @@ -360,7 +365,7 @@ class OnePoll // Are we allowed to import from this person? if ($contact['rel'] == Contact::FOLLOWER || $contact['blocked']) { // set the last-update so we don't keep polling - DBA::update('contact', ['last-update' => DateTimeFormat::utcNow()], ['id' => $contact['id']]); + DBA::update('contact', ['last-update' => $updated], ['id' => $contact['id']]); Logger::log('Contact is blocked or only a follower'); return; } @@ -371,7 +376,7 @@ class OnePoll if ($curlResult->isTimeout()) { // set the last-update so we don't keep polling - self::updateContact($contact, ['last-update' => DateTimeFormat::utcNow()]); + self::updateContact($contact, ['last-update' => $updated]); Contact::markForArchival($contact); Logger::log('Contact archived'); return; @@ -379,13 +384,13 @@ class OnePoll $xml = $curlResult->getBody(); - } elseif ($contact['network'] === Protocol::MAIL) { + } elseif ($protocol === Protocol::MAIL) { Logger::log("Mail: Fetching for ".$contact['addr'], Logger::DEBUG); $mail_disabled = ((function_exists('imap_open') && !Config::get('system', 'imap_disabled')) ? 0 : 1); if ($mail_disabled) { // set the last-update so we don't keep polling - self::updateContact($contact, ['last-update' => DateTimeFormat::utcNow()]); + self::updateContact($contact, ['last-update' => $updated]); Contact::markForArchival($contact); Logger::log('Contact archived'); return; @@ -406,7 +411,7 @@ class OnePoll unset($password); Logger::log("Mail: Connect to " . $mailconf['user']); if ($mbox) { - $fields = ['last_check' => DateTimeFormat::utcNow()]; + $fields = ['last_check' => $updated]; DBA::update('mailacct', $fields, ['id' => $mailconf['id']]); Logger::log("Mail: Connected to " . $mailconf['user']); } else { @@ -448,7 +453,7 @@ class OnePoll // Only delete when mails aren't automatically moved or deleted if (($mailconf['action'] != 1) && ($mailconf['action'] != 3)) if ($meta->deleted && ! $item['deleted']) { - $fields = ['deleted' => true, 'changed' => DateTimeFormat::utcNow()]; + $fields = ['deleted' => true, 'changed' => $updated]; Item::update($fields, ['id' => $item['id']]); } @@ -579,7 +584,7 @@ class OnePoll if ($datarray['parent-uri'] === $datarray['uri']) { $datarray['private'] = 1; } - if (($contact['network'] === Protocol::MAIL) && !PConfig::get($importer_uid, 'system', 'allow_public_email_replies')) { + if (($protocol === Protocol::MAIL) && !PConfig::get($importer_uid, 'system', 'allow_public_email_replies')) { $datarray['private'] = 1; $datarray['allow_cid'] = '<' . $contact['id'] . '>'; } @@ -622,7 +627,7 @@ class OnePoll if (!strstr($xml, '<')) { Logger::log('post_handshake: response from ' . $url . ' did not contain XML.'); - $fields = ['last-update' => DateTimeFormat::utcNow(), 'failure_update' => DateTimeFormat::utcNow()]; + $fields = ['last-update' => $updated, 'failure_update' => $updated]; self::updateContact($contact, $fields); Contact::markForArchival($contact); return; @@ -634,16 +639,16 @@ class OnePoll consume_feed($xml, $importer, $contact, $hub); // do it a second time for DFRN so that any children find their parents. - if ($contact['network'] === Protocol::DFRN) { + if ($protocol === Protocol::DFRN) { consume_feed($xml, $importer, $contact, $hub); } $hubmode = 'subscribe'; - if ($contact['network'] === Protocol::DFRN || $contact['blocked']) { + if ($protocol === Protocol::DFRN || $contact['blocked']) { $hubmode = 'unsubscribe'; } - if (($contact['network'] === Protocol::OSTATUS || $contact['network'] == Protocol::FEED) && (! $contact['hub-verify'])) { + if (($protocol === Protocol::OSTATUS || $protocol == Protocol::FEED) && (! $contact['hub-verify'])) { $hub_update = true; } @@ -651,9 +656,9 @@ class OnePoll $hub_update = true; } - Logger::log("Contact ".$contact['id']." returned hub: ".$hub." Network: ".$contact['network']." Relation: ".$contact['rel']." Update: ".$hub_update); + Logger::log("Contact ".$contact['id']." returned hub: ".$hub." Network: ".$protocol." Relation: ".$contact['rel']." Update: ".$hub_update); - if (strlen($hub) && $hub_update && (($contact['rel'] != Contact::FOLLOWER) || $contact['network'] == Protocol::FEED)) { + if (strlen($hub) && $hub_update && (($contact['rel'] != Contact::FOLLOWER) || $protocol == Protocol::FEED)) { Logger::log('hub ' . $hubmode . ' : ' . $hub . ' contact name : ' . $contact['name'] . ' local user : ' . $importer['name']); $hubs = explode(',', $hub); @@ -670,19 +675,15 @@ class OnePoll } } - $updated = DateTimeFormat::utcNow(); - self::updateContact($contact, ['last-update' => $updated, 'success_update' => $updated]); DBA::update('gcontact', ['last_contact' => $updated], ['nurl' => $contact['nurl']]); Contact::unmarkForArchival($contact); } elseif (in_array($contact["network"], [Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, Protocol::FEED])) { - $updated = DateTimeFormat::utcNow(); - self::updateContact($contact, ['last-update' => $updated, 'failure_update' => $updated]); DBA::update('gcontact', ['last_failure' => $updated], ['nurl' => $contact['nurl']]); Contact::markForArchival($contact); } else { - self::updateContact($contact, ['last-update' => DateTimeFormat::utcNow()]); + self::updateContact($contact, ['last-update' => $updated]); } Logger::log('End'); From c5e7abf9c552689812f1388ebba5e87fe245ad41 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 22:03:27 +0200 Subject: [PATCH 335/653] Move mod/allfriends to src/Module/AllFriends --- mod/allfriends.php | 106 ---------------------------- src/App/Router.php | 144 +++++++++++++++++++------------------- src/Model/Contact.php | 22 ++++++ src/Module/AllFriends.php | 104 +++++++++++++++++++++++++++ src/Module/Feed.php | 1 - 5 files changed, 198 insertions(+), 179 deletions(-) delete mode 100644 mod/allfriends.php create mode 100644 src/Module/AllFriends.php diff --git a/mod/allfriends.php b/mod/allfriends.php deleted file mode 100644 index ce648cc25..000000000 --- a/mod/allfriends.php +++ /dev/null @@ -1,106 +0,0 @@ -argc > 1) { - $cid = intval($a->argv[1]); - } - - if (!$cid) { - return; - } - - $uid = $a->user['uid']; - - $contact = DBA::selectFirst('contact', ['name', 'url', 'photo', 'uid', 'id'], ['id' => $cid, 'uid' => local_user()]); - - if (!DBA::isResult($contact)) { - return; - } - - $a->page['aside'] = ""; - Model\Profile::load($a, "", 0, Model\Contact::getDetailsByURL($contact["url"])); - - $total = Model\GContact::countAllFriends(local_user(), $cid); - - $pager = new Pager($a->query_string); - - $r = Model\GContact::allFriends(local_user(), $cid, $pager->getStart(), $pager->getItemsPerPage()); - if (!DBA::isResult($r)) { - $o .= L10n::t('No friends to display.'); - return $o; - } - - $id = 0; - - $entries = []; - foreach ($r as $rr) { - //get further details of the contact - $contact_details = Model\Contact::getDetailsByURL($rr['url'], $uid, $rr); - - $connlnk = ''; - // $rr[cid] is only available for common contacts. So if the contact is a common one, use contact_photo_menu to generate the photo_menu - // If the contact is not common to the user, Connect/Follow' will be added to the photo menu - if ($rr['cid']) { - $rr['id'] = $rr['cid']; - $photo_menu = Model\Contact::photoMenu($rr); - } else { - $connlnk = System::baseUrl() . '/follow/?url=' . $rr['url']; - $photo_menu = [ - 'profile' => [L10n::t("View Profile"), Model\Contact::magicLink($rr['url'])], - 'follow' => [L10n::t("Connect/Follow"), $connlnk] - ]; - } - - $entry = [ - 'url' => Model\Contact::magicLink($rr['url']), - 'itemurl' => defaults($contact_details, 'addr', $rr['url']), - 'name' => $contact_details['name'], - 'thumb' => ProxyUtils::proxifyUrl($contact_details['thumb'], false, ProxyUtils::SIZE_THUMB), - 'img_hover' => $contact_details['name'], - 'details' => $contact_details['location'], - 'tags' => $contact_details['keywords'], - 'about' => $contact_details['about'], - 'account_type' => Model\Contact::getAccountType($contact_details), - 'network' => ContactSelector::networkToName($contact_details['network'], $contact_details['url']), - 'photo_menu' => $photo_menu, - 'conntxt' => L10n::t('Connect'), - 'connlnk' => $connlnk, - 'id' => ++$id, - ]; - $entries[] = $entry; - } - - $tab_str = Module\Contact::getTabsHTML($a, $contact, 4); - - $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); - $o .= Renderer::replaceMacros($tpl, [ - '$tab_str' => $tab_str, - '$contacts' => $entries, - '$paginate' => $pager->renderFull($total), - ]); - - return $o; -} diff --git a/src/App/Router.php b/src/App/Router.php index e2a6719f6..a3d6af758 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -40,84 +40,12 @@ class Router */ public function collectRoutes() { - $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); - $this->routeCollector->addRoute(['GET'], '/amcd', Module\AccountManagementControlDocument::class); $this->routeCollector->addGroup('/.well-known', function (RouteCollector $collector) { $collector->addRoute(['GET'], '/host-meta' , Module\WellKnown\HostMeta::class); $collector->addRoute(['GET'], '/nodeinfo[/1.0]' , Module\NodeInfo::class); $collector->addRoute(['GET'], '/webfinger' , Module\Xrd::class); $collector->addRoute(['GET'], '/x-social-relay' , Module\WellKnown\XSocialRelay::class); }); - $this->routeCollector->addRoute(['GET'], '/acctlink', Module\Acctlink::class); - $this->routeCollector->addRoute(['GET'], '/apps', Module\Apps::class); - $this->routeCollector->addRoute(['GET'], '/attach/{item:\d+}', Module\Attach::class); - $this->routeCollector->addRoute(['GET'], '/babel', Module\Babel::class); - $this->routeCollector->addGroup('/contact', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '[/]', Module\Contact::class); - $collector->addRoute(['GET'], '/{id:\d+}[/posts|conversations]', Module\Contact::class); - }); - $this->routeCollector->addRoute(['GET'], '/credits', Module\Credits::class); - $this->routeCollector->addGroup('/feed', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '/{nickname}', Module\Feed::class); - $collector->addRoute(['GET'], '/{nickname}/posts', Module\Feed::class); - $collector->addRoute(['GET'], '/{nickname}/comments', Module\Feed::class); - $collector->addRoute(['GET'], '/{nickname}/replies', Module\Feed::class); - $collector->addRoute(['GET'], '/{nickname}/activity', Module\Feed::class); - }); - $this->routeCollector->addRoute(['GET'], '/feedtest', Module\Feedtest::class); - $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); - $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); - $this->routeCollector->addRoute(['GET'], '/following/{owner}', Module\Following::class); - $this->routeCollector->addGroup('/group', function (RouteCollector $collector) { - $collector->addRoute(['GET', 'POST'], '[/]', Module\Group::class); - $collector->addRoute(['GET', 'POST'], '/{group:\d+}', Module\Group::class); - $collector->addRoute(['GET', 'POST'], '/none', Module\Group::class); - $collector->addRoute(['GET', 'POST'], '/new', Module\Group::class); - $collector->addRoute(['GET', 'POST'], '/drop/{group:\d+}', Module\Group::class); - $collector->addRoute(['GET', 'POST'], '/{group:\d+}/{contact:\d+}', Module\Group::class); - - $collector->addRoute(['POST'], '/{group:\d+}/add/{contact:\d+}', Module\Group::class); - $collector->addRoute(['POST'], '/{group:\d+}/remove/{contact:\d+}', Module\Group::class); - }); - $this->routeCollector->addRoute(['GET'], '/hashtag', Module\Hashtag::class); - $this->routeCollector->addRoute(['GET'], '/inbox[/{nickname}]', Module\Inbox::class); - $this->routeCollector->addGroup('/install', function (RouteCollector $collector) { - $collector->addRoute(['GET', 'POST'], '[/]', Module\Install::class); - $collector->addRoute(['GET'], '/testrewrite', Module\Install::class); - }); - $this->routeCollector->addRoute(['GET', 'POST'], '/localtime', Module\Localtime::class); - $this->routeCollector->addRoute(['GET', 'POST'], '/login', Module\Login::class); - $this->routeCollector->addRoute(['GET'], '/magic', Module\Magic::class); - $this->routeCollector->addRoute(['GET'], '/manifest', Module\Manifest::class); - $this->routeCollector->addRoute(['GET'], '/nodeinfo/1.0', Module\NodeInfo::class); - $this->routeCollector->addRoute(['GET'], '/objects/{guid}', Module\Objects::class); - $this->routeCollector->addGroup('/oembed', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '/[b2h|h2b]', Module\Oembed::class); - $collector->addRoute(['GET'], '/{hash}', Module\Oembed::class); - }); - $this->routeCollector->addRoute(['GET'], '/outbox/{owner}', Module\Outbox::class); - $this->routeCollector->addRoute(['GET'], '/owa', Module\Owa::class); - $this->routeCollector->addGroup('/photo', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '/{name}', Module\Photo::class); - $collector->addRoute(['GET'], '/{type}/{name}', Module\Photo::class); - $collector->addRoute(['GET'], '/{type}/{customize}/{name}', Module\Photo::class); - }); - $this->routeCollector->addGroup('/profile', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '/{nickname}', Module\Profile::class); - $collector->addRoute(['GET'], '/{profile:\d+}/view', Module\Profile::class); - }); - $this->routeCollector->addGroup('/proxy', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '[/]', Module\Proxy::class); - $collector->addRoute(['GET'], '/{url}', Module\Proxy::class); - $collector->addRoute(['GET'], '/sub1/{url}', Module\Proxy::class); - $collector->addRoute(['GET'], '/sub1/sub2/{url}', Module\Proxy::class); - }); - $this->routeCollector->addRoute(['GET', 'POST'], '/register', Module\Register::class); - $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); - $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); - $this->routeCollector->addRoute(['GET'], '/webfinger', Module\WebFinger::class); - $this->routeCollector->addRoute(['GET'], '/xrd', Module\Xrd::class); - $this->routeCollector->addGroup('/admin', function (RouteCollector $collector) { $collector->addRoute(['GET'] , '[/]' , Module\Admin\Summary::class); @@ -154,6 +82,78 @@ class Router $collector->addRoute(['GET', 'POST'], '/users[/{action}/{uid}]' , Module\Admin\Users::class); }); + $this->routeCollector->addRoute(['GET'], '/amcd', Module\AccountManagementControlDocument::class); + $this->routeCollector->addRoute(['GET'], '/acctlink', Module\Acctlink::class); + $this->routeCollector->addRoute(['GET'], '/allfriends/{id:\d+}', Module\AllFriends::class); + $this->routeCollector->addRoute(['GET'], '/apps', Module\Apps::class); + $this->routeCollector->addRoute(['GET'], '/attach/{item:\d+}', Module\Attach::class); + $this->routeCollector->addRoute(['GET'], '/babel', Module\Babel::class); + $this->routeCollector->addGroup('/contact', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '[/]', Module\Contact::class); + $collector->addRoute(['GET'], '/{id:\d+}[/posts|conversations]', Module\Contact::class); + }); + $this->routeCollector->addRoute(['GET'], '/credits', Module\Credits::class); + $this->routeCollector->addGroup('/feed', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '/{nickname}', Module\Feed::class); + $collector->addRoute(['GET'], '/{nickname}/posts', Module\Feed::class); + $collector->addRoute(['GET'], '/{nickname}/comments', Module\Feed::class); + $collector->addRoute(['GET'], '/{nickname}/replies', Module\Feed::class); + $collector->addRoute(['GET'], '/{nickname}/activity', Module\Feed::class); + }); + $this->routeCollector->addRoute(['GET'], '/feedtest', Module\Feedtest::class); + $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); + $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); + $this->routeCollector->addRoute(['GET'], '/following/{owner}', Module\Following::class); + $this->routeCollector->addGroup('/group', function (RouteCollector $collector) { + $collector->addRoute(['GET', 'POST'], '[/]', Module\Group::class); + $collector->addRoute(['GET', 'POST'], '/{group:\d+}', Module\Group::class); + $collector->addRoute(['GET', 'POST'], '/none', Module\Group::class); + $collector->addRoute(['GET', 'POST'], '/new', Module\Group::class); + $collector->addRoute(['GET', 'POST'], '/drop/{group:\d+}', Module\Group::class); + $collector->addRoute(['GET', 'POST'], '/{group:\d+}/{contact:\d+}', Module\Group::class); + + $collector->addRoute(['POST'], '/{group:\d+}/add/{contact:\d+}', Module\Group::class); + $collector->addRoute(['POST'], '/{group:\d+}/remove/{contact:\d+}', Module\Group::class); + }); + $this->routeCollector->addRoute(['GET'], '/hashtag', Module\Hashtag::class); + $this->routeCollector->addRoute(['GET'], '/inbox[/{nickname}]', Module\Inbox::class); + $this->routeCollector->addGroup('/install', function (RouteCollector $collector) { + $collector->addRoute(['GET', 'POST'], '[/]', Module\Install::class); + $collector->addRoute(['GET'], '/testrewrite', Module\Install::class); + }); + $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); + $this->routeCollector->addRoute(['GET', 'POST'], '/localtime', Module\Localtime::class); + $this->routeCollector->addRoute(['GET', 'POST'], '/login', Module\Login::class); + $this->routeCollector->addRoute(['GET'], '/magic', Module\Magic::class); + $this->routeCollector->addRoute(['GET'], '/manifest', Module\Manifest::class); + $this->routeCollector->addRoute(['GET'], '/nodeinfo/1.0', Module\NodeInfo::class); + $this->routeCollector->addRoute(['GET'], '/objects/{guid}', Module\Objects::class); + $this->routeCollector->addGroup('/oembed', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '/[b2h|h2b]', Module\Oembed::class); + $collector->addRoute(['GET'], '/{hash}', Module\Oembed::class); + }); + $this->routeCollector->addRoute(['GET'], '/outbox/{owner}', Module\Outbox::class); + $this->routeCollector->addRoute(['GET'], '/owa', Module\Owa::class); + $this->routeCollector->addGroup('/photo', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '/{name}', Module\Photo::class); + $collector->addRoute(['GET'], '/{type}/{name}', Module\Photo::class); + $collector->addRoute(['GET'], '/{type}/{customize}/{name}', Module\Photo::class); + }); + $this->routeCollector->addGroup('/profile', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '/{nickname}', Module\Profile::class); + $collector->addRoute(['GET'], '/{profile:\d+}/view', Module\Profile::class); + }); + $this->routeCollector->addGroup('/proxy', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '[/]', Module\Proxy::class); + $collector->addRoute(['GET'], '/{url}', Module\Proxy::class); + $collector->addRoute(['GET'], '/sub1/{url}', Module\Proxy::class); + $collector->addRoute(['GET'], '/sub1/sub2/{url}', Module\Proxy::class); + }); + $this->routeCollector->addRoute(['GET', 'POST'], '/register', Module\Register::class); + $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); + $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); + $this->routeCollector->addRoute(['GET'], '/webfinger', Module\WebFinger::class); + $this->routeCollector->addRoute(['GET'], '/xrd', Module\Xrd::class); } public function __construct(RouteCollector $routeCollector = null) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index beb91d11a..6e7860c8a 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -237,6 +237,28 @@ class Contact extends BaseObject return ['public' => $pcid, 'user' => $ucid]; } + /** + * Returns contact details for a given contact id in combination with a user id + * + * @param int $cid A contact ID + * @param int $uid The User ID + * @param array $fields The selected fields for the contact + * + * @return array The contact details + * + * @throws \Exception + */ + public static function getContactForUser($cid, $uid, array $fields = []) + { + $contact = DBA::selectFirst('contact', $fields, ['id' => $cid, 'uid' => $uid]); + + if (!DBA::isResult($contact)) { + return []; + } else { + return $contact; + } + } + /** * @brief Block contact id for user id * diff --git a/src/Module/AllFriends.php b/src/Module/AllFriends.php new file mode 100644 index 000000000..37710d4d9 --- /dev/null +++ b/src/Module/AllFriends.php @@ -0,0 +1,104 @@ +argc > 1) { + $cid = intval($app->argv[1]); + } + + if (!$cid) { + throw new HTTPException\BadRequestException(L10n::t('Invalid contact.')); + } + + $uid = $app->user['uid']; + + $contact = Model\Contact::getContactForUser($cid, local_user(), ['name', 'url', 'photo', 'uid', 'id']); + + if (empty($contact)) { + throw new HTTPException\BadRequestException(L10n::t('Invalid contact.')); + } + + $app->page['aside'] = ""; + Model\Profile::load($app, "", 0, Model\Contact::getDetailsByURL($contact["url"])); + + $total = Model\GContact::countAllFriends(local_user(), $cid); + + $pager = new Pager($app->query_string); + + $friends = Model\GContact::allFriends(local_user(), $cid, $pager->getStart(), $pager->getItemsPerPage()); + if (empty($friends)) { + return L10n::t('No friends to display.'); + } + + $id = 0; + + $entries = []; + foreach ($friends as $friend) { + //get further details of the contact + $contactDetails = Model\Contact::getDetailsByURL($friend['url'], $uid, $friend); + + $connlnk = ''; + // $friend[cid] is only available for common contacts. So if the contact is a common one, use contact_photo_menu to generate the photoMenu + // If the contact is not common to the user, Connect/Follow' will be added to the photo menu + if ($friend['cid']) { + $friend['id'] = $friend['cid']; + $photoMenu = Model\Contact::photoMenu($friend); + } else { + $connlnk = $app->getBaseURL() . '/follow/?url=' . $friend['url']; + $photoMenu = [ + 'profile' => [L10n::t("View Profile"), Model\Contact::magicLink($friend['url'])], + 'follow' => [L10n::t("Connect/Follow"), $connlnk] + ]; + } + + $entry = [ + 'url' => Model\Contact::magicLink($friend['url']), + 'itemurl' => defaults($contactDetails, 'addr', $friend['url']), + 'name' => $contactDetails['name'], + 'thumb' => ProxyUtils::proxifyUrl($contactDetails['thumb'], false, ProxyUtils::SIZE_THUMB), + 'img_hover' => $contactDetails['name'], + 'details' => $contactDetails['location'], + 'tags' => $contactDetails['keywords'], + 'about' => $contactDetails['about'], + 'account_type' => Model\Contact::getAccountType($contactDetails), + 'network' => ContactSelector::networkToName($contactDetails['network'], $contactDetails['url']), + 'photoMenu' => $photoMenu, + 'conntxt' => L10n::t('Connect'), + 'connlnk' => $connlnk, + 'id' => ++$id, + ]; + $entries[] = $entry; + } + + $tab_str = Contact::getTabsHTML($app, $contact, 4); + + $tpl = Renderer::getMarkupTemplate('viewcontact_template.tpl'); + return Renderer::replaceMacros($tpl, [ + '$tab_str' => $tab_str, + '$contacts' => $entries, + '$paginate' => $pager->renderFull($total), + ]); + } +} diff --git a/src/Module/Feed.php b/src/Module/Feed.php index ba1b08596..15b2026e2 100644 --- a/src/Module/Feed.php +++ b/src/Module/Feed.php @@ -3,7 +3,6 @@ namespace Friendica\Module; use Friendica\BaseModule; -use Friendica\Core\System; use Friendica\Protocol\OStatus; /** From 9941c331239df1e89e11ef6336f74d1561f0763e Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 2 May 2019 20:04:15 +0000 Subject: [PATCH 336/653] Removing a contact request needn't to be one not approved requests --- src/Protocol/ActivityPub/Processor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 475ccfc0b..2ebcbc0b8 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -578,7 +578,7 @@ class Processor self::switchContact($cid); - if (DBA::exists('contact', ['id' => $cid, 'rel' => Contact::SHARING, 'pending' => true])) { + if (DBA::exists('contact', ['id' => $cid, 'rel' => Contact::SHARING])) { Contact::remove($cid); Logger::log('Rejected contact request from contact ' . $cid . ' for user ' . $uid . ' - contact had been removed.', Logger::DEBUG); } else { From bbd30719400d74f1ceb0c30b368dd5a8301ea885 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 22:05:56 +0200 Subject: [PATCH 337/653] Remove old BaseModule routing --- src/App.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/App.php b/src/App.php index f3b0ab641..e89f450ba 100644 --- a/src/App.php +++ b/src/App.php @@ -1202,11 +1202,6 @@ class App } } - // Then we try name-matching a Friendica\Module class - if (!$this->module_class && class_exists('Friendica\\Module\\' . ucfirst($this->module))) { - $this->module_class = 'Friendica\\Module\\' . ucfirst($this->module); - } - /* Finally, we look for a 'standard' program module in the 'mod' directory * We emulate a Module class through the LegacyModule class */ From b2ff31da7416f9809ac9e83010b0a90305b468d4 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 22:17:09 +0200 Subject: [PATCH 338/653] Move mod/bookmarklet to src/Module/BookMarklet --- mod/bookmarklet.php | 59 ---------------------------------- src/App/Router.php | 1 + src/Module/BookMarklet.php | 66 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 59 deletions(-) delete mode 100644 mod/bookmarklet.php create mode 100644 src/Module/BookMarklet.php diff --git a/mod/bookmarklet.php b/mod/bookmarklet.php deleted file mode 100644 index f15d12d6d..000000000 --- a/mod/bookmarklet.php +++ /dev/null @@ -1,59 +0,0 @@ -' . L10n::t('Login') . ''; - $o .= Login::form($a->query_string, intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::CLOSED ? false : true); - return $o; - } - - $referer = Strings::normaliseLink(defaults($_SERVER, 'HTTP_REFERER', '')); - $page = Strings::normaliseLink(System::baseUrl() . "/bookmarklet"); - - if (!strstr($referer, $page)) { - if (empty($_REQUEST["url"])) { - throw new \Friendica\Network\HTTPException\BadRequestException(L10n::t('This page is missing a url parameter.')); - } - - $content = add_page_info($_REQUEST["url"]); - - $x = [ - 'is_owner' => true, - 'allow_location' => $a->user['allow_location'], - 'default_location' => $a->user['default-location'], - 'nickname' => $a->user['nickname'], - 'lockstate' => ((is_array($a->user) && ((strlen($a->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($a->user['deny_cid'])) || (strlen($a->user['deny_gid'])))) ? 'lock' : 'unlock'), - 'default_perms' => ACL::getDefaultUserPermissions($a->user), - 'acl' => ACL::getFullSelectorHTML($a->user, true), - 'bang' => '', - 'visitor' => 'block', - 'profile_uid' => local_user(), - 'title' => trim(defaults($_REQUEST, 'title', ''), "*"), - 'content' => $content - ]; - $o = status_editor($a, $x, 0, false); - $o .= ""; - } else { - $o = '

        ' . L10n::t('The post was created') . '

        '; - $o .= ""; - } - - return $o; -} diff --git a/src/App/Router.php b/src/App/Router.php index e2a6719f6..db40599dd 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -52,6 +52,7 @@ class Router $this->routeCollector->addRoute(['GET'], '/apps', Module\Apps::class); $this->routeCollector->addRoute(['GET'], '/attach/{item:\d+}', Module\Attach::class); $this->routeCollector->addRoute(['GET'], '/babel', Module\Babel::class); + $this->routeCollector->addRoute(['GET'], '/bookmarklet', Module\BookMarklet::class); $this->routeCollector->addGroup('/contact', function (RouteCollector $collector) { $collector->addRoute(['GET'], '[/]', Module\Contact::class); $collector->addRoute(['GET'], '/{id:\d+}[/posts|conversations]', Module\Contact::class); diff --git a/src/Module/BookMarklet.php b/src/Module/BookMarklet.php new file mode 100644 index 000000000..de1de4173 --- /dev/null +++ b/src/Module/BookMarklet.php @@ -0,0 +1,66 @@ +getConfig(); + + if (!local_user()) { + $output = '

        ' . L10n::t('Login') . '

        '; + $output .= Login::form($app->query_string, intval($config->get('config', 'register_policy')) === Register::CLOSED ? false : true); + return $output; + } + + $referer = Strings::normaliseLink(defaults($_SERVER, 'HTTP_REFERER', '')); + $page = Strings::normaliseLink($app->getBaseURL() . "/bookmarklet"); + + if (!strstr($referer, $page)) { + if (empty($_REQUEST["url"])) { + throw new HTTPException\BadRequestException(L10n::t('This page is missing a url parameter.')); + } + + $content = add_page_info($_REQUEST["url"]); + + $x = [ + 'is_owner' => true, + 'allow_location' => $app->user['allow_location'], + 'default_location' => $app->user['default-location'], + 'nickname' => $app->user['nickname'], + 'lockstate' => ((is_array($app->user) && ((strlen($app->user['allow_cid'])) || (strlen($a->user['allow_gid'])) || (strlen($app->user['deny_cid'])) || (strlen($app->user['deny_gid'])))) ? 'lock' : 'unlock'), + 'default_perms' => ACL::getDefaultUserPermissions($app->user), + 'acl' => ACL::getFullSelectorHTML($app->user, true), + 'bang' => '', + 'visitor' => 'block', + 'profile_uid' => local_user(), + 'title' => trim(defaults($_REQUEST, 'title', ''), '*'), + 'content' => $content + ]; + $output = status_editor($app, $x, 0, false); + $output .= ""; + } else { + $output = '

        ' . L10n::t('The post was created') . '

        '; + $output .= ""; + } + + return $output; + } +} From 2e9b2d72be585f329cce5f835fe4102687d45bb0 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 22:49:33 +0200 Subject: [PATCH 339/653] Move mod/directory to src/Module/Directory --- mod/directory.php | 230 --------------------------------------- src/App/Router.php | 1 + src/Model/Profile.php | 70 ++++++++++++ src/Module/Directory.php | 197 +++++++++++++++++++++++++++++++++ 4 files changed, 268 insertions(+), 230 deletions(-) delete mode 100644 mod/directory.php create mode 100644 src/Module/Directory.php diff --git a/mod/directory.php b/mod/directory.php deleted file mode 100644 index 256c9bbbd..000000000 --- a/mod/directory.php +++ /dev/null @@ -1,230 +0,0 @@ -page['aside'] .= Widget::findPeople(); - $a->page['aside'] .= Widget::follow(); - } else { - unset($_SESSION['theme']); - unset($_SESSION['mobile-theme']); - } -} - -function directory_post(App $a) -{ - if (!empty($_POST['search'])) { - $a->data['search'] = $_POST['search']; - } -} - -function directory_content(App $a) -{ - if ((Config::get('system', 'block_public') && !local_user() && !remote_user()) - || (Config::get('system', 'block_local_dir') && !local_user() && !remote_user()) - ) { - notice(L10n::t('Public access denied.') . EOL); - return; - } - - $o = ''; - $entries = []; - - Nav::setSelected('directory'); - - if (!empty($a->data['search'])) { - $search = Strings::escapeTags(trim($a->data['search'])); - } else { - $search = (!empty($_GET['search']) ? Strings::escapeTags(trim(rawurldecode($_GET['search']))) : ''); - } - - $gdirpath = ''; - $dirurl = Config::get('system', 'directory'); - if (strlen($dirurl)) { - $gdirpath = Profile::zrl($dirurl, true); - } - - if ($search) { - $search = DBA::escape($search); - - $sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR - (`user`.`nickname` LIKE '%$search%') OR - (`profile`.`pdesc` LIKE '%$search%') OR - (`profile`.`locality` LIKE '%$search%') OR - (`profile`.`region` LIKE '%$search%') OR - (`profile`.`country-name` LIKE '%$search%') OR - (`profile`.`gender` LIKE '%$search%') OR - (`profile`.`marital` LIKE '%$search%') OR - (`profile`.`sexual` LIKE '%$search%') OR - (`profile`.`about` LIKE '%$search%') OR - (`profile`.`romance` LIKE '%$search%') OR - (`profile`.`work` LIKE '%$search%') OR - (`profile`.`education` LIKE '%$search%') OR - (`profile`.`pub_keywords` LIKE '%$search%') OR - (`profile`.`prv_keywords` LIKE '%$search%'))"; - } else { - $sql_extra = ''; - } - - $publish = (Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 " ); - - - $total = 0; - $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `profile` - LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` - WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra"); - if (DBA::isResult($cnt)) { - $total = $cnt['total']; - } - $pager = new Pager($a->query_string, 60); - - $order = " ORDER BY `name` ASC "; - - $limit = $pager->getStart()."," . $pager->getItemsPerPage(); - - $r = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`, - `contact`.`addr`, `contact`.`url` AS `profile_url` FROM `profile` - LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` - LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid` - WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self` - $sql_extra $order LIMIT $limit" - ); - if (DBA::isResult($r)) { - if (in_array('small', $a->argv)) { - $photo = 'thumb'; - } else { - $photo = 'photo'; - } - - while ($rr = DBA::fetch($r)) { - $entries[] = format_directory_entry($rr, $photo); - } - DBA::close($r); - } else { - info(L10n::t("No entries \x28some entries may be hidden\x29.") . EOL); - } - - $tpl = Renderer::getMarkupTemplate('directory_header.tpl'); - - $o .= Renderer::replaceMacros($tpl, [ - '$search' => $search, - '$globaldir' => L10n::t('Global Directory'), - '$gdirpath' => $gdirpath, - '$desc' => L10n::t('Find on this site'), - '$contacts' => $entries, - '$finding' => L10n::t('Results for:'), - '$findterm' => (strlen($search) ? $search : ""), - '$title' => L10n::t('Site Directory'), - '$search_mod' => 'directory', - '$submit' => L10n::t('Find'), - '$paginate' => $pager->renderFull($total), - ]); - - return $o; -} - -/** - * Format contact/profile/user data from the database into an usable - * array for displaying directory entries. - * - * @param array $arr The directory entry from the database. - * @param string $photo_size Avatar size (thumb, photo or micro). - * - * @return array - */ -function format_directory_entry(array $arr, $photo_size = 'photo') -{ - $itemurl = (($arr['addr'] != "") ? $arr['addr'] : $arr['profile_url']); - - $profile_link = $arr['profile_url']; - - $pdesc = (($arr['pdesc']) ? $arr['pdesc'] . '
        ' : ''); - - $details = ''; - if (strlen($arr['locality'])) { - $details .= $arr['locality']; - } - if (strlen($arr['region'])) { - if (strlen($arr['locality'])) { - $details .= ', '; - } - $details .= $arr['region']; - } - if (strlen($arr['country-name'])) { - if (strlen($details)) { - $details .= ', '; - } - $details .= $arr['country-name']; - } - - $profile = $arr; - - if (!empty($profile['address']) - || !empty($profile['locality']) - || !empty($profile['region']) - || !empty($profile['postal-code']) - || !empty($profile['country-name']) - ) { - $location = L10n::t('Location:'); - } else { - $location = ''; - } - - $gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false); - $marital = (!empty($profile['marital']) ? L10n::t('Status:') : false); - $homepage = (!empty($profile['homepage']) ? L10n::t('Homepage:') : false); - $about = (!empty($profile['about']) ? L10n::t('About:') : false); - - $location_e = $location; - - $photo_menu = [ - 'profile' => [L10n::t("View Profile"), Contact::magicLink($profile_link)] - ]; - - $entry = [ - 'id' => $arr['id'], - 'url' => Contact::magicLInk($profile_link), - 'itemurl' => $itemurl, - 'thumb' => ProxyUtils::proxifyUrl($arr[$photo_size], false, ProxyUtils::SIZE_THUMB), - 'img_hover' => $arr['name'], - 'name' => $arr['name'], - 'details' => $details, - 'account_type' => Contact::getAccountType($arr), - 'profile' => $profile, - 'location' => $location_e, - 'tags' => $arr['pub_keywords'], - 'gender' => $gender, - 'pdesc' => $pdesc, - 'marital' => $marital, - 'homepage' => $homepage, - 'about' => $about, - 'photo_menu' => $photo_menu, - - ]; - - $hook = ['contact' => $arr, 'entry' => $entry]; - - Hook::callAll('directory_item', $hook); - - unset($profile); - unset($location); - - return $hook['entry']; -} diff --git a/src/App/Router.php b/src/App/Router.php index e2a6719f6..2c6837444 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -64,6 +64,7 @@ class Router $collector->addRoute(['GET'], '/{nickname}/replies', Module\Feed::class); $collector->addRoute(['GET'], '/{nickname}/activity', Module\Feed::class); }); + $this->routeCollector->addRoute(['GET'], '/directory', Module\Directory::class); $this->routeCollector->addRoute(['GET'], '/feedtest', Module\Feedtest::class); $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 7028934d1..84ad0153c 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -1235,4 +1235,74 @@ class Profile { return preg_replace('/[\?&]' . $param . '=(.*?)(&|$)/ism', '$2', $s); } + + /** + * search for Profiles + * + * @param int $start + * @param int $count + * @param null $search + * + * @return array [ 'total' => 123, 'entries' => [...] ]; + * + * @throws \Exception + */ + public static function searchProfiles($start = 0, $count = 100, $search = null) + { + if ($search) { + $search = DBA::escape($search); + + $sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR + (`user`.`nickname` LIKE '%$search%') OR + (`profile`.`pdesc` LIKE '%$search%') OR + (`profile`.`locality` LIKE '%$search%') OR + (`profile`.`region` LIKE '%$search%') OR + (`profile`.`country-name` LIKE '%$search%') OR + (`profile`.`gender` LIKE '%$search%') OR + (`profile`.`marital` LIKE '%$search%') OR + (`profile`.`sexual` LIKE '%$search%') OR + (`profile`.`about` LIKE '%$search%') OR + (`profile`.`romance` LIKE '%$search%') OR + (`profile`.`work` LIKE '%$search%') OR + (`profile`.`education` LIKE '%$search%') OR + (`profile`.`pub_keywords` LIKE '%$search%') OR + (`profile`.`prv_keywords` LIKE '%$search%'))"; + } else { + $sql_extra = ''; + } + + $publish = (Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 "); + + + $total = 0; + $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `profile` + LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` + WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra"); + if (DBA::isResult($cnt)) { + $total = $cnt['total']; + } + + $order = " ORDER BY `name` ASC "; + $limit = $start . ',' . $count; + + $profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`, + `contact`.`addr`, `contact`.`url` AS `profile_url` FROM `profile` + LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` + LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid` + WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self` + $sql_extra $order LIMIT $limit" + ); + + if (DBA::isResult($profiles)) { + return [ + 'total' => $total, + 'entries' => DBA::toArray($profiles), + ]; + } else { + return [ + 'total' => $total, + 'entries' => [], + ]; + } + } } diff --git a/src/Module/Directory.php b/src/Module/Directory.php new file mode 100644 index 000000000..b47bfd43e --- /dev/null +++ b/src/Module/Directory.php @@ -0,0 +1,197 @@ +page['aside'] .= Widget::findPeople(); + $app->page['aside'] .= Widget::follow(); + } else { + unset($_SESSION['theme']); + unset($_SESSION['mobile-theme']); + } + } + + public static function post() + { + if (!empty($_POST['search'])) { + self::getApp()->data['search'] = $_POST['search']; + } + } + + public static function content() + { + $app = self::getApp(); + $config = $app->getConfig(); + + if (($config->get('system', 'block_public') && !local_user() && !remote_user()) || + ($config->get('system', 'block_local_dir') && !local_user() && !remote_user())) { + notice(L10n::t('Public access denied.') . EOL); + return ''; + } + + $output = ''; + $entries = []; + + Nav::setSelected('directory'); + + if (!empty($app->data['search'])) { + $search = Strings::escapeTags(trim($app->data['search'])); + } else { + $search = (!empty($_GET['search']) ? Strings::escapeTags(trim(rawurldecode($_GET['search']))) : ''); + } + + $gDirPath = ''; + $dirURL = $config->get('system', 'directory'); + if (strlen($dirURL)) { + $gDirPath = Profile::zrl($dirURL, true); + } + + $pager = new Pager($app->query_string, 60); + + $profiles = Profile::searchProfiles($pager->getStart(), $pager->getItemsPerPage(), $search); + + if ($profiles['total'] === 0) { + info(L10n::t('No entries (some entries may be hidden).') . EOL); + } else { + if (in_array('small', $app->argv)) { + $photo = 'thumb'; + } else { + $photo = 'photo'; + } + + foreach ($profiles['entries'] as $entry) { + $entries[] = self::formatEntry($entry, $photo); + } + } + + $tpl = Renderer::getMarkupTemplate('directory_header.tpl'); + + $output .= Renderer::replaceMacros($tpl, [ + '$search' => $search, + '$globaldir' => L10n::t('Global Directory'), + '$gDirPath' => $gDirPath, + '$desc' => L10n::t('Find on this site'), + '$contacts' => $profiles['entries'], + '$finding' => L10n::t('Results for:'), + '$findterm' => (strlen($search) ? $search : ""), + '$title' => L10n::t('Site Directory'), + '$search_mod' => 'directory', + '$submit' => L10n::t('Find'), + '$paginate' => $pager->renderFull($profiles['total']), + ]); + + return $output; + } + + /** + * Format contact/profile/user data from the database into an usable + * array for displaying directory entries. + * + * @param array $contact The directory entry from the database. + * @param string $photo_size Avatar size (thumb, photo or micro). + * + * @return array + * + * @throws \Exception + */ + public static function formatEntry(array $contact, $photo_size = 'photo') + { + $itemurl = (($contact['addr'] != "") ? $contact['addr'] : $contact['profile_url']); + + $profile_link = $contact['profile_url']; + + $pdesc = (($contact['pdesc']) ? $contact['pdesc'] . '
        ' : ''); + + $details = ''; + if (strlen($contact['locality'])) { + $details .= $contact['locality']; + } + if (strlen($contact['region'])) { + if (strlen($contact['locality'])) { + $details .= ', '; + } + $details .= $contact['region']; + } + if (strlen($contact['country-name'])) { + if (strlen($details)) { + $details .= ', '; + } + $details .= $contact['country-name']; + } + + $profile = $contact; + + if (!empty($profile['address']) + || !empty($profile['locality']) + || !empty($profile['region']) + || !empty($profile['postal-code']) + || !empty($profile['country-name']) + ) { + $location = L10n::t('Location:'); + } else { + $location = ''; + } + + $gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false); + $marital = (!empty($profile['marital']) ? L10n::t('Status:') : false); + $homepage = (!empty($profile['homepage']) ? L10n::t('Homepage:') : false); + $about = (!empty($profile['about']) ? L10n::t('About:') : false); + + $location_e = $location; + + $photo_menu = [ + 'profile' => [L10n::t("View Profile"), Contact::magicLink($profile_link)] + ]; + + $entry = [ + 'id' => $contact['id'], + 'url' => Contact::magicLInk($profile_link), + 'itemurl' => $itemurl, + 'thumb' => ProxyUtils::proxifyUrl($contact[$photo_size], false, ProxyUtils::SIZE_THUMB), + 'img_hover' => $contact['name'], + 'name' => $contact['name'], + 'details' => $details, + 'account_type' => Contact::getAccountType($contact), + 'profile' => $profile, + 'location' => $location_e, + 'tags' => $contact['pub_keywords'], + 'gender' => $gender, + 'pdesc' => $pdesc, + 'marital' => $marital, + 'homepage' => $homepage, + 'about' => $about, + 'photo_menu' => $photo_menu, + + ]; + + $hook = ['contact' => $contact, 'entry' => $entry]; + + Hook::callAll('directory_item', $hook); + + unset($profile); + unset($location); + + return $hook['entry']; + } +} From 36996dd42204a5c29f1c64727137ed4981b4fc70 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 2 May 2019 16:56:34 -0400 Subject: [PATCH 340/653] Remove usage of non-existent Module\Special\HTTPException::rawContent return value --- src/App.php | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/App.php b/src/App.php index e89f450ba..8b276414e 100644 --- a/src/App.php +++ b/src/App.php @@ -1006,10 +1006,9 @@ class App { // Missing DB connection: ERROR if ($this->getMode()->has(App\Mode::LOCALCONFIGPRESENT) && !$this->getMode()->has(App\Mode::DBAVAILABLE)) { - echo Module\Special\HTTPException::rawContent( + Module\Special\HTTPException::rawContent( new HTTPException\InternalServerErrorException('Apologies but the website is unavailable at the moment.') ); - exit; } // Max Load Average reached: ERROR @@ -1017,17 +1016,15 @@ class App header('Retry-After: 120'); header('Refresh: 120; url=' . $this->getBaseURL() . "/" . $this->query_string); - echo Module\Special\HTTPException::rawContent( + Module\Special\HTTPException::rawContent( new HTTPException\ServiceUnavaiableException('The node is currently overloaded. Please try again later.') ); - exit; } if (strstr($this->query_string, '.well-known/host-meta') && ($this->query_string != '.well-known/host-meta')) { - echo Module\Special\HTTPException::rawContent( + Module\Special\HTTPException::rawContent( new HTTPException\NotFoundException() ); - exit; } if (!$this->getMode()->isInstall()) { @@ -1078,10 +1075,9 @@ class App // Someone came with an invalid parameter, maybe as a DDoS attempt // We simply stop processing here Core\Logger::log("Invalid ZRL parameter " . $_GET['zrl'], Core\Logger::DEBUG); - echo Module\Special\HTTPException::rawContent( + Module\Special\HTTPException::rawContent( new HTTPException\ForbiddenException() ); - exit; } } } @@ -1267,8 +1263,7 @@ class App Core\Hook::callAll($this->module . '_mod_afterpost', $placeholder); call_user_func([$this->module_class, 'afterpost']); } catch(HTTPException $e) { - echo Module\Special\HTTPException::rawContent($e); - exit; + Module\Special\HTTPException::rawContent($e); } $content = ''; From e6bf97777ffd1543db6302842ae4f1d6b318ed8e Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Mon, 29 Apr 2019 00:40:58 -0400 Subject: [PATCH 341/653] Remove /display/{nick}/{id} URL structure publishing - Remove support for defunct Friendica F-Droid app --- mod/notify.php | 12 ---------- mod/ping.php | 7 ------ mod/subthread.php | 4 ++-- mod/tagger.php | 11 ++------- src/App.php | 29 ---------------------- src/Model/Item.php | 56 ------------------------------------------- src/Protocol/DFRN.php | 20 +++++++--------- 7 files changed, 13 insertions(+), 126 deletions(-) diff --git a/mod/notify.php b/mod/notify.php index 870358178..7f9974d30 100644 --- a/mod/notify.php +++ b/mod/notify.php @@ -26,18 +26,6 @@ function notify_init(App $a) $note = $nm->getByID($a->argv[2]); if ($note) { $nm->setSeen($note); - - // The friendica client has problems with the GUID. this is some workaround - if ($a->isFriendicaApp()) { - require_once("include/items.php"); - $urldata = parse_url($note['link']); - $guid = basename($urldata["path"]); - $itemdata = Item::getIdAndNickByGuid($guid, local_user()); - if ($itemdata["id"] != 0) { - $note['link'] = System::baseUrl().'/display/'.$itemdata["nick"].'/'.$itemdata["id"]; - } - } - System::externalRedirect($note['link']); } diff --git a/mod/ping.php b/mod/ping.php index b89cb9246..9b844cc48 100644 --- a/mod/ping.php +++ b/mod/ping.php @@ -313,14 +313,7 @@ function ping_init(App $a) usort($notifs, $sort_function); if (DBA::isResult($notifs)) { - // Are the nofications called from the regular process or via the friendica app? - $regularnotifications = (!empty($_GET['uid']) && !empty($_GET['_'])); - foreach ($notifs as $notif) { - if ($a->isFriendicaApp() || !$regularnotifications) { - $notif['message'] = str_replace("{0}", $notif['name'], $notif['message']); - } - $contact = Contact::getDetailsByURL($notif['url']); if (isset($contact['micro'])) { $notif['photo'] = ProxyUtils::proxifyUrl($contact['micro'], false, ProxyUtils::SIZE_MICRO); diff --git a/mod/subthread.php b/mod/subthread.php index 23ebf4fe4..9fa1a410d 100644 --- a/mod/subthread.php +++ b/mod/subthread.php @@ -87,7 +87,7 @@ function subthread_content(App $a) { $post_type = (($item['resource-id']) ? L10n::t('photo') : L10n::t('status')); $objtype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ); - $link = XML::escape('' . "\n"); + $link = XML::escape('' . "\n"); $body = $item['body']; $obj = <<< EOT @@ -128,7 +128,7 @@ EOT; $ulink = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]'; $alink = '[url=' . $item['author-link'] . ']' . $item['author-name'] . '[/url]'; - $plink = '[url=' . System::baseUrl() . '/display/' . $owner['nickname'] . '/' . $item['id'] . ']' . $post_type . '[/url]'; + $plink = '[url=' . System::baseUrl() . '/display/' . $item['guid'] . ']' . $post_type . '[/url]'; $arr['body'] = sprintf( $bodyverb, $ulink, $alink, $plink ); $arr['verb'] = $activity; diff --git a/mod/tagger.php b/mod/tagger.php index 7cb43e330..5d3d1923e 100644 --- a/mod/tagger.php +++ b/mod/tagger.php @@ -40,14 +40,12 @@ function tagger_content(App $a) { } $owner_uid = $item['uid']; - $owner_nick = ''; $blocktags = 0; - $r = q("select `nickname`,`blocktags` from user where uid = %d limit 1", + $r = q("select `blocktags` from user where uid = %d limit 1", intval($owner_uid) ); if (DBA::isResult($r)) { - $owner_nick = $r[0]['nickname']; $blocktags = $r[0]['blocktags']; } @@ -69,12 +67,7 @@ function tagger_content(App $a) { $xterm = XML::escape($term); $post_type = (($item['resource-id']) ? L10n::t('photo') : L10n::t('status')); $targettype = (($item['resource-id']) ? ACTIVITY_OBJ_IMAGE : ACTIVITY_OBJ_NOTE ); - - if ($owner_nick) { - $href = System::baseUrl() . '/display/' . $owner_nick . '/' . $item['id']; - } else { - $href = System::baseUrl() . '/display/' . $item['guid']; - } + $href = System::baseUrl() . '/display/' . $item['guid']; $link = XML::escape('' . "\n"); diff --git a/src/App.php b/src/App.php index e89f450ba..50e4364fd 100644 --- a/src/App.php +++ b/src/App.php @@ -87,11 +87,6 @@ class App */ private $baseURL; - /** - * @var bool true, if the call is from the Friendica APP, otherwise false - */ - private $isFriendicaApp; - /** * @var bool true, if the call is from an backend node (f.e. worker) */ @@ -257,8 +252,6 @@ class App $this->profiler = $profiler; $this->logger = $logger; - $this->checkFriendicaApp(); - $this->profiler->reset(); $this->reload(); @@ -601,28 +594,6 @@ class App $this->getBaseURL(); } - /** - * Checks, if the call is from the Friendica App - * - * Reason: - * The friendica client has problems with the GUID in the notify. this is some workaround - */ - private function checkFriendicaApp() - { - // Friendica-Client - $this->isFriendicaApp = isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == 'Apache-HttpClient/UNAVAILABLE (java 1.4)'; - } - - /** - * Is the call via the Friendica app? (not a "normale" call) - * - * @return bool true if it's from the Friendica app - */ - public function isFriendicaApp() - { - return $this->isFriendicaApp; - } - /** * @brief Checks if the site is called via a backend process * diff --git a/src/Model/Item.php b/src/Model/Item.php index d85ed414f..387014d4b 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -2508,62 +2508,6 @@ class Item extends BaseObject }, $item["body"]); } - public static function getGuidById($id) - { - $item = self::selectFirst(['guid'], ['id' => $id]); - if (DBA::isResult($item)) { - return $item['guid']; - } else { - return ''; - } - } - - /** - * This function is only used for the old Friendica app on Android that doesn't like paths with guid - * - * @param string $guid item guid - * @param int $uid user id - * @return array with id and nick of the item with the given guid - * @throws \Exception - */ - public static function getIdAndNickByGuid($guid, $uid = 0) - { - $nick = ""; - $id = 0; - - if ($uid == 0) { - $uid = local_user(); - } - - // Does the given user have this item? - if ($uid) { - $item = self::selectFirst(['id'], ['guid' => $guid, 'uid' => $uid]); - if (DBA::isResult($item)) { - $user = DBA::selectFirst('user', ['nickname'], ['uid' => $uid]); - if (!DBA::isResult($user)) { - return; - } - $id = $item['id']; - $nick = $user['nickname']; - } - } - - // Or is it anywhere on the server? - if ($nick == "") { - $condition = ["`guid` = ? AND `uid` != 0", $guid]; - $item = self::selectFirst(['id', 'uid'], $condition); - if (DBA::isResult($item)) { - $user = DBA::selectFirst('user', ['nickname'], ['uid' => $item['uid']]); - if (!DBA::isResult($user)) { - return; - } - $id = $item['id']; - $nick = $user['nickname']; - } - } - return ["nick" => $nick, "id" => $id]; - } - /** * look for mention tags and setup a second delivery chain for forum/community posts if appropriate * diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php index b6252655a..1ceab79f6 100644 --- a/src/Protocol/DFRN.php +++ b/src/Protocol/DFRN.php @@ -359,7 +359,7 @@ class DFRN $ret = Item::select(Item::DELIVER_FIELDLIST, $condition); $items = Item::inArray($ret); if (!DBA::isResult($items)) { - exit(); + return ''; } $item = $items[0]; @@ -367,7 +367,7 @@ class DFRN if ($item['uid'] != 0) { $owner = User::getOwnerDataById($item['uid']); if (!$owner) { - exit(); + return ''; } } else { $owner = ['uid' => 0, 'nick' => 'feed-item']; @@ -400,7 +400,7 @@ class DFRN } } } else { - $root = self::entry($doc, $type, $item, $owner, true, 0, true); + self::entry($doc, $type, $item, $owner, true, 0, true); } $atom = trim($doc->saveXML()); @@ -987,7 +987,7 @@ class DFRN } // Add conversation data. This is used for OStatus - $conversation_href = System::baseUrl()."/display/".$owner["nick"]."/".$item["parent"]; + $conversation_href = System::baseUrl()."/display/".$item["parent-guid"]; $conversation_uri = $conversation_href; if (isset($parent_item)) { @@ -2212,14 +2212,13 @@ class DFRN /** * @brief Send a "poke" * - * @param array $item the new item record + * @param array $item The new item record * @param array $importer Record of the importer user mixed with contact of the content - * @param int $posted_id The record number of item record that was just posted * @return void * @throws \Friendica\Network\HTTPException\InternalServerErrorException * @todo set proper type-hints (array?) */ - private static function doPoke($item, $importer, $posted_id) + private static function doPoke(array $item, array $importer) { $verb = urldecode(substr($item["verb"], strpos($item["verb"], "#")+1)); if (!$verb) { @@ -2244,8 +2243,6 @@ class DFRN if ($Blink && Strings::compareLink($Blink, System::baseUrl() . "/profile/" . $importer["nickname"])) { $author = DBA::selectFirst('contact', ['name', 'thumb', 'url'], ['id' => $item['author-id']]); - $item['id'] = $posted_id; - $parent = Item::selectFirst(['id'], ['uri' => $item['parent-uri'], 'uid' => $importer["importer_uid"]]); $item["parent"] = $parent['id']; @@ -2259,7 +2256,7 @@ class DFRN "to_email" => $importer["email"], "uid" => $importer["importer_uid"], "item" => $item, - "link" => System::baseUrl()."/display/".urlencode(Item::getGuidById($posted_id)), + "link" => System::baseUrl()."/display/".urlencode($item['guid']), "source_name" => $author["name"], "source_link" => $author["url"], "source_photo" => $author["thumb"], @@ -2754,7 +2751,8 @@ class DFRN } if (stristr($item["verb"], ACTIVITY_POKE)) { - self::doPoke($item, $importer, $posted_id); + $item['id'] = $posted_id; + self::doPoke($item, $importer); } } } From d716a3326f4e7846e19ec2454054f6d20a71507a Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:17:35 +0200 Subject: [PATCH 342/653] Move Console namespace one level up --- src/{Core => }/Console/ArchiveContact.php | 2 +- .../Console/AutomaticInstallation.php | 2 +- src/{Core => }/Console/Cache.php | 2 +- src/{Core => }/Console/Config.php | 2 +- src/{Core => }/Console/CreateDoxygen.php | 2 +- src/{Core => }/Console/DatabaseStructure.php | 2 +- .../Console/DocBloxErrorChecker.php | 2 +- src/{Core => }/Console/Extract.php | 2 +- .../Console/GlobalCommunityBlock.php | 2 +- .../Console/GlobalCommunitySilence.php | 2 +- src/{Core => }/Console/Maintenance.php | 2 +- src/{Core => }/Console/NewPassword.php | 2 +- src/{Core => }/Console/PhpToPo.php | 2 +- src/{Core => }/Console/PoToPhp.php | 2 +- src/{Core => }/Console/PostUpdate.php | 2 +- src/{Core => }/Console/ServerBlock.php | 2 +- src/{Core => }/Console/Storage.php | 2 +- src/{Core => }/Console/Typo.php | 2 +- src/Core/Console.php | 38 ++++++++++--------- .../AutomaticInstallationConsoleTest.php | 4 +- .../{Core => }/Console/ConfigConsoleTest.php | 6 +-- tests/src/{Core => }/Console/ConsoleTest.php | 2 +- .../Console/ServerBlockConsoleTest.php | 4 +- 23 files changed, 46 insertions(+), 44 deletions(-) rename src/{Core => }/Console/ArchiveContact.php (98%) rename src/{Core => }/Console/AutomaticInstallation.php (99%) rename src/{Core => }/Console/Cache.php (99%) rename src/{Core => }/Console/Config.php (99%) rename src/{Core => }/Console/CreateDoxygen.php (98%) rename src/{Core => }/Console/DatabaseStructure.php (98%) rename src/{Core => }/Console/DocBloxErrorChecker.php (99%) rename src/{Core => }/Console/Extract.php (98%) rename src/{Core => }/Console/GlobalCommunityBlock.php (98%) rename src/{Core => }/Console/GlobalCommunitySilence.php (98%) rename src/{Core => }/Console/Maintenance.php (98%) rename src/{Core => }/Console/NewPassword.php (98%) rename src/{Core => }/Console/PhpToPo.php (99%) rename src/{Core => }/Console/PoToPhp.php (99%) rename src/{Core => }/Console/PostUpdate.php (98%) rename src/{Core => }/Console/ServerBlock.php (99%) rename src/{Core => }/Console/Storage.php (99%) rename src/{Core => }/Console/Typo.php (98%) rename tests/src/{Core => }/Console/AutomaticInstallationConsoleTest.php (99%) rename tests/src/{Core => }/Console/ConfigConsoleTest.php (97%) rename tests/src/{Core => }/Console/ConsoleTest.php (95%) rename tests/src/{Core => }/Console/ServerBlockConsoleTest.php (99%) diff --git a/src/Core/Console/ArchiveContact.php b/src/Console/ArchiveContact.php similarity index 98% rename from src/Core/Console/ArchiveContact.php rename to src/Console/ArchiveContact.php index b93c079b9..cf177cf2e 100644 --- a/src/Core/Console/ArchiveContact.php +++ b/src/Console/ArchiveContact.php @@ -1,6 +1,6 @@ __NAMESPACE__ . '\Console\Cache', - 'config' => __NAMESPACE__ . '\Console\Config', - 'createdoxygen' => __NAMESPACE__ . '\Console\CreateDoxygen', - 'docbloxerrorchecker' => __NAMESPACE__ . '\Console\DocBloxErrorChecker', - 'dbstructure' => __NAMESPACE__ . '\Console\DatabaseStructure', - 'extract' => __NAMESPACE__ . '\Console\Extract', - 'globalcommunityblock' => __NAMESPACE__ . '\Console\GlobalCommunityBlock', - 'globalcommunitysilence' => __NAMESPACE__ . '\Console\GlobalCommunitySilence', - 'archivecontact' => __NAMESPACE__ . '\Console\ArchiveContact', - 'autoinstall' => __NAMESPACE__ . '\Console\AutomaticInstallation', - 'maintenance' => __NAMESPACE__ . '\Console\Maintenance', - 'newpassword' => __NAMESPACE__ . '\Console\NewPassword', - 'php2po' => __NAMESPACE__ . '\Console\PhpToPo', - 'po2php' => __NAMESPACE__ . '\Console\PoToPhp', - 'typo' => __NAMESPACE__ . '\Console\Typo', - 'postupdate' => __NAMESPACE__ . '\Console\PostUpdate', - 'serverblock' => __NAMESPACE__ . '\Console\ServerBlock', - 'storage' => __NAMESPACE__ . '\Console\Storage', + 'cache' => Friendica\Console\Cache::class, + 'config' => Friendica\Console\Config::class, + 'createdoxygen' => Friendica\Console\CreateDoxygen::class, + 'docbloxerrorchecker' => Friendica\Console\DocBloxErrorChecker::class, + 'dbstructure' => Friendica\Console\DatabaseStructure::class, + 'extract' => Friendica\Console\Extract::class, + 'globalcommunityblock' => Friendica\Console\GlobalCommunityBlock::class, + 'globalcommunitysilence' => Friendica\Console\GlobalCommunitySilence::class, + 'archivecontact' => Friendica\Console\ArchiveContact::class, + 'autoinstall' => Friendica\Console\AutomaticInstallation::class, + 'maintenance' => Friendica\Console\Maintenance::class, + 'newpassword' => Friendica\Console\NewPassword::class, + 'php2po' => Friendica\Console\PhpToPo::class, + 'po2php' => Friendica\Console\PoToPhp::class, + 'typo' => Friendica\Console\Typo::class, + 'postupdate' => Friendica\Console\PostUpdate::class, + 'serverblock' => Friendica\Console\ServerBlock::class, + 'storage' => Friendica\Console\Storage::class, ]; protected function doExecute() diff --git a/tests/src/Core/Console/AutomaticInstallationConsoleTest.php b/tests/src/Console/AutomaticInstallationConsoleTest.php similarity index 99% rename from tests/src/Core/Console/AutomaticInstallationConsoleTest.php rename to tests/src/Console/AutomaticInstallationConsoleTest.php index 9ed3d404f..5ea349f8b 100644 --- a/tests/src/Core/Console/AutomaticInstallationConsoleTest.php +++ b/tests/src/Console/AutomaticInstallationConsoleTest.php @@ -1,9 +1,9 @@ consoleArgv[0]; $assertion = << 'test', 1 => 'it', diff --git a/tests/src/Core/Console/ConsoleTest.php b/tests/src/Console/ConsoleTest.php similarity index 95% rename from tests/src/Core/Console/ConsoleTest.php rename to tests/src/Console/ConsoleTest.php index e142e6006..21979e72b 100644 --- a/tests/src/Core/Console/ConsoleTest.php +++ b/tests/src/Console/ConsoleTest.php @@ -1,6 +1,6 @@ Date: Thu, 2 May 2019 23:26:02 +0200 Subject: [PATCH 343/653] Added feedback --- src/Model/Profile.php | 7 ++++--- src/Module/Directory.php | 38 ++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 84ad0153c..9d2600b3d 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -1273,9 +1273,9 @@ class Profile $publish = (Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 "); - $total = 0; - $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `profile` + $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` + FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra"); if (DBA::isResult($cnt)) { @@ -1286,7 +1286,8 @@ class Profile $limit = $start . ',' . $count; $profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`, - `contact`.`addr`, `contact`.`url` AS `profile_url` FROM `profile` + `contact`.`addr`, `contact`.`url` AS `profile_url` + FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid` WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self` diff --git a/src/Module/Directory.php b/src/Module/Directory.php index b47bfd43e..69588604d 100644 --- a/src/Module/Directory.php +++ b/src/Module/Directory.php @@ -11,6 +11,7 @@ use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Model\Contact; use Friendica\Model\Profile; +use Friendica\Network\HTTPException; use Friendica\Util\Proxy as ProxyUtils; use Friendica\Util\Strings; @@ -46,8 +47,7 @@ class Directory extends BaseModule if (($config->get('system', 'block_public') && !local_user() && !remote_user()) || ($config->get('system', 'block_local_dir') && !local_user() && !remote_user())) { - notice(L10n::t('Public access denied.') . EOL); - return ''; + throw new HTTPException\ForbiddenException(); } $output = ''; @@ -55,11 +55,9 @@ class Directory extends BaseModule Nav::setSelected('directory'); - if (!empty($app->data['search'])) { - $search = Strings::escapeTags(trim($app->data['search'])); - } else { - $search = (!empty($_GET['search']) ? Strings::escapeTags(trim(rawurldecode($_GET['search']))) : ''); - } + $search = (!empty($_REQUEST['search']) ? + Strings::escapeTags(trim(rawurldecode($_REQUEST['search']))) : + ''); $gDirPath = ''; $dirURL = $config->get('system', 'directory'); @@ -88,17 +86,17 @@ class Directory extends BaseModule $tpl = Renderer::getMarkupTemplate('directory_header.tpl'); $output .= Renderer::replaceMacros($tpl, [ - '$search' => $search, - '$globaldir' => L10n::t('Global Directory'), - '$gDirPath' => $gDirPath, - '$desc' => L10n::t('Find on this site'), - '$contacts' => $profiles['entries'], - '$finding' => L10n::t('Results for:'), - '$findterm' => (strlen($search) ? $search : ""), - '$title' => L10n::t('Site Directory'), + '$search' => $search, + '$globaldir' => L10n::t('Global Directory'), + '$gDirPath' => $gDirPath, + '$desc' => L10n::t('Find on this site'), + '$contacts' => $profiles['entries'], + '$finding' => L10n::t('Results for:'), + '$findterm' => (strlen($search) ? $search : ""), + '$title' => L10n::t('Site Directory'), '$search_mod' => 'directory', - '$submit' => L10n::t('Find'), - '$paginate' => $pager->renderFull($profiles['total']), + '$submit' => L10n::t('Find'), + '$paginate' => $pager->renderFull($profiles['total']), ]); return $output; @@ -153,10 +151,10 @@ class Directory extends BaseModule $location = ''; } - $gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false); - $marital = (!empty($profile['marital']) ? L10n::t('Status:') : false); + $gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false); + $marital = (!empty($profile['marital']) ? L10n::t('Status:') : false); $homepage = (!empty($profile['homepage']) ? L10n::t('Homepage:') : false); - $about = (!empty($profile['about']) ? L10n::t('About:') : false); + $about = (!empty($profile['about']) ? L10n::t('About:') : false); $location_e = $location; From 5879584e1564c73f8dcc94481d3d3ea6abd194c5 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:26:34 +0200 Subject: [PATCH 344/653] Remove post() --- src/Module/Directory.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Module/Directory.php b/src/Module/Directory.php index 69588604d..2c67f6e7b 100644 --- a/src/Module/Directory.php +++ b/src/Module/Directory.php @@ -33,13 +33,6 @@ class Directory extends BaseModule } } - public static function post() - { - if (!empty($_POST['search'])) { - self::getApp()->data['search'] = $_POST['search']; - } - } - public static function content() { $app = self::getApp(); From a9f701b9d62ff66ef512cc1dd0256be356954fb5 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:28:13 +0200 Subject: [PATCH 345/653] merge init() and content() --- src/Module/BookMarklet.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Module/BookMarklet.php b/src/Module/BookMarklet.php index de1de4173..51feb25d7 100644 --- a/src/Module/BookMarklet.php +++ b/src/Module/BookMarklet.php @@ -14,13 +14,10 @@ use Friendica\Util\Strings; */ class BookMarklet extends BaseModule { - public static function init() - { - $_GET['mode'] = 'minimal'; - } - public static function content() { + $_GET['mode'] = 'minimal'; + $app = self::getApp(); $config = $app->getConfig(); From a5d33444ee380245965a82107a6c0ceb0f04be1b Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:32:19 +0200 Subject: [PATCH 346/653] added feedback --- src/Module/AllFriends.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Module/AllFriends.php b/src/Module/AllFriends.php index 37710d4d9..238223aee 100644 --- a/src/Module/AllFriends.php +++ b/src/Module/AllFriends.php @@ -11,6 +11,9 @@ use Friendica\Model; use Friendica\Network\HTTPException; use Friendica\Util\Proxy as ProxyUtils; +/** + * This module shows all public friends of the selected contact + */ class AllFriends extends BaseModule { public static function content() @@ -68,13 +71,13 @@ class AllFriends extends BaseModule } else { $connlnk = $app->getBaseURL() . '/follow/?url=' . $friend['url']; $photoMenu = [ - 'profile' => [L10n::t("View Profile"), Model\Contact::magicLink($friend['url'])], - 'follow' => [L10n::t("Connect/Follow"), $connlnk] + 'profile' => [L10n::t('View Profile'), Model\Contact::magicLinkbyId($friend['id'])], + 'follow' => [L10n::t('Connect/Follow'), $connlnk] ]; } $entry = [ - 'url' => Model\Contact::magicLink($friend['url']), + 'url' => Model\Contact::magicLinkbyId($friend['id']), 'itemurl' => defaults($contactDetails, 'addr', $friend['url']), 'name' => $contactDetails['name'], 'thumb' => ProxyUtils::proxifyUrl($contactDetails['thumb'], false, ProxyUtils::SIZE_THUMB), From 43a0f2d8d71a71c93a4b9e78abe005fd463f0822 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:34:33 +0200 Subject: [PATCH 347/653] fixed alignment :-) --- src/Module/Directory.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Module/Directory.php b/src/Module/Directory.php index 2c67f6e7b..f1a1c9861 100644 --- a/src/Module/Directory.php +++ b/src/Module/Directory.php @@ -144,10 +144,10 @@ class Directory extends BaseModule $location = ''; } - $gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false); - $marital = (!empty($profile['marital']) ? L10n::t('Status:') : false); + $gender = (!empty($profile['gender']) ? L10n::t('Gender:') : false); + $marital = (!empty($profile['marital']) ? L10n::t('Status:') : false); $homepage = (!empty($profile['homepage']) ? L10n::t('Homepage:') : false); - $about = (!empty($profile['about']) ? L10n::t('About:') : false); + $about = (!empty($profile['about']) ? L10n::t('About:') : false); $location_e = $location; From c685ce3db17cc1bc0776fde2cff33ea440f075f0 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:35:52 +0200 Subject: [PATCH 348/653] Fixed Forbidden message. --- src/Module/Directory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Module/Directory.php b/src/Module/Directory.php index f1a1c9861..cdf43b8f9 100644 --- a/src/Module/Directory.php +++ b/src/Module/Directory.php @@ -40,7 +40,7 @@ class Directory extends BaseModule if (($config->get('system', 'block_public') && !local_user() && !remote_user()) || ($config->get('system', 'block_local_dir') && !local_user() && !remote_user())) { - throw new HTTPException\ForbiddenException(); + throw new HTTPException\ForbiddenException(L10n::t('Public access denied.')); } $output = ''; From 83e5fe25397cafed6f047509fbd385b3a0bcd991 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Thu, 2 May 2019 23:39:20 +0200 Subject: [PATCH 349/653] added url for magic link again --- src/Module/AllFriends.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Module/AllFriends.php b/src/Module/AllFriends.php index 238223aee..b0e6ea149 100644 --- a/src/Module/AllFriends.php +++ b/src/Module/AllFriends.php @@ -71,13 +71,13 @@ class AllFriends extends BaseModule } else { $connlnk = $app->getBaseURL() . '/follow/?url=' . $friend['url']; $photoMenu = [ - 'profile' => [L10n::t('View Profile'), Model\Contact::magicLinkbyId($friend['id'])], + 'profile' => [L10n::t('View Profile'), Model\Contact::magicLinkbyId($friend['id'], $friend['url'])], 'follow' => [L10n::t('Connect/Follow'), $connlnk] ]; } $entry = [ - 'url' => Model\Contact::magicLinkbyId($friend['id']), + 'url' => Model\Contact::magicLinkbyId($friend['id'], $friend['url']), 'itemurl' => defaults($contactDetails, 'addr', $friend['url']), 'name' => $contactDetails['name'], 'thumb' => ProxyUtils::proxifyUrl($contactDetails['thumb'], false, ProxyUtils::SIZE_THUMB), From 70bef12fd22db5dd78dbdbda075999ecfccfc48c Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 2 May 2019 21:35:37 -0400 Subject: [PATCH 350/653] Fix Proxy module routes - Fix EOL in view/templates/exception.tpl --- src/App/Router.php | 8 ++++---- view/templates/exception.tpl | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/App/Router.php b/src/App/Router.php index 83cdf4255..34ca0df3d 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -146,10 +146,10 @@ class Router $collector->addRoute(['GET'], '/{profile:\d+}/view', Module\Profile::class); }); $this->routeCollector->addGroup('/proxy', function (RouteCollector $collector) { - $collector->addRoute(['GET'], '[/]', Module\Proxy::class); - $collector->addRoute(['GET'], '/{url}', Module\Proxy::class); - $collector->addRoute(['GET'], '/sub1/{url}', Module\Proxy::class); - $collector->addRoute(['GET'], '/sub1/sub2/{url}', Module\Proxy::class); + $collector->addRoute(['GET'], '[/]' , Module\Proxy::class); + $collector->addRoute(['GET'], '/{url}' , Module\Proxy::class); + $collector->addRoute(['GET'], '/{sub1}/{url}' , Module\Proxy::class); + $collector->addRoute(['GET'], '/{sub1}/{sub2}/{url}' , Module\Proxy::class); }); $this->routeCollector->addRoute(['GET', 'POST'], '/register', Module\Register::class); $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); diff --git a/view/templates/exception.tpl b/view/templates/exception.tpl index cc4e6167d..02b7648e3 100644 --- a/view/templates/exception.tpl +++ b/view/templates/exception.tpl @@ -1,4 +1,4 @@ -
        -

        {{$title}}

        -

        {{$message}}

        -
        +
        +

        {{$title}}

        +

        {{$message}}

        +
        From 949fd1e8bf0509b41854f7e7e243935d6826f1ba Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 3 May 2019 06:01:01 +0200 Subject: [PATCH 351/653] Fixes undefined variable --- src/Model/Contact.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 159b888b5..5a5701f09 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2119,6 +2119,8 @@ class Contact extends BaseObject // send email notification to owner? } else { + $protocol = self::getProtocol($url, $network); + if (DBA::exists('contact', ['nurl' => Strings::normaliseLink($url), 'uid' => $importer['uid'], 'pending' => true])) { Logger::log('ignoring duplicated connection request from pending contact ' . $url); return; From 6c341962648b73c935c2de26996b07332b776a1f Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 3 May 2019 06:17:26 +0200 Subject: [PATCH 352/653] Cleaning confirm --- mod/dfrn_confirm.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 97d19f1b7..531c164d8 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -24,7 +24,6 @@ use Friendica\Core\Logger; use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Database\DBA; -use Friendica\Model\APContact; use Friendica\Model\Contact; use Friendica\Model\Group; use Friendica\Model\User; @@ -145,11 +144,8 @@ function dfrn_confirm_post(App $a, $handsfree = null) } // an empty DFRN-ID tells us that it had been a request via AP from a Friendica contact - if (($network === Protocol::DFRN) && empty($dfrn_id) && !empty($contact['hub-verify'])) { - $apcontact = APContact::getByURL($contact['url']); - if (!empty($apcontact)) { - $network = Protocol::ACTIVITYPUB; - } + if (($network === Protocol::DFRN) && empty($dfrn_id)) { + $network = Contact::getProtocol($contact['url'], $contact['network']); } if ($network === Protocol::DFRN) { From 56d2df04f0a275016ad234e9b8dd8118593c60c9 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 3 May 2019 07:10:02 +0200 Subject: [PATCH 353/653] Don't switch Friendica contacts to AP --- src/Protocol/ActivityPub/Processor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 2ebcbc0b8..589204870 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -653,7 +653,7 @@ class Processor private static function switchContact($cid) { $contact = DBA::selectFirst('contact', ['network'], ['id' => $cid, 'network' => Protocol::NATIVE_SUPPORT]); - if (!DBA::isResult($contact) || ($contact['network'] == Protocol::ACTIVITYPUB)) { + if (!DBA::isResult($contact) || in_array($contact['network'], [Protocol::ACTIVITYPUB, Protocol::DFRN])) { return; } From b1222e174ebd03ccf3fcf6e6c4ba832211c9d7ea Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 3 May 2019 05:54:40 +0000 Subject: [PATCH 354/653] Ensure that an existing contact isn't archived or pending --- src/Model/Contact.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 5a5701f09..8b7097e3c 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2105,11 +2105,14 @@ class Contact extends BaseObject $network = $pub_contact['network']; if (is_array($contact)) { + // Make sure that the existing contact isn't archived + self::unmarkForArchival($contact); + $protocol = self::getProtocol($url, $contact['network']); if (($contact['rel'] == self::SHARING) || ($sharing && $contact['rel'] == self::FOLLOWER)) { - DBA::update('contact', ['rel' => self::FRIEND, 'writable' => true], + DBA::update('contact', ['rel' => self::FRIEND, 'writable' => true, 'pending' => false], ['id' => $contact['id'], 'uid' => $importer['uid']]); } From 33931ff15e64b2c28f642602e873eef4be613245 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Fri, 3 May 2019 08:13:02 +0200 Subject: [PATCH 355/653] Corrected order --- src/Model/Contact.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 8b7097e3c..5d62383dc 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2139,8 +2139,8 @@ class Contact extends BaseObject DBA::escape($name), DBA::escape($nick), DBA::escape($photo), - DBA::escape($protocol), DBA::escape($network), + DBA::escape($protocol), intval(self::FOLLOWER) ); From 1ef4b9c7e4a8ef75fba1e5a77e5a591b7c9af06d Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Fri, 3 May 2019 08:50:17 +0200 Subject: [PATCH 356/653] Move mod/nogroup to src/Module/Group --- mod/nogroup.php | 23 ----------------------- src/App/Router.php | 1 + src/Module/Group.php | 4 +++- 3 files changed, 4 insertions(+), 24 deletions(-) delete mode 100644 mod/nogroup.php diff --git a/mod/nogroup.php b/mod/nogroup.php deleted file mode 100644 index 20dbd23a3..000000000 --- a/mod/nogroup.php +++ /dev/null @@ -1,23 +0,0 @@ -internalRedirect('group/none'); -} diff --git a/src/App/Router.php b/src/App/Router.php index 34ca0df3d..6612936e1 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -129,6 +129,7 @@ class Router $this->routeCollector->addRoute(['GET'], '/magic', Module\Magic::class); $this->routeCollector->addRoute(['GET'], '/manifest', Module\Manifest::class); $this->routeCollector->addRoute(['GET'], '/nodeinfo/1.0', Module\NodeInfo::class); + $this->routeCollector->addRoute(['GET'], '/nogroup', Module\Group::class); $this->routeCollector->addRoute(['GET'], '/objects/{guid}', Module\Objects::class); $this->routeCollector->addGroup('/oembed', function (RouteCollector $collector) { $collector->addRoute(['GET'], '/[b2h|h2b]', Module\Oembed::class); diff --git a/src/Module/Group.php b/src/Module/Group.php index acc969c7e..d8d5fb1c5 100644 --- a/src/Module/Group.php +++ b/src/Module/Group.php @@ -176,7 +176,9 @@ class Group extends BaseModule $nogroup = false; - if (($a->argc == 2) && ($a->argv[1] === 'none')) { + // @TODO: Replace with parameter from router + if (($a->argc == 2) && ($a->argv[1] === 'none') || + ($a->argc == 1) && ($a->argv[0] === 'nogroup')) { $id = -1; $nogroup = true; $group = [ From 2b4c710e3fd0405765567d044729a46ac360e942 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Fri, 3 May 2019 10:41:12 +0200 Subject: [PATCH 357/653] Move mod/fetch to src/Module/Fetch --- mod/fetch.php | 61 ----------------------------- src/App/Router.php | 5 +++ src/Module/Diaspora/Fetch.php | 72 +++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 61 deletions(-) delete mode 100644 mod/fetch.php create mode 100644 src/Module/Diaspora/Fetch.php diff --git a/mod/fetch.php b/mod/fetch.php deleted file mode 100644 index 492f319ef..000000000 --- a/mod/fetch.php +++ /dev/null @@ -1,61 +0,0 @@ -argc != 3) || (!in_array($a->argv[1], ["post", "status_message", "reshare"]))) { - throw new \Friendica\Network\HTTPException\NotFoundException(); - } - - $guid = $a->argv[2]; - - // Fetch the item - $fields = ['uid', 'title', 'body', 'guid', 'contact-id', 'private', 'created', 'app', 'location', 'coord', 'network', - 'event-id', 'resource-id', 'author-link', 'author-avatar', 'author-name', 'plink', 'owner-link', 'attach']; - $condition = ['wall' => true, 'private' => false, 'guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]]; - $item = Item::selectFirst($fields, $condition); - if (!DBA::isResult($item)) { - $condition = ['guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]]; - $item = Item::selectFirst(['author-link'], $condition); - if (DBA::isResult($item)) { - $parts = parse_url($item["author-link"]); - $host = $parts["scheme"]."://".$parts["host"]; - - if (Strings::normaliseLink($host) != Strings::normaliseLink(System::baseUrl())) { - $location = $host."/fetch/".$a->argv[1]."/".urlencode($guid); - - header("HTTP/1.1 301 Moved Permanently"); - header("Location:".$location); - exit(); - } - } - - throw new \Friendica\Network\HTTPException\NotFoundException(); - } - - // Fetch some data from the author (We could combine both queries - but I think this is more readable) - $user = User::getOwnerDataById($item["uid"]); - if (!$user) { - throw new \Friendica\Network\HTTPException\NotFoundException(); - } - - $status = Diaspora::buildStatus($item, $user); - $xml = Diaspora::buildPostXml($status["type"], $status["message"]); - - // Send the envelope - header("Content-Type: application/magic-envelope+xml; charset=utf-8"); - echo Diaspora::buildMagicEnvelope($xml, $user); - - exit(); -} diff --git a/src/App/Router.php b/src/App/Router.php index 34ca0df3d..4e51ed75c 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -103,6 +103,11 @@ class Router }); $this->routeCollector->addRoute(['GET'], '/directory', Module\Directory::class); $this->routeCollector->addRoute(['GET'], '/feedtest', Module\Feedtest::class); + $this->routeCollector->addGroup('/fetch', function (RouteCollector $collector) { + $collector->addRoute(['GET'], '/{guid}/post', Module\Diaspora\Fetch::class); + $collector->addRoute(['GET'], '/{guid}/status_message', Module\Diaspora\Fetch::class); + $collector->addRoute(['GET'], '/{guid}/reshare', Module\Diaspora\Fetch::class); + }); $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); $this->routeCollector->addRoute(['GET'], '/following/{owner}', Module\Following::class); diff --git a/src/Module/Diaspora/Fetch.php b/src/Module/Diaspora/Fetch.php new file mode 100644 index 000000000..e6f94a958 --- /dev/null +++ b/src/Module/Diaspora/Fetch.php @@ -0,0 +1,72 @@ +argc != 3) || (!in_array($app->argv[1], ["post", "status_message", "reshare"]))) { + throw new HTTPException\NotFoundException(); + } + + // @TODO: Replace with parameter from router + $guid = $app->argv[2]; + + // Fetch the item + $fields = [ + 'uid', 'title', 'body', 'guid', 'contact-id', 'private', 'created', 'app', 'location', 'coord', 'network', + 'event-id', 'resource-id', 'author-link', 'author-avatar', 'author-name', 'plink', 'owner-link', 'attach' + ]; + $condition = ['wall' => true, 'private' => false, 'guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]]; + $item = Item::selectFirst($fields, $condition); + if (empty($item)) { + $condition = ['guid' => $guid, 'network' => [Protocol::DFRN, Protocol::DIASPORA]]; + $item = Item::selectFirst(['author-link'], $condition); + if (empty($item)) { + $parts = parse_url($item["author-link"]); + $host = $parts["scheme"] . "://" . $parts["host"]; + + if (Strings::normaliseLink($host) != Strings::normaliseLink($app->getBaseURL())) { + $location = $host . "/fetch/" . $app->argv[1] . "/" . urlencode($guid); + + header("HTTP/1.1 301 Moved Permanently"); + header("Location:" . $location); + exit(); + } + } + + throw new HTTPException\NotFoundException(); + } + + // Fetch some data from the author (We could combine both queries - but I think this is more readable) + $user = User::getOwnerDataById($item["uid"]); + if (!$user) { + throw new HTTPException\NotFoundException(); + } + + $status = Diaspora::buildStatus($item, $user); + $xml = Diaspora::buildPostXml($status["type"], $status["message"]); + + // Send the envelope + header("Content-Type: application/magic-envelope+xml; charset=utf-8"); + echo Diaspora::buildMagicEnvelope($xml, $user); + + exit(); + } +} From 21aa82e06414fd5e937437602436157e09ef8745 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Fri, 3 May 2019 15:08:50 +0200 Subject: [PATCH 358/653] Add redirect for fetch --- src/Module/Diaspora/Fetch.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Module/Diaspora/Fetch.php b/src/Module/Diaspora/Fetch.php index e6f94a958..46d938806 100644 --- a/src/Module/Diaspora/Fetch.php +++ b/src/Module/Diaspora/Fetch.php @@ -44,10 +44,7 @@ class Fetch extends BaseModule if (Strings::normaliseLink($host) != Strings::normaliseLink($app->getBaseURL())) { $location = $host . "/fetch/" . $app->argv[1] . "/" . urlencode($guid); - - header("HTTP/1.1 301 Moved Permanently"); - header("Location:" . $location); - exit(); + $app->redirect($location); } } From 6ff3389f6ef9fc008a6ce98efcd759eda440fa39 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 09:16:37 +0200 Subject: [PATCH 359/653] add status code to System::externalRedirect --- src/Core/System.php | 16 ++++++++++++++-- src/Module/Diaspora/Fetch.php | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/Core/System.php b/src/Core/System.php index e2966a9b0..31934af5a 100644 --- a/src/Core/System.php +++ b/src/Core/System.php @@ -223,15 +223,27 @@ class System extends BaseObject * Redirects to an external URL (fully qualified URL) * If you want to route relative to the current Friendica base, use App->internalRedirect() * - * @param string $url The new Location to redirect + * @param string $url The new Location to redirect + * @param int $code The redirection code, which is used (Default is 302) + * * @throws InternalServerErrorException If the URL is not fully qualified */ - public static function externalRedirect($url) + public static function externalRedirect($url, $code = 302) { if (empty(parse_url($url, PHP_URL_SCHEME))) { throw new InternalServerErrorException("'$url' is not a fully qualified URL, please use App->internalRedirect() instead"); } + switch ($code) { + case 302: + // this is the default code for a REDIRECT + // We don't need a extra header here + break; + case 301: + header('HTTP/1.1 301 Moved Permanently'); + break; + } + header("Location: $url"); exit(); } diff --git a/src/Module/Diaspora/Fetch.php b/src/Module/Diaspora/Fetch.php index 46d938806..bcb33e335 100644 --- a/src/Module/Diaspora/Fetch.php +++ b/src/Module/Diaspora/Fetch.php @@ -4,6 +4,7 @@ namespace Friendica\Module\Diaspora; use Friendica\BaseModule; use Friendica\Core\Protocol; +use Friendica\Core\System; use Friendica\Model\Item; use Friendica\Model\User; use Friendica\Network\HTTPException; @@ -44,7 +45,7 @@ class Fetch extends BaseModule if (Strings::normaliseLink($host) != Strings::normaliseLink($app->getBaseURL())) { $location = $host . "/fetch/" . $app->argv[1] . "/" . urlencode($guid); - $app->redirect($location); + System::externalRedirect($location, 301); } } From 6f787f2422a4b1e82ba4279b3e264be4af436419 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 10:05:21 +0200 Subject: [PATCH 360/653] Move mod/friendica to src/Module/Friendica --- mod/friendica.php | 141 ------------------------------ src/App/Router.php | 3 +- src/Model/User.php | 15 ++++ src/Module/Friendica.php | 162 +++++++++++++++++++++++++++++++++++ view/templates/friendica.tpl | 45 ++++++++++ 5 files changed, 224 insertions(+), 142 deletions(-) delete mode 100644 mod/friendica.php create mode 100644 src/Module/Friendica.php create mode 100644 view/templates/friendica.tpl diff --git a/mod/friendica.php b/mod/friendica.php deleted file mode 100644 index 4942e4c8f..000000000 --- a/mod/friendica.php +++ /dev/null @@ -1,141 +0,0 @@ -argv[1]) && ($a->argv[1] == "json")) { - $register_policies = [ - Register::CLOSED => 'REGISTER_CLOSED', - Register::APPROVE => 'REGISTER_APPROVE', - Register::OPEN => 'REGISTER_OPEN' - ]; - - $register_policy_int = intval(Config::get('config', 'register_policy')); - if ($register_policy_int !== Register::CLOSED && Config::get('config', 'invitation_only')) { - $register_policy = 'REGISTER_INVITATION'; - } else { - $register_policy = $register_policies[$register_policy_int]; - } - - $condition = []; - $admin = false; - if (!empty(Config::get('config', 'admin_nickname'))) { - $condition['nickname'] = Config::get('config', 'admin_nickname'); - } - if (!empty(Config::get('config', 'admin_email'))) { - $adminlist = explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))); - $condition['email'] = $adminlist[0]; - $administrator = DBA::selectFirst('user', ['username', 'nickname'], $condition); - if (DBA::isResult($administrator)) { - $admin = [ - 'name' => $administrator['username'], - 'profile'=> System::baseUrl() . '/profile/' . $administrator['nickname'], - ]; - } - } - - $visible_addons = Addon::getVisibleList(); - - Config::load('feature_lock'); - $locked_features = []; - $featureLock = Config::get('config', 'feature_lock'); - if (isset($featureLock)) { - foreach ($featureLock as $k => $v) { - if ($k === 'config_loaded') { - continue; - } - - $locked_features[$k] = intval($v); - } - } - - $data = [ - 'version' => FRIENDICA_VERSION, - 'url' => System::baseUrl(), - 'addons' => $visible_addons, - 'locked_features' => $locked_features, - 'explicit_content' => (int)Config::get('system', 'explicit_content', false), - 'language' => Config::get('system','language'), - 'register_policy' => $register_policy, - 'admin' => $admin, - 'site_name' => Config::get('config', 'sitename'), - 'platform' => FRIENDICA_PLATFORM, - 'info' => Config::get('config', 'info'), - 'no_scrape_url' => System::baseUrl().'/noscrape' - ]; - - header('Content-type: application/json; charset=utf-8'); - echo json_encode($data); - exit(); - } -} - -function friendica_content(App $a) -{ - $o = '

        Friendica

        ' . PHP_EOL; - $o .= '

        '; - $o .= L10n::t('This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.', - '' . FRIENDICA_VERSION . '', System::baseUrl(), '' . DB_UPDATE_VERSION . '', - '' . Config::get("system", "post_update_version") . ''); - $o .= '

        ' . PHP_EOL; - - $o .= '

        '; - $o .= L10n::t('Please visit Friendi.ca to learn more about the Friendica project.') . PHP_EOL; - $o .= '

        ' . PHP_EOL; - - $o .= '

        '; - $o .= L10n::t('Bug reports and issues: please visit') . ' ' . ''.L10n::t('the bugtracker at github').''; - $o .= '

        ' . PHP_EOL; - $o .= '

        '; - $o .= L10n::t('Suggestions, praise, etc. - please email "info" at "friendi - dot - ca'); - $o .= '

        ' . PHP_EOL; - - $visible_addons = Addon::getVisibleList(); - if (count($visible_addons)) { - $o .= '

        ' . L10n::t('Installed addons/apps:') . '

        ' . PHP_EOL; - $sorted = $visible_addons; - $s = ''; - sort($sorted); - foreach ($sorted as $p) { - if (strlen($p)) { - if (strlen($s)) { - $s .= ', '; - } - $s .= $p; - } - } - $o .= '
        ' . $s . '
        ' . PHP_EOL; - } else { - $o .= '

        ' . L10n::t('No installed addons/apps') . '

        ' . PHP_EOL; - } - - if (Config::get('system', 'tosdisplay')) - { - $o .= '

        '.L10n::t('Read about the Terms of Service of this node.', System::baseurl()).'

        '; - } - - $blocklist = Config::get('system', 'blocklist', []); - if (!empty($blocklist)) { - $o .= '

        ' . L10n::t('On this server the following remote servers are blocked.') . '

        ' . PHP_EOL; - $o .= '' . PHP_EOL; - foreach ($blocklist as $b) { - $o .= '' . PHP_EOL; - } - $o .= '
        ' . L10n::t('Blocked domain') . '' . L10n::t('Reason for the block') . '
        ' . $b['domain'] .'' . $b['reason'] . '
        ' . PHP_EOL; - } - - Hook::callAll('about_hook', $o); - - return $o; -} diff --git a/src/App/Router.php b/src/App/Router.php index 6612936e1..b1d8d3ade 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -94,6 +94,7 @@ class Router $collector->addRoute(['GET'], '/{id:\d+}[/posts|conversations]', Module\Contact::class); }); $this->routeCollector->addRoute(['GET'], '/credits', Module\Credits::class); + $this->routeCollector->addRoute(['GET'], '/directory', Module\Directory::class); $this->routeCollector->addGroup('/feed', function (RouteCollector $collector) { $collector->addRoute(['GET'], '/{nickname}', Module\Feed::class); $collector->addRoute(['GET'], '/{nickname}/posts', Module\Feed::class); @@ -101,11 +102,11 @@ class Router $collector->addRoute(['GET'], '/{nickname}/replies', Module\Feed::class); $collector->addRoute(['GET'], '/{nickname}/activity', Module\Feed::class); }); - $this->routeCollector->addRoute(['GET'], '/directory', Module\Directory::class); $this->routeCollector->addRoute(['GET'], '/feedtest', Module\Feedtest::class); $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); $this->routeCollector->addRoute(['GET'], '/following/{owner}', Module\Following::class); + $this->routeCollector->addRoute(['GET'], '/friendica[/json]', Module\Friendica::class); $this->routeCollector->addGroup('/group', function (RouteCollector $collector) { $collector->addRoute(['GET', 'POST'], '[/]', Module\Group::class); $collector->addRoute(['GET', 'POST'], '/{group:\d+}', Module\Group::class); diff --git a/src/Model/User.php b/src/Model/User.php index c575b44d3..8945faeae 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -129,6 +129,21 @@ class User } } + /** + * Get a user based on it's email + * + * @param string $email + * @param array $fields + * + * @return array|boolean User record if it exists, false otherwise + * + * @throws Exception + */ + public static function getByEmail($email, array $fields = []) + { + return DBA::selectFirst('user', $fields, ['email' => $email]); + } + /** * @brief Get owner data by user id * diff --git a/src/Module/Friendica.php b/src/Module/Friendica.php new file mode 100644 index 000000000..067a986a2 --- /dev/null +++ b/src/Module/Friendica.php @@ -0,0 +1,162 @@ +getConfig(); + + $visibleAddonList = Addon::getVisibleList(); + if (!empty($visibleAddonList)) { + + $sorted = $visibleAddonList; + sort($sorted); + + $sortedAddonList = ''; + + foreach ($sorted as $addon) { + if (strlen($addon)) { + if (strlen($sortedAddonList)) { + $sortedAddonList .= ', '; + } + $sortedAddonList .= $addon; + } + } + $addon = [ + 'title' => L10n::t('Installed addons/apps:'), + 'list' => $sortedAddonList, + ]; + } else { + $addon = [ + 'title' => L10n::t('No installed addons/apps'), + ]; + } + + $tos = ($config->get('system', 'tosdisplay')) ? + L10n::t('Read about the Terms of Service of this node.', $app->getBaseURL()) : + ''; + + $blockList = $config->get('system', 'blocklist'); + + if (!empty($blockList)) { + $blocked = [ + 'title' => L10n::t('On this server the following remote servers are blocked.'), + 'header' => [ + L10n::t('Blocked domain'), + L10n::t('Reason for the block'), + ], + 'list' => $blockList, + ]; + } else { + $blocked = null; + } + + $hooked = ''; + + Hook::callAll('about_hook', $hooked); + + $tpl = Renderer::getMarkupTemplate('friendica.tpl'); + + return Renderer::replaceMacros($tpl, [ + 'about' => L10n::t('This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s.', + '' . FRIENDICA_VERSION . '', + $app->getBaseURL(), + '' . DB_UPDATE_VERSION . '', + '' . $config->get("system", "post_update_version") . ''), + 'friendica' => L10n::t('Please visit Friendi.ca to learn more about the Friendica project.'), + 'bugs' => L10n::t('Bug reports and issues: please visit') . ' ' . '' . L10n::t('the bugtracker at github') . '', + 'info' => L10n::t('Suggestions, praise, etc. - please email "info" at "friendi - dot - ca'), + + 'visible_addons' => $addon, + 'tos' => $tos, + 'block_list' => $blocked, + 'hooked' => $hooked, + ]); + } + + public static function rawContent() + { + $app = self::getApp(); + + // @TODO: Replace with parameter from router + if ($app->argc <= 1 || ($app->argv[1] !== 'json')) { + return; + } + + $config = $app->getConfig(); + + $register_policies = [ + Register::CLOSED => 'REGISTER_CLOSED', + Register::APPROVE => 'REGISTER_APPROVE', + Register::OPEN => 'REGISTER_OPEN' + ]; + + $register_policy_int = intval($config->get('config', 'register_policy')); + if ($register_policy_int !== Register::CLOSED && $config->get('config', 'invitation_only')) { + $register_policy = 'REGISTER_INVITATION'; + } else { + $register_policy = $register_policies[$register_policy_int]; + } + + $condition = []; + $admin = false; + if (!empty($config->get('config', 'admin_nickname'))) { + $condition['nickname'] = $config->get('config', 'admin_nickname'); + } + if (!empty($config->get('config', 'admin_email'))) { + $adminList = explode(',', str_replace(' ', '', $config->get('config', 'admin_email'))); + $condition['email'] = $adminList[0]; + $administrator = User::getByEmail($adminList[0], ['username', 'nickname']); + if (!empty($administrator)) { + $admin = [ + 'name' => $administrator['username'], + 'profile' => $app->getBaseURL() . '/profile/' . $administrator['nickname'], + ]; + } + } + + $visible_addons = Addon::getVisibleList(); + + $config->load('feature_lock'); + $locked_features = []; + $featureLocks = $config->get('config', 'feature_lock'); + if (isset($featureLocks)) { + foreach ($featureLocks as $feature => $lock) { + if ($feature === 'config_loaded') { + continue; + } + + $locked_features[$feature] = intval($lock); + } + } + + $data = [ + 'version' => FRIENDICA_VERSION, + 'url' => $app->getBaseURL(), + 'addons' => $visible_addons, + 'locked_features' => $locked_features, + 'explicit_content' => intval($config->get('system', 'explicit_content', 0)), + 'language' => $config->get('system', 'language'), + 'register_policy' => $register_policy, + 'admin' => $admin, + 'site_name' => $config->get('config', 'sitename'), + 'platform' => FRIENDICA_PLATFORM, + 'info' => $config->get('config', 'info'), + 'no_scrape_url' => $app->getBaseURL() . '/noscrape', + ]; + + header('Content-type: application/json; charset=utf-8'); + echo json_encode($data); + exit(); + } +} diff --git a/view/templates/friendica.tpl b/view/templates/friendica.tpl new file mode 100644 index 000000000..0fa9eac5b --- /dev/null +++ b/view/templates/friendica.tpl @@ -0,0 +1,45 @@ +

        Friendica

        +
        +

        {{$about nofilter}}

        +
        +

        {{$friendica nofilter}}

        +
        +

        {{$bugs nofilter}}

        +
        +

        {{$info nofilter}}

        +
        + +

        {{$visible_addons.title nofilter}}

        +{{if $visible_addons.list}} +
        {{$visible_addons.list nofilter}}
        +{{/if}} + +{{if $tos}} +

        {{$tos}}

        +{{/if}} + +{{if $block_list}} +
        +

        {{$block_list.title nofilter}}

        +
        + + + + + + + + + {{foreach $block_list.list as $blocked}} + + + + + {{/foreach}} + +
        {{$block_list.header[0] nofilter}}{{$block_list.header[1] nofilter}}
        {{$blocked.domain nofilter}}{{$blocked.reason nofilter}}
        +
        + +{{/if}} + +{{$hooked}} From 3fca00d1d5d2f764fe2b1c9e2267b5ade22298f4 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 10:17:04 +0200 Subject: [PATCH 361/653] forgot nofilter --- view/templates/friendica.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/view/templates/friendica.tpl b/view/templates/friendica.tpl index 0fa9eac5b..3beabda36 100644 --- a/view/templates/friendica.tpl +++ b/view/templates/friendica.tpl @@ -15,7 +15,7 @@ {{/if}} {{if $tos}} -

        {{$tos}}

        +

        {{$tos nofilter}}

        {{/if}} {{if $block_list}} @@ -42,4 +42,4 @@ {{/if}} -{{$hooked}} +{{$hooked nofilter}} From 28d6441d695bfe74947605b1099ba4fb483a38a5 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 10:18:41 +0200 Subject: [PATCH 362/653] add PHP doc --- src/Module/Friendica.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Module/Friendica.php b/src/Module/Friendica.php index 067a986a2..3901a0bc7 100644 --- a/src/Module/Friendica.php +++ b/src/Module/Friendica.php @@ -9,6 +9,10 @@ use Friendica\Core\L10n; use Friendica\Core\Renderer; use Friendica\Model\User; +/** + * Prints information about the current node + * Either in human readable form or in JSON + */ class Friendica extends BaseModule { public static function content() From 708ffaff51d3f5112af6b1fbd25d7ff6391e496e Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 13:08:31 +0200 Subject: [PATCH 363/653] Move mod/home to src/Module/Home --- mod/home.php | 64 ----------------------------------- src/App/Router.php | 3 ++ src/Module/Home.php | 74 +++++++++++++++++++++++++++++++++++++++++ view/templates/home.tpl | 2 +- 4 files changed, 78 insertions(+), 65 deletions(-) delete mode 100644 mod/home.php create mode 100644 src/Module/Home.php diff --git a/mod/home.php b/mod/home.php deleted file mode 100644 index 9f1810120..000000000 --- a/mod/home.php +++ /dev/null @@ -1,64 +0,0 @@ -user['nickname'])) { - $a->internalRedirect('network'); - } - - if (strlen(Config::get('system','singleuser'))) { - $a->internalRedirect('profile/' . Config::get('system','singleuser')); - } - -}} - -if(! function_exists('home_content')) { -function home_content(App $a) { - - if (!empty($_SESSION['theme'])) { - unset($_SESSION['theme']); - } - if (!empty($_SESSION['mobile-theme'])) { - unset($_SESSION['mobile-theme']); - } - - $customhome = false; - $defaultheader = '

        ' . (Config::get('config', 'sitename') ? L10n::t('Welcome to %s', Config::get('config', 'sitename')) : '') . '

        '; - - $homefilepath = $a->getBasePath() . "/home.html"; - $cssfilepath = $a->getBasePath() . "/home.css"; - if (file_exists($homefilepath)) { - $customhome = $homefilepath; - if (file_exists($cssfilepath)) { - $a->page['htmlhead'] .= ''; - } - } - - $login = Login::form($a->query_string, intval(Config::get('config', 'register_policy')) === \Friendica\Module\Register::CLOSED ? 0 : 1); - - $content = ''; - Hook::callAll("home_content",$content); - - - $tpl = Renderer::getMarkupTemplate('home.tpl'); - return Renderer::replaceMacros($tpl, [ - '$defaultheader' => $defaultheader, - '$customhome' => $customhome, - '$login' => $login, - '$content' => $content - ]); -}} diff --git a/src/App/Router.php b/src/App/Router.php index 6612936e1..12d5d2156 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -40,6 +40,7 @@ class Router */ public function collectRoutes() { + $this->routeCollector->addRoute(['GET'], '[/]', Module\Home::class); $this->routeCollector->addGroup('/.well-known', function (RouteCollector $collector) { $collector->addRoute(['GET'], '/host-meta' , Module\WellKnown\HostMeta::class); $collector->addRoute(['GET'], '/nodeinfo[/1.0]' , Module\NodeInfo::class); @@ -118,6 +119,7 @@ class Router $collector->addRoute(['POST'], '/{group:\d+}/remove/{contact:\d+}', Module\Group::class); }); $this->routeCollector->addRoute(['GET'], '/hashtag', Module\Hashtag::class); + $this->routeCollector->addRoute(['GET'], '/home', Module\Home::class); $this->routeCollector->addRoute(['GET'], '/inbox[/{nickname}]', Module\Inbox::class); $this->routeCollector->addGroup('/install', function (RouteCollector $collector) { $collector->addRoute(['GET', 'POST'], '[/]', Module\Install::class); @@ -126,6 +128,7 @@ class Router $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); $this->routeCollector->addRoute(['GET', 'POST'], '/localtime', Module\Localtime::class); $this->routeCollector->addRoute(['GET', 'POST'], '/login', Module\Login::class); + $this->routeCollector->addRoute(['GET', 'POST'], '/logout', Module\Logout::class); $this->routeCollector->addRoute(['GET'], '/magic', Module\Magic::class); $this->routeCollector->addRoute(['GET'], '/manifest', Module\Manifest::class); $this->routeCollector->addRoute(['GET'], '/nodeinfo/1.0', Module\NodeInfo::class); diff --git a/src/Module/Home.php b/src/Module/Home.php new file mode 100644 index 000000000..f58664f9d --- /dev/null +++ b/src/Module/Home.php @@ -0,0 +1,74 @@ +getConfig(); + + if (local_user() && ($app->user['nickname'])) { + $app->internalRedirect('network'); + } + + if (strlen($config->get('system', 'singleuser'))) { + $app->internalRedirect('/profile/' . $config->get('system', 'singleuser')); + } + } + + public static function content() + { + if (!empty($_SESSION['theme'])) { + unset($_SESSION['theme']); + } + + if (!empty($_SESSION['mobile-theme'])) { + unset($_SESSION['mobile-theme']); + } + + $app = self::getApp(); + $config = $app->getConfig(); + + $customHome = ''; + $defaultHeader = ($config->get('config', 'sitename') ? L10n::t('Welcome to %s', $config->get('config', 'sitename')) : ''); + + $homeFilePath = $app->getBaseURL() . '/home.html'; + $cssFilePath = $app->getBaseURL() . '/home.css'; + + if (file_exists($homeFilePath)) { + $customHome = $homeFilePath; + + if (file_exists($cssFilePath)) { + $app->page['htmlhead'] .= ''; + } + } + + $login = Login::form($app->query_string, $config->get('config', 'register_policy') === Register::CLOSED ? 0 : 1); + + $content = ''; + Hook::callAll('home_content', $content); + + $tpl = Renderer::getMarkupTemplate('home.tpl'); + return Renderer::replaceMacros($tpl, [ + '$defaultheader' => $defaultHeader, + '$customhome' => $customHome, + '$login' => $login, + '$content' => $content, + ]); + } +} diff --git a/view/templates/home.tpl b/view/templates/home.tpl index eb3f402fc..d2ce589fd 100644 --- a/view/templates/home.tpl +++ b/view/templates/home.tpl @@ -7,7 +7,7 @@ {{if $customhome != false }} {{include file="$customhome"}} {{else}} - {{$defaultheader nofilter}} +

        {{$defaultheader nofilter}}

        {{/if}} {{$login nofilter}} From 35d4daa4f991dcfcfc0e353b4bc10664e8ba7e3d Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 16:26:32 +0200 Subject: [PATCH 364/653] Kept the hook, ditched the init --- src/Module/Home.php | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/Module/Home.php b/src/Module/Home.php index f58664f9d..adcdb02a6 100644 --- a/src/Module/Home.php +++ b/src/Module/Home.php @@ -12,25 +12,6 @@ use Friendica\Core\Renderer; */ class Home extends BaseModule { - public static function init() - { - // currently no returned data is used - $ret = []; - - Hook::callAll('home_init', $ret); - - $app = self::getApp(); - $config = $app->getConfig(); - - if (local_user() && ($app->user['nickname'])) { - $app->internalRedirect('network'); - } - - if (strlen($config->get('system', 'singleuser'))) { - $app->internalRedirect('/profile/' . $config->get('system', 'singleuser')); - } - } - public static function content() { if (!empty($_SESSION['theme'])) { @@ -44,6 +25,19 @@ class Home extends BaseModule $app = self::getApp(); $config = $app->getConfig(); + // currently no returned data is used + $ret = []; + + Hook::callAll('home_init', $ret); + + if (local_user() && ($app->user['nickname'])) { + $app->internalRedirect('network'); + } + + if (strlen($config->get('system', 'singleuser'))) { + $app->internalRedirect('/profile/' . $config->get('system', 'singleuser')); + } + $customHome = ''; $defaultHeader = ($config->get('config', 'sitename') ? L10n::t('Welcome to %s', $config->get('config', 'sitename')) : ''); From bacf9825ffd57c076aa152b045cdc5a064d45eb9 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 20:32:31 +0200 Subject: [PATCH 365/653] Move mod/invite to src/Module/Invite --- mod/invite.php | 158 ----------------------------------------- src/App/Router.php | 1 + src/Module/Invite.php | 160 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 161 insertions(+), 158 deletions(-) delete mode 100644 mod/invite.php create mode 100644 src/Module/Invite.php diff --git a/mod/invite.php b/mod/invite.php deleted file mode 100644 index e8901d071..000000000 --- a/mod/invite.php +++ /dev/null @@ -1,158 +0,0 @@ - $max_invites) { - notice(L10n::t('Total invitation limit exceeded.') . EOL); - return; - } - - - $recipients = !empty($_POST['recipients']) ? explode("\n", $_POST['recipients']) : []; - $message = !empty($_POST['message']) ? Strings::escapeTags(trim($_POST['message'])) : ''; - - $total = 0; - $invitation_only = false; - $invites_remaining = null; - - if (Config::get('system', 'invitation_only')) { - $invitation_only = true; - $invites_remaining = PConfig::get(local_user(), 'system', 'invites_remaining'); - if ((! $invites_remaining) && (! is_site_admin())) { - return; - } - } - - foreach ($recipients as $recipient) { - $recipient = trim($recipient); - - if (!filter_var($recipient, FILTER_VALIDATE_EMAIL)) { - notice(L10n::t('%s : Not a valid email address.', $recipient) . EOL); - continue; - } - - if ($invitation_only && ($invites_remaining || is_site_admin())) { - $code = Friendica\Model\Register::createForInvitation(); - $nmessage = str_replace('$invite_code', $code, $message); - - if (! is_site_admin()) { - $invites_remaining --; - if ($invites_remaining >= 0) { - PConfig::set(local_user(), 'system', 'invites_remaining', $invites_remaining); - } else { - return; - } - } - } else { - $nmessage = $message; - } - - $additional_headers = 'From: ' . $a->user['email'] . "\n" - . 'Sender: ' . $a->getSenderEmailAddress() . "\n" - . 'Content-type: text/plain; charset=UTF-8' . "\n" - . 'Content-transfer-encoding: 8bit'; - - $res = mail( - $recipient, - Email::encodeHeader(L10n::t('Please join us on Friendica'), 'UTF-8'), - $nmessage, - $additional_headers); - - if ($res) { - $total ++; - $current_invites ++; - PConfig::set(local_user(), 'system', 'sent_invites', $current_invites); - if ($current_invites > $max_invites) { - notice(L10n::t('Invitation limit exceeded. Please contact your site administrator.') . EOL); - return; - } - } else { - notice(L10n::t('%s : Message delivery failed.', $recipient) . EOL); - } - - } - notice(L10n::tt("%d message sent.", "%d messages sent.", $total) . EOL); - return; -} - -function invite_content(App $a) { - - if (! local_user()) { - notice(L10n::t('Permission denied.') . EOL); - return; - } - - $tpl = Renderer::getMarkupTemplate('invite.tpl'); - $invonly = false; - - if (Config::get('system', 'invitation_only')) { - $invonly = true; - $x = PConfig::get(local_user(), 'system', 'invites_remaining'); - if ((! $x) && (! is_site_admin())) { - notice(L10n::t('You have no more invitations available') . EOL); - return ''; - } - } - - $dirloc = Config::get('system', 'directory'); - if (strlen($dirloc)) { - if (intval(Config::get('config', 'register_policy')) === Register::CLOSED) { - $linktxt = L10n::t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.', $dirloc . '/servers'); - } else { - $linktxt = L10n::t('To accept this invitation, please visit and register at %s or any other public Friendica website.', System::baseUrl()) - . "\r\n" . "\r\n" . L10n::t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.', $dirloc . '/servers'); - } - } else { // there is no global directory URL defined - if (intval(Config::get('config', 'register_policy')) === Register::CLOSED) { - $o = L10n::t('Our apologies. This system is not currently configured to connect with other public sites or invite members.'); - return $o; - } else { - $linktxt = L10n::t('To accept this invitation, please visit and register at %s.', System::baseUrl() - . "\r\n" . "\r\n" . L10n::t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.')); - } - } - - $o = Renderer::replaceMacros($tpl, [ - '$form_security_token' => BaseModule::getFormSecurityToken("send_invite"), - '$title' => L10n::t('Send invitations'), - '$recipients' => ['recipients', L10n::t('Enter email addresses, one per line:')], - '$message' => ['message', L10n::t('Your message:'),L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n" - . $linktxt - . "\r\n" . "\r\n" . (($invonly) ? L10n::t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') .L10n::t('Once you have registered, please connect with me via my profile page at:') - . "\r\n" . "\r\n" . System::baseUrl() . '/profile/' . $a->user['nickname'] - . "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n"], - '$submit' => L10n::t('Submit') - ]); - - return $o; -} diff --git a/src/App/Router.php b/src/App/Router.php index 41ea91de3..ba84b50f2 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -124,6 +124,7 @@ class Router }); $this->routeCollector->addRoute(['GET'], '/hashtag', Module\Hashtag::class); $this->routeCollector->addRoute(['GET'], '/inbox[/{nickname}]', Module\Inbox::class); + $this->routeCollector->addRoute(['GET', 'POST'], '/invite', Module\Invite::class); $this->routeCollector->addGroup('/install', function (RouteCollector $collector) { $collector->addRoute(['GET', 'POST'], '[/]', Module\Install::class); $collector->addRoute(['GET'], '/testrewrite', Module\Install::class); diff --git a/src/Module/Invite.php b/src/Module/Invite.php new file mode 100644 index 000000000..88238909a --- /dev/null +++ b/src/Module/Invite.php @@ -0,0 +1,160 @@ +getConfig(); + + $max_invites = intval($config->get('system', 'max_invites')); + if (!$max_invites) { + $max_invites = 50; + } + + $current_invites = intval(PConfig::get(local_user(), 'system', 'sent_invites')); + if ($current_invites > $max_invites) { + throw new HTTPException\ForbiddenException(L10n::t('Total invitation limit exceeded.')); + } + + + $recipients = !empty($_POST['recipients']) ? explode('\n', $_POST['recipients']) : []; + $message = !empty($_POST['message']) ? Strings::escapeTags(trim($_POST['message'])) : ''; + + $total = 0; + $invitation_only = false; + $invites_remaining = null; + + if ($config->get('system', 'invitation_only')) { + $invitation_only = true; + $invites_remaining = PConfig::get(local_user(), 'system', 'invites_remaining'); + if ((!$invites_remaining) && (!is_site_admin())) { + throw new HTTPException\ForbiddenException(); + } + } + + foreach ($recipients as $recipient) { + $recipient = trim($recipient); + + if (!filter_var($recipient, FILTER_VALIDATE_EMAIL)) { + notice(L10n::t('%s : Not a valid email address.', $recipient) . EOL); + continue; + } + + if ($invitation_only && ($invites_remaining || is_site_admin())) { + $code = Model\Register::createForInvitation(); + $nmessage = str_replace('$invite_code', $code, $message); + + if (!is_site_admin()) { + $invites_remaining--; + if ($invites_remaining >= 0) { + PConfig::set(local_user(), 'system', 'invites_remaining', $invites_remaining); + } else { + return; + } + } + } else { + $nmessage = $message; + } + + $additional_headers = 'From: ' . $app->user['email'] . "\n" + . 'Sender: ' . $app->getSenderEmailAddress() . "\n" + . 'Content-type: text/plain; charset=UTF-8' . "\n" + . 'Content-transfer-encoding: 8bit'; + + $res = mail( + $recipient, + Email::encodeHeader(L10n::t('Please join us on Friendica'), 'UTF-8'), + $nmessage, + $additional_headers); + + if ($res) { + $total++; + $current_invites++; + PConfig::set(local_user(), 'system', 'sent_invites', $current_invites); + if ($current_invites > $max_invites) { + notice(L10n::t('Invitation limit exceeded. Please contact your site administrator.') . EOL); + return; + } + } else { + notice(L10n::t('%s : Message delivery failed.', $recipient) . EOL); + } + + } + notice(L10n::tt("%d message sent.", "%d messages sent.", $total) . EOL); + } + + public static function content() + { + if (!local_user()) { + throw new HTTPException\ForbiddenException(L10n::t('Permission denied.')); + } + + $app = self::getApp(); + $config = $app->getConfig(); + + $inviteOnly = false; + + if ($config->get('system', 'invitation_only')) { + $inviteOnly = true; + $x = PConfig::get(local_user(), 'system', 'invites_remaining'); + if ((!$x) && (!is_site_admin())) { + throw new HTTPException\ForbiddenException(L10n::t('You have no more invitations available')); + } + } + + $dirLocation = $config->get('system', 'directory'); + if (strlen($dirLocation)) { + if ($config->get('config', 'register_policy') === Register::CLOSED) { + $linkTxt = L10n::t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.', $dirLocation . '/servers'); + } else { + $linkTxt = L10n::t('To accept this invitation, please visit and register at %s or any other public Friendica website.', $app->getBaseURL()) + . "\r\n" . "\r\n" . L10n::t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.', $dirLocation . '/servers'); + } + } else { // there is no global directory URL defined + if ($config->get('config', 'register_policy') === Register::CLOSED) { + return L10n::t('Our apologies. This system is not currently configured to connect with other public sites or invite members.'); + } else { + $linkTxt = L10n::t('To accept this invitation, please visit and register at %s.', $app->getBaseURL() + . "\r\n" . "\r\n" . L10n::t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.')); + } + } + + $tpl = Renderer::getMarkupTemplate('invite.tpl'); + return Renderer::replaceMacros($tpl, [ + '$form_security_token' => self::getFormSecurityToken("send_invite"), + '$title' => L10n::t('Send invitations'), + '$recipients' => ['recipients', L10n::t('Enter email addresses, one per line:')], + '$message' => [ + 'message', + L10n::t('Your message:'), + L10n::t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n" + . $linkTxt + . "\r\n" . "\r\n" . (($inviteOnly) ? L10n::t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') . L10n::t('Once you have registered, please connect with me via my profile page at:') + . "\r\n" . "\r\n" . $app->getBaseURL() . '/profile/' . $app->user['nickname'] + . "\r\n" . "\r\n" . L10n::t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n", + ], + '$submit' => L10n::t('Submit') + ]); + } +} From 1d106762da998ac0505e285e7784792f35372705 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 21:05:02 +0200 Subject: [PATCH 366/653] Move mod/help to src/Module/Help --- mod/help.php | 115 ----------------------------------------- src/App/Router.php | 1 + src/Module/Help.php | 122 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 123 insertions(+), 115 deletions(-) delete mode 100644 mod/help.php create mode 100644 src/Module/Help.php diff --git a/mod/help.php b/mod/help.php deleted file mode 100644 index 19b629271..000000000 --- a/mod/help.php +++ /dev/null @@ -1,115 +0,0 @@ -argc > 1) { - $path = ''; - // looping through the argv keys bigger than 0 to build - // a path relative to /help - for ($x = 1; $x < $a->argc; $x ++) { - if (strlen($path)) { - $path .= '/'; - } - - $path .= $a->getArgumentValue($x); - } - $title = basename($path); - $filename = $path; - $text = load_doc_file('doc/' . $path . '.md'); - $a->page['title'] = L10n::t('Help:') . ' ' . str_replace('-', ' ', Strings::escapeTags($title)); - } - - $home = load_doc_file('doc/Home.md'); - if (!$text) { - $text = $home; - $filename = "Home"; - $a->page['title'] = L10n::t('Help'); - } else { - $a->page['aside'] = Markdown::convert($home, false); - } - - if (!strlen($text)) { - throw new \Friendica\Network\HTTPException\NotFoundException(); - } - - $html = Markdown::convert($text, false); - - if ($filename !== "Home") { - // create TOC but not for home - $lines = explode("\n", $html); - $toc = "

        TOC

          "; - $lastlevel = 1; - $idnum = [0, 0, 0, 0, 0, 0, 0]; - foreach ($lines as &$line) { - if (substr($line, 0, 2) == " $lastlevel) { - $toc .= "
          • "; - } - - $idnum[$level] ++; - $id = implode("_", array_slice($idnum, 1, $level)); - $href = System::baseUrl() . "/help/{$filename}#{$id}"; - $toc .= "
          • " . strip_tags($line) . "
          • "; - $line = "" . $line; - $lastlevel = $level; - } - } - } - - for ($k = 0; $k < $lastlevel; $k++) { - $toc .= "
          "; - } - - $html = implode("\n", $lines); - - $a->page['aside'] = '
          ' . $toc . '
          ' . $a->page['aside'] . '
          '; - } - - return $html; -} diff --git a/src/App/Router.php b/src/App/Router.php index d35977dde..db6489adc 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -125,6 +125,7 @@ class Router }); $this->routeCollector->addRoute(['GET'], '/hashtag', Module\Hashtag::class); $this->routeCollector->addRoute(['GET'], '/home', Module\Home::class); + $this->routeCollector->addRoute(['GET'], '/help[/{doc:.+}]', Module\Help::class); $this->routeCollector->addRoute(['GET'], '/inbox[/{nickname}]', Module\Inbox::class); $this->routeCollector->addGroup('/install', function (RouteCollector $collector) { $collector->addRoute(['GET', 'POST'], '[/]', Module\Install::class); diff --git a/src/Module/Help.php b/src/Module/Help.php new file mode 100644 index 000000000..04c482852 --- /dev/null +++ b/src/Module/Help.php @@ -0,0 +1,122 @@ +getConfig(); + $lang = $config->get('system', 'language'); + + // @TODO: Replace with parameter from router + if ($app->argc > 1) { + $path = ''; + // looping through the argv keys bigger than 0 to build + // a path relative to /help + for ($x = 1; $x < $app->argc; $x ++) { + if (strlen($path)) { + $path .= '/'; + } + + $path .= $app->getArgumentValue($x); + } + $title = basename($path); + $filename = $path; + $text = self::loadDocFile('doc/' . $path . '.md', $lang); + $app->page['title'] = L10n::t('Help:') . ' ' . str_replace('-', ' ', Strings::escapeTags($title)); + } + + $home = self::loadDocFile('doc/Home.md', $lang); + if (!$text) { + $text = $home; + $filename = "Home"; + $app->page['title'] = L10n::t('Help'); + } else { + $app->page['aside'] = Markdown::convert($home, false); + } + + if (!strlen($text)) { + throw new HTTPException\NotFoundException(); + } + + $html = Markdown::convert($text, false); + + if ($filename !== "Home") { + // create TOC but not for home + $lines = explode("\n", $html); + $toc = "

          TOC

            "; + $lastLevel = 1; + $idNum = [0, 0, 0, 0, 0, 0, 0]; + foreach ($lines as &$line) { + if (substr($line, 0, 2) == " $lastLevel) { + $toc .= "
            • "; + } + + $idNum[$level] ++; + $id = implode("_", array_slice($idNum, 1, $level)); + $href = $app->getBaseURL() . "/help/{$filename}#{$id}"; + $toc .= "
            • " . strip_tags($line) . "
            • "; + $line = "" . $line; + $lastLevel = $level; + } + } + } + + for ($k = 0; $k < $lastLevel; $k++) { + $toc .= "
            "; + } + + $html = implode("\n", $lines); + + $a->page['aside'] = '
            ' . $toc . '
            ' . $a->page['aside'] . '
            '; + } + + return $html; + } + + private static function loadDocFile($fileName, $lang = 'en') + { + $baseName = basename($fileName); + $dirName = dirname($fileName); + if (file_exists("$dirName/$lang/$baseName")) { + return file_get_contents("$dirName/$lang/$baseName"); + } + + if (file_exists($fileName)) { + return file_get_contents($fileName); + } + + return ''; + } +} From aeae65daf8514fe75dc165803de9973e49792f66 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 21:20:39 +0200 Subject: [PATCH 367/653] Move mod/like to src/Module/Like --- mod/like.php | 48 ------------------------------------------ src/App/Router.php | 1 + src/Module/Like.php | 51 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 48 deletions(-) delete mode 100644 mod/like.php create mode 100644 src/Module/Like.php diff --git a/mod/like.php b/mod/like.php deleted file mode 100644 index 7fc7b2b42..000000000 --- a/mod/like.php +++ /dev/null @@ -1,48 +0,0 @@ -argc > 1) ? Strings::escapeTags(trim($a->argv[1])) : 0); - - $r = Item::performLike($item_id, $verb); - if (!$r) { - return; - } - - // See if we've been passed a return path to redirect to - $return_path = defaults($_REQUEST, 'return', ''); - - like_content_return($a, $return_path); - exit(); -} - - -// Decide how to return. If we were called with a 'return' argument, -// then redirect back to the calling page. If not, just quietly end - -function like_content_return(App $a, $return_path) { - if ($return_path) { - $rand = '_=' . time(); - if (strpos($return_path, '?')) { - $rand = "&$rand"; - } else { - $rand = "?$rand"; - } - - $a->internalRedirect($return_path . $rand); - } -} diff --git a/src/App/Router.php b/src/App/Router.php index d35977dde..fcd1b0c26 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -131,6 +131,7 @@ class Router $collector->addRoute(['GET'], '/testrewrite', Module\Install::class); }); $this->routeCollector->addRoute(['GET', 'POST'], '/itemsource[/{guid}]', Module\Itemsource::class); + $this->routeCollector->addRoute(['GET'], '/like/{item:\d+}', Module\Like::class); $this->routeCollector->addRoute(['GET', 'POST'], '/localtime', Module\Localtime::class); $this->routeCollector->addRoute(['GET', 'POST'], '/login', Module\Login::class); $this->routeCollector->addRoute(['GET', 'POST'], '/logout', Module\Logout::class); diff --git a/src/Module/Like.php b/src/Module/Like.php new file mode 100644 index 000000000..f57cbadfd --- /dev/null +++ b/src/Module/Like.php @@ -0,0 +1,51 @@ +argc > 1) ? Strings::escapeTags(trim($app->argv[1])) : 0); + + if (!Item::performLike($itemId, $verb)) { + throw new HTTPException\BadRequestException(); + } + + // Decide how to return. If we were called with a 'return' argument, + // then redirect back to the calling page. If not, just quietly end + $returnPath = defaults($_REQUEST, 'return', ''); + + if (!empty($returnPath)) { + $rand = '_=' . time(); + if (strpos($returnPath, '?')) { + $rand = "&$rand"; + } else { + $rand = "?$rand"; + } + + $app->internalRedirect($returnPath . $rand); + } + } +} From 15d09132268299c4572fcdec86bfe4ba60d5664e Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 21:25:16 +0200 Subject: [PATCH 368/653] fix quotes --- src/Module/Invite.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Module/Invite.php b/src/Module/Invite.php index 88238909a..7860c703c 100644 --- a/src/Module/Invite.php +++ b/src/Module/Invite.php @@ -38,7 +38,7 @@ class Invite extends BaseModule } - $recipients = !empty($_POST['recipients']) ? explode('\n', $_POST['recipients']) : []; + $recipients = !empty($_POST['recipients']) ? explode("\n", $_POST['recipients']) : []; $message = !empty($_POST['message']) ? Strings::escapeTags(trim($_POST['message'])) : ''; $total = 0; @@ -101,7 +101,7 @@ class Invite extends BaseModule } } - notice(L10n::tt("%d message sent.", "%d messages sent.", $total) . EOL); + notice(L10n::tt('%d message sent.', '%d messages sent.', $total) . EOL); } public static function content() @@ -142,7 +142,7 @@ class Invite extends BaseModule $tpl = Renderer::getMarkupTemplate('invite.tpl'); return Renderer::replaceMacros($tpl, [ - '$form_security_token' => self::getFormSecurityToken("send_invite"), + '$form_security_token' => self::getFormSecurityToken('send_invite'), '$title' => L10n::t('Send invitations'), '$recipients' => ['recipients', L10n::t('Enter email addresses, one per line:')], '$message' => [ From a1f332aaa527ae36ecc8cf2944f8b71e2317afea Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 21:37:32 +0200 Subject: [PATCH 369/653] Move mod/rsd_xml to src/Module/ReallySimpleDiscovery --- mod/rsd_xml.php | 26 -------------------------- src/App/Router.php | 1 + src/Module/ReallySimpleDiscovery.php | 21 +++++++++++++++++++++ view/templates/rsd.tpl | 15 +++++++++++++++ 4 files changed, 37 insertions(+), 26 deletions(-) delete mode 100644 mod/rsd_xml.php create mode 100644 src/Module/ReallySimpleDiscovery.php create mode 100644 view/templates/rsd.tpl diff --git a/mod/rsd_xml.php b/mod/rsd_xml.php deleted file mode 100644 index 84dedd6c5..000000000 --- a/mod/rsd_xml.php +++ /dev/null @@ -1,26 +0,0 @@ - - - - Friendica - http://friendica.com/ - - - - http://status.net/wiki/TwitterCompatibleAPI - false - - - - -'; - - exit(); -} diff --git a/src/App/Router.php b/src/App/Router.php index d35977dde..3dc45fcfa 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -161,6 +161,7 @@ class Router $collector->addRoute(['GET'], '/{sub1}/{sub2}/{url}' , Module\Proxy::class); }); $this->routeCollector->addRoute(['GET', 'POST'], '/register', Module\Register::class); + $this->routeCollector->addRoute(['GET'], '/rsd.xml', Module\ReallySimpleDiscovery::class); $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); $this->routeCollector->addRoute(['GET'], '/webfinger', Module\WebFinger::class); diff --git a/src/Module/ReallySimpleDiscovery.php b/src/Module/ReallySimpleDiscovery.php new file mode 100644 index 000000000..388a652ae --- /dev/null +++ b/src/Module/ReallySimpleDiscovery.php @@ -0,0 +1,21 @@ + + + + Friendica + http://friendica.com/ + + + + http://status.net/wiki/TwitterCompatibleAPI + false + + + + + From c969635bbcfba969033690b801594aae59ace3ef Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 4 May 2019 21:54:05 -0400 Subject: [PATCH 370/653] Add style to exception page --- images/friendica-404_svg_flexy-o-hare.png | Bin 0 -> 14553 bytes ...ndica-404_svg_hare-bottom-light-inside.png | Bin 0 -> 6031 bytes src/Module/Special/HTTPException.php | 6 ++--- view/global.css | 22 ++++++++++++++++-- view/templates/exception.tpl | 2 ++ view/theme/frio/css/style.css | 7 ++++++ 6 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 images/friendica-404_svg_flexy-o-hare.png create mode 100644 images/friendica-404_svg_hare-bottom-light-inside.png diff --git a/images/friendica-404_svg_flexy-o-hare.png b/images/friendica-404_svg_flexy-o-hare.png new file mode 100644 index 0000000000000000000000000000000000000000..36d6b5ca3d0e50db24ab6b1c3fe2acb66c1d8291 GIT binary patch literal 14553 zcmV;~I3~x5P)Z7OD7Vzjf*S-k1wf&sx73jmZRweYb^&o13wZ2dZ zKA=|=qKG^c8BCBjnS>EwISt<6+4bViE*p8@QO2lA$U|gZsIH zZp+YBL|FzGOHM3cV5OTN!&prL^JDWuxX|?z6N^<+z?!g$AzWrawKPp!KRtkzqKlZh z@(PA(F^OdUN;2@?LZ-7GEEqO3v|MPZ#Aq3&>Jcs;P*u^FVAZn5gG#J&%pRiU(h5}>vsPtz8#QSWS}(L*TEJS&Vykoz z#6pd9+sJ+f7Z--HR0)V3OELCB%M}kQAA_pK;n&^3U}{Lv*q5+Ml2sfb17KHRvqQ_J z2G#}#yMYkzz%Y?IJsrE8ue*sJyBwRHc8z*)lTW_)M}9P`G40@D@f9>Mp98<2I)Eyb zigjkeHlS-L6rc(Q(QMYv%91=NC0CvT*Wg&V91IpfwTxForuQMt>AaTEb6SBwZ7N}I z@`4n-0(pe^YP(rBR~mxF6)MHO*g*L7<3XHPoxv6gfLbIdynyd~8HKFQ)^M>{W1oY- zYGhVHNM91YAFZ731{4#RY)loL_g9tyVAV3uXQ_qWj}+F>b6L(nH&tF0u&UV8 z#_rb2%sDIO3HZ_*(-bOr5b^9Al9Y8;CteMZh_2qvvRv;fS(aQ-*q%P9Ea*olju`pbEU|A=$pp zesZ`cL_TWoBmX?nOODW=O%TK=)fUXKR3l)YJ;TFB zt{9m^9-ldk+)|t`;v69pSZNVhH3SEK#sf=!7}q%T669ouPbgf}YC!|4N_A(qjLjn} zFDQ!ZP8x6nE3K+#P!uVPkk8>@EoNXj{lOy?Fxhfd@!DZ&ftUPZYGJB?fypklcm~_W z0wE}KC{&QNs3++&+(;;3GF%II?oaw|Jo74y}jqTRp^JRijA4wzfilN12E zqohFZpF!W%5*ys?ETIo}4l~ zvlWRCz1AYY?x~+dmZ1gcn)Ife9iC=SRnL&zY=( z{UOrX(L;K=`$#X{`ujqpi~b+f9_X^-^8DoVTpV5 zL~1sxY?RCatFbUqEXn%YL{{CW6o1KZfnUAK1j}X1wX0Yq#;SPk-HBrzr1fY=y1&d5CP={F(HMVA&rm=>ZU*RB2YJ z-t1x2crKUA<)?sEvZr~fgUTBJaj1KVofjYIJlVbUa7zH8vO$c+spGazV1i>6(YcUe z+$sTP#o$D13U=6m3^Y^p0?;-cn@rYxelh)dtktJq znriJ{g72I6B(8?6mkYsio&cnq$89Dz(aop;vWIqEE4^AEZo@h(at$@bUam9;OJwHA z5~%K<@`CirO90mowk{yeU1yke8DOo-Mb5fpQW%ibdb!gWteSKI3*5iDul#}3U;2n< zu-ZEaX*m?u1nldT52j=V4OlHR3JMwp??36#Bv+b(C3K9M+13icN)%54NKd~UB%8N| z$mXVy^#530T;?WMU*;xrE_IW!XR3egFC8o+i>MV7nD~GsMx}}EfY-`2@sw~-rI)0q z47&ra_G84gcPnunX_kIgDqJ{%ghv&V@Wh$Y&!Pp^=Y8bc%JlX1z3;N1u0nlhW8I(tzDT-rcD~$1ls!Y$v57zR%*m#&-XYS~4+Pux#DuRNg{tbxB<`=8R^k)AHozyg==>f3u$ z0!z7{wJKH*T+rued+@(E54LKi5fs#JYcaEgtNH7hn)$ zB?9ZlMZILlr(sfDd^TDBn_rTTKixuFj_#7SS2i?|d;k3&Qdp#Y&d4Rd?3dg{HNfh= z@_Q+n!a;SS`m~bBjADnHjBpFbfA`mGPmR6s22Eg5ivwVQ=HFaRF23Z;WGrp4Qhc)M zU9$G6deYo{K=ZM~Bgc{c8~=ll9OLulLqmSO^5;^OMIx{OpnLDXC+>cBe6)+)Salm| zZ_`%o4=&=XPh_hmIv`bFO21K{4yjmdPYsr4A!*s&m(_- zc@4Rd!UaDUk2_o10JJ;4vp}){jc>fA%}wlTBX0jkBy@rCWY`ZTzamvzsOi@G`^eUh z!=(1-KP2D#!JUa4)Tj~U=#gV&>-!&QI&M!dk)WMFcW`q6(A#MY_I|73Wt_okt+uLN z6kKup9Ad&$d7W=Ou_kTZ!muanuKuB;le=--UX{QCYxT;8`T=XDraQiK8@YP!mD=Ml z8nc0`Y1C@nIq?nE-#z|JP;%YiT;QBE#Z+zj#;C#m*T%^@-Z$k1Rcoq2(4V!;;-+DS zYgnZ=6?R&{HT|oXj|zKpZs{MA7%qsdJdICDRthYD7J((x6@zVV(3KdGb=Sn#Rr|8Q z9h8$7%N~3{)4sqheEFrM0agnDg9kz)D=X_23YDICOR45V;kecd z&QE7@1FV)E=A|@i1jp>Ogo|3OZ-qVCB$Qo{&}D=4Ib_)&rqTkI(MAf#flaIAp(1Kp z`%1Vm9OISd`nib3+me^g} z@s9L5R)d@O_#gjF{^d(oQ1@!5;q#J@r$zDllOV~^%<2Qd)dS!M!AC7CKm{8Bma5>G zu&D_uIP`>(HfbVe!BxgaK@Z6B*k3Y6r0xOj#{{UPc zzfFP_w`fYupI_7*H_4z(P+VPEMXtW)O38}t*uG2ZGEkl?WH%vE)BO1X>K?vk_}pK4 zJ4B{U8k{-QS&a{6N0u)K1ycynMsL>Pz+_tF4h8pnXae19c2NNAX;*=Yq=*yEK3#3f2*#AfdxNf9qm0WsMlzxkyUmx0T* zYQ6?@G3n06rMu(>qpXnm;@^gtw_CO3NmylH&Tf8lE4KM$Ea!SnE0ii zkNoPl(gv}i60nxf57-4P`AP1xNlM=IxXaOSh28FHnm#vjoO-)w88~R5S6_35WThZp zfrJ30wT)Cc7*V`&Q)*+a20s9H3OT1~lhj>8s58_laK{=mG466UT%PQanm(A5FS%y% zhL%7B71c=Nfvprw4g=OJHYI=crEaNWz1`%+R=^!CRPnN55T$_ul$i$CK-}f*PGpz6 zL~|pbIMe*|gFY^eLr`EYK{d^})ck=90JWM7PQ#Xovl~m+%h7PTLj9w(el|4i64TEw zqyy-e4$e@0|K5e>!*$1v9$gOr4KYZjX}06x3T5SMo@@`?Gg0$h@BkWIL$$^W0~qhP z!92k3UFcOEGzsSy?*V{Pb%oP+-a<76ufE;9c#wju7v{(IUJF$lty0fMAP=;A8z2cmJ75s)ESpavKu7an=QD;zAC4NBc*Elb5}Wg=YCd@gAN zm%F!9oAvsad73hKsi^eyRG^E-<8tdgAxri_5v4?Yx08bGaguQ4uWUkO=pdFXW~_Z zRe_nBc+Q$D&;AtRkn#uj@F&}ERFA)CO!UNqS*kGT5m>^tE3;H*-jywufQdmfD(*^~ z>8!mc50hkbXbghk)@6~Ipx9V1qt+@k^J|j3$y1OygldSDGgl9qTLb!`{<$VcngReu zDmNd}Ud0YmS>HIJe$|)8k#R9M`m6X8LuV6#UzowuV&iF zVRFvcX#l|5fE9xchKRrb#~q&xUW5TYH|-pN$)%~v9l_%Gz)zbC={RiMrK2%Y|BX{3 zi!i|a7tOm>OQp zVfX1v@SJKT|F?J|S@Okxa&7BT&HEV|3`(De4XoIACrp)qvomC{)GEv)2v!VcWtv8T zi#O3tv=z*k+&_8YaT8oXKf>ii%jNd&h`N}QhsntyqbXn$$nvwsQww&2TBwucOP%cl z7Au*+t%T2>%*(g^^#d4?^iWn$$Sxx!K*q5o2qY=svtXSpuu%IEE(glp*L5_Ml^S_XqsAD^p5DYDxW$eVrd? zGF+|{;i_jA%Fis243McAqRHR**CRCU8b}LvkGVkFtP*r$Lrj&(dQ?p*=bANyKDs*( zAJE+85KoVsHJ1z=OF6ak<_bW+RR4sgsbfo0NR&6I))msH>yuv(%1E~~*(#QN!( z&@f5=pxXdk@Z~}wui6k4rK>1?mb!)mI`X+RJ8ro6ToM8|F@Mvx9h!uOlSDEC*D($5y$^Ne7mTmv3KPe+4IP7U3{1Te`U&0w!3ieLNLw!%Ghs4siMIW_R6 z-0#(U#zfLJUjIav(#j+{X3IqplGpOS1Xv^n?%TZc#lP8QH3&m9{+>U&fD{+yNUyTq z`MixZ2YN_zTaPp0V(EQ=XdZj@DL`r@k<@-uY(Loash1b@77m>sc6$ei$O<$Q*Vr#5 zUUgCi>geZ@b&Pwuq?jvgvoT$E7F5M#AK!cWjWGG0jZROKsAFk)Rq86juzj;<<>e*!wpWR(=aiI`fj&KHZLpXXHMIp! z(N!(d&)`zC{y?>=mm#05mqsK+{vdQT=h&Xo?Qg!(X@~nV>cLInL_p1*Je=Hg!N@2J zrBwjdq8Ij(m-d{n4_qv6QUWDgC+Htr&0x~qS2pdcdF6eDXAhcfM(R`!yQGyKr6K(A zN*kUu@|ebB5>zG)+vg&HN2kjgn5#q|tCGH_Z zAqD^A-Sv+>XqQ_>;o3lAO6|2`|LDcsj5dmK$XzEfUs zfpz-XRV8HBIR4pFfD0fq6)xuTEr< znhI#LMPqSfEXdFmk!t6-GFb$0oi@{w{d}LVm~>9iv0M~& zf4tBCM%R3XsR}Gl@Zxz%6Dw{8QKEPe&KoLFT+O?pu0bwTHd=`SDR-zJlvD50d;Q&) z?q2ugJ35nAGHiA1q3ag_SIOZYUcAq&@9)CjZIx5?4K7ZN9G+6E6lqUkR!Rk`I<@1R zJMY`;!rt8LV*j>l{4COYhPIAfPvcXP)v`jN@~=sdC2aTwBwtX1AO@TalU#r*yMzdWYtvm163G#E$=DcYRWmf>r$hscjnS7 zty-npSU#t~_3&FQW;5dm|hrk zvo*$F9_kWmok#vm-w5)JSyz%v&MPOQeTipSIvhAoUfK2zd2Z8dq@z1=<$AE<7Ricf zvb6tPM`OcRrRtIpwR#~v9pTjaxs~x6bf(8-R-qVr$e#7ezY5UzzVh)a&+Z{M7G-Nt zI$khb4M%=7tJ>BR)UfnDSgOU$DlX9r@VQmD|03+kd0mF~Do&WsL# zM&ZgHK9ppQ7$Id~NjTK!?(MvG*9-skDzUjJT+n`&n+VrJ3Rj)W#$eU38v=l>U@o8` zS5w*dr57-0q;g!N=KlSA^|z(hRP@kut0YUN8hcUeV`P;|NXx@{OYWY$5{m)I;JUN6 zzfL^cH;^D3W#Bz?4DtGW5AS`u;eO%(QMkbKF(s+-%{4pyPu)DVRQe8V2$j+W1lMn2 zs!5UQU%kAbXXKQ(iAtTBCJUx)s7zOvUqZfn%}tW!;-T+6x@>SPMnQm>E0w-EmvRLc z1CT-DB7gs8DKjYbWgTcH{f7<)*h8<0B_Zk@02s8X8WXaG%ih1|OSQIxi-J|l+(6I@ z`lT)5weQK--wlmnLp;E`N@gWZa!3h)t?Nn6__5@+%ImmZJGh4b_T)oR?jXclygGrw z0)x9K_0?%uQw(4NsFYbja0Q9WeOKqk*Bh9tzKB5vF8gZsods+PmycO5pQvLzzw>zD z&iXwtPh-F~aK)tZ{mfc5@;;6PSUB{mJkMclk^_dPKwnrg4WW1K((Ev~EGtaP=r)AY zT?Fg(N&ZM0Ctbp2h00`*MHXNmocMr@pfr1vq8|&A7oJmrZ|{8ZZ}lqfyWF=arPE0y zTkN+XU_$59c>KLXOYXdA%!+{rl+CPF0|QIg(+^z4-eILLhP^poRShvlO_Ao`&{N5A zW?vU68mXz>><=myja&Vu#OaTLT_6yrSGN0#n@t!HGV=Q8#vG!gU=9`=S~V% zK;!pnd&mUDUvO_qT`pI^a<~{+8x%qDLbD4xLFZlb&FWCjkl%*g-m}zx-#>J;WW~}I zGMK4Ja{s7{*t2&JfnsL>E9cy)#4}=Kz}ai3&l0}Lb$5xP0z-rjTod;Nz z6s$q*H!fUIlSLvu=E@QkxG@k5LD6M{9Jr+bRvoigmIc93$r1KuuMB17Umx!?09nt- zDVpLjyUX3%Nn@&=5?C=Ym6U4l+5NFJgv8}>uMY=9^Hce5SU=@rh1+i{$S7bH46qX3 zV8w-tf>j%HL*fZ;)H(`TgN~cMja|$_JEd@^&Y52s%=7(@TCwxueFogcKHpdgGACIx z01C2xFce?8%#w=y;r7-acWv8x4*UKC?0ZV7@`iPK6NiGU0o&WOQjYGhTTKCQdXd4aDqYwDroF9uBub{t^kabI`L!nxm@812~S|@ zgsdjUQ;P@HN(xnD((fV0V)=?bcv^b2X)SJz0~&lut0`!XTKJ5)!myQPweFvn)&50= zG|5ej`;V$z1PFY<=-6-t4T13C5!SSGVl{=b@|xUzr`82#-r8s+vm3|StYV3YCT4N`h>=0K1OgV-5J)7& z-$qU^j7P}nh4f_iP0Nz5wh?6M05Y(2vO5Q_yx~*EdGNF3W_q&WK34O9N(Hi7aypxs zmM$H4xTemz;XC~WqyC`wK~6CkD#pc>lOL;EF=P7-03xZHN6=VxohE z1!`}ynS9D);-3hO)Qy1&N??9)h$&ExkdFu&YQg%w${APy+BOCpTCQXtnE1bcT;=IH zAx}a>)RG-w$&~#zDBDV!+d;&RStd~)jEad4qN6JQ-0Hi&7k0Uq#!gj+kU2_z3RkJ9 zoySykNH9BL3II{kyoTuUUGHx>Yh>Z-us6p|T(0wp+mjQuqf@QY2v(_FC>$c;tUSyt z+R!~LxZ-wK=NnH5u_!0Ij(5{-U19!+5@x}w=+FDj_ zaBp<&pVb8G=ECxx zYd$<0wF10_G9@*SmMcva_T*e7YTresu~k0HfHIY~bcpMe$TVS`oRVX4ne z``fLyUZscxKe;msF1P2x*qDol0FW(rmy@4eRiX*3L2e_paP{AsCjC7?YLQCVWUwfN z%aAH~?hHVxzm*>p0O@nzni|)YG(n5l1VAW+OS>l2EE@z?DhUlpQoMfq1(Ma_9j{pk zm^@?zg>dP((B7`H!EhOCz>ur}H%^ob2m7@Uuo~7KfLhGr&?F@BYgyS+=NxTCXa^1L4vn8ec`lT#4pp zPvokZt@|z;Yn6Mr9FrReS5m?1C8^GE3oe>fX>!O$S|B*+VnhVtN+{pfzm%w0GR=QK zck*y)vr3SWgjml4En>?mp%5;0^`0@YVlZ6VT`h|&N0cD;vcPg;Y98TAELg5Il}2r( z>VmiAaw!W`MXgr_qJnU#Dwta|+vwlkdC{4+xehoNi{d`CUI>@EU|iQA;54M-A3Mas%NaY9I}AYqX@|Eo#U~fwxFYF*T2H4YphcmR5znB?}8^6UJT^ z0fxy9gezJ`>*Or75J`3O1)~iAt-MN2(FadU(~s*^4JJ1buG5d(t$$HiF_c~4cLn=iQoaYP(ijjXHxMrE3wcMmUE>RFe_dc%4J2HaQA<^; ze8WK8C3)NE9wJeceAK;ZPq3>xIdUc=3KFUUV=&aT?x;np-HV3KZsLlWAuSi`vhQFIvgP6GxLL7kpLvJx9y6PVLRC zz~{f}J!8@xVYl}z_TofK41>zRMO za**}Ay>6ql&)DB3dLV$cO*G$pygA^vzxhVzxm6SHqCdU>|A)8>Qu95drWj3bR3lOu z6m!w|N^|<}{89Q`GO#p8z>1ropf2GPHM6CC!oE4hU5$x;xx3-{pSaifNN1lCJhT@q>z3-&e|J^fXPR3^ctGdZ9u z-s&je{c_>a^8S&F$aVzPLd(VT0(v?gBuvM8}xq)z@OB-vw0?a)mDFOy@*J6YVC8S`t`9z15 zQjgtU-qAvye(y7`$KpA1ngZ6SbPrPiY-uJBOTmPOKmkDUAcD9nUb2HDTpNwz$v;tN_GAw(D2@Qb_)65DD(QzXMY~keV z?}i_1)BpqZo{=;`vxsESpvp`b&viWP%{{}4W6Kp9PPbf2z$V>tU%=hlwO9=>7|Gl< z{^CTt@ImE<&XO#23sE*mXqZrV{OMBI!YCfQn<47{ z?OylfJD%?L^4RIIlK|F8UBU*8xza>oPd22ogvDGi*ToHgcuksMCRUqtj#Pg6qh@Iy z4cMnqXk+Hn5Ssdi8KmgTHB+vunNRO?ZP@KSPYD=E5rcun%BW!|>7OlhxjRMf9)^y* zy5t(N_Px(kVbTNGob!vxjTcVPJ-u2~+?8wofX`je*F8;No<8rIZ&ru03vMJX*E|YZ zz5=j1Fv`?w1rV;Za{u~Hg*{n9j{z{;d)0Jlvzbiow567;p1#0FC}?K~^L*z}u>6@i zGO8SEWnURP~EQ>k!)GX5px+2kY^vw)UX~?@hB9+Wl*84 z{ExJJPHp}PCn`4P!exFCE(>C@=7IvwXuMycTZnK8 za|;dmc{R`Mc2vi5g02LF3*i#x79LT1A7(2`=4O54uOCaVwzpaz9+lkLIP&3Yj|i8T zi|p-aOC^p0z!EfETf|yFc`a#-h;SiX{1wU`vQ72kd$hTH;2K`>#D}(Z5dka>*0lng zJHo|3=IZa(ozRG9!Cu;P!glT;Y#M|aLxhXJvRnOe=gQMF#TozxNe;WD>A{lz;04XO z8cb>+T>Qn>no^aK$w47aZ?&5U#|BHPLnWBhK)A#x9QuTJ;|9PUeyhdwY$CXU2D6xG zy$~)DftUM$+S_VFPxJ^1eE~9!aZgH;vVznl1y|4@&B~3xIvB{gKOj@67Kd+c88Dx+eziIkNa?=GPQ(7DWtkcVTS|#hqsh_O^o4kq6 zQl?z!OQA(55kqtriiH0e0!Dq+WkVfS+<4<~ca9WJe2nQRR$h~=QB5ejexrTr^2 zWqmBPTo${9o~~A*2L+1*uAJ=70bFV;KsE<@%&G!`xC`MzxWvQ7V<{oMuAapckV4$G z0-HW2G`MNcvyaA2Xt;YjGwD0WxC`Mj&wA-8gGvMWaEfb$%RIPxIy3EiN9%=faaR*s zu7S7Z3I8^&B{xezV^3g!<-%Y|_l!X-l9_AgXxlU)71nfTqK^+LG#Y4^G(-%*bDc!2kayisf%Crl1 zh5FwMd$KQ5vtG&t$c>5u)}#h7jdA4046%;d-0c8jfc<^!-vVq^0^+U;tTRNo_`wzI z{e;3LBJOHR0$rm5BE4EC04~{jAzbJd@`9`X9kusUjk_p30fDF8AZWky5CMdXpQ-LR zv_nA5ayDr1!g%B=og2`%J{oThoTQ0u|r@l_mek%|Igo~SK%(c~N=S-~^ zxP~HJPjn3tE}n5$@1Th&QkZ4z4u_uiY61H!!BQxMi=X8Rhg4&v z6ymNXlU&0lLB~Stg>Z3-x#G-Wm_o)dVB+bEuwGaSg>dmvcB@}?5{ncDO_~Xph`6f? zQ9!u3X#1OQY*)P*28W)gl`IK#4Tbc1(YOl%L%2A_U7`Lij&7mZ64B>{DS3p8SKt*o z7W%^)4vbOI2vSf=z#2zyo4$Hs+WE&}L4Tx3-!xi@A>{GoV z9f!G$NRE5laJYm-MkANSu?`y(SPMD618V{Qheo_SfrZg6SYZWLWicT6nikV*l&30K zoyk@$bK!D(cuiK=qyZ>sbPGtNv$ljs+{3Iz;LiFzd|{p1waNM=ygLStesTZzc?g_SE|fjwS=C5~VLJ^_M(plZSEL-#ee1-Z#D~-Li=YSDFZ_Dme5{Sz)=9 zTAof84B?8sAr4-`l_y*RQ}S9YSPjCJj&M16Aw1r$p+(k9wqRulSBA@?r@JYxp-Cxu zHAzVhge$|<-V;n)*U-e2yqd~br3=D^N>A4is^l%yQZ|afkxGlIcveOOK6(XvOF0jp z>JX0qSGVTNkG=3_+QB8ehP+%lPF3=$2;9R;gv)%OYDi=#N21`jLha4VE}BW=!37=3 zY76A4sX5R?$T)l58>rUc1=pti?N(n-1=MUhaa@?&fl!q|(I@>8Qd!H1fKFUJB~Z<6 zJ+`|?JS`1epAD{Y0mfYBK(&uqEL0ppts&20C^oQOHBOAZ+ztV&mPCef*bXW?rQ$_d zFAGYc)KrCV@rA04Rh*kTK1z?;dirg7?|4?p+rV-;(lvD37_1s*t%UT{56$uLiAe%I z_JnI3Ke!;~var8PR+-ZVSGsKq7Q|LUd+5Dx7q^CIM?p#+rU2lj9Y?zCa9I@ymvN|I z{)u`sVynEoT&_>{bhlnMaSh85F5{{wqbGA_<+R{2^PvhaIx8GO>qYgA3s5E zTe^a@cb*cGG_V6)YqlRnurQ%9u#8TK$0tI-0{!gD5?i=R?cL%>MDt1jAzWew zV40Ry&CAUdvfp1{JBj;L(ncj3aNZRk2GxXcCAL~Z#$YAVlt~k~?hiU=U%&kV+kgdv za}nA2!9v?W0fZ|)ST)3gIn~DwA4+b&?s9GC7$;K*Pi|4d!k!2+miuuY&iX|>Z%*o9!B93n@#gdn#7uxb!26lc{r4J_`K zizP2MU|T?ORw;$c@3fP4a|8>rf%Vu9P@L7^M6h_fg;06n!?u9ptR+r8aV~H%cM#(& z6mKnas@38ab5Xb;&Z@w+fZ`~Cs@#c*3~rW-SuF$$#aq=*28)+lxB%M$inA6{u$r8H z5h=NaEJN6eZ2`qm(5JO99WEqQ%TTT@{hS15iZB6QMN1$3Is!tQccBg z#9Qb%t;Ad40Jo62hOGoUlpPamIc?V3OtxI0I=qdJ(Gt7`&Vmcw3}7Y{;$b7$vghv;kZ=?hR$CC98psXO0cHp6%18a=cX*g0&dGag4dF zgsnmm-1|uK5zY|U`&n?`m@JlIz-=JrkDN}+dC*Y~f-8|5Nh0$*fc&Xs$SeR1!9r!6 zJG#vTSFjfEHY!sg6P3B#r;!LG;^68q}OXMx%MD8m$aQu0-ba^oofa%)0y;-P954mdQGQe zF4H_N=@pZWYPsN3IL9&SVO8zx@Tkz=6wq=F)_t{o}Qk8nd#Z6 zzcm>2kZ;Lj-{%^0AU8LMd^VHs4XJVgX#S6B3OpC3*UK5SA>#w2zGGr4hwv6a3rnQfE}P@^(rVSv9a%E zkk>i?Kf2<;bHQ6fGFtBQ`CxEh1iHK30rQ<{L6=ZcvI;6H?dZXV0FQDlZw=(-nPoi(Oi5dsud^GzmjJ&(F8I1kLFX_2+qRo& z%eTe&^>CS5Sd!dXq-cKvoxYy5wNnw`r9#IGz3|o5v{&2WMe%VvY0>JGof8JL*cKA% z6TI1XDna8L#6rh34KGwFRX0%`JIkEX{iF4}dbOPmZY9EZWDGo)r;94VVz0h%;i?qB zrU=Q-&Q8m5Fu27IAOZeK&f2CIJQrvj6boI#MQK(fwi8;}`m}=Qd`!KXpquBWS0em_ zTuD6j;Dbil3e}|PrumuZ9YW8*kt#F1w%GzzCVj-;SLf)I4qtMlpXe1G6%)*10H<{G zj?iDLwZQKc=fF0L0sgKgGUYQ&j%Q5svCbh8(?0@{v&++i`$F?v^;6wXY9e15*t z6r$xNM7zVaew}VEW9N%?4w0#zgHuRRVvq>EP>f$^(~~Rhij3Z~7JVTm95p>$N^o~Biq_3(vwzl)s{5DhvnuEJ9A zT5Rlltni@~6=U)Vt7CHdctI17C)bw7+IvD8Kfj#PZOhM!`kSt)Wiwyw^~idB92P!Z zb)V?^e_u&O;60YOMV7f=5(@NmBDK8^V&799kZV`l6pWb7mui;30v2Em?8(vDP2lagDCr#w*s2g{Z5`9KWN)8m%qxEBfV zc3ZjR{})~^<^yMug&jx2;JLD_Lnw;x?6?JL5p#?}4r@+l7X$C_(R*QXGWj4C%{%&Q zxdhF=X?rukGl|#ZL8#Cb6o9A`4?NwO%K} zw>yObItkS!g_!$M4sv8?<@5JPNq*na;YvDsPX;o50dZGLH-Wnr3vo@FAga&`Gcr?@BpKSXh^oaQqhNOJE z3bj3urcDg7{uj+X4$h#Q>h}kIyQT-=MiN0C0>_G6u<*bUesCS(Z?DH50J;w*NTxI@ z$Uwx+8p!g5Sn&IWB6&4xJ1FK{eg>jmIDvGN)`FW(Tu%^el$xtsgxZ`L*kYV!H!-POu!)ZaJv?;`cM1Du+~5*fDt5aE z#b`Y)Ak`wI@!u0XSnq(UfS;MP!0)E=V0uy7NHqTb>uD3aS@jF>SpGQd$c^p>Fpz6m zT@zy7V?hsgE#c7rdd(tSJ$+g9Ibz`qHDBNsZB*tXLcv{JGw*i(=-TATXt>*R2lUj%NM%@M;#AoPzuNw>!nG6$#dMz9frU8*L`fa*@af^_`(s z<8hlFe&oFgt}nh!D2>FGLBynX@l3toRB4Y2YVz-m+F0|PNcz1th2>O|Q>^x4t{yH}D0=bASO7Zu|CcS3u)5_l=>E1tw(}Sq5M}P`A~c?>&Bqnrys`&l z-XF6?e5Y&u9q7)V0%m*|mMlfESocF%tiDIq;|}+Y!TQZs;@?BVqmPGX;SFNiQRC6~ zKeGxTr>$9ZswPEHDY3pHFg*)nxJF%+FXKuAD>|gr#G}Rs3v;^-^dJ2P3!VK;UiBaR z3+S4EBm40iKEDmO#%2Si{qJu~LVcItLVmy40MAXfgQw|?>{GcyQ#-+_;CrG)^>>Te zd5TtgOj^S_0@o82jI0}-y+84bKc%+7I@N2Q5p!4RSC;Zj~+23xjm3TS>RuE& z{xE9{p1spbfS-l-E7y}A=@Z=!!WmZ~4!{|t1a`a>m)I0H%?it~(PVMUZq~=MDc-v$ z1K%&L-ITI(Ip1^{%1Mfsi6N}**Tk&vFjC4V7prU3PWDfj{Ao#+h z^0LaxQg(P&2_;+vZ(f*&DSc$+>_)B$p4{YwJ>wqOIPHbJg@uHVgMlK}1p=QrSHi{- zK{Akyg(NR1Rg#K8(APV+Z&u93JfiE3`}cDeE7ATk_BC8eiAAUpv4W+(=^gfU%ht_c zDX;`O1D`pB!0*q@oCSPPgOJ7tgHNa=hl2vRMynF!LAwzueTn7gM{jq*TkTii=Uvy? zP7qUO{hj0e#y8>q2X-x+|M5GDQ2?J$(4sjL_VK}j5q@Q*T@e@kgMtyT%qD)LRb)#xH*Q*&?Be{gNRh<^FW82_I@vGj|GiVRhIIiiJ8IaN zAeMyta#nIo#Lw?m6?i77fP*Vj)+M_`ytPLO`Mqbv1HT$JL3@66{00~whBX9qUzYgs zd;C9G>&LplQgH<=-t$<%67XW27=)iWCeyY?Ua;U(GVa~EHGX_1_d$7opK173n-%^v zZw}6Ndek9 zA<)f=)%ajje@;&LX!=tvz1`R0PS?9|tK&S(Oh@L;sBMqcmcdVqT~IX;eW`c*ogUb? z{Q>yP%C(ReXMv2DEB&))e>mLFb^@#k#FI_=OWN@9kvYDd?EtA7!tHbS!M*lhLP1s= zyz(Prc1KRI-$fILy%-MFT43{q{{*J@M#SGIXT0#MjvLUoDt18%{r;a-ZD#8M|75R( zNxdOv^so2L!Zv;8o+B(`k))^{M;8NG!(Bs(%o40HZ=_LQvJ_)xg?<3Kf518TG045786|MC*)Ue-IPs*gEXkA`# z7G(@PR#dC2<1WI`WJpKv!_}H_6$d$&DKB5+hdoYctzF}Xf4`F<+hy|IWjNow2;L)HkK-Abf=n{k~kL z-()F;0s@|g9xT`)_C2J7dEX$MviuSBm+XkP1GWP!kyoa(+20A06g2U>`aXjVj{n4+W#=Hpao>{myn+qQE8kn+G#075cy#fzs55xAYH5tjsW%P{_h}+RxDq9fzbfZ?<|EszN;9@3v$>=k-xk$ z1h1TSMeJ|w#rNT-k8THJt}##u!oe2Tlz*1bFk^!8*#%e&6OhX+!Uk(Llvk94IZqim zI}VpW^zgkxKieA)UY6>e^eWpJTk%UY@<;f2^S_42zB2|-z4HWgJC<+u-MZQgC%(Ut z1s*O4{*4QvDWI z(f${(>$OKhpg&$?ga3ZEHY#+K=XXVdUCJ@RosE0ocyB&@{N?4Sg&`$Nz9moSC#;zZ zZ{=??dD0mC;Y3bcbfMejmgN86`J@XL?hl2InjSYL4C@f=lxuEMCeF+I4QzrlUtfYP zq^)+Zv%tC0qdi5MFcvLc_fu zUv~$9VIYT^j;~UMnTW`q96OkfsRmsV?Ls+X1i?86E@l-5G;k)3UGr zgBoj0pB^q(2c{%hgGJK0jJdgL)^^|@Vh|1dIVE0{|2gdC@bI1;Y!Jw=_tJW6D8xKJ zeV6#jAlC-OPlm)}n7=#;584(KtnsUae$p6lsWJXouhfe}jmIDmH}wB+dWmmO@NTXU zjVES)%j|6!>7Iu^UltqPBWw)#a)-Ow6|Z(bRHN7w56iRyiywt3wIPZraFKi-eZ3PD zF6jIJ^}CDkcIyOu&@l<_NoiHU4{t0Nj&!%%;JbCZz^eD}qibRTn4wR>m~VvAjmppG zMb3GQtMR;_S3G#Or)TTn1!n=fA^f+R`{02Jizw*)z3gl!S{NhHm)%5FzMkxSof?{e z)pQZ_9a~VT106lakB);1<;nGV@Uxxy(A_@_3vp)3V#zkRT#M#>x5EZ%6_L~1e-Zpa z7bEg>DIup%RI(Q5U|?VXMn^{@Isig{>aErgZATxzxx84l&_%9N(ijpe#rYv>eFLai zyk0N6>2x|U8jWzVe+K^MOfTFX4;{^Ww5otzx>SwOMNVmN3^wzum5cRDZkQGyDOCt7 zOt1qq^-ROr9xvQoWPoRi##OaiCtur;upZF?0=`iccn&^l{6Wx&;QT;b=>t0fE+V9~ z$E~obti#UUtSVtJ%SE6^M5#jH9h}x{QqTfmC%_KDcZy7Dcm+3rmB8rb5d!{oN#Hs7 zxNyvVpc1eO{PLlAS1SKrZq3F8rf{txoTesX4qYt4ahG+tl4Zm(MEvLD6ns$KAm9IR z-|ztubPE&Q!b2mT<%JipbHuxQmG{#IgB~nozc}+pLOVmg{5sl}yew4PUDn!siiw4h`jaO-#Dqb4Hi#17^`XG~^ zktx_zLVr+b zi?+EU8uzn7exPp@> zwGp=NEs%Sryokij+u0vJ%NumU}A0GL0O8H zLj-!tQe-AwSHazxgMOb5?8Fxr_-pSey?2pG_f?S&a2WhmK5F`-n0D~j-cvsQ!DQm< zxI1)E`|BucRz^9~-k7cfGMT(us{O3sAj_-i&~n9q5Ayx>8qE2dIJ2ISbqE-xv;t@T z>opMkxj5jBnLG(bX{|y!0Q&uxR$vEkaVGtQ5>AFuYAbOT;HcGV-LKc{3x|h?)e5|c z1Ky;hlVX(KYD-H?X#Nko-ELJZ!4{<5Xv&X^o$j1&F{q#s*+qBlcKaa$AK(6%a{~?q zrep~FRHps+O3`@q`FQuvUWQ?s!dwA%fIVD2AQLGeo)4}T*_f&5d?kZNz_=XC5d!}8 zI5B~fa|L&EuXQq?N(;B)BPN@a=CfCvsVA^q1U?99G^cSbQECKyToBw53ZlddE)Hri zXf)q0rTXa=FH3$oMq5HY(a|QLqS)Y$)A%~t8dT${XaKx3DEOkHA@G%abWd?NS?bH{(WILPHwQ4bITOPJ`Nhn5)=1X=`W; z{7u|wOK1x^U!OlrTSHsm8#wUvHY*K5cW}@fXlrN-{4pBTX%BiK**s)BOIt&m+FnOn zLwmlRYP-h3pQOHByLmf}HfRYddgetCode(), ''); } - return ['$title' => $title, '$description' => $message]; + return ['$title' => $title, '$message' => $message, '$back' => L10n::t('Go back')]; } /** * Displays a bare message page with no theming at all. * * @param \Friendica\Network\HTTPException $e - * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws \Exception */ public static function rawContent(\Friendica\Network\HTTPException $e) { @@ -78,7 +78,7 @@ class HTTPException * * @param \Friendica\Network\HTTPException $e * @return string - * @throws \Friendica\Network\HTTPException\InternalServerErrorException + * @throws \Exception */ public static function content(\Friendica\Network\HTTPException $e) { diff --git a/view/global.css b/view/global.css index b48fa1a24..b729f1fa8 100644 --- a/view/global.css +++ b/view/global.css @@ -5,7 +5,7 @@ details > summary { cursor: pointer; } -/* General designing elements */ +/* General design elements */ .btn { outline: none; -moz-box-shadow: inset 0px 1px 0px 0px #ffffff; @@ -87,7 +87,6 @@ span.connector { .wall-item-container .wall-item-content .type-link img.attachment-image, .type-link img.attachment-image, .type-video img.attachment-image { - /* max-width: 640px; */ max-width: 100%; max-height: initial; float: initial; @@ -621,3 +620,22 @@ span.emoji.mastodon img { height: 1.2em; vertical-align: middle; } + +/* Exception page */ + +#exception { + overflow: hidden; + background-image: url('../images/friendica-404_svg_hare-bottom-light-inside.png'); + background-position: 50px bottom; + background-repeat: no-repeat; +} + +#exception .hare { + float: right; +} + +@media screen and (max-width: 600px) { + #exception .hare { + display: none; + } +} \ No newline at end of file diff --git a/view/templates/exception.tpl b/view/templates/exception.tpl index 02b7648e3..6c2616890 100644 --- a/view/templates/exception.tpl +++ b/view/templates/exception.tpl @@ -1,4 +1,6 @@
            +

            {{$title}}

            {{$message}}

            +

            diff --git a/view/theme/frio/css/style.css b/view/theme/frio/css/style.css index e6b42e52e..4a7262835 100644 --- a/view/theme/frio/css/style.css +++ b/view/theme/frio/css/style.css @@ -105,6 +105,9 @@ blockquote { * mobile aside */ @media screen and (max-width: 990px) { + body { + padding-top: 105px; + } aside{ position: fixed!important; top: 0!important; @@ -616,6 +619,10 @@ nav.navbar a, nav.navbar .btn-link { display: flex; } +#friendica-logo-mask { + display: block; +} + /* Notification Menu */ #topbar-first #nav-notifications-menu { From 9123361d61258a5a62bd5a2b17964f5b70eddaf1 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 10:00:28 +0200 Subject: [PATCH 371/653] added feedback --- src/Model/User.php | 2 +- src/Module/Friendica.php | 2 +- view/templates/feedtest.tpl | 50 ++++++++++----------- view/templates/friendica.tpl | 84 ++++++++++++++++++------------------ 4 files changed, 71 insertions(+), 67 deletions(-) diff --git a/src/Model/User.php b/src/Model/User.php index 8945faeae..64253946f 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -130,7 +130,7 @@ class User } /** - * Get a user based on it's email + * Get a user based on its email * * @param string $email * @param array $fields diff --git a/src/Module/Friendica.php b/src/Module/Friendica.php index 3901a0bc7..ae8ea1496 100644 --- a/src/Module/Friendica.php +++ b/src/Module/Friendica.php @@ -76,7 +76,7 @@ class Friendica extends BaseModule '' . FRIENDICA_VERSION . '', $app->getBaseURL(), '' . DB_UPDATE_VERSION . '', - '' . $config->get("system", "post_update_version") . ''), + '' . $config->get('system', 'post_update_version') . ''), 'friendica' => L10n::t('Please visit Friendi.ca to learn more about the Friendica project.'), 'bugs' => L10n::t('Bug reports and issues: please visit') . ' ' . '' . L10n::t('the bugtracker at github') . '', 'info' => L10n::t('Suggestions, praise, etc. - please email "info" at "friendi - dot - ca'), diff --git a/view/templates/feedtest.tpl b/view/templates/feedtest.tpl index 2147198f1..f1edf44a9 100644 --- a/view/templates/feedtest.tpl +++ b/view/templates/feedtest.tpl @@ -1,30 +1,32 @@ -

            Feed Test

            - -
            -
            - {{include file="field_input.tpl" field=$url}} +
            +

            Feed Test

            + +
            +
            + {{include file="field_input.tpl" field=$url}} +
            +

            -

            -
            - + -{{if $result}} -
            -
            -
            -

            Output Items

            + {{if $result}} +
            +
            +
            +

            Output Items

            +
            +
            +
            {{$result.output}}
            +
            -
            -
            {{$result.output}}
            -
            -
            -
            -
            -

            Input Feed XML

            -
            -
            - {{$result.input}} +
            +
            +

            Input Feed XML

            +
            +
            + {{$result.input}} +
            + {{/if}}
            -{{/if}} \ No newline at end of file diff --git a/view/templates/friendica.tpl b/view/templates/friendica.tpl index 3beabda36..f5e1830ca 100644 --- a/view/templates/friendica.tpl +++ b/view/templates/friendica.tpl @@ -1,45 +1,47 @@ -

            Friendica

            -
            -

            {{$about nofilter}}

            -
            -

            {{$friendica nofilter}}

            -
            -

            {{$bugs nofilter}}

            -
            -

            {{$info nofilter}}

            -
            - -

            {{$visible_addons.title nofilter}}

            -{{if $visible_addons.list}} -
            {{$visible_addons.list nofilter}}
            -{{/if}} - -{{if $tos}} -

            {{$tos nofilter}}

            -{{/if}} - -{{if $block_list}} -
            -

            {{$block_list.title nofilter}}

            +
            +

            Friendica

            +
            +

            {{$about nofilter}}

            +
            +

            {{$friendica nofilter}}

            +
            +

            {{$bugs nofilter}}

            +
            +

            {{$info nofilter}}


            - - - - - - - - - {{foreach $block_list.list as $blocked}} - - - - - {{/foreach}} - -
            {{$block_list.header[0] nofilter}}{{$block_list.header[1] nofilter}}
            {{$blocked.domain nofilter}}{{$blocked.reason nofilter}}
            -
            -{{/if}} +

            {{$visible_addons.title nofilter}}

            + {{if $visible_addons.list}} +
            {{$visible_addons.list nofilter}}
            + {{/if}} + + {{if $tos}} +

            {{$tos nofilter}}

            + {{/if}} + + {{if $block_list}} +
            +

            {{$block_list.title nofilter}}

            +
            + + + + + + + + + {{foreach $block_list.list as $blocked}} + + + + + {{/foreach}} + +
            {{$block_list.header[0] nofilter}}{{$block_list.header[1] nofilter}}
            {{$blocked.domain nofilter}}{{$blocked.reason nofilter}}
            +
            + + {{/if}} {{$hooked nofilter}} +
            \ No newline at end of file From a052b098fc9daa7380cc4c660d46187662f8ec65 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 10:30:05 +0200 Subject: [PATCH 372/653] Move mod/filerm to src/Module/FilerM --- mod/filerm.php | 40 ---------------- src/App/Router.php | 3 +- src/Module/Filer/RemoveTag.php | 51 +++++++++++++++++++++ src/Module/{Filer.php => Filer/SaveTag.php} | 4 +- 4 files changed, 55 insertions(+), 43 deletions(-) delete mode 100644 mod/filerm.php create mode 100644 src/Module/Filer/RemoveTag.php rename src/Module/{Filer.php => Filer/SaveTag.php} (95%) diff --git a/mod/filerm.php b/mod/filerm.php deleted file mode 100644 index 9013dd62b..000000000 --- a/mod/filerm.php +++ /dev/null @@ -1,40 +0,0 @@ -argc > 1) ? intval($a->argv[1]) : 0); - - Logger::log('filerm: tag ' . $term . ' item ' . $item_id . ' category ' . ($category ? 'true' : 'false')); - - if ($item_id && strlen($term)) { - if (FileTag::unsaveFile(local_user(), $item_id, $term, $category)) { - info('Item removed'); - } - } - else { - info('Item was not deleted'); - } - - $a->internalRedirect('/network?f=&file=' . rawurlencode($term)); - exit(); -} diff --git a/src/App/Router.php b/src/App/Router.php index b94c0bb58..48d63224e 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -109,7 +109,8 @@ class Router $collector->addRoute(['GET'], '/{guid}/status_message', Module\Diaspora\Fetch::class); $collector->addRoute(['GET'], '/{guid}/reshare', Module\Diaspora\Fetch::class); }); - $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); + $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer\SaveTag::class); + $this->routeCollector->addRoute(['GET'], '/filerm/{id:\d+}', Module\Filer\RemoveTag::class); $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); $this->routeCollector->addRoute(['GET'], '/following/{owner}', Module\Following::class); $this->routeCollector->addGroup('/group', function (RouteCollector $collector) { diff --git a/src/Module/Filer/RemoveTag.php b/src/Module/Filer/RemoveTag.php new file mode 100644 index 000000000..bddaaf9dc --- /dev/null +++ b/src/Module/Filer/RemoveTag.php @@ -0,0 +1,51 @@ +getLogger(); + + $item_id = (($app->argc > 1) ? intval($app->argv[1]) : 0); + + $term = XML::unescape(trim(defaults($_GET, 'term', ''))); + $cat = XML::unescape(trim(defaults($_GET, 'cat', ''))); + + $category = (($cat) ? true : false); + + if ($category) { + $term = $cat; + } + + $logger->info('Filer - Remove Tag', [ + 'term' => $term, + 'item' => $item_id, + 'category' => ($category ? 'true' : 'false') + ]); + + if ($item_id && strlen($term)) { + if (FileTag::unsaveFile(local_user(), $item_id, $term, $category)) { + info('Item removed'); + } + } else { + info('Item was not deleted'); + } + + $app->internalRedirect('/network?f=&file=' . rawurlencode($term)); + } +} diff --git a/src/Module/Filer.php b/src/Module/Filer/SaveTag.php similarity index 95% rename from src/Module/Filer.php rename to src/Module/Filer/SaveTag.php index da59084da..f5d611519 100644 --- a/src/Module/Filer.php +++ b/src/Module/Filer/SaveTag.php @@ -1,6 +1,6 @@ Date: Sat, 4 May 2019 13:42:26 +0200 Subject: [PATCH 373/653] Move mod/maintenance to src/Module/Maintenance --- mod/maintenance.php | 29 ----------------------------- src/App.php | 8 ++++---- src/App/Router.php | 1 + src/Core/System.php | 3 +++ src/Module/Maintenance.php | 37 +++++++++++++++++++++++++++++++++++++ 5 files changed, 45 insertions(+), 33 deletions(-) delete mode 100644 mod/maintenance.php create mode 100644 src/Module/Maintenance.php diff --git a/mod/maintenance.php b/mod/maintenance.php deleted file mode 100644 index 8e0197b86..000000000 --- a/mod/maintenance.php +++ /dev/null @@ -1,29 +0,0 @@ - L10n::t('System down for maintenance'), - '$reason' => $reason - ]); -} diff --git a/src/App.php b/src/App.php index 017661c4c..32e9fa876 100644 --- a/src/App.php +++ b/src/App.php @@ -1077,10 +1077,10 @@ class App // in install mode, any url loads install module // but we need "view" module for stylesheet - if ($this->getMode()->isInstall() && $this->module != 'view') { - $this->module = 'install'; - } elseif (!$this->getMode()->has(App\Mode::MAINTENANCEDISABLED) && $this->module != 'view') { - $this->module = 'maintenance'; + if ($this->getMode()->isInstall() && $this->module !== 'install') { + $this->internalRedirect('install'); + } elseif (!$this->getMode()->has(App\Mode::MAINTENANCEDISABLED) && $this->module !== 'maintenance') { + $this->internalRedirect('maintenance'); } else { $this->checkURL(); Core\Update::check($this->getBasePath(), false, $this->getMode()); diff --git a/src/App/Router.php b/src/App/Router.php index b94c0bb58..ac701a078 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -138,6 +138,7 @@ class Router $this->routeCollector->addRoute(['GET', 'POST'], '/login', Module\Login::class); $this->routeCollector->addRoute(['GET', 'POST'], '/logout', Module\Logout::class); $this->routeCollector->addRoute(['GET'], '/magic', Module\Magic::class); + $this->routeCollector->addRoute(['GET'], '/maintenance', Module\Maintenance::class); $this->routeCollector->addRoute(['GET'], '/manifest', Module\Manifest::class); $this->routeCollector->addRoute(['GET'], '/nodeinfo/1.0', Module\NodeInfo::class); $this->routeCollector->addRoute(['GET'], '/nogroup', Module\Group::class); diff --git a/src/Core/System.php b/src/Core/System.php index 31934af5a..42587577d 100644 --- a/src/Core/System.php +++ b/src/Core/System.php @@ -242,6 +242,9 @@ class System extends BaseObject case 301: header('HTTP/1.1 301 Moved Permanently'); break; + case 307: + header('HTTP/1.1 307 Temporary Redirect'); + break; } header("Location: $url"); diff --git a/src/Module/Maintenance.php b/src/Module/Maintenance.php new file mode 100644 index 000000000..e7dc5a075 --- /dev/null +++ b/src/Module/Maintenance.php @@ -0,0 +1,37 @@ +getConfig(); + + $reason = $config->get('system', 'maintenance_reason'); + + if ((substr(Strings::normaliseLink($reason), 0, 7) === 'http://') || + (substr(Strings::normaliseLink($reason), 0, 8) === 'https://')) { + System::externalRedirect($reason, 307); + } + + header('HTTP/1.1 503 Service Temporarily Unavailable'); + header('Status: 503 Service Temporarily Unavailable'); + header('Retry-After: 600'); + + return Renderer::replaceMacros(Renderer::getMarkupTemplate('maintenance.tpl'), [ + '$sysdown' => L10n::t('System down for maintenance'), + '$reason' => $reason + ]); + } +} From 9fb111bca2cc7ab0817d4ddcb294faa9c144c650 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sat, 4 May 2019 16:22:47 +0200 Subject: [PATCH 374/653] Rename ServiceUnavailableException & alter maintenance --- src/App.php | 2 +- src/Module/Maintenance.php | 13 ++++--------- ...xception.php => ServiceUnavailableException.php} | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) rename src/Network/HTTPException/{ServiceUnavaiableException.php => ServiceUnavailableException.php} (67%) diff --git a/src/App.php b/src/App.php index 32e9fa876..0f0c0537e 100644 --- a/src/App.php +++ b/src/App.php @@ -988,7 +988,7 @@ class App header('Refresh: 120; url=' . $this->getBaseURL() . "/" . $this->query_string); Module\Special\HTTPException::rawContent( - new HTTPException\ServiceUnavaiableException('The node is currently overloaded. Please try again later.') + new HTTPException\ServiceUnavailableException('The node is currently overloaded. Please try again later.') ); } diff --git a/src/Module/Maintenance.php b/src/Module/Maintenance.php index e7dc5a075..24140bb35 100644 --- a/src/Module/Maintenance.php +++ b/src/Module/Maintenance.php @@ -4,8 +4,8 @@ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Core\L10n; -use Friendica\Core\Renderer; use Friendica\Core\System; +use Friendica\Network\HTTPException; use Friendica\Util\Strings; /** @@ -25,13 +25,8 @@ class Maintenance extends BaseModule System::externalRedirect($reason, 307); } - header('HTTP/1.1 503 Service Temporarily Unavailable'); - header('Status: 503 Service Temporarily Unavailable'); - header('Retry-After: 600'); - - return Renderer::replaceMacros(Renderer::getMarkupTemplate('maintenance.tpl'), [ - '$sysdown' => L10n::t('System down for maintenance'), - '$reason' => $reason - ]); + $exception = new HTTPException\ServiceUnavailableException($reason); + $exception->httpdesc = L10n::t('System down for maintenance'); + throw $exception; } } diff --git a/src/Network/HTTPException/ServiceUnavaiableException.php b/src/Network/HTTPException/ServiceUnavailableException.php similarity index 67% rename from src/Network/HTTPException/ServiceUnavaiableException.php rename to src/Network/HTTPException/ServiceUnavailableException.php index 6c0e6595d..257b8c858 100644 --- a/src/Network/HTTPException/ServiceUnavaiableException.php +++ b/src/Network/HTTPException/ServiceUnavailableException.php @@ -4,7 +4,7 @@ namespace Friendica\Network\HTTPException; use Friendica\Network\HTTPException; -class ServiceUnavaiableException extends HTTPException +class ServiceUnavailableException extends HTTPException { protected $code = 503; } From 1a79a741f090fc7aefdec734d1bf8bc3a58f0672 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 10:09:08 +0200 Subject: [PATCH 375/653] include feedback --- src/Module/ReallySimpleDiscovery.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Module/ReallySimpleDiscovery.php b/src/Module/ReallySimpleDiscovery.php index 388a652ae..4c14d3c83 100644 --- a/src/Module/ReallySimpleDiscovery.php +++ b/src/Module/ReallySimpleDiscovery.php @@ -13,9 +13,9 @@ class ReallySimpleDiscovery extends BaseModule { public static function rawContent() { - header ("Content-Type: text/xml"); + header ('Content-Type: text/xml'); $tpl = Renderer::getMarkupTemplate('rsd.tpl'); - echo Renderer::replaceMacros($tpl, []); + echo Renderer::replaceMacros($tpl); exit(); } } From dc9c9040e5eec735ef20838afa8ccd64dc106b2c Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 10:47:08 +0200 Subject: [PATCH 376/653] Bugfixing Home --- src/Module/Home.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Module/Home.php b/src/Module/Home.php index adcdb02a6..673701c28 100644 --- a/src/Module/Home.php +++ b/src/Module/Home.php @@ -41,8 +41,8 @@ class Home extends BaseModule $customHome = ''; $defaultHeader = ($config->get('config', 'sitename') ? L10n::t('Welcome to %s', $config->get('config', 'sitename')) : ''); - $homeFilePath = $app->getBaseURL() . '/home.html'; - $cssFilePath = $app->getBaseURL() . '/home.css'; + $homeFilePath = $app->getBasePath() . '/home.html'; + $cssFilePath = $app->getBasePath() . '/home.css'; if (file_exists($homeFilePath)) { $customHome = $homeFilePath; From 2365193691123b88d5401416f0c98c5d880c4305 Mon Sep 17 00:00:00 2001 From: Michael Vogel Date: Sun, 5 May 2019 11:17:45 +0200 Subject: [PATCH 377/653] AP: Support of request messages --- src/Model/Contact.php | 4 ++-- src/Protocol/ActivityPub/Processor.php | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 5d62383dc..059a65e57 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2085,7 +2085,7 @@ class Contact extends BaseObject return $contact; } - public static function addRelationship($importer, $contact, $datarray, $item = '', $sharing = false) { + public static function addRelationship($importer, $contact, $datarray, $item = '', $sharing = false, $note = '') { // Should always be set if (empty($datarray['author-id'])) { return; @@ -2163,7 +2163,7 @@ class Contact extends BaseObject if (is_array($contact_record)) { DBA::insert('intro', ['uid' => $importer['uid'], 'contact-id' => $contact_record['id'], - 'blocked' => false, 'knowyou' => false, + 'blocked' => false, 'knowyou' => false, 'note' => $note, 'hash' => $hash, 'datetime' => DateTimeFormat::utcNow()]); } diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 589204870..15ec610e5 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -463,10 +463,12 @@ class Processor $item = ['author-id' => Contact::getIdForURL($activity['actor']), 'author-link' => $activity['actor']]; + $note = Strings::escapeTags(trim(defaults($activity, 'content', ''))); + // Ensure that the contact has got the right network type self::switchContact($item['author-id']); - Contact::addRelationship($owner, $contact, $item); + Contact::addRelationship($owner, $contact, $item, '', false, $note); $cid = Contact::getIdForURL($activity['actor'], $uid); if (empty($cid)) { return; From 0efab157c44faf54a6332e5215badfe952852a0a Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 10:36:51 +0000 Subject: [PATCH 378/653] Reverted storing the protocol at all the time --- src/Model/Contact.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 059a65e57..3d0b9abfa 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1344,7 +1344,6 @@ class Contact extends BaseObject 'location' => defaults($data, 'location', ''), 'about' => defaults($data, 'about', ''), 'network' => $data['network'], - 'protocol' => self::getProtocol($data['url'], $data['network']), 'pubkey' => defaults($data, 'pubkey', ''), 'rel' => self::SHARING, 'priority' => defaults($data, 'priority', 0), @@ -1405,7 +1404,7 @@ class Contact extends BaseObject self::updateAvatar($data['photo'], $uid, $contact_id); } - $fields = ['url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date', 'pubkey', 'protocol']; + $fields = ['url', 'nurl', 'addr', 'alias', 'name', 'nick', 'keywords', 'location', 'about', 'avatar-date', 'pubkey']; $contact = DBA::selectFirst('contact', $fields, ['id' => $contact_id]); // This condition should always be true @@ -1418,8 +1417,7 @@ class Contact extends BaseObject 'url' => $data['url'], 'nurl' => Strings::normaliseLink($data['url']), 'name' => $data['name'], - 'nick' => $data['nick'], - 'protocol' => self::getProtocol($data['url'], $data['network'])]; + 'nick' => $data['nick']]; if (!empty($data['keywords'])) { $updated['keywords'] = $data['keywords']; @@ -2129,9 +2127,9 @@ class Contact extends BaseObject return; } // create contact record - q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `protocol`, `rel`, + q("INSERT INTO `contact` (`uid`, `created`, `url`, `nurl`, `name`, `nick`, `photo`, `network`, `rel`, `blocked`, `readonly`, `pending`, `writable`) - VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, 1)", + VALUES (%d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, 0, 0, 1, 1)", intval($importer['uid']), DBA::escape(DateTimeFormat::utcNow()), DBA::escape($url), @@ -2140,7 +2138,6 @@ class Contact extends BaseObject DBA::escape($nick), DBA::escape($photo), DBA::escape($network), - DBA::escape($protocol), intval(self::FOLLOWER) ); From c66927a12b9de049a67d2e4a36b149cd86893277 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 10:40:02 +0000 Subject: [PATCH 379/653] Updated database sql description --- database.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/database.sql b/database.sql index 62c91262c..dde37cd37 100644 --- a/database.sql +++ b/database.sql @@ -144,7 +144,8 @@ CREATE TABLE IF NOT EXISTS `contact` ( `remote_self` boolean NOT NULL DEFAULT '0' COMMENT '', `rel` tinyint unsigned NOT NULL DEFAULT 0 COMMENT 'The kind of the relation between the user and the contact', `duplex` boolean NOT NULL DEFAULT '0' COMMENT '', - `network` char(4) NOT NULL DEFAULT '' COMMENT 'Network protocol of the contact', + `network` char(4) NOT NULL DEFAULT '' COMMENT 'Network of the contact', + `protocol` char(4) NOT NULL DEFAULT '' COMMENT 'Protocol of the contact', `name` varchar(255) NOT NULL DEFAULT '' COMMENT 'Name that this contact is known by', `nick` varchar(255) NOT NULL DEFAULT '' COMMENT 'Nick- and user name of the contact', `location` varchar(255) DEFAULT '' COMMENT '', From 74a25707e107d939dbbd691893186e7cc9a9f5a8 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 11:02:19 +0000 Subject: [PATCH 380/653] Filling the protocol on ap contact action --- src/Protocol/ActivityPub/Processor.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 15ec610e5..3bb0639ab 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -454,7 +454,7 @@ class Processor $cid = Contact::getIdForURL($activity['actor'], $uid); if (!empty($cid)) { self::switchContact($cid); - DBA::update('contact', ['hub-verify' => $activity['id']], ['id' => $cid]); + DBA::update('contact', ['hub-verify' => $activity['id'], 'protocol' => Protocol::ACTIVITYPUB], ['id' => $cid]); $contact = DBA::selectFirst('contact', [], ['id' => $cid, 'network' => Protocol::NATIVE_SUPPORT]); } else { $contact = false; @@ -475,7 +475,7 @@ class Processor } if (empty($contact)) { - DBA::update('contact', ['hub-verify' => $activity['id']], ['id' => $cid]); + DBA::update('contact', ['hub-verify' => $activity['id'], 'protocol' => Protocol::ACTIVITYPUB], ['id' => $cid]); } Logger::log('Follow user ' . $uid . ' from contact ' . $cid . ' with id ' . $activity['id']); From b6000b3395167283fddee3fe9286f99c73f629d1 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 11:19:30 +0000 Subject: [PATCH 381/653] Storing the protocol while following a contact --- mod/dfrn_confirm.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 531c164d8..302cb370e 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -162,11 +162,8 @@ function dfrn_confirm_post(App $a, $handsfree = null) $public_key = $res['pubkey']; // Save the private key. Send them the public key. - q("UPDATE `contact` SET `prvkey` = '%s' WHERE `id` = %d AND `uid` = %d", - DBA::escape($private_key), - intval($contact_id), - intval($uid) - ); + $fields = ['prvkey' => $private_key, 'protocol' => Protocol::DFRN]; + DBA::update('contact', $fields, ['id' => $contact_id]); $params = []; @@ -298,6 +295,8 @@ function dfrn_confirm_post(App $a, $handsfree = null) if ($status != 0) { return; } + } else { + DBA::update('contact', ['protocol' => $network], ['id' => $contact_id]); } /* From bdf1e7ebfdab3f52c7bb53350a20be3dc005d550 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 11:53:17 +0000 Subject: [PATCH 382/653] Improved protocol storing --- mod/dfrn_confirm.php | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index 302cb370e..fe7323a33 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -137,18 +137,16 @@ function dfrn_confirm_post(App $a, $handsfree = null) $dfrn_confirm = $contact['confirm']; $aes_allow = $contact['aes_allow']; - $network = ((strlen($contact['issued-id'])) ? Protocol::DFRN : Protocol::OSTATUS); - - if ($contact['network']) { - $network = $contact['network']; - } - // an empty DFRN-ID tells us that it had been a request via AP from a Friendica contact - if (($network === Protocol::DFRN) && empty($dfrn_id)) { - $network = Contact::getProtocol($contact['url'], $contact['network']); + if (!empty($contact['protocol'])) { + $protocol = $contact['protocol']; + } elseif (($contact['network'] === Protocol::DFRN) && empty($dfrn_id)) { + $protocol = Contact::getProtocol($contact['url'], $contact['network']); + } else { + $protocol = $contact['network']; } - if ($network === Protocol::DFRN) { + if ($protocol === Protocol::DFRN) { /* * Generate a key pair for all further communications with this person. * We have a keypair for every contact, and a site key for unknown people. @@ -296,7 +294,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) return; } } else { - DBA::update('contact', ['protocol' => $network], ['id' => $contact_id]); + DBA::update('contact', ['protocol' => $protocol], ['id' => $contact_id]); } /* @@ -310,7 +308,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) Logger::log('dfrn_confirm: confirm - imported photos'); - if ($network === Protocol::DFRN) { + if ($protocol === Protocol::DFRN) { $new_relation = Contact::FOLLOWER; if (($relation == Contact::SHARING) || ($duplex)) { @@ -339,7 +337,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) intval($contact_id) ); } else { - if ($network == Protocol::ACTIVITYPUB) { + if ($protocol == Protocol::ACTIVITYPUB) { ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $uid); // Setting "pending" to true on a bidirectional contact request could create a problem when it isn't accepted on the other side // Then we have got a situation where - although one direction is accepted - the contact still appears as pending. @@ -351,10 +349,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) $pending = false; } - // $network !== Protocol::DFRN - $network = defaults($contact, 'network', Protocol::OSTATUS); - - $arr = Probe::uri($contact['url'], $network); + $arr = Probe::uri($contact['url'], $protocol); $notify = defaults($contact, 'notify' , $arr['notify']); $poll = defaults($contact, 'poll' , $arr['poll']); @@ -364,7 +359,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) $new_relation = $contact['rel']; $writable = $contact['writable']; - if (in_array($network, [Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { + if (in_array($protocol, [Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { if ($duplex) { $new_relation = Contact::FRIEND; } else { @@ -381,7 +376,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) $fields = ['name-date' => DateTimeFormat::utcNow(), 'uri-date' => DateTimeFormat::utcNow(), 'addr' => $addr, 'notify' => $notify, 'poll' => $poll, 'blocked' => false, - 'pending' => $pending, 'network' => $network, + 'pending' => $pending, 'protocol' => $protocol, 'writable' => $writable, 'hidden' => $hidden, 'rel' => $new_relation]; DBA::update('contact', $fields, ['id' => $contact_id]); } @@ -392,7 +387,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) // reload contact info $contact = DBA::selectFirst('contact', [], ['id' => $contact_id]); - if ((isset($new_relation) && $new_relation == Contact::FRIEND)) { + if (isset($new_relation) && ($new_relation == Contact::FRIEND)) { if (DBA::isResult($contact) && ($contact['network'] === Protocol::DIASPORA)) { $ret = Diaspora::sendShare($user, $contact); Logger::log('share returns: ' . $ret); @@ -401,7 +396,7 @@ function dfrn_confirm_post(App $a, $handsfree = null) Group::addMember(User::getDefaultGroup($uid, $contact["network"]), $contact['id']); - if ($network == Protocol::ACTIVITYPUB && $duplex) { + if (($protocol == Protocol::ACTIVITYPUB) && $duplex) { ActivityPub\Transmitter::sendActivity('Follow', $contact['url'], $uid); } From 1e2d9e0bd4f7f7a53b874e0c4cad62a023fb3572 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 5 May 2019 08:14:55 -0400 Subject: [PATCH 383/653] Add EOF EOL to view/global.css --- view/global.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/global.css b/view/global.css index b729f1fa8..0eaf4482d 100644 --- a/view/global.css +++ b/view/global.css @@ -638,4 +638,4 @@ span.emoji.mastodon img { #exception .hare { display: none; } -} \ No newline at end of file +} From f3cae4bf0ca03f7e44240a313e38a3812196d61c Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 14:12:43 +0000 Subject: [PATCH 384/653] Fixes notices --- src/Model/Contact.php | 4 ++++ src/Model/Item.php | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 27ac3d33e..181f7a5e4 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -2373,6 +2373,10 @@ class Contact extends BaseObject */ public static function magicLinkByContact($contact, $url = '') { + if (empty($contact['id']) || empty($contact['uid'])) { + return $url ?: $contact['url']; + } + if ((!local_user() && !remote_user()) || ($contact['network'] != Protocol::DFRN)) { return $url ?: $contact['url']; // Equivalent to ($url != '') ? $url : $contact['url']; } diff --git a/src/Model/Item.php b/src/Model/Item.php index 387014d4b..0882f316d 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -45,7 +45,7 @@ class Item extends BaseObject // Field list that is used to display the items const DISPLAY_FIELDLIST = [ - 'uid', 'id', 'parent', 'uri', 'thr-parent', 'parent-uri', 'guid', 'network', 'gravity', + 'uid', 'id', 'parent', 'uri', 'thr-parent', 'parent-uri', 'guid', 'parent-guid', 'network', 'gravity', 'commented', 'created', 'edited', 'received', 'verb', 'object-type', 'postopts', 'plink', 'wall', 'private', 'starred', 'origin', 'title', 'body', 'file', 'attach', 'language', 'content-warning', 'location', 'coord', 'app', 'rendered-hash', 'rendered-html', 'object', From 06ce74c7c929eeea219ba8bbf70026b4b04178b6 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 17:01:51 +0200 Subject: [PATCH 385/653] add feedback --- view/templates/friendica.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/view/templates/friendica.tpl b/view/templates/friendica.tpl index f5e1830ca..f890a58a9 100644 --- a/view/templates/friendica.tpl +++ b/view/templates/friendica.tpl @@ -1,4 +1,4 @@ -
            +

            Friendica


            {{$about nofilter}}

            @@ -44,4 +44,4 @@ {{/if}} {{$hooked nofilter}} -
            \ No newline at end of file +
            From 5d1a12d9b34c7c1011eec7597116fc22d72babcb Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 17:02:17 +0200 Subject: [PATCH 386/653] add feedback --- view/templates/feedtest.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/view/templates/feedtest.tpl b/view/templates/feedtest.tpl index f1edf44a9..709ad4de4 100644 --- a/view/templates/feedtest.tpl +++ b/view/templates/feedtest.tpl @@ -1,4 +1,4 @@ -
            +

            Feed Test

            From 0244a231d52415cb03bea0ac060cbe7769f73324 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 5 May 2019 15:48:57 +0000 Subject: [PATCH 387/653] Fixes "parent-guid" notice - finally --- src/Model/Item.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Model/Item.php b/src/Model/Item.php index 0882f316d..a01ff6114 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -45,7 +45,7 @@ class Item extends BaseObject // Field list that is used to display the items const DISPLAY_FIELDLIST = [ - 'uid', 'id', 'parent', 'uri', 'thr-parent', 'parent-uri', 'guid', 'parent-guid', 'network', 'gravity', + 'uid', 'id', 'parent', 'uri', 'thr-parent', 'parent-uri', 'guid', 'network', 'gravity', 'commented', 'created', 'edited', 'received', 'verb', 'object-type', 'postopts', 'plink', 'wall', 'private', 'starred', 'origin', 'title', 'body', 'file', 'attach', 'language', 'content-warning', 'location', 'coord', 'app', 'rendered-hash', 'rendered-html', 'object', @@ -62,7 +62,7 @@ class Item extends BaseObject // Field list that is used to deliver items via the protocols const DELIVER_FIELDLIST = ['uid', 'id', 'parent', 'uri', 'thr-parent', 'parent-uri', 'guid', - 'created', 'edited', 'verb', 'object-type', 'object', 'target', + 'parent-guid', 'created', 'edited', 'verb', 'object-type', 'object', 'target', 'private', 'title', 'body', 'location', 'coord', 'app', 'attach', 'tag', 'deleted', 'extid', 'post-type', 'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid', From 440d0a3a63ffc24f608504e8df8d2038fd95ca5b Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 17:59:57 +0200 Subject: [PATCH 388/653] Rename BookMarklet to Bookmarklet --- src/App/Router.php | 2 +- src/Module/{BookMarklet.php => Bookmarklet.php} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename src/Module/{BookMarklet.php => Bookmarklet.php} (98%) diff --git a/src/App/Router.php b/src/App/Router.php index 1dffb6b40..11ce68677 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -89,7 +89,7 @@ class Router $this->routeCollector->addRoute(['GET'], '/apps', Module\Apps::class); $this->routeCollector->addRoute(['GET'], '/attach/{item:\d+}', Module\Attach::class); $this->routeCollector->addRoute(['GET'], '/babel', Module\Babel::class); - $this->routeCollector->addRoute(['GET'], '/bookmarklet', Module\BookMarklet::class); + $this->routeCollector->addRoute(['GET'], '/bookmarklet', Module\Bookmarklet::class); $this->routeCollector->addGroup('/contact', function (RouteCollector $collector) { $collector->addRoute(['GET'], '[/]', Module\Contact::class); $collector->addRoute(['GET'], '/{id:\d+}[/posts|conversations]', Module\Contact::class); diff --git a/src/Module/BookMarklet.php b/src/Module/Bookmarklet.php similarity index 98% rename from src/Module/BookMarklet.php rename to src/Module/Bookmarklet.php index 51feb25d7..1b6ff3845 100644 --- a/src/Module/BookMarklet.php +++ b/src/Module/Bookmarklet.php @@ -12,7 +12,7 @@ use Friendica\Util\Strings; * Creates a bookmarklet * Shows either a editor browser or adds the given bookmarklet to the current user */ -class BookMarklet extends BaseModule +class Bookmarklet extends BaseModule { public static function content() { From f6af90fa328bcf7e731917f011b3e20fefeace1c Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 18:15:39 +0200 Subject: [PATCH 389/653] Create XML output for RSD with XML::fromArray() --- src/Module/ReallySimpleDiscovery.php | 42 +++++++++++++++++++++++++--- view/templates/rsd.tpl | 15 ---------- 2 files changed, 38 insertions(+), 19 deletions(-) delete mode 100644 view/templates/rsd.tpl diff --git a/src/Module/ReallySimpleDiscovery.php b/src/Module/ReallySimpleDiscovery.php index 4c14d3c83..515285dbf 100644 --- a/src/Module/ReallySimpleDiscovery.php +++ b/src/Module/ReallySimpleDiscovery.php @@ -3,7 +3,7 @@ namespace Friendica\Module; use Friendica\BaseModule; -use Friendica\Core\Renderer; +use Friendica\Util\XML; /** * Prints the rsd.xml @@ -13,9 +13,43 @@ class ReallySimpleDiscovery extends BaseModule { public static function rawContent() { - header ('Content-Type: text/xml'); - $tpl = Renderer::getMarkupTemplate('rsd.tpl'); - echo Renderer::replaceMacros($tpl); + header('Content-Type: text/xml'); + + $app = self::getApp(); + $xml = null; + echo XML::fromArray([ + 'rsd' => [ + '@attributes' => [ + 'version' => '1.0', + 'xmlns' => 'http://archipelago.phrasewise.com/rsd', + ], + 'service' => [ + 'engineName' => 'Friendica', + 'engineLink' => 'http://friendica.com', + 'apis' => [ + 'api' => [ + '@attributes' => [ + 'name' => 'Twitter', + 'preferred' => 'true', + 'apiLink' => $app->getBaseURL(), + 'blogID' => '', + ], + 'settings' => [ + 'docs' => [ + 'http://status.net/wiki/TwitterCompatibleAPI', + ], + 'setting' => [ + '@attributes' => [ + 'name' => 'OAuth', + ], + 'false', + ], + ], + ] + ], + ], + ], + ], $xml); exit(); } } diff --git a/view/templates/rsd.tpl b/view/templates/rsd.tpl deleted file mode 100644 index c194e8f26..000000000 --- a/view/templates/rsd.tpl +++ /dev/null @@ -1,15 +0,0 @@ - - - - Friendica - http://friendica.com/ - - - - http://status.net/wiki/TwitterCompatibleAPI - false - - - - - From 039f9490dd6e8cb6551f58908076dfc267fa185a Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 18:40:36 +0200 Subject: [PATCH 390/653] Optimized Profile::searchProfiles & Bugfix Contact::getProbeDataFromDatabase --- src/Model/Contact.php | 2 +- src/Model/Profile.php | 100 +++++++++++++++++++++++++++++------------- 2 files changed, 71 insertions(+), 31 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index f4c62fea8..3f25fd938 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1168,7 +1168,7 @@ class Contact extends BaseObject // The link could be provided as http although we stored it as https $ssl_url = str_replace('http://', 'https://', $url); - $fields = ['url', 'addr', 'alias', 'notify', 'poll', 'name', 'nick', + $fields = ['id', 'uid', 'url', 'addr', 'alias', 'notify', 'poll', 'name', 'nick', 'photo', 'keywords', 'location', 'about', 'network', 'priority', 'batch', 'request', 'confirm', 'poco']; diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 9d2600b3d..a854b1c9e 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -1249,56 +1249,96 @@ class Profile */ public static function searchProfiles($start = 0, $count = 100, $search = null) { - if ($search) { - $search = DBA::escape($search); - - $sql_extra = " AND ((`profile`.`name` LIKE '%$search%') OR - (`user`.`nickname` LIKE '%$search%') OR - (`profile`.`pdesc` LIKE '%$search%') OR - (`profile`.`locality` LIKE '%$search%') OR - (`profile`.`region` LIKE '%$search%') OR - (`profile`.`country-name` LIKE '%$search%') OR - (`profile`.`gender` LIKE '%$search%') OR - (`profile`.`marital` LIKE '%$search%') OR - (`profile`.`sexual` LIKE '%$search%') OR - (`profile`.`about` LIKE '%$search%') OR - (`profile`.`romance` LIKE '%$search%') OR - (`profile`.`work` LIKE '%$search%') OR - (`profile`.`education` LIKE '%$search%') OR - (`profile`.`pub_keywords` LIKE '%$search%') OR - (`profile`.`prv_keywords` LIKE '%$search%'))"; - } else { - $sql_extra = ''; - } - $publish = (Config::get('system', 'publish_all') ? '' : " AND `publish` = 1 "); - $total = 0; - $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` + + if (!empty($search)) { + $searchTerm = '%' . $search . '%'; + $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` - WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` $sql_extra"); + WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` + AND ((`profile`.`name` LIKE ?) OR + (`user`.`nickname` LIKE ?) OR + (`profile`.`pdesc` LIKE ?) OR + (`profile`.`locality` LIKE ?) OR + (`profile`.`region` LIKE ?) OR + (`profile`.`country-name` LIKE ?) OR + (`profile`.`gender` LIKE ?) OR + (`profile`.`marital` LIKE ?) OR + (`profile`.`sexual` LIKE ?) OR + (`profile`.`about` LIKE ?) OR + (`profile`.`romance` LIKE ?) OR + (`profile`.`work` LIKE ?) OR + (`profile`.`education` LIKE ?) OR + (`profile`.`pub_keywords` LIKE ?) OR + (`profile`.`prv_keywords` LIKE ?))", + $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, + $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm); + } else { + $cnt = DBA::fetchFirst("SELECT COUNT(*) AS `total` + FROM `profile` + LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` + WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed`"); + } + if (DBA::isResult($cnt)) { $total = $cnt['total']; } $order = " ORDER BY `name` ASC "; - $limit = $start . ',' . $count; + $profiles = []; - $profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`, + // If nothing found, don't try to select details + if ($total > 0) { + if (!empty($search)) { + $searchTerm = '%' . $search . '%'; + + $profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`, `contact`.`addr`, `contact`.`url` AS `profile_url` FROM `profile` LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid` WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self` - $sql_extra $order LIMIT $limit" - ); + AND ((`profile`.`name` LIKE ?) OR + (`user`.`nickname` LIKE ?) OR + (`profile`.`pdesc` LIKE ?) OR + (`profile`.`locality` LIKE ?) OR + (`profile`.`region` LIKE ?) OR + (`profile`.`country-name` LIKE ?) OR + (`profile`.`gender` LIKE ?) OR + (`profile`.`marital` LIKE ?) OR + (`profile`.`sexual` LIKE ?) OR + (`profile`.`about` LIKE ?) OR + (`profile`.`romance` LIKE ?) OR + (`profile`.`work` LIKE ?) OR + (`profile`.`education` LIKE ?) OR + (`profile`.`pub_keywords` LIKE ?) OR + (`profile`.`prv_keywords` LIKE ?)) + $order LIMIT ?,?", + $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, + $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, $searchTerm, + $start, $count + ); + } else { + $profiles = DBA::p("SELECT `profile`.*, `profile`.`uid` AS `profile_uid`, `user`.`nickname`, `user`.`timezone` , `user`.`page-flags`, + `contact`.`addr`, `contact`.`url` AS `profile_url` + FROM `profile` + LEFT JOIN `user` ON `user`.`uid` = `profile`.`uid` + LEFT JOIN `contact` ON `contact`.`uid` = `user`.`uid` + WHERE `is-default` $publish AND NOT `user`.`blocked` AND NOT `user`.`account_removed` AND `contact`.`self` + $order LIMIT ?,?", + $start, $count + ); + } + } - if (DBA::isResult($profiles)) { + if (DBA::isResult($profiles) && $total > 0) { return [ 'total' => $total, 'entries' => DBA::toArray($profiles), ]; + } else { return [ 'total' => $total, From 9f0bbd96be8b4b4995cc81ae7700e38ccb2cfadd Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 19:02:19 +0200 Subject: [PATCH 391/653] Move mod/modexp to src/Module/PublicRSAKey --- mod/modexp.php | 36 ---------------------------- src/App/Router.php | 1 + src/Module/PublicRSAKey.php | 47 +++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 36 deletions(-) delete mode 100644 mod/modexp.php create mode 100644 src/Module/PublicRSAKey.php diff --git a/mod/modexp.php b/mod/modexp.php deleted file mode 100644 index cae91c464..000000000 --- a/mod/modexp.php +++ /dev/null @@ -1,36 +0,0 @@ -argc != 2) - exit(); - - $nick = $a->argv[1]; - $r = q("SELECT `spubkey` FROM `user` WHERE `nickname` = '%s' LIMIT 1", - DBA::escape($nick) - ); - - if (! DBA::isResult($r)) { - exit(); - } - - $lines = explode("\n",$r[0]['spubkey']); - unset($lines[0]); - unset($lines[count($lines)]); - $x = base64_decode(implode('',$lines)); - - $r = ASN_BASE::parseASNString($x); - - $m = $r[0]->asnData[1]->asnData[0]->asnData[0]->asnData; - $e = $r[0]->asnData[1]->asnData[0]->asnData[1]->asnData; - - header("Content-type: application/magic-public-key"); - echo 'RSA' . '.' . $m . '.' . $e; - - exit(); - -} - diff --git a/src/App/Router.php b/src/App/Router.php index 1dffb6b40..882624545 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -139,6 +139,7 @@ class Router $this->routeCollector->addRoute(['GET', 'POST'], '/logout', Module\Logout::class); $this->routeCollector->addRoute(['GET'], '/magic', Module\Magic::class); $this->routeCollector->addRoute(['GET'], '/manifest', Module\Manifest::class); + $this->routeCollector->addRoute(['GET'], '/modexp/{nick}', Module\PublicRSAKey::class); $this->routeCollector->addRoute(['GET'], '/nodeinfo/1.0', Module\NodeInfo::class); $this->routeCollector->addRoute(['GET'], '/nogroup', Module\Group::class); $this->routeCollector->addRoute(['GET'], '/objects/{guid}', Module\Objects::class); diff --git a/src/Module/PublicRSAKey.php b/src/Module/PublicRSAKey.php new file mode 100644 index 000000000..ed099616a --- /dev/null +++ b/src/Module/PublicRSAKey.php @@ -0,0 +1,47 @@ +argc !== 2) { + throw new BadRequestException(); + } + + // @TODO: Replace with parameter from router + $nick = $app->argv[1]; + + $user = User::getByNickname($nick, ['spubkey']); + if (empty($user) || empty($user['spubkey'])) { + throw new BadRequestException(); + } + + $lines = explode("\n", $user['spubkey']); + unset($lines[0]); + unset($lines[count($lines)]); + + $asnString = base64_decode(implode('', $lines)); + $asnBase = ASN_BASE::parseASNString($asnString); + + $m = $asnBase[0]->asnData[1]->asnData[0]->asnData[0]->asnData; + $e = $asnBase[0]->asnData[1]->asnData[0]->asnData[1]->asnData; + + header('Content-type: application/magic-public-key'); + echo 'RSA' . '.' . $m . '.' . $e; + + exit(); + } +} From 510c150156f3d89261bda00ac54ed2e5beaa7bab Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 19:06:51 +0200 Subject: [PATCH 392/653] Move mod/robots_txt to src/Module/RobotsTxt --- mod/robots_txt.php | 30 ------------------------------ src/App/Router.php | 1 + src/Module/RobotsTxt.php | 27 +++++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 30 deletions(-) delete mode 100644 mod/robots_txt.php create mode 100644 src/Module/RobotsTxt.php diff --git a/mod/robots_txt.php b/mod/robots_txt.php deleted file mode 100644 index 0575742dd..000000000 --- a/mod/robots_txt.php +++ /dev/null @@ -1,30 +0,0 @@ -addRoute(['GET'], '/{sub1}/{sub2}/{url}' , Module\Proxy::class); }); $this->routeCollector->addRoute(['GET', 'POST'], '/register', Module\Register::class); + $this->routeCollector->addRoute(['GET'], '/robots.txt', Module\RobotsTxt::class); $this->routeCollector->addRoute(['GET'], '/rsd.xml', Module\ReallySimpleDiscovery::class); $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); diff --git a/src/Module/RobotsTxt.php b/src/Module/RobotsTxt.php new file mode 100644 index 000000000..3648f6f9f --- /dev/null +++ b/src/Module/RobotsTxt.php @@ -0,0 +1,27 @@ + Date: Sun, 5 May 2019 19:15:33 +0200 Subject: [PATCH 393/653] Move mod/viewsrc to src/Module/ItemBody --- mod/viewsrc.php | 35 --------------------------------- src/App/Router.php | 1 + src/Module/ItemBody.php | 43 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 35 deletions(-) delete mode 100644 mod/viewsrc.php create mode 100644 src/Module/ItemBody.php diff --git a/mod/viewsrc.php b/mod/viewsrc.php deleted file mode 100644 index 55eb0b990..000000000 --- a/mod/viewsrc.php +++ /dev/null @@ -1,35 +0,0 @@ -argc > 1) ? intval($a->argv[1]) : 0); - - if (!$item_id) { - throw new \Friendica\Network\HTTPException\NotFoundException(L10n::t('Item not found.')); - } - - $item = Item::selectFirst(['body'], ['uid' => local_user(), 'id' => $item_id]); - - if (DBA::isResult($item)) { - if ($a->isAjax()) { - echo str_replace("\n", '
            ', $item['body']); - exit(); - } else { - $o .= str_replace("\n", '
            ', $item['body']); - } - } - return $o; -} diff --git a/src/App/Router.php b/src/App/Router.php index 1dffb6b40..f1d5c09d7 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -167,6 +167,7 @@ class Router $this->routeCollector->addRoute(['GET'], '/rsd.xml', Module\ReallySimpleDiscovery::class); $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); + $this->routeCollector->addRoute(['GET'], '/viewsrc/{item:\d+}', Module\ItemBody::class); $this->routeCollector->addRoute(['GET'], '/webfinger', Module\WebFinger::class); $this->routeCollector->addRoute(['GET'], '/xrd', Module\Xrd::class); } diff --git a/src/Module/ItemBody.php b/src/Module/ItemBody.php new file mode 100644 index 000000000..ee50b52b2 --- /dev/null +++ b/src/Module/ItemBody.php @@ -0,0 +1,43 @@ +argc > 1) ? intval($app->argv[1]) : 0); + + if (!$itemId) { + throw new HTTPException\NotFoundException(L10n::t('Item not found.')); + } + + $item = Item::selectFirst(['body'], ['uid' => local_user(), 'id' => $itemId]); + + if (!empty($item)) { + if ($app->isAjax()) { + echo str_replace("\n", '
            ', $item['body']); + exit(); + } else { + return str_replace("\n", '
            ', $item['body']); + } + } else { + throw new HTTPException\NotFoundException(L10n::t('Item not found.')); + } + } +} From 3f71a51d210683a0f591d2a507bdfb95064536d3 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 19:23:03 +0200 Subject: [PATCH 394/653] Move mod/pretheme to src/Module/ThemeDetails --- mod/pretheme.php | 25 ------------------------- src/App/Router.php | 1 + src/Module/ThemeDetails.php | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 25 deletions(-) delete mode 100644 mod/pretheme.php create mode 100644 src/Module/ThemeDetails.php diff --git a/mod/pretheme.php b/mod/pretheme.php deleted file mode 100644 index 14d1f2b9e..000000000 --- a/mod/pretheme.php +++ /dev/null @@ -1,25 +0,0 @@ - Theme::getScreenshot($theme), 'desc' => $desc, 'version' => $version, 'credits' => $credits]); - } - - exit(); -} diff --git a/src/App/Router.php b/src/App/Router.php index 1dffb6b40..40f2d5ebc 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -153,6 +153,7 @@ class Router $collector->addRoute(['GET'], '/{type}/{name}', Module\Photo::class); $collector->addRoute(['GET'], '/{type}/{customize}/{name}', Module\Photo::class); }); + $this->routeCollector->addRoute(['GET'], '/pretheme', Module\ThemeDetails::class); $this->routeCollector->addGroup('/profile', function (RouteCollector $collector) { $collector->addRoute(['GET'], '/{nickname}', Module\Profile::class); $collector->addRoute(['GET'], '/{profile:\d+}/view', Module\Profile::class); diff --git a/src/Module/ThemeDetails.php b/src/Module/ThemeDetails.php new file mode 100644 index 000000000..7b53d1cfd --- /dev/null +++ b/src/Module/ThemeDetails.php @@ -0,0 +1,33 @@ + Theme::getScreenshot($theme), + 'desc' => $description, + 'version' => $version, + 'credits' => $credits, + ]); + } + exit(); + } +} From e90876cd86895a64c8a0d8fec2e2caddc3ac5613 Mon Sep 17 00:00:00 2001 From: Philipp Holzer Date: Sun, 5 May 2019 19:39:02 +0200 Subject: [PATCH 395/653] Move mod/smilies to src/Module/Smilies --- mod/smilies.php | 32 ------------------------------- src/App/Router.php | 1 + src/Module/Smilies.php | 39 ++++++++++++++++++++++++++++++++++++++ view/templates/smilies.tpl | 10 ++++++++++ 4 files changed, 50 insertions(+), 32 deletions(-) delete mode 100644 mod/smilies.php create mode 100644 src/Module/Smilies.php create mode 100644 view/templates/smilies.tpl diff --git a/mod/smilies.php b/mod/smilies.php deleted file mode 100644 index bbb7de2e2..000000000 --- a/mod/smilies.php +++ /dev/null @@ -1,32 +0,0 @@ -argv[1]) && ($a->argv[1] === "json")) { - $results = []; - for ($i = 0; $i < count($smilies['texts']); $i++) { - $results[] = ['text' => $smilies['texts'][$i], 'icon' => $smilies['icons'][$i]]; - } - System::jsonExit($results); - } else { - $s = '
            '; - for ($x = 0; $x < count($smilies['texts']); $x ++) { - $s .= '
            ' . $smilies['texts'][$x] . '
            ' . $smilies['icons'][$x] . '
            '; - } - $s .= '
            '; - - return $s; - } -} diff --git a/src/App/Router.php b/src/App/Router.php index 1dffb6b40..30375667a 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -165,6 +165,7 @@ class Router }); $this->routeCollector->addRoute(['GET', 'POST'], '/register', Module\Register::class); $this->routeCollector->addRoute(['GET'], '/rsd.xml', Module\ReallySimpleDiscovery::class); + $this->routeCollector->addRoute(['GET'], '/smilies[/json]', Module\Smilies::class); $this->routeCollector->addRoute(['GET'], '/statistics.json', Module\Statistics::class); $this->routeCollector->addRoute(['GET'], '/tos', Module\Tos::class); $this->routeCollector->addRoute(['GET'], '/webfinger', Module\WebFinger::class); diff --git a/src/Module/Smilies.php b/src/Module/Smilies.php new file mode 100644 index 000000000..df4b4e1cd --- /dev/null +++ b/src/Module/Smilies.php @@ -0,0 +1,39 @@ + $count, + '$smilies' => $smilies, + ]); + } + + public static function rawContent() + { + $app = self::getApp(); + $smilies = \Friendica\Content\Smilies::getList(); + + if (!empty($app->argv[1]) && ($app->argv[1] === "json")) { + $results = []; + for ($i = 0; $i < count($smilies['texts']); $i++) { + $results[] = ['text' => $smilies['texts'][$i], 'icon' => $smilies['icons'][$i]]; + } + System::jsonExit($results); + } + } +} diff --git a/view/templates/smilies.tpl b/view/templates/smilies.tpl new file mode 100644 index 000000000..6f9fda83b --- /dev/null +++ b/view/templates/smilies.tpl @@ -0,0 +1,10 @@ +
            +
            + {{for $i=0 to $count}} +
            +
            {{$smilies.texts[$i] nofilter}}
            +
            {{$smilies.icons[$i] nofilter}}
            +
            + {{/for}} +
            +
            From 5da3e17a126cca7cb7b8488194532ffbb857ca7d Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 6 May 2019 05:46:13 +0000 Subject: [PATCH 396/653] The follow confirmation process is now separated between DFRN and the rest --- mod/dfrn_confirm.php | 381 +++++++++++---------------- mod/notifications.php | 9 + src/App/Router.php | 1 + src/Module/FollowConfirm.php | 93 +++++++ view/templates/intros.tpl | 2 +- view/theme/frio/templates/intros.tpl | 2 +- 6 files changed, 259 insertions(+), 229 deletions(-) create mode 100644 src/Module/FollowConfirm.php diff --git a/mod/dfrn_confirm.php b/mod/dfrn_confirm.php index fe7323a33..7b1171ba4 100644 --- a/mod/dfrn_confirm.php +++ b/mod/dfrn_confirm.php @@ -28,8 +28,6 @@ use Friendica\Model\Contact; use Friendica\Model\Group; use Friendica\Model\User; use Friendica\Network\Probe; -use Friendica\Protocol\Diaspora; -use Friendica\Protocol\ActivityPub; use Friendica\Util\Crypto; use Friendica\Util\DateTimeFormat; use Friendica\Util\Network; @@ -136,165 +134,153 @@ function dfrn_confirm_post(App $a, $handsfree = null) $site_pubkey = $contact['site-pubkey']; $dfrn_confirm = $contact['confirm']; $aes_allow = $contact['aes_allow']; + $protocol = $contact['network']; - // an empty DFRN-ID tells us that it had been a request via AP from a Friendica contact - if (!empty($contact['protocol'])) { - $protocol = $contact['protocol']; - } elseif (($contact['network'] === Protocol::DFRN) && empty($dfrn_id)) { - $protocol = Contact::getProtocol($contact['url'], $contact['network']); - } else { - $protocol = $contact['network']; + /* + * Generate a key pair for all further communications with this person. + * We have a keypair for every contact, and a site key for unknown people. + * This provides a means to carry on relationships with other people if + * any single key is compromised. It is a robust key. We're much more + * worried about key leakage than anybody cracking it. + */ + $res = Crypto::newKeypair(4096); + + $private_key = $res['prvkey']; + $public_key = $res['pubkey']; + + // Save the private key. Send them the public key. + $fields = ['prvkey' => $private_key, 'protocol' => Protocol::DFRN]; + DBA::update('contact', $fields, ['id' => $contact_id]); + + $params = []; + + /* + * Per the DFRN protocol, we will verify both ends by encrypting the dfrn_id with our + * site private key (person on the other end can decrypt it with our site public key). + * Then encrypt our profile URL with the other person's site public key. They can decrypt + * it with their site private key. If the decryption on the other end fails for either + * item, it indicates tampering or key failure on at least one site and we will not be + * able to provide a secure communication pathway. + * + * If other site is willing to accept full encryption, (aes_allow is 1 AND we have php5.3 + * or later) then we encrypt the personal public key we send them using AES-256-CBC and a + * random key which is encrypted with their site public key. + */ + + $src_aes_key = openssl_random_pseudo_bytes(64); + + $result = ''; + openssl_private_encrypt($dfrn_id, $result, $user['prvkey']); + + $params['dfrn_id'] = bin2hex($result); + $params['public_key'] = $public_key; + + $my_url = System::baseUrl() . '/profile/' . $user['nickname']; + + openssl_public_encrypt($my_url, $params['source_url'], $site_pubkey); + $params['source_url'] = bin2hex($params['source_url']); + + if ($aes_allow && function_exists('openssl_encrypt')) { + openssl_public_encrypt($src_aes_key, $params['aes_key'], $site_pubkey); + $params['aes_key'] = bin2hex($params['aes_key']); + $params['public_key'] = bin2hex(openssl_encrypt($public_key, 'AES-256-CBC', $src_aes_key)); } - if ($protocol === Protocol::DFRN) { - /* - * Generate a key pair for all further communications with this person. - * We have a keypair for every contact, and a site key for unknown people. - * This provides a means to carry on relationships with other people if - * any single key is compromised. It is a robust key. We're much more - * worried about key leakage than anybody cracking it. - */ - $res = Crypto::newKeypair(4096); + $params['dfrn_version'] = DFRN_PROTOCOL_VERSION; + if ($duplex == 1) { + $params['duplex'] = 1; + } - $private_key = $res['prvkey']; - $public_key = $res['pubkey']; + if ($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { + $params['page'] = 1; + } - // Save the private key. Send them the public key. - $fields = ['prvkey' => $private_key, 'protocol' => Protocol::DFRN]; - DBA::update('contact', $fields, ['id' => $contact_id]); + if ($user['page-flags'] == User::PAGE_FLAGS_PRVGROUP) { + $params['page'] = 2; + } - $params = []; + Logger::log('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params, true), Logger::DATA); - /* - * Per the DFRN protocol, we will verify both ends by encrypting the dfrn_id with our - * site private key (person on the other end can decrypt it with our site public key). - * Then encrypt our profile URL with the other person's site public key. They can decrypt - * it with their site private key. If the decryption on the other end fails for either - * item, it indicates tampering or key failure on at least one site and we will not be - * able to provide a secure communication pathway. - * - * If other site is willing to accept full encryption, (aes_allow is 1 AND we have php5.3 - * or later) then we encrypt the personal public key we send them using AES-256-CBC and a - * random key which is encrypted with their site public key. - */ + /* + * + * POST all this stuff to the other site. + * Temporarily raise the network timeout to 120 seconds because the default 60 + * doesn't always give the other side quite enough time to decrypt everything. + * + */ - $src_aes_key = openssl_random_pseudo_bytes(64); + $res = Network::post($dfrn_confirm, $params, null, $redirects, 120)->getBody(); - $result = ''; - openssl_private_encrypt($dfrn_id, $result, $user['prvkey']); + Logger::log(' Confirm: received data: ' . $res, Logger::DATA); - $params['dfrn_id'] = bin2hex($result); - $params['public_key'] = $public_key; + // Now figure out what they responded. Try to be robust if the remote site is + // having difficulty and throwing up errors of some kind. - $my_url = System::baseUrl() . '/profile/' . $user['nickname']; + $leading_junk = substr($res, 0, strpos($res, 'status; + $message = XML::unescape($xml->message); // human readable text of what may have gone wrong. + switch ($status) { + case 0: + info(L10n::t("Confirmation completed successfully.") . EOL); + break; + case 1: + // birthday paradox - generate new dfrn-id and fall through. + $new_dfrn_id = Strings::getRandomHex(); + q("UPDATE contact SET `issued-id` = '%s' WHERE `id` = %d AND `uid` = %d", + DBA::escape($new_dfrn_id), + intval($contact_id), + intval($uid) + ); + + case 2: + notice(L10n::t("Temporary failure. Please wait and try again.") . EOL); + break; + case 3: + notice(L10n::t("Introduction failed or was revoked.") . EOL); + break; + } + + if (strlen($message)) { + notice(L10n::t('Remote site reported: ') . $message . EOL); + } + + if (($status == 0) && $intro_id) { + $intro = DBA::selectFirst('intro', ['note'], ['id' => $intro_id]); + if (DBA::isResult($intro)) { + DBA::update('contact', ['reason' => $intro['note']], ['id' => $contact_id]); } - $params['dfrn_version'] = DFRN_PROTOCOL_VERSION; - if ($duplex == 1) { - $params['duplex'] = 1; - } + // Success. Delete the notification. + DBA::delete('intro', ['id' => $intro_id]); + } - if ($user['page-flags'] == User::PAGE_FLAGS_COMMUNITY) { - $params['page'] = 1; - } - - if ($user['page-flags'] == User::PAGE_FLAGS_PRVGROUP) { - $params['page'] = 2; - } - - Logger::log('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params, true), Logger::DATA); - - /* - * - * POST all this stuff to the other site. - * Temporarily raise the network timeout to 120 seconds because the default 60 - * doesn't always give the other side quite enough time to decrypt everything. - * - */ - - $res = Network::post($dfrn_confirm, $params, null, $redirects, 120)->getBody(); - - Logger::log(' Confirm: received data: ' . $res, Logger::DATA); - - // Now figure out what they responded. Try to be robust if the remote site is - // having difficulty and throwing up errors of some kind. - - $leading_junk = substr($res, 0, strpos($res, 'status; - $message = XML::unescape($xml->message); // human readable text of what may have gone wrong. - switch ($status) { - case 0: - info(L10n::t("Confirmation completed successfully.") . EOL); - break; - case 1: - // birthday paradox - generate new dfrn-id and fall through. - $new_dfrn_id = Strings::getRandomHex(); - q("UPDATE contact SET `issued-id` = '%s' WHERE `id` = %d AND `uid` = %d", - DBA::escape($new_dfrn_id), - intval($contact_id), - intval($uid) - ); - - case 2: - notice(L10n::t("Temporary failure. Please wait and try again.") . EOL); - break; - case 3: - notice(L10n::t("Introduction failed or was revoked.") . EOL); - break; - } - - if (strlen($message)) { - notice(L10n::t('Remote site reported: ') . $message . EOL); - } - - if (($status == 0) && $intro_id) { - $intro = DBA::selectFirst('intro', ['note'], ['id' => $intro_id]); - if (DBA::isResult($intro)) { - DBA::update('contact', ['reason' => $intro['note']], ['id' => $contact_id]); - } - - // Success. Delete the notification. - DBA::delete('intro', ['id' => $intro_id]); - } - - if ($status != 0) { - return; - } - } else { - DBA::update('contact', ['protocol' => $protocol], ['id' => $contact_id]); + if ($status != 0) { + return; } /* @@ -308,98 +294,39 @@ function dfrn_confirm_post(App $a, $handsfree = null) Logger::log('dfrn_confirm: confirm - imported photos'); - if ($protocol === Protocol::DFRN) { - $new_relation = Contact::FOLLOWER; + $new_relation = Contact::FOLLOWER; - if (($relation == Contact::SHARING) || ($duplex)) { - $new_relation = Contact::FRIEND; - } - - if (($relation == Contact::SHARING) && ($duplex)) { - $duplex = 0; - } - - $r = q("UPDATE `contact` SET `rel` = %d, - `name-date` = '%s', - `uri-date` = '%s', - `blocked` = 0, - `pending` = 0, - `duplex` = %d, - `hidden` = %d, - `network` = '%s' WHERE `id` = %d - ", - intval($new_relation), - DBA::escape(DateTimeFormat::utcNow()), - DBA::escape(DateTimeFormat::utcNow()), - intval($duplex), - intval($hidden), - DBA::escape(Protocol::DFRN), - intval($contact_id) - ); - } else { - if ($protocol == Protocol::ACTIVITYPUB) { - ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $uid); - // Setting "pending" to true on a bidirectional contact request could create a problem when it isn't accepted on the other side - // Then we have got a situation where - although one direction is accepted - the contact still appears as pending. - // Possibly we need two different "pending" fields, one for incoming, one for outgoing? - // This has to be thought over, but for now this here is a better solution. - // $pending = $duplex; - $pending = false; - } else { - $pending = false; - } - - $arr = Probe::uri($contact['url'], $protocol); - - $notify = defaults($contact, 'notify' , $arr['notify']); - $poll = defaults($contact, 'poll' , $arr['poll']); - - $addr = $arr['addr']; - - $new_relation = $contact['rel']; - $writable = $contact['writable']; - - if (in_array($protocol, [Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { - if ($duplex) { - $new_relation = Contact::FRIEND; - } else { - $new_relation = Contact::FOLLOWER; - } - - if ($new_relation != Contact::FOLLOWER) { - $writable = 1; - } - } - - DBA::delete('intro', ['id' => $intro_id]); - - $fields = ['name-date' => DateTimeFormat::utcNow(), - 'uri-date' => DateTimeFormat::utcNow(), 'addr' => $addr, - 'notify' => $notify, 'poll' => $poll, 'blocked' => false, - 'pending' => $pending, 'protocol' => $protocol, - 'writable' => $writable, 'hidden' => $hidden, 'rel' => $new_relation]; - DBA::update('contact', $fields, ['id' => $contact_id]); + if (($relation == Contact::SHARING) || ($duplex)) { + $new_relation = Contact::FRIEND; } - if (!DBA::isResult($r)) { - notice(L10n::t('Unable to set contact photo.') . EOL); + if (($relation == Contact::SHARING) && ($duplex)) { + $duplex = 0; } + $r = q("UPDATE `contact` SET `rel` = %d, + `name-date` = '%s', + `uri-date` = '%s', + `blocked` = 0, + `pending` = 0, + `duplex` = %d, + `hidden` = %d, + `network` = '%s' WHERE `id` = %d + ", + intval($new_relation), + DBA::escape(DateTimeFormat::utcNow()), + DBA::escape(DateTimeFormat::utcNow()), + intval($duplex), + intval($hidden), + DBA::escape(Protocol::DFRN), + intval($contact_id) + ); + // reload contact info $contact = DBA::selectFirst('contact', [], ['id' => $contact_id]); - if (isset($new_relation) && ($new_relation == Contact::FRIEND)) { - if (DBA::isResult($contact) && ($contact['network'] === Protocol::DIASPORA)) { - $ret = Diaspora::sendShare($user, $contact); - Logger::log('share returns: ' . $ret); - } - } Group::addMember(User::getDefaultGroup($uid, $contact["network"]), $contact['id']); - if (($protocol == Protocol::ACTIVITYPUB) && $duplex) { - ActivityPub\Transmitter::sendActivity('Follow', $contact['url'], $uid); - } - // Let's send our user to the contact editor in case they want to // do anything special with this new friend. if ($handsfree === null) { diff --git a/mod/notifications.php b/mod/notifications.php index 909b297eb..ff954d418 100644 --- a/mod/notifications.php +++ b/mod/notifications.php @@ -223,6 +223,14 @@ function notifications_content(App $a) '$as_fan' => (($notif['network'] == Protocol::DIASPORA) ? L10n::t('Sharer') : L10n::t('Subscriber')) ]); + $contact = DBA::selectFirst('contact', ['network', 'protocol'], ['id' => $notif['contact_id']]); + + if (($contact['network'] != Protocol::DFRN) || ($contact['protocol'] == Protocol::ACTIVITYPUB)) { + $action = 'follow_confirm'; + } else { + $action = 'dfrn_confirm'; + } + $header = $notif['name']; if ($notif['addr'] != '') { @@ -270,6 +278,7 @@ function notifications_content(App $a) '$note' => $notif['note'], '$ignore' => L10n::t('Ignore'), '$discard' => $discard, + '$action' => $action, ]); break; } diff --git a/src/App/Router.php b/src/App/Router.php index 1dffb6b40..3f576d7c5 100644 --- a/src/App/Router.php +++ b/src/App/Router.php @@ -110,6 +110,7 @@ class Router $collector->addRoute(['GET'], '/{guid}/reshare', Module\Diaspora\Fetch::class); }); $this->routeCollector->addRoute(['GET'], '/filer[/{id:\d+}]', Module\Filer::class); + $this->routeCollector->addRoute(['GET', 'POST'], '/follow_confirm', Module\FollowConfirm::class); $this->routeCollector->addRoute(['GET'], '/followers/{owner}', Module\Followers::class); $this->routeCollector->addRoute(['GET'], '/following/{owner}', Module\Following::class); $this->routeCollector->addGroup('/group', function (RouteCollector $collector) { diff --git a/src/Module/FollowConfirm.php b/src/Module/FollowConfirm.php new file mode 100644 index 000000000..1e632d92a --- /dev/null +++ b/src/Module/FollowConfirm.php @@ -0,0 +1,93 @@ + $cid, 'uid' => $uid]); + if (!DBA::isResult($contact)) { + Logger::log('Contact not found in DB.'); + notice(L10n::t('Contact not found.') . EOL); + return; + } + + $relation = $contact['rel']; + $new_relation = $contact['rel']; + $writable = $contact['writable']; + + if (!empty($contact['protocol'])) { + $protocol = $contact['protocol']; + } else { + $protocol = $contact['network']; + } + + if ($protocol == Protocol::ACTIVITYPUB) { + ActivityPub\Transmitter::sendContactAccept($contact['url'], $contact['hub-verify'], $uid); + } + + if (in_array($protocol, [Protocol::DIASPORA, Protocol::ACTIVITYPUB])) { + if ($duplex) { + $new_relation = Contact::FRIEND; + } else { + $new_relation = Contact::FOLLOWER; + } + + if ($new_relation != Contact::FOLLOWER) { + $writable = 1; + } + } + + $fields = ['name-date' => DateTimeFormat::utcNow(), + 'uri-date' => DateTimeFormat::utcNow(), + 'blocked' => false, 'pending' => false, 'protocol' => $protocol, + 'writable' => $writable, 'hidden' => $hidden, 'rel' => $new_relation]; + DBA::update('contact', $fields, ['id' => $cid]); + + if ($new_relation == Contact::FRIEND) { + if ($protocol == Protocol::DIASPORA) { + $user = DBA::selectFirst('user', [], ['uid' => $uid]); + $contact = DBA::select('contact', [], ['id' => $cid]); + $ret = Diaspora::sendShare($user, $contact); + Logger::log('share returns: ' . $ret); + } elseif ($protocol == Protocol::ACTIVITYPUB) { + ActivityPub\Transmitter::sendActivity('Follow', $contact['url'], $uid); + } + } + + DBA::delete('intro', ['id' => $intro_id]); + + $a->internalRedirect('contact/' . intval($cid)); + } +} diff --git a/view/templates/intros.tpl b/view/templates/intros.tpl index 049e482f2..1f7f838bc 100644 --- a/view/templates/intros.tpl +++ b/view/templates/intros.tpl @@ -18,7 +18,7 @@
            -
            + {{include file="field_checkbox.tpl" field=$hidden}} diff --git a/view/theme/frio/templates/intros.tpl b/view/theme/frio/templates/intros.tpl index cea74d2fa..a8a033c9b 100644 --- a/view/theme/frio/templates/intros.tpl +++ b/view/theme/frio/templates/intros.tpl @@ -52,7 +52,7 @@
          • {{$ignored}}
          • {{/if}} {{if $archived}}
          • {{$archived}}
          • {{/if}}
          - -
        {{* End of contact-edit-status-wrapper *}} diff --git a/view/theme/frio/templates/widget/vcard.tpl b/view/theme/frio/templates/widget/vcard.tpl index d1b41728b..366c570a7 100644 --- a/view/theme/frio/templates/widget/vcard.tpl +++ b/view/theme/frio/templates/widget/vcard.tpl @@ -34,5 +34,30 @@ {{if $network_link}}
        {{$network}}
        {{$network_link nofilter}}
        {{/if}}
      + +
      diff --git a/view/theme/vier/templates/contact_edit.tpl b/view/theme/vier/templates/contact_edit.tpl index a01fac9ee..bd07f1821 100644 --- a/view/theme/vier/templates/contact_edit.tpl +++ b/view/theme/vier/templates/contact_edit.tpl @@ -45,11 +45,6 @@ {{if $ignored}}
    1. {{$ignored}}
    2. {{/if}} {{if $archived}}
    3. {{$archived}}
    4. {{/if}}
- - {{* End of contact-edit-status-wrapper *}} {{* Some information about the contact from the profile *}} From 76a420fbe95915d94ffba310be664fa05a4c49a9 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 11 Jun 2019 05:26:16 +0000 Subject: [PATCH 588/653] Avoid fatal error when AP contact has no photo --- src/Model/APContact.php | 18 +++++++++++++----- src/Model/Photo.php | 6 +++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 67c714f9a..c308da388 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -152,7 +152,13 @@ class APContact extends BaseObject $apcontact['alias'] = JsonLD::fetchElement($compacted['as:url'], 'as:href', '@id'); } - if (empty($apcontact['url']) || empty($apcontact['inbox'])) { + // Quit if none of the basic values are set + if (empty($apcontact['url']) || empty($apcontact['inbox']) || empty($apcontact['type'])) { + return false; + } + + // Quit if this doesn't seem to be an account at all + if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) { return false; } @@ -228,11 +234,13 @@ class APContact extends BaseObject DBA::update('contact', $contact_fields, ['nurl' => Strings::normaliseLink($url)]); - $contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]); - while ($contact = DBA::fetch($contacts)) { - Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']); + if (!empty($apcontact['photo'])) { + $contacts = DBA::select('contact', ['uid', 'id'], ['nurl' => Strings::normaliseLink($url)]); + while ($contact = DBA::fetch($contacts)) { + Contact::updateAvatar($apcontact['photo'], $contact['uid'], $contact['id']); + } + DBA::close($contacts); } - DBA::close($contacts); // Update the gcontact table // These two fields don't exist in the gcontact table diff --git a/src/Model/Photo.php b/src/Model/Photo.php index 8ad7f3145..2d740e137 100644 --- a/src/Model/Photo.php +++ b/src/Model/Photo.php @@ -413,7 +413,11 @@ class Photo extends BaseObject $photo_failure = false; $filename = basename($image_url); - $img_str = Network::fetchUrl($image_url, true); + if (!empty($image_url)) { + $img_str = Network::fetchUrl($image_url, true); + } else { + $img_str = ''; + } if ($quit_on_error && ($img_str == "")) { return false; From 9d8f01c49c12de4cba6515781d150ce1123206e3 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 11 Jun 2019 06:02:18 +0000 Subject: [PATCH 589/653] Fix another fatal error --- src/Protocol/ActivityPub/Transmitter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 06dbaee71..5f3325711 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -436,7 +436,7 @@ class Transmitter $data['to'][] = $profile['url']; } else { $data['cc'][] = $profile['url']; - if (!$item['private']) { + if (!$item['private'] && !empty($actor_profile['followers'])) { $data['cc'][] = $actor_profile['followers']; } } From 16b9d9f199548a266729594554d1d69194ddd90e Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 11 Jun 2019 19:35:03 +0000 Subject: [PATCH 590/653] Fix pixture posts to connectors / fix delivery counter for connector posts --- src/Content/Text/BBCode.php | 4 +++- src/Worker/Notifier.php | 14 ++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 0d83b665c..7560019ae 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -252,7 +252,9 @@ class BBCode extends BaseObject if (preg_match_all("(\[url=([$URLSearchString]*)\]\s*\[img\]([$URLSearchString]*)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) { if ((count($pictures) == 1) && !$has_title) { if (!empty($item['object-type']) && ($item['object-type'] == ACTIVITY_OBJ_IMAGE)) { - $data = ['url' => $pictures[0][1], 'type' => 'photo']; + // Replace the preview picture with the real picture + $url = str_replace('-1.', '-0.', $pictures[0][2]); + $data = ['url' => $url, 'type' => 'photo']; } else { // Checking, if the link goes to a picture $data = ParseUrl::getSiteinfoCached($pictures[0][1], true); diff --git a/src/Worker/Notifier.php b/src/Worker/Notifier.php index a677cef60..36c6e92a0 100644 --- a/src/Worker/Notifier.php +++ b/src/Worker/Notifier.php @@ -529,13 +529,19 @@ class Notifier if (!empty($target_item)) { Logger::log('Calling hooks for ' . $cmd . ' ' . $target_id, Logger::DEBUG); - if (in_array($cmd, [Delivery::POST, Delivery::POKE])) { - ItemDeliveryData::update($target_item['id'], ['queue_count' => $delivery_queue_count]); - } - Hook::fork($a->queue['priority'], 'notifier_normal', $target_item); Hook::callAll('notifier_end', $target_item); + + // Workaround for pure connector posts + if ($delivery_queue_count == 0) { + ItemDeliveryData::incrementQueueDone($target_item['id']); + $delivery_queue_count = 1; + } + + if (in_array($cmd, [Delivery::POST, Delivery::POKE])) { + ItemDeliveryData::update($target_item['id'], ['queue_count' => $delivery_queue_count]); + } } return; From a11b258fd65379f3096a90751b170e408bcabca3 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 11 Jun 2019 20:34:21 +0000 Subject: [PATCH 591/653] Issue 7223: Don't strip links --- src/Content/Text/BBCode.php | 22 ++++++++-------------- src/Protocol/ActivityPub/Transmitter.php | 4 ++-- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 7560019ae..f90d9272e 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -569,7 +569,7 @@ class BBCode extends BaseObject } $return = ''; - if ($simplehtml == 7) { + if (in_array($simplehtml, [7, 9])) { $return = self::convertUrlForOStatus($data["url"]); } elseif (($simplehtml != 4) && ($simplehtml != 0)) { $return = sprintf('%s
', $data["url"], $data["title"]); @@ -985,16 +985,9 @@ class BBCode extends BaseObject $text = ($is_quote_share? '
' : '') . '

' . html_entity_decode('♲ ', ENT_QUOTES, 'UTF-8') . ' ' . $author_contact['addr'] . ':

' . "\n" . $content; break; case 7: // statusnet/GNU Social + case 9: $text = ($is_quote_share? '
' : '') . '

' . html_entity_decode('♲ ', ENT_QUOTES, 'UTF-8') . ' @' . $author_contact['addr'] . ': ' . $content . '

' . "\n"; break; - case 9: // Google+ - $text = ($is_quote_share? '
' : '') . '

' . html_entity_decode('♲ ', ENT_QUOTES, 'UTF-8') . ' ' . $author_contact['addr'] . ':

' . "\n"; - $text .= '

' . $content . '

' . "\n"; - - if ($attributes['link'] != '') { - $text .= '

' . $attributes['link'] . '

'; - } - break; default: // Transforms quoted tweets in rich attachments to avoid nested tweets if (stripos(Strings::normaliseLink($attributes['link']), 'http://twitter.com/') === 0 && OEmbed::isAllowedURL($attributes['link'])) { @@ -1146,13 +1139,14 @@ class BBCode extends BaseObject * Simple HTML values meaning: * - 0: Friendica display * - 1: Unused - * - 2: Used for Google+, Windows Phone push, Friendica API + * - 2: Used for Windows Phone push, Friendica API * - 3: Used before converting to Markdown in bb2diaspora.php * - 4: Used for WordPress, Libertree (before Markdown), pump.io and tumblr * - 5: Unused * - 6: Unused * - 7: Used for dfrn, OStatus * - 8: Used for WP backlink text setting + * - 9: ActivityPub * * @param string $text * @param bool $try_oembed @@ -1298,7 +1292,7 @@ class BBCode extends BaseObject // if the HTML is used to generate plain text, then don't do this search, but replace all URL of that kind to text if (!$for_plaintext) { $text = preg_replace(Strings::autoLinkRegEx(), '[url]$1[/url]', $text); - if ($simple_html == 7) { + if (in_array($simple_html, [7, 9])) { $text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); $text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); } @@ -1310,14 +1304,14 @@ class BBCode extends BaseObject $text = str_replace(["\r","\n"], ['
', '
'], $text); // Remove all hashtag addresses - if ((!$try_oembed || $simple_html) && !in_array($simple_html, [3, 7])) { + if ((!$try_oembed || $simple_html) && !in_array($simple_html, [3, 7, 9])) { $text = preg_replace("/([#@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$1$3', $text); } elseif ($simple_html == 3) { // The ! is converted to @ since Diaspora only understands the @ $text = preg_replace("/([@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '@$3', $text); - } elseif ($simple_html == 7) { + } elseif (in_array($simple_html, [7, 9])) { $text = preg_replace("/([@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$1$3', $text); @@ -1333,7 +1327,7 @@ class BBCode extends BaseObject $text = preg_replace("/#\[url\=[$URLSearchString]*\]\^\[\/url\]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/i", "[bookmark=$1]$2[/bookmark]", $text); - if (in_array($simple_html, [2, 6, 7, 8, 9])) { + if (in_array($simple_html, [2, 6, 7, 8])) { $text = preg_replace_callback("/([^#@!])\[url\=([^\]]*)\](.*?)\[\/url\]/ism", "self::expandLinksCallback", $text); //$Text = preg_replace("/[^#@!]\[url\=([^\]]*)\](.*?)\[\/url\]/ism", ' $2 [url]$1[/url]', $Text); $text = preg_replace("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism", ' $2 [url]$1[/url]',$text); diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 5f3325711..81b8bc1de 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -1141,7 +1141,7 @@ class Transmitter { $event = []; $event['name'] = $item['event-summary']; - $event['content'] = BBCode::convert($item['event-desc'], false, 7); + $event['content'] = BBCode::convert($item['event-desc'], false, 9); $event['startTime'] = DateTimeFormat::utc($item['event-start'] . '+00:00', DateTimeFormat::ATOM); if (!$item['event-nofinish']) { @@ -1231,7 +1231,7 @@ class Transmitter $regexp = "/[@!]\[url\=([^\[\]]*)\].*?\[\/url\]/ism"; $body = preg_replace_callback($regexp, ['self', 'mentionCallback'], $body); - $data['content'] = BBCode::convert($body, false, 7); + $data['content'] = BBCode::convert($body, false, 9); } $data['source'] = ['content' => $item['body'], 'mediaType' => "text/bbcode"]; From bfc6bad91696a64d6e806112db9246f8f241660f Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 11 Jun 2019 21:40:44 +0000 Subject: [PATCH 592/653] Added comment --- src/Content/Text/BBCode.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index f90d9272e..146dedf47 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -985,7 +985,7 @@ class BBCode extends BaseObject $text = ($is_quote_share? '
' : '') . '

' . html_entity_decode('♲ ', ENT_QUOTES, 'UTF-8') . ' ' . $author_contact['addr'] . ':

' . "\n" . $content; break; case 7: // statusnet/GNU Social - case 9: + case 9: // ActivityPub $text = ($is_quote_share? '
' : '') . '

' . html_entity_decode('♲ ', ENT_QUOTES, 'UTF-8') . ' @' . $author_contact['addr'] . ': ' . $content . '

' . "\n"; break; default: From fd8844db834b005b3f1813a354e9f2930bee0a0c Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Tue, 11 Jun 2019 19:41:11 -0400 Subject: [PATCH 593/653] Redirect remote visitors to their own profile after logout --- src/Module/Logout.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Module/Logout.php b/src/Module/Logout.php index 4ccba2d74..1f60e6dc1 100644 --- a/src/Module/Logout.php +++ b/src/Module/Logout.php @@ -9,6 +9,8 @@ use Friendica\BaseModule; use Friendica\Core\Authentication; use Friendica\Core\Hook; use Friendica\Core\L10n; +use Friendica\Core\System; +use Friendica\Model\Profile; /** * Logout module @@ -22,9 +24,19 @@ class Logout extends BaseModule */ public static function init() { + $visitor_home = null; + if (remote_user()) { + $visitor_home = Profile::getMyURL(); + } + Hook::callAll("logging_out"); Authentication::deleteSession(); - info(L10n::t('Logged out.') . EOL); - self::getApp()->internalRedirect(); + + if ($visitor_home) { + System::externalRedirect($visitor_home); + } else { + info(L10n::t('Logged out.')); + self::getApp()->internalRedirect(); + } } } From 0af10a42b06e5c968ea8de1b6c10b5ce9571908d Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Tue, 11 Jun 2019 19:42:08 -0400 Subject: [PATCH 594/653] Normalize logout link behavior across themes --- src/Content/Nav.php | 8 +++++--- view/theme/duepuntozero/deriv/darkzero.css | 5 +++-- view/theme/duepuntozero/deriv/easterbunny.css | 2 +- view/theme/duepuntozero/deriv/greenzero.css | 5 +++-- view/theme/duepuntozero/deriv/purplezero.css | 2 +- view/theme/duepuntozero/style.css | 2 +- view/theme/frio/theme.php | 2 -- view/theme/vier/style.css | 1 + view/theme/vier/templates/nav.tpl | 5 +++++ 9 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Content/Nav.php b/src/Content/Nav.php index a63244e85..690af1935 100644 --- a/src/Content/Nav.php +++ b/src/Content/Nav.php @@ -148,9 +148,13 @@ class Nav $nav['usermenu'] = []; $userinfo = null; - if (local_user()) { + if (local_user() || remote_user()) { $nav['logout'] = ['logout', L10n::t('Logout'), '', L10n::t('End this session')]; + } else { + $nav['login'] = ['login', L10n::t('Login'), ($a->module == 'login' ? 'selected' : ''), L10n::t('Sign in')]; + } + if (local_user()) { // user menu $nav['usermenu'][] = ['profile/' . $a->user['nickname'], L10n::t('Status'), '', L10n::t('Your posts and conversations')]; $nav['usermenu'][] = ['profile/' . $a->user['nickname'] . '?tab=profile', L10n::t('Profile'), '', L10n::t('Your profile page')]; @@ -165,8 +169,6 @@ class Nav 'icon' => (DBA::isResult($contact) ? $a->removeBaseURL($contact['micro']) : 'images/person-48.jpg'), 'name' => $a->user['username'], ]; - } else { - $nav['login'] = ['login', L10n::t('Login'), ($a->module == 'login' ? 'selected' : ''), L10n::t('Sign in')]; } // "Home" should also take you home from an authenticated remote profile connection diff --git a/view/theme/duepuntozero/deriv/darkzero.css b/view/theme/duepuntozero/deriv/darkzero.css index 3b6fa92e3..60e2d9c45 100644 --- a/view/theme/duepuntozero/deriv/darkzero.css +++ b/view/theme/duepuntozero/deriv/darkzero.css @@ -50,9 +50,10 @@ nav #banner #logo-text a { color: #ffffff; } .photo-album-image-wrapper .caption { background-color: rgba(51, 51, 51, 0.8); color: #FFFFFF; } .nav-selected.nav-link { color: #ffffff!important; border-bottom: 0px} -.nav-commlink, .nav-login-link {background-color: #b7bab3;} +.nav-commlink, .nav-login-link, .nav-logout-link {background-color: #b7bab3;} .nav-commlink:link, .nav-commlink:visited, -.nav-login-link:link, .nav-login-link:visited{ +.nav-login-link:link, .nav-login-link:visited, +.nav-logout-link:link, .nav-logout-link:visited { color: #ffffff; } diff --git a/view/theme/duepuntozero/deriv/easterbunny.css b/view/theme/duepuntozero/deriv/easterbunny.css index 34bf58f46..4542c285a 100644 --- a/view/theme/duepuntozero/deriv/easterbunny.css +++ b/view/theme/duepuntozero/deriv/easterbunny.css @@ -33,7 +33,7 @@ aside { background-image: url('imgeasterbunny/border.jpg'); } div.wall-item-content-wrapper.shiny { background-image: url('imgeasterbunny/shiny.png'); } -.nav-commlink, .nav-login-link { +.nav-commlink, .nav-login-link, .nav-logout-link { background-color: #aed3b2; } diff --git a/view/theme/duepuntozero/deriv/greenzero.css b/view/theme/duepuntozero/deriv/greenzero.css index d446a6161..315e8dc6a 100644 --- a/view/theme/duepuntozero/deriv/greenzero.css +++ b/view/theme/duepuntozero/deriv/greenzero.css @@ -4,9 +4,10 @@ a:link, a:visited { color: #549f4f; text-decoration: none; } a:hover {text-decoration: underline; } .nav-selected.nav-link { color: #549f4f!important; border-bottom: 0px} -.nav-commlink, .nav-login-link {background-color: #aed3b2;} +.nav-commlink, .nav-login-link, .nav-logout-link {background-color: #aed3b2;} .nav-commlink:link, .nav-commlink:visited, -.nav-login-link:link, .nav-login-link:visited{ +.nav-login-link:link, .nav-login-link:visited, +.nav-logout-link:link, .nav-logout-link:visited{ color: #ffffff; } diff --git a/view/theme/duepuntozero/deriv/purplezero.css b/view/theme/duepuntozero/deriv/purplezero.css index 297185768..6426bb925 100644 --- a/view/theme/duepuntozero/deriv/purplezero.css +++ b/view/theme/duepuntozero/deriv/purplezero.css @@ -10,7 +10,7 @@ section { background-image: url('imgpurplezero/border.jpg'); } div.wall-item-content-wrapper.shiny { background-image: url('imgpurplezero/shiny.png'); } -.nav-commlink, .nav-login-link { +.nav-commlink, .nav-login-link, .nav-logout-link { background-color: #aed3b2; } diff --git a/view/theme/duepuntozero/style.css b/view/theme/duepuntozero/style.css index 7e66570ad..412899fc7 100644 --- a/view/theme/duepuntozero/style.css +++ b/view/theme/duepuntozero/style.css @@ -159,7 +159,7 @@ nav #banner #logo-text a { nav #banner #logo-text a:hover { text-decoration: none; } -.nav-commlink, .nav-login-link { +.nav-commlink, .nav-login-link, .nav-logout-link { display: block; height: 15px; margin-top: 67px; diff --git a/view/theme/frio/theme.php b/view/theme/frio/theme.php index 9434b340d..9c4205c88 100644 --- a/view/theme/frio/theme.php +++ b/view/theme/frio/theme.php @@ -256,8 +256,6 @@ function frio_remote_nav($a, &$nav) } if (!local_user() && !empty($server_url) && !is_null($remoteUser)) { - $nav['logout'] = [$server_url . '/logout', L10n::t('Logout'), '', L10n::t('End this session')]; - // user menu $nav['usermenu'][] = [$server_url . '/profile/' . $remoteUser['nick'], L10n::t('Status'), '', L10n::t('Your posts and conversations')]; $nav['usermenu'][] = [$server_url . '/profile/' . $remoteUser['nick'] . '?tab=profile', L10n::t('Profile'), '', L10n::t('Your profile page')]; diff --git a/view/theme/vier/style.css b/view/theme/vier/style.css index 3dc9b4649..6506dadc1 100644 --- a/view/theme/vier/style.css +++ b/view/theme/vier/style.css @@ -763,6 +763,7 @@ nav #nav-directory-link, nav #nav-apps-link, nav #nav-apps-link, nav #nav-login-link, +nav #nav-logout-link, nav #nav-messages-linkmenu, nav #nav-notifications-linkmenu, nav #nav-site-linkmenu, diff --git a/view/theme/vier/templates/nav.tpl b/view/theme/vier/templates/nav.tpl index db883433e..f600b9f61 100644 --- a/view/theme/vier/templates/nav.tpl +++ b/view/theme/vier/templates/nav.tpl @@ -102,6 +102,11 @@ {{$nav.login.1}} {{/if}} + {{if $nav.logout}} + + {{/if}} {{if $nav.search}}
  • ", $text); + + // Check for style sheet commands + $text = preg_replace_callback( + "(\[style=(.*?)\](.*?)\[\/style\])ism", + function ($match) { + return "" . $match[2] . ""; + }, + $text + ); + + // Check for CSS classes + $text = preg_replace_callback( + "(\[class=(.*?)\](.*?)\[\/class\])ism", + function ($match) { + return "" . $match[2] . ""; + }, + $text + ); + + // handle nested lists + $endlessloop = 0; + + while ((((strpos($text, "[/list]") !== false) && (strpos($text, "[list") !== false)) || + ((strpos($text, "[/ol]") !== false) && (strpos($text, "[ol]") !== false)) || + ((strpos($text, "[/ul]") !== false) && (strpos($text, "[ul]") !== false)) || + ((strpos($text, "[/li]") !== false) && (strpos($text, "[li]") !== false))) && (++$endlessloop < 20)) { + $text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '
      $1
    ', $text); + $text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '
      $1
    ', $text); + $text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '
      $1
    ', $text); + $text = preg_replace("/\[list=((?-i)i)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); + $text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); + $text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); + $text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); + $text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '
      $1
    ', $text); + $text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '
      $1
    ', $text); + $text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '
  • $1
  • ', $text); + } + + $text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '$1', $text); + $text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '$1', $text); + $text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '$1', $text); + $text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '$1
    ', $text); + + $text = preg_replace("/\[table border=1\](.*?)\[\/table\]/sm", '$1
    ', $text); + $text = preg_replace("/\[table border=0\](.*?)\[\/table\]/sm", '$1
    ', $text); + + $text = str_replace('[hr]', '
    ', $text); + + // This is actually executed in Item::prepareBody() + + $text = str_replace('[nosmile]', '', $text); + + // Check for font change text + $text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/sm", "$2", $text); + + // Declare the format for [spoiler] layout + $SpoilerLayout = '
    $1
    '; + + // Check for [spoiler] text + // handle nested quotes + $endlessloop = 0; + while ((strpos($text, "[/spoiler]") !== false) && (strpos($text, "[spoiler]") !== false) && (++$endlessloop < 20)) { + $text = preg_replace("/\[spoiler\](.*?)\[\/spoiler\]/ism", "$SpoilerLayout", $text); + } + + // Check for [spoiler=Author] text + + $t_wrote = L10n::t('$1 wrote:'); + + // handle nested quotes + $endlessloop = 0; + while ((strpos($text, "[/spoiler]")!== false) && (strpos($text, "[spoiler=") !== false) && (++$endlessloop < 20)) { + $text = preg_replace("/\[spoiler=[\"\']*(.*?)[\"\']*\](.*?)\[\/spoiler\]/ism", + "
    " . $t_wrote . "
    $2
    ", + $text); + } + + // Declare the format for [quote] layout + $QuoteLayout = '
    $1
    '; + + // Check for [quote] text + // handle nested quotes + $endlessloop = 0; + while ((strpos($text, "[/quote]") !== false) && (strpos($text, "[quote]") !== false) && (++$endlessloop < 20)) { + $text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism", "$QuoteLayout", $text); + } + + // Check for [quote=Author] text + + $t_wrote = L10n::t('$1 wrote:'); + + // handle nested quotes + $endlessloop = 0; + while ((strpos($text, "[/quote]")!== false) && (strpos($text, "[quote=") !== false) && (++$endlessloop < 20)) { + $text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism", + "

    " . $t_wrote . "

    $2
    ", + $text); + } + + + // [img=widthxheight]image source[/img] + $text = preg_replace_callback( + "/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", + function ($matches) use ($simple_html) { + if (strpos($matches[3], "data:image/") === 0) { + return $matches[0]; + } + + $matches[3] = self::proxyUrl($matches[3], $simple_html); + return "[img=" . $matches[1] . "x" . $matches[2] . "]" . $matches[3] . "[/img]"; + }, + $text + ); + + $text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '', $text); + $text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '', $text); + + $text = preg_replace_callback("/\[img\=([$URLSearchString]*)\](.*?)\[\/img\]/ism", + function ($matches) use ($simple_html) { + $matches[1] = self::proxyUrl($matches[1], $simple_html); + $matches[2] = htmlspecialchars($matches[2], ENT_COMPAT); + return '' . $matches[2] . ''; + }, + $text); + + // Images + // [img]pathtoimage[/img] + $text = preg_replace_callback( + "/\[img\](.*?)\[\/img\]/ism", + function ($matches) use ($simple_html) { + if (strpos($matches[1], "data:image/") === 0) { + return $matches[0]; + } + + $matches[1] = self::proxyUrl($matches[1], $simple_html); + return "[img]" . $matches[1] . "[/img]"; + }, + $text + ); + + $text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . L10n::t('Image/photo') . '', $text); + $text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '' . L10n::t('Image/photo') . '', $text); + + // Shared content + $text = self::convertShare( + $text, + function (array $attributes, array $author_contact, $content, $is_quote_share) use ($simple_html) { + return self::convertShareCallback($attributes, $author_contact, $content, $is_quote_share, $simple_html); + } + ); + + $text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $text); + $text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $text); + //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $Text); + + // Try to Oembed + if ($try_oembed) { + $text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4).*?)\[\/video\]/ism", '', $text); + $text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3).*?)\[\/audio\]/ism", '', $text); + + $text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", $try_oembed_callback, $text); + $text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", $try_oembed_callback, $text); + } else { + $text = preg_replace("/\[video\](.*?)\[\/video\]/ism", + '$1', $text); + $text = preg_replace("/\[audio\](.*?)\[\/audio\]/ism", + '$1', $text); + } + + // html5 video and audio + + + if ($try_oembed) { + $text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '', $text); + } else { + $text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $text); + } + + // Youtube extensions + if ($try_oembed) { + $text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", $try_oembed_callback, $text); + $text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", $try_oembed_callback, $text); + $text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism", $try_oembed_callback, $text); + } + + $text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); + $text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); + $text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); + + if ($try_oembed) { + $text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $text); + } else { + $text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", + 'https://www.youtube.com/watch?v=$1', $text); + } + + if ($try_oembed) { + $text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism", $try_oembed_callback, $text); + $text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism", $try_oembed_callback, $text); + } + + $text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); + $text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); + + if ($try_oembed) { + $text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '', $text); + } else { + $text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", + 'https://vimeo.com/$1', $text); + } + + // oembed tag + $text = OEmbed::BBCode2HTML($text); + + // Avoid triple linefeeds through oembed + $text = str_replace("


    ", "

    ", $text); + + // If we found an event earlier, strip out all the event code and replace with a reformatted version. + // Replace the event-start section with the entire formatted event. The other bbcode is stripped. + // Summary (e.g. title) is required, earlier revisions only required description (in addition to + // start which is always required). Allow desc with a missing summary for compatibility. + + if ((!empty($ev['desc']) || !empty($ev['summary'])) && !empty($ev['start'])) { + $sub = Event::getHTML($ev, $simple_html); + + $text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism", '', $text); + $text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism", '', $text); + $text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism", $sub, $text); + $text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism", '', $text); + $text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism", '', $text); + $text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism", '', $text); + $text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism", '', $text); + } + + // Replace non graphical smilies for external posts + if ($simple_html) { + $text = Smilies::replace($text); + } + // if the HTML is used to generate plain text, then don't do this search, but replace all URL of that kind to text if (!$for_plaintext) { $text = preg_replace(Strings::autoLinkRegEx(), '[url]$1[/url]', $text); @@ -1385,7 +1689,7 @@ class BBCode extends BaseObject // convert links start with System::baseUrl() as local link without the target="_blank" attribute $escapedBaseUrl = preg_quote(System::baseUrl(), '/'); $text = preg_replace("/\[url\](".$escapedBaseUrl."[$URLSearchString]*)\[\/url\]/ism", '$1', $text); - $text = preg_replace("/\[url\=(".$escapedBaseUrl."[$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $text); + $text = preg_replace("/\[url\=(".$escapedBaseUrl."[$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $text); $text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '$1', $text); $text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $text); @@ -1403,309 +1707,6 @@ class BBCode extends BaseObject $text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $text); $text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '$2', $text); - // leave open the posibility of [map=something] - // this is replaced in Item::prepareBody() which has knowledge of the item location - - if (strpos($text, '[/map]') !== false) { - $text = preg_replace_callback( - "/\[map\](.*?)\[\/map\]/ism", - function ($match) use ($simple_html) { - return str_replace($match[0], '

    ' . Map::byLocation($match[1], $simple_html) . '

    ', $match[0]); - }, - $text - ); - } - if (strpos($text, '[map=') !== false) { - $text = preg_replace_callback( - "/\[map=(.*?)\]/ism", - function ($match) use ($simple_html) { - return str_replace($match[0], '

    ' . Map::byCoordinates(str_replace('/', ' ', $match[1]), $simple_html) . '

    ', $match[0]); - }, - $text - ); - } - if (strpos($text, '[map]') !== false) { - $text = preg_replace("/\[map\]/", '

    ', $text); - } - - // Check for headers - $text = preg_replace("(\[h1\](.*?)\[\/h1\])ism", '

    $1

    ', $text); - $text = preg_replace("(\[h2\](.*?)\[\/h2\])ism", '

    $1

    ', $text); - $text = preg_replace("(\[h3\](.*?)\[\/h3\])ism", '

    $1

    ', $text); - $text = preg_replace("(\[h4\](.*?)\[\/h4\])ism", '

    $1

    ', $text); - $text = preg_replace("(\[h5\](.*?)\[\/h5\])ism", '
    $1
    ', $text); - $text = preg_replace("(\[h6\](.*?)\[\/h6\])ism", '
    $1
    ', $text); - - // Check for paragraph - $text = preg_replace("(\[p\](.*?)\[\/p\])ism", '

    $1

    ', $text); - - // Check for bold text - $text = preg_replace("(\[b\](.*?)\[\/b\])ism", '$1', $text); - - // Check for Italics text - $text = preg_replace("(\[i\](.*?)\[\/i\])ism", '$1', $text); - - // Check for Underline text - $text = preg_replace("(\[u\](.*?)\[\/u\])ism", '$1', $text); - - // Check for strike-through text - $text = preg_replace("(\[s\](.*?)\[\/s\])ism", '$1', $text); - - // Check for over-line text - $text = preg_replace("(\[o\](.*?)\[\/o\])ism", '$1', $text); - - // Check for colored text - $text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])ism", "$2", $text); - - // Check for sized text - // [size=50] --> font-size: 50px (with the unit). - $text = preg_replace("(\[size=(\d*?)\](.*?)\[\/size\])ism", "$2", $text); - $text = preg_replace("(\[size=(.*?)\](.*?)\[\/size\])ism", "$2", $text); - - // Check for centered text - $text = preg_replace("(\[center\](.*?)\[\/center\])ism", "
    $1
    ", $text); - - // Check for list text - $text = str_replace("[*]", "
  • ", $text); - - // Check for style sheet commands - $text = preg_replace_callback( - "(\[style=(.*?)\](.*?)\[\/style\])ism", - function ($match) { - return "" . $match[2] . ""; - }, - $text - ); - - // Check for CSS classes - $text = preg_replace_callback( - "(\[class=(.*?)\](.*?)\[\/class\])ism", - function ($match) { - return "" . $match[2] . ""; - }, - $text - ); - - // handle nested lists - $endlessloop = 0; - - while ((((strpos($text, "[/list]") !== false) && (strpos($text, "[list") !== false)) || - ((strpos($text, "[/ol]") !== false) && (strpos($text, "[ol]") !== false)) || - ((strpos($text, "[/ul]") !== false) && (strpos($text, "[ul]") !== false)) || - ((strpos($text, "[/li]") !== false) && (strpos($text, "[li]") !== false))) && (++$endlessloop < 20)) { - $text = preg_replace("/\[list\](.*?)\[\/list\]/ism", '
      $1
    ', $text); - $text = preg_replace("/\[list=\](.*?)\[\/list\]/ism", '
      $1
    ', $text); - $text = preg_replace("/\[list=1\](.*?)\[\/list\]/ism", '
      $1
    ', $text); - $text = preg_replace("/\[list=((?-i)i)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); - $text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); - $text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); - $text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '
      $2
    ', $text); - $text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '
      $1
    ', $text); - $text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '
      $1
    ', $text); - $text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '
  • $1
  • ', $text); - } - - $text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '$1', $text); - $text = preg_replace("/\[td\](.*?)\[\/td\]/sm", '$1', $text); - $text = preg_replace("/\[tr\](.*?)\[\/tr\]/sm", '$1', $text); - $text = preg_replace("/\[table\](.*?)\[\/table\]/sm", '$1
    ', $text); - - $text = preg_replace("/\[table border=1\](.*?)\[\/table\]/sm", '$1
    ', $text); - $text = preg_replace("/\[table border=0\](.*?)\[\/table\]/sm", '$1
    ', $text); - - $text = str_replace('[hr]', '
    ', $text); - - // This is actually executed in Item::prepareBody() - - $text = str_replace('[nosmile]', '', $text); - - // Check for font change text - $text = preg_replace("/\[font=(.*?)\](.*?)\[\/font\]/sm", "$2", $text); - - // Declare the format for [spoiler] layout - $SpoilerLayout = '
    $1
    '; - - // Check for [spoiler] text - // handle nested quotes - $endlessloop = 0; - while ((strpos($text, "[/spoiler]") !== false) && (strpos($text, "[spoiler]") !== false) && (++$endlessloop < 20)) { - $text = preg_replace("/\[spoiler\](.*?)\[\/spoiler\]/ism", "$SpoilerLayout", $text); - } - - // Check for [spoiler=Author] text - - $t_wrote = L10n::t('$1 wrote:'); - - // handle nested quotes - $endlessloop = 0; - while ((strpos($text, "[/spoiler]")!== false) && (strpos($text, "[spoiler=") !== false) && (++$endlessloop < 20)) { - $text = preg_replace("/\[spoiler=[\"\']*(.*?)[\"\']*\](.*?)\[\/spoiler\]/ism", - "
    " . $t_wrote . "
    $2
    ", - $text); - } - - // Declare the format for [quote] layout - $QuoteLayout = '
    $1
    '; - - // Check for [quote] text - // handle nested quotes - $endlessloop = 0; - while ((strpos($text, "[/quote]") !== false) && (strpos($text, "[quote]") !== false) && (++$endlessloop < 20)) { - $text = preg_replace("/\[quote\](.*?)\[\/quote\]/ism", "$QuoteLayout", $text); - } - - // Check for [quote=Author] text - - $t_wrote = L10n::t('$1 wrote:'); - - // handle nested quotes - $endlessloop = 0; - while ((strpos($text, "[/quote]")!== false) && (strpos($text, "[quote=") !== false) && (++$endlessloop < 20)) { - $text = preg_replace("/\[quote=[\"\']*(.*?)[\"\']*\](.*?)\[\/quote\]/ism", - "

    " . $t_wrote . "

    $2
    ", - $text); - } - - - // [img=widthxheight]image source[/img] - $text = preg_replace_callback( - "/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", - function ($matches) use ($simple_html) { - if (strpos($matches[3], "data:image/") === 0) { - return $matches[0]; - } - - $matches[3] = self::proxyUrl($matches[3], $simple_html); - return "[img=" . $matches[1] . "x" . $matches[2] . "]" . $matches[3] . "[/img]"; - }, - $text - ); - - $text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '', $text); - $text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '', $text); - - $text = preg_replace_callback("/\[img\=([$URLSearchString]*)\](.*?)\[\/img\]/ism", - function ($matches) use ($simple_html) { - $matches[1] = self::proxyUrl($matches[1], $simple_html); - $matches[2] = htmlspecialchars($matches[2], ENT_COMPAT); - return '' . $matches[2] . ''; - }, - $text); - - // Images - // [img]pathtoimage[/img] - $text = preg_replace_callback( - "/\[img\](.*?)\[\/img\]/ism", - function ($matches) use ($simple_html) { - if (strpos($matches[1], "data:image/") === 0) { - return $matches[0]; - } - - $matches[1] = self::proxyUrl($matches[1], $simple_html); - return "[img]" . $matches[1] . "[/img]"; - }, - $text - ); - - $text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . L10n::t('Image/photo') . '', $text); - $text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '' . L10n::t('Image/photo') . '', $text); - - // Shared content - $text = self::convertShare( - $text, - function (array $attributes, array $author_contact, $content, $is_quote_share) use ($simple_html) { - return self::convertShareCallback($attributes, $author_contact, $content, $is_quote_share, $simple_html); - } - ); - - $text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $text); - $text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $text); - //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $Text); - - // Try to Oembed - if ($try_oembed) { - $text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4).*?)\[\/video\]/ism", '', $text); - $text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3).*?)\[\/audio\]/ism", '', $text); - - $text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", $try_oembed_callback, $text); - $text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", $try_oembed_callback, $text); - } else { - $text = preg_replace("/\[video\](.*?)\[\/video\]/ism", - '$1', $text); - $text = preg_replace("/\[audio\](.*?)\[\/audio\]/ism", - '$1', $text); - } - - // html5 video and audio - - - if ($try_oembed) { - $text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '', $text); - } else { - $text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $text); - } - - // Youtube extensions - if ($try_oembed) { - $text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", $try_oembed_callback, $text); - $text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", $try_oembed_callback, $text); - $text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism", $try_oembed_callback, $text); - } - - $text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); - $text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/embed\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); - $text = preg_replace("/\[youtube\]https?:\/\/youtu.be\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); - - if ($try_oembed) { - $text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", '', $text); - } else { - $text = preg_replace("/\[youtube\]([A-Za-z0-9\-_=]+)(.*?)\[\/youtube\]/ism", - 'https://www.youtube.com/watch?v=$1', $text); - } - - if ($try_oembed) { - $text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism", $try_oembed_callback, $text); - $text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism", $try_oembed_callback, $text); - } - - $text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); - $text = preg_replace("/\[vimeo\]https?:\/\/vimeo.com\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); - - if ($try_oembed) { - $text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", '', $text); - } else { - $text = preg_replace("/\[vimeo\]([0-9]+)(.*?)\[\/vimeo\]/ism", - 'https://vimeo.com/$1', $text); - } - - // oembed tag - $text = OEmbed::BBCode2HTML($text); - - // Avoid triple linefeeds through oembed - $text = str_replace("


    ", "

    ", $text); - - // If we found an event earlier, strip out all the event code and replace with a reformatted version. - // Replace the event-start section with the entire formatted event. The other bbcode is stripped. - // Summary (e.g. title) is required, earlier revisions only required description (in addition to - // start which is always required). Allow desc with a missing summary for compatibility. - - if ((!empty($ev['desc']) || !empty($ev['summary'])) && !empty($ev['start'])) { - $sub = Event::getHTML($ev, $simple_html); - - $text = preg_replace("/\[event\-summary\](.*?)\[\/event\-summary\]/ism", '', $text); - $text = preg_replace("/\[event\-description\](.*?)\[\/event\-description\]/ism", '', $text); - $text = preg_replace("/\[event\-start\](.*?)\[\/event\-start\]/ism", $sub, $text); - $text = preg_replace("/\[event\-finish\](.*?)\[\/event\-finish\]/ism", '', $text); - $text = preg_replace("/\[event\-location\](.*?)\[\/event\-location\]/ism", '', $text); - $text = preg_replace("/\[event\-adjust\](.*?)\[\/event\-adjust\]/ism", '', $text); - $text = preg_replace("/\[event\-id\](.*?)\[\/event\-id\]/ism", '', $text); - } - - // Replace non graphical smilies for external posts - if ($simple_html) { - $text = Smilies::replace($text); - } - // Unhide all [noparse] contained bbtags unspacefying them // and triming the [noparse] tag. diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index 864a3794d..f74aebaab 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -134,4 +134,47 @@ class BBCodeTest extends MockedTest $this->assertNotEquals($assert, $output); } } + + public function dataBBCodes() + { + return [ + 'bug-7271-condensed-space' => [ + 'expectedHtml' => '', + 'text' => '[ol][*] http://example.com/[/ol]', + ], + 'bug-7271-condensed-nospace' => [ + 'expectedHtml' => '', + 'text' => '[ol][*]http://example.com/[/ol]', + ], + 'bug-7271-indented-space' => [ + 'expectedHtml' => '', + 'text' => '[ul] +[*] http://example.com/ +[/ul]', + ], + 'bug-7271-indented-nospace' => [ + 'expectedHtml' => '', + 'text' => '[ul] +[*]http://example.com/ +[/ul]', + ], + ]; + } + + /** + * Test convert bbcodes to HTML + * @dataProvider dataBBCodes + * + * @param string $expectedHtml Expected HTML output + * @param string $text BBCode text + * @param int $simpleHtml BBCode::convert method $simple_html parameter value, optional. + * @param bool $forPlaintext BBCode::convert method $for_plaintext parameter value, optional. + * @throws \Friendica\Network\HTTPException\InternalServerErrorException + */ + public function testConvert($expectedHtml, $text, $simpleHtml = 0, $forPlaintext = false) + { + $actual = BBCode::convert($text, false, $simpleHtml, $forPlaintext); + + $this->assertEquals($expectedHtml, $actual); + } } From 84ccaf50fa547d8c336bc1e635f2dcfe2c09255b Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 15 Jun 2019 22:26:29 -0400 Subject: [PATCH 618/653] Allow brackets in URLs - Remove obsolete $URLSearchString variable - Add related tests --- src/Content/Text/BBCode.php | 65 ++++++++++++--------------- tests/src/Content/Text/BBCodeTest.php | 8 ++++ 2 files changed, 36 insertions(+), 37 deletions(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index f51d7f27b..2113c6fa2 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -72,9 +72,7 @@ class BBCode extends BaseObject $attacheddata = $data[2]; - $URLSearchString = "^\[\]"; - - if (preg_match("/\[img\]([$URLSearchString]*)\[\/img\]/ism", $attacheddata, $matches)) { + if (preg_match("/\[img\](.*?)\[\/img\]/ism", $attacheddata, $matches)) { $picturedata = Image::getInfoFromURL($matches[1]); @@ -87,12 +85,12 @@ class BBCode extends BaseObject } } - if (preg_match("/\[bookmark\=([$URLSearchString]*)\](.*?)\[\/bookmark\]/ism", $attacheddata, $matches)) { + if (preg_match("/\[bookmark\=(.*?)\](.*?)\[\/bookmark\]/ism", $attacheddata, $matches)) { $post["url"] = $matches[1]; $post["title"] = $matches[2]; } if (!empty($post["url"]) && (in_array($post["type"], ["link", "video"])) - && preg_match("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", $attacheddata, $matches)) { + && preg_match("/\[url\=(.*?)\](.*?)\[\/url\]/ism", $attacheddata, $matches)) { $post["url"] = $matches[1]; } @@ -245,11 +243,9 @@ class BBCode extends BaseObject // Simplify image codes $body = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $body); - $URLSearchString = "^\[\]"; + $body = preg_replace("/\[img\=(.*?)\](.*?)\[\/img\]/ism", '[img]$1[/img]', $body); - $body = preg_replace("/\[img\=([$URLSearchString]*)\](.*?)\[\/img\]/ism", '[img]$1[/img]', $body); - - if (preg_match_all("(\[url=([$URLSearchString]*)\]\s*\[img\]([$URLSearchString]*)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) { + if (preg_match_all("(\[url=(.*?)\]\s*\[img\](.*?)\[\/img\]\s*\[\/url\])ism", $body, $pictures, PREG_SET_ORDER)) { if ((count($pictures) == 1) && !$has_title) { if (!empty($item['object-type']) && ($item['object-type'] == ACTIVITY_OBJ_IMAGE)) { // Replace the preview picture with the real picture @@ -293,7 +289,7 @@ class BBCode extends BaseObject $post["image"] = $pictures[0][2]; $post["text"] = $body; } - } elseif (preg_match_all("(\[img\]([$URLSearchString]*)\[\/img\])ism", $body, $pictures, PREG_SET_ORDER)) { + } elseif (preg_match_all("(\[img\](.*?)\[\/img\])ism", $body, $pictures, PREG_SET_ORDER)) { if ((count($pictures) == 1) && !$has_title) { $post["type"] = "photo"; $post["image"] = $pictures[0][1]; @@ -307,8 +303,8 @@ class BBCode extends BaseObject } // Test for the external links - preg_match_all("(\[url\]([$URLSearchString]*)\[\/url\])ism", $body, $links1, PREG_SET_ORDER); - preg_match_all("(\[url\=([$URLSearchString]*)\].*?\[\/url\])ism", $body, $links2, PREG_SET_ORDER); + preg_match_all("(\[url\](.*?)\[\/url\])ism", $body, $links1, PREG_SET_ORDER); + preg_match_all("(\[url\=(.*?)\].*?\[\/url\])ism", $body, $links2, PREG_SET_ORDER); $links = array_merge($links1, $links2); @@ -1281,11 +1277,6 @@ class BBCode extends BaseObject } while ($oldtext != $text); } - // Set up the parameters for a URL search string - $URLSearchString = "^\[\]"; - // Set up the parameters for a MAIL search string - $MAILSearchString = $URLSearchString; - // Handle attached links or videos $text = self::convertAttachment($text, $simple_html, $try_oembed); @@ -1471,7 +1462,7 @@ class BBCode extends BaseObject $text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '', $text); $text = preg_replace("/\[zmg\=([0-9]*)x([0-9]*)\](.*?)\[\/zmg\]/ism", '', $text); - $text = preg_replace_callback("/\[img\=([$URLSearchString]*)\](.*?)\[\/img\]/ism", + $text = preg_replace_callback("/\[img\=(.*?)\](.*?)\[\/img\]/ism", function ($matches) use ($simple_html) { $matches[1] = self::proxyUrl($matches[1], $simple_html); $matches[2] = htmlspecialchars($matches[2], ENT_COMPAT); @@ -1597,11 +1588,11 @@ class BBCode extends BaseObject if (!$for_plaintext) { $text = preg_replace(Strings::autoLinkRegEx(), '[url]$1[/url]', $text); if (in_array($simple_html, [7, 9])) { - $text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); - $text = preg_replace_callback("/\[url\=([$URLSearchString]*)\]([$URLSearchString]*)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); + $text = preg_replace_callback("/\[url\](.*?)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); + $text = preg_replace_callback("/\[url\=(.*?)\](.*?)\[\/url\]/ism", 'self::convertUrlForOStatusCallback', $text); } } else { - $text = preg_replace("(\[url\]([$URLSearchString]*)\[\/url\])ism", " $1 ", $text); + $text = preg_replace("(\[url\](.*?)\[\/url\])ism", " $1 ", $text); $text = preg_replace_callback("&\[url=([^\[\]]*)\]\[img\](.*)\[\/img\]\[\/url\]&Usi", 'self::removePictureLinksCallback', $text); } @@ -1609,26 +1600,26 @@ class BBCode extends BaseObject // Remove all hashtag addresses if ((!$try_oembed || $simple_html) && !in_array($simple_html, [3, 7, 9])) { - $text = preg_replace("/([#@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$1$3', $text); + $text = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '$1$3', $text); } elseif ($simple_html == 3) { // The ! is converted to @ since Diaspora only understands the @ - $text = preg_replace("/([@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", + $text = preg_replace("/([@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '@$3', $text); } elseif (in_array($simple_html, [7, 9])) { - $text = preg_replace("/([@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", + $text = preg_replace("/([@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '$1$3', $text); } elseif (!$simple_html) { - $text = preg_replace("/([@!])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", + $text = preg_replace("/([@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '$1$3', $text); } // Bookmarks in red - will be converted to bookmarks in friendica - $text = preg_replace("/#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '[bookmark=$1]$1[/bookmark]', $text); - $text = preg_replace("/#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[bookmark=$1]$2[/bookmark]', $text); - $text = preg_replace("/#\[url\=[$URLSearchString]*\]\^\[\/url\]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/i", + $text = preg_replace("/#\^\[url\](.*?)\[\/url\]/ism", '[bookmark=$1]$1[/bookmark]', $text); + $text = preg_replace("/#\^\[url\=(.*?)\](.*?)\[\/url\]/ism", '[bookmark=$1]$2[/bookmark]', $text); + $text = preg_replace("/#\[url\=.*?\]\^\[\/url\]\[url\=(.*?)\](.*?)\[\/url\]/i", "[bookmark=$1]$2[/bookmark]", $text); if (in_array($simple_html, [2, 6, 7, 8])) { @@ -1638,7 +1629,7 @@ class BBCode extends BaseObject } if ($simple_html == 5) { - $text = preg_replace("/[^#@!]\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '[url]$1[/url]', $text); + $text = preg_replace("/[^#@!]\[url\=(.*?)\](.*?)\[\/url\]/ism", '[url]$1[/url]', $text); } // Perform URL Search @@ -1677,7 +1668,7 @@ class BBCode extends BaseObject * - #[url=][/url] * - [url=]#[/url] */ - $text = preg_replace_callback("/(?:#\[url\=[$URLSearchString]*\]|\[url\=[$URLSearchString]*\]#)(.*?)\[\/url\]/ism", function($matches) { + $text = preg_replace_callback("/(?:#\[url\=.*?\]|\[url\=.*?\]#)(.*?)\[\/url\]/ism", function($matches) { return '#' @@ -1688,14 +1679,14 @@ class BBCode extends BaseObject // We need no target="_blank" for local links // convert links start with System::baseUrl() as local link without the target="_blank" attribute $escapedBaseUrl = preg_quote(System::baseUrl(), '/'); - $text = preg_replace("/\[url\](".$escapedBaseUrl."[$URLSearchString]*)\[\/url\]/ism", '$1', $text); - $text = preg_replace("/\[url\=(".$escapedBaseUrl."[$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $text); + $text = preg_replace("/\[url\](".$escapedBaseUrl.".*?)\[\/url\]/ism", '$1', $text); + $text = preg_replace("/\[url\=(".$escapedBaseUrl.".*?)\](.*?)\[\/url\]/ism", '$2', $text); - $text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '$1', $text); - $text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '$2', $text); + $text = preg_replace("/\[url\](.*?)\[\/url\]/ism", '$1', $text); + $text = preg_replace("/\[url\=(.*?)\](.*?)\[\/url\]/ism", '$2', $text); // Red compatibility, though the link can't be authenticated on Friendica - $text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '$2', $text); + $text = preg_replace("/\[zrl\=(.*?)\](.*?)\[\/zrl\]/ism", '$2', $text); // we may need to restrict this further if it picks up too many strays @@ -1704,8 +1695,8 @@ class BBCode extends BaseObject $text = preg_replace('/acct:([^@]+)@((?!\-)(?:[a-zA-Z\d\-]{0,62}[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63})/', 'acct:$1@$2', $text); // Perform MAIL Search - $text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '$1', $text); - $text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '$2', $text); + $text = preg_replace("/\[mail\](.*?)\[\/mail\]/", '$1', $text); + $text = preg_replace("/\[mail\=(.*?)\](.*?)\[\/mail\]/", '$2', $text); // Unhide all [noparse] contained bbtags unspacefying them // and triming the [noparse] tag. diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index f74aebaab..3efb40893 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -113,6 +113,14 @@ class BBCodeTest extends MockedTest 'data' => html_entity_decode('http://example.com ', ENT_QUOTES, 'UTF-8'), 'assertHTML' => false ], + 'bug-7271-query-string-brackets' => [ + 'data' => 'https://example.com/search?q=square+brackets+[url]', + 'assertHTML' => true + ], + 'bug-7271-path-brackets' => [ + 'data' => 'http://example.com/path/to/file[3].html', + 'assertHTML' => true + ], ]; } From da56e0a54105760be744ab68545c282f7cc140c9 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 15 Jun 2019 22:27:20 -0400 Subject: [PATCH 619/653] Add tests folder to typo console coverage - Use correct config object in Console\Typo --- src/Console/Typo.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Console/Typo.php b/src/Console/Typo.php index 5f5fa0ba6..216d05723 100644 --- a/src/Console/Typo.php +++ b/src/Console/Typo.php @@ -43,7 +43,7 @@ HELP; throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments'); } - $php_path = BaseObject::getApp()->getConfigCache()->get('config', 'php_path', 'php'); + $php_path = BaseObject::getApp()->getConfig()->get('config', 'php_path', 'php'); if ($this->getOption('v')) { $this->out('Directory: src'); @@ -57,6 +57,18 @@ HELP; } } + if ($this->getOption('v')) { + $this->out('Directory: tests'); + } + + $Iterator = new \RecursiveDirectoryIterator('tests'); + + foreach (new \RecursiveIteratorIterator($Iterator) as $file) { + if (substr($file, -4) === '.php') { + $this->checkFile($php_path, $file); + } + } + if ($this->getOption('v')) { $this->out('Directory: mod'); } From d54e778f30c9b8b9c899895d2f98371c842ee207 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sun, 16 Jun 2019 23:13:26 -0400 Subject: [PATCH 620/653] Move share conversion at the end of Text\BBCode::convert --- src/Content/Text/BBCode.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 2113c6fa2..61fe707b4 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -1488,14 +1488,6 @@ class BBCode extends BaseObject $text = preg_replace("/\[img\](.*?)\[\/img\]/ism", '' . L10n::t('Image/photo') . '', $text); $text = preg_replace("/\[zmg\](.*?)\[\/zmg\]/ism", '' . L10n::t('Image/photo') . '', $text); - // Shared content - $text = self::convertShare( - $text, - function (array $attributes, array $author_contact, $content, $is_quote_share) use ($simple_html) { - return self::convertShareCallback($attributes, $author_contact, $content, $is_quote_share, $simple_html); - } - ); - $text = preg_replace("/\[crypt\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $text); $text = preg_replace("/\[crypt(.*?)\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $text); //$Text = preg_replace("/\[crypt=(.*?)\](.*?)\[\/crypt\]/ism", '
    ' . L10n::t('Encrypted content') . '
    ', $Text); @@ -1731,6 +1723,14 @@ class BBCode extends BaseObject $regex = '#<([^>]*?)(href)="(?!' . implode('|', $allowed_link_protocols) . ')(.*?)"(.*?)>#ism'; $text = preg_replace($regex, '<$1$2="javascript:void(0)"$4 data-original-href="$3" class="invalid-href" title="' . L10n::t('Invalid link protocol') . '">', $text); + // Shared content + $text = self::convertShare( + $text, + function (array $attributes, array $author_contact, $content, $is_quote_share) use ($simple_html) { + return self::convertShareCallback($attributes, $author_contact, $content, $is_quote_share, $simple_html); + } + ); + if ($saved_image) { $text = self::interpolateSavedImagesIntoItemBody($text, $saved_image); } From 496910e750adb48827fe1ce06c766d5f9f067478 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 17 Jun 2019 11:55:19 +0000 Subject: [PATCH 621/653] Issue #5983: Ignore reshares from blocked and ignored contacts --- src/Model/Item.php | 19 +++++++++++++++++-- src/Protocol/ActivityPub/Processor.php | 13 ++++++++----- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/Model/Item.php b/src/Model/Item.php index 4e0d48807..579d2f68e 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -1453,7 +1453,7 @@ class Item extends BaseObject return 0; } - if (!empty($uid) && Contact::isBlockedByUser($item['author-link'], $uid)) { + if (!empty($uid) && Contact::isBlockedByUser($item['author-id'], $uid)) { Logger::notice('Author is blocked by user', ['author-link' => $item['author-link'], 'uid' => $uid, 'item-uri' => $item['uri']]); return 0; } @@ -1473,11 +1473,26 @@ class Item extends BaseObject return 0; } - if (!empty($uid) && Contact::isBlockedByUser($item['owner-link'], $uid)) { + if (!empty($uid) && Contact::isBlockedByUser($item['owner-id'], $uid)) { Logger::notice('Owner is blocked by user', ['owner-link' => $item['owner-link'], 'uid' => $uid, 'item-uri' => $item['uri']]); return 0; } + // The causer is set during a thread completion, for example because of a reshare. It countains the responsible actor. + if (!empty($uid) && !empty($item['causer-id']) && Contact::isBlockedByUser($item['causer-id'], $uid)) { + Logger::notice('Causer is blocked by user', ['causer-link' => $item['causer-link'], 'uid' => $uid, 'item-uri' => $item['uri']]); + return 0; + } + + if (!empty($uid) && !empty($item['causer-id']) && ($item['parent-uri'] == $item['uri']) && Contact::isIgnoredByUser($item['causer-id'], $uid)) { + Logger::notice('Causer is ignored by user', ['causer-link' => $item['causer-link'], 'uid' => $uid, 'item-uri' => $item['uri']]); + return 0; + } + + // We don't store the causer, we only have it here for the checks above + unset($item['causer-id']); + unset($item['causer-link']); + if ($item['network'] == Protocol::PHANTOM) { $item['network'] = Protocol::DFRN; Logger::notice('Missing network, setting to {network}.', [ diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 61f6389ca..41aed2fe3 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -370,12 +370,15 @@ class Processor $item['private'] = !in_array(0, $activity['receiver']); $item['author-link'] = $activity['author']; $item['author-id'] = Contact::getIdForURL($activity['author'], 0, true); + $item['owner-link'] = $activity['actor']; + $item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true); - if (empty($activity['thread-completion'])) { - $item['owner-link'] = $activity['actor']; - $item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true); - } else { - Logger::info('Ignoring actor because of thread completion.'); + if (!empty($activity['thread-completion'])) { + // Store the original actor in the "causer" fields to enable the check for ignored or blocked contacts + $item['causer-link'] = $item['owner-link']; + $item['causer-id'] = $item['owner-id']; + + Logger::info('Ignoring actor because of thread completion.', ['actor' => $item['owner-link']]); $item['owner-link'] = $item['author-link']; $item['owner-id'] = $item['author-id']; } From ea90554e7f3e2feb50951d1bdc5a6be5c8d3635d Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 18 Jun 2019 07:47:21 +0000 Subject: [PATCH 622/653] Fix the base url detection of AP profiles --- src/Model/APContact.php | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index c308da388..7e49638f9 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -22,10 +22,11 @@ class APContact extends BaseObject * Resolves the profile url from the address by using webfinger * * @param string $addr profile address (user@domain.tld) - * @return string url + * @param string $url profile URL. When set then we return "true" when this profile url can be found at the address + * @return string|boolean url * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - private static function addrToUrl($addr) + private static function addrToUrl($addr, $url = null) { $addr_parts = explode('@', $addr); if (count($addr_parts) != 2) { @@ -36,7 +37,13 @@ class APContact extends BaseObject $curlResult = Network::curl($webfinger, false, ['accept_content' => 'application/jrd+json,application/json']); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { - return false; + $webfinger = 'http://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr); + + $curlResult = Network::curl($webfinger, false, ['accept_content' => 'application/jrd+json,application/json']); + + if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { + return false; + } } $data = json_decode($curlResult->getBody(), true); @@ -46,11 +53,15 @@ class APContact extends BaseObject } foreach ($data['links'] as $link) { + if (!empty($url) && !empty($link['href']) && ($link['href'] == $url)) { + return true; + } + if (empty($link['href']) || empty($link['rel']) || empty($link['type'])) { continue; } - if (($link['rel'] == 'self') && ($link['type'] == 'application/activity+json')) { + if (empty($url) && ($link['rel'] == 'self') && ($link['type'] == 'application/activity+json')) { return $link['href']; } } @@ -189,11 +200,13 @@ class APContact extends BaseObject // Unhandled from Kroeg // kroeg:blocks, updated - // Check if the address is resolvable - if (self::addrToUrl($apcontact['addr']) == $apcontact['url']) { - $parts = parse_url($apcontact['url']); - unset($parts['path']); - $apcontact['baseurl'] = Network::unparseURL($parts); + $parts = parse_url($apcontact['url']); + unset($parts['path']); + $baseurl = Network::unparseURL($parts); + + // Check if the address is resolvable or the profile url is identical with the base url of the system + if (self::addrToUrl($apcontact['addr'], $apcontact['url']) || Strings::compareLink($apcontact['url'], $baseurl)) { + $apcontact['baseurl'] = $baseurl; } else { $apcontact['addr'] = null; } @@ -210,6 +223,11 @@ class APContact extends BaseObject DBA::update('apcontact', $apcontact, ['url' => $url], true); + // We delete the old entry when the URL is changed + if (($url != $apcontact['url']) && DBA::exists('apcontact', ['url' => $url]) && DBA::exists('apcontact', ['url' => $apcontact['url']])) { + DBA::delete('apcontact', ['url' => $url]); + } + // Update some data in the contact table with various ways to catch them all $contact_fields = ['name' => $apcontact['name'], 'about' => $apcontact['about'], 'alias' => $apcontact['alias']]; From b48a49b0f57e276fd2c504cdeb602c421a1d4fe3 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 18 Jun 2019 08:05:45 +0000 Subject: [PATCH 623/653] Added timeout --- src/Model/APContact.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 7e49638f9..ff2829974 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -9,6 +9,7 @@ namespace Friendica\Model; use Friendica\BaseObject; use Friendica\Content\Text\HTML; use Friendica\Core\Logger; +use Friendica\Core\Config; use Friendica\Database\DBA; use Friendica\Protocol\ActivityPub; use Friendica\Util\Network; @@ -33,13 +34,15 @@ class APContact extends BaseObject return false; } + $xrd_timeout = Config::get('system', 'xrd_timeout'); + $webfinger = 'https://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr); - $curlResult = Network::curl($webfinger, false, ['accept_content' => 'application/jrd+json,application/json']); + $curlResult = Network::curl($webfinger, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/jrd+json,application/json']); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { $webfinger = 'http://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr); - $curlResult = Network::curl($webfinger, false, ['accept_content' => 'application/jrd+json,application/json']); + $curlResult = Network::curl($webfinger, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/jrd+json,application/json']); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { return false; From 4ab772ed673d38ff7458e2e0155fdf9b9155551f Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 19 Jun 2019 17:05:29 +0000 Subject: [PATCH 624/653] Issue 6477: Automatically repair self contact avatar --- src/Model/Contact.php | 29 +++++----- src/Model/User.php | 34 ++++++++++-- src/Module/Xrd.php | 71 +++++++++++++----------- src/Protocol/ActivityPub/Transmitter.php | 7 +-- view/templates/tag_slap.tpl | 31 ----------- view/templates/xrd_person.tpl | 2 +- 6 files changed, 84 insertions(+), 90 deletions(-) delete mode 100644 view/templates/tag_slap.tpl diff --git a/src/Model/Contact.php b/src/Model/Contact.php index a7914a190..9e3f2a15d 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -593,11 +593,13 @@ class Contact extends BaseObject return; } + $file_suffix = 'jpg'; + $fields = ['name' => $profile['name'], 'nick' => $user['nickname'], 'avatar-date' => $self['avatar-date'], 'location' => Profile::formatLocation($profile), 'about' => $profile['about'], 'keywords' => $profile['pub_keywords'], - 'gender' => $profile['gender'], 'avatar' => $profile['photo'], - 'contact-type' => $user['account-type'], 'xmpp' => $profile['xmpp']]; + 'gender' => $profile['gender'], 'contact-type' => $user['account-type'], + 'xmpp' => $profile['xmpp']]; $avatar = Photo::selectFirst(['resource-id', 'type'], ['uid' => $uid, 'profile' => true]); if (DBA::isResult($avatar)) { @@ -609,8 +611,6 @@ class Contact extends BaseObject $types = Image::supportedTypes(); if (isset($types[$avatar['type']])) { $file_suffix = $types[$avatar['type']]; - } else { - $file_suffix = 'jpg'; } // We are adding a timestamp value so that other systems won't use cached content @@ -629,6 +629,7 @@ class Contact extends BaseObject $fields['micro'] = System::baseUrl() . '/images/person-48.jpg'; } + $fields['avatar'] = System::baseUrl() . '/photo/profile/' .$uid . '.' . $file_suffix; $fields['forum'] = $user['page-flags'] == User::PAGE_FLAGS_COMMUNITY; $fields['prv'] = $user['page-flags'] == User::PAGE_FLAGS_PRVGROUP; @@ -661,8 +662,8 @@ class Contact extends BaseObject DBA::update('contact', $fields, ['uid' => 0, 'nurl' => $self['nurl']]); // Update the profile - $fields = ['photo' => System::baseUrl() . '/photo/profile/' .$uid . '.jpg', - 'thumb' => System::baseUrl() . '/photo/avatar/' . $uid .'.jpg']; + $fields = ['photo' => System::baseUrl() . '/photo/profile/' .$uid . '.' . $file_suffix, + 'thumb' => System::baseUrl() . '/photo/avatar/' . $uid .'.' . $file_suffix]; DBA::update('profile', $fields, ['uid' => $uid, 'is-default' => true]); } } @@ -1725,7 +1726,7 @@ class Contact extends BaseObject */ public static function updateAvatar($avatar, $uid, $cid, $force = false) { - $contact = DBA::selectFirst('contact', ['avatar', 'photo', 'thumb', 'micro', 'nurl'], ['id' => $cid]); + $contact = DBA::selectFirst('contact', ['avatar', 'photo', 'thumb', 'micro', 'nurl'], ['id' => $cid, 'self' => false]); if (!DBA::isResult($contact)) { return false; } else { @@ -2153,7 +2154,7 @@ class Contact extends BaseObject return false; } - $fields = ['url', 'name', 'nick', 'photo', 'network', 'blocked']; + $fields = ['url', 'name', 'nick', 'avatar', 'photo', 'network', 'blocked']; $pub_contact = DBA::selectFirst('contact', $fields, ['id' => $datarray['author-id']]); if (!DBA::isResult($pub_contact)) { // Should never happen @@ -2167,16 +2168,16 @@ class Contact extends BaseObject $url = defaults($datarray, 'author-link', $pub_contact['url']); $name = $pub_contact['name']; - $photo = $pub_contact['photo']; + $photo = defaults($pub_contact, 'avatar', $pub_contact["photo"]); $nick = $pub_contact['nick']; $network = $pub_contact['network']; if (!empty($contact)) { - // Contact is blocked at user-level - if (!empty($contact['id']) && !empty($importer['id']) && - self::isBlockedByUser($contact['id'], $importer['id'])) { - return false; - } + // Contact is blocked at user-level + if (!empty($contact['id']) && !empty($importer['id']) && + self::isBlockedByUser($contact['id'], $importer['id'])) { + return false; + } // Make sure that the existing contact isn't archived self::unmarkForArchival($contact); diff --git a/src/Model/User.php b/src/Model/User.php index b73356306..de6931052 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -16,6 +16,7 @@ use Friendica\Core\Protocol; use Friendica\Core\System; use Friendica\Core\Worker; use Friendica\Database\DBA; +use Friendica\Model\Photo; use Friendica\Object\Image; use Friendica\Util\Crypto; use Friendica\Util\DateTimeFormat; @@ -149,10 +150,11 @@ class User * @brief Get owner data by user id * * @param int $uid + * @param boolean $check_valid Test if data is invalid and correct it * @return boolean|array * @throws Exception */ - public static function getOwnerDataById($uid) { + public static function getOwnerDataById($uid, $check_valid = true) { $r = DBA::fetchFirst("SELECT `contact`.*, `user`.`prvkey` AS `uprvkey`, @@ -180,12 +182,34 @@ class User return false; } - // Check if the returned data is valid, otherwise fix it. See issue #6122 - $url = System::baseUrl() . '/profile/' . $r['nickname']; - $addr = $r['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3); + if (!$check_valid) { + return $r; + } - if (($addr != $r['addr']) || ($r['url'] != $url) || ($r['nurl'] != Strings::normaliseLink($r['url']))) { + // Check if the returned data is valid, otherwise fix it. See issue #6122 + + // Check for correct url and normalised nurl + $url = System::baseUrl() . '/profile/' . $r['nickname']; + $repair = ($r['url'] != $url) || ($r['nurl'] != Strings::normaliseLink($r['url'])); + + if (!$repair) { + // Check if "addr" is present and correct + $addr = $r['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3); + $repair = ($addr != $r['addr']); + } + + if (!$repair) { + // Check if the avatar field is filled and the photo directs to the correct path + $avatar = Photo::selectFirst(['resource-id'], ['uid' => $uid, 'profile' => true]); + if (DBA::isResult($avatar)) { + $repair = empty($r['avatar']) || !strpos($r['photo'], $avatar['resource-id']); + } + } + + if ($repair) { Contact::updateSelfFromUserID($uid); + // Return the corrected data and avoid a loop + $r = self::getOwnerDataById($uid, false); } return $r; diff --git a/src/Module/Xrd.php b/src/Module/Xrd.php index b6bd87594..0618a5de6 100644 --- a/src/Module/Xrd.php +++ b/src/Module/Xrd.php @@ -4,9 +4,11 @@ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Core\Hook; +use Friendica\Database\DBA; use Friendica\Core\Renderer; use Friendica\Core\System; use Friendica\Model\User; +use Friendica\Model\Photo; use Friendica\Protocol\Salmon; use Friendica\Util\Strings; @@ -61,67 +63,69 @@ class Xrd extends BaseModule throw new \Friendica\Network\HTTPException\NotFoundException(); } - $profileURL = $app->getBaseURL() . '/profile/' . $user['nickname']; - $alias = str_replace('/profile/', '/~', $profileURL); + $owner = User::getOwnerDataById($user['uid']); - $addr = 'acct:' . $user['nickname'] . '@' . $app->getHostName(); - if ($app->getURLPath()) { - $addr .= '/' . $app->getURLPath(); + $alias = str_replace('/profile/', '/~', $owner['url']); + + $avatar = Photo::selectFirst(['type'], ['uid' => $owner['uid'], 'profile' => true]); + + if (!DBA::isResult($avatar)) { + $avatar = ['type' => 'image/jpeg']; } if ($mode == 'xml') { - self::printXML($addr, $alias, $profileURL, $app->getBaseURL(), $user); + self::printXML($alias, $app->getBaseURL(), $user, $owner, $avatar); } else { - self::printJSON($addr, $alias, $profileURL, $app->getBaseURL(), $user); + self::printJSON($alias, $app->getBaseURL(), $owner, $avatar); } } - private static function printJSON($uri, $alias, $orofileURL, $baseURL, $user) + private static function printJSON($alias, $baseURL, $owner, $avatar) { - $salmon_key = Salmon::salmonKey($user['spubkey']); + $salmon_key = Salmon::salmonKey($owner['spubkey']); header('Access-Control-Allow-Origin: *'); header('Content-type: application/json; charset=utf-8'); $json = [ - 'subject' => $uri, + 'subject' => 'acct:' . $owner['addr'], 'aliases' => [ $alias, - $orofileURL, + $owner['url'], ], 'links' => [ [ 'rel' => NAMESPACE_DFRN, - 'href' => $orofileURL, + 'href' => $owner['url'], ], [ 'rel' => NAMESPACE_FEED, 'type' => 'application/atom+xml', - 'href' => $baseURL . '/dfrn_poll/' . $user['nickname'], + 'href' => $owner['notify'], ], [ 'rel' => 'http://webfinger.net/rel/profile-page', 'type' => 'text/html', - 'href' => $orofileURL, + 'href' => $owner['url'], ], [ 'rel' => 'self', 'type' => 'application/activity+json', - 'href' => $orofileURL, + 'href' => $owner['url'], ], [ 'rel' => 'http://microformats.org/profile/hcard', 'type' => 'text/html', - 'href' => $baseURL . '/hcard/' . $user['nickname'], + 'href' => $baseURL . '/hcard/' . $owner['nickname'], ], [ 'rel' => NAMESPACE_POCO, - 'href' => $baseURL . '/poco/' . $user['nickname'], + 'href' => $owner['poco'], ], [ 'rel' => 'http://webfinger.net/rel/avatar', - 'type' => 'image/jpeg', - 'href' => $baseURL . '/photo/profile/' . $user['uid'] . '.jpg', + 'type' => $avatar['type'], + 'href' => $owner['photo'], ], [ 'rel' => 'http://joindiaspora.com/seed_location', @@ -130,15 +134,15 @@ class Xrd extends BaseModule ], [ 'rel' => 'salmon', - 'href' => $baseURL . '/salmon/' . $user['nickname'], + 'href' => $baseURL . '/salmon/' . $owner['nickname'], ], [ 'rel' => 'http://salmon-protocol.org/ns/salmon-replies', - 'href' => $baseURL . '/salmon/' . $user['nickname'], + 'href' => $baseURL . '/salmon/' . $owner['nickname'], ], [ 'rel' => 'http://salmon-protocol.org/ns/salmon-mention', - 'href' => $baseURL . '/salmon/' . $user['nickname'] . '/mention', + 'href' => $baseURL . '/salmon/' . $owner['nickname'] . '/mention', ], [ 'rel' => 'http://ostatus.org/schema/1.0/subscribe', @@ -160,9 +164,9 @@ class Xrd extends BaseModule exit(); } - private static function printXML($uri, $alias, $profileURL, $baseURL, $user) + private static function printXML($alias, $baseURL, $user, $owner, $avatar) { - $salmon_key = Salmon::salmonKey($user['spubkey']); + $salmon_key = Salmon::salmonKey($owner['spubkey']); header('Access-Control-Allow-Origin: *'); header('Content-type: text/xml'); @@ -170,16 +174,17 @@ class Xrd extends BaseModule $tpl = Renderer::getMarkupTemplate('xrd_person.tpl'); $o = Renderer::replaceMacros($tpl, [ - '$nick' => $user['nickname'], - '$accturi' => $uri, + '$nick' => $owner['nickname'], + '$accturi' => 'acct:' . $owner['addr'], '$alias' => $alias, - '$profile_url' => $profileURL, - '$hcard_url' => $baseURL . '/hcard/' . $user['nickname'], - '$atom' => $baseURL . '/dfrn_poll/' . $user['nickname'], - '$poco_url' => $baseURL . '/poco/' . $user['nickname'], - '$photo' => $baseURL . '/photo/profile/' . $user['uid'] . '.jpg', - '$salmon' => $baseURL . '/salmon/' . $user['nickname'], - '$salmen' => $baseURL . '/salmon/' . $user['nickname'] . '/mention', + '$profile_url' => $owner['url'], + '$hcard_url' => $baseURL . '/hcard/' . $owner['nickname'], + '$atom' => $owner['notify'], + '$poco_url' => $owner['poco'], + '$photo' => $owner['photo'], + '$type' => $avatar['type'], + '$salmon' => $baseURL . '/salmon/' . $owner['nickname'], + '$salmen' => $baseURL . '/salmon/' . $owner['nickname'] . '/mention', '$subscribe' => $baseURL . '/follow?url={uri}', '$openwebauth' => $baseURL . '/owa', '$modexp' => 'data:application/magic-public-key,' . $salmon_key diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 81b8bc1de..cafdfc772 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -229,11 +229,6 @@ class Transmitter return []; } - // On old installations and never changed contacts this might not be filled - if (empty($contact['avatar'])) { - $contact['avatar'] = $contact['photo']; - } - $data = ['@context' => ActivityPub::CONTEXT]; $data['id'] = $contact['url']; $data['diaspora:guid'] = $user['guid']; @@ -254,7 +249,7 @@ class Transmitter 'publicKeyPem' => $user['pubkey']]; $data['endpoints'] = ['sharedInbox' => System::baseUrl() . '/inbox']; $data['icon'] = ['type' => 'Image', - 'url' => $contact['avatar']]; + 'url' => $contact['photo']]; $data['generator'] = self::getService(); diff --git a/view/templates/tag_slap.tpl b/view/templates/tag_slap.tpl deleted file mode 100644 index ac492b6dd..000000000 --- a/view/templates/tag_slap.tpl +++ /dev/null @@ -1,31 +0,0 @@ - - - - {{$name}} - {{$profile_page}} - - - - - {{$item_id}} - {{$title}} - {{$published}} - {{$content nofilter}} - - - http://activitystrea.ms/schema/1.0/person - {{$profile_page}} - - - - {{$nick}} - {{$name}} - - {{$verb}} - - - - - - - diff --git a/view/templates/xrd_person.tpl b/view/templates/xrd_person.tpl index 578698b46..0fb81b09c 100644 --- a/view/templates/xrd_person.tpl +++ b/view/templates/xrd_person.tpl @@ -18,7 +18,7 @@ Date: Wed, 19 Jun 2019 17:21:35 +0000 Subject: [PATCH 625/653] Normalise it --- src/Model/APContact.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index ff2829974..90a8b9e6f 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -40,7 +40,7 @@ class APContact extends BaseObject $curlResult = Network::curl($webfinger, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/jrd+json,application/json']); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { - $webfinger = 'http://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr); + $webfinger = Strings::normalizeLink($webfinger); $curlResult = Network::curl($webfinger, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/jrd+json,application/json']); From d8ed2ed76d94747a4e11801910d1f9afe913d942 Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 19 Jun 2019 18:32:38 +0000 Subject: [PATCH 626/653] it is poll, not notify --- src/Module/Xrd.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Module/Xrd.php b/src/Module/Xrd.php index 0618a5de6..ae020d355 100644 --- a/src/Module/Xrd.php +++ b/src/Module/Xrd.php @@ -101,7 +101,7 @@ class Xrd extends BaseModule [ 'rel' => NAMESPACE_FEED, 'type' => 'application/atom+xml', - 'href' => $owner['notify'], + 'href' => $owner['poll'], ], [ 'rel' => 'http://webfinger.net/rel/profile-page', @@ -179,7 +179,7 @@ class Xrd extends BaseModule '$alias' => $alias, '$profile_url' => $owner['url'], '$hcard_url' => $baseURL . '/hcard/' . $owner['nickname'], - '$atom' => $owner['notify'], + '$atom' => $owner['poll'], '$poco_url' => $owner['poco'], '$photo' => $owner['photo'], '$type' => $avatar['type'], From f878cc26230087d4795ff20fe906bcd93ab1bbda Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 19 Jun 2019 18:38:22 +0000 Subject: [PATCH 627/653] Fix for PR 7280 --- src/Model/APContact.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index 90a8b9e6f..cfbfa683c 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -40,7 +40,7 @@ class APContact extends BaseObject $curlResult = Network::curl($webfinger, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/jrd+json,application/json']); if (!$curlResult->isSuccess() || empty($curlResult->getBody())) { - $webfinger = Strings::normalizeLink($webfinger); + $webfinger = Strings::normaliseLink($webfinger); $curlResult = Network::curl($webfinger, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/jrd+json,application/json']); From 2e4e8bdf0aad96b715a387ec8834a9759ed87ad8 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 20 Jun 2019 03:06:34 +0000 Subject: [PATCH 628/653] Don't send activities to "null" endpoints --- src/Model/APContact.php | 16 +++++++++++----- src/Protocol/ActivityPub/Transmitter.php | 20 ++++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index cfbfa683c..b027d6c47 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -87,6 +87,8 @@ class APContact extends BaseObject return false; } + $fetched_contact = false; + if (empty($update)) { if (is_null($update)) { $ref_update = DateTimeFormat::utc('now - 1 month'); @@ -110,24 +112,28 @@ class APContact extends BaseObject if (!is_null($update)) { return DBA::isResult($apcontact) ? $apcontact : false; } + + if (DBA::isResult($apcontact)) { + $fetched_contact = $apcontact; + } } if (empty(parse_url($url, PHP_URL_SCHEME))) { $url = self::addrToUrl($url); if (empty($url)) { - return false; + return $fetched_contact; } } $data = ActivityPub::fetchContent($url); if (empty($data)) { - return false; + return $fetched_contact; } $compacted = JsonLD::compact($data); if (empty($compacted['@id'])) { - return false; + return $fetched_contact; } $apcontact = []; @@ -168,12 +174,12 @@ class APContact extends BaseObject // Quit if none of the basic values are set if (empty($apcontact['url']) || empty($apcontact['inbox']) || empty($apcontact['type'])) { - return false; + return $fetched_contact; } // Quit if this doesn't seem to be an account at all if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) { - return false; + return $fetched_contact; } $parts = parse_url($apcontact['url']); diff --git a/src/Protocol/ActivityPub/Transmitter.php b/src/Protocol/ActivityPub/Transmitter.php index 81b8bc1de..725680632 100644 --- a/src/Protocol/ActivityPub/Transmitter.php +++ b/src/Protocol/ActivityPub/Transmitter.php @@ -1479,6 +1479,10 @@ class Transmitter public static function sendActivity($activity, $target, $uid, $id = '') { $profile = APContact::getByURL($target); + if (empty($profile['inbox'])) { + Logger::warning('No inbox found for target', ['target' => $target, 'profile' => $profile]); + return; + } $owner = User::getOwnerDataById($uid); @@ -1515,6 +1519,10 @@ class Transmitter public static function sendFollowObject($object, $target, $uid = 0) { $profile = APContact::getByURL($target); + if (empty($profile['inbox'])) { + Logger::warning('No inbox found for target', ['target' => $target, 'profile' => $profile]); + return; + } if (empty($uid)) { // Fetch the list of administrators @@ -1561,6 +1569,10 @@ class Transmitter public static function sendContactAccept($target, $id, $uid) { $profile = APContact::getByURL($target); + if (empty($profile['inbox'])) { + Logger::warning('No inbox found for target', ['target' => $target, 'profile' => $profile]); + return; + } $owner = User::getOwnerDataById($uid); $data = ['@context' => ActivityPub::CONTEXT, @@ -1594,6 +1606,10 @@ class Transmitter public static function sendContactReject($target, $id, $uid) { $profile = APContact::getByURL($target); + if (empty($profile['inbox'])) { + Logger::warning('No inbox found for target', ['target' => $target, 'profile' => $profile]); + return; + } $owner = User::getOwnerDataById($uid); $data = ['@context' => ActivityPub::CONTEXT, @@ -1627,6 +1643,10 @@ class Transmitter public static function sendContactUndo($target, $cid, $uid) { $profile = APContact::getByURL($target); + if (empty($profile['inbox'])) { + Logger::warning('No inbox found for target', ['target' => $target, 'profile' => $profile]); + return; + } $object_id = self::activityIDFromContact($cid); if (empty($object_id)) { From 14c28868eb8ee17f0e9e742f73a10786f2591a76 Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 20 Jun 2019 20:09:33 +0000 Subject: [PATCH 629/653] Issue 6477: Use the correct content-type to resize the images --- src/Model/Contact.php | 9 +++------ src/Model/Photo.php | 9 +++++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Model/Contact.php b/src/Model/Contact.php index 9e3f2a15d..a6026d644 100644 --- a/src/Model/Contact.php +++ b/src/Model/Contact.php @@ -1737,17 +1737,14 @@ class Contact extends BaseObject $photos = Photo::importProfilePhoto($avatar, $uid, $cid, true); if ($photos) { - DBA::update( - 'contact', - ['avatar' => $avatar, 'photo' => $photos[0], 'thumb' => $photos[1], 'micro' => $photos[2], 'avatar-date' => DateTimeFormat::utcNow()], - ['id' => $cid] - ); + $fields = ['avatar' => $avatar, 'photo' => $photos[0], 'thumb' => $photos[1], 'micro' => $photos[2], 'avatar-date' => DateTimeFormat::utcNow()]; + DBA::update('contact', $fields, ['id' => $cid]); // Update the public contact (contact id = 0) if ($uid != 0) { $pcontact = DBA::selectFirst('contact', ['id'], ['nurl' => $contact['nurl'], 'uid' => 0]); if (DBA::isResult($pcontact)) { - self::updateAvatar($avatar, 0, $pcontact['id'], $force); + DBA::update('contact', $fields, ['id' => $pcontact['id']]); } } diff --git a/src/Model/Photo.php b/src/Model/Photo.php index 2d740e137..68665126f 100644 --- a/src/Model/Photo.php +++ b/src/Model/Photo.php @@ -414,7 +414,9 @@ class Photo extends BaseObject $filename = basename($image_url); if (!empty($image_url)) { - $img_str = Network::fetchUrl($image_url, true); + $ret = Network::curl($image_url, true); + $img_str = $ret->getBody(); + $type = $ret->getContentType(); } else { $img_str = ''; } @@ -423,7 +425,10 @@ class Photo extends BaseObject return false; } - $type = Image::guessType($image_url, true); + if (empty($type)) { + $type = Image::guessType($image_url, true); + } + $Image = new Image($img_str, $type); if ($Image->isValid()) { $Image->scaleToSquare(300); From 7c87e83dcfae34c75eb8070f225edab670b81efb Mon Sep 17 00:00:00 2001 From: Michael Date: Thu, 20 Jun 2019 21:56:18 +0000 Subject: [PATCH 630/653] Fix searching for contacts --- src/Module/BaseSearchModule.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Module/BaseSearchModule.php b/src/Module/BaseSearchModule.php index 3393b3412..ed39f071c 100644 --- a/src/Module/BaseSearchModule.php +++ b/src/Module/BaseSearchModule.php @@ -50,7 +50,10 @@ class BaseSearchModule extends BaseModule $search = substr($search, 1); $type = Search::TYPE_PEOPLE; $header = L10n::t('People Search - %s', $search); - $results = Search::getContactsFromProbe($search); + + if (strrpos($search, '@') > 0) { + $results = Search::getContactsFromProbe($search); + } } if (strpos($search, '!') === 0) { From 2deda829c952418982ffc4e685194148a8e8bc70 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Fri, 21 Jun 2019 06:45:20 +0200 Subject: [PATCH 631/653] updated the credits for 2019.06 --- CREDITS.txt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CREDITS.txt b/CREDITS.txt index 3b3e6ad30..c47a8a623 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1,3 +1,5 @@ + + 23n Abinoam P. Marques Jr. Abraham Pérez Hernández @@ -26,6 +28,7 @@ Andy Hee Angristan Anthronaut Arian - Cazare Muncitori +Asher Pen Athalbert aweiher axelt @@ -37,6 +40,8 @@ Beluga Ben Ben Roberts ben-utzer +BinkaDroid +Bjoessi bufalo1973 Calango Jr Carlos Solís @@ -107,6 +112,7 @@ Jens Tautenhahn jensp Jeroen De Meerleer jeroenpraat +JOduMonT Johannes Schwab John Brazil Jonatan Nyberg @@ -175,6 +181,7 @@ R C Rabuzarus Radek Rafael Garau +Rain Hawk Rainulf Pineda Ralf Thees Ralph @@ -183,6 +190,7 @@ rcmaniac rebeka-catalina repat Ricardo Pereira +Rik 4 RJ Madsen Roland Häder Rui Andrada @@ -207,6 +215,7 @@ Steffen K9 StefOfficiel Sveinn í Felli Sven Anders +Sylke Vicious Sylvain Lagacé szymon.filip Sérgio Lima @@ -225,6 +234,7 @@ tomacat tomamplius tomtom84 Tony Baldwin +Torbjörn Andersson TORminator trebor tschlotfeldt @@ -234,6 +244,7 @@ U-SOUND\mike ufic Ulf Rompe Unknown +Valvin Vasudev Kamath Vasya Novikov Vinzenz Vietzke From 470dd6079e94fb0545f4318b3911835c5c059fad Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Fri, 21 Jun 2019 08:52:22 -0400 Subject: [PATCH 632/653] Update default log location - Prevents conflict with /friendica module --- config/settings.config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/settings.config.php b/config/settings.config.php index 31e8dbe5b..bf8b62f15 100644 --- a/config/settings.config.php +++ b/config/settings.config.php @@ -74,7 +74,7 @@ return [ // logfile (String) // The logfile for storing logs. // Can be a full path or a relative path to the Friendica home directory - 'logfile' => 'friendica.log', + 'logfile' => 'log/friendica.log', // loglevel (String) // The loglevel for all logs. From b5de71c3906573d2654e27e28622abd04d859dc7 Mon Sep 17 00:00:00 2001 From: Michael Date: Fri, 21 Jun 2019 17:57:26 +0000 Subject: [PATCH 633/653] Fix a notice when the author is missing --- src/Module/Diaspora/Fetch.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Module/Diaspora/Fetch.php b/src/Module/Diaspora/Fetch.php index bcb33e335..467d64566 100644 --- a/src/Module/Diaspora/Fetch.php +++ b/src/Module/Diaspora/Fetch.php @@ -41,6 +41,9 @@ class Fetch extends BaseModule $item = Item::selectFirst(['author-link'], $condition); if (empty($item)) { $parts = parse_url($item["author-link"]); + if (empty($parts["scheme"]) || empty($parts["host"])) { + throw new HTTPException\InternalServerErrorException(); + } $host = $parts["scheme"] . "://" . $parts["host"]; if (Strings::normaliseLink($host) != Strings::normaliseLink($app->getBaseURL())) { From 289bcfa1213c17dd99d38ef15973c90c53886ea6 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 22 Jun 2019 04:17:38 +0000 Subject: [PATCH 634/653] Fix receiving of DFRN posts with public envelope --- mod/dfrn_notify.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index 1a9f98fa3..e75d975a8 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -190,13 +190,13 @@ function dfrn_dispatch_public($postdata) } // Fetch the corresponding public contact - $contact = Contact::getDetailsByAddr($msg['author'], 0); - if (!$contact) { + $contact_id = Contact::getIdForURL($msg['author']); + if (empty($contact_id)) { Logger::log('Contact not found for address ' . $msg['author']); System::xmlExit(3, 'Contact ' . $msg['author'] . ' not found'); } - $importer = DFRN::getImporter($contact['id']); + $importer = DFRN::getImporter($contact_id); // This should never fail if (empty($importer)) { From acee9c1c91e332a8e280f5ce747e6762af878778 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 22 Jun 2019 07:23:39 +0200 Subject: [PATCH 635/653] CS translation update THX Aditoo --- view/lang/cs/messages.po | 78 ++++++++++++++++++++-------------------- view/lang/cs/strings.php | 76 +++++++++++++++++++-------------------- 2 files changed, 77 insertions(+), 77 deletions(-) diff --git a/view/lang/cs/messages.po b/view/lang/cs/messages.po index 21397c37d..505d242b8 100644 --- a/view/lang/cs/messages.po +++ b/view/lang/cs/messages.po @@ -13,7 +13,7 @@ msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-15 08:55-0400\n" -"PO-Revision-Date: 2019-05-16 17:26+0000\n" +"PO-Revision-Date: 2019-05-17 14:06+0000\n" "Last-Translator: Aditoo\n" "Language-Team: Czech (http://www.transifex.com/Friendica/friendica/language/cs/)\n" "MIME-Version: 1.0\n" @@ -9645,80 +9645,80 @@ msgstr "Dvoufázové ověřování úspěšně zakázáno." msgid "" "

    Use an application on a mobile device to get two-factor authentication " "codes when prompted on login.

    " -msgstr "" +msgstr "

    Pomocí aplikace na mobilním zařízení získejte při přihlášení kódy pro dvoufázové ověřování.

    " #: src/Module/Settings/TwoFactor/Index.php:90 msgid "Authenticator app" -msgstr "" +msgstr "Autentizační aplikace" #: src/Module/Settings/TwoFactor/Index.php:91 msgid "Configured" -msgstr "" +msgstr "Nakonfigurováno" #: src/Module/Settings/TwoFactor/Index.php:91 msgid "Not Configured" -msgstr "" +msgstr "Nenakonfigurováno" #: src/Module/Settings/TwoFactor/Index.php:92 msgid "

    You haven't finished configuring your authenticator app.

    " -msgstr "" +msgstr "

    Nedokončil/a jste konfiguraci vaší autentizační aplikace.

    " #: src/Module/Settings/TwoFactor/Index.php:93 msgid "

    Your authenticator app is correctly configured.

    " -msgstr "" +msgstr "

    Vaše autentizační aplikace je správně nakonfigurována.

    " #: src/Module/Settings/TwoFactor/Index.php:95 msgid "Recovery codes" -msgstr "" +msgstr "Záložní kódy" #: src/Module/Settings/TwoFactor/Index.php:96 msgid "Remaining valid codes" -msgstr "" +msgstr "Zbývající platné kódy" #: src/Module/Settings/TwoFactor/Index.php:98 msgid "" "

    These one-use codes can replace an authenticator app code in case you " "have lost access to it.

    " -msgstr "" +msgstr "

    Tyto jednorázové kódy mohou nahradit kód autentizační aplikace, pokud k ní ztratíte přístup.

    " #: src/Module/Settings/TwoFactor/Index.php:101 msgid "Current password:" -msgstr "" +msgstr "Aktuální heslo:" #: src/Module/Settings/TwoFactor/Index.php:101 msgid "" "You need to provide your current password to change two-factor " "authentication settings." -msgstr "" +msgstr "Pro změnu nastavení dvoufázového ověřování musíte poskytnout vaše aktuální heslo." #: src/Module/Settings/TwoFactor/Index.php:102 msgid "Enable two-factor authentication" -msgstr "" +msgstr "Povolit dvoufázové ověřování" #: src/Module/Settings/TwoFactor/Index.php:103 msgid "Disable two-factor authentication" -msgstr "" +msgstr "Zakázat dvoufázové ověřování" #: src/Module/Settings/TwoFactor/Index.php:104 msgid "Show recovery codes" -msgstr "" +msgstr "Zobrazit záložní kódy" #: src/Module/Settings/TwoFactor/Index.php:105 msgid "Finish app configuration" -msgstr "" +msgstr "Dokončit konfiguraci aplikace" #: src/Module/Settings/TwoFactor/Recovery.php:34 #: src/Module/Settings/TwoFactor/Verify.php:41 msgid "Please enter your password to access this page." -msgstr "" +msgstr "Pro přístup k této stránce prosím zadejte své heslo." #: src/Module/Settings/TwoFactor/Recovery.php:50 msgid "New recovery codes successfully generated." -msgstr "" +msgstr "Nové záložní kódy byly úspěšně vygenerovány." #: src/Module/Settings/TwoFactor/Recovery.php:76 msgid "Two-factor recovery codes" -msgstr "" +msgstr "Dvoufázové záložní kódy" #: src/Module/Settings/TwoFactor/Recovery.php:78 msgid "" @@ -9727,30 +9727,30 @@ msgid "" "codes.

    Put these in a safe spot! If you lose your " "device and don’t have the recovery codes you will lose access to your " "account.

    " -msgstr "" +msgstr "

    Záložní kódy mohou být použity pro přístup k vašemu účtu, pokud ztratíte přístup k vašemu zařízení a nemůžete obdržet dvoufázové autentizační kódy.

    Uložte je na bezpečné místo! Pokud zratíte vaše zařízení a nemáte Záložní kódy, ztratíte přístup ke svému účtu.

    " #: src/Module/Settings/TwoFactor/Recovery.php:80 msgid "" "When you generate new recovery codes, you must copy the new codes. Your old " "codes won’t work anymore." -msgstr "" +msgstr "Když vygenerujete nové záložní kódy, musíte si zkopírovat nové kódy. Vaše staré kódy již nebudou fungovat." #: src/Module/Settings/TwoFactor/Recovery.php:81 msgid "Generate new recovery codes" -msgstr "" +msgstr "Vygenerovat nové záložní kódy" #: src/Module/Settings/TwoFactor/Recovery.php:83 msgid "Next: Verification" -msgstr "" +msgstr "Další: Ověření" #: src/Module/Settings/TwoFactor/Verify.php:63 msgid "Two-factor authentication successfully activated." -msgstr "" +msgstr "Dvoufázové ověření úspěšně aktivováno." #: src/Module/Settings/TwoFactor/Verify.php:67 #: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:41 msgid "Invalid code, please retry." -msgstr "" +msgstr "Neplatný kód, prosím zkuste to znovu." #: src/Module/Settings/TwoFactor/Verify.php:96 #, php-format @@ -9770,33 +9770,33 @@ msgid "" "\t
    Hashing algorithm
    \n" "\t
    SHA-1
    \n" "" -msgstr "" +msgstr "

    Nebo můžete zadat autentizační nastavení manuálně:

    \n
    \n\t
    Vydavatel
    \n\t
    %s
    \n\t
    Jméno účtu
    \n\t
    %s
    \n\t
    Tajný klíč
    \n\t
    %s
    \n\t
    Typ
    \n\t
    Založený na čase
    \n\t
    Počet číslic
    \n\t
    6
    \n\t
    Hashovací algoritmus
    \n\t
    SHA-1
    \n
    " #: src/Module/Settings/TwoFactor/Verify.php:116 msgid "Two-factor code verification" -msgstr "" +msgstr "Ověření dvoufázového kódu" #: src/Module/Settings/TwoFactor/Verify.php:118 msgid "" "

    Please scan this QR Code with your authenticator app and submit the " "provided code.

    " -msgstr "" +msgstr "

    Prosím naskenujte tento QR kód vaší autentizační aplikací a zadejte poskytnutý kód.

    " #: src/Module/Settings/TwoFactor/Verify.php:120 #, php-format msgid "" "

    Or you can open the following URL in your mobile devicde:

    %s

    " -msgstr "" +msgstr "

    Nebo můžete otevřít na vašem mobilním zařízení následující URL:

    %s

    " #: src/Module/Settings/TwoFactor/Verify.php:126 #: src/Module/TwoFactor/Verify.php:63 msgid "Please enter a code from your authentication app" -msgstr "" +msgstr "Prosím zadejte kód z vaší autentizační aplikace" #: src/Module/Settings/TwoFactor/Verify.php:127 msgid "Verify code and enable two-factor authentication" -msgstr "" +msgstr "Ověřit kód a povolit dvoufázové ověřování" #: src/Module/Special/HTTPException.php:32 msgid "Bad Request" @@ -9899,40 +9899,40 @@ msgstr "Prohlášení o soukromí" #: src/Module/TwoFactor/Recovery.php:41 #, php-format msgid "Remaining recovery codes: %d" -msgstr "" +msgstr "Zbývající záložní kódy: %d" #: src/Module/TwoFactor/Recovery.php:65 msgid "Two-factor recovery" -msgstr "" +msgstr "Dvoufázové záložní kódy" #: src/Module/TwoFactor/Recovery.php:66 msgid "" "

    You can enter one of your one-time recovery codes in case you lost access" " to your mobile device.

    " -msgstr "" +msgstr "

    Pokud jste ztratil/a přístup k vašemu mobilnímu zařízení , můžete zadat jeden z vašich jednorázových záložních kódů.

    " #: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:62 #, php-format msgid "Don’t have your phone? Enter a two-factor recovery code" -msgstr "" +msgstr "Nemáte svůj mobil? Zadejte dvoufázový záložní kód" #: src/Module/TwoFactor/Recovery.php:68 msgid "Please enter a recovery code" -msgstr "" +msgstr "Prosím zadejte záložní kód" #: src/Module/TwoFactor/Recovery.php:69 msgid "Submit recovery code and complete login" -msgstr "" +msgstr "Odeslat záložní kód a dokončit přihlášení" #: src/Module/TwoFactor/Verify.php:61 msgid "" "

    Open the two-factor authentication app on your device to get an " "authentication code and verify your identity.

    " -msgstr "" +msgstr "

    Otevřete na vašem zařízení aplikaci pro dvoufázové ověřování, získejte autentizační kód a ověřte svou identitu.

    " #: src/Module/TwoFactor/Verify.php:64 msgid "Verify code and complete login" -msgstr "" +msgstr "Ověřit kód a dokončit přihlášení" #: src/Object/Post.php:137 msgid "This entry was edited" diff --git a/view/lang/cs/strings.php b/view/lang/cs/strings.php index d9cb9a1cb..1bcaf4305 100644 --- a/view/lang/cs/strings.php +++ b/view/lang/cs/strings.php @@ -2216,36 +2216,36 @@ $a->strings["Registration successful."] = "Registrace byla úspěšná."; $a->strings["Your registration can not be processed."] = "Vaši registraci nelze zpracovat."; $a->strings["Your registration is pending approval by the site owner."] = "Vaše registrace čeká na schválení vlastníkem serveru."; $a->strings["Two-factor authentication successfully disabled."] = "Dvoufázové ověřování úspěšně zakázáno."; -$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = ""; -$a->strings["Authenticator app"] = ""; -$a->strings["Configured"] = ""; -$a->strings["Not Configured"] = ""; -$a->strings["

    You haven't finished configuring your authenticator app.

    "] = ""; -$a->strings["

    Your authenticator app is correctly configured.

    "] = ""; -$a->strings["Recovery codes"] = ""; -$a->strings["Remaining valid codes"] = ""; -$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = ""; -$a->strings["Current password:"] = ""; -$a->strings["You need to provide your current password to change two-factor authentication settings."] = ""; -$a->strings["Enable two-factor authentication"] = ""; -$a->strings["Disable two-factor authentication"] = ""; -$a->strings["Show recovery codes"] = ""; -$a->strings["Finish app configuration"] = ""; -$a->strings["Please enter your password to access this page."] = ""; -$a->strings["New recovery codes successfully generated."] = ""; -$a->strings["Two-factor recovery codes"] = ""; -$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = ""; -$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = ""; -$a->strings["Generate new recovery codes"] = ""; -$a->strings["Next: Verification"] = ""; -$a->strings["Two-factor authentication successfully activated."] = ""; -$a->strings["Invalid code, please retry."] = ""; -$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = ""; -$a->strings["Two-factor code verification"] = ""; -$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = ""; -$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = ""; -$a->strings["Please enter a code from your authentication app"] = ""; -$a->strings["Verify code and enable two-factor authentication"] = ""; +$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = "

    Pomocí aplikace na mobilním zařízení získejte při přihlášení kódy pro dvoufázové ověřování.

    "; +$a->strings["Authenticator app"] = "Autentizační aplikace"; +$a->strings["Configured"] = "Nakonfigurováno"; +$a->strings["Not Configured"] = "Nenakonfigurováno"; +$a->strings["

    You haven't finished configuring your authenticator app.

    "] = "

    Nedokončil/a jste konfiguraci vaší autentizační aplikace.

    "; +$a->strings["

    Your authenticator app is correctly configured.

    "] = "

    Vaše autentizační aplikace je správně nakonfigurována.

    "; +$a->strings["Recovery codes"] = "Záložní kódy"; +$a->strings["Remaining valid codes"] = "Zbývající platné kódy"; +$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = "

    Tyto jednorázové kódy mohou nahradit kód autentizační aplikace, pokud k ní ztratíte přístup.

    "; +$a->strings["Current password:"] = "Aktuální heslo:"; +$a->strings["You need to provide your current password to change two-factor authentication settings."] = "Pro změnu nastavení dvoufázového ověřování musíte poskytnout vaše aktuální heslo."; +$a->strings["Enable two-factor authentication"] = "Povolit dvoufázové ověřování"; +$a->strings["Disable two-factor authentication"] = "Zakázat dvoufázové ověřování"; +$a->strings["Show recovery codes"] = "Zobrazit záložní kódy"; +$a->strings["Finish app configuration"] = "Dokončit konfiguraci aplikace"; +$a->strings["Please enter your password to access this page."] = "Pro přístup k této stránce prosím zadejte své heslo."; +$a->strings["New recovery codes successfully generated."] = "Nové záložní kódy byly úspěšně vygenerovány."; +$a->strings["Two-factor recovery codes"] = "Dvoufázové záložní kódy"; +$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = "

    Záložní kódy mohou být použity pro přístup k vašemu účtu, pokud ztratíte přístup k vašemu zařízení a nemůžete obdržet dvoufázové autentizační kódy.

    Uložte je na bezpečné místo! Pokud zratíte vaše zařízení a nemáte Záložní kódy, ztratíte přístup ke svému účtu.

    "; +$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = "Když vygenerujete nové záložní kódy, musíte si zkopírovat nové kódy. Vaše staré kódy již nebudou fungovat."; +$a->strings["Generate new recovery codes"] = "Vygenerovat nové záložní kódy"; +$a->strings["Next: Verification"] = "Další: Ověření"; +$a->strings["Two-factor authentication successfully activated."] = "Dvoufázové ověření úspěšně aktivováno."; +$a->strings["Invalid code, please retry."] = "Neplatný kód, prosím zkuste to znovu."; +$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = "

    Nebo můžete zadat autentizační nastavení manuálně:

    \n
    \n\t
    Vydavatel
    \n\t
    %s
    \n\t
    Jméno účtu
    \n\t
    %s
    \n\t
    Tajný klíč
    \n\t
    %s
    \n\t
    Typ
    \n\t
    Založený na čase
    \n\t
    Počet číslic
    \n\t
    6
    \n\t
    Hashovací algoritmus
    \n\t
    SHA-1
    \n
    "; +$a->strings["Two-factor code verification"] = "Ověření dvoufázového kódu"; +$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = "

    Prosím naskenujte tento QR kód vaší autentizační aplikací a zadejte poskytnutý kód.

    "; +$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = "

    Nebo můžete otevřít na vašem mobilním zařízení následující URL:

    %s

    "; +$a->strings["Please enter a code from your authentication app"] = "Prosím zadejte kód z vaší autentizační aplikace"; +$a->strings["Verify code and enable two-factor authentication"] = "Ověřit kód a povolit dvoufázové ověřování"; $a->strings["Bad Request"] = "Špatný požadavek"; $a->strings["Unauthorized"] = "Neautorizováno"; $a->strings["Forbidden"] = "Zakázáno"; @@ -2263,14 +2263,14 @@ $a->strings["At the time of registration, and for providing communications betwe $a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = "Tato data jsou vyžadována ke komunikaci a jsou předávána serverům komunikačních partnerů a jsou tam ukládána. Uživatelé mohou zadávat dodatečná soukromá data, která mohou být odeslána na účty komunikačních partnerů."; $a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = "Přihlášený uživatel si kdykoliv může exportovat svoje data účtu z nastavení účtu. Pokud by chtěl uživatel svůj účet smazat, může tak učinit na stránce %1\$s/removeme. Smazání účtu bude trvalé. Na serverech komunikačních partnerů bude zároveň vyžádáno smazání dat."; $a->strings["Privacy Statement"] = "Prohlášení o soukromí"; -$a->strings["Remaining recovery codes: %d"] = ""; -$a->strings["Two-factor recovery"] = ""; -$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = ""; -$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = ""; -$a->strings["Please enter a recovery code"] = ""; -$a->strings["Submit recovery code and complete login"] = ""; -$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = ""; -$a->strings["Verify code and complete login"] = ""; +$a->strings["Remaining recovery codes: %d"] = "Zbývající záložní kódy: %d"; +$a->strings["Two-factor recovery"] = "Dvoufázové záložní kódy"; +$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = "

    Pokud jste ztratil/a přístup k vašemu mobilnímu zařízení , můžete zadat jeden z vašich jednorázových záložních kódů.

    "; +$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = "Nemáte svůj mobil? Zadejte dvoufázový záložní kód"; +$a->strings["Please enter a recovery code"] = "Prosím zadejte záložní kód"; +$a->strings["Submit recovery code and complete login"] = "Odeslat záložní kód a dokončit přihlášení"; +$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = "

    Otevřete na vašem zařízení aplikaci pro dvoufázové ověřování, získejte autentizační kód a ověřte svou identitu.

    "; +$a->strings["Verify code and complete login"] = "Ověřit kód a dokončit přihlášení"; $a->strings["This entry was edited"] = "Tato položka byla upravena"; $a->strings["Private Message"] = "Soukromá zpráva"; $a->strings["Delete locally"] = "Smazat lokálně"; From b2f5ccc68986fa6ed0df3ef9fb8296dc17457c08 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 22 Jun 2019 07:29:03 +0200 Subject: [PATCH 636/653] PL translation update THX waldis --- view/lang/pl/messages.po | 7871 ++++++++++++++++++++------------------ view/lang/pl/strings.php | 1267 +++--- 2 files changed, 4820 insertions(+), 4318 deletions(-) diff --git a/view/lang/pl/messages.po b/view/lang/pl/messages.po index f16512c6b..3cbe215cd 100644 --- a/view/lang/pl/messages.po +++ b/view/lang/pl/messages.po @@ -31,7 +31,7 @@ # Magdalena Gazda , 2013 # Mai Anh Nguyen , 2013 # Marcin Klessa , 2012 -# Marcin Mikołajczak , 2018-2019 +# Marcin Mikołajczak , 2018-2019 # Mariusz Pisz , 2013 # Mateusz Mikos , 2012 # Lea1995polish , 2012 @@ -56,8 +56,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-23 18:53-0500\n" -"PO-Revision-Date: 2019-04-12 08:06+0000\n" +"POT-Creation-Date: 2019-05-15 08:55-0400\n" +"PO-Revision-Date: 2019-06-11 16:54+0000\n" "Last-Translator: Waldemar Stoczkowski\n" "Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n" "MIME-Version: 1.0\n" @@ -66,7 +66,7 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: include/api.php:1117 +#: include/api.php:1116 #, php-format msgid "Daily posting limit of %d post reached. The post was rejected." msgid_plural "Daily posting limit of %d posts reached. The post was rejected." @@ -75,7 +75,7 @@ msgstr[1] "Dzienny limit opublikowanych %d postów. Post został odrzucony." msgstr[2] "Dzienny limit opublikowanych %d postów. Post został odrzucony." msgstr[3] "Dzienny limit opublikowanych %d postów. Post został odrzucony." -#: include/api.php:1131 +#: include/api.php:1130 #, php-format msgid "Weekly posting limit of %d post reached. The post was rejected." msgid_plural "" @@ -85,33 +85,33 @@ msgstr[1] "Tygodniowy limit wysyłania %d postów. Post został odrzucony." msgstr[2] "Tygodniowy limit wysyłania %d postów. Post został odrzucony." msgstr[3] "Tygodniowy limit wysyłania %d postów. Post został odrzucony." -#: include/api.php:1145 +#: include/api.php:1144 #, php-format msgid "Monthly posting limit of %d post reached. The post was rejected." msgstr "Miesięczny limit %d wysyłania postów. Post został odrzucony." -#: include/api.php:4520 mod/photos.php:93 mod/photos.php:201 -#: mod/photos.php:695 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1636 mod/profile_photo.php:85 mod/profile_photo.php:94 +#: include/api.php:4511 mod/photos.php:91 mod/photos.php:193 +#: mod/photos.php:636 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1601 mod/profile_photo.php:85 mod/profile_photo.php:94 #: mod/profile_photo.php:103 mod/profile_photo.php:217 -#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:736 -#: src/Model/User.php:744 src/Model/User.php:752 +#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:763 +#: src/Model/User.php:771 src/Model/User.php:779 msgid "Profile Photos" msgstr "Zdjęcie profilowe" #: include/conversation.php:160 include/conversation.php:297 -#: src/Model/Item.php:3283 +#: src/Model/Item.php:3253 msgid "event" msgstr "wydarzenie" #: include/conversation.php:163 include/conversation.php:173 #: include/conversation.php:300 include/conversation.php:309 -#: mod/subthread.php:88 mod/tagger.php:70 +#: mod/subthread.php:88 mod/tagger.php:68 msgid "status" msgstr "status" #: include/conversation.php:168 include/conversation.php:305 -#: mod/subthread.php:88 mod/tagger.php:70 src/Model/Item.php:3285 +#: mod/subthread.php:88 mod/tagger.php:68 src/Model/Item.php:3255 msgid "photo" msgstr "zdjęcie" @@ -150,7 +150,7 @@ msgstr "%1$s jest teraz znajomym z %2$s" msgid "%1$s poked %2$s" msgstr "%1$s zaczepił Cię %2$s" -#: include/conversation.php:319 mod/tagger.php:108 +#: include/conversation.php:319 mod/tagger.php:101 #, php-format msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s zaznaczył %2$s'go %3$s przy użyciu %4$s" @@ -164,16 +164,16 @@ msgstr "stanowisko/pozycja" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s oznacz %2$s's %3$s jako ulubione" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:352 +#: include/conversation.php:568 mod/photos.php:1433 mod/profiles.php:352 msgid "Likes" msgstr "Lubię to" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:355 +#: include/conversation.php:569 mod/photos.php:1433 mod/profiles.php:355 msgid "Dislikes" msgstr "Nie lubię tego" -#: include/conversation.php:569 include/conversation.php:1505 -#: mod/photos.php:1468 +#: include/conversation.php:570 include/conversation.php:1564 +#: mod/photos.php:1434 msgid "Attending" msgid_plural "Attending" msgstr[0] "Uczestniczę" @@ -181,346 +181,375 @@ msgstr[1] "Uczestniczy" msgstr[2] "Uczestniczą" msgstr[3] "Uczestniczą" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:571 mod/photos.php:1434 msgid "Not attending" msgstr "Nie uczestniczę" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:572 mod/photos.php:1434 msgid "Might attend" msgstr "Może wziąć udział" -#: include/conversation.php:649 mod/photos.php:1524 src/Object/Post.php:208 +#: include/conversation.php:573 +msgid "Reshares" +msgstr "Udostępnianie" + +#: include/conversation.php:653 mod/photos.php:1490 src/Object/Post.php:208 msgid "Select" msgstr "Wybierz" -#: include/conversation.php:650 mod/admin.php:2072 mod/photos.php:1525 -#: mod/settings.php:726 src/Module/Contact.php:827 src/Module/Contact.php:1102 +#: include/conversation.php:654 mod/photos.php:1491 mod/settings.php:735 +#: src/Module/Admin/Users.php:288 src/Module/Contact.php:830 +#: src/Module/Contact.php:1105 msgid "Delete" msgstr "Usuń" -#: include/conversation.php:684 src/Object/Post.php:381 -#: src/Object/Post.php:382 +#: include/conversation.php:679 src/Object/Post.php:382 +#: src/Object/Post.php:383 #, php-format msgid "View %s's profile @ %s" msgstr "Pokaż %s's profil @ %s" -#: include/conversation.php:696 src/Object/Post.php:369 +#: include/conversation.php:692 src/Object/Post.php:370 msgid "Categories:" msgstr "Kategorie:" -#: include/conversation.php:697 src/Object/Post.php:370 +#: include/conversation.php:693 src/Object/Post.php:371 msgid "Filed under:" msgstr "Zapisano w:" -#: include/conversation.php:704 src/Object/Post.php:395 +#: include/conversation.php:700 src/Object/Post.php:396 #, php-format msgid "%s from %s" msgstr "%s od %s" -#: include/conversation.php:719 +#: include/conversation.php:715 msgid "View in context" msgstr "Zobacz w kontekście" -#: include/conversation.php:721 include/conversation.php:1171 -#: mod/editpost.php:88 mod/message.php:260 mod/message.php:442 -#: mod/photos.php:1440 mod/wallmessage.php:141 src/Object/Post.php:422 +#: include/conversation.php:717 include/conversation.php:1230 +#: mod/editpost.php:86 mod/message.php:260 mod/message.php:442 +#: mod/photos.php:1406 mod/wallmessage.php:141 src/Object/Post.php:423 msgid "Please wait" msgstr "Proszę czekać" -#: include/conversation.php:785 +#: include/conversation.php:781 msgid "remove" msgstr "usuń" -#: include/conversation.php:789 +#: include/conversation.php:785 msgid "Delete Selected Items" msgstr "Usuń zaznaczone elementy" -#: include/conversation.php:893 view/theme/frio/theme.php:358 +#: include/conversation.php:940 view/theme/frio/theme.php:358 msgid "Follow Thread" msgstr "Śledź wątek" -#: include/conversation.php:894 src/Model/Contact.php:1049 +#: include/conversation.php:941 src/Model/Contact.php:1111 msgid "View Status" msgstr "Zobacz status" -#: include/conversation.php:895 include/conversation.php:911 -#: mod/allfriends.php:72 mod/directory.php:198 mod/dirfind.php:226 -#: mod/match.php:87 mod/suggest.php:87 src/Model/Contact.php:989 -#: src/Model/Contact.php:1042 src/Model/Contact.php:1050 +#: include/conversation.php:942 include/conversation.php:960 +#: mod/dirfind.php:226 mod/match.php:87 mod/suggest.php:87 +#: src/Model/Contact.php:1051 src/Model/Contact.php:1104 +#: src/Model/Contact.php:1112 src/Module/AllFriends.php:74 +#: src/Module/Directory.php:155 msgid "View Profile" msgstr "Zobacz profil" -#: include/conversation.php:896 src/Model/Contact.php:1051 +#: include/conversation.php:943 src/Model/Contact.php:1113 msgid "View Photos" msgstr "Zobacz zdjęcia" -#: include/conversation.php:897 src/Model/Contact.php:1043 -#: src/Model/Contact.php:1052 +#: include/conversation.php:944 src/Model/Contact.php:1105 +#: src/Model/Contact.php:1114 msgid "Network Posts" msgstr "Wiadomości sieciowe" -#: include/conversation.php:898 src/Model/Contact.php:1044 -#: src/Model/Contact.php:1053 +#: include/conversation.php:945 src/Model/Contact.php:1106 +#: src/Model/Contact.php:1115 msgid "View Contact" msgstr "Pokaż kontakt" -#: include/conversation.php:899 src/Model/Contact.php:1055 +#: include/conversation.php:946 src/Model/Contact.php:1117 msgid "Send PM" msgstr "Wyślij prywatną wiadomość" -#: include/conversation.php:903 src/Model/Contact.php:1056 +#: include/conversation.php:947 src/Module/Admin/Blocklist/Contact.php:66 +#: src/Module/Admin/Users.php:289 src/Module/Contact.php:624 +#: src/Module/Contact.php:827 src/Module/Contact.php:1080 +msgid "Block" +msgstr "Zablokuj" + +#: include/conversation.php:948 mod/notifications.php:60 +#: mod/notifications.php:186 mod/notifications.php:279 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 +msgid "Ignore" +msgstr "Ignoruj" + +#: include/conversation.php:952 src/Model/Contact.php:1118 msgid "Poke" msgstr "Zaczepka" -#: include/conversation.php:908 mod/allfriends.php:73 mod/dirfind.php:227 -#: mod/follow.php:147 mod/match.php:88 mod/suggest.php:88 -#: src/Content/Widget.php:63 src/Model/Contact.php:1045 -#: src/Module/Contact.php:574 view/theme/vier/theme.php:201 +#: include/conversation.php:957 mod/dirfind.php:227 mod/follow.php:158 +#: mod/match.php:88 mod/suggest.php:88 src/Content/Widget.php:63 +#: src/Model/Contact.php:1107 src/Module/AllFriends.php:75 +#: src/Module/Contact.php:577 view/theme/vier/theme.php:201 msgid "Connect/Follow" msgstr "Połącz/Obserwuj" -#: include/conversation.php:1030 +#: include/conversation.php:1082 #, php-format msgid "%s likes this." msgstr "%s lubi to." -#: include/conversation.php:1033 +#: include/conversation.php:1085 #, php-format msgid "%s doesn't like this." msgstr "%s nie lubi tego." -#: include/conversation.php:1036 +#: include/conversation.php:1088 #, php-format msgid "%s attends." msgstr "%s uczestniczy." -#: include/conversation.php:1039 +#: include/conversation.php:1091 #, php-format msgid "%s doesn't attend." msgstr "%s nie uczestniczy." -#: include/conversation.php:1042 +#: include/conversation.php:1094 #, php-format msgid "%s attends maybe." msgstr "%s może bierze udział." -#: include/conversation.php:1050 +#: include/conversation.php:1097 include/conversation.php:1140 +#, php-format +msgid "%s reshared this." +msgstr "%sudostępnił to. " + +#: include/conversation.php:1105 msgid "and" msgstr "i" -#: include/conversation.php:1056 +#: include/conversation.php:1111 #, php-format msgid "and %d other people" msgstr "i %d inni ludzie" -#: include/conversation.php:1064 +#: include/conversation.php:1119 #, php-format msgid "%2$d people like this" msgstr "%2$d ludzi lubi to" -#: include/conversation.php:1065 +#: include/conversation.php:1120 #, php-format msgid "%s like this." msgstr "%s lubię to." -#: include/conversation.php:1068 +#: include/conversation.php:1123 #, php-format msgid "%2$d people don't like this" msgstr "%2$d ludzi nie lubi tego" -#: include/conversation.php:1069 +#: include/conversation.php:1124 #, php-format msgid "%s don't like this." msgstr "%s nie lubię tego." -#: include/conversation.php:1072 +#: include/conversation.php:1127 #, php-format msgid "%2$d people attend" msgstr "%2$dosoby uczestniczą" -#: include/conversation.php:1073 +#: include/conversation.php:1128 #, php-format msgid "%s attend." msgstr "%s uczestniczy." -#: include/conversation.php:1076 +#: include/conversation.php:1131 #, php-format msgid "%2$d people don't attend" msgstr "%2$dludzie nie uczestniczą" -#: include/conversation.php:1077 +#: include/conversation.php:1132 #, php-format msgid "%s don't attend." msgstr "%s nie uczestniczy." -#: include/conversation.php:1080 +#: include/conversation.php:1135 #, php-format msgid "%2$d people attend maybe" msgstr "Możliwe, że %2$d osoby będą uczestniczyć" -#: include/conversation.php:1081 +#: include/conversation.php:1136 #, php-format msgid "%s attend maybe." msgstr "%sbyć może uczestniczyć." -#: include/conversation.php:1110 +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people reshared this" +msgstr "" + +#: include/conversation.php:1169 msgid "Visible to everybody" msgstr "Widoczne dla wszystkich" -#: include/conversation.php:1111 src/Object/Post.php:886 +#: include/conversation.php:1170 src/Object/Post.php:886 msgid "Please enter a image/video/audio/webpage URL:" msgstr "Wprowadź adres URL obrazu/wideo/audio/strony:" -#: include/conversation.php:1112 +#: include/conversation.php:1171 msgid "Tag term:" msgstr "Termin tagu:" -#: include/conversation.php:1113 mod/filer.php:35 +#: include/conversation.php:1172 src/Module/Filer/SaveTag.php:49 msgid "Save to Folder:" msgstr "Zapisz w folderze:" -#: include/conversation.php:1114 +#: include/conversation.php:1173 msgid "Where are you right now?" msgstr "Gdzie teraz jesteś?" -#: include/conversation.php:1115 +#: include/conversation.php:1174 msgid "Delete item(s)?" msgstr "Usunąć pozycję (pozycje)?" -#: include/conversation.php:1147 +#: include/conversation.php:1206 msgid "New Post" msgstr "Nowy Post" -#: include/conversation.php:1150 +#: include/conversation.php:1209 msgid "Share" msgstr "Podziel się" -#: include/conversation.php:1151 mod/editpost.php:74 mod/message.php:258 +#: include/conversation.php:1210 mod/editpost.php:72 mod/message.php:258 #: mod/message.php:439 mod/wallmessage.php:139 msgid "Upload photo" msgstr "Wyślij zdjęcie" -#: include/conversation.php:1152 mod/editpost.php:75 +#: include/conversation.php:1211 mod/editpost.php:73 msgid "upload photo" msgstr "dodaj zdjęcie" -#: include/conversation.php:1153 mod/editpost.php:76 +#: include/conversation.php:1212 mod/editpost.php:74 msgid "Attach file" msgstr "Załącz plik" -#: include/conversation.php:1154 mod/editpost.php:77 +#: include/conversation.php:1213 mod/editpost.php:75 msgid "attach file" msgstr "załącz plik" -#: include/conversation.php:1155 src/Object/Post.php:878 +#: include/conversation.php:1214 src/Object/Post.php:878 msgid "Bold" msgstr "Pogrubienie" -#: include/conversation.php:1156 src/Object/Post.php:879 +#: include/conversation.php:1215 src/Object/Post.php:879 msgid "Italic" msgstr "Kursywa" -#: include/conversation.php:1157 src/Object/Post.php:880 +#: include/conversation.php:1216 src/Object/Post.php:880 msgid "Underline" msgstr "Podkreślenie" -#: include/conversation.php:1158 src/Object/Post.php:881 +#: include/conversation.php:1217 src/Object/Post.php:881 msgid "Quote" msgstr "Cytat" -#: include/conversation.php:1159 src/Object/Post.php:882 +#: include/conversation.php:1218 src/Object/Post.php:882 msgid "Code" msgstr "Kod" -#: include/conversation.php:1160 src/Object/Post.php:883 +#: include/conversation.php:1219 src/Object/Post.php:883 msgid "Image" msgstr "Obraz" -#: include/conversation.php:1161 src/Object/Post.php:884 +#: include/conversation.php:1220 src/Object/Post.php:884 msgid "Link" msgstr "Link" -#: include/conversation.php:1162 src/Object/Post.php:885 +#: include/conversation.php:1221 src/Object/Post.php:885 msgid "Link or Media" msgstr "Link lub Media" -#: include/conversation.php:1163 mod/editpost.php:84 +#: include/conversation.php:1222 mod/editpost.php:82 msgid "Set your location" msgstr "Ustaw swoją lokalizację" -#: include/conversation.php:1164 mod/editpost.php:85 +#: include/conversation.php:1223 mod/editpost.php:83 msgid "set location" msgstr "wybierz lokalizację" -#: include/conversation.php:1165 mod/editpost.php:86 +#: include/conversation.php:1224 mod/editpost.php:84 msgid "Clear browser location" msgstr "Wyczyść lokalizację przeglądarki" -#: include/conversation.php:1166 mod/editpost.php:87 +#: include/conversation.php:1225 mod/editpost.php:85 msgid "clear location" msgstr "wyczyść lokalizację" -#: include/conversation.php:1168 mod/editpost.php:102 +#: include/conversation.php:1227 mod/editpost.php:99 msgid "Set title" msgstr "Podaj tytuł" -#: include/conversation.php:1170 mod/editpost.php:104 +#: include/conversation.php:1229 mod/editpost.php:101 msgid "Categories (comma-separated list)" msgstr "Kategorie (lista słów oddzielonych przecinkiem)" -#: include/conversation.php:1172 mod/editpost.php:89 +#: include/conversation.php:1231 mod/editpost.php:87 msgid "Permission settings" msgstr "Ustawienia uprawnień" -#: include/conversation.php:1173 mod/editpost.php:119 +#: include/conversation.php:1232 mod/editpost.php:116 msgid "permissions" msgstr "zezwolenia" -#: include/conversation.php:1182 mod/editpost.php:99 +#: include/conversation.php:1241 mod/editpost.php:96 msgid "Public post" msgstr "Publiczny post" -#: include/conversation.php:1186 mod/editpost.php:110 mod/events.php:551 -#: mod/photos.php:1458 mod/photos.php:1497 mod/photos.php:1557 +#: include/conversation.php:1245 mod/editpost.php:107 mod/events.php:549 +#: mod/photos.php:1424 mod/photos.php:1463 mod/photos.php:1523 #: src/Object/Post.php:887 msgid "Preview" msgstr "Podgląd" -#: include/conversation.php:1190 include/items.php:396 -#: mod/dfrn_request.php:650 mod/editpost.php:113 mod/fbrowser.php:104 -#: mod/fbrowser.php:134 mod/follow.php:161 mod/message.php:153 -#: mod/photos.php:257 mod/photos.php:325 mod/settings.php:666 -#: mod/settings.php:692 mod/suggest.php:44 mod/tagrm.php:20 mod/tagrm.php:115 -#: mod/unfollow.php:132 mod/videos.php:105 src/Module/Contact.php:447 +#: include/conversation.php:1249 include/items.php:397 +#: mod/dfrn_request.php:650 mod/editpost.php:110 mod/fbrowser.php:110 +#: mod/fbrowser.php:139 mod/follow.php:172 mod/message.php:153 +#: mod/photos.php:1076 mod/photos.php:1183 mod/settings.php:675 +#: mod/settings.php:701 mod/suggest.php:76 mod/tagrm.php:20 mod/tagrm.php:115 +#: mod/unfollow.php:132 src/Module/Contact.php:450 msgid "Cancel" msgstr "Anuluj" -#: include/conversation.php:1195 +#: include/conversation.php:1254 msgid "Post to Groups" msgstr "Opublikuj w grupach" -#: include/conversation.php:1196 +#: include/conversation.php:1255 msgid "Post to Contacts" msgstr "Wstaw do kontaktów" -#: include/conversation.php:1197 +#: include/conversation.php:1256 msgid "Private post" msgstr "Prywatne posty" -#: include/conversation.php:1202 mod/editpost.php:117 -#: src/Model/Profile.php:370 +#: include/conversation.php:1261 mod/editpost.php:114 +#: src/Model/Profile.php:366 msgid "Message" msgstr "Wiadomość" -#: include/conversation.php:1203 mod/editpost.php:118 +#: include/conversation.php:1262 mod/editpost.php:115 msgid "Browser" msgstr "Przeglądarka" -#: include/conversation.php:1475 +#: include/conversation.php:1534 msgid "View all" msgstr "Pokaż wszystkie" -#: include/conversation.php:1499 +#: include/conversation.php:1558 msgid "Like" msgid_plural "Likes" msgstr[0] "Ostatnie polubienie" @@ -528,7 +557,7 @@ msgstr[1] "Ostatnie polubienia" msgstr[2] "Ostatnich polubienień" msgstr[3] "Ostatnie polubienia" -#: include/conversation.php:1502 +#: include/conversation.php:1561 msgid "Dislike" msgid_plural "Dislikes" msgstr[0] "Nie lubię" @@ -536,7 +565,7 @@ msgstr[1] "Nie lubią" msgstr[2] "Nie lubią" msgstr[3] "Nie lubi" -#: include/conversation.php:1508 +#: include/conversation.php:1567 msgid "Not Attending" msgid_plural "Not Attending" msgstr[0] "Nie uczestniczę" @@ -544,7 +573,7 @@ msgstr[1] "Nie uczestniczy" msgstr[2] "Nie uczestniczą" msgstr[3] "Nie uczestniczą" -#: include/conversation.php:1511 src/Content/ContactSelector.php:167 +#: include/conversation.php:1570 src/Content/ContactSelector.php:167 msgid "Undecided" msgid_plural "Undecided" msgstr[0] "Niezdecydowany" @@ -867,2056 +896,58 @@ msgstr "Imię i nazwisko:\t%s\nLokalizacja witryny:\t%s\nNazwa użytkownika:\t%s msgid "Please visit %s to approve or reject the request." msgstr "Odwiedź stronę %s, aby zatwierdzić lub odrzucić wniosek." -#: include/items.php:353 mod/admin.php:302 mod/admin.php:2131 -#: mod/admin.php:2378 mod/notice.php:20 mod/viewsrc.php:22 +#: include/items.php:354 mod/notice.php:19 +#: src/Module/Admin/Themes/Details.php:53 src/Module/Admin/Themes/Index.php:41 +#: src/Module/ItemBody.php:27 src/Module/ItemBody.php:40 msgid "Item not found." msgstr "Element nie znaleziony." -#: include/items.php:391 +#: include/items.php:392 msgid "Do you really want to delete this item?" msgstr "Czy na pewno chcesz usunąć ten element?" -#: include/items.php:393 mod/api.php:109 mod/dfrn_request.php:640 -#: mod/follow.php:150 mod/message.php:150 mod/profiles.php:526 -#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1085 -#: mod/settings.php:1091 mod/settings.php:1098 mod/settings.php:1102 -#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1114 -#: mod/settings.php:1118 mod/settings.php:1138 mod/settings.php:1139 -#: mod/settings.php:1140 mod/settings.php:1141 mod/settings.php:1142 -#: mod/suggest.php:41 src/Module/Contact.php:444 src/Module/Register.php:97 +#: include/items.php:394 mod/api.php:109 mod/dfrn_request.php:640 +#: mod/follow.php:161 mod/message.php:150 mod/profiles.php:526 +#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1084 +#: mod/settings.php:1090 mod/settings.php:1097 mod/settings.php:1101 +#: mod/settings.php:1105 mod/settings.php:1109 mod/settings.php:1113 +#: mod/settings.php:1117 mod/settings.php:1137 mod/settings.php:1138 +#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 +#: mod/suggest.php:73 src/Module/Contact.php:447 src/Module/Register.php:97 msgid "Yes" msgstr "Tak" -#: include/items.php:443 mod/allfriends.php:22 mod/api.php:34 mod/api.php:39 -#: mod/cal.php:303 mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 -#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:66 -#: mod/dirfind.php:29 mod/editpost.php:22 mod/events.php:207 mod/follow.php:57 -#: mod/follow.php:121 mod/fsuggest.php:77 mod/group.php:28 mod/invite.php:23 -#: mod/invite.php:111 mod/item.php:167 mod/manage.php:129 mod/message.php:56 -#: mod/message.php:101 mod/network.php:35 mod/nogroup.php:18 mod/notes.php:27 -#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:186 -#: mod/photos.php:1020 mod/poke.php:141 mod/profiles.php:182 +#: include/items.php:444 mod/api.php:34 mod/api.php:39 mod/cal.php:301 +#: mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 +#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:64 +#: mod/dirfind.php:29 mod/editpost.php:21 mod/events.php:207 mod/follow.php:57 +#: mod/follow.php:132 mod/fsuggest.php:77 mod/item.php:169 mod/manage.php:130 +#: mod/message.php:56 mod/message.php:101 mod/network.php:36 mod/notes.php:27 +#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:178 +#: mod/photos.php:958 mod/poke.php:141 mod/profiles.php:182 #: mod/profiles.php:499 mod/profile_photo.php:32 mod/profile_photo.php:177 #: mod/profile_photo.php:204 mod/regmod.php:89 mod/repair_ostatus.php:16 -#: mod/settings.php:48 mod/settings.php:154 mod/settings.php:655 -#: mod/suggest.php:62 mod/uimport.php:17 mod/unfollow.php:22 +#: mod/settings.php:50 mod/settings.php:163 mod/settings.php:664 +#: mod/suggest.php:39 mod/uimport.php:17 mod/unfollow.php:22 #: mod/unfollow.php:77 mod/unfollow.php:109 mod/viewcontacts.php:56 #: mod/wallmessage.php:19 mod/wallmessage.php:43 mod/wallmessage.php:82 #: mod/wallmessage.php:106 mod/wall_attach.php:76 mod/wall_attach.php:79 -#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/App.php:1390 -#: src/Module/Attach.php:42 src/Module/Contact.php:360 -#: src/Module/Register.php:193 +#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/Module/Attach.php:42 +#: src/Module/Contact.php:362 src/Module/FollowConfirm.php:27 +#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22 +#: src/Module/Invite.php:110 src/Module/Register.php:192 msgid "Permission denied." msgstr "Brak uprawnień." -#: include/items.php:514 src/Content/Feature.php:99 +#: include/items.php:515 src/Content/Feature.php:99 msgid "Archives" msgstr "Archiwum" -#: include/items.php:520 src/Content/ForumManager.php:135 +#: include/items.php:521 src/Content/ForumManager.php:135 #: src/Content/Widget.php:329 view/theme/vier/theme.php:255 msgid "show more" msgstr "pokaż więcej" -#: mod/admin.php:122 -msgid "Theme settings updated." -msgstr "Zaktualizowano ustawienia motywów." - -#: mod/admin.php:196 src/Content/Nav.php:231 -msgid "Information" -msgstr "Informacje" - -#: mod/admin.php:197 -msgid "Overview" -msgstr "Przegląd" - -#: mod/admin.php:198 mod/admin.php:779 -msgid "Federation Statistics" -msgstr "Statystyki Organizacji" - -#: mod/admin.php:199 -msgid "Configuration" -msgstr "Konfiguracja" - -#: mod/admin.php:200 mod/admin.php:1581 -msgid "Site" -msgstr "Strona" - -#: mod/admin.php:201 mod/admin.php:1482 mod/admin.php:2062 mod/admin.php:2079 -msgid "Users" -msgstr "Użytkownicy" - -#: mod/admin.php:202 mod/admin.php:2179 mod/admin.php:2239 mod/settings.php:99 -msgid "Addons" -msgstr "Dodatki" - -#: mod/admin.php:203 mod/admin.php:2436 mod/admin.php:2480 -msgid "Themes" -msgstr "Wygląd" - -#: mod/admin.php:204 mod/settings.php:77 -msgid "Additional features" -msgstr "Dodatkowe funkcje" - -#: mod/admin.php:205 mod/admin.php:329 src/Content/Nav.php:234 -#: src/Module/Register.php:144 src/Module/Tos.php:73 -msgid "Terms of Service" -msgstr "Warunki usługi" - -#: mod/admin.php:206 -msgid "Database" -msgstr "Baza danych" - -#: mod/admin.php:207 -msgid "DB updates" -msgstr "Aktualizacje DB" - -#: mod/admin.php:208 mod/admin.php:823 -msgid "Inspect Queue" -msgstr "Sprawdź kolejkę" - -#: mod/admin.php:209 -msgid "Inspect Deferred Workers" -msgstr "Sprawdź Odroczonych Pracowników" - -#: mod/admin.php:210 -msgid "Inspect worker Queue" -msgstr "Sprawdź kolejkę pracowników" - -#: mod/admin.php:211 -msgid "Tools" -msgstr "Narzędzia" - -#: mod/admin.php:212 -msgid "Contact Blocklist" -msgstr "Lista zablokowanych kontaktów" - -#: mod/admin.php:213 mod/admin.php:395 -msgid "Server Blocklist" -msgstr "Lista zablokowanych serwerów" - -#: mod/admin.php:214 mod/admin.php:558 -msgid "Delete Item" -msgstr "Usuń przedmiot" - -#: mod/admin.php:215 mod/admin.php:216 mod/admin.php:2556 -msgid "Logs" -msgstr "Logi" - -#: mod/admin.php:217 mod/admin.php:2624 -msgid "View Logs" -msgstr "Zobacz rejestry" - -#: mod/admin.php:219 -msgid "Diagnostics" -msgstr "Diagnostyka" - -#: mod/admin.php:220 -msgid "PHP Info" -msgstr "Informacje o PHP" - -#: mod/admin.php:221 -msgid "probe address" -msgstr "adres sondy" - -#: mod/admin.php:222 -msgid "check webfinger" -msgstr "sprawdź webfinger" - -#: mod/admin.php:242 src/Content/Nav.php:274 -msgid "Admin" -msgstr "Administator" - -#: mod/admin.php:243 -msgid "Addon Features" -msgstr "Funkcje dodatkowe" - -#: mod/admin.php:244 -msgid "User registrations waiting for confirmation" -msgstr "Rejestracje użytkowników czekające na potwierdzenie" - -#: mod/admin.php:328 mod/admin.php:394 mod/admin.php:514 mod/admin.php:557 -#: mod/admin.php:778 mod/admin.php:822 mod/admin.php:875 mod/admin.php:998 -#: mod/admin.php:1580 mod/admin.php:2061 mod/admin.php:2178 mod/admin.php:2238 -#: mod/admin.php:2435 mod/admin.php:2479 mod/admin.php:2555 mod/admin.php:2623 -msgid "Administration" -msgstr "Administracja" - -#: mod/admin.php:330 -msgid "Display Terms of Service" -msgstr "Wyświetl Warunki korzystania z usługi" - -#: mod/admin.php:330 -msgid "" -"Enable the Terms of Service page. If this is enabled a link to the terms " -"will be added to the registration form and the general information page." -msgstr "Włącz stronę Warunki świadczenia usług. Jeśli ta opcja jest włączona, link do warunków zostanie dodany do formularza rejestracyjnego i strony z informacjami ogólnymi." - -#: mod/admin.php:331 -msgid "Display Privacy Statement" -msgstr "Wyświetl oświadczenie o prywatności" - -#: mod/admin.php:331 -#, php-format -msgid "" -"Show some informations regarding the needed information to operate the node " -"according e.g. to EU-GDPR." -msgstr "Pokaż niektóre informacje dotyczące potrzebnych informacji do obsługi węzła zgodnie np. do EU-GDPR." - -#: mod/admin.php:332 -msgid "Privacy Statement Preview" -msgstr "Podgląd oświadczenia o prywatności" - -#: mod/admin.php:334 -msgid "The Terms of Service" -msgstr "Warunki świadczenia usług" - -#: mod/admin.php:334 -msgid "" -"Enter the Terms of Service for your node here. You can use BBCode. Headers " -"of sections should be [h2] and below." -msgstr "Wprowadź tutaj Warunki świadczenia usług dla swojego węzła. Możesz użyć BBCode. Nagłówki sekcji powinny być [h2] i poniżej." - -#: mod/admin.php:336 mod/admin.php:1582 mod/admin.php:2240 mod/admin.php:2481 -#: mod/admin.php:2557 mod/admin.php:2707 mod/delegate.php:175 -#: mod/settings.php:665 mod/settings.php:772 mod/settings.php:860 -#: mod/settings.php:949 mod/settings.php:1174 -msgid "Save Settings" -msgstr "Zapisz ustawienia" - -#: mod/admin.php:386 mod/admin.php:404 mod/dfrn_request.php:346 -#: mod/friendica.php:131 src/Model/Contact.php:1719 -msgid "Blocked domain" -msgstr "Zablokowana domena" - -#: mod/admin.php:386 -msgid "The blocked domain" -msgstr "Zablokowana domena" - -#: mod/admin.php:387 mod/admin.php:405 mod/friendica.php:131 -msgid "Reason for the block" -msgstr "Powód blokowania" - -#: mod/admin.php:387 mod/admin.php:400 -msgid "The reason why you blocked this domain." -msgstr "Powód zablokowania tej domeny." - -#: mod/admin.php:388 -msgid "Delete domain" -msgstr "Usuń domenę" - -#: mod/admin.php:388 -msgid "Check to delete this entry from the blocklist" -msgstr "Zaznacz, aby usunąć ten wpis z listy bloków" - -#: mod/admin.php:396 -msgid "" -"This page can be used to define a black list of servers from the federated " -"network that are not allowed to interact with your node. For all entered " -"domains you should also give a reason why you have blocked the remote " -"server." -msgstr "Na tej stronie można zdefiniować czarną listę serwerów ze stowarzyszonej sieci, które nie mogą współdziałać z danym węzłem. Dla wszystkich wprowadzonych domen powinieneś podać powód, dla którego zablokowałeś serwer zdalny." - -#: mod/admin.php:397 -msgid "" -"The list of blocked servers will be made publically available on the " -"/friendica page so that your users and people investigating communication " -"problems can find the reason easily." -msgstr "Lista zablokowanych serwerów zostanie publicznie udostępniona na stronie /friendica, dzięki czemu użytkownicy i osoby badające problemy z komunikacją mogą łatwo znaleźć przyczynę." - -#: mod/admin.php:398 -msgid "Add new entry to block list" -msgstr "Dodaj nowy wpis do listy bloków" - -#: mod/admin.php:399 -msgid "Server Domain" -msgstr "Domena serwera" - -#: mod/admin.php:399 -msgid "" -"The domain of the new server to add to the block list. Do not include the " -"protocol." -msgstr "Domena nowego serwera do dodania do listy bloków. Nie dołączaj protokołu." - -#: mod/admin.php:400 -msgid "Block reason" -msgstr "Powód zablokowania" - -#: mod/admin.php:401 -msgid "Add Entry" -msgstr "Dodaj wpis" - -#: mod/admin.php:402 -msgid "Save changes to the blocklist" -msgstr "Zapisz zmiany w liście zablokowanych" - -#: mod/admin.php:403 -msgid "Current Entries in the Blocklist" -msgstr "Aktualne wpisy na liście zablokowanych" - -#: mod/admin.php:406 -msgid "Delete entry from blocklist" -msgstr "Usuń wpis z listy zablokowanych" - -#: mod/admin.php:409 -msgid "Delete entry from blocklist?" -msgstr "Usunąć wpis z listy zablokowanych?" - -#: mod/admin.php:436 -msgid "Server added to blocklist." -msgstr "Serwer dodany do listy zablokowanych." - -#: mod/admin.php:452 -msgid "Site blocklist updated." -msgstr "Zaktualizowano listę bloków witryny." - -#: mod/admin.php:477 src/Core/Console/GlobalCommunityBlock.php:68 -msgid "The contact has been blocked from the node" -msgstr "Kontakt został zablokowany w węźle" - -#: mod/admin.php:479 src/Core/Console/GlobalCommunityBlock.php:65 -#, php-format -msgid "Could not find any contact entry for this URL (%s)" -msgstr "Nie można znaleźć żadnego kontaktu dla tego adresu URL (%s)" - -#: mod/admin.php:486 -#, php-format -msgid "%s contact unblocked" -msgid_plural "%s contacts unblocked" -msgstr[0] "%s kontakt odblokowany" -msgstr[1] "%s kontakty odblokowane" -msgstr[2] "%s kontaktów odblokowanych" -msgstr[3] "%s kontaktów odblokowanych" - -#: mod/admin.php:515 -msgid "Remote Contact Blocklist" -msgstr "Lista zablokowanych kontaktów zdalnych" - -#: mod/admin.php:516 -msgid "" -"This page allows you to prevent any message from a remote contact to reach " -"your node." -msgstr "Ta strona pozwala zapobiec wysyłaniu do węzła wiadomości od kontaktu zdalnego." - -#: mod/admin.php:517 -msgid "Block Remote Contact" -msgstr "Zablokuj kontakt zdalny" - -#: mod/admin.php:518 mod/admin.php:2064 -msgid "select all" -msgstr "zaznacz wszystko" - -#: mod/admin.php:519 -msgid "select none" -msgstr "wybierz brak" - -#: mod/admin.php:520 mod/admin.php:2073 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Block" -msgstr "Zablokuj" - -#: mod/admin.php:521 mod/admin.php:2075 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Unblock" -msgstr "Odblokuj" - -#: mod/admin.php:522 -msgid "No remote contact is blocked from this node." -msgstr "Z tego węzła nie jest blokowany kontakt zdalny." - -#: mod/admin.php:524 -msgid "Blocked Remote Contacts" -msgstr "Zablokowane kontakty zdalne" - -#: mod/admin.php:525 -msgid "Block New Remote Contact" -msgstr "Zablokuj nowy kontakt zdalny" - -#: mod/admin.php:526 -msgid "Photo" -msgstr "Zdjęcie" - -#: mod/admin.php:526 mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 -#: mod/admin.php:2097 mod/crepair.php:159 mod/settings.php:667 -#: mod/settings.php:693 -msgid "Name" -msgstr "Nazwa" - -#: mod/admin.php:526 mod/profiles.php:382 -msgid "Address" -msgstr "Adres" - -#: mod/admin.php:526 mod/admin.php:536 mod/follow.php:166 -#: mod/notifications.php:179 mod/notifications.php:263 mod/unfollow.php:137 -#: src/Module/Contact.php:639 -msgid "Profile URL" -msgstr "Adres URL profilu" - -#: mod/admin.php:534 -#, php-format -msgid "%s total blocked contact" -msgid_plural "%s total blocked contacts" -msgstr[0] "łącznie %s zablokowany kontakt" -msgstr[1] "łącznie %s zablokowane kontakty" -msgstr[2] "łącznie %s zablokowanych kontaktów" -msgstr[3] "%s całkowicie zablokowane kontakty" - -#: mod/admin.php:536 -msgid "URL of the remote contact to block." -msgstr "Adres URL kontaktu zdalnego do zablokowania." - -#: mod/admin.php:559 -msgid "Delete this Item" -msgstr "Usuń ten przedmiot" - -#: mod/admin.php:560 -msgid "" -"On this page you can delete an item from your node. If the item is a top " -"level posting, the entire thread will be deleted." -msgstr "Na tej stronie możesz usunąć przedmiot ze swojego węzła. Jeśli element jest publikowaniem na najwyższym poziomie, cały wątek zostanie usunięty." - -#: mod/admin.php:561 -msgid "" -"You need to know the GUID of the item. You can find it e.g. by looking at " -"the display URL. The last part of http://example.com/display/123456 is the " -"GUID, here 123456." -msgstr "Musisz znać identyfikator GUID tego przedmiotu. Możesz go znaleźć np. patrząc na wyświetlany adres URL. Ostatnia część http://example.com/display/123456 to GUID, tutaj 123456." - -#: mod/admin.php:562 -msgid "GUID" -msgstr "GUID" - -#: mod/admin.php:562 -msgid "The GUID of the item you want to delete." -msgstr "Identyfikator elementu GUID, który chcesz usunąć." - -#: mod/admin.php:597 -msgid "Item marked for deletion." -msgstr "Przedmiot oznaczony do usunięcia." - -#: mod/admin.php:669 -msgid "unknown" -msgstr "nieznany" - -#: mod/admin.php:772 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "Ta strona zawiera kilka numerów do znanej części federacyjnej sieci społecznościowej, do której należy Twój węzeł Friendica. Liczby te nie są kompletne, ale odzwierciedlają tylko część sieci, o której wie twój węzeł." - -#: mod/admin.php:773 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "Funkcja Katalog kontaktów automatycznie odkrytych nie jest włączona, poprawi ona wyświetlane tutaj dane." - -#: mod/admin.php:785 -#, php-format -msgid "" -"Currently this node is aware of %d nodes with %d registered users from the " -"following platforms:" -msgstr "Obecnie węzeł ten jest świadomy %dwęzłów z %d zarejestrowanymi użytkownikami z następujących platform:" - -#: mod/admin.php:825 mod/admin.php:878 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:826 -msgid "Recipient Name" -msgstr "Nazwa odbiorcy" - -#: mod/admin.php:827 -msgid "Recipient Profile" -msgstr "Profil odbiorcy" - -#: mod/admin.php:828 src/Content/Nav.php:239 -#: src/Core/NotificationsManager.php:182 view/theme/frio/theme.php:269 -msgid "Network" -msgstr "Sieć" - -#: mod/admin.php:829 mod/admin.php:880 -msgid "Created" -msgstr "Utwórz" - -#: mod/admin.php:830 -msgid "Last Tried" -msgstr "Ostatnia wypróbowana" - -#: mod/admin.php:831 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "Na tej stronie znajduje się zawartość kolejki dla wysyłek wychodzących. Są to posty, dla których początkowe wysyłanie nie powiodło się. Zostaną one ponownie wysłane później i ostatecznie usunięte, jeśli doręczenie zakończy się trwale." - -#: mod/admin.php:854 -msgid "Inspect Deferred Worker Queue" -msgstr "Sprawdź kolejkę odroczonych pracowników" - -#: mod/admin.php:855 -msgid "" -"This page lists the deferred worker jobs. This are jobs that couldn't be " -"executed at the first time." -msgstr "Ta strona zawiera listę zadań opóźnionych pracowników. Są to zadania, które nie mogą być wykonywane po raz pierwszy." - -#: mod/admin.php:858 -msgid "Inspect Worker Queue" -msgstr "Sprawdź Kolejkę Pracowników" - -#: mod/admin.php:859 -msgid "" -"This page lists the currently queued worker jobs. These jobs are handled by " -"the worker cronjob you've set up during install." -msgstr "Ta strona zawiera listę aktualnie ustawionych zadań dla pracowników. Te zadania są obsługiwane przez cronjob pracownika, który skonfigurowałeś podczas instalacji." - -#: mod/admin.php:879 -msgid "Job Parameters" -msgstr "Parametry zadania" - -#: mod/admin.php:881 -msgid "Priority" -msgstr "Priorytet" - -#: mod/admin.php:907 -#, php-format -msgid "" -"Your DB still runs with MyISAM tables. You should change the engine type to " -"InnoDB. As Friendica will use InnoDB only features in the future, you should" -" change this! See here for a guide that may be helpful " -"converting the table engines. You may also use the command php " -"bin/console.php dbstructure toinnodb of your Friendica installation for" -" an automatic conversion.
    " -msgstr "Twoja baza danych nadal używa tabel MyISAM. Powinieneś(-naś) zmienić typ silnika na InnoDB. Ponieważ Friendica będzie używać w przyszłości wyłącznie funkcji InnoDB, powinieneś(-naś) to zmienić! Zobacz tutaj przewodnik, który może być pomocny w konwersji silników tabel. Możesz także użyć polecenia php bin/console.php dbstructure toinnodb instalacji Friendica, aby dokonać automatycznej konwersji.
    " - -#: mod/admin.php:914 -#, php-format -msgid "" -"There is a new version of Friendica available for download. Your current " -"version is %1$s, upstream version is %2$s" -msgstr "Dostępna jest nowa wersja aplikacji Friendica. Twoja aktualna wersja to %1$s wyższa wersja to %2$s" - -#: mod/admin.php:924 -msgid "" -"The database update failed. Please run \"php bin/console.php dbstructure " -"update\" from the command line and have a look at the errors that might " -"appear." -msgstr "Aktualizacja bazy danych nie powiodła się. Uruchom polecenie \"php bin/console.php dbstructure update\" z wiersza poleceń i sprawdź błędy, które mogą się pojawić." - -#: mod/admin.php:930 -msgid "The worker was never executed. Please check your database structure!" -msgstr "Pracownik nigdy nie został stracony. Sprawdź swoją strukturę bazy danych!" - -#: mod/admin.php:933 -#, php-format -msgid "" -"The last worker execution was on %s UTC. This is older than one hour. Please" -" check your crontab settings." -msgstr "Ostatnie wykonanie robota było w %s UTC. To jest starsze niż jedna godzina. Sprawdź ustawienia crontab." - -#: mod/admin.php:939 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -".htconfig.php. See the Config help page for " -"help with the transition." -msgstr "" - -#: mod/admin.php:943 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -"config/local.ini.php. See the Config help " -"page for help with the transition." -msgstr "" - -#: mod/admin.php:950 -#, php-format -msgid "" -"%s is not reachable on your system. This is a severe " -"configuration issue that prevents server to server communication. See the installation page for help." -msgstr "%s nie jest osiągalny w twoim systemie. Jest to poważny problem z konfiguracją, który uniemożliwia komunikację między serwerami. Zobacz pomoc na stronie instalacji." - -#: mod/admin.php:956 -msgid "Normal Account" -msgstr "Konto normalne" - -#: mod/admin.php:957 -msgid "Automatic Follower Account" -msgstr "Automatyczne konto obserwatora" - -#: mod/admin.php:958 -msgid "Public Forum Account" -msgstr "Publiczne konto na forum" - -#: mod/admin.php:959 -msgid "Automatic Friend Account" -msgstr "Automatyczny przyjaciel konta" - -#: mod/admin.php:960 -msgid "Blog Account" -msgstr "Konto Bloga" - -#: mod/admin.php:961 -msgid "Private Forum Account" -msgstr "Prywatne konto na forum" - -#: mod/admin.php:984 -msgid "Message queues" -msgstr "Wiadomości" - -#: mod/admin.php:990 -msgid "Server Settings" -msgstr "Ustawienia serwera" - -#: mod/admin.php:999 -msgid "Summary" -msgstr "Podsumowanie" - -#: mod/admin.php:1001 -msgid "Registered users" -msgstr "Zarejestrowani użytkownicy" - -#: mod/admin.php:1003 -msgid "Pending registrations" -msgstr "Oczekujące rejestracje" - -#: mod/admin.php:1004 -msgid "Version" -msgstr "Wersja" - -#: mod/admin.php:1009 -msgid "Active addons" -msgstr "Aktywne dodatki" - -#: mod/admin.php:1042 -msgid "Can not parse base url. Must have at least ://" -msgstr "Nie można zanalizować podstawowego adresu URL. Musi mieć co najmniej : //" - -#: mod/admin.php:1415 -msgid "Site settings updated." -msgstr "Zaktualizowano ustawienia strony." - -#: mod/admin.php:1444 mod/settings.php:893 -msgid "No special theme for mobile devices" -msgstr "Brak specialnego motywu dla urządzeń mobilnych" - -#: mod/admin.php:1473 -msgid "No community page for local users" -msgstr "Brak strony społeczności dla użytkowników lokalnych" - -#: mod/admin.php:1474 -msgid "No community page" -msgstr "Brak strony społeczności" - -#: mod/admin.php:1475 -msgid "Public postings from users of this site" -msgstr "Publikacje publiczne od użytkowników tej strony" - -#: mod/admin.php:1476 -msgid "Public postings from the federated network" -msgstr "Publikacje wpisy ze sfederowanej sieci" - -#: mod/admin.php:1477 -msgid "Public postings from local users and the federated network" -msgstr "Publikacje publiczne od użytkowników lokalnych i sieci federacyjnej" - -#: mod/admin.php:1481 mod/admin.php:1682 mod/admin.php:1692 -#: src/Module/Contact.php:546 -msgid "Disabled" -msgstr "Wyłączony" - -#: mod/admin.php:1483 -msgid "Users, Global Contacts" -msgstr "Użytkownicy, kontakty globalne" - -#: mod/admin.php:1484 -msgid "Users, Global Contacts/fallback" -msgstr "Użytkownicy, kontakty globalne/awaryjne" - -#: mod/admin.php:1488 -msgid "One month" -msgstr "Miesiąc" - -#: mod/admin.php:1489 -msgid "Three months" -msgstr "Trzy miesiące" - -#: mod/admin.php:1490 -msgid "Half a year" -msgstr "Pół roku" - -#: mod/admin.php:1491 -msgid "One year" -msgstr "Rok" - -#: mod/admin.php:1496 -msgid "Multi user instance" -msgstr "Tryb wielu użytkowników" - -#: mod/admin.php:1520 -msgid "Closed" -msgstr "Zamknięte" - -#: mod/admin.php:1521 -msgid "Requires approval" -msgstr "Wymaga zatwierdzenia" - -#: mod/admin.php:1522 -msgid "Open" -msgstr "Otwarta" - -#: mod/admin.php:1526 -msgid "No SSL policy, links will track page SSL state" -msgstr "Brak SSL, linki będą śledzić stan SSL" - -#: mod/admin.php:1527 -msgid "Force all links to use SSL" -msgstr "Wymuś używanie SSL na wszystkich odnośnikach" - -#: mod/admin.php:1528 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Wewnętrzne Certyfikaty, użyj SSL tylko dla linków lokalnych . " - -#: mod/admin.php:1532 -msgid "Don't check" -msgstr "Nie sprawdzaj" - -#: mod/admin.php:1533 -msgid "check the stable version" -msgstr "sprawdź wersję stabilną" - -#: mod/admin.php:1534 -msgid "check the development version" -msgstr "sprawdź wersję rozwojową" - -#: mod/admin.php:1556 -msgid "Database (legacy)" -msgstr "" - -#: mod/admin.php:1583 -msgid "Republish users to directory" -msgstr "Ponownie opublikuj użytkowników w katalogu" - -#: mod/admin.php:1584 src/Module/Register.php:121 -msgid "Registration" -msgstr "Rejestracja" - -#: mod/admin.php:1585 -msgid "File upload" -msgstr "Przesyłanie plików" - -#: mod/admin.php:1586 -msgid "Policies" -msgstr "Zasady" - -#: mod/admin.php:1587 mod/events.php:555 src/Model/Profile.php:878 -#: src/Module/Contact.php:902 -msgid "Advanced" -msgstr "Zaawansowany" - -#: mod/admin.php:1588 -msgid "Auto Discovered Contact Directory" -msgstr "Katalog kontaktów automatycznie odkrytych" - -#: mod/admin.php:1589 -msgid "Performance" -msgstr "Ustawienia" - -#: mod/admin.php:1590 -msgid "Worker" -msgstr "Pracownik" - -#: mod/admin.php:1591 -msgid "Message Relay" -msgstr "Przekazywanie wiadomości" - -#: mod/admin.php:1592 -msgid "Relocate Instance" -msgstr "Zmień lokalizację" - -#: mod/admin.php:1593 -msgid "Warning! Advanced function. Could make this server unreachable." -msgstr "Ostrzeżenie! Zaawansowana funkcja. Może spowodować, że serwer będzie nieosiągalny." - -#: mod/admin.php:1597 -msgid "Site name" -msgstr "Nazwa strony" - -#: mod/admin.php:1598 -msgid "Host name" -msgstr "Nazwa hosta" - -#: mod/admin.php:1599 -msgid "Sender Email" -msgstr "E-mail nadawcy" - -#: mod/admin.php:1599 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "Adres e-mail używany przez Twój serwer do wysyłania e-maili z powiadomieniami." - -#: mod/admin.php:1600 -msgid "Banner/Logo" -msgstr "Logo" - -#: mod/admin.php:1601 -msgid "Shortcut icon" -msgstr "Ikona skrótu" - -#: mod/admin.php:1601 -msgid "Link to an icon that will be used for browsers." -msgstr "Link do ikony, która będzie używana w przeglądarkach." - -#: mod/admin.php:1602 -msgid "Touch icon" -msgstr "Dołącz ikonę" - -#: mod/admin.php:1602 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Link do ikony, która będzie używana w tabletach i telefonach komórkowych." - -#: mod/admin.php:1603 -msgid "Additional Info" -msgstr "Dodatkowe informacje" - -#: mod/admin.php:1603 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/servers." -msgstr "W przypadku serwerów publicznych: możesz tu dodać dodatkowe informacje, które będą wymienione na %s/servers." - -#: mod/admin.php:1604 -msgid "System language" -msgstr "Język systemu" - -#: mod/admin.php:1605 -msgid "System theme" -msgstr "Motyw systemowy" - -#: mod/admin.php:1605 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Domyślny motyw systemu - może być nadpisany przez profil użytkownika zmień ustawienia motywów" - -#: mod/admin.php:1606 -msgid "Mobile system theme" -msgstr "Motyw systemu mobilnego" - -#: mod/admin.php:1606 -msgid "Theme for mobile devices" -msgstr "Motyw na urządzenia mobilne" - -#: mod/admin.php:1607 -msgid "SSL link policy" -msgstr "Polityka odnośników SSL" - -#: mod/admin.php:1607 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Określa, czy generowane odnośniki będą obowiązkowo używały SSL" - -#: mod/admin.php:1608 -msgid "Force SSL" -msgstr "Wymuś SSL" - -#: mod/admin.php:1608 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Wymuszaj wszystkie żądania SSL bez SSL - Uwaga: w niektórych systemach może to prowadzić do niekończących się pętli." - -#: mod/admin.php:1609 -msgid "Hide help entry from navigation menu" -msgstr "Ukryj pomoc w menu nawigacyjnym" - -#: mod/admin.php:1609 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Chowa pozycje menu dla stron pomocy ze strony nawigacyjnej. Możesz nadal ją wywołać poprzez komendę /help." - -#: mod/admin.php:1610 -msgid "Single user instance" -msgstr "Tryb pojedynczego użytkownika" - -#: mod/admin.php:1610 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Ustawia tryb dla wielu użytkowników lub pojedynczego użytkownika dla nazwanego użytkownika" - -#: mod/admin.php:1612 -msgid "File storage backend" -msgstr "Backend przechowywania plików" - -#: mod/admin.php:1612 -msgid "" -"The backend used to store uploaded data. If you change the storage backend, " -"you can manually move the existing files. If you do not do so, the files " -"uploaded before the change will still be available at the old backend. " -"Please see the settings documentation" -" for more information about the choices and the moving procedure." -msgstr "" - -#: mod/admin.php:1614 -msgid "Maximum image size" -msgstr "Maksymalny rozmiar zdjęcia" - -#: mod/admin.php:1614 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Maksymalny rozmiar w bitach dla wczytywanego obrazu . Domyślnie jest to 0 , co oznacza bez limitu ." - -#: mod/admin.php:1615 -msgid "Maximum image length" -msgstr "Maksymalna długość obrazu" - -#: mod/admin.php:1615 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Maksymalna długość w pikselach dłuższego boku przesyłanego obrazu. Wartością domyślną jest -1, co oznacza brak ograniczeń." - -#: mod/admin.php:1616 -msgid "JPEG image quality" -msgstr "Jakość obrazu JPEG" - -#: mod/admin.php:1616 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Przesłane pliki JPEG zostaną zapisane w tym ustawieniu jakości [0-100]. Domyślna wartość to 100, która jest pełną jakością." - -#: mod/admin.php:1618 -msgid "Register policy" -msgstr "Zasady rejestracji" - -#: mod/admin.php:1619 -msgid "Maximum Daily Registrations" -msgstr "Maksymalna dzienna rejestracja" - -#: mod/admin.php:1619 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "Jeśli rejestracja powyżej jest dozwolona, to określa maksymalną liczbę nowych rejestracji użytkowników do zaakceptowania na dzień. Jeśli rejestracja jest ustawiona na \"Zamknięta\", to ustawienie to nie ma wpływu." - -#: mod/admin.php:1620 -msgid "Register text" -msgstr "Zarejestruj tekst" - -#: mod/admin.php:1620 -msgid "" -"Will be displayed prominently on the registration page. You can use BBCode " -"here." -msgstr "Będą wyświetlane w widocznym miejscu na stronie rejestracji. Możesz użyć BBCode tutaj." - -#: mod/admin.php:1621 -msgid "Forbidden Nicknames" -msgstr "Zakazane pseudonimy" - -#: mod/admin.php:1621 -msgid "" -"Comma separated list of nicknames that are forbidden from registration. " -"Preset is a list of role names according RFC 2142." -msgstr "Lista oddzielonych przecinkami pseudonimów, których nie wolno rejestrować. Preset to lista nazw ról zgodnie z RFC 2142." - -#: mod/admin.php:1622 -msgid "Accounts abandoned after x days" -msgstr "Konta porzucone po x dni" - -#: mod/admin.php:1622 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Nie będzie marnować zasobów systemu wypytując zewnętrzne strony o opuszczone konta. Ustaw 0 dla braku limitu czasu ." - -#: mod/admin.php:1623 -msgid "Allowed friend domains" -msgstr "Dozwolone domeny przyjaciół" - -#: mod/admin.php:1623 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Rozdzielana przecinkami lista domen, które mogą nawiązywać przyjaźnie z tą witryną. Symbole wieloznaczne są akceptowane. Pozostaw puste by zezwolić każdej domenie na zaprzyjaźnienie." - -#: mod/admin.php:1624 -msgid "Allowed email domains" -msgstr "Dozwolone domeny e-mailowe" - -#: mod/admin.php:1624 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Rozdzielana przecinkami lista domen dozwolonych w adresach e-mail do rejestracji na tej stronie. Symbole wieloznaczne są akceptowane. Opróżnij, aby zezwolić na dowolne domeny" - -#: mod/admin.php:1625 -msgid "No OEmbed rich content" -msgstr "Brak treści multimedialnych ze znaczkiem HTML" - -#: mod/admin.php:1625 -msgid "" -"Don't show the rich content (e.g. embedded PDF), except from the domains " -"listed below." -msgstr "Nie wyświetlaj zasobów treści (np. osadzonego pliku PDF), z wyjątkiem domen wymienionych poniżej." - -#: mod/admin.php:1626 -msgid "Allowed OEmbed domains" -msgstr "Dozwolone domeny OEmbed" - -#: mod/admin.php:1626 -msgid "" -"Comma separated list of domains which oembed content is allowed to be " -"displayed. Wildcards are accepted." -msgstr "Rozdzielana przecinkami lista domen, w których wyświetlana jest treść, może być wyświetlana. Symbole wieloznaczne są akceptowane." - -#: mod/admin.php:1627 -msgid "Block public" -msgstr "Blokuj publicznie" - -#: mod/admin.php:1627 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Zaznacz, aby zablokować publiczny dostęp do wszystkich publicznych stron prywatnych w tej witrynie, chyba że jesteś zalogowany." - -#: mod/admin.php:1628 -msgid "Force publish" -msgstr "Wymuś publikację" - -#: mod/admin.php:1628 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Zaznacz, aby wymusić umieszczenie wszystkich profili w tej witrynie w katalogu witryny." - -#: mod/admin.php:1628 -msgid "Enabling this may violate privacy laws like the GDPR" -msgstr "Włączenie tego może naruszyć prawa ochrony prywatności, takie jak GDPR" - -#: mod/admin.php:1629 -msgid "Global directory URL" -msgstr "Globalny adres URL katalogu" - -#: mod/admin.php:1629 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "Adres URL do katalogu globalnego. Jeśli nie zostanie to ustawione, katalog globalny jest całkowicie niedostępny dla aplikacji." - -#: mod/admin.php:1630 -msgid "Private posts by default for new users" -msgstr "Prywatne posty domyślnie dla nowych użytkowników" - -#: mod/admin.php:1630 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Ustaw domyślne uprawnienia do publikowania dla wszystkich nowych członków na domyślną grupę prywatności, a nie publiczną." - -#: mod/admin.php:1631 -msgid "Don't include post content in email notifications" -msgstr "Nie wklejaj zawartości postu do powiadomienia o poczcie" - -#: mod/admin.php:1631 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "W celu ochrony prywatności, nie włączaj zawartości postu/komentarza/wiadomości prywatnej/etc. do powiadomień w wiadomościach mailowych wysyłanych z tej strony." - -#: mod/admin.php:1632 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Nie zezwalaj na publiczny dostęp do dodatkowych wtyczek wyszczególnionych w menu aplikacji." - -#: mod/admin.php:1632 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Zaznaczenie tego pola spowoduje ograniczenie dodatków wymienionych w menu aplikacji tylko dla członków." - -#: mod/admin.php:1633 -msgid "Don't embed private images in posts" -msgstr "Nie umieszczaj prywatnych zdjęć w postach" - -#: mod/admin.php:1633 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Nie zastępuj lokalnie hostowanych zdjęć prywatnych we wpisach za pomocą osadzonej kopii obrazu. Oznacza to, że osoby, które otrzymują posty zawierające prywatne zdjęcia, będą musiały uwierzytelnić i wczytać każdy obraz, co może trochę potrwać." - -#: mod/admin.php:1634 -msgid "Explicit Content" -msgstr "Treści dla dorosłych" - -#: mod/admin.php:1634 -msgid "" -"Set this to announce that your node is used mostly for explicit content that" -" might not be suited for minors. This information will be published in the " -"node information and might be used, e.g. by the global directory, to filter " -"your node from listings of nodes to join. Additionally a note about this " -"will be shown at the user registration page." -msgstr "Ustaw to, aby ogłosić, że Twój węzeł jest używany głównie do jawnej treści, która może nie być odpowiednia dla nieletnich. Informacje te zostaną opublikowane w informacjach o węźle i mogą zostać wykorzystane, np. w katalogu globalnym, aby filtrować węzeł z list węzłów do przyłączenia. Dodatkowo notatka o tym zostanie pokazana na stronie rejestracji użytkownika." - -#: mod/admin.php:1635 -msgid "Allow Users to set remote_self" -msgstr "Zezwól użytkownikom na ustawienie remote_self" - -#: mod/admin.php:1635 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "Po sprawdzeniu tego każdy użytkownik może zaznaczyć każdy kontakt jako zdalny w oknie dialogowym kontaktu naprawczego. Ustawienie tej flagi na kontakcie powoduje dublowanie każdego wpisu tego kontaktu w strumieniu użytkowników." - -#: mod/admin.php:1636 -msgid "Block multiple registrations" -msgstr "Zablokuj wielokrotną rejestrację" - -#: mod/admin.php:1636 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Nie pozwalaj użytkownikom na zakładanie dodatkowych kont do używania jako strony. " - -#: mod/admin.php:1637 -msgid "Disable OpenID" -msgstr "Wyłącz OpenID" - -#: mod/admin.php:1637 -msgid "Disable OpenID support for registration and logins." -msgstr "Wyłącz obsługę OpenID dla rejestracji i logowania." - -#: mod/admin.php:1638 -msgid "No Fullname check" -msgstr "Bez sprawdzania pełnej nazwy" - -#: mod/admin.php:1638 -msgid "" -"Allow users to register without a space between the first name and the last " -"name in their full name." -msgstr "Zezwól użytkownikom na rejestrację bez spacji między imieniem i nazwiskiem w ich pełnym imieniu." - -#: mod/admin.php:1639 -msgid "Community pages for visitors" -msgstr "Strony społecznościowe dla odwiedzających" - -#: mod/admin.php:1639 -msgid "" -"Which community pages should be available for visitors. Local users always " -"see both pages." -msgstr "Które strony społeczności powinny być dostępne dla odwiedzających. Lokalni użytkownicy zawsze widzą obie strony." - -#: mod/admin.php:1640 -msgid "Posts per user on community page" -msgstr "Lista postów użytkownika na stronie społeczności" - -#: mod/admin.php:1640 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Maksymalna liczba postów na użytkownika na stronie społeczności. (Nie dotyczy 'społeczności globalnej')" - -#: mod/admin.php:1641 -msgid "Disable OStatus support" -msgstr "Wyłącz obsługę OStatus" - -#: mod/admin.php:1641 -msgid "" -"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Wyłącz wbudowaną kompatybilność z OStatus (StatusNet, GNU Social itd.). Wszystkie rozmowy w OStatus są publiczne, więc czasem będą pojawiać się ostrzeżenia o prywatności." - -#: mod/admin.php:1642 -msgid "Only import OStatus/ActivityPub threads from our contacts" -msgstr "Importuj wątki OStatus/ActivityPub tylko z naszych kontaktów" - -#: mod/admin.php:1642 -msgid "" -"Normally we import every content from our OStatus and ActivityPub contacts. " -"With this option we only store threads that are started by a contact that is" -" known on our system." -msgstr "Normalnie importujemy każdą zawartość z naszych kontaktów OStatus i ActivityPub. W tej opcji przechowujemy tylko wątki uruchomione przez kontakt znany w naszym systemie." - -#: mod/admin.php:1643 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "Obsługa OStatus może być włączona tylko wtedy, gdy włączone jest wątkowanie." - -#: mod/admin.php:1645 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "Obsługa Diaspory nie może być włączona, ponieważ Friendica została zainstalowana w podkatalogu." - -#: mod/admin.php:1646 -msgid "Enable Diaspora support" -msgstr "Włączyć obsługę Diaspory" - -#: mod/admin.php:1646 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Zapewnij wbudowaną kompatybilność z siecią Diaspora." - -#: mod/admin.php:1647 -msgid "Only allow Friendica contacts" -msgstr "Dopuść tylko kontakty Friendrica" - -#: mod/admin.php:1647 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "Wszyscy znajomi muszą używać protokołów Friendica. Wszystkie inne wbudowane protokoły komunikacyjne są wyłączone." - -#: mod/admin.php:1648 -msgid "Verify SSL" -msgstr "Weryfikacja SSL" - -#: mod/admin.php:1648 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "Jeśli chcesz, możesz włączyć ścisłe sprawdzanie certyfikatu. Oznacza to, że nie możesz połączyć się (w ogóle) z własnoręcznie podpisanymi stronami SSL." - -#: mod/admin.php:1649 -msgid "Proxy user" -msgstr "Użytkownik proxy" - -#: mod/admin.php:1650 -msgid "Proxy URL" -msgstr "URL Proxy" - -#: mod/admin.php:1651 -msgid "Network timeout" -msgstr "Network timeout" - -#: mod/admin.php:1651 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Wartość jest w sekundach. Ustaw na 0 dla nieograniczonej (niezalecane)." - -#: mod/admin.php:1652 -msgid "Maximum Load Average" -msgstr "Maksymalne obciążenie średnie" - -#: mod/admin.php:1652 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Maksymalne obciążenie systemu przed dostawą i odpytywaniem jest odłożone - domyślnie 50." - -#: mod/admin.php:1653 -msgid "Maximum Load Average (Frontend)" -msgstr "Maksymalne obciążenie średnie (Frontend)" - -#: mod/admin.php:1653 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "Maksymalne obciążenie systemu, zanim frontend zakończy pracę - domyślnie 50." - -#: mod/admin.php:1654 -msgid "Minimal Memory" -msgstr "Minimalna pamięć" - -#: mod/admin.php:1654 -msgid "" -"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " -"default 0 (deactivated)." -msgstr "Minimalna wolna pamięć w MB dla pracownika. Potrzebuje dostępu do /proc/ meminfo - domyślnie 0 (wyłączone)." - -#: mod/admin.php:1655 -msgid "Maximum table size for optimization" -msgstr "Maksymalny rozmiar stołu do optymalizacji" - -#: mod/admin.php:1655 -msgid "" -"Maximum table size (in MB) for the automatic optimization. Enter -1 to " -"disable it." -msgstr "Maksymalny rozmiar tablicy (w MB) do automatycznej optymalizacji. Wprowadź -1, aby go wyłączyć." - -#: mod/admin.php:1656 -msgid "Minimum level of fragmentation" -msgstr "Minimalny poziom fragmentacji" - -#: mod/admin.php:1656 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "Minimalny poziom fragmentacji, aby rozpocząć automatyczną optymalizację - domyślna wartość to 30%." - -#: mod/admin.php:1658 -msgid "Periodical check of global contacts" -msgstr "Okresowa kontrola kontaktów globalnych" - -#: mod/admin.php:1658 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "Jeśli jest włączona, kontakty globalne są okresowo sprawdzane pod kątem brakujących lub nieaktualnych danych oraz żywotności kontaktów i serwerów." - -#: mod/admin.php:1659 -msgid "Days between requery" -msgstr "Dni między żądaniem" - -#: mod/admin.php:1659 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Liczba dni, po upływie których serwer jest żądany dla swoich kontaktów." - -#: mod/admin.php:1660 -msgid "Discover contacts from other servers" -msgstr "Odkryj kontakty z innych serwerów" - -#: mod/admin.php:1660 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommended setting is 'Users, " -"Global Contacts'." -msgstr "Okresowo sprawdzaj kontakty z innymi serwerami. Możesz wybrać pomiędzy „użytkownikami”: użytkownikami systemu zdalnego, „kontaktami globalnymi”: aktywnymi kontaktami znanymi w systemie. Rozwiązanie awaryjne jest przeznaczone dla serwerów Redmatrix i starszych serwerów friendica, gdzie globalne kontakty nie były dostępne. Powrót awaryjny zwiększa obciążenie serwera, dlatego zalecane ustawienie to „Użytkownicy, kontakty globalne”." - -#: mod/admin.php:1661 -msgid "Timeframe for fetching global contacts" -msgstr "Czas pobierania globalnych kontaktów" - -#: mod/admin.php:1661 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "Po aktywowaniu wykrywania ta wartość określa czas działania globalnych kontaktów pobieranych z innych serwerów." - -#: mod/admin.php:1662 -msgid "Search the local directory" -msgstr "Wyszukaj w lokalnym katalogu" - -#: mod/admin.php:1662 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "Wyszukaj lokalny katalog zamiast katalogu globalnego. Podczas wyszukiwania lokalnie każde wyszukiwanie zostanie wykonane w katalogu globalnym w tle. Poprawia to wyniki wyszukiwania, gdy wyszukiwanie jest powtarzane." - -#: mod/admin.php:1664 -msgid "Publish server information" -msgstr "Publikuj informacje o serwerze" - -#: mod/admin.php:1664 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "Jeśli opcja jest włączona, ogólne dane serwera i użytkowania zostaną opublikowane. Dane zawierają nazwę i wersję serwera, liczbę użytkowników z profilami publicznymi, liczbę postów oraz aktywowane protokoły i konektory. Aby uzyskać szczegółowe informacje, patrz the-federation.info." - -#: mod/admin.php:1666 -msgid "Check upstream version" -msgstr "Sprawdź wersję powyżej" - -#: mod/admin.php:1666 -msgid "" -"Enables checking for new Friendica versions at github. If there is a new " -"version, you will be informed in the admin panel overview." -msgstr "Umożliwia sprawdzenie nowych wersji Friendica na github. Jeśli pojawi się nowa wersja, zostaniesz o tym poinformowany w panelu administracyjnym." - -#: mod/admin.php:1667 -msgid "Suppress Tags" -msgstr "Ukryj tagi" - -#: mod/admin.php:1667 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Pomiń wyświetlenie listy hashtagów na końcu postu." - -#: mod/admin.php:1668 -msgid "Clean database" -msgstr "Wyczyść bazę danych" - -#: mod/admin.php:1668 -msgid "" -"Remove old remote items, orphaned database records and old content from some" -" other helper tables." -msgstr "Usuń stare zdalne pozycje, osierocone rekordy bazy danych i starą zawartość z innych tabel pomocników." - -#: mod/admin.php:1669 -msgid "Lifespan of remote items" -msgstr "Żywotność odległych przedmiotów" - -#: mod/admin.php:1669 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"remote items will be deleted. Own items, and marked or filed items are " -"always kept. 0 disables this behaviour." -msgstr "Po włączeniu czyszczenia bazy danych określa dni, po których zdalne elementy zostaną usunięte. Własne przedmioty oraz oznaczone lub wypełnione pozycje są zawsze przechowywane. 0 wyłącza to zachowanie." - -#: mod/admin.php:1670 -msgid "Lifespan of unclaimed items" -msgstr "Żywotność nieodebranych przedmiotów" - -#: mod/admin.php:1670 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"unclaimed remote items (mostly content from the relay) will be deleted. " -"Default value is 90 days. Defaults to the general lifespan value of remote " -"items if set to 0." -msgstr "Po włączeniu czyszczenia bazy danych określa się dni, po których usunięte zostaną nieodebrane zdalne elementy (głównie zawartość z przekaźnika). Wartość domyślna to 90 dni. Wartość domyślna dla ogólnej długości życia zdalnych pozycji, jeśli jest ustawiona na 0." - -#: mod/admin.php:1671 -msgid "Lifespan of raw conversation data" -msgstr "Trwałość nieprzetworzonych danych konwersacji" - -#: mod/admin.php:1671 -msgid "" -"The conversation data is used for ActivityPub and OStatus, as well as for " -"debug purposes. It should be safe to remove it after 14 days, default is 90 " -"days." -msgstr "Dane konwersacji są używane do ActivityPub i OStatus, a także do celów debugowania. Powinno być bezpieczne usunięcie go po 14 dniach, domyślnie jest to 90 dni." - -#: mod/admin.php:1672 -msgid "Path to item cache" -msgstr "Ścieżka do pamięci podręcznej" - -#: mod/admin.php:1672 -msgid "The item caches buffers generated bbcode and external images." -msgstr "Pozycja buforuje bufory generowane bbcode i obrazy zewnętrzne." - -#: mod/admin.php:1673 -msgid "Cache duration in seconds" -msgstr "Czas trwania w sekundach" - -#: mod/admin.php:1673 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "Jak długo powinny być przechowywane pliki pamięci podręcznej? Wartość domyślna to 86400 sekund (jeden dzień). Aby wyłączyć pamięć podręczną elementów, ustaw wartość na -1." - -#: mod/admin.php:1674 -msgid "Maximum numbers of comments per post" -msgstr "Maksymalna liczba komentarzy na post" - -#: mod/admin.php:1674 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "Ile komentarzy powinno być pokazywanych dla każdego posta? Domyślna wartość to 100." - -#: mod/admin.php:1675 -msgid "Temp path" -msgstr "Ścieżka do Temp" - -#: mod/admin.php:1675 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "Jeśli masz zastrzeżony system, w którym serwer internetowy nie może uzyskać dostępu do ścieżki temp systemu, wprowadź tutaj inną ścieżkę." - -#: mod/admin.php:1676 -msgid "Base path to installation" -msgstr "Podstawowa ścieżka do instalacji" - -#: mod/admin.php:1676 -msgid "" -"If the system cannot detect the correct path to your installation, enter the" -" correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "Jeśli system nie może wykryć poprawnej ścieżki do instalacji, wprowadź tutaj poprawną ścieżkę. To ustawienie powinno być ustawione tylko wtedy, gdy używasz ograniczonego systemu i dowiązań symbolicznych do twojego webroota." - -#: mod/admin.php:1677 -msgid "Disable picture proxy" -msgstr "Wyłącz obraz proxy" - -#: mod/admin.php:1677 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwidth." -msgstr "Serwer proxy zwiększa wydajność i prywatność. Nie powinno być używane w systemach o bardzo niskiej przepustowości." - -#: mod/admin.php:1678 -msgid "Only search in tags" -msgstr "Szukaj tylko w tagach" - -#: mod/admin.php:1678 -msgid "On large systems the text search can slow down the system extremely." -msgstr "W dużych systemach wyszukiwanie tekstu może wyjątkowo spowolnić system." - -#: mod/admin.php:1680 -msgid "New base url" -msgstr "Nowy bazowy adres url" - -#: mod/admin.php:1680 -msgid "" -"Change base url for this server. Sends relocate message to all Friendica and" -" Diaspora* contacts of all users." -msgstr "Zmień bazowy adres URL dla tego serwera. Wysyła wiadomość o przeniesieniu do wszystkich kontaktów Friendica i Diaspora* wszystkich użytkowników." - -#: mod/admin.php:1682 -msgid "RINO Encryption" -msgstr "Szyfrowanie RINO" - -#: mod/admin.php:1682 -msgid "Encryption layer between nodes." -msgstr "Warstwa szyfrowania między węzłami." - -#: mod/admin.php:1682 -msgid "Enabled" -msgstr "Włącz" - -#: mod/admin.php:1684 -msgid "Maximum number of parallel workers" -msgstr "Maksymalna liczba równoległych pracowników" - -#: mod/admin.php:1684 -#, php-format -msgid "" -"On shared hosters set this to %d. On larger systems, values of %d are great." -" Default value is %d." -msgstr "Na udostępnionych usługach hostingowych ustaw tę opcję %d. W większych systemach wartości %dsą świetne . Wartość domyślna to %d." - -#: mod/admin.php:1685 -msgid "Don't use 'proc_open' with the worker" -msgstr "Nie używaj 'proc_open' z robotnikiem" - -#: mod/admin.php:1685 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of worker calls in your crontab." -msgstr "Włącz to, jeśli twój system nie zezwala na użycie 'proc_open'. Może się to zdarzyć w przypadku współdzielonych hosterów. Jeśli ta opcja jest włączona, powinieneś zwiększyć częstotliwość wywołań pracowniczych w twoim pliku crontab." - -#: mod/admin.php:1686 -msgid "Enable fastlane" -msgstr "Włącz Fastlane" - -#: mod/admin.php:1686 -msgid "" -"When enabed, the fastlane mechanism starts an additional worker if processes" -" with higher priority are blocked by processes of lower priority." -msgstr "Po włączeniu system Fastlane uruchamia dodatkowego pracownika, jeśli procesy o wyższym priorytecie są blokowane przez procesy o niższym priorytecie." - -#: mod/admin.php:1687 -msgid "Enable frontend worker" -msgstr "Włącz pracownika frontend" - -#: mod/admin.php:1687 -#, php-format -msgid "" -"When enabled the Worker process is triggered when backend access is " -"performed \\x28e.g. messages being delivered\\x29. On smaller sites you " -"might want to call %s/worker on a regular basis via an external cron job. " -"You should only enable this option if you cannot utilize cron/scheduled jobs" -" on your server." -msgstr "Po włączeniu proces roboczy jest wyzwalany, gdy wykonywany jest dostęp do zaplecza \\x28e.g. wiadomości są dostarczane\\x29. W mniejszych witrynach możesz chcieć wywoływać %s/robotnika regularnie przez zewnętrzne zadanie cron. Tę opcję należy włączyć tylko wtedy, gdy nie można używać zadań cron/zaplanowanych na serwerze." - -#: mod/admin.php:1689 -msgid "Subscribe to relay" -msgstr "Subskrybuj przekaźnik" - -#: mod/admin.php:1689 -msgid "" -"Enables the receiving of public posts from the relay. They will be included " -"in the search, subscribed tags and on the global community page." -msgstr "Umożliwia odbieranie publicznych wiadomości z przekaźnika. Zostaną uwzględnione w tagach wyszukiwania, subskrybowanych i na stronie społeczności globalnej." - -#: mod/admin.php:1690 -msgid "Relay server" -msgstr "Serwer przekazujący" - -#: mod/admin.php:1690 -msgid "" -"Address of the relay server where public posts should be send to. For " -"example https://relay.diasp.org" -msgstr "Adres serwera przekazującego, do którego należy wysyłać publiczne posty. Na przykład https://relay.diasp.org" - -#: mod/admin.php:1691 -msgid "Direct relay transfer" -msgstr "Bezpośredni transfer przekaźników" - -#: mod/admin.php:1691 -msgid "" -"Enables the direct transfer to other servers without using the relay servers" -msgstr "Umożliwia bezpośredni transfer do innych serwerów bez korzystania z serwerów przekazujących" - -#: mod/admin.php:1692 -msgid "Relay scope" -msgstr "Zakres przekaźnika" - -#: mod/admin.php:1692 -msgid "" -"Can be 'all' or 'tags'. 'all' means that every public post should be " -"received. 'tags' means that only posts with selected tags should be " -"received." -msgstr "Może być 'wszystkim' lub 'tagami'. 'wszystko' oznacza, że ​​każdy post publiczny powinien zostać odebrany. 'tagi' oznaczają, że powinny być odbierane tylko posty z wybranymi tagami." - -#: mod/admin.php:1692 -msgid "all" -msgstr "wszystko" - -#: mod/admin.php:1692 -msgid "tags" -msgstr "tagi" - -#: mod/admin.php:1693 -msgid "Server tags" -msgstr "Serwer tagów" - -#: mod/admin.php:1693 -msgid "Comma separated list of tags for the 'tags' subscription." -msgstr "Lista oddzielonych przecinkami znaczników dla subskrypcji 'tagów'." - -#: mod/admin.php:1694 -msgid "Allow user tags" -msgstr "Pozwól na tagi użytkowników" - -#: mod/admin.php:1694 -msgid "" -"If enabled, the tags from the saved searches will used for the 'tags' " -"subscription in addition to the 'relay_server_tags'." -msgstr "Po włączeniu tagi z zapisanych wyszukiwań będą używane do subskrypcji 'tagów' oprócz 'relay_server_tags'." - -#: mod/admin.php:1697 -msgid "Start Relocation" -msgstr "Rozpocznij przenoszenie" - -#: mod/admin.php:1724 -msgid "Update has been marked successful" -msgstr "Aktualizacja została oznaczona jako udana" - -#: mod/admin.php:1731 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "Pomyślnie zastosowano aktualizację %s struktury bazy danych." - -#: mod/admin.php:1735 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "Wykonanie aktualizacji %s struktury bazy danych nie powiodło się z powodu błędu:%s" - -#: mod/admin.php:1751 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "Wykonanie %s nie powiodło się z powodu błędu:%s" - -#: mod/admin.php:1753 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Aktualizacja %s została pomyślnie zastosowana." - -#: mod/admin.php:1756 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Aktualizacja %s nie zwróciła statusu. Nieznane, jeśli się udało." - -#: mod/admin.php:1759 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "Nie było dodatkowej funkcji %s aktualizacji, która musiała zostać wywołana." - -#: mod/admin.php:1782 -msgid "No failed updates." -msgstr "Brak błędów aktualizacji." - -#: mod/admin.php:1783 -msgid "Check database structure" -msgstr "Sprawdź strukturę bazy danych" - -#: mod/admin.php:1788 -msgid "Failed Updates" -msgstr "Błąd aktualizacji" - -#: mod/admin.php:1789 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "Nie dotyczy to aktualizacji przed 1139, który nie zwrócił statusu." - -#: mod/admin.php:1790 -msgid "Mark success (if update was manually applied)" -msgstr "Oznacz sukces (jeśli aktualizacja została ręcznie zastosowana)" - -#: mod/admin.php:1791 -msgid "Attempt to execute this update step automatically" -msgstr "Spróbuj automatycznie wykonać ten krok aktualizacji" - -#: mod/admin.php:1831 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\n\t\t\tSzanowny Użytkowniku %1$s, \n\t\t\t\tadministrator %2$s założył dla ciebie konto." - -#: mod/admin.php:1834 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "\n\t\t\tDane logowania są następuje:\n\t\t\tLokalizacja witryny:\t%1$s\n\t\t\tNazwa użytkownika:%2$s\n\t\t\tHasło:%3$s\n\n\t\t\tPo zalogowaniu możesz zmienić hasło do swojego konta na stronie \"Ustawienia\".\n \t\t\tProszę poświęć chwilę, aby przejrzeć inne ustawienia konta na tej stronie.\n\n\t\t\tMożesz również dodać podstawowe informacje do swojego domyślnego profilu\n\t\t\t(na stronie \"Profil użytkownika\"), aby inne osoby mogły łatwo Cię znaleźć.\n\n\t\t\tZalecamy ustawienie imienia i nazwiska, dodanie zdjęcia profilowego,\n\t\t\tdodanie niektórych \"słów kluczowych\" profilu (bardzo przydatne w nawiązywaniu nowych znajomości) \n\t\t\ti być może gdzie mieszkasz; jeśli nie chcesz podać więcej szczegów.\n\n\t\t\tW pełni szanujemy Twoje prawo do prywatności i żaden z tych elementów nie jest konieczny.\n\t\t\tJeśli jesteś nowy i nie znasz tutaj nikogo, oni mogą ci pomóc,\n\t\t\tmożesz zdobyć nowych interesujących przyjaciół.\n\n\t\t\tJeśli kiedykolwiek zechcesz usunąć swoje konto, możesz to zrobić na stronie %1$s/removeme\n\n\t\t\tDziękujemy i Zapraszamy do%4$s" - -#: mod/admin.php:1871 src/Model/User.php:859 -#, php-format -msgid "Registration details for %s" -msgstr "Szczegóły rejestracji dla %s" - -#: mod/admin.php:1881 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "zablokowano/odblokowano %s użytkownika" -msgstr[1] "zablokowano/odblokowano %s użytkowników" -msgstr[2] "zablokowano/odblokowano %s użytkowników" -msgstr[3] "%sużytkowników zablokowanych/odblokowanych" - -#: mod/admin.php:1888 mod/admin.php:1942 -msgid "You can't remove yourself" -msgstr "Nie możesz usunąć siebie" - -#: mod/admin.php:1891 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "usunięto %s użytkownika" -msgstr[1] "usunięto %s użytkowników" -msgstr[2] "usunięto %s użytkowników" -msgstr[3] "%s usuniętych użytkowników" - -#: mod/admin.php:1940 -#, php-format -msgid "User '%s' deleted" -msgstr "Użytkownik '%s' usunięty" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' unblocked" -msgstr "Użytkownik '%s' odblokowany" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' blocked" -msgstr "Użytkownik '%s' zablokowany" - -#: mod/admin.php:1999 mod/settings.php:1049 -msgid "Normal Account Page" -msgstr "Normalna strona konta" - -#: mod/admin.php:2000 mod/settings.php:1053 -msgid "Soapbox Page" -msgstr "Strona Soapbox" - -#: mod/admin.php:2001 mod/settings.php:1057 -msgid "Public Forum" -msgstr "Forum publiczne" - -#: mod/admin.php:2002 mod/settings.php:1061 -msgid "Automatic Friend Page" -msgstr "Automatyczna strona znajomego" - -#: mod/admin.php:2003 -msgid "Private Forum" -msgstr "Prywatne forum" - -#: mod/admin.php:2006 mod/settings.php:1033 -msgid "Personal Page" -msgstr "Strona osobista" - -#: mod/admin.php:2007 mod/settings.php:1037 -msgid "Organisation Page" -msgstr "Strona Organizacji" - -#: mod/admin.php:2008 mod/settings.php:1041 -msgid "News Page" -msgstr "Strona Wiadomości" - -#: mod/admin.php:2009 mod/settings.php:1045 -msgid "Community Forum" -msgstr "Forum społecznościowe" - -#: mod/admin.php:2010 -msgid "Relay" -msgstr "" - -#: mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 mod/admin.php:2099 -#: src/Content/ContactSelector.php:86 -msgid "Email" -msgstr "E-mail" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Register date" -msgstr "Data rejestracji" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last login" -msgstr "Ostatnie logowanie" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last item" -msgstr "Ostatni element" - -#: mod/admin.php:2056 -msgid "Type" -msgstr "Typu" - -#: mod/admin.php:2063 -msgid "Add User" -msgstr "Dodaj użytkownika" - -#: mod/admin.php:2065 -msgid "User registrations waiting for confirm" -msgstr "Zarejestrowani użytkownicy czekający na potwierdzenie" - -#: mod/admin.php:2066 -msgid "User waiting for permanent deletion" -msgstr "Użytkownik czekający na trwałe usunięcie" - -#: mod/admin.php:2067 -msgid "Request date" -msgstr "Data prośby" - -#: mod/admin.php:2068 -msgid "No registrations." -msgstr "Brak rejestracji." - -#: mod/admin.php:2069 -msgid "Note from the user" -msgstr "Uwaga od użytkownika" - -#: mod/admin.php:2070 mod/notifications.php:183 mod/notifications.php:269 -msgid "Approve" -msgstr "Zatwierdź" - -#: mod/admin.php:2071 -msgid "Deny" -msgstr "Odmów" - -#: mod/admin.php:2074 -msgid "User blocked" -msgstr "Użytkownik zablokowany" - -#: mod/admin.php:2076 -msgid "Site admin" -msgstr "Administracja stroną" - -#: mod/admin.php:2077 -msgid "Account expired" -msgstr "Konto wygasło" - -#: mod/admin.php:2080 -msgid "New User" -msgstr "Nowy użytkownik" - -#: mod/admin.php:2081 -msgid "Permanent deletion" -msgstr "Trwałe usunięcie" - -#: mod/admin.php:2086 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Zaznaczeni użytkownicy zostaną usunięci!\\n\\n Wszystko co zamieścili na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?" - -#: mod/admin.php:2087 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Użytkownik {0} zostanie usunięty!\\n\\n Wszystko co zamieścił na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?" - -#: mod/admin.php:2097 -msgid "Name of the new user." -msgstr "Nazwa nowego użytkownika." - -#: mod/admin.php:2098 -msgid "Nickname" -msgstr "Pseudonim" - -#: mod/admin.php:2098 -msgid "Nickname of the new user." -msgstr "Pseudonim nowego użytkownika." - -#: mod/admin.php:2099 -msgid "Email address of the new user." -msgstr "Adres email nowego użytkownika." - -#: mod/admin.php:2141 -#, php-format -msgid "Addon %s disabled." -msgstr "Dodatek %s wyłączony." - -#: mod/admin.php:2144 -#, php-format -msgid "Addon %s enabled." -msgstr "Dodatek %s włączony." - -#: mod/admin.php:2155 mod/admin.php:2405 -msgid "Disable" -msgstr "Wyłącz" - -#: mod/admin.php:2158 mod/admin.php:2408 -msgid "Enable" -msgstr "Zezwól" - -#: mod/admin.php:2180 mod/admin.php:2437 -msgid "Toggle" -msgstr "Włącz" - -#: mod/admin.php:2181 mod/admin.php:2438 mod/newmember.php:20 -#: mod/settings.php:136 src/Content/Nav.php:263 view/theme/frio/theme.php:272 -msgid "Settings" -msgstr "Ustawienia" - -#: mod/admin.php:2188 mod/admin.php:2446 -msgid "Author: " -msgstr "Autor: " - -#: mod/admin.php:2189 mod/admin.php:2447 -msgid "Maintainer: " -msgstr "Opiekun: " - -#: mod/admin.php:2241 -msgid "Reload active addons" -msgstr "Załaduj ponownie aktywne dodatki" - -#: mod/admin.php:2246 -#, php-format -msgid "" -"There are currently no addons available on your node. You can find the " -"official addon repository at %1$s and might find other interesting addons in" -" the open addon registry at %2$s" -msgstr "W twoim węźle nie ma obecnie żadnych dodatków. Możesz znaleźć oficjalne repozytorium dodatków na %1$s i możesz znaleźć inne interesujące dodatki w otwartym rejestrze dodatków na %2$s" - -#: mod/admin.php:2367 -msgid "No themes found." -msgstr "Nie znaleziono motywów." - -#: mod/admin.php:2428 -msgid "Screenshot" -msgstr "Zrzut ekranu" - -#: mod/admin.php:2482 -msgid "Reload active themes" -msgstr "Przeładuj aktywne motywy" - -#: mod/admin.php:2487 -#, php-format -msgid "No themes found on the system. They should be placed in %1$s" -msgstr "Nie znaleziono motywów w systemie. Powinny zostać umieszczone %1$s" - -#: mod/admin.php:2488 -msgid "[Experimental]" -msgstr "[Eksperymentalne]" - -#: mod/admin.php:2489 -msgid "[Unsupported]" -msgstr "[Niewspieralne]" - -#: mod/admin.php:2514 -msgid "Log settings updated." -msgstr "Zaktualizowano ustawienia logów." - -#: mod/admin.php:2547 -msgid "PHP log currently enabled." -msgstr "Dziennik PHP jest obecnie włączony." - -#: mod/admin.php:2549 -msgid "PHP log currently disabled." -msgstr "Dziennik PHP jest obecnie wyłączony." - -#: mod/admin.php:2558 -msgid "Clear" -msgstr "Wyczyść" - -#: mod/admin.php:2562 -msgid "Enable Debugging" -msgstr "Włącz debugowanie" - -#: mod/admin.php:2563 -msgid "Log file" -msgstr "Plik logów" - -#: mod/admin.php:2563 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Musi być zapisywalny przez serwer sieciowy. W stosunku do katalogu najwyższego poziomu Friendica." - -#: mod/admin.php:2564 -msgid "Log level" -msgstr "Poziom logów" - -#: mod/admin.php:2566 -msgid "PHP logging" -msgstr "Logowanie w PHP" - -#: mod/admin.php:2567 -msgid "" -"To temporarily enable logging of PHP errors and warnings you can prepend the" -" following to the index.php file of your installation. The filename set in " -"the 'error_log' line is relative to the friendica top-level directory and " -"must be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "Aby tymczasowo włączyć rejestrowanie błędów i ostrzeżeń PHP, możesz dołączyć do pliku index.php swojej instalacji. Nazwa pliku ustawiona w linii 'error_log' odnosi się do katalogu najwyższego poziomu friendiki i musi być zapisywalna przez serwer WWW. Opcja '1' dla 'log_errors' i 'display_errors' polega na włączeniu tych opcji, ustawieniu na '0', aby je wyłączyć." - -#: mod/admin.php:2599 -#, php-format -msgid "" -"Error trying to open %1$s log file.\\r\\n
    Check to see " -"if file %1$s exist and is readable." -msgstr "Błąd podczas próby otwarcia %1$s pliku dziennika. \\r\\n
    Sprawdź, czy plik %1$s istnieje i czy można go odczytać." - -#: mod/admin.php:2603 -#, php-format -msgid "" -"Couldn't open %1$s log file.\\r\\n
    Check to see if file" -" %1$s is readable." -msgstr "Nie można otworzyć %1$spliku dziennika. \\r\\n
    Sprawdź, czy plik %1$s jest czytelny." - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "Off" -msgstr "Wyłącz" - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "On" -msgstr "Włącz" - -#: mod/admin.php:2697 -#, php-format -msgid "Lock feature %s" -msgstr "Funkcja blokady %s" - -#: mod/admin.php:2705 -msgid "Manage Additional Features" -msgstr "Zarządzanie dodatkowymi funkcjami" - -#: mod/allfriends.php:52 -msgid "No friends to display." -msgstr "Brak znajomych do wyświetlenia." - -#: mod/allfriends.php:89 mod/dirfind.php:217 mod/match.php:102 -#: mod/suggest.php:106 src/Content/Widget.php:39 src/Model/Profile.php:313 -msgid "Connect" -msgstr "Połącz" - #: mod/api.php:84 mod/api.php:106 msgid "Authorize application connection" msgstr "Autoryzacja połączenia aplikacji" @@ -2935,212 +966,79 @@ msgid "" " and/or create new posts for you?" msgstr "Czy chcesz zezwolić tej aplikacji na dostęp do swoich postów i kontaktów i/lub tworzenie nowych postów?" -#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:161 #: mod/profiles.php:526 mod/profiles.php:530 mod/profiles.php:551 -#: mod/settings.php:1085 mod/settings.php:1091 mod/settings.php:1098 -#: mod/settings.php:1102 mod/settings.php:1106 mod/settings.php:1110 -#: mod/settings.php:1114 mod/settings.php:1118 mod/settings.php:1138 -#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 -#: mod/settings.php:1142 src/Module/Register.php:98 +#: mod/settings.php:1084 mod/settings.php:1090 mod/settings.php:1097 +#: mod/settings.php:1101 mod/settings.php:1105 mod/settings.php:1109 +#: mod/settings.php:1113 mod/settings.php:1117 mod/settings.php:1137 +#: mod/settings.php:1138 mod/settings.php:1139 mod/settings.php:1140 +#: mod/settings.php:1141 src/Module/Register.php:98 msgid "No" msgstr "Nie" -#: mod/apps.php:15 src/App.php:1259 -msgid "You must be logged in to use addons. " -msgstr "Musisz być zalogowany(-a), aby korzystać z dodatków. " - -#: mod/apps.php:20 -msgid "Applications" -msgstr "Aplikacje" - -#: mod/apps.php:25 -msgid "No installed applications." -msgstr "Brak zainstalowanych aplikacji." - -#: mod/babel.php:25 -msgid "Source input" -msgstr "Źródło wejściowe" - -#: mod/babel.php:31 -msgid "BBCode::toPlaintext" -msgstr "BBCode::na prosty tekst" - -#: mod/babel.php:37 -msgid "BBCode::convert (raw HTML)" -msgstr "BBCode:: konwersjia (raw HTML)" - -#: mod/babel.php:42 -msgid "BBCode::convert" -msgstr "BBCode::przekształć" - -#: mod/babel.php:48 -msgid "BBCode::convert => HTML::toBBCode" -msgstr "BBCode::przekształć => HTML::toBBCode" - -#: mod/babel.php:54 -msgid "BBCode::toMarkdown" -msgstr "BBCode::toMarkdown" - -#: mod/babel.php:60 -msgid "BBCode::toMarkdown => Markdown::convert" -msgstr "BBCode::toMarkdown => Markdown::przekształć" - -#: mod/babel.php:66 -msgid "BBCode::toMarkdown => Markdown::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::toBBCode" - -#: mod/babel.php:72 -msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::przekształć => HTML::toBBCode" - -#: mod/babel.php:83 -msgid "Item Body" -msgstr "" - -#: mod/babel.php:87 -msgid "Item Tags" -msgstr "" - -#: mod/babel.php:94 -msgid "Source input (Diaspora format)" -msgstr "Źródło wejściowe (format Diaspora)" - -#: mod/babel.php:100 -msgid "Markdown::convert (raw HTML)" -msgstr "Markdown::convert (raw HTML)" - -#: mod/babel.php:105 -msgid "Markdown::convert" -msgstr "Markdown::convert" - -#: mod/babel.php:111 -msgid "Markdown::toBBCode" -msgstr "Markdown::toBBCode" - -#: mod/babel.php:118 -msgid "Raw HTML input" -msgstr "Surowe wejście HTML" - -#: mod/babel.php:123 -msgid "HTML Input" -msgstr "Wejście HTML" - -#: mod/babel.php:129 -msgid "HTML::toBBCode" -msgstr "HTML::toBBCode" - -#: mod/babel.php:135 -msgid "HTML::toBBCode => BBCode::convert" -msgstr "HTML::toBBCode => BBCode::convert" - -#: mod/babel.php:140 -msgid "HTML::toBBCode => BBCode::convert (raw HTML)" -msgstr "HTML::toBBCode => BBCode::convert (raw HTML)" - -#: mod/babel.php:146 -msgid "HTML::toMarkdown" -msgstr "HTML::toMarkdown" - -#: mod/babel.php:152 -msgid "HTML::toPlaintext" -msgstr "HTML::toPlaintext" - -#: mod/babel.php:160 -msgid "Source text" -msgstr "Tekst źródłowy" - -#: mod/babel.php:161 -msgid "BBCode" -msgstr "BBCode" - -#: mod/babel.php:162 -msgid "Markdown" -msgstr "Markdown" - -#: mod/babel.php:163 -msgid "HTML" -msgstr "HTML" - -#: mod/bookmarklet.php:22 src/Content/Nav.php:170 src/Module/Login.php:322 -msgid "Login" -msgstr "Zaloguj się" - -#: mod/bookmarklet.php:32 -msgid "Bad Request" -msgstr "Nieprawidłowe żądanie" - -#: mod/bookmarklet.php:54 -msgid "The post was created" -msgstr "Post został utworzony" - #: mod/cal.php:34 mod/cal.php:38 mod/community.php:39 mod/follow.php:20 -#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 mod/viewsrc.php:13 +#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 src/Module/ItemBody.php:18 msgid "Access denied." msgstr "Brak dostępu." -#: mod/cal.php:46 mod/dfrn_poll.php:486 mod/help.php:68 -#: mod/viewcontacts.php:34 src/App.php:1310 -msgid "Page not found." -msgstr "Strona nie znaleziona." - -#: mod/cal.php:141 mod/display.php:309 src/Module/Profile.php:168 +#: mod/cal.php:140 mod/display.php:306 src/Module/Profile.php:176 msgid "Access to this profile has been restricted." msgstr "Dostęp do tego profilu został ograniczony." -#: mod/cal.php:273 mod/events.php:384 src/Content/Nav.php:160 -#: src/Content/Nav.php:226 src/Model/Profile.php:937 src/Model/Profile.php:948 +#: mod/cal.php:271 mod/events.php:382 src/Content/Nav.php:159 +#: src/Content/Nav.php:225 src/Model/Profile.php:931 src/Model/Profile.php:942 #: view/theme/frio/theme.php:266 view/theme/frio/theme.php:270 msgid "Events" msgstr "Wydarzenia" -#: mod/cal.php:274 mod/events.php:385 +#: mod/cal.php:272 mod/events.php:383 msgid "View" msgstr "Widok" -#: mod/cal.php:275 mod/events.php:387 +#: mod/cal.php:273 mod/events.php:385 msgid "Previous" msgstr "Poprzedni" -#: mod/cal.php:276 mod/events.php:388 src/Module/Install.php:133 +#: mod/cal.php:274 mod/events.php:386 src/Module/Install.php:173 msgid "Next" msgstr "Następny" -#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:428 +#: mod/cal.php:277 mod/events.php:391 src/Model/Event.php:428 msgid "today" msgstr "dzisiaj" -#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:429 +#: mod/cal.php:278 mod/events.php:392 src/Model/Event.php:429 #: src/Util/Temporal.php:314 msgid "month" msgstr "miesiąc" -#: mod/cal.php:281 mod/events.php:395 src/Model/Event.php:430 +#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:430 #: src/Util/Temporal.php:315 msgid "week" msgstr "tydzień" -#: mod/cal.php:282 mod/events.php:396 src/Model/Event.php:431 +#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:431 #: src/Util/Temporal.php:316 msgid "day" msgstr "dzień" -#: mod/cal.php:283 mod/events.php:397 +#: mod/cal.php:281 mod/events.php:395 msgid "list" msgstr "lista" -#: mod/cal.php:296 src/Core/Console/NewPassword.php:67 src/Model/User.php:324 +#: mod/cal.php:294 src/Console/NewPassword.php:67 src/Model/User.php:351 msgid "User not found" msgstr "Użytkownik nie znaleziony" -#: mod/cal.php:312 +#: mod/cal.php:310 msgid "This calendar format is not supported" msgstr "Ten format kalendarza nie jest obsługiwany" -#: mod/cal.php:314 +#: mod/cal.php:312 msgid "No exportable data found" msgstr "Nie znaleziono danych do eksportu" -#: mod/cal.php:331 +#: mod/cal.php:329 msgid "calendar" msgstr "kalendarz" @@ -3148,14 +1046,14 @@ msgstr "kalendarz" msgid "No contacts in common." msgstr "Brak wspólnych kontaktów." -#: mod/common.php:141 src/Module/Contact.php:892 +#: mod/common.php:141 src/Module/Contact.php:895 msgid "Common Friends" msgstr "Wspólni znajomi" -#: mod/community.php:32 mod/dfrn_request.php:597 mod/directory.php:43 -#: mod/display.php:209 mod/photos.php:903 mod/probe.php:13 mod/search.php:96 -#: mod/search.php:102 mod/videos.php:147 mod/viewcontacts.php:46 -#: mod/webfinger.php:16 +#: mod/community.php:32 mod/dfrn_request.php:597 mod/display.php:204 +#: mod/photos.php:846 mod/probe.php:14 mod/search.php:96 mod/search.php:102 +#: mod/videos.php:118 mod/viewcontacts.php:46 src/Module/Directory.php:43 +#: src/Module/WebFinger.php:19 msgid "Public access denied." msgstr "Publiczny dostęp zabroniony." @@ -3183,7 +1081,7 @@ msgstr "Globalna społeczność" msgid "Posts from users of the whole federated network" msgstr "Wpisy od użytkowników całej sieci stowarzyszonej" -#: mod/community.php:162 mod/search.php:229 +#: mod/community.php:162 mod/search.php:223 msgid "No results." msgstr "Brak wyników." @@ -3193,17 +1091,6 @@ msgid "" " not reflect the opinions of this node’s users." msgstr "Ten strumień społeczności pokazuje wszystkie publiczne posty otrzymane przez ten węzeł. Mogą nie odzwierciedlać opinii użytkowników tego węzła." -#: mod/credits.php:19 -msgid "Credits" -msgstr "Zaufany" - -#: mod/credits.php:20 -msgid "" -"Friendica is a community project, that would not be possible without the " -"help of many people. Here is a list of those who have contributed to the " -"code or the translation of Friendica. Thank you all!" -msgstr "Friendica to projekt społecznościowy, który nie byłby możliwy bez pomocy wielu osób. Oto lista osób, które przyczyniły się do tworzenia kodu lub tłumaczenia Friendica. Dziękuję wam wszystkim!" - #: mod/crepair.php:79 msgid "Contact settings applied." msgstr "Ustawienia kontaktu zaktualizowane." @@ -3212,8 +1099,9 @@ msgstr "Ustawienia kontaktu zaktualizowane." msgid "Contact update failed." msgstr "Nie udało się zaktualizować kontaktu." -#: mod/crepair.php:102 mod/dfrn_confirm.php:127 mod/fsuggest.php:28 +#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/fsuggest.php:28 #: mod/fsuggest.php:89 mod/redir.php:31 mod/redir.php:137 +#: src/Module/FollowConfirm.php:46 src/Module/Group.php:92 msgid "Contact not found." msgstr "Nie znaleziono kontaktu." @@ -3249,14 +1137,15 @@ msgstr "Wróć do edytora kontaktów" msgid "Refetch contact data" msgstr "Odśwież dane kontaktowe" -#: mod/crepair.php:149 mod/events.php:553 mod/fsuggest.php:106 -#: mod/invite.php:154 mod/localtime.php:56 mod/manage.php:182 -#: mod/message.php:261 mod/message.php:441 mod/photos.php:1049 -#: mod/photos.php:1137 mod/photos.php:1412 mod/photos.php:1457 -#: mod/photos.php:1496 mod/photos.php:1556 mod/poke.php:188 -#: mod/profiles.php:562 src/Module/Contact.php:594 src/Module/Install.php:187 -#: src/Module/Install.php:222 src/Object/Post.php:877 -#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:119 +#: mod/crepair.php:149 mod/events.php:551 mod/fsuggest.php:106 +#: mod/manage.php:183 mod/message.php:261 mod/message.php:441 +#: mod/photos.php:987 mod/photos.php:1093 mod/photos.php:1378 +#: mod/photos.php:1423 mod/photos.php:1462 mod/photos.php:1522 +#: mod/poke.php:184 mod/profiles.php:562 src/Module/Contact.php:597 +#: src/Module/Install.php:211 src/Module/Install.php:251 +#: src/Module/Install.php:287 src/Module/Invite.php:157 +#: src/Module/Localtime.php:45 src/Object/Post.php:877 +#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:121 #: view/theme/quattro/config.php:74 view/theme/vier/config.php:120 msgid "Submit" msgstr "Potwierdź" @@ -3275,6 +1164,13 @@ msgid "" "entries from this contact." msgstr "Oznacz ten kontakt jako remote_self, spowoduje to, że friendica odeśle nowe wpisy z tego kontaktu." +#: mod/crepair.php:159 mod/settings.php:676 mod/settings.php:702 +#: src/Module/Admin/Blocklist/Contact.php:72 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:313 +msgid "Name" +msgstr "Nazwa" + #: mod/crepair.php:160 msgid "Account Nickname" msgstr "Nazwa konta" @@ -3338,7 +1234,15 @@ msgid "" "settings. Please double check whom you give this access." msgstr "Użytkownicy nadrzędni mają pełną kontrolę nad tym kontem, w tym także ustawienia konta. Sprawdź dokładnie, komu przyznasz ten dostęp." -#: mod/delegate.php:176 src/Content/Nav.php:261 +#: mod/delegate.php:175 mod/settings.php:674 mod/settings.php:781 +#: mod/settings.php:869 mod/settings.php:948 mod/settings.php:1173 +#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69 +#: src/Module/Admin/Logs/Settings.php:59 src/Module/Admin/Site.php:570 +#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Tos.php:50 +msgid "Save Settings" +msgstr "Zapisz ustawienia" + +#: mod/delegate.php:176 src/Content/Nav.php:260 msgid "Delegate Page Management" msgstr "Deleguj zarządzanie stronami" @@ -3373,83 +1277,79 @@ msgstr "Dodaj" msgid "No entries." msgstr "Brak wpisów." -#: mod/dfrn_confirm.php:72 mod/profiles.php:43 mod/profiles.php:152 +#: mod/dfrn_confirm.php:70 mod/profiles.php:43 mod/profiles.php:152 #: mod/profiles.php:196 mod/profiles.php:511 msgid "Profile not found." msgstr "Nie znaleziono profilu." -#: mod/dfrn_confirm.php:128 +#: mod/dfrn_confirm.php:126 msgid "" "This may occasionally happen if contact was requested by both persons and it" " has already been approved." msgstr "Może się to zdarzyć, gdy kontakt został zgłoszony przez obie osoby i został już zatwierdzony." -#: mod/dfrn_confirm.php:238 +#: mod/dfrn_confirm.php:227 msgid "Response from remote site was not understood." msgstr "Odpowiedź do zdalnej strony nie została zrozumiana" -#: mod/dfrn_confirm.php:245 mod/dfrn_confirm.php:251 +#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240 msgid "Unexpected response from remote site: " msgstr "Nieoczekiwana odpowiedź od strony zdalnej:" -#: mod/dfrn_confirm.php:260 +#: mod/dfrn_confirm.php:249 msgid "Confirmation completed successfully." msgstr "Potwierdzenie zostało pomyślnie zakończone." -#: mod/dfrn_confirm.php:272 +#: mod/dfrn_confirm.php:261 msgid "Temporary failure. Please wait and try again." msgstr "Tymczasowa awaria. Proszę czekać i spróbuj ponownie." -#: mod/dfrn_confirm.php:275 +#: mod/dfrn_confirm.php:264 msgid "Introduction failed or was revoked." msgstr "Wprowadzenie nie powiodło się lub zostało odwołane." -#: mod/dfrn_confirm.php:280 +#: mod/dfrn_confirm.php:269 msgid "Remote site reported: " msgstr "Zgłoszona zdana strona:" -#: mod/dfrn_confirm.php:386 -msgid "Unable to set contact photo." -msgstr "Nie można ustawić zdjęcia kontaktu." - -#: mod/dfrn_confirm.php:448 +#: mod/dfrn_confirm.php:374 #, php-format msgid "No user record found for '%s' " msgstr "Nie znaleziono użytkownika dla '%s'" -#: mod/dfrn_confirm.php:458 +#: mod/dfrn_confirm.php:384 msgid "Our site encryption key is apparently messed up." msgstr "Klucz kodujący jest najwyraźniej uszkodzony." -#: mod/dfrn_confirm.php:469 +#: mod/dfrn_confirm.php:395 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "Został podany pusty adres URL witryny lub nie można go odszyfrować." -#: mod/dfrn_confirm.php:485 +#: mod/dfrn_confirm.php:411 msgid "Contact record was not found for you on our site." msgstr "Nie znaleziono kontaktu na naszej stronie" -#: mod/dfrn_confirm.php:499 +#: mod/dfrn_confirm.php:425 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "Publiczny klucz witryny jest niedostępny w rekordzie kontaktu dla adresu URL %s" -#: mod/dfrn_confirm.php:515 +#: mod/dfrn_confirm.php:441 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "Identyfikator dostarczony przez Twój system jest duplikatem w naszym systemie. Powinien działać, jeśli spróbujesz ponownie." -#: mod/dfrn_confirm.php:526 +#: mod/dfrn_confirm.php:452 msgid "Unable to set your contact credentials on our system." msgstr "Nie można ustawić danych kontaktowych w naszym systemie." -#: mod/dfrn_confirm.php:582 +#: mod/dfrn_confirm.php:508 msgid "Unable to update your contact profile details on our system" msgstr "Nie można zaktualizować danych Twojego profilu kontaktowego w naszym systemie" -#: mod/dfrn_confirm.php:612 mod/dfrn_request.php:560 -#: src/Model/Contact.php:2043 +#: mod/dfrn_confirm.php:538 mod/dfrn_request.php:560 +#: src/Model/Contact.php:2217 msgid "[Name Withheld]" msgstr "[Nazwa zastrzeżona]" @@ -3525,11 +1425,17 @@ msgstr "Wygląda na to, że już jesteście znajomymi z %s." msgid "Invalid profile URL." msgstr "Nieprawidłowy adres URL profilu." -#: mod/dfrn_request.php:340 src/Model/Contact.php:1714 +#: mod/dfrn_request.php:340 src/Model/Contact.php:1878 msgid "Disallowed profile URL." msgstr "Nie dozwolony adres URL profilu." -#: mod/dfrn_request.php:413 src/Module/Contact.php:235 +#: mod/dfrn_request.php:346 src/Model/Contact.php:1883 +#: src/Module/Admin/Blocklist/Server.php:64 +#: src/Module/Admin/Blocklist/Server.php:83 src/Module/Friendica.php:59 +msgid "Blocked domain" +msgstr "Zablokowana domena" + +#: mod/dfrn_request.php:413 src/Module/Contact.php:237 msgid "Failed to update contact record." msgstr "Aktualizacja rekordu kontaktu nie powiodła się." @@ -3594,16 +1500,16 @@ msgid "" "testuser@gnusocial.de" msgstr "Przykłady: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de" -#: mod/dfrn_request.php:639 mod/follow.php:149 +#: mod/dfrn_request.php:639 mod/follow.php:160 msgid "Please answer the following:" msgstr "Proszę odpowiedzieć na następujące pytania:" -#: mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/dfrn_request.php:640 mod/follow.php:161 #, php-format msgid "Does %s know you?" msgstr "Czy %s Cię zna?" -#: mod/dfrn_request.php:641 mod/follow.php:151 +#: mod/dfrn_request.php:641 mod/follow.php:162 msgid "Add a personal note:" msgstr "Dodaj osobistą notkę:" @@ -3626,65 +1532,14 @@ msgid "" " bar." msgstr " - proszę nie używać tego formularza. Zamiast tego, wpisz %s w pasku wyszukiwania Diaspory." -#: mod/dfrn_request.php:647 mod/follow.php:157 mod/unfollow.php:128 +#: mod/dfrn_request.php:647 mod/follow.php:168 mod/unfollow.php:128 msgid "Your Identity Address:" msgstr "Twój adres tożsamości:" -#: mod/dfrn_request.php:649 mod/follow.php:65 mod/unfollow.php:131 +#: mod/dfrn_request.php:649 mod/follow.php:74 mod/unfollow.php:131 msgid "Submit Request" msgstr "Wyślij zgłoszenie" -#: mod/directory.php:121 -msgid "No entries (some entries may be hidden)." -msgstr "Brak odwiedzin (niektóre odwiedziny mogą być ukryte)." - -#: mod/directory.php:128 src/Content/Widget.php:70 -#: view/theme/vier/theme.php:208 -msgid "Global Directory" -msgstr "Katalog globalny" - -#: mod/directory.php:130 -msgid "Find on this site" -msgstr "Znajdź na tej stronie" - -#: mod/directory.php:132 -msgid "Results for:" -msgstr "Wyniki dla:" - -#: mod/directory.php:134 -msgid "Site Directory" -msgstr "Katalog Witryny" - -#: mod/directory.php:136 src/Content/Widget.php:65 src/Module/Contact.php:817 -#: view/theme/vier/theme.php:203 -msgid "Find" -msgstr "Znajdź" - -#: mod/directory.php:185 mod/events.php:541 mod/notifications.php:253 -#: src/Model/Event.php:68 src/Model/Event.php:95 src/Model/Event.php:437 -#: src/Model/Event.php:933 src/Model/Profile.php:443 -#: src/Module/Contact.php:643 -msgid "Location:" -msgstr "Lokalizacja:" - -#: mod/directory.php:190 mod/notifications.php:259 src/Model/Profile.php:446 -#: src/Model/Profile.php:758 -msgid "Gender:" -msgstr "Płeć:" - -#: mod/directory.php:191 src/Model/Profile.php:447 src/Model/Profile.php:782 -msgid "Status:" -msgstr "Status:" - -#: mod/directory.php:192 src/Model/Profile.php:448 src/Model/Profile.php:799 -msgid "Homepage:" -msgstr "Strona główna:" - -#: mod/directory.php:193 mod/notifications.php:255 src/Model/Profile.php:449 -#: src/Model/Profile.php:819 src/Module/Contact.php:647 -msgid "About:" -msgstr "O:" - #: mod/dirfind.php:55 #, php-format msgid "People Search - %s" @@ -3695,53 +1550,67 @@ msgstr "Szukaj osób - %s" msgid "Forum Search - %s" msgstr "Przeszukiwanie forum - %s" +#: mod/dirfind.php:217 mod/match.php:102 mod/suggest.php:106 +#: src/Content/Widget.php:39 src/Model/Profile.php:309 +#: src/Module/AllFriends.php:91 +msgid "Connect" +msgstr "Połącz" + #: mod/dirfind.php:259 mod/match.php:130 msgid "No matches" msgstr "Brak wyników" -#: mod/editpost.php:29 mod/editpost.php:39 +#: mod/display.php:257 mod/display.php:342 +msgid "The requested item doesn't exist or has been deleted." +msgstr "Żądany element nie istnieje lub został usunięty." + +#: mod/display.php:417 +msgid "The feed for this item is unavailable." +msgstr "Kanał dla tego elementu jest niedostępny." + +#: mod/editpost.php:28 mod/editpost.php:38 msgid "Item not found" msgstr "Nie znaleziono elementu" -#: mod/editpost.php:46 +#: mod/editpost.php:45 msgid "Edit post" msgstr "Edytuj post" -#: mod/editpost.php:73 mod/filer.php:36 mod/notes.php:46 -#: src/Content/Text/HTML.php:894 +#: mod/editpost.php:71 mod/notes.php:46 src/Content/Text/HTML.php:894 +#: src/Module/Filer/SaveTag.php:50 msgid "Save" msgstr "Zapisz" -#: mod/editpost.php:78 mod/message.php:259 mod/message.php:440 +#: mod/editpost.php:76 mod/message.php:259 mod/message.php:440 #: mod/wallmessage.php:140 msgid "Insert web link" msgstr "Wstaw link" -#: mod/editpost.php:79 +#: mod/editpost.php:77 msgid "web link" msgstr "odnośnik sieciowy" -#: mod/editpost.php:80 +#: mod/editpost.php:78 msgid "Insert video link" msgstr "Wstaw link do filmu" -#: mod/editpost.php:81 +#: mod/editpost.php:79 msgid "video link" msgstr "link do filmu" -#: mod/editpost.php:82 +#: mod/editpost.php:80 msgid "Insert audio link" msgstr "Wstaw link do audio" -#: mod/editpost.php:83 +#: mod/editpost.php:81 msgid "audio link" msgstr "link do audio" -#: mod/editpost.php:98 src/Core/ACL.php:307 +#: mod/editpost.php:95 src/Core/ACL.php:308 msgid "CC: email addresses" msgstr "CC: adresy e-mail" -#: mod/editpost.php:105 src/Core/ACL.php:308 +#: mod/editpost.php:102 src/Core/ACL.php:309 msgid "Example: bob@example.com, mary@example.com" msgstr "Przykład: bob@example.com, mary@example.com" @@ -3753,171 +1622,135 @@ msgstr "Wydarzenie nie może się zakończyć przed jego rozpoczęciem." msgid "Event title and start time are required." msgstr "Wymagany tytuł wydarzenia i czas rozpoczęcia." -#: mod/events.php:386 +#: mod/events.php:384 msgid "Create New Event" msgstr "Stwórz nowe wydarzenie" -#: mod/events.php:509 +#: mod/events.php:507 msgid "Event details" msgstr "Szczegóły wydarzenia" -#: mod/events.php:510 +#: mod/events.php:508 msgid "Starting date and Title are required." msgstr "Data rozpoczęcia i tytuł są wymagane." -#: mod/events.php:511 mod/events.php:516 +#: mod/events.php:509 mod/events.php:514 msgid "Event Starts:" msgstr "Rozpoczęcie wydarzenia:" -#: mod/events.php:511 mod/events.php:543 mod/profiles.php:592 +#: mod/events.php:509 mod/events.php:541 mod/profiles.php:592 msgid "Required" msgstr "Wymagany" -#: mod/events.php:524 mod/events.php:549 +#: mod/events.php:522 mod/events.php:547 msgid "Finish date/time is not known or not relevant" msgstr "Data/czas zakończenia nie jest znana lub jest nieistotna" -#: mod/events.php:526 mod/events.php:531 +#: mod/events.php:524 mod/events.php:529 msgid "Event Finishes:" msgstr "Zakończenie wydarzenia:" -#: mod/events.php:537 mod/events.php:550 +#: mod/events.php:535 mod/events.php:548 msgid "Adjust for viewer timezone" msgstr "Dopasuj dla strefy czasowej widza" -#: mod/events.php:539 +#: mod/events.php:537 msgid "Description:" msgstr "Opis:" -#: mod/events.php:543 mod/events.php:545 +#: mod/events.php:539 mod/notifications.php:261 src/Model/Event.php:68 +#: src/Model/Event.php:95 src/Model/Event.php:437 src/Model/Event.php:933 +#: src/Model/Profile.php:439 src/Module/Contact.php:646 +#: src/Module/Directory.php:142 +msgid "Location:" +msgstr "Lokalizacja:" + +#: mod/events.php:541 mod/events.php:543 msgid "Title:" msgstr "Tytuł:" -#: mod/events.php:546 mod/events.php:547 +#: mod/events.php:544 mod/events.php:545 msgid "Share this event" msgstr "Udostępnij te wydarzenie" -#: mod/events.php:554 src/Model/Profile.php:877 +#: mod/events.php:552 src/Model/Profile.php:871 msgid "Basic" msgstr "Podstawowy" -#: mod/events.php:556 mod/photos.php:1067 mod/photos.php:1408 -#: src/Core/ACL.php:310 +#: mod/events.php:553 src/Model/Profile.php:872 src/Module/Admin/Site.php:575 +#: src/Module/Contact.php:905 +msgid "Advanced" +msgstr "Zaawansowany" + +#: mod/events.php:554 mod/photos.php:1005 mod/photos.php:1374 +#: src/Core/ACL.php:314 msgid "Permissions" msgstr "Uprawnienia" -#: mod/events.php:572 +#: mod/events.php:570 msgid "Failed to remove event" msgstr "Nie udało się usunąć wydarzenia" -#: mod/events.php:574 +#: mod/events.php:572 msgid "Event removed" msgstr "Wydarzenie zostało usunięte" -#: mod/fbrowser.php:36 src/Content/Nav.php:158 src/Model/Profile.php:917 +#: mod/fbrowser.php:43 src/Content/Nav.php:157 src/Model/Profile.php:911 #: view/theme/frio/theme.php:264 msgid "Photos" msgstr "Zdjęcia" -#: mod/fbrowser.php:45 mod/fbrowser.php:69 mod/photos.php:201 -#: mod/photos.php:1031 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1610 mod/photos.php:1625 src/Model/Photo.php:552 +#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:193 +#: mod/photos.php:969 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1575 mod/photos.php:1590 src/Model/Photo.php:552 #: src/Model/Photo.php:561 msgid "Contact Photos" msgstr "Zdjęcia kontaktu" -#: mod/fbrowser.php:106 mod/fbrowser.php:136 mod/profile_photo.php:254 +#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:254 msgid "Upload" msgstr "Załaduj" -#: mod/fbrowser.php:131 +#: mod/fbrowser.php:136 msgid "Files" msgstr "Pliki" -#: mod/feedtest.php:18 -msgid "You must be logged in to use this module" -msgstr "Musisz być zalogowany, aby korzystać z tego modułu" - -#: mod/feedtest.php:45 -msgid "Source URL" -msgstr "Źródłowy adres URL" - -#: mod/filer.php:35 -msgid "- select -" -msgstr "- wybierz -" - #: mod/follow.php:46 msgid "The contact could not be added." msgstr "Nie można dodać kontaktu." -#: mod/follow.php:76 +#: mod/follow.php:85 msgid "You already added this contact." msgstr "Już dodałeś ten kontakt." -#: mod/follow.php:86 +#: mod/follow.php:97 msgid "Diaspora support isn't enabled. Contact can't be added." msgstr "Obsługa Diaspory nie jest włączona. Kontakt nie może zostać dodany." -#: mod/follow.php:93 +#: mod/follow.php:104 msgid "OStatus support is disabled. Contact can't be added." msgstr "Obsługa OStatus jest wyłączona. Kontakt nie może zostać dodany." -#: mod/follow.php:100 +#: mod/follow.php:111 msgid "The network type couldn't be detected. Contact can't be added." msgstr "Nie można wykryć typu sieci. Kontakt nie może zostać dodany." -#: mod/follow.php:170 mod/notifications.php:257 src/Model/Profile.php:807 -#: src/Module/Contact.php:649 +#: mod/follow.php:177 mod/notifications.php:179 mod/notifications.php:271 +#: mod/unfollow.php:137 src/Module/Admin/Blocklist/Contact.php:72 +#: src/Module/Admin/Blocklist/Contact.php:82 src/Module/Contact.php:642 +msgid "Profile URL" +msgstr "Adres URL profilu" + +#: mod/follow.php:181 mod/notifications.php:265 src/Model/Profile.php:801 +#: src/Module/Contact.php:652 msgid "Tags:" msgstr "Tagi:" -#: mod/follow.php:182 mod/unfollow.php:147 src/Model/Profile.php:904 -#: src/Module/Contact.php:864 +#: mod/follow.php:193 mod/unfollow.php:147 src/Model/Profile.php:898 +#: src/Module/Contact.php:867 msgid "Status Messages and Posts" msgstr "Status wiadomości i postów" -#: mod/friendica.php:88 -#, php-format -msgid "" -"This is Friendica, version %s that is running at the web location %s. The " -"database version is %s, the post update version is %s." -msgstr "To jest wersja Friendica, %s która działa w lokalizacji internetowej %s. Wersja bazy danych to %s wersja po aktualizacji %s." - -#: mod/friendica.php:94 -msgid "" -"Please visit Friendi.ca to learn more " -"about the Friendica project." -msgstr "Odwiedź stronę Friendi.ca aby dowiedzieć się więcej o projekcie Friendica." - -#: mod/friendica.php:98 -msgid "Bug reports and issues: please visit" -msgstr "Raporty o błędach i problemy: odwiedź stronę" - -#: mod/friendica.php:98 -msgid "the bugtracker at github" -msgstr "śledzenie błędów na github" - -#: mod/friendica.php:101 -msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" -msgstr "Propozycje, pochwały itd. – napisz e-mail do „info” małpa „friendi” - kropka - „ca”" - -#: mod/friendica.php:106 -msgid "Installed addons/apps:" -msgstr "Zainstalowane dodatki/aplikacje:" - -#: mod/friendica.php:120 -msgid "No installed addons/apps" -msgstr "Brak zainstalowanych dodatków/aplikacji" - -#: mod/friendica.php:125 -#, php-format -msgid "Read about the Terms of Service of this node." -msgstr "Przeczytaj o Warunkach świadczenia usług tego węzła." - -#: mod/friendica.php:130 -msgid "On this server the following remote servers are blocked." -msgstr "Na tym serwerze następujące serwery zdalne są blokowane." - #: mod/fsuggest.php:69 msgid "Friend suggestion sent." msgstr "Wysłana propozycja dodania do znajomych." @@ -3931,283 +1764,41 @@ msgstr "Zaproponuj znajomych" msgid "Suggest a friend for %s" msgstr "Zaproponuj znajomych dla %s" -#: mod/group.php:38 -msgid "Group created." -msgstr "Grupa utworzona." - -#: mod/group.php:44 -msgid "Could not create group." -msgstr "Nie można utworzyć grupy." - -#: mod/group.php:58 mod/group.php:184 -msgid "Group not found." -msgstr "Nie znaleziono grupy." - -#: mod/group.php:72 -msgid "Group name changed." -msgstr "Zmieniono nazwę grupy." - -#: mod/group.php:85 mod/profperm.php:30 src/App.php:1389 -msgid "Permission denied" -msgstr "Odmowa dostępu" - -#: mod/group.php:103 -msgid "Save Group" -msgstr "Zapisz grupę" - -#: mod/group.php:104 -msgid "Filter" -msgstr "Filtr" - -#: mod/group.php:109 -msgid "Create a group of contacts/friends." -msgstr "Stwórz grupę znajomych." - -#: mod/group.php:110 mod/group.php:133 mod/group.php:224 -#: src/Model/Group.php:423 -msgid "Group Name: " -msgstr "Nazwa grupy: " - -#: mod/group.php:125 src/Model/Group.php:420 -msgid "Contacts not in any group" -msgstr "Kontakt nie jest w żadnej grupie" - -#: mod/group.php:156 -msgid "Group removed." -msgstr "Grupa usunięta." - -#: mod/group.php:158 -msgid "Unable to remove group." -msgstr "Nie można usunąć grupy." - -#: mod/group.php:217 -msgid "Delete Group" -msgstr "Usuń grupę" - -#: mod/group.php:228 -msgid "Edit Group Name" -msgstr "Edytuj nazwę grupy" - -#: mod/group.php:239 -msgid "Members" -msgstr "Członkowie" - -#: mod/group.php:241 src/Module/Contact.php:704 -msgid "All Contacts" -msgstr "Wszystkie kontakty" - -#: mod/group.php:242 mod/network.php:654 -msgid "Group is empty" -msgstr "Grupa jest pusta" - -#: mod/group.php:255 -msgid "Remove contact from group" -msgstr "Usuń kontakt z grupy" - -#: mod/group.php:273 mod/profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Kliknij na kontakt w celu dodania lub usunięcia." - -#: mod/group.php:287 -msgid "Add contact to group" -msgstr "Dodaj kontakt do grupy" - #: mod/hcard.php:20 msgid "No profile" msgstr "Brak profilu" -#: mod/help.php:52 -msgid "Help:" -msgstr "Pomoc:" - -#: mod/help.php:59 src/Content/Nav.php:190 view/theme/vier/theme.php:294 -msgid "Help" -msgstr "Pomoc" - -#: mod/help.php:65 src/App.php:1307 -msgid "Not Found" -msgstr "Nie znaleziono" - -#: mod/home.php:40 -#, php-format -msgid "Welcome to %s" -msgstr "Witamy w %s" - -#: mod/invite.php:36 -msgid "Total invitation limit exceeded." -msgstr "Przekroczono limit zaproszeń ogółem." - -#: mod/invite.php:60 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Nieprawidłowy adres e-mail." - -#: mod/invite.php:87 -msgid "Please join us on Friendica" -msgstr "Dołącz do nas na Friendica" - -#: mod/invite.php:96 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Przekroczono limit zaproszeń. Skontaktuj się z administratorem witryny." - -#: mod/invite.php:100 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Nie udało się dostarczyć wiadomości." - -#: mod/invite.php:104 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d wiadomość wysłana." -msgstr[1] "%d wiadomości wysłane." -msgstr[2] "%d wysłano ." -msgstr[3] "%d wiadomość wysłano." - -#: mod/invite.php:122 -msgid "You have no more invitations available" -msgstr "Nie masz już dostępnych zaproszeń" - -#: mod/invite.php:130 -#, php-format -msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Odwiedź %s listę publicznych witryn, do których możesz dołączyć. Członkowie Friendica na innych stronach mogą łączyć się ze sobą, jak również z członkami wielu innych sieci społecznościowych." - -#: mod/invite.php:132 -#, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "Aby zaakceptować to zaproszenie, odwiedź i zarejestruj się %s lub w dowolnej innej publicznej witrynie internetowej Friendica." - -#: mod/invite.php:133 -#, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi. Zobacz %s listę alternatywnych witryn Friendica, do których możesz dołączyć." - -#: mod/invite.php:137 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Przepraszamy. System nie jest obecnie skonfigurowany do łączenia się z innymi publicznymi witrynami lub zapraszania członków." - -#: mod/invite.php:141 -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks." -msgstr "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi." - -#: mod/invite.php:140 -#, php-format -msgid "To accept this invitation, please visit and register at %s." -msgstr "Aby zaakceptować to zaproszenie, odwiedź stronę i zarejestruj się na stronie %s." - -#: mod/invite.php:147 -msgid "Send invitations" -msgstr "Wyślij zaproszenie" - -#: mod/invite.php:148 -msgid "Enter email addresses, one per line:" -msgstr "Wprowadź adresy e-mail, po jednym w wierszu:" - -#: mod/invite.php:149 mod/message.php:255 mod/message.php:435 -#: mod/wallmessage.php:137 -msgid "Your message:" -msgstr "Twoja wiadomość:" - -#: mod/invite.php:149 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "Serdecznie zapraszam do przyłączenia się do mnie i innych bliskich znajomych na stronie Friendica - i pomóż nam stworzyć lepszą sieć społecznościową." - -#: mod/invite.php:151 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Musisz podać ten kod zaproszenia: $invite_code" - -#: mod/invite.php:151 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Po rejestracji połącz się ze mną na stronie mojego profilu pod adresem:" - -#: mod/invite.php:153 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendi.ca" -msgstr "Aby uzyskać więcej informacji na temat projektu Friendica i dlaczego uważamy, że jest to ważne, odwiedź http://friendi.ca" - -#: mod/item.php:120 +#: mod/item.php:122 msgid "Unable to locate original post." msgstr "Nie można zlokalizować oryginalnej wiadomości." -#: mod/item.php:320 +#: mod/item.php:322 msgid "Empty post discarded." msgstr "Pusty wpis został odrzucony." -#: mod/item.php:841 +#: mod/item.php:839 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "Wiadomość została wysłana do ciebie od %s, członka sieci społecznościowej Friendica." -#: mod/item.php:843 +#: mod/item.php:841 #, php-format msgid "You may visit them online at %s" msgstr "Możesz odwiedzić ich online pod adresem %s" -#: mod/item.php:844 +#: mod/item.php:842 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Skontaktuj się z nadawcą odpowiadając na ten post jeśli nie chcesz otrzymywać tych wiadomości." -#: mod/item.php:848 +#: mod/item.php:846 #, php-format msgid "%s posted an update." msgstr "%s zaktualizował wpis." -#: mod/localtime.php:19 src/Model/Event.php:34 src/Model/Event.php:847 -msgid "l F d, Y \\@ g:i A" -msgstr "l F d, Y \\@ g:i A" - -#: mod/localtime.php:33 -msgid "Time Conversion" -msgstr "Zmiana czasu" - -#: mod/localtime.php:35 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica udostępnia tę usługę do udostępniania wydarzeń innym sieciom i znajomym w nieznanych strefach czasowych." - -#: mod/localtime.php:39 -#, php-format -msgid "UTC time: %s" -msgstr "Czas UTC %s" - -#: mod/localtime.php:42 -#, php-format -msgid "Current timezone: %s" -msgstr "Obecna strefa czasowa: %s" - -#: mod/localtime.php:46 -#, php-format -msgid "Converted localtime: %s" -msgstr "Zmień strefę czasową: %s" - -#: mod/localtime.php:52 -msgid "Please select your timezone:" -msgstr "Wybierz swoją strefę czasową:" - #: mod/lockview.php:46 mod/lockview.php:57 msgid "Remote privacy information not available." msgstr "Nie są dostępne zdalne informacje o prywatności." @@ -4282,7 +1873,7 @@ msgid "" "your email for further instructions." msgstr "Wpisz swój adres email i wyślij, aby zresetować hasło. Później sprawdź swojego emaila w celu uzyskania dalszych instrukcji." -#: mod/lostpass.php:119 src/Module/Login.php:324 +#: mod/lostpass.php:119 src/Module/Login.php:327 msgid "Nickname or Email: " msgstr "Pseudonim lub e-mail: " @@ -4290,7 +1881,7 @@ msgstr "Pseudonim lub e-mail: " msgid "Reset" msgstr "Zresetuj" -#: mod/lostpass.php:135 src/Module/Login.php:336 +#: mod/lostpass.php:135 src/Module/Login.php:339 msgid "Password Reset" msgstr "Zresetuj hasło" @@ -4316,7 +1907,7 @@ msgid "" "successful login." msgstr "Twoje hasło może być zmienione w Ustawieniach po udanym zalogowaniu." -#: mod/lostpass.php:148 +#: mod/lostpass.php:147 #, php-format msgid "" "\n" @@ -4327,7 +1918,7 @@ msgid "" "\t\t" msgstr "\n\t\t\tSzanowny Użytkowniku %1$s, \n\t\t\t\tTwoje hasło zostało zmienione zgodnie z życzeniem. Proszę, zachowaj te \n\t\t\tinformacje dotyczące twoich rekordów (lub natychmiast zmień hasło na \n\t\t\tcoś, co zapamiętasz).\n\t\t" -#: mod/lostpass.php:154 +#: mod/lostpass.php:153 #, php-format msgid "" "\n" @@ -4341,26 +1932,22 @@ msgid "" "\t\t" msgstr "\n\t\t\tDane logowania są następujące:\n\n\t\t\tLokalizacja witryny:\t%1$s\n\t\t\tNazwa użytkownika:\t%2$s\n\t\t\tHasło:\t%3$s\n\n\t\t\tMożesz zmienić hasło na stronie ustawień konta po zalogowaniu.\n\t\t" -#: mod/lostpass.php:170 +#: mod/lostpass.php:169 #, php-format msgid "Your password has been changed at %s" msgstr "Twoje hasło zostało zmienione na %s" -#: mod/maintenance.php:26 -msgid "System down for maintenance" -msgstr "System wyłączony w celu konserwacji" - -#: mod/manage.php:178 +#: mod/manage.php:179 msgid "Manage Identities and/or Pages" msgstr "Zarządzaj tożsamościami i/lub stronami" -#: mod/manage.php:179 +#: mod/manage.php:180 msgid "" "Toggle between different identities or community/group pages which share " "your account details or which you have been granted \"manage\" permissions" msgstr "Przełącz między różnymi tożsamościami lub stronami społeczność/grupy, które udostępniają dane Twojego konta lub które otrzymałeś uprawnienia \"zarządzaj\"" -#: mod/manage.php:180 +#: mod/manage.php:181 msgid "Select an identity to manage: " msgstr "Wybierz tożsamość do zarządzania: " @@ -4380,7 +1967,7 @@ msgstr "następny" msgid "Profile Match" msgstr "Dopasowanie profilu" -#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:255 +#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:254 msgid "New Message" msgstr "Nowa wiadomość" @@ -4405,11 +1992,11 @@ msgid "Message sent." msgstr "Wysłano." #: mod/message.php:110 mod/notifications.php:47 mod/notifications.php:187 -#: mod/notifications.php:235 +#: mod/notifications.php:243 msgid "Discard" msgstr "Odrzuć" -#: mod/message.php:123 src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: mod/message.php:123 src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Messages" msgstr "Wiadomości" @@ -4445,6 +2032,11 @@ msgstr "Do:" msgid "Subject:" msgstr "Temat:" +#: mod/message.php:255 mod/message.php:435 mod/wallmessage.php:137 +#: src/Module/Invite.php:150 +msgid "Your message:" +msgstr "Twoja wiadomość:" + #: mod/message.php:289 msgid "No messages." msgstr "Brak wiadomości." @@ -4499,19 +2091,19 @@ msgstr[1] "%d wiadomości" msgstr[2] "%d wiadomości" msgstr[3] "%d wiadomości" -#: mod/network.php:183 mod/search.php:38 +#: mod/network.php:184 mod/search.php:38 msgid "Remove term" msgstr "Usuń wpis" -#: mod/network.php:190 mod/search.php:47 +#: mod/network.php:191 mod/search.php:47 msgid "Saved Searches" msgstr "Zapisywanie wyszukiwania" -#: mod/network.php:191 src/Model/Group.php:414 +#: mod/network.php:192 src/Model/Group.php:434 msgid "add" msgstr "dodaj" -#: mod/network.php:563 +#: mod/network.php:572 #, php-format msgid "" "Warning: This group contains %s member from a network that doesn't allow non" @@ -4524,73 +2116,78 @@ msgstr[1] "Ostrzeżenie: Ta grupa zawiera %s członków z sieci, która nie dopu msgstr[2] "Ostrzeżenie: Ta grupa zawiera %s członków z sieci, która nie dopuszcza wiadomości niepublicznych." msgstr[3] "Ostrzeżenie: Ta grupa zawiera %s członków z sieci, która nie dopuszcza wiadomości niepublicznych." -#: mod/network.php:566 +#: mod/network.php:575 msgid "Messages in this group won't be send to these receivers." msgstr "Wiadomości z tej grupy nie będą wysyłane do tych odbiorców." -#: mod/network.php:633 +#: mod/network.php:642 msgid "No such group" msgstr "Nie ma takiej grupy" -#: mod/network.php:658 +#: mod/network.php:663 src/Module/Group.php:288 +msgid "Group is empty" +msgstr "Grupa jest pusta" + +#: mod/network.php:667 #, php-format msgid "Group: %s" msgstr "Grupa: %s" -#: mod/network.php:684 +#: mod/network.php:693 msgid "Private messages to this person are at risk of public disclosure." msgstr "Prywatne wiadomości do tej osoby mogą być widoczne publicznie." -#: mod/network.php:687 +#: mod/network.php:696 src/Module/AllFriends.php:35 +#: src/Module/AllFriends.php:43 msgid "Invalid contact." msgstr "Nieprawidłowy kontakt." -#: mod/network.php:966 +#: mod/network.php:975 msgid "Commented Order" msgstr "Porządek według komentarzy" -#: mod/network.php:969 +#: mod/network.php:978 msgid "Sort by Comment Date" msgstr "Sortuj według daty komentarza" -#: mod/network.php:974 +#: mod/network.php:983 msgid "Posted Order" msgstr "Porządek według wpisów" -#: mod/network.php:977 +#: mod/network.php:986 msgid "Sort by Post Date" msgstr "Sortuj według daty postów" -#: mod/network.php:984 mod/profiles.php:579 -#: src/Core/NotificationsManager.php:189 +#: mod/network.php:993 mod/profiles.php:579 +#: src/Core/NotificationsManager.php:158 msgid "Personal" msgstr "Osobiste" -#: mod/network.php:987 +#: mod/network.php:996 msgid "Posts that mention or involve you" msgstr "Posty, które wspominają lub angażują Ciebie" -#: mod/network.php:994 +#: mod/network.php:1003 msgid "New" msgstr "Nowy" -#: mod/network.php:997 +#: mod/network.php:1006 msgid "Activity Stream - by date" msgstr "Strumień aktywności - według daty" -#: mod/network.php:1005 +#: mod/network.php:1014 msgid "Shared Links" msgstr "Udostępnione łącza" -#: mod/network.php:1008 +#: mod/network.php:1017 msgid "Interesting Links" msgstr "Interesujące linki" -#: mod/network.php:1015 +#: mod/network.php:1024 msgid "Starred" msgstr "Ulubione" -#: mod/network.php:1018 +#: mod/network.php:1027 msgid "Favourite Posts" msgstr "Ulubione posty" @@ -4625,6 +2222,13 @@ msgid "" " join." msgstr "Na stronie Szybki start - znajdź krótkie wprowadzenie do swojego profilu i kart sieciowych, stwórz nowe połączenia i znajdź kilka grup do przyłączenia się." +#: mod/newmember.php:20 mod/settings.php:145 src/Content/Nav.php:262 +#: src/Module/Admin/Addons/Details.php:102 +#: src/Module/Admin/Themes/Details.php:107 +#: src/Module/BaseSettingsModule.php:105 view/theme/frio/theme.php:272 +msgid "Settings" +msgstr "Ustawienia" + #: mod/newmember.php:22 msgid "Go to Your Settings" msgstr "Idź do swoich ustawień" @@ -4644,9 +2248,9 @@ msgid "" "potential friends know exactly how to find you." msgstr "Przejrzyj pozostałe ustawienia, w szczególności ustawienia prywatności. Niepublikowany wykaz katalogów jest podobny do niepublicznego numeru telefonu. Ogólnie rzecz biorąc, powinieneś opublikować swój wpis - chyba, że wszyscy twoi znajomi i potencjalni znajomi dokładnie wiedzą, jak Cię znaleźć." -#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:157 -#: src/Model/Profile.php:876 src/Model/Profile.php:909 -#: src/Module/Contact.php:654 src/Module/Contact.php:869 +#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:156 +#: src/Model/Profile.php:870 src/Model/Profile.php:903 +#: src/Module/Contact.php:657 src/Module/Contact.php:872 #: view/theme/frio/theme.php:263 msgid "Profile" msgstr "Profil użytkownika" @@ -4734,7 +2338,7 @@ msgid "" "hours." msgstr "Na bocznym panelu strony Kontaktów znajduje się kilka narzędzi do znajdowania nowych przyjaciół. Możemy dopasować osoby według zainteresowań, wyszukiwać osoby według nazwisk i zainteresowań oraz dostarczać sugestie oparte na relacjach sieciowych. Na zupełnie nowej stronie sugestie znajomych zwykle zaczynają być wypełniane w ciągu 24 godzin" -#: mod/newmember.php:44 src/Model/Group.php:415 src/Module/Contact.php:752 +#: mod/newmember.php:44 src/Model/Group.php:435 src/Module/Contact.php:756 msgid "Groups" msgstr "Grupy" @@ -4774,7 +2378,7 @@ msgid "" " features and resources." msgstr "Na naszych stronach pomocy można znaleźć szczegółowe informacje na temat innych funkcji programu i zasobów." -#: mod/notes.php:34 src/Model/Profile.php:959 +#: mod/notes.php:34 src/Model/Profile.php:953 msgid "Personal Notes" msgstr "Notatki" @@ -4782,13 +2386,7 @@ msgstr "Notatki" msgid "Invalid request identifier." msgstr "Nieprawidłowe żądanie identyfikatora." -#: mod/notifications.php:60 mod/notifications.php:186 -#: mod/notifications.php:271 src/Module/Contact.php:622 -#: src/Module/Contact.php:825 src/Module/Contact.php:1085 -msgid "Ignore" -msgstr "Ignoruj" - -#: mod/notifications.php:93 src/Content/Nav.php:247 +#: mod/notifications.php:93 src/Content/Nav.php:246 msgid "Notifications" msgstr "Powiadomienia" @@ -4796,7 +2394,7 @@ msgstr "Powiadomienia" msgid "Network Notifications" msgstr "Powiadomienia sieciowe" -#: mod/notifications.php:112 mod/notify.php:84 +#: mod/notifications.php:112 mod/notify.php:72 msgid "System Notifications" msgstr "Powiadomienia systemowe" @@ -4824,7 +2422,7 @@ msgstr "Pokaż ignorowane żądania" msgid "Hide Ignored Requests" msgstr "Ukryj zignorowane prośby" -#: mod/notifications.php:166 mod/notifications.php:243 +#: mod/notifications.php:166 mod/notifications.php:251 msgid "Notification type:" msgstr "Typ powiadomienia:" @@ -4832,11 +2430,16 @@ msgstr "Typ powiadomienia:" msgid "Suggested by:" msgstr "Sugerowany przez:" -#: mod/notifications.php:181 mod/notifications.php:260 -#: src/Module/Contact.php:630 +#: mod/notifications.php:181 mod/notifications.php:268 +#: src/Module/Contact.php:633 msgid "Hide this contact from others" msgstr "Ukryj ten kontakt przed innymi" +#: mod/notifications.php:183 mod/notifications.php:277 +#: src/Module/Admin/Users.php:286 +msgid "Approve" +msgstr "Zatwierdź" + #: mod/notifications.php:203 msgid "Claims to be known to you: " msgstr "Twierdzi, że go/ją znasz: " @@ -4886,21 +2489,32 @@ msgstr "Udostępniający/a" msgid "Subscriber" msgstr "Subskrybent" -#: mod/notifications.php:266 src/Model/Profile.php:543 -#: src/Module/Contact.php:88 +#: mod/notifications.php:263 src/Model/Profile.php:445 +#: src/Model/Profile.php:813 src/Module/Contact.php:650 +#: src/Module/Directory.php:150 +msgid "About:" +msgstr "O:" + +#: mod/notifications.php:267 src/Model/Profile.php:442 +#: src/Model/Profile.php:752 src/Module/Directory.php:147 +msgid "Gender:" +msgstr "Płeć:" + +#: mod/notifications.php:274 src/Model/Profile.php:539 +#: src/Module/Contact.php:90 msgid "Network:" msgstr "Sieć:" -#: mod/notifications.php:279 +#: mod/notifications.php:288 msgid "No introductions." msgstr "Brak dostępu." -#: mod/notifications.php:313 +#: mod/notifications.php:322 #, php-format msgid "No more %s notifications." msgstr "Brak kolejnych %s powiadomień." -#: mod/notify.php:80 +#: mod/notify.php:68 msgid "No more system notifications." msgstr "Nie ma więcej powiadomień systemowych." @@ -4917,7 +2531,7 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Konto nie zostało znalezione, a rejestracja OpenID nie jest dozwolona na tej stronie." -#: mod/openid.php:117 src/Module/Login.php:92 src/Module/Login.php:143 +#: mod/openid.php:117 src/Module/Login.php:93 src/Module/Login.php:144 msgid "Login failed." msgstr "Logowanie nieudane." @@ -4957,223 +2571,239 @@ msgstr "ignorowany(-a)" msgid "Keep this window open until done." msgstr "Pozostaw to okno otwarte, dopóki nie będzie gotowe." -#: mod/photos.php:115 src/Model/Profile.php:920 +#: mod/photos.php:113 src/Model/Profile.php:914 msgid "Photo Albums" msgstr "Albumy zdjęć" -#: mod/photos.php:116 mod/photos.php:1665 +#: mod/photos.php:114 mod/photos.php:1630 msgid "Recent Photos" msgstr "Ostatnio dodane zdjęcia" -#: mod/photos.php:119 mod/photos.php:1187 mod/photos.php:1667 +#: mod/photos.php:116 mod/photos.php:1144 mod/photos.php:1632 msgid "Upload New Photos" msgstr "Wyślij nowe zdjęcie" -#: mod/photos.php:137 mod/settings.php:56 +#: mod/photos.php:134 mod/settings.php:58 src/Module/BaseSettingsModule.php:18 msgid "everybody" msgstr "wszyscy" -#: mod/photos.php:193 +#: mod/photos.php:185 msgid "Contact information unavailable" msgstr "Informacje o kontakcie są niedostępne" -#: mod/photos.php:212 +#: mod/photos.php:204 msgid "Album not found." msgstr "Nie znaleziono albumu." -#: mod/photos.php:241 mod/photos.php:254 mod/photos.php:1138 -msgid "Delete Album" -msgstr "Usuń album" +#: mod/photos.php:262 +msgid "Album successfully deleted" +msgstr "Album został pomyślnie usunięty" -#: mod/photos.php:252 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Czy na pewno chcesz usunąć ten album i wszystkie zdjęcia z tego albumu?" +#: mod/photos.php:264 +msgid "Album was empty." +msgstr "Album był pusty." -#: mod/photos.php:310 mod/photos.php:322 mod/photos.php:1413 -msgid "Delete Photo" -msgstr "Usuń zdjęcie" - -#: mod/photos.php:320 -msgid "Do you really want to delete this photo?" -msgstr "Czy na pewno chcesz usunąć to zdjęcie ?" - -#: mod/photos.php:645 +#: mod/photos.php:586 msgid "a photo" msgstr "zdjęcie" -#: mod/photos.php:645 +#: mod/photos.php:586 #, php-format msgid "%1$s was tagged in %2$s by %3$s" msgstr "%1$szostał oznaczony tagiem %2$s przez %3$s" -#: mod/photos.php:738 mod/photos.php:741 mod/photos.php:770 +#: mod/photos.php:679 mod/photos.php:682 mod/photos.php:711 #: mod/profile_photo.php:152 mod/wall_upload.php:198 #, php-format msgid "Image exceeds size limit of %s" msgstr "Obraz przekracza limit rozmiaru wynoszący %s" -#: mod/photos.php:744 +#: mod/photos.php:685 msgid "Image upload didn't complete, please try again" msgstr "Przesyłanie zdjęć nie zostało zakończone, spróbuj ponownie" -#: mod/photos.php:747 +#: mod/photos.php:688 msgid "Image file is missing" msgstr "Brak pliku obrazu" -#: mod/photos.php:752 +#: mod/photos.php:693 msgid "" "Server can't accept new file upload at this time, please contact your " "administrator" msgstr "Serwer nie może teraz przyjąć nowego pliku, skontaktuj się z administratorem" -#: mod/photos.php:778 +#: mod/photos.php:719 msgid "Image file is empty." msgstr "Plik obrazka jest pusty." -#: mod/photos.php:793 mod/profile_photo.php:161 mod/wall_upload.php:212 +#: mod/photos.php:734 mod/profile_photo.php:161 mod/wall_upload.php:212 msgid "Unable to process image." msgstr "Przetwarzanie obrazu nie powiodło się." -#: mod/photos.php:822 mod/profile_photo.php:310 mod/wall_upload.php:251 +#: mod/photos.php:763 mod/profile_photo.php:310 mod/wall_upload.php:251 msgid "Image upload failed." msgstr "Przesyłanie obrazu nie powiodło się." -#: mod/photos.php:908 +#: mod/photos.php:851 msgid "No photos selected" msgstr "Nie zaznaczono zdjęć" -#: mod/photos.php:1005 mod/videos.php:239 +#: mod/photos.php:943 mod/videos.php:210 msgid "Access to this item is restricted." msgstr "Dostęp do tego obiektu jest ograniczony." -#: mod/photos.php:1059 +#: mod/photos.php:997 msgid "Upload Photos" msgstr "Prześlij zdjęcia" -#: mod/photos.php:1063 mod/photos.php:1133 +#: mod/photos.php:1001 mod/photos.php:1089 msgid "New album name: " msgstr "Nazwa nowego albumu: " -#: mod/photos.php:1064 +#: mod/photos.php:1002 msgid "or select existing album:" msgstr "lub wybierz istniejący album:" -#: mod/photos.php:1065 +#: mod/photos.php:1003 msgid "Do not show a status post for this upload" msgstr "Nie pokazuj statusu postów dla tego wysłania" -#: mod/photos.php:1081 mod/photos.php:1416 mod/settings.php:1209 +#: mod/photos.php:1019 mod/photos.php:1382 mod/settings.php:1208 msgid "Show to Groups" msgstr "Pokaż Grupy" -#: mod/photos.php:1082 mod/photos.php:1417 mod/settings.php:1210 +#: mod/photos.php:1020 mod/photos.php:1383 mod/settings.php:1209 msgid "Show to Contacts" msgstr "Pokaż kontakty" -#: mod/photos.php:1144 +#: mod/photos.php:1071 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Czy na pewno chcesz usunąć ten album i wszystkie zdjęcia z tego albumu?" + +#: mod/photos.php:1073 mod/photos.php:1094 +msgid "Delete Album" +msgstr "Usuń album" + +#: mod/photos.php:1100 msgid "Edit Album" msgstr "Edytuj album" -#: mod/photos.php:1149 +#: mod/photos.php:1101 +msgid "Drop Album" +msgstr "Upuść Album" + +#: mod/photos.php:1106 msgid "Show Newest First" msgstr "Pokaż najpierw najnowsze" -#: mod/photos.php:1151 +#: mod/photos.php:1108 msgid "Show Oldest First" msgstr "Pokaż najpierw najstarsze" -#: mod/photos.php:1172 mod/photos.php:1650 +#: mod/photos.php:1129 mod/photos.php:1615 msgid "View Photo" msgstr "Zobacz zdjęcie" -#: mod/photos.php:1213 +#: mod/photos.php:1166 msgid "Permission denied. Access to this item may be restricted." msgstr "Odmowa dostępu. Dostęp do tych danych może być ograniczony." -#: mod/photos.php:1215 +#: mod/photos.php:1168 msgid "Photo not available" msgstr "Zdjęcie niedostępne" -#: mod/photos.php:1290 +#: mod/photos.php:1178 +msgid "Do you really want to delete this photo?" +msgstr "Czy na pewno chcesz usunąć to zdjęcie ?" + +#: mod/photos.php:1180 mod/photos.php:1379 +msgid "Delete Photo" +msgstr "Usuń zdjęcie" + +#: mod/photos.php:1271 msgid "View photo" msgstr "Zobacz zdjęcie" -#: mod/photos.php:1290 +#: mod/photos.php:1273 msgid "Edit photo" msgstr "Edytuj zdjęcie" -#: mod/photos.php:1291 +#: mod/photos.php:1274 +msgid "Delete photo" +msgstr "Usuń zdjęcie" + +#: mod/photos.php:1275 msgid "Use as profile photo" msgstr "Ustaw jako zdjęcie profilowe" -#: mod/photos.php:1297 src/Object/Post.php:157 -msgid "Private Message" -msgstr "Wiadomość prywatna" +#: mod/photos.php:1282 +msgid "Private Photo" +msgstr "Prywatne zdjęcie" -#: mod/photos.php:1317 +#: mod/photos.php:1288 msgid "View Full Size" msgstr "Zobacz w pełnym rozmiarze" -#: mod/photos.php:1381 +#: mod/photos.php:1347 msgid "Tags: " msgstr "Tagi: " -#: mod/photos.php:1384 +#: mod/photos.php:1350 msgid "[Select tags to remove]" msgstr "[Wybierz tagi do usunięcia]" -#: mod/photos.php:1399 +#: mod/photos.php:1365 msgid "New album name" msgstr "Nazwa nowego albumu" -#: mod/photos.php:1400 +#: mod/photos.php:1366 msgid "Caption" msgstr "Zawartość" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "Add a Tag" msgstr "Dodaj tag" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Przykładowo: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -#: mod/photos.php:1402 +#: mod/photos.php:1368 msgid "Do not rotate" msgstr "Nie obracaj" -#: mod/photos.php:1403 +#: mod/photos.php:1369 msgid "Rotate CW (right)" msgstr "Obróć CW (w prawo)" -#: mod/photos.php:1404 +#: mod/photos.php:1370 msgid "Rotate CCW (left)" msgstr "Obróć CCW (w lewo)" -#: mod/photos.php:1438 src/Object/Post.php:312 +#: mod/photos.php:1404 src/Object/Post.php:312 msgid "I like this (toggle)" msgstr "Lubię to (zmień)" -#: mod/photos.php:1439 src/Object/Post.php:313 +#: mod/photos.php:1405 src/Object/Post.php:313 msgid "I don't like this (toggle)" msgstr "Nie lubię tego (zmień)" -#: mod/photos.php:1454 mod/photos.php:1493 mod/photos.php:1553 -#: src/Module/Contact.php:1018 src/Object/Post.php:874 +#: mod/photos.php:1420 mod/photos.php:1459 mod/photos.php:1519 +#: src/Module/Contact.php:1021 src/Object/Post.php:874 msgid "This is you" msgstr "To jesteś ty" -#: mod/photos.php:1456 mod/photos.php:1495 mod/photos.php:1555 -#: src/Object/Post.php:418 src/Object/Post.php:876 +#: mod/photos.php:1422 mod/photos.php:1461 mod/photos.php:1521 +#: src/Object/Post.php:419 src/Object/Post.php:876 msgid "Comment" msgstr "Komentarz" -#: mod/photos.php:1585 +#: mod/photos.php:1550 msgid "Map" msgstr "Mapa" -#: mod/photos.php:1656 mod/videos.php:316 +#: mod/photos.php:1621 mod/videos.php:287 msgid "View Album" msgstr "Zobacz album" @@ -5185,27 +2815,27 @@ msgstr "{0} chce być Twoim znajomym" msgid "{0} requested registration" msgstr "{0} wymagana rejestracja" -#: mod/poke.php:181 +#: mod/poke.php:177 msgid "Poke/Prod" msgstr "Zaczepić" -#: mod/poke.php:182 +#: mod/poke.php:178 msgid "poke, prod or do other things to somebody" msgstr "szturchać, zaczepić lub robić inne rzeczy" -#: mod/poke.php:183 +#: mod/poke.php:179 msgid "Recipient" msgstr "Odbiorca" -#: mod/poke.php:184 +#: mod/poke.php:180 msgid "Choose what you wish to do to recipient" msgstr "Wybierz, co chcesz zrobić" -#: mod/poke.php:187 +#: mod/poke.php:183 msgid "Make this post private" msgstr "Ustaw ten post jako prywatny" -#: mod/probe.php:14 mod/webfinger.php:17 +#: mod/probe.php:13 src/Module/WebFinger.php:18 msgid "Only logged in users are permitted to perform a probing." msgstr "Tylko zalogowani użytkownicy mogą wykonywać sondowanie." @@ -5269,6 +2899,10 @@ msgstr "Strona Główna" msgid "Interests" msgstr "Zainteresowania" +#: mod/profiles.php:382 src/Module/Admin/Blocklist/Contact.php:72 +msgid "Address" +msgstr "Adres" + #: mod/profiles.php:389 mod/profiles.php:574 msgid "Location" msgstr "Lokalizacja" @@ -5309,7 +2943,7 @@ msgstr "Wyświetl ten profil" msgid "View all profiles" msgstr "Wyświetl wszystkie profile" -#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:419 +#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:415 msgid "Edit visibility" msgstr "Edytuj widoczność" @@ -5361,7 +2995,7 @@ msgstr "Płeć:" msgid " Marital Status:" msgstr " Stan cywilny:" -#: mod/profiles.php:586 src/Model/Profile.php:795 +#: mod/profiles.php:586 src/Model/Profile.php:789 msgid "Sexual Preference:" msgstr "Preferencje seksualne:" @@ -5441,11 +3075,11 @@ msgstr "Adres XMPP będzie propagowany do Twoich kontaktów, aby mogli Cię śle msgid "Homepage URL:" msgstr "Adres URL strony domowej:" -#: mod/profiles.php:613 src/Model/Profile.php:803 +#: mod/profiles.php:613 src/Model/Profile.php:797 msgid "Hometown:" msgstr "Miasto rodzinne:" -#: mod/profiles.php:614 src/Model/Profile.php:811 +#: mod/profiles.php:614 src/Model/Profile.php:805 msgid "Political Views:" msgstr "Poglądy polityczne:" @@ -5469,11 +3103,11 @@ msgstr "Prywatne słowa kluczowe:" msgid "(Used for searching profiles, never shown to others)" msgstr "(Używany do wyszukiwania profili, niepokazywany innym)" -#: mod/profiles.php:618 src/Model/Profile.php:827 +#: mod/profiles.php:618 src/Model/Profile.php:821 msgid "Likes:" msgstr "Lubię to:" -#: mod/profiles.php:619 src/Model/Profile.php:831 +#: mod/profiles.php:619 src/Model/Profile.php:825 msgid "Dislikes:" msgstr "Nie lubię tego:" @@ -5513,11 +3147,11 @@ msgstr "Szkoła/edukacja" msgid "Contact information and Social Networks" msgstr "Dane kontaktowe i Sieci społecznościowe" -#: mod/profiles.php:659 src/Model/Profile.php:415 +#: mod/profiles.php:659 src/Model/Profile.php:411 msgid "Profile Image" msgstr "Zdjęcie profilowe" -#: mod/profiles.php:661 src/Model/Profile.php:418 +#: mod/profiles.php:661 src/Model/Profile.php:414 msgid "visible to everybody" msgstr "widoczne dla wszystkich" @@ -5525,11 +3159,11 @@ msgstr "widoczne dla wszystkich" msgid "Edit/Manage Profiles" msgstr "Edycja/Zarządzanie profilami" -#: mod/profiles.php:669 src/Model/Profile.php:405 src/Model/Profile.php:427 +#: mod/profiles.php:669 src/Model/Profile.php:401 src/Model/Profile.php:423 msgid "Change profile photo" msgstr "Zmień zdjęcie profilowe" -#: mod/profiles.php:670 src/Model/Profile.php:406 +#: mod/profiles.php:670 src/Model/Profile.php:402 msgid "Create New Profile" msgstr "Utwórz nowy profil" @@ -5589,6 +3223,10 @@ msgstr "Zakończono edycję" msgid "Image uploaded successfully." msgstr "Pomyślnie wysłano zdjęcie." +#: mod/profperm.php:30 +msgid "Permission denied" +msgstr "Odmowa dostępu" + #: mod/profperm.php:36 mod/profperm.php:69 msgid "Invalid profile identifier." msgstr "Nieprawidłowa nazwa użytkownika." @@ -5597,6 +3235,10 @@ msgstr "Nieprawidłowa nazwa użytkownika." msgid "Profile Visibility Editor" msgstr "Ustawienia widoczności profilu" +#: mod/profperm.php:119 src/Module/Group.php:321 +msgid "Click on a contact to add or remove." +msgstr "Kliknij na kontakt w celu dodania lub usunięcia." + #: mod/profperm.php:128 msgid "Visible To" msgstr "Widoczne dla" @@ -5655,226 +3297,253 @@ msgstr "Ponowne subskrybowanie kontaktów OStatus" msgid "Error" msgstr "Błąd" -#: mod/search.php:103 +#: mod/search.php:101 msgid "Only logged in users are permitted to perform a search." msgstr "Tylko zalogowani użytkownicy mogą wyszukiwać." -#: mod/search.php:127 -msgid "Too Many Requests" -msgstr "Zbyt dużo próśb" - -#: mod/search.php:128 +#: mod/search.php:123 msgid "Only one search per minute is permitted for not logged in users." msgstr "Dla niezalogowanych użytkowników dozwolone jest tylko jedno wyszukiwanie na minutę." -#: mod/search.php:149 src/Content/Nav.php:198 src/Content/Text/HTML.php:900 +#: mod/search.php:143 src/Content/Nav.php:197 src/Content/Text/HTML.php:900 msgid "Search" msgstr "Szukaj" -#: mod/search.php:235 +#: mod/search.php:229 #, php-format msgid "Items tagged with: %s" msgstr "Przedmioty oznaczone tagiem: %s" -#: mod/search.php:237 src/Module/Contact.php:816 +#: mod/search.php:231 src/Module/Contact.php:819 #, php-format msgid "Results for: %s" msgstr "Wyniki dla: %s" -#: mod/settings.php:61 +#: mod/settings.php:63 src/Module/BaseSettingsModule.php:24 msgid "Account" msgstr "Konto" -#: mod/settings.php:69 src/Content/Nav.php:266 src/Model/Profile.php:398 +#: mod/settings.php:71 src/Module/BaseSettingsModule.php:31 +#: src/Module/Settings/TwoFactor/Index.php:83 +#: src/Module/TwoFactor/Verify.php:60 +msgid "Two-factor authentication" +msgstr "Uwierzytelnianie dwuskładnikowe" + +#: mod/settings.php:78 src/Content/Nav.php:265 src/Model/Profile.php:394 +#: src/Module/BaseSettingsModule.php:38 msgid "Profiles" msgstr "Profile" -#: mod/settings.php:85 +#: mod/settings.php:86 src/Module/BaseAdminModule.php:84 +#: src/Module/BaseSettingsModule.php:46 +msgid "Additional features" +msgstr "Dodatkowe funkcje" + +#: mod/settings.php:94 src/Module/BaseSettingsModule.php:54 msgid "Display" msgstr "Wygląd" -#: mod/settings.php:92 mod/settings.php:830 +#: mod/settings.php:101 mod/settings.php:839 +#: src/Module/BaseSettingsModule.php:61 msgid "Social Networks" msgstr "Portale społecznościowe" -#: mod/settings.php:106 src/Content/Nav.php:261 +#: mod/settings.php:108 src/Module/Admin/Addons/Details.php:100 +#: src/Module/Admin/Addons/Index.php:51 src/Module/BaseAdminModule.php:82 +#: src/Module/BaseSettingsModule.php:68 +msgid "Addons" +msgstr "Dodatki" + +#: mod/settings.php:115 src/Content/Nav.php:260 +#: src/Module/BaseSettingsModule.php:75 msgid "Delegations" msgstr "Delegowanie" -#: mod/settings.php:113 +#: mod/settings.php:122 src/Module/BaseSettingsModule.php:82 msgid "Connected apps" msgstr "Powiązane aplikacje" -#: mod/settings.php:120 mod/uexport.php:53 +#: mod/settings.php:129 mod/uexport.php:52 +#: src/Module/BaseSettingsModule.php:89 msgid "Export personal data" msgstr "Eksportuj dane osobiste" -#: mod/settings.php:127 +#: mod/settings.php:136 src/Module/BaseSettingsModule.php:96 msgid "Remove account" msgstr "Usuń konto" -#: mod/settings.php:179 +#: mod/settings.php:188 msgid "Missing some important data!" msgstr "Brakuje ważnych danych!" -#: mod/settings.php:181 mod/settings.php:691 src/Module/Contact.php:823 +#: mod/settings.php:190 mod/settings.php:700 src/Module/Contact.php:826 msgid "Update" msgstr "Zaktualizuj" -#: mod/settings.php:290 +#: mod/settings.php:299 msgid "Failed to connect with email account using the settings provided." msgstr "Połączenie z kontem email używając wybranych ustawień nie powiodło się." -#: mod/settings.php:295 +#: mod/settings.php:304 msgid "Email settings updated." msgstr "Zaktualizowano ustawienia email." -#: mod/settings.php:311 +#: mod/settings.php:320 msgid "Features updated" msgstr "Funkcje zaktualizowane" -#: mod/settings.php:384 +#: mod/settings.php:393 msgid "Relocate message has been send to your contacts" msgstr "Przeniesienie wiadomości zostało wysłane do Twoich kontaktów" -#: mod/settings.php:396 +#: mod/settings.php:405 msgid "Passwords do not match." msgstr "Hasła nie pasują do siebie." -#: mod/settings.php:404 src/Core/Console/NewPassword.php:80 +#: mod/settings.php:413 src/Console/NewPassword.php:80 msgid "Password update failed. Please try again." msgstr "Aktualizacja hasła nie powiodła się. Proszę spróbować ponownie." -#: mod/settings.php:407 src/Core/Console/NewPassword.php:83 +#: mod/settings.php:416 src/Console/NewPassword.php:83 msgid "Password changed." msgstr "Hasło zostało zmienione." -#: mod/settings.php:410 +#: mod/settings.php:419 msgid "Password unchanged." msgstr "Hasło niezmienione." -#: mod/settings.php:491 +#: mod/settings.php:500 msgid " Please use a shorter name." msgstr " Proszę użyć krótszej nazwy." -#: mod/settings.php:494 +#: mod/settings.php:503 msgid " Name too short." msgstr " Nazwa jest zbyt krótka." -#: mod/settings.php:501 +#: mod/settings.php:510 src/Module/Settings/TwoFactor/Index.php:66 msgid "Wrong Password" msgstr "Złe hasło" -#: mod/settings.php:506 +#: mod/settings.php:515 msgid "Invalid email." msgstr "Niepoprawny e-mail." -#: mod/settings.php:512 +#: mod/settings.php:521 msgid "Cannot change to that email." msgstr "Nie można zmienić tego e-maila." -#: mod/settings.php:562 +#: mod/settings.php:571 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "Prywatne forum nie ma uprawnień do prywatności. Użyj domyślnej grupy prywatnej." -#: mod/settings.php:565 +#: mod/settings.php:574 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "Prywatne forum nie ma uprawnień do prywatności ani domyślnej grupy prywatności." -#: mod/settings.php:605 +#: mod/settings.php:614 msgid "Settings updated." msgstr "Zaktualizowano ustawienia." -#: mod/settings.php:664 mod/settings.php:690 mod/settings.php:724 +#: mod/settings.php:673 mod/settings.php:699 mod/settings.php:733 msgid "Add application" msgstr "Dodaj aplikację" -#: mod/settings.php:668 mod/settings.php:694 +#: mod/settings.php:677 mod/settings.php:703 msgid "Consumer Key" msgstr "Klucz klienta" -#: mod/settings.php:669 mod/settings.php:695 +#: mod/settings.php:678 mod/settings.php:704 msgid "Consumer Secret" msgstr "Tajny klucz klienta" -#: mod/settings.php:670 mod/settings.php:696 +#: mod/settings.php:679 mod/settings.php:705 msgid "Redirect" msgstr "Przekierowanie" -#: mod/settings.php:671 mod/settings.php:697 +#: mod/settings.php:680 mod/settings.php:706 msgid "Icon url" msgstr "Adres Url ikony" -#: mod/settings.php:682 +#: mod/settings.php:691 msgid "You can't edit this application." msgstr "Nie możesz edytować tej aplikacji." -#: mod/settings.php:723 +#: mod/settings.php:732 msgid "Connected Apps" msgstr "Powiązane aplikacje" -#: mod/settings.php:725 src/Object/Post.php:167 src/Object/Post.php:169 +#: mod/settings.php:734 src/Object/Post.php:167 src/Object/Post.php:169 msgid "Edit" msgstr "Edytuj" -#: mod/settings.php:727 +#: mod/settings.php:736 msgid "Client key starts with" msgstr "Klucz klienta zaczyna się od" -#: mod/settings.php:728 +#: mod/settings.php:737 msgid "No name" msgstr "Bez nazwy" -#: mod/settings.php:729 +#: mod/settings.php:738 msgid "Remove authorization" msgstr "Odwołaj upoważnienie" -#: mod/settings.php:740 +#: mod/settings.php:749 msgid "No Addon settings configured" msgstr "Brak skonfigurowanych ustawień dodatków" -#: mod/settings.php:749 +#: mod/settings.php:758 msgid "Addon Settings" msgstr "Ustawienia Dodatków" -#: mod/settings.php:770 +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "Off" +msgstr "Wyłącz" + +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "On" +msgstr "Włącz" + +#: mod/settings.php:779 msgid "Additional Features" msgstr "Dodatkowe funkcje" -#: mod/settings.php:793 src/Content/ContactSelector.php:87 +#: mod/settings.php:802 src/Content/ContactSelector.php:87 msgid "Diaspora" msgstr "Diaspora" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "enabled" msgstr "włączone" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "disabled" msgstr "wyłączone" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Wbudowane wsparcie dla połączenia z %s jest %s" -#: mod/settings.php:794 +#: mod/settings.php:803 msgid "GNU Social (OStatus)" msgstr "GNU Soocial (OStatus)" -#: mod/settings.php:825 +#: mod/settings.php:834 msgid "Email access is disabled on this site." msgstr "Dostęp do e-maila jest wyłączony na tej stronie." -#: mod/settings.php:835 +#: mod/settings.php:844 msgid "General Social Media Settings" msgstr "Ogólne ustawienia mediów społecznościowych" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "Disable Content Warning" msgstr "Wyłącz ostrzeżenie o treści" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "" "Users on networks like Mastodon or Pleroma are able to set a content warning" " field which collapse their post by default. This disables the automatic " @@ -5882,316 +3551,352 @@ msgid "" "any other content filtering you eventually set up." msgstr "Użytkownicy w sieciach takich jak Mastodon lub Pleroma mogą ustawić pole ostrzeżenia o treści, które domyślnie zwijać będzie swój wpis. Powoduje wyłączenie automatycznego zwijania i ustawia ostrzeżenie o treści jako tytuł postu. Nie ma wpływu na żadne inne filtrowanie treści, które ostatecznie utworzyłeś." -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "Disable intelligent shortening" msgstr "Wyłącz inteligentne skracanie" -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the" " original friendica post." msgstr "Zwykle system próbuje znaleźć najlepszy link do dodania do skróconych postów. Jeśli ta opcja jest włączona, każdy skrócony wpis zawsze wskazuje oryginalny post znajomej osoby." -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "Automatycznie podążaj za wszystkimi obserwatorami/rzecznikami GNU Społeczności (OStatus)" -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "Jeśli otrzymasz wiadomość od nieznanego użytkownika OStatus, ta opcja decyduje, co zrobić. Jeśli zostanie zaznaczone, dla każdego nieznanego użytkownika zostanie utworzony nowy kontakt." -#: mod/settings.php:839 +#: mod/settings.php:848 msgid "Default group for OStatus contacts" msgstr "Domyślna grupa dla kontaktów OStatus" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "Your legacy GNU Social account" msgstr "Twoje starsze konto społecznościowe GNU" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "Jeśli podasz swoją starą nazwę konta GNU Social/Statusnet tutaj (w formacie user@domain.tld), twoje kontakty zostaną dodane automatycznie. Pole zostanie opróżnione po zakończeniu." -#: mod/settings.php:843 +#: mod/settings.php:852 msgid "Repair OStatus subscriptions" msgstr "Napraw subskrypcje OStatus" -#: mod/settings.php:847 +#: mod/settings.php:856 msgid "Email/Mailbox Setup" msgstr "Ustawienia emaila/skrzynki mailowej" -#: mod/settings.php:848 +#: mod/settings.php:857 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Jeśli chcesz komunikować się z kontaktami e-mail za pomocą tej usługi (opcjonalnie), określ sposób łączenia się ze skrzynką pocztową." -#: mod/settings.php:849 +#: mod/settings.php:858 msgid "Last successful email check:" msgstr "Ostatni sprawdzony e-mail:" -#: mod/settings.php:851 +#: mod/settings.php:860 msgid "IMAP server name:" msgstr "Nazwa serwera IMAP:" -#: mod/settings.php:852 +#: mod/settings.php:861 msgid "IMAP port:" msgstr "Port IMAP:" -#: mod/settings.php:853 +#: mod/settings.php:862 msgid "Security:" msgstr "Ochrona:" -#: mod/settings.php:853 mod/settings.php:858 +#: mod/settings.php:862 mod/settings.php:867 msgid "None" msgstr "Brak" -#: mod/settings.php:854 +#: mod/settings.php:863 msgid "Email login name:" msgstr "Nazwa logowania e-mail:" -#: mod/settings.php:855 +#: mod/settings.php:864 msgid "Email password:" msgstr "E-mail hasło:" -#: mod/settings.php:856 +#: mod/settings.php:865 msgid "Reply-to address:" msgstr "Adres zwrotny:" -#: mod/settings.php:857 +#: mod/settings.php:866 msgid "Send public posts to all email contacts:" msgstr "Wyślij publiczny wpis do wszystkich kontaktów e-mail:" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Action after import:" msgstr "Akcja po zaimportowaniu:" -#: mod/settings.php:858 src/Content/Nav.php:249 +#: mod/settings.php:867 src/Content/Nav.php:248 msgid "Mark as seen" msgstr "Oznacz jako przeczytane" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Move to folder" msgstr "Przenieś do folderu" -#: mod/settings.php:859 +#: mod/settings.php:868 msgid "Move to folder:" msgstr "Przenieś do folderu:" -#: mod/settings.php:902 +#: mod/settings.php:892 src/Module/Admin/Site.php:435 +msgid "No special theme for mobile devices" +msgstr "Brak specialnego motywu dla urządzeń mobilnych" + +#: mod/settings.php:900 #, php-format msgid "%s - (Unsupported)" msgstr "%s - (Nieobsługiwane)" -#: mod/settings.php:904 +#: mod/settings.php:902 src/Module/Admin/Site.php:452 #, php-format msgid "%s - (Experimental)" msgstr "%s- (Eksperymentalne)" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:395 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:395 msgid "Sunday" msgstr "Niedziela" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:396 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:396 msgid "Monday" msgstr "Poniedziałek" -#: mod/settings.php:947 +#: mod/settings.php:946 msgid "Display Settings" msgstr "Ustawienia wyglądu" -#: mod/settings.php:953 +#: mod/settings.php:952 msgid "Display Theme:" msgstr "Wyświetl motyw:" -#: mod/settings.php:954 +#: mod/settings.php:953 msgid "Mobile Theme:" msgstr "Motyw dla urządzeń mobilnych:" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "Suppress warning of insecure networks" msgstr "Ukryj ostrzeżenie przed niebezpiecznymi sieciami" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "" "Should the system suppress the warning that the current group contains " "members of networks that can't receive non public postings." msgstr "System powinien pominąć ostrzeżenie, że bieżąca grupa zawiera członków sieci, którzy nie mogą otrzymywać komentarzy niepublicznych" -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Update browser every xx seconds" msgstr "Odświeżaj stronę co xx sekund" -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "Minimum 10 sekund. Wprowadź -1, aby go wyłączyć." -#: mod/settings.php:957 +#: mod/settings.php:956 msgid "Number of items to display per page:" msgstr "Liczba elementów do wyświetlenia na stronie:" -#: mod/settings.php:957 mod/settings.php:958 +#: mod/settings.php:956 mod/settings.php:957 msgid "Maximum of 100 items" msgstr "Maksymalnie 100 elementów" -#: mod/settings.php:958 +#: mod/settings.php:957 msgid "Number of items to display per page when viewed from mobile device:" msgstr "Liczba elementów do wyświetlenia na stronie podczas przeglądania z urządzenia mobilnego:" -#: mod/settings.php:959 +#: mod/settings.php:958 msgid "Don't show emoticons" msgstr "Nie pokazuj emotikonek" -#: mod/settings.php:960 +#: mod/settings.php:959 msgid "Calendar" msgstr "Kalendarz" -#: mod/settings.php:961 +#: mod/settings.php:960 msgid "Beginning of week:" msgstr "Początek tygodnia:" -#: mod/settings.php:962 +#: mod/settings.php:961 msgid "Don't show notices" msgstr "Nie pokazuj powiadomień" -#: mod/settings.php:963 +#: mod/settings.php:962 msgid "Infinite scroll" msgstr "Nieskończone przewijanie" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "Automatic updates only at the top of the network page" msgstr "Automatyczne aktualizacje tylko w górnej części strony sieci" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "" "When disabled, the network page is updated all the time, which could be " "confusing while reading." msgstr "Po wyłączeniu strona sieciowa jest cały czas aktualizowana, co może być mylące podczas czytania." -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "Bandwidth Saver Mode" msgstr "Tryb oszczędzania przepustowości" -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "" "When enabled, embedded content is not displayed on automatic updates, they " "only show on page reload." msgstr "Po włączeniu wbudowana zawartość nie jest wyświetlana w automatycznych aktualizacjach, wyświetlają się tylko przy przeładowaniu strony." -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "Smart Threading" msgstr "Inteligentne wątki" -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "" "When enabled, suppress extraneous thread indentation while keeping it where " "it matters. Only works if threading is available and enabled." msgstr "Włączenie tej opcji powoduje pomijanie wcięcia wątków zewnętrznych, zachowując je w dowolnym miejscu. Działa tylko wtedy, gdy wątki są dostępne i włączone." -#: mod/settings.php:968 +#: mod/settings.php:967 msgid "General Theme Settings" msgstr "Ogólne ustawienia motywu" -#: mod/settings.php:969 +#: mod/settings.php:968 msgid "Custom Theme Settings" msgstr "Niestandardowe ustawienia motywów" -#: mod/settings.php:970 +#: mod/settings.php:969 msgid "Content Settings" msgstr "Ustawienia zawartości" -#: mod/settings.php:971 view/theme/duepuntozero/config.php:74 -#: view/theme/frio/config.php:121 view/theme/quattro/config.php:76 -#: view/theme/vier/config.php:122 +#: mod/settings.php:970 view/theme/duepuntozero/config.php:73 +#: view/theme/frio/config.php:122 view/theme/quattro/config.php:75 +#: view/theme/vier/config.php:121 msgid "Theme settings" msgstr "Ustawienia motywu" -#: mod/settings.php:985 +#: mod/settings.php:984 msgid "Unable to find your profile. Please contact your admin." msgstr "Nie można znaleźć Twojego profilu. Skontaktuj się z administratorem." -#: mod/settings.php:1024 +#: mod/settings.php:1023 msgid "Account Types" msgstr "Rodzaje kont" -#: mod/settings.php:1025 +#: mod/settings.php:1024 msgid "Personal Page Subtypes" msgstr "Podtypy osobistych stron" -#: mod/settings.php:1026 +#: mod/settings.php:1025 msgid "Community Forum Subtypes" msgstr "Podtypy społeczności forum" -#: mod/settings.php:1034 +#: mod/settings.php:1032 src/Module/Admin/Users.php:229 +msgid "Personal Page" +msgstr "Strona osobista" + +#: mod/settings.php:1033 msgid "Account for a personal profile." msgstr "Konto dla profilu osobistego." -#: mod/settings.php:1038 +#: mod/settings.php:1036 src/Module/Admin/Users.php:230 +msgid "Organisation Page" +msgstr "Strona Organizacji" + +#: mod/settings.php:1037 msgid "" "Account for an organisation that automatically approves contact requests as " "\"Followers\"." msgstr "Konto dla organizacji, która automatycznie zatwierdza prośby o kontakt jako \"Obserwatorzy\"." -#: mod/settings.php:1042 +#: mod/settings.php:1040 src/Module/Admin/Users.php:231 +msgid "News Page" +msgstr "Strona Wiadomości" + +#: mod/settings.php:1041 msgid "" "Account for a news reflector that automatically approves contact requests as" " \"Followers\"." msgstr "Konto dla reflektora wiadomości, który automatycznie zatwierdza prośby o kontakt jako \"Obserwatorzy\"." -#: mod/settings.php:1046 +#: mod/settings.php:1044 src/Module/Admin/Users.php:232 +msgid "Community Forum" +msgstr "Forum społecznościowe" + +#: mod/settings.php:1045 msgid "Account for community discussions." msgstr "Konto do dyskusji w społeczności." -#: mod/settings.php:1050 +#: mod/settings.php:1048 src/Module/Admin/Users.php:222 +msgid "Normal Account Page" +msgstr "Normalna strona konta" + +#: mod/settings.php:1049 msgid "" "Account for a regular personal profile that requires manual approval of " "\"Friends\" and \"Followers\"." msgstr "Konto dla zwykłego profilu osobistego, który wymaga ręcznej zgody \"Przyjaciół\" i \"Obserwatorów\"." -#: mod/settings.php:1054 +#: mod/settings.php:1052 src/Module/Admin/Users.php:223 +msgid "Soapbox Page" +msgstr "Strona Soapbox" + +#: mod/settings.php:1053 msgid "" "Account for a public profile that automatically approves contact requests as" " \"Followers\"." msgstr "Konto dla profilu publicznego, który automatycznie zatwierdza prośby o kontakt jako \"Obserwatorzy\"." -#: mod/settings.php:1058 +#: mod/settings.php:1056 src/Module/Admin/Users.php:224 +msgid "Public Forum" +msgstr "Forum publiczne" + +#: mod/settings.php:1057 msgid "Automatically approves all contact requests." msgstr "Automatycznie zatwierdza wszystkie prośby o kontakt." -#: mod/settings.php:1062 +#: mod/settings.php:1060 src/Module/Admin/Users.php:225 +msgid "Automatic Friend Page" +msgstr "Automatyczna strona znajomego" + +#: mod/settings.php:1061 msgid "" "Account for a popular profile that automatically approves contact requests " "as \"Friends\"." msgstr "Konto popularnego profilu, które automatycznie zatwierdza prośby o kontakt jako \"Przyjaciele\"." -#: mod/settings.php:1065 +#: mod/settings.php:1064 msgid "Private Forum [Experimental]" msgstr "Prywatne Forum [Eksperymentalne]" -#: mod/settings.php:1066 +#: mod/settings.php:1065 msgid "Requires manual approval of contact requests." msgstr "Wymaga ręcznego zatwierdzania żądań kontaktów." -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "OpenID:" msgstr "OpenID:" -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "(Optional) Allow this OpenID to login to this account." msgstr "(Opcjonalnie) Pozwól zalogować się na to konto przy pomocy OpenID." -#: mod/settings.php:1085 +#: mod/settings.php:1084 msgid "Publish your default profile in your local site directory?" msgstr "Opublikować Twój domyślny profil w Twoim lokalnym katalogu stron?" -#: mod/settings.php:1085 +#: mod/settings.php:1084 #, php-format msgid "" "Your profile will be published in this node's local " @@ -6199,314 +3904,314 @@ msgid "" " system settings." msgstr "Twój profil zostanie opublikowany w lokalnym katalogu tego węzła. Dane Twojego profilu mogą być publicznie widoczne w zależności od ustawień systemu." -#: mod/settings.php:1091 +#: mod/settings.php:1090 msgid "Publish your default profile in the global social directory?" msgstr "Opublikować Twój domyślny profil w globalnym, społecznościowym katalogu?" -#: mod/settings.php:1091 +#: mod/settings.php:1090 #, php-format msgid "" "Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public." msgstr "Twój profil zostanie opublikowany w globalnych katalogach friendica (np.%s). Twój profil będzie widoczny publicznie." -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Ukryć listę znajomych przed odwiedzającymi Twój profil?" -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "" "Your contact list won't be shown in your default profile page. You can " "decide to show your contact list separately for each additional profile you " "create" msgstr "Twoja lista kontaktów nie będzie wyświetlana na domyślnej stronie profilu. Możesz zdecydować o wyświetleniu listy kontaktów osobno dla każdego tworzonego dodatkowego profilu." -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "Hide your profile details from anonymous viewers?" msgstr "Ukryć dane Twojego profilu przed anonimowymi widzami?" -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "" "Anonymous visitors will only see your profile picture, your display name and" " the nickname you are using on your profile page. Your public posts and " "replies will still be accessible by other means." msgstr "Anonimowi użytkownicy zobaczą tylko Twoje zdjęcie profilowe, swoją wyświetlaną nazwę i pseudonim, którego używasz na stronie profilu. Twoje publiczne posty i odpowiedzi będą nadal dostępne w inny sposób." -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "Allow friends to post to your profile page?" msgstr "Zezwalać znajomym na publikowanie postów na stronie Twojego profilu?" -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "" "Your contacts may write posts on your profile wall. These posts will be " "distributed to your contacts" msgstr "Twoi znajomi mogą pisać posty na stronie Twojego profilu. Posty zostaną przesłane do Twoich kontaktów." -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Allow friends to tag your posts?" msgstr "Zezwolić na oznaczanie Twoich postów przez znajomych?" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Your contacts can add additional tags to your posts." msgstr "Twoje kontakty mogą dodawać do tagów dodatkowe posty." -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Zezwolić na zaproponowanie Cię jako potencjalnego przyjaciela dla nowych członków?" -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "" "If you like, Friendica may suggest new members to add you as a contact." msgstr "Jeśli chcesz, Friendica może zaproponować nowym członkom dodanie Cię jako kontakt." -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "Permit unknown people to send you private mail?" msgstr "Zezwolić nieznanym osobom na wysyłanie prywatnych wiadomości?" -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "" "Friendica network users may send you private messages even if they are not " "in your contact list." msgstr "Użytkownicy sieci w serwisie Friendica mogą wysyłać prywatne wiadomości, nawet jeśli nie znajdują się one na liście kontaktów." -#: mod/settings.php:1122 +#: mod/settings.php:1121 msgid "Profile is not published." msgstr "Profil nie jest opublikowany." -#: mod/settings.php:1128 +#: mod/settings.php:1127 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "Twój adres tożsamości to '%s' lub '%s'." -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "Automatically expire posts after this many days:" msgstr "Posty wygasną automatycznie po następującej liczbie dni:" -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Pole puste, wiadomość nie wygaśnie. Niezapisane wpisy zostaną usunięte." -#: mod/settings.php:1136 +#: mod/settings.php:1135 msgid "Advanced expiration settings" msgstr "Zaawansowane ustawienia wygaszania" -#: mod/settings.php:1137 +#: mod/settings.php:1136 msgid "Advanced Expiration" msgstr "Zaawansowane wygaszanie" -#: mod/settings.php:1138 +#: mod/settings.php:1137 msgid "Expire posts:" msgstr "Wygasające posty:" -#: mod/settings.php:1139 +#: mod/settings.php:1138 msgid "Expire personal notes:" msgstr "Wygaszanie osobistych notatek:" -#: mod/settings.php:1140 +#: mod/settings.php:1139 msgid "Expire starred posts:" msgstr "Wygaszaj posty oznaczone gwiazdką:" -#: mod/settings.php:1141 +#: mod/settings.php:1140 msgid "Expire photos:" msgstr "Wygasanie zdjęć:" -#: mod/settings.php:1142 +#: mod/settings.php:1141 msgid "Only expire posts by others:" msgstr "Wygaszaj tylko te posty, które zostały napisane przez inne osoby:" -#: mod/settings.php:1172 +#: mod/settings.php:1171 msgid "Account Settings" msgstr "Ustawienia konta" -#: mod/settings.php:1180 +#: mod/settings.php:1179 msgid "Password Settings" msgstr "Ustawienia hasła" -#: mod/settings.php:1181 src/Module/Register.php:130 +#: mod/settings.php:1180 src/Module/Register.php:130 msgid "New Password:" msgstr "Nowe hasło:" -#: mod/settings.php:1181 +#: mod/settings.php:1180 msgid "" "Allowed characters are a-z, A-Z, 0-9 and special characters except white " "spaces, accentuated letters and colon (:)." msgstr "Dozwolone znaki to a-z, A-Z, 0-9 i znaki specjalne, z wyjątkiem białych znaków, podkreślonych liter i dwukropka (:)." -#: mod/settings.php:1182 src/Module/Register.php:131 +#: mod/settings.php:1181 src/Module/Register.php:131 msgid "Confirm:" msgstr "Potwierdź:" -#: mod/settings.php:1182 +#: mod/settings.php:1181 msgid "Leave password fields blank unless changing" msgstr "Pozostaw pole hasła puste, jeżeli nie chcesz go zmienić." -#: mod/settings.php:1183 +#: mod/settings.php:1182 msgid "Current Password:" msgstr "Aktualne hasło:" -#: mod/settings.php:1183 mod/settings.php:1184 +#: mod/settings.php:1182 mod/settings.php:1183 msgid "Your current password to confirm the changes" msgstr "Wpisz aktualne hasło, aby potwierdzić zmiany" -#: mod/settings.php:1184 +#: mod/settings.php:1183 msgid "Password:" msgstr "Hasło:" -#: mod/settings.php:1188 +#: mod/settings.php:1187 msgid "Basic Settings" msgstr "Ustawienia podstawowe" -#: mod/settings.php:1189 src/Model/Profile.php:751 +#: mod/settings.php:1188 src/Model/Profile.php:745 msgid "Full Name:" msgstr "Imię i nazwisko:" -#: mod/settings.php:1190 +#: mod/settings.php:1189 msgid "Email Address:" msgstr "Adres email:" -#: mod/settings.php:1191 +#: mod/settings.php:1190 msgid "Your Timezone:" msgstr "Twoja strefa czasowa:" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "Your Language:" msgstr "Twój język:" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "Wybierz język, ktory bedzie używany do wyświetlania użytkownika friendica i wysłania Ci e-maili" -#: mod/settings.php:1193 +#: mod/settings.php:1192 msgid "Default Post Location:" msgstr "Domyślna lokalizacja wiadomości:" -#: mod/settings.php:1194 +#: mod/settings.php:1193 msgid "Use Browser Location:" msgstr "Używaj lokalizacji przeglądarki:" -#: mod/settings.php:1197 +#: mod/settings.php:1196 msgid "Security and Privacy Settings" msgstr "Ustawienia bezpieczeństwa i prywatności" -#: mod/settings.php:1199 +#: mod/settings.php:1198 msgid "Maximum Friend Requests/Day:" msgstr "Maksymalna dzienna liczba zaproszeń do grona przyjaciół:" -#: mod/settings.php:1199 mod/settings.php:1228 +#: mod/settings.php:1198 mod/settings.php:1227 msgid "(to prevent spam abuse)" msgstr "(aby zapobiec spamowaniu)" -#: mod/settings.php:1200 +#: mod/settings.php:1199 msgid "Default Post Permissions" msgstr "Domyślne prawa dostępu wiadomości" -#: mod/settings.php:1201 +#: mod/settings.php:1200 msgid "(click to open/close)" msgstr "(kliknij by otworzyć/zamknąć)" -#: mod/settings.php:1211 +#: mod/settings.php:1210 msgid "Default Private Post" msgstr "Domyślny Prywatny Wpis" -#: mod/settings.php:1212 +#: mod/settings.php:1211 msgid "Default Public Post" msgstr "Domyślny Publiczny Post" -#: mod/settings.php:1216 +#: mod/settings.php:1215 msgid "Default Permissions for New Posts" msgstr "Uprawnienia domyślne dla nowych postów" -#: mod/settings.php:1228 +#: mod/settings.php:1227 msgid "Maximum private messages per day from unknown people:" msgstr "Maksymalna liczba prywatnych wiadomości dziennie od nieznanych osób:" -#: mod/settings.php:1231 +#: mod/settings.php:1230 msgid "Notification Settings" msgstr "Ustawienia powiadomień" -#: mod/settings.php:1232 +#: mod/settings.php:1231 msgid "Send a notification email when:" msgstr "Wysyłaj powiadmonienia na email, kiedy:" -#: mod/settings.php:1233 +#: mod/settings.php:1232 msgid "You receive an introduction" msgstr "Otrzymałeś zaproszenie" -#: mod/settings.php:1234 +#: mod/settings.php:1233 msgid "Your introductions are confirmed" msgstr "Twoje zaproszenie jest potwierdzone" -#: mod/settings.php:1235 +#: mod/settings.php:1234 msgid "Someone writes on your profile wall" msgstr "Ktoś pisze na twoim profilu" -#: mod/settings.php:1236 +#: mod/settings.php:1235 msgid "Someone writes a followup comment" msgstr "Ktoś pisze komentarz nawiązujący." -#: mod/settings.php:1237 +#: mod/settings.php:1236 msgid "You receive a private message" msgstr "Otrzymałeś prywatną wiadomość" -#: mod/settings.php:1238 +#: mod/settings.php:1237 msgid "You receive a friend suggestion" msgstr "Otrzymałeś propozycję od znajomych" -#: mod/settings.php:1239 +#: mod/settings.php:1238 msgid "You are tagged in a post" msgstr "Jesteś oznaczony tagiem w poście" -#: mod/settings.php:1240 +#: mod/settings.php:1239 msgid "You are poked/prodded/etc. in a post" msgstr "Jesteś zaczepiony/zaczepiona/itp. w poście" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Activate desktop notifications" msgstr "Aktywuj powiadomienia na pulpicie" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Show desktop popup on new notifications" msgstr "Pokazuj wyskakujące okienko gdy otrzymasz powiadomienie" -#: mod/settings.php:1244 +#: mod/settings.php:1243 msgid "Text-only notification emails" msgstr "E-maile z powiadomieniami tekstowymi" -#: mod/settings.php:1246 +#: mod/settings.php:1245 msgid "Send text only notification emails, without the html part" msgstr "Wysyłaj tylko e-maile z powiadomieniami tekstowymi, bez części html" -#: mod/settings.php:1248 +#: mod/settings.php:1247 msgid "Show detailled notifications" msgstr "Pokazuj szczegółowe powiadomienia" -#: mod/settings.php:1250 +#: mod/settings.php:1249 msgid "" "Per default, notifications are condensed to a single notification per item. " "When enabled every notification is displayed." msgstr "Domyślne powiadomienia są skondensowane z jednym powiadomieniem dla każdego przedmiotu. Po włączeniu wyświetlane jest każde powiadomienie." -#: mod/settings.php:1252 +#: mod/settings.php:1251 msgid "Advanced Account/Page Type Settings" msgstr "Zaawansowane ustawienia konta/rodzaju strony" -#: mod/settings.php:1253 +#: mod/settings.php:1252 msgid "Change the behaviour of this account for special situations" msgstr "Zmień zachowanie tego konta w sytuacjach specjalnych" -#: mod/settings.php:1256 +#: mod/settings.php:1255 msgid "Relocate" msgstr "Przeniesienie" -#: mod/settings.php:1257 +#: mod/settings.php:1256 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "Jeśli ten profil został przeniesiony z innego serwera, a niektóre z Twoich kontaktów nie otrzymają aktualizacji, spróbuj nacisnąć ten przycisk." -#: mod/settings.php:1258 +#: mod/settings.php:1257 msgid "Resend relocate message to contacts" msgstr "Wyślij ponownie przenieść wiadomości do kontaktów" @@ -6515,16 +4220,20 @@ msgstr "Wyślij ponownie przenieść wiadomości do kontaktów" msgid "%1$s is following %2$s's %3$s" msgstr "%1$s śledzi %3$s %2$s" -#: mod/suggest.php:39 -msgid "Do you really want to delete this suggestion?" -msgstr "Czy na pewno chcesz usunąć te sugestie ?" +#: mod/suggest.php:28 +msgid "Contact suggestion successfully ignored." +msgstr "Sugestia kontaktu została zignorowana." -#: mod/suggest.php:75 +#: mod/suggest.php:52 msgid "" "No suggestions available. If this is a new site, please try again in 24 " "hours." msgstr "Brak dostępnych sugestii. Jeśli jest to nowa witryna, spróbuj ponownie za 24 godziny." +#: mod/suggest.php:71 +msgid "Do you really want to delete this suggestion?" +msgstr "Czy na pewno chcesz usunąć te sugestie ?" + #: mod/suggest.php:89 mod/suggest.php:109 msgid "Ignore/Hide" msgstr "Ignoruj/Ukryj" @@ -6623,7 +4332,7 @@ msgstr "Brak obserwowania nie jest obecnie obsługiwany przez twoją sieć." msgid "Contact unfollowed" msgstr "Skontaktuj się z obserwowanym" -#: mod/unfollow.php:118 src/Module/Contact.php:570 +#: mod/unfollow.php:118 src/Module/Contact.php:573 msgid "Disconnect/Unfollow" msgstr "Rozłącz/Nie obserwuj" @@ -6633,27 +4342,19 @@ msgstr "Rozłącz/Nie obserwuj" msgid "[Embedded content - reload page to view]" msgstr "[Dodatkowa zawartość - odśwież stronę by zobaczyć]" -#: mod/videos.php:97 -msgid "Do you really want to delete this video?" -msgstr "Czy na pewno chcesz usunąć ten film wideo?" - -#: mod/videos.php:102 -msgid "Delete Video" -msgstr "Usuń wideo" - -#: mod/videos.php:152 +#: mod/videos.php:123 msgid "No videos selected" msgstr "Nie zaznaczono filmów" -#: mod/videos.php:309 src/Model/Item.php:3453 +#: mod/videos.php:280 src/Model/Item.php:3421 msgid "View Video" msgstr "Zobacz film" -#: mod/videos.php:324 +#: mod/videos.php:295 msgid "Recent Videos" msgstr "Ostatnio dodane filmy" -#: mod/videos.php:326 +#: mod/videos.php:297 msgid "Upload New Videos" msgstr "Wstaw nowe filmy" @@ -6661,16 +4362,16 @@ msgstr "Wstaw nowe filmy" msgid "No contacts." msgstr "Brak kontaktów." -#: mod/viewcontacts.php:94 src/Module/Contact.php:603 -#: src/Module/Contact.php:1024 +#: mod/viewcontacts.php:94 src/Module/Contact.php:606 +#: src/Module/Contact.php:1027 #, php-format msgid "Visit %s's profile [%s]" msgstr "Obejrzyj %s's profil [%s]" -#: mod/viewcontacts.php:114 src/Content/Nav.php:203 src/Content/Nav.php:269 -#: src/Content/Text/HTML.php:911 src/Model/Profile.php:980 -#: src/Model/Profile.php:983 src/Module/Contact.php:811 -#: src/Module/Contact.php:881 view/theme/frio/theme.php:273 +#: mod/viewcontacts.php:114 src/Content/Nav.php:202 src/Content/Nav.php:268 +#: src/Content/Text/HTML.php:911 src/Model/Profile.php:974 +#: src/Model/Profile.php:977 src/Module/Contact.php:814 +#: src/Module/Contact.php:884 view/theme/frio/theme.php:273 msgid "Contacts" msgstr "Kontakty" @@ -6717,29 +4418,77 @@ msgstr "Plik przekracza limit rozmiaru wynoszący %s" msgid "File upload failed." msgstr "Przesyłanie pliku nie powiodło się." -#: mod/wall_upload.php:243 src/Object/Image.php:967 src/Object/Image.php:983 -#: src/Object/Image.php:991 src/Object/Image.php:1016 +#: mod/wall_upload.php:243 msgid "Wall Photos" msgstr "Tablica zdjęć" -#: src/App.php:610 +#: src/App.php:505 msgid "Delete this item?" msgstr "Usunąć ten element?" -#: src/App.php:652 +#: src/App.php:547 msgid "toggle mobile" msgstr "przełącz na mobilny" -#: src/App.php:985 +#: src/App.php:863 msgid "No system theme config value set." msgstr "Nie ustawiono wartości konfiguracyjnej zestawu tematycznego." -#: src/BaseModule.php:133 +#: src/App.php:1163 +msgid "You must be logged in to use addons. " +msgstr "Musisz być zalogowany(-a), aby korzystać z dodatków. " + +#: src/BaseModule.php:135 msgid "" "The form security token was not correct. This probably happened because the " "form has been opened for too long (>3 hours) before submitting it." msgstr "Znacznik zabezpieczeń formularza nie był poprawny. Prawdopodobnie stało się tak, ponieważ formularz został otwarty zbyt długo (> 3 godziny) przed jego przesłaniem." +#: src/Console/ArchiveContact.php:65 +#, php-format +msgid "Could not find any unarchived contact entry for this URL (%s)" +msgstr "Nie można znaleźć żadnego wpisu kontaktu zarchiwizowanego dla tego adresu URL (%s)" + +#: src/Console/ArchiveContact.php:68 +msgid "The contact entries have been archived" +msgstr "Wpisy kontaktów zostały zarchiwizowane" + +#: src/Console/GlobalCommunityBlock.php:65 +#: src/Module/Admin/Blocklist/Contact.php:29 +#, php-format +msgid "Could not find any contact entry for this URL (%s)" +msgstr "Nie można znaleźć żadnego kontaktu dla tego adresu URL (%s)" + +#: src/Console/GlobalCommunityBlock.php:68 +#: src/Module/Admin/Blocklist/Contact.php:27 +msgid "The contact has been blocked from the node" +msgstr "Kontakt został zablokowany w węźle" + +#: src/Console/NewPassword.php:72 +msgid "Enter new password: " +msgstr "Wprowadź nowe hasło: " + +#: src/Console/PostUpdate.php:50 +#, php-format +msgid "Post update version number has been set to %s." +msgstr "Numer wersji aktualizacji posta został ustawiony na %s." + +#: src/Console/PostUpdate.php:58 +msgid "Check for pending update actions." +msgstr "Sprawdź oczekujące działania aktualizacji." + +#: src/Console/PostUpdate.php:60 +msgid "Done." +msgstr "Gotowe." + +#: src/Console/PostUpdate.php:62 +msgid "Execute pending post updates." +msgstr "Wykonaj oczekujące aktualizacje postów." + +#: src/Console/PostUpdate.php:68 +msgid "All pending post updates are done." +msgstr "Wszystkie oczekujące aktualizacje postów są gotowe." + #: src/Content/ContactSelector.php:58 msgid "Frequently" msgstr "Często" @@ -6776,6 +4525,12 @@ msgstr "OStatus" msgid "RSS/Atom" msgstr "RSS/Atom" +#: src/Content/ContactSelector.php:86 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:315 +msgid "Email" +msgstr "E-mail" + #: src/Content/ContactSelector.php:88 msgid "Zot!" msgstr "Zot!" @@ -6965,7 +4720,7 @@ msgstr "Niewierny(-a)" msgid "Sex Addict" msgstr "Uzależniony(-a) od seksu" -#: src/Content/ContactSelector.php:241 src/Model/User.php:702 +#: src/Content/ContactSelector.php:241 src/Model/User.php:729 msgid "Friends" msgstr "Przyjaciele" @@ -7182,7 +4937,7 @@ msgstr "Wyświetl datę członkostwa" msgid "Display membership date in profile" msgstr "Wyświetla datę członkostwa w profilu" -#: src/Content/ForumManager.php:130 src/Content/Nav.php:207 +#: src/Content/ForumManager.php:130 src/Content/Nav.php:206 #: src/Content/Text/HTML.php:914 view/theme/vier/theme.php:250 msgid "Forums" msgstr "Fora" @@ -7191,220 +4946,251 @@ msgstr "Fora" msgid "External link to forum" msgstr "Zewnętrzny link do forum" -#: src/Content/Nav.php:74 +#: src/Content/Nav.php:73 msgid "Nothing new here" msgstr "Brak nowych zdarzeń" -#: src/Content/Nav.php:78 +#: src/Content/Nav.php:77 msgid "Clear notifications" msgstr "Wyczyść powiadomienia" -#: src/Content/Nav.php:79 src/Content/Text/HTML.php:903 +#: src/Content/Nav.php:78 src/Content/Text/HTML.php:903 msgid "@name, !forum, #tags, content" msgstr "@imię, !forum, #tagi, treść" -#: src/Content/Nav.php:153 src/Module/Login.php:321 +#: src/Content/Nav.php:152 src/Module/Login.php:324 #: view/theme/frio/theme.php:259 msgid "Logout" msgstr "Wyloguj" -#: src/Content/Nav.php:153 view/theme/frio/theme.php:259 +#: src/Content/Nav.php:152 view/theme/frio/theme.php:259 msgid "End this session" msgstr "Zakończ sesję" -#: src/Content/Nav.php:156 src/Model/Profile.php:901 -#: src/Module/Contact.php:652 src/Module/Contact.php:853 -#: view/theme/frio/theme.php:262 +#: src/Content/Nav.php:155 src/Model/Profile.php:895 +#: src/Module/Contact.php:655 src/Module/Contact.php:856 +#: src/Module/Settings/TwoFactor/Index.php:85 view/theme/frio/theme.php:262 msgid "Status" msgstr "Status" -#: src/Content/Nav.php:156 src/Content/Nav.php:242 +#: src/Content/Nav.php:155 src/Content/Nav.php:241 #: view/theme/frio/theme.php:262 msgid "Your posts and conversations" msgstr "Twoje posty i rozmowy" -#: src/Content/Nav.php:157 view/theme/frio/theme.php:263 +#: src/Content/Nav.php:156 view/theme/frio/theme.php:263 msgid "Your profile page" msgstr "Twoja strona profilowa" -#: src/Content/Nav.php:158 view/theme/frio/theme.php:264 +#: src/Content/Nav.php:157 view/theme/frio/theme.php:264 msgid "Your photos" msgstr "Twoje zdjęcia" -#: src/Content/Nav.php:159 src/Model/Profile.php:925 src/Model/Profile.php:928 +#: src/Content/Nav.php:158 src/Model/Profile.php:919 src/Model/Profile.php:922 #: view/theme/frio/theme.php:265 msgid "Videos" msgstr "Filmy" -#: src/Content/Nav.php:159 view/theme/frio/theme.php:265 +#: src/Content/Nav.php:158 view/theme/frio/theme.php:265 msgid "Your videos" msgstr "Twoje filmy" -#: src/Content/Nav.php:160 view/theme/frio/theme.php:266 +#: src/Content/Nav.php:159 view/theme/frio/theme.php:266 msgid "Your events" msgstr "Twoje wydarzenia" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Personal notes" msgstr "Notatki" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Your personal notes" msgstr "Twoje prywatne notatki" -#: src/Content/Nav.php:170 +#: src/Content/Nav.php:169 src/Module/Bookmarklet.php:25 +#: src/Module/Login.php:325 +msgid "Login" +msgstr "Zaloguj się" + +#: src/Content/Nav.php:169 msgid "Sign in" msgstr "Zaloguj się" -#: src/Content/Nav.php:180 src/Content/Nav.php:242 -#: src/Core/NotificationsManager.php:196 +#: src/Content/Nav.php:179 src/Content/Nav.php:241 +#: src/Core/NotificationsManager.php:165 msgid "Home" msgstr "Strona domowa" -#: src/Content/Nav.php:180 +#: src/Content/Nav.php:179 msgid "Home Page" msgstr "Strona startowa" -#: src/Content/Nav.php:184 src/Module/Login.php:293 +#: src/Content/Nav.php:183 src/Module/Login.php:296 #: src/Module/Register.php:136 msgid "Register" msgstr "Zarejestruj" -#: src/Content/Nav.php:184 +#: src/Content/Nav.php:183 msgid "Create an account" msgstr "Załóż konto" -#: src/Content/Nav.php:190 +#: src/Content/Nav.php:189 src/Module/Help.php:50 +#: src/Module/Settings/TwoFactor/Index.php:84 +#: src/Module/Settings/TwoFactor/Recovery.php:77 +#: src/Module/Settings/TwoFactor/Verify.php:117 view/theme/vier/theme.php:294 +msgid "Help" +msgstr "Pomoc" + +#: src/Content/Nav.php:189 msgid "Help and documentation" msgstr "Pomoc i dokumentacja" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Apps" msgstr "Aplikacje" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Addon applications, utilities, games" msgstr "Wtyczki, aplikacje, narzędzia, gry" -#: src/Content/Nav.php:198 +#: src/Content/Nav.php:197 msgid "Search site content" msgstr "Przeszukaj zawartość strony" -#: src/Content/Nav.php:201 src/Content/Text/HTML.php:909 +#: src/Content/Nav.php:200 src/Content/Text/HTML.php:909 msgid "Full Text" msgstr "Pełny tekst" -#: src/Content/Nav.php:202 src/Content/Text/HTML.php:910 +#: src/Content/Nav.php:201 src/Content/Text/HTML.php:910 #: src/Content/Widget/TagCloud.php:54 msgid "Tags" msgstr "Tagi" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Community" msgstr "Społeczność" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Conversations on this and other servers" msgstr "Rozmowy na tym i innych serwerach" -#: src/Content/Nav.php:226 src/Model/Profile.php:940 src/Model/Profile.php:951 +#: src/Content/Nav.php:225 src/Model/Profile.php:934 src/Model/Profile.php:945 #: view/theme/frio/theme.php:270 msgid "Events and Calendar" msgstr "Wydarzenia i kalendarz" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "Directory" msgstr "Katalog" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "People directory" msgstr "Katalog osób" -#: src/Content/Nav.php:231 +#: src/Content/Nav.php:230 src/Module/BaseAdminModule.php:75 +msgid "Information" +msgstr "Informacje" + +#: src/Content/Nav.php:230 msgid "Information about this friendica instance" msgstr "Informacje o tej instancji friendica" -#: src/Content/Nav.php:234 +#: src/Content/Nav.php:233 src/Module/Admin/Tos.php:43 +#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:144 +#: src/Module/Tos.php:73 +msgid "Terms of Service" +msgstr "Warunki usługi" + +#: src/Content/Nav.php:233 msgid "Terms of Service of this Friendica instance" msgstr "Warunki świadczenia usług tej instancji Friendica" -#: src/Content/Nav.php:239 view/theme/frio/theme.php:269 +#: src/Content/Nav.php:238 src/Core/NotificationsManager.php:151 +#: view/theme/frio/theme.php:269 +msgid "Network" +msgstr "Sieć" + +#: src/Content/Nav.php:238 view/theme/frio/theme.php:269 msgid "Conversations from your friends" msgstr "Rozmowy Twoich przyjaciół" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Network Reset" msgstr "Resetowanie sieci" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Load Network page with no filters" msgstr "Załaduj stronę sieci bez filtrów" -#: src/Content/Nav.php:246 src/Core/NotificationsManager.php:203 +#: src/Content/Nav.php:245 src/Core/NotificationsManager.php:172 msgid "Introductions" msgstr "Zapoznanie" -#: src/Content/Nav.php:246 +#: src/Content/Nav.php:245 msgid "Friend Requests" msgstr "Prośba o przyjęcie do grona znajomych" -#: src/Content/Nav.php:248 +#: src/Content/Nav.php:247 msgid "See all notifications" msgstr "Zobacz wszystkie powiadomienia" -#: src/Content/Nav.php:249 +#: src/Content/Nav.php:248 msgid "Mark all system notifications seen" msgstr "Oznacz wszystkie powiadomienia systemu jako przeczytane" -#: src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Private mail" msgstr "Prywatne maile" -#: src/Content/Nav.php:253 +#: src/Content/Nav.php:252 msgid "Inbox" msgstr "Odebrane" -#: src/Content/Nav.php:254 +#: src/Content/Nav.php:253 msgid "Outbox" msgstr "Wysłane" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage" msgstr "Zarządzaj" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage other pages" msgstr "Zarządzaj innymi stronami" -#: src/Content/Nav.php:263 view/theme/frio/theme.php:272 +#: src/Content/Nav.php:262 view/theme/frio/theme.php:272 msgid "Account settings" msgstr "Ustawienia konta" -#: src/Content/Nav.php:266 +#: src/Content/Nav.php:265 msgid "Manage/Edit Profiles" msgstr "Zarządzaj/Edytuj profile" -#: src/Content/Nav.php:269 view/theme/frio/theme.php:273 +#: src/Content/Nav.php:268 view/theme/frio/theme.php:273 msgid "Manage/edit friends and contacts" msgstr "Zarządzaj listą przyjaciół i kontaktami" -#: src/Content/Nav.php:274 +#: src/Content/Nav.php:273 src/Module/BaseAdminModule.php:114 +msgid "Admin" +msgstr "Administator" + +#: src/Content/Nav.php:273 msgid "Site setup and configuration" msgstr "Konfiguracja i ustawienia instancji" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Navigation" msgstr "Nawigacja" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Site map" msgstr "Mapa strony" -#: src/Content/OEmbed.php:256 +#: src/Content/OEmbed.php:255 msgid "Embedding disabled" msgstr "Osadzanie wyłączone" -#: src/Content/OEmbed.php:379 +#: src/Content/OEmbed.php:378 msgid "Embedded content" msgstr "Osadzona zawartość" @@ -7424,33 +5210,33 @@ msgstr "poprzedni" msgid "last" msgstr "ostatni" -#: src/Content/Text/BBCode.php:429 +#: src/Content/Text/BBCode.php:430 msgid "view full size" msgstr "zobacz pełny rozmiar" -#: src/Content/Text/BBCode.php:863 src/Content/Text/BBCode.php:1596 -#: src/Content/Text/BBCode.php:1597 +#: src/Content/Text/BBCode.php:864 src/Content/Text/BBCode.php:1591 +#: src/Content/Text/BBCode.php:1592 msgid "Image/photo" msgstr "Obrazek/zdjęcie" -#: src/Content/Text/BBCode.php:967 +#: src/Content/Text/BBCode.php:972 #, php-format msgid "%2$s %3$s" msgstr "%2$s%3$s" -#: src/Content/Text/BBCode.php:1523 src/Content/Text/BBCode.php:1545 +#: src/Content/Text/BBCode.php:1518 src/Content/Text/BBCode.php:1540 msgid "$1 wrote:" msgstr "$1 napisał:" -#: src/Content/Text/BBCode.php:1607 src/Content/Text/BBCode.php:1608 +#: src/Content/Text/BBCode.php:1602 src/Content/Text/BBCode.php:1603 msgid "Encrypted content" msgstr "Szyfrowana treść" -#: src/Content/Text/BBCode.php:1715 +#: src/Content/Text/BBCode.php:1710 msgid "Invalid source protocol" msgstr "Nieprawidłowy protokół źródłowy" -#: src/Content/Text/BBCode.php:1726 +#: src/Content/Text/BBCode.php:1721 msgid "Invalid link protocol" msgstr "Niepoprawny link protokołu" @@ -7466,8 +5252,8 @@ msgstr "Koniec" msgid "Follow" msgstr "Śledź" -#: src/Content/Text/HTML.php:951 src/Model/Item.php:3503 -#: src/Model/Item.php:3514 +#: src/Content/Text/HTML.php:951 src/Model/Item.php:3471 +#: src/Model/Item.php:3482 msgid "Click to open/close" msgstr "Kliknij aby otworzyć/zamknąć" @@ -7533,6 +5319,11 @@ msgstr "Wpisz nazwę lub zainteresowanie" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Przykład: Jan Kowalski, Wędkarstwo" +#: src/Content/Widget.php:65 src/Module/Contact.php:820 +#: src/Module/Directory.php:91 view/theme/vier/theme.php:203 +msgid "Find" +msgstr "Znajdź" + #: src/Content/Widget.php:67 view/theme/vier/theme.php:205 msgid "Similar Interests" msgstr "Podobne zainteresowania" @@ -7545,6 +5336,11 @@ msgstr "Domyślny profil" msgid "Invite Friends" msgstr "Zaproś znajomych" +#: src/Content/Widget.php:70 src/Module/Directory.php:83 +#: view/theme/vier/theme.php:208 +msgid "Global Directory" +msgstr "Katalog globalny" + #: src/Content/Widget.php:72 view/theme/vier/theme.php:210 msgid "Local Directory" msgstr "Katalog lokalny" @@ -7578,81 +5374,39 @@ msgstr[1] "%d wspólne kontakty" msgstr[2] "%d wspólnych kontaktów" msgstr[3] "%dwspólnych kontaktów" -#: src/Core/ACL.php:287 +#: src/Core/ACL.php:288 msgid "Post to Email" msgstr "Prześlij e-mailem" -#: src/Core/ACL.php:293 -msgid "Hide your profile details from unknown viewers?" -msgstr "Ukryć szczegóły twojego profilu przed nieznajomymi?" - -#: src/Core/ACL.php:292 -#, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Wtyczki są wyłączone, ponieważ \"%s\" jest włączone." - -#: src/Core/ACL.php:299 +#: src/Core/ACL.php:300 msgid "Visible to everybody" msgstr "Widoczny dla wszystkich" -#: src/Core/ACL.php:300 view/theme/vier/config.php:116 +#: src/Core/ACL.php:301 view/theme/vier/config.php:116 msgid "show" msgstr "pokaż" -#: src/Core/ACL.php:301 view/theme/vier/config.php:116 +#: src/Core/ACL.php:302 view/theme/vier/config.php:116 msgid "don't show" msgstr "nie pokazuj" #: src/Core/ACL.php:311 +msgid "Connectors" +msgstr "" + +#: src/Core/ACL.php:313 +msgid "Hide your profile details from unknown viewers?" +msgstr "Ukryć szczegóły twojego profilu przed nieznajomymi?" + +#: src/Core/ACL.php:313 +#, php-format +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Wtyczki są wyłączone, ponieważ \"%s\" jest włączone." + +#: src/Core/ACL.php:315 msgid "Close" msgstr "Zamknij" -#: src/Core/Authentication.php:87 -msgid "Welcome " -msgstr "Witaj " - -#: src/Core/Authentication.php:88 -msgid "Please upload a profile photo." -msgstr "Proszę dodać zdjęcie profilowe." - -#: src/Core/Authentication.php:90 -msgid "Welcome back " -msgstr "Witaj ponownie " - -#: src/Core/Console/ArchiveContact.php:65 -#, php-format -msgid "Could not find any unarchived contact entry for this URL (%s)" -msgstr "Nie można znaleźć żadnego wpisu kontaktu zarchiwizowanego dla tego adresu URL (%s)" - -#: src/Core/Console/ArchiveContact.php:70 -msgid "The contact entries have been archived" -msgstr "Wpisy kontaktów zostały zarchiwizowane" - -#: src/Core/Console/NewPassword.php:72 -msgid "Enter new password: " -msgstr "Wprowadź nowe hasło: " - -#: src/Core/Console/PostUpdate.php:50 -#, php-format -msgid "Post update version number has been set to %s." -msgstr "Numer wersji aktualizacji posta został ustawiony na %s." - -#: src/Core/Console/PostUpdate.php:58 -msgid "Check for pending update actions." -msgstr "Sprawdź oczekujące działania aktualizacji." - -#: src/Core/Console/PostUpdate.php:60 -msgid "Done." -msgstr "Gotowe." - -#: src/Core/Console/PostUpdate.php:62 -msgid "Execute pending post updates." -msgstr "Wykonaj oczekujące aktualizacje postów." - -#: src/Core/Console/PostUpdate.php:68 -msgid "All pending post updates are done." -msgstr "Wszystkie oczekujące aktualizacje postów są gotowe." - #: src/Core/Installer.php:164 msgid "" "The database configuration file \"config/local.config.php\" could not be " @@ -7666,8 +5420,8 @@ msgid "" "or mysql." msgstr "Może być konieczne zaimportowanie pliku \"database.sql\" ręcznie, używając phpmyadmin lub mysql." -#: src/Core/Installer.php:184 src/Module/Install.php:132 -#: src/Module/Install.php:263 +#: src/Core/Installer.php:184 src/Module/Install.php:172 +#: src/Module/Install.php:328 msgid "Please see the file \"INSTALL.txt\"." msgstr "Proszę przejrzeć plik \"INSTALL.txt\"." @@ -7683,554 +5437,509 @@ msgid "" "up-the-worker'>'Setup the worker'" msgstr "Jeśli nie masz zainstalowanej na serwerze wersji PHP z wierszem poleceń, nie będziesz mógł uruchomić przetwarzania w tle. Zobacz 'Konfiguracja pracownika'" -#: src/Core/Installer.php:250 +#: src/Core/Installer.php:251 msgid "PHP executable path" msgstr "Ścieżka wykonywalna PHP" -#: src/Core/Installer.php:250 +#: src/Core/Installer.php:251 msgid "" "Enter full path to php executable. You can leave this blank to continue the " "installation." msgstr "Wprowadź pełną ścieżkę do pliku wykonywalnego php. Możesz pozostawić to pole puste, aby kontynuować instalację." -#: src/Core/Installer.php:255 +#: src/Core/Installer.php:256 msgid "Command line PHP" msgstr "Linia komend PHP" -#: src/Core/Installer.php:264 +#: src/Core/Installer.php:265 msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" msgstr "Plik wykonywalny PHP nie jest php cli binarny (może być wersją cgi-fgci)" -#: src/Core/Installer.php:265 +#: src/Core/Installer.php:266 msgid "Found PHP version: " msgstr "Znaleziona wersja PHP: " -#: src/Core/Installer.php:267 +#: src/Core/Installer.php:268 msgid "PHP cli binary" msgstr "PHP cli binarny" -#: src/Core/Installer.php:280 +#: src/Core/Installer.php:281 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "Wersja linii poleceń PHP w twoim systemie nie ma aktywowanego \"register_argc_argv\"." -#: src/Core/Installer.php:281 +#: src/Core/Installer.php:282 msgid "This is required for message delivery to work." msgstr "Jest wymagane, aby dostarczanie wiadomości działało." -#: src/Core/Installer.php:286 +#: src/Core/Installer.php:287 msgid "PHP register_argc_argv" msgstr "PHP register_argc_argv" -#: src/Core/Installer.php:318 +#: src/Core/Installer.php:319 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "Błąd: funkcja \"openssl_pkey_new\" w tym systemie nie jest w stanie wygenerować kluczy szyfrujących" -#: src/Core/Installer.php:319 +#: src/Core/Installer.php:320 msgid "" "If running under Windows, please see " "\"http://www.php.net/manual/en/openssl.installation.php\"." msgstr "Jeśli korzystasz z Windowsa, proszę odwiedzić \"http://www.php.net/manual/en/openssl.installation.php\"." -#: src/Core/Installer.php:322 +#: src/Core/Installer.php:323 msgid "Generate encryption keys" msgstr "Generuj klucz kodowania" -#: src/Core/Installer.php:374 +#: src/Core/Installer.php:375 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "Błąd: moduł Apache webserver mod-rewrite jest potrzebny, jednakże nie jest zainstalowany." -#: src/Core/Installer.php:379 +#: src/Core/Installer.php:380 msgid "Apache mod_rewrite module" msgstr "Moduł Apache mod_rewrite" -#: src/Core/Installer.php:385 +#: src/Core/Installer.php:386 msgid "Error: PDO or MySQLi PHP module required but not installed." msgstr "Błąd: Wymagany moduł PDO lub MySQLi PHP, ale nie zainstalowany." -#: src/Core/Installer.php:390 +#: src/Core/Installer.php:391 msgid "Error: The MySQL driver for PDO is not installed." msgstr "Błąd: Sterownik MySQL dla PDO nie jest zainstalowany." -#: src/Core/Installer.php:394 +#: src/Core/Installer.php:395 msgid "PDO or MySQLi PHP module" msgstr "Moduł PDO lub MySQLi PHP" -#: src/Core/Installer.php:402 +#: src/Core/Installer.php:403 msgid "Error, XML PHP module required but not installed." msgstr "Błąd, wymagany moduł XML PHP, ale nie zainstalowany." -#: src/Core/Installer.php:406 +#: src/Core/Installer.php:407 msgid "XML PHP module" msgstr "Moduł XML PHP" -#: src/Core/Installer.php:409 +#: src/Core/Installer.php:410 msgid "libCurl PHP module" msgstr "Moduł PHP libCurl" -#: src/Core/Installer.php:410 +#: src/Core/Installer.php:411 msgid "Error: libCURL PHP module required but not installed." msgstr "Błąd: libCURL PHP wymagany moduł, lecz nie zainstalowany." -#: src/Core/Installer.php:416 +#: src/Core/Installer.php:417 msgid "GD graphics PHP module" msgstr "Moduł PHP-GD" -#: src/Core/Installer.php:417 +#: src/Core/Installer.php:418 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "Błąd: moduł graficzny GD z PHP potrzebuje wsparcia technicznego JPEG, jednakże on nie jest zainstalowany." -#: src/Core/Installer.php:423 +#: src/Core/Installer.php:424 msgid "OpenSSL PHP module" msgstr "Moduł PHP OpenSSL" -#: src/Core/Installer.php:424 +#: src/Core/Installer.php:425 msgid "Error: openssl PHP module required but not installed." msgstr "Błąd: openssl PHP wymagany moduł, lecz nie zainstalowany." -#: src/Core/Installer.php:430 +#: src/Core/Installer.php:431 msgid "mb_string PHP module" msgstr "Moduł PHP mb_string" -#: src/Core/Installer.php:431 +#: src/Core/Installer.php:432 msgid "Error: mb_string PHP module required but not installed." msgstr "Błąd: moduł PHP mb_string jest wymagany ,ale nie jest zainstalowany." -#: src/Core/Installer.php:437 +#: src/Core/Installer.php:438 msgid "iconv PHP module" msgstr "Moduł PHP iconv" -#: src/Core/Installer.php:438 +#: src/Core/Installer.php:439 msgid "Error: iconv PHP module required but not installed." msgstr "Błąd: wymagany moduł PHP iconv, ale nie zainstalowany." -#: src/Core/Installer.php:444 +#: src/Core/Installer.php:445 msgid "POSIX PHP module" msgstr "Moduł POSIX PHP" -#: src/Core/Installer.php:445 +#: src/Core/Installer.php:446 msgid "Error: POSIX PHP module required but not installed." msgstr "Błąd: wymagany moduł POSIX PHP, ale nie zainstalowany." -#: src/Core/Installer.php:451 +#: src/Core/Installer.php:452 msgid "JSON PHP module" msgstr "Moduł PHP JSON" -#: src/Core/Installer.php:452 +#: src/Core/Installer.php:453 msgid "Error: JSON PHP module required but not installed." msgstr "Błąd: wymagany jest moduł JSON PHP, ale nie jest zainstalowany." -#: src/Core/Installer.php:458 +#: src/Core/Installer.php:459 msgid "File Information PHP module" msgstr "" -#: src/Core/Installer.php:459 +#: src/Core/Installer.php:460 msgid "Error: File Information PHP module required but not installed." msgstr "Błąd: wymagane informacje o pliku Moduł PHP, ale nie jest zainstalowany." -#: src/Core/Installer.php:482 +#: src/Core/Installer.php:483 msgid "" "The web installer needs to be able to create a file called " "\"local.config.php\" in the \"config\" folder of your web server and it is " "unable to do so." msgstr "Instalator internetowy musi mieć możliwość utworzenia pliku o nazwie \"local.config.php\" w folderze \"config\" serwera WWW i nie może tego zrobić." -#: src/Core/Installer.php:483 +#: src/Core/Installer.php:484 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "Jest to najczęściej ustawienie uprawnień, ponieważ serwer sieciowy może nie być w stanie zapisywać plików w folderze - nawet jeśli możesz." -#: src/Core/Installer.php:484 +#: src/Core/Installer.php:485 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named local.config.php in your Friendica \"config\" folder." msgstr "Pod koniec tej procedury otrzymasz tekst do zapisania w pliku o nazwie local.config.php w folderze \"config\" Friendica." -#: src/Core/Installer.php:485 +#: src/Core/Installer.php:486 msgid "" "You can alternatively skip this procedure and perform a manual installation." " Please see the file \"INSTALL.txt\" for instructions." msgstr "Alternatywnie można pominąć tę procedurę i wykonać ręczną instalację. Proszę zobaczyć plik 'INSTALL.txt' z instrukcjami." -#: src/Core/Installer.php:488 +#: src/Core/Installer.php:489 msgid "config/local.config.php is writable" msgstr "config/local.config.php jest zapisywalny" -#: src/Core/Installer.php:508 +#: src/Core/Installer.php:509 msgid "" "Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "Friendica używa silnika szablonów Smarty3 do renderowania swoich widoków. Smarty3 kompiluje szablony do PHP, aby przyspieszyć renderowanie." -#: src/Core/Installer.php:509 +#: src/Core/Installer.php:510 msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory view/smarty3/ under the Friendica top level " "folder." msgstr "Aby przechowywać te skompilowane szablony, serwer WWW musi mieć dostęp do zapisu do katalogu view/smarty3/ w folderze najwyższego poziomu Friendica." -#: src/Core/Installer.php:510 +#: src/Core/Installer.php:511 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has" " write access to this folder." msgstr "Upewnij się, że użytkownik, na którym działa serwer WWW (np. www-data), ma prawo do zapisu do tego folderu." -#: src/Core/Installer.php:511 +#: src/Core/Installer.php:512 msgid "" "Note: as a security measure, you should give the web server write access to " "view/smarty3/ only--not the template files (.tpl) that it contains." msgstr "Uwaga: jako środek bezpieczeństwa, powinieneś dać serwerowi dostęp do zapisu view/smarty3/ jedynie - nie do plików szablonów (.tpl), które zawiera." -#: src/Core/Installer.php:514 +#: src/Core/Installer.php:515 msgid "view/smarty3 is writable" msgstr "view/smarty3 jest zapisywalny" -#: src/Core/Installer.php:543 +#: src/Core/Installer.php:544 msgid "" "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist" " to .htaccess." msgstr "Adres URL zapisany w .htaccess nie działa. Upewnij się, że skopiowano .htaccess-dist do .htaccess." -#: src/Core/Installer.php:545 +#: src/Core/Installer.php:546 msgid "Error message from Curl when fetching" msgstr "Komunikat o błędzie z Curl podczas pobierania" -#: src/Core/Installer.php:550 +#: src/Core/Installer.php:551 msgid "Url rewrite is working" msgstr "Działający adres URL" -#: src/Core/Installer.php:579 +#: src/Core/Installer.php:580 msgid "ImageMagick PHP extension is not installed" msgstr "Rozszerzenie PHP ImageMagick nie jest zainstalowane" -#: src/Core/Installer.php:581 +#: src/Core/Installer.php:582 msgid "ImageMagick PHP extension is installed" msgstr "Rozszerzenie PHP ImageMagick jest zainstalowane" -#: src/Core/Installer.php:583 tests/src/Core/InstallerTest.php:343 -#: tests/src/Core/InstallerTest.php:369 +#: src/Core/Installer.php:584 tests/src/Core/InstallerTest.php:347 +#: tests/src/Core/InstallerTest.php:373 msgid "ImageMagick supports GIF" msgstr "ImageMagick obsługuje GIF" -#: src/Core/Installer.php:608 +#: src/Core/Installer.php:609 msgid "Could not connect to database." msgstr "Nie można połączyć się z bazą danych." -#: src/Core/Installer.php:615 +#: src/Core/Installer.php:616 msgid "Database already in use." msgstr "Baza danych jest już w użyciu." -#: src/Core/L10n.php:368 src/Model/Event.php:397 +#: src/Core/L10n.php:371 src/Model/Event.php:397 msgid "Tuesday" msgstr "Wtorek" -#: src/Core/L10n.php:368 src/Model/Event.php:398 +#: src/Core/L10n.php:371 src/Model/Event.php:398 msgid "Wednesday" msgstr "Środa" -#: src/Core/L10n.php:368 src/Model/Event.php:399 +#: src/Core/L10n.php:371 src/Model/Event.php:399 msgid "Thursday" msgstr "Czwartek" -#: src/Core/L10n.php:368 src/Model/Event.php:400 +#: src/Core/L10n.php:371 src/Model/Event.php:400 msgid "Friday" msgstr "Piątek" -#: src/Core/L10n.php:368 src/Model/Event.php:401 +#: src/Core/L10n.php:371 src/Model/Event.php:401 msgid "Saturday" msgstr "Sobota" -#: src/Core/L10n.php:372 src/Model/Event.php:416 +#: src/Core/L10n.php:375 src/Model/Event.php:416 msgid "January" msgstr "Styczeń" -#: src/Core/L10n.php:372 src/Model/Event.php:417 +#: src/Core/L10n.php:375 src/Model/Event.php:417 msgid "February" msgstr "Luty" -#: src/Core/L10n.php:372 src/Model/Event.php:418 +#: src/Core/L10n.php:375 src/Model/Event.php:418 msgid "March" msgstr "Marzec" -#: src/Core/L10n.php:372 src/Model/Event.php:419 +#: src/Core/L10n.php:375 src/Model/Event.php:419 msgid "April" msgstr "Kwiecień" -#: src/Core/L10n.php:372 src/Core/L10n.php:391 src/Model/Event.php:407 +#: src/Core/L10n.php:375 src/Core/L10n.php:394 src/Model/Event.php:407 msgid "May" msgstr "Maj" -#: src/Core/L10n.php:372 src/Model/Event.php:420 +#: src/Core/L10n.php:375 src/Model/Event.php:420 msgid "June" msgstr "Czerwiec" -#: src/Core/L10n.php:372 src/Model/Event.php:421 +#: src/Core/L10n.php:375 src/Model/Event.php:421 msgid "July" msgstr "Lipiec" -#: src/Core/L10n.php:372 src/Model/Event.php:422 +#: src/Core/L10n.php:375 src/Model/Event.php:422 msgid "August" msgstr "Sierpień" -#: src/Core/L10n.php:372 src/Model/Event.php:423 +#: src/Core/L10n.php:375 src/Model/Event.php:423 msgid "September" msgstr "Wrzesień" -#: src/Core/L10n.php:372 src/Model/Event.php:424 +#: src/Core/L10n.php:375 src/Model/Event.php:424 msgid "October" msgstr "Październik" -#: src/Core/L10n.php:372 src/Model/Event.php:425 +#: src/Core/L10n.php:375 src/Model/Event.php:425 msgid "November" msgstr "Listopad" -#: src/Core/L10n.php:372 src/Model/Event.php:426 +#: src/Core/L10n.php:375 src/Model/Event.php:426 msgid "December" msgstr "Grudzień" -#: src/Core/L10n.php:387 src/Model/Event.php:388 +#: src/Core/L10n.php:390 src/Model/Event.php:388 msgid "Mon" msgstr "Pon" -#: src/Core/L10n.php:387 src/Model/Event.php:389 +#: src/Core/L10n.php:390 src/Model/Event.php:389 msgid "Tue" msgstr "Wt" -#: src/Core/L10n.php:387 src/Model/Event.php:390 +#: src/Core/L10n.php:390 src/Model/Event.php:390 msgid "Wed" msgstr "Śr" -#: src/Core/L10n.php:387 src/Model/Event.php:391 +#: src/Core/L10n.php:390 src/Model/Event.php:391 msgid "Thu" msgstr "Czw" -#: src/Core/L10n.php:387 src/Model/Event.php:392 +#: src/Core/L10n.php:390 src/Model/Event.php:392 msgid "Fri" msgstr "Pt" -#: src/Core/L10n.php:387 src/Model/Event.php:393 +#: src/Core/L10n.php:390 src/Model/Event.php:393 msgid "Sat" msgstr "Sob" -#: src/Core/L10n.php:387 src/Model/Event.php:387 +#: src/Core/L10n.php:390 src/Model/Event.php:387 msgid "Sun" msgstr "Niedz" -#: src/Core/L10n.php:391 src/Model/Event.php:403 +#: src/Core/L10n.php:394 src/Model/Event.php:403 msgid "Jan" msgstr "Sty" -#: src/Core/L10n.php:391 src/Model/Event.php:404 +#: src/Core/L10n.php:394 src/Model/Event.php:404 msgid "Feb" msgstr "Lut" -#: src/Core/L10n.php:391 src/Model/Event.php:405 +#: src/Core/L10n.php:394 src/Model/Event.php:405 msgid "Mar" msgstr "Mar" -#: src/Core/L10n.php:391 src/Model/Event.php:406 +#: src/Core/L10n.php:394 src/Model/Event.php:406 msgid "Apr" msgstr "Kwi" -#: src/Core/L10n.php:391 src/Model/Event.php:409 +#: src/Core/L10n.php:394 src/Model/Event.php:409 msgid "Jul" msgstr "Lip" -#: src/Core/L10n.php:391 src/Model/Event.php:410 +#: src/Core/L10n.php:394 src/Model/Event.php:410 msgid "Aug" msgstr "Sie" -#: src/Core/L10n.php:391 +#: src/Core/L10n.php:394 msgid "Sep" msgstr "Wrz" -#: src/Core/L10n.php:391 src/Model/Event.php:412 +#: src/Core/L10n.php:394 src/Model/Event.php:412 msgid "Oct" msgstr "Paź" -#: src/Core/L10n.php:391 src/Model/Event.php:413 +#: src/Core/L10n.php:394 src/Model/Event.php:413 msgid "Nov" msgstr "Lis" -#: src/Core/L10n.php:391 src/Model/Event.php:414 +#: src/Core/L10n.php:394 src/Model/Event.php:414 msgid "Dec" msgstr "Gru" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poke" msgstr "zaczep" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poked" msgstr "zaczepił Cię" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "ping" msgstr "ping" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "pinged" msgstr "napięcia" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prod" msgstr "zaczep" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prodded" msgstr "zaczepiać" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slap" msgstr "klask" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slapped" msgstr "spoliczkowany" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "finger" msgstr "wskaż" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "fingered" msgstr "dotknięty" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuff" msgstr "odrzuć" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuffed" msgstr "odrzucony" -#: src/Core/NotificationsManager.php:175 +#: src/Core/NotificationsManager.php:144 msgid "System" msgstr "System" -#: src/Core/NotificationsManager.php:265 src/Core/NotificationsManager.php:277 +#: src/Core/NotificationsManager.php:234 src/Core/NotificationsManager.php:246 #, php-format msgid "%s commented on %s's post" msgstr "%s skomentował wpis %s" -#: src/Core/NotificationsManager.php:276 +#: src/Core/NotificationsManager.php:245 #, php-format msgid "%s created a new post" msgstr "%s dodał nowy wpis" -#: src/Core/NotificationsManager.php:290 +#: src/Core/NotificationsManager.php:259 #, php-format msgid "%s liked %s's post" msgstr "%s polubił wpis %s" -#: src/Core/NotificationsManager.php:303 +#: src/Core/NotificationsManager.php:272 #, php-format msgid "%s disliked %s's post" msgstr "%s nie lubi tych %s postów" -#: src/Core/NotificationsManager.php:316 +#: src/Core/NotificationsManager.php:285 #, php-format msgid "%s is attending %s's event" msgstr "%s uczestniczy w wydarzeniu %s" -#: src/Core/NotificationsManager.php:329 +#: src/Core/NotificationsManager.php:298 #, php-format msgid "%s is not attending %s's event" msgstr "%s nie uczestniczy w wydarzeniu %s" -#: src/Core/NotificationsManager.php:342 +#: src/Core/NotificationsManager.php:311 #, php-format msgid "%s may attend %s's event" msgstr "%s może uczestniczyć %s w wydarzeniu" -#: src/Core/NotificationsManager.php:375 +#: src/Core/NotificationsManager.php:344 #, php-format msgid "%s is now friends with %s" msgstr "%s jest teraz znajomym %s" -#: src/Core/NotificationsManager.php:651 +#: src/Core/NotificationsManager.php:622 msgid "Friend Suggestion" msgstr "Propozycja znajomych" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "Friend/Connect Request" msgstr "Prośba o dodanie do przyjaciół/powiązanych" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "New Follower" msgstr "Nowy obserwujący" -#: src/Core/System.php:137 -msgid "Error 400 - Bad Request" -msgstr "Błąd 400 - nieprawidłowe żądanie" +#: src/Core/Session.php:194 +#, php-format +msgid "Welcome %s" +msgstr "Witaj %s" -#: src/Core/System.php:138 -msgid "Error 401 - Unauthorized" -msgstr "Błąd 401 - Nieautoryzowane" +#: src/Core/Session.php:195 +msgid "Please upload a profile photo." +msgstr "Proszę dodać zdjęcie profilowe." -#: src/Core/System.php:139 -msgid "Error 403 - Forbidden" -msgstr "Błąd 403 - Zabroniony" +#: src/Core/Session.php:198 +#, php-format +msgid "Welcome back %s" +msgstr "Witaj ponownie %s" -#: src/Core/System.php:140 -msgid "Error 404 - Not Found" -msgstr "Błąd 404 nie znaleziono" - -#: src/Core/System.php:141 -msgid "Error 500 - Internal Server Error" -msgstr "Błąd 500 - Błąd wewnętrzny serwera" - -#: src/Core/System.php:142 -msgid "Error 503 - Service Unavailable" -msgstr "Błąd 503 Usługa Niedostępna" - -#: src/Core/System.php:150 -msgid "" -"The server cannot or will not process the request due to an apparent client " -"error." -msgstr "Serwer nie może lub nie będzie przetwarzać żądania z powodu widocznego błędu klienta." - -#: src/Core/System.php:151 -msgid "" -"Authentication is required and has failed or has not yet been provided." -msgstr "Uwierzytelnienie jest wymagane i nie powiodło się lub nie zostało jeszcze dostarczone." - -#: src/Core/System.php:152 -msgid "" -"The request was valid, but the server is refusing action. The user might not" -" have the necessary permissions for a resource, or may need an account." -msgstr "Żądanie było ważne, ale serwer odmawia działania. Użytkownik może nie mieć wymaganych uprawnień do zasobu lub może potrzebować konta." - -#: src/Core/System.php:153 -msgid "" -"The requested resource could not be found but may be available in the " -"future." -msgstr "Żądany zasób nie został znaleziony, ale może być dostępny w przyszłości." - -#: src/Core/System.php:154 -msgid "" -"An unexpected condition was encountered and no more specific message is " -"suitable." -msgstr "Napotkano nieoczekiwany warunek i nie jest odpowiedni żaden bardziej szczegółowy komunikat." - -#: src/Core/System.php:155 -msgid "" -"The server is currently unavailable (because it is overloaded or down for " -"maintenance). Please try again later." -msgstr "Serwer jest obecnie niedostępny (ponieważ jest przeciążony lub wyłączony z powodu konserwacji). Spróbuj ponownie później." - -#: src/Core/Update.php:168 +#: src/Core/Update.php:193 #, php-format msgid "Update %s failed. See error logs." msgstr "Aktualizacja %s nie powiodła się. Zobacz dziennik błędów." -#: src/Core/Update.php:225 +#: src/Core/Update.php:257 #, php-format msgid "" "\n" @@ -8240,42 +5949,46 @@ msgid "" "\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." msgstr "\n\t\t\t\tDeweloperzy friendica wydali niedawno aktualizację %s,\n\t\t\t\tale podczas próby instalacji, coś poszło nie tak.\n\t\t\t\tZostanie to naprawione wkrótce i nie mogę tego zrobić sam. Proszę skontaktować się z \n\t\t\t\tprogramistami friendica, jeśli nie możesz mi pomóc na własną rękę. Moja baza danych może być nieprawidłowa." -#: src/Core/Update.php:231 +#: src/Core/Update.php:263 #, php-format msgid "" "The error message is\n" "[pre]%s[/pre]" msgstr "Komunikat o błędzie jest \n[pre]%s[/ pre]" -#: src/Core/Update.php:260 +#: src/Core/Update.php:269 src/Core/Update.php:308 +msgid "[Friendica Notify] Database update" +msgstr "[Powiadomienie Friendica] Aktualizacja bazy danych" + +#: src/Core/Update.php:300 #, php-format msgid "" "\n" "\t\t\t\t\tThe friendica database was successfully updated from %s to %s." msgstr "\n\t\t\t\t\tBaza danych Friendica została pomyślnie zaktualizowana z %s do %s." -#: src/Core/UserImport.php:103 +#: src/Core/UserImport.php:99 msgid "Error decoding account file" msgstr "Błąd podczas odczytu pliku konta" -#: src/Core/UserImport.php:109 +#: src/Core/UserImport.php:105 msgid "Error! No version data in file! This is not a Friendica account file?" msgstr "Błąd! Brak danych wersji w pliku! To nie jest plik konta Friendica?" -#: src/Core/UserImport.php:117 +#: src/Core/UserImport.php:113 #, php-format msgid "User '%s' already exists on this server!" msgstr "Użytkownik '%s' już istnieje na tym serwerze!" -#: src/Core/UserImport.php:153 +#: src/Core/UserImport.php:149 msgid "User creation error" msgstr "Błąd tworzenia użytkownika" -#: src/Core/UserImport.php:171 +#: src/Core/UserImport.php:167 msgid "User profile creation error" msgstr "Błąd tworzenia profilu użytkownika" -#: src/Core/UserImport.php:215 +#: src/Core/UserImport.php:211 #, php-format msgid "%d contact not imported" msgid_plural "%d contacts not imported" @@ -8284,7 +5997,7 @@ msgstr[1] "Nie zaimportowano %d kontaktów" msgstr[2] "Nie zaimportowano %d kontaktów" msgstr[3] "%d kontakty nie zostały zaimportowane " -#: src/Core/UserImport.php:280 +#: src/Core/UserImport.php:276 msgid "Done. You can now login with your username and password" msgstr "Gotowe. Możesz teraz zalogować się z użyciem nazwy użytkownika i hasła" @@ -8319,79 +6032,83 @@ msgstr "%s: aktualizowanie %s tabeli." msgid "Legacy module file not found: %s" msgstr "Nie znaleziono pliku modułu: %s" -#: src/Model/Contact.php:1054 +#: src/Model/Contact.php:1116 msgid "Drop Contact" msgstr "Zakończ znajomość" -#: src/Model/Contact.php:1526 +#: src/Model/Contact.php:1651 msgid "Organisation" msgstr "Organizacja" -#: src/Model/Contact.php:1530 +#: src/Model/Contact.php:1655 msgid "News" msgstr "Aktualności" -#: src/Model/Contact.php:1534 +#: src/Model/Contact.php:1659 msgid "Forum" msgstr "Forum" -#: src/Model/Contact.php:1724 +#: src/Model/Contact.php:1888 msgid "Connect URL missing." msgstr "Brak adresu URL połączenia." -#: src/Model/Contact.php:1733 +#: src/Model/Contact.php:1897 msgid "" "The contact could not be added. Please check the relevant network " "credentials in your Settings -> Social Networks page." msgstr "Nie można dodać kontaktu. Sprawdź odpowiednie poświadczenia sieciowe na stronie Ustawienia -> Sieci społecznościowe." -#: src/Model/Contact.php:1772 +#: src/Model/Contact.php:1938 msgid "" "This site is not configured to allow communications with other networks." msgstr "Ta strona nie jest skonfigurowana do pozwalania na komunikację z innymi sieciami" -#: src/Model/Contact.php:1773 src/Model/Contact.php:1786 +#: src/Model/Contact.php:1939 src/Model/Contact.php:1952 msgid "No compatible communication protocols or feeds were discovered." msgstr "Nie znaleziono żadnych kompatybilnych protokołów komunikacyjnych ani źródeł." -#: src/Model/Contact.php:1784 +#: src/Model/Contact.php:1950 msgid "The profile address specified does not provide adequate information." msgstr "Dany adres profilu nie dostarcza odpowiednich informacji." -#: src/Model/Contact.php:1789 +#: src/Model/Contact.php:1955 msgid "An author or name was not found." msgstr "Autor lub nazwa nie zostało znalezione." -#: src/Model/Contact.php:1792 +#: src/Model/Contact.php:1958 msgid "No browser URL could be matched to this address." msgstr "Przeglądarka WWW nie może odnaleźć podanego adresu" -#: src/Model/Contact.php:1795 +#: src/Model/Contact.php:1961 msgid "" "Unable to match @-style Identity Address with a known protocol or email " "contact." msgstr "Nie można dopasować @-stylu Adres identyfikacyjny ze znanym protokołem lub kontaktem e-mail." -#: src/Model/Contact.php:1796 +#: src/Model/Contact.php:1962 msgid "Use mailto: in front of address to force email check." msgstr "Użyj mailto: przed adresem, aby wymusić sprawdzanie poczty e-mail." -#: src/Model/Contact.php:1802 +#: src/Model/Contact.php:1968 msgid "" "The profile address specified belongs to a network which has been disabled " "on this site." msgstr "Określony adres profilu należy do sieci, która została wyłączona na tej stronie." -#: src/Model/Contact.php:1807 +#: src/Model/Contact.php:1973 msgid "" "Limited profile. This person will be unable to receive direct/personal " "notifications from you." msgstr "Profil ograniczony. Ta osoba będzie niezdolna do odbierania osobistych powiadomień od ciebie." -#: src/Model/Contact.php:1860 +#: src/Model/Contact.php:2027 msgid "Unable to retrieve contact information." msgstr "Nie można otrzymać informacji kontaktowych" +#: src/Model/Event.php:34 src/Model/Event.php:847 src/Module/Localtime.php:17 +msgid "l F d, Y \\@ g:i A" +msgstr "l F d, Y \\@ g:i A" + #: src/Model/Event.php:61 src/Model/Event.php:78 src/Model/Event.php:435 #: src/Model/Event.php:915 msgid "Starts:" @@ -8434,7 +6151,7 @@ msgstr "Zduplikowane zdarzenie" msgid "Delete event" msgstr "Usuń wydarzenie" -#: src/Model/Event.php:626 src/Model/Item.php:3554 src/Model/Item.php:3561 +#: src/Model/Event.php:626 src/Model/Item.php:3522 src/Model/Item.php:3529 msgid "link to source" msgstr "link do źródła" @@ -8468,42 +6185,51 @@ msgstr "Urodziny %s" msgid "Item filed" msgstr "Element złożony" -#: src/Model/Group.php:43 +#: src/Model/Group.php:63 msgid "" "A deleted group with this name was revived. Existing item permissions " "may apply to this group and any future members. If this is " "not what you intended, please create another group with a different name." msgstr "Skasowana grupa o tej nazwie została przywrócona. Istniejące uprawnienia do pozycji mogą dotyczyć tej grupy i wszystkich przyszłych członków. Jeśli nie jest to zamierzone, utwórz inną grupę o innej nazwie." -#: src/Model/Group.php:338 +#: src/Model/Group.php:358 msgid "Default privacy group for new contacts" msgstr "Domyślne ustawienia prywatności dla nowych kontaktów" -#: src/Model/Group.php:370 +#: src/Model/Group.php:390 msgid "Everybody" msgstr "Wszyscy" -#: src/Model/Group.php:390 +#: src/Model/Group.php:410 msgid "edit" msgstr "edytuj" -#: src/Model/Group.php:419 +#: src/Model/Group.php:439 msgid "Edit group" msgstr "Edytuj grupy" -#: src/Model/Group.php:422 +#: src/Model/Group.php:440 src/Module/Group.php:186 +msgid "Contacts not in any group" +msgstr "Kontakt nie jest w żadnej grupie" + +#: src/Model/Group.php:442 msgid "Create a new group" msgstr "Stwórz nową grupę" -#: src/Model/Group.php:424 +#: src/Model/Group.php:443 src/Module/Group.php:171 src/Module/Group.php:194 +#: src/Module/Group.php:271 +msgid "Group Name: " +msgstr "Nazwa grupy: " + +#: src/Model/Group.php:444 msgid "Edit groups" msgstr "Edytuj grupy" -#: src/Model/Item.php:3287 +#: src/Model/Item.php:3257 msgid "activity" msgstr "aktywność" -#: src/Model/Item.php:3289 src/Object/Post.php:471 +#: src/Model/Item.php:3259 src/Object/Post.php:472 msgid "comment" msgid_plural "comments" msgstr[0] "komentarz" @@ -8511,170 +6237,172 @@ msgstr[1] "komentarze" msgstr[2] "komentarze" msgstr[3] "komentarz" -#: src/Model/Item.php:3292 +#: src/Model/Item.php:3262 msgid "post" msgstr "post" -#: src/Model/Item.php:3391 +#: src/Model/Item.php:3361 #, php-format msgid "Content warning: %s" msgstr "Ostrzeżenie o treści: %s" -#: src/Model/Item.php:3470 +#: src/Model/Item.php:3438 msgid "bytes" msgstr "bajty" -#: src/Model/Item.php:3548 +#: src/Model/Item.php:3516 msgid "View on separate page" msgstr "Zobacz na oddzielnej stronie" -#: src/Model/Item.php:3549 +#: src/Model/Item.php:3517 msgid "view on separate page" msgstr "zobacz na oddzielnej stronie" -#: src/Model/Mail.php:40 src/Model/Mail.php:175 +#: src/Model/Mail.php:109 src/Model/Mail.php:244 msgid "[no subject]" msgstr "[bez tematu]" -#: src/Model/Profile.php:115 -msgid "Requested account is not available." -msgstr "Żądane konto jest niedostępne." - -#: src/Model/Profile.php:133 -msgid "Requested profile is not available." -msgstr "Żądany profil jest niedostępny." - -#: src/Model/Profile.php:181 src/Model/Profile.php:425 -#: src/Model/Profile.php:872 +#: src/Model/Profile.php:177 src/Model/Profile.php:421 +#: src/Model/Profile.php:866 msgid "Edit profile" msgstr "Edytuj profil" -#: src/Model/Profile.php:359 +#: src/Model/Profile.php:355 msgid "Atom feed" msgstr "Kanał Atom" -#: src/Model/Profile.php:398 +#: src/Model/Profile.php:394 msgid "Manage/edit profiles" msgstr "Zarządzaj profilami" -#: src/Model/Profile.php:450 src/Module/Contact.php:645 +#: src/Model/Profile.php:443 src/Model/Profile.php:776 +#: src/Module/Directory.php:148 +msgid "Status:" +msgstr "Status:" + +#: src/Model/Profile.php:444 src/Model/Profile.php:793 +#: src/Module/Directory.php:149 +msgid "Homepage:" +msgstr "Strona główna:" + +#: src/Model/Profile.php:446 src/Module/Contact.php:648 msgid "XMPP:" msgstr "XMPP:" -#: src/Model/Profile.php:573 src/Model/Profile.php:671 +#: src/Model/Profile.php:569 src/Model/Profile.php:666 msgid "g A l F d" msgstr "g A I F d" -#: src/Model/Profile.php:574 +#: src/Model/Profile.php:570 msgid "F d" msgstr "F d" -#: src/Model/Profile.php:636 src/Model/Profile.php:722 +#: src/Model/Profile.php:632 src/Model/Profile.php:717 msgid "[today]" msgstr "[dziś]" -#: src/Model/Profile.php:647 +#: src/Model/Profile.php:642 msgid "Birthday Reminders" msgstr "Przypomnienia o urodzinach" -#: src/Model/Profile.php:648 +#: src/Model/Profile.php:643 msgid "Birthdays this week:" msgstr "Urodziny w tym tygodniu:" -#: src/Model/Profile.php:709 +#: src/Model/Profile.php:704 msgid "[No description]" msgstr "[Brak opisu]" -#: src/Model/Profile.php:736 +#: src/Model/Profile.php:730 msgid "Event Reminders" msgstr "Przypominacze wydarzeń" -#: src/Model/Profile.php:737 +#: src/Model/Profile.php:731 msgid "Upcoming events the next 7 days:" msgstr "Nadchodzące wydarzenia w ciągu następnych 7 dni:" -#: src/Model/Profile.php:754 +#: src/Model/Profile.php:748 msgid "Member since:" msgstr "Członek od:" -#: src/Model/Profile.php:762 +#: src/Model/Profile.php:756 msgid "j F, Y" msgstr "d M, R" -#: src/Model/Profile.php:763 +#: src/Model/Profile.php:757 msgid "j F" msgstr "d M" -#: src/Model/Profile.php:771 src/Util/Temporal.php:147 +#: src/Model/Profile.php:765 src/Util/Temporal.php:147 msgid "Birthday:" msgstr "Urodziny:" -#: src/Model/Profile.php:778 +#: src/Model/Profile.php:772 msgid "Age:" msgstr "Wiek:" -#: src/Model/Profile.php:791 +#: src/Model/Profile.php:785 #, php-format msgid "for %1$d %2$s" msgstr "od %1$d %2$s" -#: src/Model/Profile.php:815 +#: src/Model/Profile.php:809 msgid "Religion:" msgstr "Religia:" -#: src/Model/Profile.php:823 +#: src/Model/Profile.php:817 msgid "Hobbies/Interests:" msgstr "Hobby/Zainteresowania:" -#: src/Model/Profile.php:835 +#: src/Model/Profile.php:829 msgid "Contact information and Social Networks:" msgstr "Informacje kontaktowe i sieci społecznościowe:" -#: src/Model/Profile.php:839 +#: src/Model/Profile.php:833 msgid "Musical interests:" msgstr "Zainteresowania muzyczne:" -#: src/Model/Profile.php:843 +#: src/Model/Profile.php:837 msgid "Books, literature:" msgstr "Książki, literatura:" -#: src/Model/Profile.php:847 +#: src/Model/Profile.php:841 msgid "Television:" msgstr "Telewizja:" -#: src/Model/Profile.php:851 +#: src/Model/Profile.php:845 msgid "Film/dance/culture/entertainment:" msgstr "Film/taniec/kultura/rozrywka:" -#: src/Model/Profile.php:855 +#: src/Model/Profile.php:849 msgid "Love/Romance:" msgstr "Miłość/Romans:" -#: src/Model/Profile.php:859 +#: src/Model/Profile.php:853 msgid "Work/employment:" msgstr "Praca/zatrudnienie:" -#: src/Model/Profile.php:863 +#: src/Model/Profile.php:857 msgid "School/education:" msgstr "Szkoła/edukacja:" -#: src/Model/Profile.php:868 +#: src/Model/Profile.php:862 msgid "Forums:" msgstr "Fora:" -#: src/Model/Profile.php:912 src/Module/Contact.php:872 +#: src/Model/Profile.php:906 src/Module/Contact.php:875 msgid "Profile Details" msgstr "Szczegóły profilu" -#: src/Model/Profile.php:962 +#: src/Model/Profile.php:956 msgid "Only You Can See This" msgstr "Tylko ty możesz to zobaczyć" -#: src/Model/Profile.php:970 src/Model/Profile.php:973 +#: src/Model/Profile.php:964 src/Model/Profile.php:967 msgid "Tips for New Members" msgstr "Wskazówki dla nowych użytkowników" -#: src/Model/Profile.php:1150 +#: src/Model/Profile.php:1167 #, php-format msgid "OpenWebAuth: %1$s welcomes %2$s" msgstr "OpenWebAuth: %1$s wita %2$s" @@ -8714,71 +6442,71 @@ msgstr "Folder, w którym zapisywane są przesłane pliki. Dla maksymalnego bezp msgid "Enter a valid existing folder" msgstr "Wprowadź poprawny istniejący folder" -#: src/Model/User.php:271 +#: src/Model/User.php:298 msgid "Login failed" msgstr "Logowanie nieudane" -#: src/Model/User.php:302 +#: src/Model/User.php:329 msgid "Not enough information to authenticate" msgstr "Za mało informacji do uwierzytelnienia" -#: src/Model/User.php:380 +#: src/Model/User.php:407 msgid "Password can't be empty" msgstr "Hasło nie może być puste" -#: src/Model/User.php:399 +#: src/Model/User.php:426 msgid "Empty passwords are not allowed." msgstr "Puste hasła są niedozwolone." -#: src/Model/User.php:403 +#: src/Model/User.php:430 msgid "" "The new password has been exposed in a public data dump, please choose " "another." msgstr "Nowe hasło zostało ujawnione w publicznym zrzucie danych, wybierz inne." -#: src/Model/User.php:409 +#: src/Model/User.php:436 msgid "" "The password can't contain accentuated letters, white spaces or colons (:)" msgstr "Hasło nie może zawierać podkreślonych liter, białych spacji ani dwukropków (:)" -#: src/Model/User.php:509 +#: src/Model/User.php:536 msgid "Passwords do not match. Password unchanged." msgstr "Hasła nie pasują do siebie. Hasło niezmienione." -#: src/Model/User.php:516 +#: src/Model/User.php:543 msgid "An invitation is required." msgstr "Wymagane zaproszenie." -#: src/Model/User.php:520 +#: src/Model/User.php:547 msgid "Invitation could not be verified." msgstr "Zaproszenie niezweryfikowane." -#: src/Model/User.php:527 +#: src/Model/User.php:554 msgid "Invalid OpenID url" msgstr "Nieprawidłowy adres url OpenID" -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "Napotkaliśmy problem podczas logowania z podanym przez nas identyfikatorem OpenID. Sprawdź poprawną pisownię identyfikatora." -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "The error message was:" msgstr "Komunikat o błędzie:" -#: src/Model/User.php:546 +#: src/Model/User.php:573 msgid "Please enter the required information." msgstr "Wprowadź wymagane informacje." -#: src/Model/User.php:560 +#: src/Model/User.php:587 #, php-format msgid "" "system.username_min_length (%s) and system.username_max_length (%s) are " "excluding each other, swapping values." msgstr "system.username_min_length (%s) i system.username_max_length (%s) wykluczają się nawzajem, zamieniając wartości." -#: src/Model/User.php:567 +#: src/Model/User.php:594 #, php-format msgid "Username should be at least %s character." msgid_plural "Username should be at least %s characters." @@ -8787,7 +6515,7 @@ msgstr[1] "Nazwa użytkownika powinna wynosić co najmniej %s znaków." msgstr[2] "Nazwa użytkownika powinna wynosić co najmniej %s znaków." msgstr[3] "Nazwa użytkownika powinna wynosić co najmniej %s znaków." -#: src/Model/User.php:571 +#: src/Model/User.php:598 #, php-format msgid "Username should be at most %s character." msgid_plural "Username should be at most %s characters." @@ -8796,60 +6524,60 @@ msgstr[1] "Nazwa użytkownika nie może mieć więcej niż %s znaków." msgstr[2] "Nazwa użytkownika nie może mieć więcej niż %s znaków." msgstr[3] "Nazwa użytkownika nie może mieć więcej niż %s znaków." -#: src/Model/User.php:579 +#: src/Model/User.php:606 msgid "That doesn't appear to be your full (First Last) name." msgstr "Wydaje mi się, że to nie jest twoje pełne imię (pierwsze imię) i nazwisko." -#: src/Model/User.php:584 +#: src/Model/User.php:611 msgid "Your email domain is not among those allowed on this site." msgstr "Twoja domena internetowa nie jest obsługiwana na tej stronie." -#: src/Model/User.php:588 +#: src/Model/User.php:615 msgid "Not a valid email address." msgstr "Niepoprawny adres e mail.." -#: src/Model/User.php:591 +#: src/Model/User.php:618 msgid "The nickname was blocked from registration by the nodes admin." msgstr "Pseudonim został zablokowany przed rejestracją przez administratora węzłów." -#: src/Model/User.php:595 src/Model/User.php:603 +#: src/Model/User.php:622 src/Model/User.php:630 msgid "Cannot use that email." msgstr "Nie można użyć tego e-maila." -#: src/Model/User.php:610 +#: src/Model/User.php:637 msgid "Your nickname can only contain a-z, 0-9 and _." msgstr "Twój pseudonim może zawierać tylko a-z, 0-9 i _." -#: src/Model/User.php:617 src/Model/User.php:674 +#: src/Model/User.php:644 src/Model/User.php:701 msgid "Nickname is already registered. Please choose another." msgstr "Ten login jest zajęty. Wybierz inny." -#: src/Model/User.php:627 +#: src/Model/User.php:654 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "POWAŻNY BŁĄD: niepowodzenie podczas tworzenia kluczy zabezpieczeń." -#: src/Model/User.php:661 src/Model/User.php:665 +#: src/Model/User.php:688 src/Model/User.php:692 msgid "An error occurred during registration. Please try again." msgstr "Wystąpił bład podczas rejestracji, Spróbuj ponownie." -#: src/Model/User.php:685 view/theme/duepuntozero/config.php:55 +#: src/Model/User.php:712 view/theme/duepuntozero/config.php:55 msgid "default" msgstr "standardowe" -#: src/Model/User.php:690 +#: src/Model/User.php:717 msgid "An error occurred creating your default profile. Please try again." msgstr "Wystąpił błąd podczas tworzenia profilu. Spróbuj ponownie." -#: src/Model/User.php:697 +#: src/Model/User.php:724 msgid "An error occurred creating your self contact. Please try again." msgstr "Wystąpił błąd podczas tworzenia własnego kontaktu. Proszę spróbuj ponownie." -#: src/Model/User.php:706 +#: src/Model/User.php:733 msgid "" "An error occurred creating your default contact group. Please try again." msgstr "Wystąpił błąd podczas tworzenia domyślnej grupy kontaktów. Proszę spróbuj ponownie." -#: src/Model/User.php:782 +#: src/Model/User.php:809 #, php-format msgid "" "\n" @@ -8864,12 +6592,12 @@ msgid "" "\t\t" msgstr "\n\t\t\tSzanowny Użytkowniku %1$s,\n\t\t\t\tDziękujemy za rejestrację na stronie %2$s. Twoje konto czeka na zatwierdzenie przez administratora.\n\n\t\t\tTwoje dane do logowania są następujące:\n\n\t\t\tLokalizacja witryny:\t%3$s\n\t\t\tNazwa użytkownika:\t\t%4$s\n\t\t\tHasło:\t\t%5$s\n\t\t" -#: src/Model/User.php:799 +#: src/Model/User.php:826 #, php-format msgid "Registration at %s" msgstr "Rejestracja w %s" -#: src/Model/User.php:818 +#: src/Model/User.php:845 #, php-format msgid "" "\n" @@ -8878,7 +6606,7 @@ msgid "" "\t\t" msgstr "\n\t\t\tSzanowny(-a) %1$s,\n\t\t\t\tDziękujemy za rejestrację na stronie %2$s. Twoje konto zostało utworzone." -#: src/Model/User.php:824 +#: src/Model/User.php:851 #, php-format msgid "" "\n" @@ -8910,10 +6638,2054 @@ msgid "" "\t\t\tThank you and welcome to %2$s." msgstr "\n\t\t\tDane logowania są następuje:\n\t\t\tLokalizacja witryny:\t%3$s\n\t\t\tNazwa użytkownika:\t\t%1$s\n\t\t\tHasło:\t\t%5$s\n\n\t\t\tPo zalogowaniu możesz zmienić hasło do swojego konta na stronie \"Ustawienia\".\n \t\t\tProszę poświęć chwilę, aby przejrzeć inne ustawienia konta na tej stronie.\n\n\t\t\tMożesz również dodać podstawowe informacje do swojego domyślnego profilu\n\t\t\t(na stronie \"Profil użytkownika\"), aby inne osoby mogły łatwo Cię znaleźć.\n\n\t\t\tZalecamy ustawienie imienia i nazwiska, dodanie zdjęcia profilowego,\n\t\t\tdodanie niektórych \"słów kluczowych\" profilu (bardzo przydatne w nawiązywaniu nowych znajomości) \n\t\t\ti być może gdzie mieszkasz; jeśli nie chcesz podać więcej szczegów.\n\n\t\t\tW pełni szanujemy Twoje prawo do prywatności i żaden z tych elementów nie jest konieczny.\n\t\t\tJeśli jesteś nowy i nie znasz tutaj nikogo, oni mogą ci pomóc\n\t\t\tmożesz zdobyć nowych interesujących przyjaciół.\n\n\t\t\tJeśli kiedykolwiek zechcesz usunąć swoje konto, możesz to zrobić na stronie %3$s/removeme\n\n\t\t\tDziękujemy i Zapraszamy do %2$s." +#: src/Model/User.php:886 src/Module/Admin/Users.php:88 +#, php-format +msgid "Registration details for %s" +msgstr "Szczegóły rejestracji dla %s" + +#: src/Module/Admin/Addons/Details.php:51 +msgid "Addon not found." +msgstr "Nie znaleziono dodatku." + +#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:32 +#, php-format +msgid "Addon %s disabled." +msgstr "Dodatek %s wyłączony." + +#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:34 +#, php-format +msgid "Addon %s enabled." +msgstr "Dodatek %s włączony." + +#: src/Module/Admin/Addons/Details.php:76 +#: src/Module/Admin/Themes/Details.php:60 +msgid "Disable" +msgstr "Wyłącz" + +#: src/Module/Admin/Addons/Details.php:79 +#: src/Module/Admin/Themes/Details.php:63 +msgid "Enable" +msgstr "Zezwól" + +#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50 +#: src/Module/Admin/Blocklist/Contact.php:60 +#: src/Module/Admin/Blocklist/Server.php:73 +#: src/Module/Admin/Federation.php:185 src/Module/Admin/Item/Delete.php:46 +#: src/Module/Admin/Logs/Settings.php:57 src/Module/Admin/Logs/View.php:46 +#: src/Module/Admin/Queue.php:56 src/Module/Admin/Site.php:568 +#: src/Module/Admin/Summary.php:160 src/Module/Admin/Themes/Details.php:104 +#: src/Module/Admin/Themes/Index.php:93 src/Module/Admin/Tos.php:42 +#: src/Module/Admin/Users.php:277 +msgid "Administration" +msgstr "Administracja" + +#: src/Module/Admin/Addons/Details.php:101 +#: src/Module/Admin/Themes/Details.php:106 +msgid "Toggle" +msgstr "Włącz" + +#: src/Module/Admin/Addons/Details.php:109 +#: src/Module/Admin/Themes/Details.php:115 +msgid "Author: " +msgstr "Autor: " + +#: src/Module/Admin/Addons/Details.php:110 +#: src/Module/Admin/Themes/Details.php:116 +msgid "Maintainer: " +msgstr "Opiekun: " + +#: src/Module/Admin/Addons/Index.php:36 +#, php-format +msgid "Addon %s failed to install." +msgstr "Instalacja dodatku %s nie powiodła się." + +#: src/Module/Admin/Addons/Index.php:53 +msgid "Reload active addons" +msgstr "Załaduj ponownie aktywne dodatki" + +#: src/Module/Admin/Addons/Index.php:58 +#, php-format +msgid "" +"There are currently no addons available on your node. You can find the " +"official addon repository at %1$s and might find other interesting addons in" +" the open addon registry at %2$s" +msgstr "W twoim węźle nie ma obecnie żadnych dodatków. Możesz znaleźć oficjalne repozytorium dodatków na %1$s i możesz znaleźć inne interesujące dodatki w otwartym rejestrze dodatków na %2$s" + +#: src/Module/Admin/Blocklist/Contact.php:37 +#, php-format +msgid "%s contact unblocked" +msgid_plural "%s contacts unblocked" +msgstr[0] "%s kontakt odblokowany" +msgstr[1] "%s kontakty odblokowane" +msgstr[2] "%s kontaktów odblokowanych" +msgstr[3] "%s kontaktów odblokowanych" + +#: src/Module/Admin/Blocklist/Contact.php:61 +msgid "Remote Contact Blocklist" +msgstr "Lista zablokowanych kontaktów zdalnych" + +#: src/Module/Admin/Blocklist/Contact.php:62 +msgid "" +"This page allows you to prevent any message from a remote contact to reach " +"your node." +msgstr "Ta strona pozwala zapobiec wysyłaniu do węzła wiadomości od kontaktu zdalnego." + +#: src/Module/Admin/Blocklist/Contact.php:63 +msgid "Block Remote Contact" +msgstr "Zablokuj kontakt zdalny" + +#: src/Module/Admin/Blocklist/Contact.php:64 src/Module/Admin/Users.php:280 +msgid "select all" +msgstr "zaznacz wszystko" + +#: src/Module/Admin/Blocklist/Contact.php:65 +msgid "select none" +msgstr "wybierz brak" + +#: src/Module/Admin/Blocklist/Contact.php:67 src/Module/Admin/Users.php:291 +#: src/Module/Contact.php:624 src/Module/Contact.php:827 +#: src/Module/Contact.php:1080 +msgid "Unblock" +msgstr "Odblokuj" + +#: src/Module/Admin/Blocklist/Contact.php:68 +msgid "No remote contact is blocked from this node." +msgstr "Z tego węzła nie jest blokowany kontakt zdalny." + +#: src/Module/Admin/Blocklist/Contact.php:70 +msgid "Blocked Remote Contacts" +msgstr "Zablokowane kontakty zdalne" + +#: src/Module/Admin/Blocklist/Contact.php:71 +msgid "Block New Remote Contact" +msgstr "Zablokuj nowy kontakt zdalny" + +#: src/Module/Admin/Blocklist/Contact.php:72 +msgid "Photo" +msgstr "Zdjęcie" + +#: src/Module/Admin/Blocklist/Contact.php:80 +#, php-format +msgid "%s total blocked contact" +msgid_plural "%s total blocked contacts" +msgstr[0] "łącznie %s zablokowany kontakt" +msgstr[1] "łącznie %s zablokowane kontakty" +msgstr[2] "łącznie %s zablokowanych kontaktów" +msgstr[3] "%s całkowicie zablokowane kontakty" + +#: src/Module/Admin/Blocklist/Contact.php:82 +msgid "URL of the remote contact to block." +msgstr "Adres URL kontaktu zdalnego do zablokowania." + +#: src/Module/Admin/Blocklist/Server.php:31 +msgid "Server added to blocklist." +msgstr "Serwer dodany do listy zablokowanych." + +#: src/Module/Admin/Blocklist/Server.php:47 +msgid "Site blocklist updated." +msgstr "Zaktualizowano listę bloków witryny." + +#: src/Module/Admin/Blocklist/Server.php:64 +msgid "The blocked domain" +msgstr "Zablokowana domena" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:84 src/Module/Friendica.php:60 +msgid "Reason for the block" +msgstr "Powód blokowania" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "The reason why you blocked this domain." +msgstr "Powód zablokowania tej domeny." + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Delete domain" +msgstr "Usuń domenę" + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Check to delete this entry from the blocklist" +msgstr "Zaznacz, aby usunąć ten wpis z listy bloków" + +#: src/Module/Admin/Blocklist/Server.php:74 src/Module/BaseAdminModule.php:94 +msgid "Server Blocklist" +msgstr "Lista zablokowanych serwerów" + +#: src/Module/Admin/Blocklist/Server.php:75 +msgid "" +"This page can be used to define a black list of servers from the federated " +"network that are not allowed to interact with your node. For all entered " +"domains you should also give a reason why you have blocked the remote " +"server." +msgstr "Na tej stronie można zdefiniować czarną listę serwerów ze stowarzyszonej sieci, które nie mogą współdziałać z danym węzłem. Dla wszystkich wprowadzonych domen powinieneś podać powód, dla którego zablokowałeś serwer zdalny." + +#: src/Module/Admin/Blocklist/Server.php:76 +msgid "" +"The list of blocked servers will be made publically available on the " +"/friendica page so that your users and people investigating communication " +"problems can find the reason easily." +msgstr "Lista zablokowanych serwerów zostanie publicznie udostępniona na stronie /friendica, dzięki czemu użytkownicy i osoby badające problemy z komunikacją mogą łatwo znaleźć przyczynę." + +#: src/Module/Admin/Blocklist/Server.php:77 +msgid "Add new entry to block list" +msgstr "Dodaj nowy wpis do listy bloków" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "Server Domain" +msgstr "Domena serwera" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "" +"The domain of the new server to add to the block list. Do not include the " +"protocol." +msgstr "Domena nowego serwera do dodania do listy bloków. Nie dołączaj protokołu." + +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "Block reason" +msgstr "Powód zablokowania" + +#: src/Module/Admin/Blocklist/Server.php:80 +msgid "Add Entry" +msgstr "Dodaj wpis" + +#: src/Module/Admin/Blocklist/Server.php:81 +msgid "Save changes to the blocklist" +msgstr "Zapisz zmiany w liście zablokowanych" + +#: src/Module/Admin/Blocklist/Server.php:82 +msgid "Current Entries in the Blocklist" +msgstr "Aktualne wpisy na liście zablokowanych" + +#: src/Module/Admin/Blocklist/Server.php:85 +msgid "Delete entry from blocklist" +msgstr "Usuń wpis z listy zablokowanych" + +#: src/Module/Admin/Blocklist/Server.php:88 +msgid "Delete entry from blocklist?" +msgstr "Usunąć wpis z listy zablokowanych?" + +#: src/Module/Admin/DBSync.php:32 +msgid "Update has been marked successful" +msgstr "Aktualizacja została oznaczona jako udana" + +#: src/Module/Admin/DBSync.php:42 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "Pomyślnie zastosowano aktualizację %s struktury bazy danych." + +#: src/Module/Admin/DBSync.php:46 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "Wykonanie aktualizacji %s struktury bazy danych nie powiodło się z powodu błędu:%s" + +#: src/Module/Admin/DBSync.php:63 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "Wykonanie %s nie powiodło się z powodu błędu:%s" + +#: src/Module/Admin/DBSync.php:65 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Aktualizacja %s została pomyślnie zastosowana." + +#: src/Module/Admin/DBSync.php:68 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Aktualizacja %s nie zwróciła statusu. Nieznane, jeśli się udało." + +#: src/Module/Admin/DBSync.php:71 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "Nie było dodatkowej funkcji %s aktualizacji, która musiała zostać wywołana." + +#: src/Module/Admin/DBSync.php:91 +msgid "No failed updates." +msgstr "Brak błędów aktualizacji." + +#: src/Module/Admin/DBSync.php:92 +msgid "Check database structure" +msgstr "Sprawdź strukturę bazy danych" + +#: src/Module/Admin/DBSync.php:97 +msgid "Failed Updates" +msgstr "Błąd aktualizacji" + +#: src/Module/Admin/DBSync.php:98 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "Nie dotyczy to aktualizacji przed 1139, który nie zwrócił statusu." + +#: src/Module/Admin/DBSync.php:99 +msgid "Mark success (if update was manually applied)" +msgstr "Oznacz sukces (jeśli aktualizacja została ręcznie zastosowana)" + +#: src/Module/Admin/DBSync.php:100 +msgid "Attempt to execute this update step automatically" +msgstr "Spróbuj automatycznie wykonać ten krok aktualizacji" + +#: src/Module/Admin/Features.php:59 +#, php-format +msgid "Lock feature %s" +msgstr "Funkcja blokady %s" + +#: src/Module/Admin/Features.php:67 +msgid "Manage Additional Features" +msgstr "Zarządzanie dodatkowymi funkcjami" + +#: src/Module/Admin/Federation.php:76 +msgid "unknown" +msgstr "nieznany" + +#: src/Module/Admin/Federation.php:179 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "Ta strona zawiera kilka numerów do znanej części federacyjnej sieci społecznościowej, do której należy Twój węzeł Friendica. Liczby te nie są kompletne, ale odzwierciedlają tylko część sieci, o której wie twój węzeł." + +#: src/Module/Admin/Federation.php:180 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "Funkcja Katalog kontaktów automatycznie odkrytych nie jest włączona, poprawi ona wyświetlane tutaj dane." + +#: src/Module/Admin/Federation.php:186 src/Module/BaseAdminModule.php:77 +msgid "Federation Statistics" +msgstr "Statystyki Organizacji" + +#: src/Module/Admin/Federation.php:192 +#, php-format +msgid "" +"Currently this node is aware of %d nodes with %d registered users from the " +"following platforms:" +msgstr "Obecnie węzeł ten jest świadomy %dwęzłów z %d zarejestrowanymi użytkownikami z następujących platform:" + +#: src/Module/Admin/Item/Delete.php:35 +msgid "Item marked for deletion." +msgstr "Przedmiot oznaczony do usunięcia." + +#: src/Module/Admin/Item/Delete.php:47 src/Module/BaseAdminModule.php:95 +msgid "Delete Item" +msgstr "Usuń przedmiot" + +#: src/Module/Admin/Item/Delete.php:48 +msgid "Delete this Item" +msgstr "Usuń ten przedmiot" + +#: src/Module/Admin/Item/Delete.php:49 +msgid "" +"On this page you can delete an item from your node. If the item is a top " +"level posting, the entire thread will be deleted." +msgstr "Na tej stronie możesz usunąć przedmiot ze swojego węzła. Jeśli element jest publikowaniem na najwyższym poziomie, cały wątek zostanie usunięty." + +#: src/Module/Admin/Item/Delete.php:50 +msgid "" +"You need to know the GUID of the item. You can find it e.g. by looking at " +"the display URL. The last part of http://example.com/display/123456 is the " +"GUID, here 123456." +msgstr "Musisz znać identyfikator GUID tego przedmiotu. Możesz go znaleźć np. patrząc na wyświetlany adres URL. Ostatnia część http://example.com/display/123456 to GUID, tutaj 123456." + +#: src/Module/Admin/Item/Delete.php:51 +msgid "GUID" +msgstr "GUID" + +#: src/Module/Admin/Item/Delete.php:51 +msgid "The GUID of the item you want to delete." +msgstr "Identyfikator elementu GUID, który chcesz usunąć." + +#: src/Module/Admin/Item/Source.php:46 src/Module/Itemsource.php:46 +msgid "Item Guid" +msgstr "Element Guid" + +#: src/Module/Admin/Logs/Settings.php:30 +msgid "Log settings updated." +msgstr "Zaktualizowano ustawienia logów." + +#: src/Module/Admin/Logs/Settings.php:49 +msgid "PHP log currently enabled." +msgstr "Dziennik PHP jest obecnie włączony." + +#: src/Module/Admin/Logs/Settings.php:51 +msgid "PHP log currently disabled." +msgstr "Dziennik PHP jest obecnie wyłączony." + +#: src/Module/Admin/Logs/Settings.php:58 src/Module/BaseAdminModule.php:97 +#: src/Module/BaseAdminModule.php:98 +msgid "Logs" +msgstr "Logi" + +#: src/Module/Admin/Logs/Settings.php:60 +msgid "Clear" +msgstr "Wyczyść" + +#: src/Module/Admin/Logs/Settings.php:64 +msgid "Enable Debugging" +msgstr "Włącz debugowanie" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "Log file" +msgstr "Plik logów" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Musi być zapisywalny przez serwer sieciowy. W stosunku do katalogu najwyższego poziomu Friendica." + +#: src/Module/Admin/Logs/Settings.php:66 +msgid "Log level" +msgstr "Poziom logów" + +#: src/Module/Admin/Logs/Settings.php:68 +msgid "PHP logging" +msgstr "Logowanie w PHP" + +#: src/Module/Admin/Logs/Settings.php:69 +msgid "" +"To temporarily enable logging of PHP errors and warnings you can prepend the" +" following to the index.php file of your installation. The filename set in " +"the 'error_log' line is relative to the friendica top-level directory and " +"must be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "Aby tymczasowo włączyć rejestrowanie błędów i ostrzeżeń PHP, możesz dołączyć do pliku index.php swojej instalacji. Nazwa pliku ustawiona w linii 'error_log' odnosi się do katalogu najwyższego poziomu friendiki i musi być zapisywalna przez serwer WWW. Opcja '1' dla 'log_errors' i 'display_errors' polega na włączeniu tych opcji, ustawieniu na '0', aby je wyłączyć." + +#: src/Module/Admin/Logs/View.php:22 +#, php-format +msgid "" +"Error trying to open %1$s log file.\\r\\n
    Check to see " +"if file %1$s exist and is readable." +msgstr "Błąd podczas próby otwarcia %1$s pliku dziennika. \\r\\n
    Sprawdź, czy plik %1$s istnieje i czy można go odczytać." + +#: src/Module/Admin/Logs/View.php:26 +#, php-format +msgid "" +"Couldn't open %1$s log file.\\r\\n
    Check to see if file" +" %1$s is readable." +msgstr "Nie można otworzyć %1$spliku dziennika. \\r\\n
    Sprawdź, czy plik %1$s jest czytelny." + +#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99 +msgid "View Logs" +msgstr "Zobacz rejestry" + +#: src/Module/Admin/Queue.php:34 +msgid "Inspect Deferred Worker Queue" +msgstr "Sprawdź kolejkę odroczonych pracowników" + +#: src/Module/Admin/Queue.php:35 +msgid "" +"This page lists the deferred worker jobs. This are jobs that couldn't be " +"executed at the first time." +msgstr "Ta strona zawiera listę zadań opóźnionych pracowników. Są to zadania, które nie mogą być wykonywane po raz pierwszy." + +#: src/Module/Admin/Queue.php:38 +msgid "Inspect Worker Queue" +msgstr "Sprawdź Kolejkę Pracowników" + +#: src/Module/Admin/Queue.php:39 +msgid "" +"This page lists the currently queued worker jobs. These jobs are handled by " +"the worker cronjob you've set up during install." +msgstr "Ta strona zawiera listę aktualnie ustawionych zadań dla pracowników. Te zadania są obsługiwane przez cronjob pracownika, który skonfigurowałeś podczas instalacji." + +#: src/Module/Admin/Queue.php:59 +msgid "ID" +msgstr "ID" + +#: src/Module/Admin/Queue.php:60 +msgid "Job Parameters" +msgstr "Parametry zadania" + +#: src/Module/Admin/Queue.php:61 +msgid "Created" +msgstr "Utwórz" + +#: src/Module/Admin/Queue.php:62 +msgid "Priority" +msgstr "Priorytet" + +#: src/Module/Admin/Site.php:49 +msgid "Can not parse base url. Must have at least ://" +msgstr "Nie można zanalizować podstawowego adresu URL. Musi mieć co najmniej : //" + +#: src/Module/Admin/Site.php:235 +msgid "Invalid storage backend setting value." +msgstr "" + +#: src/Module/Admin/Site.php:412 +msgid "Site settings updated." +msgstr "Zaktualizowano ustawienia strony." + +#: src/Module/Admin/Site.php:464 +msgid "No community page for local users" +msgstr "Brak strony społeczności dla użytkowników lokalnych" + +#: src/Module/Admin/Site.php:465 +msgid "No community page" +msgstr "Brak strony społeczności" + +#: src/Module/Admin/Site.php:466 +msgid "Public postings from users of this site" +msgstr "Publikacje publiczne od użytkowników tej strony" + +#: src/Module/Admin/Site.php:467 +msgid "Public postings from the federated network" +msgstr "Publikacje wpisy ze sfederowanej sieci" + +#: src/Module/Admin/Site.php:468 +msgid "Public postings from local users and the federated network" +msgstr "Publikacje publiczne od użytkowników lokalnych i sieci federacyjnej" + +#: src/Module/Admin/Site.php:472 src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:678 src/Module/Contact.php:549 +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Disabled" +msgstr "Wyłączony" + +#: src/Module/Admin/Site.php:473 src/Module/Admin/Users.php:278 +#: src/Module/Admin/Users.php:295 src/Module/BaseAdminModule.php:81 +msgid "Users" +msgstr "Użytkownicy" + +#: src/Module/Admin/Site.php:474 +msgid "Users, Global Contacts" +msgstr "Użytkownicy, kontakty globalne" + +#: src/Module/Admin/Site.php:475 +msgid "Users, Global Contacts/fallback" +msgstr "Użytkownicy, kontakty globalne/awaryjne" + +#: src/Module/Admin/Site.php:479 +msgid "One month" +msgstr "Miesiąc" + +#: src/Module/Admin/Site.php:480 +msgid "Three months" +msgstr "Trzy miesiące" + +#: src/Module/Admin/Site.php:481 +msgid "Half a year" +msgstr "Pół roku" + +#: src/Module/Admin/Site.php:482 +msgid "One year" +msgstr "Rok" + +#: src/Module/Admin/Site.php:488 +msgid "Multi user instance" +msgstr "Tryb wielu użytkowników" + +#: src/Module/Admin/Site.php:510 +msgid "Closed" +msgstr "Zamknięte" + +#: src/Module/Admin/Site.php:511 +msgid "Requires approval" +msgstr "Wymaga zatwierdzenia" + +#: src/Module/Admin/Site.php:512 +msgid "Open" +msgstr "Otwarta" + +#: src/Module/Admin/Site.php:516 src/Module/Install.php:181 +msgid "No SSL policy, links will track page SSL state" +msgstr "Brak SSL, linki będą śledzić stan SSL" + +#: src/Module/Admin/Site.php:517 src/Module/Install.php:182 +msgid "Force all links to use SSL" +msgstr "Wymuś używanie SSL na wszystkich odnośnikach" + +#: src/Module/Admin/Site.php:518 src/Module/Install.php:183 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Wewnętrzne Certyfikaty, użyj SSL tylko dla linków lokalnych . " + +#: src/Module/Admin/Site.php:522 +msgid "Don't check" +msgstr "Nie sprawdzaj" + +#: src/Module/Admin/Site.php:523 +msgid "check the stable version" +msgstr "sprawdź wersję stabilną" + +#: src/Module/Admin/Site.php:524 +msgid "check the development version" +msgstr "sprawdź wersję rozwojową" + +#: src/Module/Admin/Site.php:544 +msgid "Database (legacy)" +msgstr "" + +#: src/Module/Admin/Site.php:569 src/Module/BaseAdminModule.php:80 +msgid "Site" +msgstr "Strona" + +#: src/Module/Admin/Site.php:571 +msgid "Republish users to directory" +msgstr "Ponownie opublikuj użytkowników w katalogu" + +#: src/Module/Admin/Site.php:572 src/Module/Register.php:121 +msgid "Registration" +msgstr "Rejestracja" + +#: src/Module/Admin/Site.php:573 +msgid "File upload" +msgstr "Przesyłanie plików" + +#: src/Module/Admin/Site.php:574 +msgid "Policies" +msgstr "Zasady" + +#: src/Module/Admin/Site.php:576 +msgid "Auto Discovered Contact Directory" +msgstr "Katalog kontaktów automatycznie odkrytych" + +#: src/Module/Admin/Site.php:577 +msgid "Performance" +msgstr "Ustawienia" + +#: src/Module/Admin/Site.php:578 +msgid "Worker" +msgstr "Pracownik" + +#: src/Module/Admin/Site.php:579 +msgid "Message Relay" +msgstr "Przekazywanie wiadomości" + +#: src/Module/Admin/Site.php:580 +msgid "Relocate Instance" +msgstr "Zmień lokalizację" + +#: src/Module/Admin/Site.php:581 +msgid "Warning! Advanced function. Could make this server unreachable." +msgstr "Ostrzeżenie! Zaawansowana funkcja. Może spowodować, że serwer będzie nieosiągalny." + +#: src/Module/Admin/Site.php:585 +msgid "Site name" +msgstr "Nazwa strony" + +#: src/Module/Admin/Site.php:586 +msgid "Sender Email" +msgstr "E-mail nadawcy" + +#: src/Module/Admin/Site.php:586 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "Adres e-mail używany przez Twój serwer do wysyłania e-maili z powiadomieniami." + +#: src/Module/Admin/Site.php:587 +msgid "Banner/Logo" +msgstr "Logo" + +#: src/Module/Admin/Site.php:588 +msgid "Shortcut icon" +msgstr "Ikona skrótu" + +#: src/Module/Admin/Site.php:588 +msgid "Link to an icon that will be used for browsers." +msgstr "Link do ikony, która będzie używana w przeglądarkach." + +#: src/Module/Admin/Site.php:589 +msgid "Touch icon" +msgstr "Dołącz ikonę" + +#: src/Module/Admin/Site.php:589 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Link do ikony, która będzie używana w tabletach i telefonach komórkowych." + +#: src/Module/Admin/Site.php:590 +msgid "Additional Info" +msgstr "Dodatkowe informacje" + +#: src/Module/Admin/Site.php:590 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/servers." +msgstr "W przypadku serwerów publicznych: możesz tu dodać dodatkowe informacje, które będą wymienione na %s/servers." + +#: src/Module/Admin/Site.php:591 +msgid "System language" +msgstr "Język systemu" + +#: src/Module/Admin/Site.php:592 +msgid "System theme" +msgstr "Motyw systemowy" + +#: src/Module/Admin/Site.php:592 +msgid "" +"Default system theme - may be over-ridden by user profiles - Change default theme settings" +msgstr "" + +#: src/Module/Admin/Site.php:593 +msgid "Mobile system theme" +msgstr "Motyw systemu mobilnego" + +#: src/Module/Admin/Site.php:593 +msgid "Theme for mobile devices" +msgstr "Motyw na urządzenia mobilne" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:191 +msgid "SSL link policy" +msgstr "Polityka odnośników SSL" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:193 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Określa, czy generowane odnośniki będą obowiązkowo używały SSL" + +#: src/Module/Admin/Site.php:595 +msgid "Force SSL" +msgstr "Wymuś SSL" + +#: src/Module/Admin/Site.php:595 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Wymuszaj wszystkie żądania SSL bez SSL - Uwaga: w niektórych systemach może to prowadzić do niekończących się pętli." + +#: src/Module/Admin/Site.php:596 +msgid "Hide help entry from navigation menu" +msgstr "Ukryj pomoc w menu nawigacyjnym" + +#: src/Module/Admin/Site.php:596 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Chowa pozycje menu dla stron pomocy ze strony nawigacyjnej. Możesz nadal ją wywołać poprzez komendę /help." + +#: src/Module/Admin/Site.php:597 +msgid "Single user instance" +msgstr "Tryb pojedynczego użytkownika" + +#: src/Module/Admin/Site.php:597 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Ustawia tryb dla wielu użytkowników lub pojedynczego użytkownika dla nazwanego użytkownika" + +#: src/Module/Admin/Site.php:599 +msgid "File storage backend" +msgstr "Backend przechowywania plików" + +#: src/Module/Admin/Site.php:599 +msgid "" +"The backend used to store uploaded data. If you change the storage backend, " +"you can manually move the existing files. If you do not do so, the files " +"uploaded before the change will still be available at the old backend. " +"Please see the settings documentation" +" for more information about the choices and the moving procedure." +msgstr "" + +#: src/Module/Admin/Site.php:601 +msgid "Maximum image size" +msgstr "Maksymalny rozmiar zdjęcia" + +#: src/Module/Admin/Site.php:601 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Maksymalny rozmiar w bitach dla wczytywanego obrazu . Domyślnie jest to 0 , co oznacza bez limitu ." + +#: src/Module/Admin/Site.php:602 +msgid "Maximum image length" +msgstr "Maksymalna długość obrazu" + +#: src/Module/Admin/Site.php:602 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Maksymalna długość w pikselach dłuższego boku przesyłanego obrazu. Wartością domyślną jest -1, co oznacza brak ograniczeń." + +#: src/Module/Admin/Site.php:603 +msgid "JPEG image quality" +msgstr "Jakość obrazu JPEG" + +#: src/Module/Admin/Site.php:603 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Przesłane pliki JPEG zostaną zapisane w tym ustawieniu jakości [0-100]. Domyślna wartość to 100, która jest pełną jakością." + +#: src/Module/Admin/Site.php:605 +msgid "Register policy" +msgstr "Zasady rejestracji" + +#: src/Module/Admin/Site.php:606 +msgid "Maximum Daily Registrations" +msgstr "Maksymalna dzienna rejestracja" + +#: src/Module/Admin/Site.php:606 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "Jeśli rejestracja powyżej jest dozwolona, to określa maksymalną liczbę nowych rejestracji użytkowników do zaakceptowania na dzień. Jeśli rejestracja jest ustawiona na \"Zamknięta\", to ustawienie to nie ma wpływu." + +#: src/Module/Admin/Site.php:607 +msgid "Register text" +msgstr "Zarejestruj tekst" + +#: src/Module/Admin/Site.php:607 +msgid "" +"Will be displayed prominently on the registration page. You can use BBCode " +"here." +msgstr "Będą wyświetlane w widocznym miejscu na stronie rejestracji. Możesz użyć BBCode tutaj." + +#: src/Module/Admin/Site.php:608 +msgid "Forbidden Nicknames" +msgstr "Zakazane pseudonimy" + +#: src/Module/Admin/Site.php:608 +msgid "" +"Comma separated list of nicknames that are forbidden from registration. " +"Preset is a list of role names according RFC 2142." +msgstr "Lista oddzielonych przecinkami pseudonimów, których nie wolno rejestrować. Preset to lista nazw ról zgodnie z RFC 2142." + +#: src/Module/Admin/Site.php:609 +msgid "Accounts abandoned after x days" +msgstr "Konta porzucone po x dni" + +#: src/Module/Admin/Site.php:609 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Nie będzie marnować zasobów systemu wypytując zewnętrzne strony o opuszczone konta. Ustaw 0 dla braku limitu czasu ." + +#: src/Module/Admin/Site.php:610 +msgid "Allowed friend domains" +msgstr "Dozwolone domeny przyjaciół" + +#: src/Module/Admin/Site.php:610 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Rozdzielana przecinkami lista domen, które mogą nawiązywać przyjaźnie z tą witryną. Symbole wieloznaczne są akceptowane. Pozostaw puste by zezwolić każdej domenie na zaprzyjaźnienie." + +#: src/Module/Admin/Site.php:611 +msgid "Allowed email domains" +msgstr "Dozwolone domeny e-mailowe" + +#: src/Module/Admin/Site.php:611 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Rozdzielana przecinkami lista domen dozwolonych w adresach e-mail do rejestracji na tej stronie. Symbole wieloznaczne są akceptowane. Opróżnij, aby zezwolić na dowolne domeny" + +#: src/Module/Admin/Site.php:612 +msgid "No OEmbed rich content" +msgstr "Brak treści multimedialnych ze znaczkiem HTML" + +#: src/Module/Admin/Site.php:612 +msgid "" +"Don't show the rich content (e.g. embedded PDF), except from the domains " +"listed below." +msgstr "Nie wyświetlaj zasobów treści (np. osadzonego pliku PDF), z wyjątkiem domen wymienionych poniżej." + +#: src/Module/Admin/Site.php:613 +msgid "Allowed OEmbed domains" +msgstr "Dozwolone domeny OEmbed" + +#: src/Module/Admin/Site.php:613 +msgid "" +"Comma separated list of domains which oembed content is allowed to be " +"displayed. Wildcards are accepted." +msgstr "Rozdzielana przecinkami lista domen, w których wyświetlana jest treść, może być wyświetlana. Symbole wieloznaczne są akceptowane." + +#: src/Module/Admin/Site.php:614 +msgid "Block public" +msgstr "Blokuj publicznie" + +#: src/Module/Admin/Site.php:614 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Zaznacz, aby zablokować publiczny dostęp do wszystkich publicznych stron prywatnych w tej witrynie, chyba że jesteś zalogowany." + +#: src/Module/Admin/Site.php:615 +msgid "Force publish" +msgstr "Wymuś publikację" + +#: src/Module/Admin/Site.php:615 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Zaznacz, aby wymusić umieszczenie wszystkich profili w tej witrynie w katalogu witryny." + +#: src/Module/Admin/Site.php:615 +msgid "Enabling this may violate privacy laws like the GDPR" +msgstr "Włączenie tego może naruszyć prawa ochrony prywatności, takie jak GDPR" + +#: src/Module/Admin/Site.php:616 +msgid "Global directory URL" +msgstr "Globalny adres URL katalogu" + +#: src/Module/Admin/Site.php:616 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "Adres URL do katalogu globalnego. Jeśli nie zostanie to ustawione, katalog globalny jest całkowicie niedostępny dla aplikacji." + +#: src/Module/Admin/Site.php:617 +msgid "Private posts by default for new users" +msgstr "Prywatne posty domyślnie dla nowych użytkowników" + +#: src/Module/Admin/Site.php:617 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Ustaw domyślne uprawnienia do publikowania dla wszystkich nowych członków na domyślną grupę prywatności, a nie publiczną." + +#: src/Module/Admin/Site.php:618 +msgid "Don't include post content in email notifications" +msgstr "Nie wklejaj zawartości postu do powiadomienia o poczcie" + +#: src/Module/Admin/Site.php:618 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "W celu ochrony prywatności, nie włączaj zawartości postu/komentarza/wiadomości prywatnej/etc. do powiadomień w wiadomościach mailowych wysyłanych z tej strony." + +#: src/Module/Admin/Site.php:619 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Nie zezwalaj na publiczny dostęp do dodatkowych wtyczek wyszczególnionych w menu aplikacji." + +#: src/Module/Admin/Site.php:619 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Zaznaczenie tego pola spowoduje ograniczenie dodatków wymienionych w menu aplikacji tylko dla członków." + +#: src/Module/Admin/Site.php:620 +msgid "Don't embed private images in posts" +msgstr "Nie umieszczaj prywatnych zdjęć w postach" + +#: src/Module/Admin/Site.php:620 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Nie zastępuj lokalnie hostowanych zdjęć prywatnych we wpisach za pomocą osadzonej kopii obrazu. Oznacza to, że osoby, które otrzymują posty zawierające prywatne zdjęcia, będą musiały uwierzytelnić i wczytać każdy obraz, co może trochę potrwać." + +#: src/Module/Admin/Site.php:621 +msgid "Explicit Content" +msgstr "Treści dla dorosłych" + +#: src/Module/Admin/Site.php:621 +msgid "" +"Set this to announce that your node is used mostly for explicit content that" +" might not be suited for minors. This information will be published in the " +"node information and might be used, e.g. by the global directory, to filter " +"your node from listings of nodes to join. Additionally a note about this " +"will be shown at the user registration page." +msgstr "Ustaw to, aby ogłosić, że Twój węzeł jest używany głównie do jawnej treści, która może nie być odpowiednia dla nieletnich. Informacje te zostaną opublikowane w informacjach o węźle i mogą zostać wykorzystane, np. w katalogu globalnym, aby filtrować węzeł z list węzłów do przyłączenia. Dodatkowo notatka o tym zostanie pokazana na stronie rejestracji użytkownika." + +#: src/Module/Admin/Site.php:622 +msgid "Allow Users to set remote_self" +msgstr "Zezwól użytkownikom na ustawienie remote_self" + +#: src/Module/Admin/Site.php:622 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "Po sprawdzeniu tego każdy użytkownik może zaznaczyć każdy kontakt jako zdalny w oknie dialogowym kontaktu naprawczego. Ustawienie tej flagi na kontakcie powoduje dublowanie każdego wpisu tego kontaktu w strumieniu użytkowników." + +#: src/Module/Admin/Site.php:623 +msgid "Block multiple registrations" +msgstr "Zablokuj wielokrotną rejestrację" + +#: src/Module/Admin/Site.php:623 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Nie pozwalaj użytkownikom na zakładanie dodatkowych kont do używania jako strony. " + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID" +msgstr "Wyłącz OpenID" + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID support for registration and logins." +msgstr "Wyłącz obsługę OpenID dla rejestracji i logowania." + +#: src/Module/Admin/Site.php:625 +msgid "No Fullname check" +msgstr "Bez sprawdzania pełnej nazwy" + +#: src/Module/Admin/Site.php:625 +msgid "" +"Allow users to register without a space between the first name and the last " +"name in their full name." +msgstr "Zezwól użytkownikom na rejestrację bez spacji między imieniem i nazwiskiem w ich pełnym imieniu." + +#: src/Module/Admin/Site.php:626 +msgid "Community pages for visitors" +msgstr "Strony społecznościowe dla odwiedzających" + +#: src/Module/Admin/Site.php:626 +msgid "" +"Which community pages should be available for visitors. Local users always " +"see both pages." +msgstr "Które strony społeczności powinny być dostępne dla odwiedzających. Lokalni użytkownicy zawsze widzą obie strony." + +#: src/Module/Admin/Site.php:627 +msgid "Posts per user on community page" +msgstr "Lista postów użytkownika na stronie społeczności" + +#: src/Module/Admin/Site.php:627 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"\"Global Community\")" +msgstr "Maksymalna liczba postów na użytkownika na stronie społeczności. (Nie dotyczy „Globalnej społeczności”)" + +#: src/Module/Admin/Site.php:628 +msgid "Disable OStatus support" +msgstr "Wyłącz obsługę OStatus" + +#: src/Module/Admin/Site.php:628 +msgid "" +"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Wyłącz wbudowaną kompatybilność z OStatus (StatusNet, GNU Social itd.). Wszystkie rozmowy w OStatus są publiczne, więc czasem będą pojawiać się ostrzeżenia o prywatności." + +#: src/Module/Admin/Site.php:629 +msgid "Only import OStatus/ActivityPub threads from our contacts" +msgstr "Importuj wątki OStatus/ActivityPub tylko z naszych kontaktów" + +#: src/Module/Admin/Site.php:629 +msgid "" +"Normally we import every content from our OStatus and ActivityPub contacts. " +"With this option we only store threads that are started by a contact that is" +" known on our system." +msgstr "Normalnie importujemy każdą zawartość z naszych kontaktów OStatus i ActivityPub. W tej opcji przechowujemy tylko wątki uruchomione przez kontakt znany w naszym systemie." + +#: src/Module/Admin/Site.php:630 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "Obsługa OStatus może być włączona tylko wtedy, gdy włączone jest wątkowanie." + +#: src/Module/Admin/Site.php:632 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "Obsługa Diaspory nie może być włączona, ponieważ Friendica została zainstalowana w podkatalogu." + +#: src/Module/Admin/Site.php:633 +msgid "Enable Diaspora support" +msgstr "Włączyć obsługę Diaspory" + +#: src/Module/Admin/Site.php:633 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Zapewnij wbudowaną kompatybilność z siecią Diaspora." + +#: src/Module/Admin/Site.php:634 +msgid "Only allow Friendica contacts" +msgstr "Dopuść tylko kontakty Friendrica" + +#: src/Module/Admin/Site.php:634 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "Wszyscy znajomi muszą używać protokołów Friendica. Wszystkie inne wbudowane protokoły komunikacyjne są wyłączone." + +#: src/Module/Admin/Site.php:635 +msgid "Verify SSL" +msgstr "Weryfikacja SSL" + +#: src/Module/Admin/Site.php:635 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "Jeśli chcesz, możesz włączyć ścisłe sprawdzanie certyfikatu. Oznacza to, że nie możesz połączyć się (w ogóle) z własnoręcznie podpisanymi stronami SSL." + +#: src/Module/Admin/Site.php:636 +msgid "Proxy user" +msgstr "Użytkownik proxy" + +#: src/Module/Admin/Site.php:637 +msgid "Proxy URL" +msgstr "URL Proxy" + +#: src/Module/Admin/Site.php:638 +msgid "Network timeout" +msgstr "Network timeout" + +#: src/Module/Admin/Site.php:638 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Wartość jest w sekundach. Ustaw na 0 dla nieograniczonej (niezalecane)." + +#: src/Module/Admin/Site.php:639 +msgid "Maximum Load Average" +msgstr "Maksymalne obciążenie średnie" + +#: src/Module/Admin/Site.php:639 +#, php-format +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default %d." +msgstr "" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum Load Average (Frontend)" +msgstr "Maksymalne obciążenie średnie (Frontend)" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Maksymalne obciążenie systemu, zanim frontend zakończy pracę - domyślnie 50." + +#: src/Module/Admin/Site.php:641 +msgid "Minimal Memory" +msgstr "Minimalna pamięć" + +#: src/Module/Admin/Site.php:641 +msgid "" +"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " +"default 0 (deactivated)." +msgstr "Minimalna wolna pamięć w MB dla pracownika. Potrzebuje dostępu do /proc/ meminfo - domyślnie 0 (wyłączone)." + +#: src/Module/Admin/Site.php:642 +msgid "Maximum table size for optimization" +msgstr "Maksymalny rozmiar stołu do optymalizacji" + +#: src/Module/Admin/Site.php:642 +msgid "" +"Maximum table size (in MB) for the automatic optimization. Enter -1 to " +"disable it." +msgstr "Maksymalny rozmiar tablicy (w MB) do automatycznej optymalizacji. Wprowadź -1, aby go wyłączyć." + +#: src/Module/Admin/Site.php:643 +msgid "Minimum level of fragmentation" +msgstr "Minimalny poziom fragmentacji" + +#: src/Module/Admin/Site.php:643 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Minimalny poziom fragmentacji, aby rozpocząć automatyczną optymalizację - domyślna wartość to 30%." + +#: src/Module/Admin/Site.php:645 +msgid "Periodical check of global contacts" +msgstr "Okresowa kontrola kontaktów globalnych" + +#: src/Module/Admin/Site.php:645 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "Jeśli jest włączona, kontakty globalne są okresowo sprawdzane pod kątem brakujących lub nieaktualnych danych oraz żywotności kontaktów i serwerów." + +#: src/Module/Admin/Site.php:646 +msgid "Days between requery" +msgstr "Dni między żądaniem" + +#: src/Module/Admin/Site.php:646 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Liczba dni, po upływie których serwer jest żądany dla swoich kontaktów." + +#: src/Module/Admin/Site.php:647 +msgid "Discover contacts from other servers" +msgstr "Odkryj kontakty z innych serwerów" + +#: src/Module/Admin/Site.php:647 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"\"Users\": the users on the remote system, \"Global Contacts\": active " +"contacts that are known on the system. The fallback is meant for Redmatrix " +"servers and older friendica servers, where global contacts weren't " +"available. The fallback increases the server load, so the recommended " +"setting is \"Users, Global Contacts\"." +msgstr "" + +#: src/Module/Admin/Site.php:648 +msgid "Timeframe for fetching global contacts" +msgstr "Czas pobierania globalnych kontaktów" + +#: src/Module/Admin/Site.php:648 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "Po aktywowaniu wykrywania ta wartość określa czas działania globalnych kontaktów pobieranych z innych serwerów." + +#: src/Module/Admin/Site.php:649 +msgid "Search the local directory" +msgstr "Wyszukaj w lokalnym katalogu" + +#: src/Module/Admin/Site.php:649 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Wyszukaj lokalny katalog zamiast katalogu globalnego. Podczas wyszukiwania lokalnie każde wyszukiwanie zostanie wykonane w katalogu globalnym w tle. Poprawia to wyniki wyszukiwania, gdy wyszukiwanie jest powtarzane." + +#: src/Module/Admin/Site.php:651 +msgid "Publish server information" +msgstr "Publikuj informacje o serwerze" + +#: src/Module/Admin/Site.php:651 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "" + +#: src/Module/Admin/Site.php:653 +msgid "Check upstream version" +msgstr "Sprawdź wersję powyżej" + +#: src/Module/Admin/Site.php:653 +msgid "" +"Enables checking for new Friendica versions at github. If there is a new " +"version, you will be informed in the admin panel overview." +msgstr "Umożliwia sprawdzenie nowych wersji Friendica na github. Jeśli pojawi się nowa wersja, zostaniesz o tym poinformowany w panelu administracyjnym." + +#: src/Module/Admin/Site.php:654 +msgid "Suppress Tags" +msgstr "Ukryj tagi" + +#: src/Module/Admin/Site.php:654 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Pomiń wyświetlenie listy hashtagów na końcu postu." + +#: src/Module/Admin/Site.php:655 +msgid "Clean database" +msgstr "Wyczyść bazę danych" + +#: src/Module/Admin/Site.php:655 +msgid "" +"Remove old remote items, orphaned database records and old content from some" +" other helper tables." +msgstr "Usuń stare zdalne pozycje, osierocone rekordy bazy danych i starą zawartość z innych tabel pomocników." + +#: src/Module/Admin/Site.php:656 +msgid "Lifespan of remote items" +msgstr "Żywotność odległych przedmiotów" + +#: src/Module/Admin/Site.php:656 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"remote items will be deleted. Own items, and marked or filed items are " +"always kept. 0 disables this behaviour." +msgstr "Po włączeniu czyszczenia bazy danych określa dni, po których zdalne elementy zostaną usunięte. Własne przedmioty oraz oznaczone lub wypełnione pozycje są zawsze przechowywane. 0 wyłącza to zachowanie." + +#: src/Module/Admin/Site.php:657 +msgid "Lifespan of unclaimed items" +msgstr "Żywotność nieodebranych przedmiotów" + +#: src/Module/Admin/Site.php:657 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"unclaimed remote items (mostly content from the relay) will be deleted. " +"Default value is 90 days. Defaults to the general lifespan value of remote " +"items if set to 0." +msgstr "Po włączeniu czyszczenia bazy danych określa się dni, po których usunięte zostaną nieodebrane zdalne elementy (głównie zawartość z przekaźnika). Wartość domyślna to 90 dni. Wartość domyślna dla ogólnej długości życia zdalnych pozycji, jeśli jest ustawiona na 0." + +#: src/Module/Admin/Site.php:658 +msgid "Lifespan of raw conversation data" +msgstr "Trwałość nieprzetworzonych danych konwersacji" + +#: src/Module/Admin/Site.php:658 +msgid "" +"The conversation data is used for ActivityPub and OStatus, as well as for " +"debug purposes. It should be safe to remove it after 14 days, default is 90 " +"days." +msgstr "Dane konwersacji są używane do ActivityPub i OStatus, a także do celów debugowania. Powinno być bezpieczne usunięcie go po 14 dniach, domyślnie jest to 90 dni." + +#: src/Module/Admin/Site.php:659 +msgid "Path to item cache" +msgstr "Ścieżka do pamięci podręcznej" + +#: src/Module/Admin/Site.php:659 +msgid "The item caches buffers generated bbcode and external images." +msgstr "Pozycja buforuje bufory generowane bbcode i obrazy zewnętrzne." + +#: src/Module/Admin/Site.php:660 +msgid "Cache duration in seconds" +msgstr "Czas trwania w sekundach" + +#: src/Module/Admin/Site.php:660 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "Jak długo powinny być przechowywane pliki pamięci podręcznej? Wartość domyślna to 86400 sekund (jeden dzień). Aby wyłączyć pamięć podręczną elementów, ustaw wartość na -1." + +#: src/Module/Admin/Site.php:661 +msgid "Maximum numbers of comments per post" +msgstr "Maksymalna liczba komentarzy na post" + +#: src/Module/Admin/Site.php:661 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "Ile komentarzy powinno być pokazywanych dla każdego posta? Domyślna wartość to 100." + +#: src/Module/Admin/Site.php:662 +msgid "Temp path" +msgstr "Ścieżka do Temp" + +#: src/Module/Admin/Site.php:662 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "Jeśli masz zastrzeżony system, w którym serwer internetowy nie może uzyskać dostępu do ścieżki temp systemu, wprowadź tutaj inną ścieżkę." + +#: src/Module/Admin/Site.php:663 +msgid "Disable picture proxy" +msgstr "Wyłącz obraz proxy" + +#: src/Module/Admin/Site.php:663 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwidth." +msgstr "Serwer proxy zwiększa wydajność i prywatność. Nie powinno być używane w systemach o bardzo niskiej przepustowości." + +#: src/Module/Admin/Site.php:664 +msgid "Only search in tags" +msgstr "Szukaj tylko w tagach" + +#: src/Module/Admin/Site.php:664 +msgid "On large systems the text search can slow down the system extremely." +msgstr "W dużych systemach wyszukiwanie tekstu może wyjątkowo spowolnić system." + +#: src/Module/Admin/Site.php:666 +msgid "New base url" +msgstr "Nowy bazowy adres url" + +#: src/Module/Admin/Site.php:666 +msgid "" +"Change base url for this server. Sends relocate message to all Friendica and" +" Diaspora* contacts of all users." +msgstr "Zmień bazowy adres URL dla tego serwera. Wysyła wiadomość o przeniesieniu do wszystkich kontaktów Friendica i Diaspora* wszystkich użytkowników." + +#: src/Module/Admin/Site.php:668 +msgid "RINO Encryption" +msgstr "Szyfrowanie RINO" + +#: src/Module/Admin/Site.php:668 +msgid "Encryption layer between nodes." +msgstr "Warstwa szyfrowania między węzłami." + +#: src/Module/Admin/Site.php:668 +msgid "Enabled" +msgstr "Włącz" + +#: src/Module/Admin/Site.php:670 +msgid "Maximum number of parallel workers" +msgstr "Maksymalna liczba równoległych pracowników" + +#: src/Module/Admin/Site.php:670 +#, php-format +msgid "" +"On shared hosters set this to %d. On larger systems, values of %d are great." +" Default value is %d." +msgstr "Na udostępnionych usługach hostingowych ustaw tę opcję %d. W większych systemach wartości %dsą świetne . Wartość domyślna to %d." + +#: src/Module/Admin/Site.php:671 +msgid "Don't use \"proc_open\" with the worker" +msgstr "" + +#: src/Module/Admin/Site.php:671 +msgid "" +"Enable this if your system doesn't allow the use of \"proc_open\". This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of worker calls in your crontab." +msgstr "Włącz to, jeśli twój system nie zezwala na użycie „proc_open”. Może się tak zdarzyć na współdzielonych hostach. Jeśli to jest włączone, powinieneś zwiększyć częstotliwość wywołań roboczych w crontabie." + +#: src/Module/Admin/Site.php:672 +msgid "Enable fastlane" +msgstr "Włącz Fastlane" + +#: src/Module/Admin/Site.php:672 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "Po włączeniu system Fastlane uruchamia dodatkowego pracownika, jeśli procesy o wyższym priorytecie są blokowane przez procesy o niższym priorytecie." + +#: src/Module/Admin/Site.php:673 +msgid "Enable frontend worker" +msgstr "Włącz pracownika frontend" + +#: src/Module/Admin/Site.php:673 +#, php-format +msgid "" +"When enabled the Worker process is triggered when backend access is " +"performed (e.g. messages being delivered). On smaller sites you might want " +"to call %s/worker on a regular basis via an external cron job. You should " +"only enable this option if you cannot utilize cron/scheduled jobs on your " +"server." +msgstr "" + +#: src/Module/Admin/Site.php:675 +msgid "Subscribe to relay" +msgstr "Subskrybuj przekaźnik" + +#: src/Module/Admin/Site.php:675 +msgid "" +"Enables the receiving of public posts from the relay. They will be included " +"in the search, subscribed tags and on the global community page." +msgstr "Umożliwia odbieranie publicznych wiadomości z przekaźnika. Zostaną uwzględnione w tagach wyszukiwania, subskrybowanych i na stronie społeczności globalnej." + +#: src/Module/Admin/Site.php:676 +msgid "Relay server" +msgstr "Serwer przekazujący" + +#: src/Module/Admin/Site.php:676 +msgid "" +"Address of the relay server where public posts should be send to. For " +"example https://relay.diasp.org" +msgstr "Adres serwera przekazującego, do którego należy wysyłać publiczne posty. Na przykład https://relay.diasp.org" + +#: src/Module/Admin/Site.php:677 +msgid "Direct relay transfer" +msgstr "Bezpośredni transfer przekaźników" + +#: src/Module/Admin/Site.php:677 +msgid "" +"Enables the direct transfer to other servers without using the relay servers" +msgstr "Umożliwia bezpośredni transfer do innych serwerów bez korzystania z serwerów przekazujących" + +#: src/Module/Admin/Site.php:678 +msgid "Relay scope" +msgstr "Zakres przekaźnika" + +#: src/Module/Admin/Site.php:678 +msgid "" +"Can be \"all\" or \"tags\". \"all\" means that every public post should be " +"received. \"tags\" means that only posts with selected tags should be " +"received." +msgstr "" + +#: src/Module/Admin/Site.php:678 +msgid "all" +msgstr "wszystko" + +#: src/Module/Admin/Site.php:678 +msgid "tags" +msgstr "tagi" + +#: src/Module/Admin/Site.php:679 +msgid "Server tags" +msgstr "Serwer tagów" + +#: src/Module/Admin/Site.php:679 +msgid "Comma separated list of tags for the \"tags\" subscription." +msgstr "Rozdzielana przecinkami lista tagów dla subskrypcji „tagi”." + +#: src/Module/Admin/Site.php:680 +msgid "Allow user tags" +msgstr "Pozwól na tagi użytkowników" + +#: src/Module/Admin/Site.php:680 +msgid "" +"If enabled, the tags from the saved searches will used for the \"tags\" " +"subscription in addition to the \"relay_server_tags\"." +msgstr "" + +#: src/Module/Admin/Site.php:683 +msgid "Start Relocation" +msgstr "Rozpocznij przenoszenie" + +#: src/Module/Admin/Summary.php:30 +#, php-format +msgid "" +"Your DB still runs with MyISAM tables. You should change the engine type to " +"InnoDB. As Friendica will use InnoDB only features in the future, you should" +" change this! See here for a guide that may be helpful " +"converting the table engines. You may also use the command php " +"bin/console.php dbstructure toinnodb of your Friendica installation for" +" an automatic conversion.
    " +msgstr "Twoja baza danych nadal używa tabel MyISAM. Powinieneś(-naś) zmienić typ silnika na InnoDB. Ponieważ Friendica będzie używać w przyszłości wyłącznie funkcji InnoDB, powinieneś(-naś) to zmienić! Zobacz tutaj przewodnik, który może być pomocny w konwersji silników tabel. Możesz także użyć polecenia php bin/console.php dbstructure toinnodb instalacji Friendica, aby dokonać automatycznej konwersji.
    " + +#: src/Module/Admin/Summary.php:38 +#, php-format +msgid "" +"There is a new version of Friendica available for download. Your current " +"version is %1$s, upstream version is %2$s" +msgstr "Dostępna jest nowa wersja aplikacji Friendica. Twoja aktualna wersja to %1$s wyższa wersja to %2$s" + +#: src/Module/Admin/Summary.php:47 +msgid "" +"The database update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear." +msgstr "Aktualizacja bazy danych nie powiodła się. Uruchom polecenie \"php bin/console.php dbstructure update\" z wiersza poleceń i sprawdź błędy, które mogą się pojawić." + +#: src/Module/Admin/Summary.php:51 +msgid "" +"The last update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear. (Some of the errors are possibly inside the logfile.)" +msgstr "" + +#: src/Module/Admin/Summary.php:56 +msgid "The worker was never executed. Please check your database structure!" +msgstr "Pracownik nigdy nie został stracony. Sprawdź swoją strukturę bazy danych!" + +#: src/Module/Admin/Summary.php:58 +#, php-format +msgid "" +"The last worker execution was on %s UTC. This is older than one hour. Please" +" check your crontab settings." +msgstr "Ostatnie wykonanie robota było w %s UTC. To jest starsze niż jedna godzina. Sprawdź ustawienia crontab." + +#: src/Module/Admin/Summary.php:63 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +".htconfig.php. See the Config help page for " +"help with the transition." +msgstr "" + +#: src/Module/Admin/Summary.php:67 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +"config/local.ini.php. See the Config help " +"page for help with the transition." +msgstr "" + +#: src/Module/Admin/Summary.php:73 +#, php-format +msgid "" +"%s is not reachable on your system. This is a severe " +"configuration issue that prevents server to server communication. See the installation page for help." +msgstr "%s nie jest osiągalny w twoim systemie. Jest to poważny problem z konfiguracją, który uniemożliwia komunikację między serwerami. Zobacz pomoc na stronie instalacji." + +#: src/Module/Admin/Summary.php:89 +#, php-format +msgid "" +"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the" +" system.basepath from your db to avoid differences." +msgstr "" + +#: src/Module/Admin/Summary.php:97 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is wrong and the config file '%s' " +"isn't used." +msgstr "" + +#: src/Module/Admin/Summary.php:105 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is not equal to the config file " +"'%s'. Please fix your configuration." +msgstr "" + +#: src/Module/Admin/Summary.php:112 +msgid "Normal Account" +msgstr "Konto normalne" + +#: src/Module/Admin/Summary.php:113 +msgid "Automatic Follower Account" +msgstr "Automatyczne konto obserwatora" + +#: src/Module/Admin/Summary.php:114 +msgid "Public Forum Account" +msgstr "Publiczne konto na forum" + +#: src/Module/Admin/Summary.php:115 +msgid "Automatic Friend Account" +msgstr "Automatyczny przyjaciel konta" + +#: src/Module/Admin/Summary.php:116 +msgid "Blog Account" +msgstr "Konto Bloga" + +#: src/Module/Admin/Summary.php:117 +msgid "Private Forum Account" +msgstr "Prywatne konto na forum" + +#: src/Module/Admin/Summary.php:141 +msgid "Message queues" +msgstr "Wiadomości" + +#: src/Module/Admin/Summary.php:147 +msgid "Server Settings" +msgstr "Ustawienia serwera" + +#: src/Module/Admin/Summary.php:161 +msgid "Summary" +msgstr "Podsumowanie" + +#: src/Module/Admin/Summary.php:163 +msgid "Registered users" +msgstr "Zarejestrowani użytkownicy" + +#: src/Module/Admin/Summary.php:165 +msgid "Pending registrations" +msgstr "Oczekujące rejestracje" + +#: src/Module/Admin/Summary.php:166 +msgid "Version" +msgstr "Wersja" + +#: src/Module/Admin/Summary.php:170 +msgid "Active addons" +msgstr "Aktywne dodatki" + +#: src/Module/Admin/Themes/Details.php:32 src/Module/Admin/Themes/Embed.php:46 +msgid "Theme settings updated." +msgstr "Zaktualizowano ustawienia motywów." + +#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:47 +#, php-format +msgid "Theme %s disabled." +msgstr "Motyw %s wyłączony." + +#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:49 +#, php-format +msgid "Theme %s successfully enabled." +msgstr "Motyw %s został pomyślnie włączony." + +#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:51 +#, php-format +msgid "Theme %s failed to install." +msgstr "Nie udało się zainstalować motywu %s." + +#: src/Module/Admin/Themes/Details.php:97 +msgid "Screenshot" +msgstr "Zrzut ekranu" + +#: src/Module/Admin/Themes/Details.php:105 +#: src/Module/Admin/Themes/Index.php:94 src/Module/BaseAdminModule.php:83 +msgid "Themes" +msgstr "Wygląd" + +#: src/Module/Admin/Themes/Embed.php:67 +msgid "Unknown theme." +msgstr "Nieznany motyw." + +#: src/Module/Admin/Themes/Index.php:96 +msgid "Reload active themes" +msgstr "Przeładuj aktywne motywy" + +#: src/Module/Admin/Themes/Index.php:101 +#, php-format +msgid "No themes found on the system. They should be placed in %1$s" +msgstr "Nie znaleziono motywów w systemie. Powinny zostać umieszczone %1$s" + +#: src/Module/Admin/Themes/Index.php:102 +msgid "[Experimental]" +msgstr "[Eksperymentalne]" + +#: src/Module/Admin/Themes/Index.php:103 +msgid "[Unsupported]" +msgstr "[Niewspieralne]" + +#: src/Module/Admin/Tos.php:30 +msgid "The Terms of Service settings have been updated." +msgstr "Ustawienia Warunków korzystania z usługi zostały zaktualizowane." + +#: src/Module/Admin/Tos.php:44 +msgid "Display Terms of Service" +msgstr "Wyświetl Warunki korzystania z usługi" + +#: src/Module/Admin/Tos.php:44 +msgid "" +"Enable the Terms of Service page. If this is enabled a link to the terms " +"will be added to the registration form and the general information page." +msgstr "Włącz stronę Warunki świadczenia usług. Jeśli ta opcja jest włączona, link do warunków zostanie dodany do formularza rejestracyjnego i strony z informacjami ogólnymi." + +#: src/Module/Admin/Tos.php:45 +msgid "Display Privacy Statement" +msgstr "Wyświetl oświadczenie o prywatności" + +#: src/Module/Admin/Tos.php:45 +#, php-format +msgid "" +"Show some informations regarding the needed information to operate the node " +"according e.g. to EU-GDPR." +msgstr "Pokaż niektóre informacje dotyczące potrzebnych informacji do obsługi węzła zgodnie np. do EU-GDPR." + +#: src/Module/Admin/Tos.php:46 +msgid "Privacy Statement Preview" +msgstr "Podgląd oświadczenia o prywatności" + +#: src/Module/Admin/Tos.php:48 +msgid "The Terms of Service" +msgstr "Warunki świadczenia usług" + +#: src/Module/Admin/Tos.php:48 +msgid "" +"Enter the Terms of Service for your node here. You can use BBCode. Headers " +"of sections should be [h2] and below." +msgstr "Wprowadź tutaj Warunki świadczenia usług dla swojego węzła. Możesz użyć BBCode. Nagłówki sekcji powinny być [h2] i poniżej." + +#: src/Module/Admin/Users.php:48 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\n\t\t\tSzanowny Użytkowniku %1$s, \n\t\t\t\tadministrator %2$s założył dla ciebie konto." + +#: src/Module/Admin/Users.php:51 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "\n\t\t\tDane logowania są następuje:\n\t\t\tLokalizacja witryny:\t%1$s\n\t\t\tNazwa użytkownika:%2$s\n\t\t\tHasło:%3$s\n\n\t\t\tPo zalogowaniu możesz zmienić hasło do swojego konta na stronie \"Ustawienia\".\n \t\t\tProszę poświęć chwilę, aby przejrzeć inne ustawienia konta na tej stronie.\n\n\t\t\tMożesz również dodać podstawowe informacje do swojego domyślnego profilu\n\t\t\t(na stronie \"Profil użytkownika\"), aby inne osoby mogły łatwo Cię znaleźć.\n\n\t\t\tZalecamy ustawienie imienia i nazwiska, dodanie zdjęcia profilowego,\n\t\t\tdodanie niektórych \"słów kluczowych\" profilu (bardzo przydatne w nawiązywaniu nowych znajomości) \n\t\t\ti być może gdzie mieszkasz; jeśli nie chcesz podać więcej szczegów.\n\n\t\t\tW pełni szanujemy Twoje prawo do prywatności i żaden z tych elementów nie jest konieczny.\n\t\t\tJeśli jesteś nowy i nie znasz tutaj nikogo, oni mogą ci pomóc,\n\t\t\tmożesz zdobyć nowych interesujących przyjaciół.\n\n\t\t\tJeśli kiedykolwiek zechcesz usunąć swoje konto, możesz to zrobić na stronie %1$s/removeme\n\n\t\t\tDziękujemy i Zapraszamy do%4$s" + +#: src/Module/Admin/Users.php:96 +#, php-format +msgid "%s user blocked" +msgid_plural "%s users blocked" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: src/Module/Admin/Users.php:102 +#, php-format +msgid "%s user unblocked" +msgid_plural "%s users unblocked" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160 +msgid "You can't remove yourself" +msgstr "Nie możesz usunąć siebie" + +#: src/Module/Admin/Users.php:114 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "usunięto %s użytkownika" +msgstr[1] "usunięto %s użytkowników" +msgstr[2] "usunięto %s użytkowników" +msgstr[3] "%s usuniętych użytkowników" + +#: src/Module/Admin/Users.php:158 +#, php-format +msgid "User \"%s\" deleted" +msgstr "Użytkownik \"%s\" usunięty" + +#: src/Module/Admin/Users.php:167 +#, php-format +msgid "User \"%s\" blocked" +msgstr "Użytkownik \"%s\" zablokowany" + +#: src/Module/Admin/Users.php:173 +#, php-format +msgid "User \"%s\" unblocked" +msgstr "Użytkownik \"%s\" odblokowany" + +#: src/Module/Admin/Users.php:226 +msgid "Private Forum" +msgstr "Prywatne forum" + +#: src/Module/Admin/Users.php:233 +msgid "Relay" +msgstr "" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Register date" +msgstr "Data rejestracji" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last login" +msgstr "Ostatnie logowanie" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last item" +msgstr "Ostatni element" + +#: src/Module/Admin/Users.php:272 +msgid "Type" +msgstr "Typu" + +#: src/Module/Admin/Users.php:279 +msgid "Add User" +msgstr "Dodaj użytkownika" + +#: src/Module/Admin/Users.php:281 +msgid "User registrations waiting for confirm" +msgstr "Zarejestrowani użytkownicy czekający na potwierdzenie" + +#: src/Module/Admin/Users.php:282 +msgid "User waiting for permanent deletion" +msgstr "Użytkownik czekający na trwałe usunięcie" + +#: src/Module/Admin/Users.php:283 +msgid "Request date" +msgstr "Data prośby" + +#: src/Module/Admin/Users.php:284 +msgid "No registrations." +msgstr "Brak rejestracji." + +#: src/Module/Admin/Users.php:285 +msgid "Note from the user" +msgstr "Uwaga od użytkownika" + +#: src/Module/Admin/Users.php:287 +msgid "Deny" +msgstr "Odmów" + +#: src/Module/Admin/Users.php:290 +msgid "User blocked" +msgstr "Użytkownik zablokowany" + +#: src/Module/Admin/Users.php:292 +msgid "Site admin" +msgstr "Administracja stroną" + +#: src/Module/Admin/Users.php:293 +msgid "Account expired" +msgstr "Konto wygasło" + +#: src/Module/Admin/Users.php:296 +msgid "New User" +msgstr "Nowy użytkownik" + +#: src/Module/Admin/Users.php:297 +msgid "Permanent deletion" +msgstr "Trwałe usunięcie" + +#: src/Module/Admin/Users.php:302 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Zaznaczeni użytkownicy zostaną usunięci!\\n\\n Wszystko co zamieścili na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?" + +#: src/Module/Admin/Users.php:303 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Użytkownik {0} zostanie usunięty!\\n\\n Wszystko co zamieścił na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?" + +#: src/Module/Admin/Users.php:313 +msgid "Name of the new user." +msgstr "Nazwa nowego użytkownika." + +#: src/Module/Admin/Users.php:314 +msgid "Nickname" +msgstr "Pseudonim" + +#: src/Module/Admin/Users.php:314 +msgid "Nickname of the new user." +msgstr "Pseudonim nowego użytkownika." + +#: src/Module/Admin/Users.php:315 +msgid "Email address of the new user." +msgstr "Adres email nowego użytkownika." + +#: src/Module/AllFriends.php:55 +msgid "No friends to display." +msgstr "Brak znajomych do wyświetlenia." + +#: src/Module/Apps.php:29 +msgid "No installed applications." +msgstr "Brak zainstalowanych aplikacji." + +#: src/Module/Apps.php:34 +msgid "Applications" +msgstr "Aplikacje" + #: src/Module/Attach.php:36 src/Module/Attach.php:48 msgid "Item was not found." msgstr "Element nie znaleziony." +#: src/Module/Babel.php:31 +msgid "Source input" +msgstr "Źródło wejściowe" + +#: src/Module/Babel.php:37 +msgid "BBCode::toPlaintext" +msgstr "BBCode::na prosty tekst" + +#: src/Module/Babel.php:43 +msgid "BBCode::convert (raw HTML)" +msgstr "BBCode:: konwersjia (raw HTML)" + +#: src/Module/Babel.php:48 +msgid "BBCode::convert" +msgstr "BBCode::przekształć" + +#: src/Module/Babel.php:54 +msgid "BBCode::convert => HTML::toBBCode" +msgstr "BBCode::przekształć => HTML::toBBCode" + +#: src/Module/Babel.php:60 +msgid "BBCode::toMarkdown" +msgstr "BBCode::toMarkdown" + +#: src/Module/Babel.php:66 +msgid "BBCode::toMarkdown => Markdown::convert" +msgstr "BBCode::toMarkdown => Markdown::przekształć" + +#: src/Module/Babel.php:72 +msgid "BBCode::toMarkdown => Markdown::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::toBBCode" + +#: src/Module/Babel.php:78 +msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::przekształć => HTML::toBBCode" + +#: src/Module/Babel.php:89 +msgid "Item Body" +msgstr "" + +#: src/Module/Babel.php:93 +msgid "Item Tags" +msgstr "" + +#: src/Module/Babel.php:100 +msgid "Source input (Diaspora format)" +msgstr "Źródło wejściowe (format Diaspora)" + +#: src/Module/Babel.php:106 +msgid "Markdown::convert (raw HTML)" +msgstr "Markdown::convert (raw HTML)" + +#: src/Module/Babel.php:111 +msgid "Markdown::convert" +msgstr "Markdown::convert" + +#: src/Module/Babel.php:117 +msgid "Markdown::toBBCode" +msgstr "Markdown::toBBCode" + +#: src/Module/Babel.php:124 +msgid "Raw HTML input" +msgstr "Surowe wejście HTML" + +#: src/Module/Babel.php:129 +msgid "HTML Input" +msgstr "Wejście HTML" + +#: src/Module/Babel.php:135 +msgid "HTML::toBBCode" +msgstr "HTML::toBBCode" + +#: src/Module/Babel.php:141 +msgid "HTML::toBBCode => BBCode::convert" +msgstr "HTML::toBBCode => BBCode::convert" + +#: src/Module/Babel.php:146 +msgid "HTML::toBBCode => BBCode::convert (raw HTML)" +msgstr "HTML::toBBCode => BBCode::convert (raw HTML)" + +#: src/Module/Babel.php:152 +msgid "HTML::toMarkdown" +msgstr "HTML::toMarkdown" + +#: src/Module/Babel.php:158 +msgid "HTML::toPlaintext" +msgstr "HTML::toPlaintext" + +#: src/Module/Babel.php:166 +msgid "Source text" +msgstr "Tekst źródłowy" + +#: src/Module/Babel.php:167 +msgid "BBCode" +msgstr "BBCode" + +#: src/Module/Babel.php:168 +msgid "Markdown" +msgstr "Markdown" + +#: src/Module/Babel.php:169 +msgid "HTML" +msgstr "HTML" + +#: src/Module/BaseAdminModule.php:76 +msgid "Overview" +msgstr "Przegląd" + +#: src/Module/BaseAdminModule.php:79 +msgid "Configuration" +msgstr "Konfiguracja" + +#: src/Module/BaseAdminModule.php:87 +msgid "Database" +msgstr "Baza danych" + +#: src/Module/BaseAdminModule.php:88 +msgid "DB updates" +msgstr "Aktualizacje DB" + +#: src/Module/BaseAdminModule.php:89 +msgid "Inspect Deferred Workers" +msgstr "Sprawdź Odroczonych Pracowników" + +#: src/Module/BaseAdminModule.php:90 +msgid "Inspect worker Queue" +msgstr "Sprawdź kolejkę pracowników" + +#: src/Module/BaseAdminModule.php:92 +msgid "Tools" +msgstr "Narzędzia" + +#: src/Module/BaseAdminModule.php:93 +msgid "Contact Blocklist" +msgstr "Lista zablokowanych kontaktów" + +#: src/Module/BaseAdminModule.php:101 +msgid "Diagnostics" +msgstr "Diagnostyka" + +#: src/Module/BaseAdminModule.php:102 +msgid "PHP Info" +msgstr "Informacje o PHP" + +#: src/Module/BaseAdminModule.php:103 +msgid "probe address" +msgstr "adres sondy" + +#: src/Module/BaseAdminModule.php:104 +msgid "check webfinger" +msgstr "sprawdź webfinger" + +#: src/Module/BaseAdminModule.php:105 +msgid "Item Source" +msgstr "" + +#: src/Module/BaseAdminModule.php:106 +msgid "Babel" +msgstr "" + +#: src/Module/BaseAdminModule.php:115 +msgid "Addon Features" +msgstr "Funkcje dodatkowe" + +#: src/Module/BaseAdminModule.php:116 +msgid "User registrations waiting for confirmation" +msgstr "Rejestracje użytkowników czekające na potwierdzenie" + +#: src/Module/Bookmarklet.php:35 +msgid "This page is missing a url parameter." +msgstr "Na tej stronie brakuje parametru url." + +#: src/Module/Bookmarklet.php:57 +msgid "The post was created" +msgstr "Post został utworzony" + #: src/Module/Contact.php:166 #, php-format msgid "%d contact edited." @@ -8923,453 +8695,688 @@ msgstr[1] "Zedytowano %d kontakty." msgstr[2] "Zedytowano %d kontaktów." msgstr[3] "%dedytuj kontakty." -#: src/Module/Contact.php:191 src/Module/Contact.php:374 +#: src/Module/Contact.php:193 src/Module/Contact.php:377 msgid "Could not access contact record." msgstr "Nie można uzyskać dostępu do rejestru kontaktów." -#: src/Module/Contact.php:201 +#: src/Module/Contact.php:203 msgid "Could not locate selected profile." msgstr "Nie można znaleźć wybranego profilu." -#: src/Module/Contact.php:233 +#: src/Module/Contact.php:235 msgid "Contact updated." msgstr "Zaktualizowano kontakt." -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been blocked" msgstr "Kontakt został zablokowany" -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been unblocked" msgstr "Kontakt został odblokowany" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been ignored" msgstr "Kontakt jest ignorowany" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been unignored" msgstr "Kontakt nie jest ignorowany" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been archived" msgstr "Kontakt został zarchiwizowany" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been unarchived" msgstr "Kontakt został przywrócony" -#: src/Module/Contact.php:439 +#: src/Module/Contact.php:442 msgid "Drop contact" msgstr "Usuń kontakt" -#: src/Module/Contact.php:442 src/Module/Contact.php:820 +#: src/Module/Contact.php:445 src/Module/Contact.php:823 msgid "Do you really want to delete this contact?" msgstr "Czy na pewno chcesz usunąć ten kontakt?" -#: src/Module/Contact.php:456 +#: src/Module/Contact.php:459 msgid "Contact has been removed." msgstr "Kontakt został usunięty." -#: src/Module/Contact.php:486 +#: src/Module/Contact.php:489 #, php-format msgid "You are mutual friends with %s" msgstr "Jesteś już znajomym z %s" -#: src/Module/Contact.php:491 +#: src/Module/Contact.php:494 #, php-format msgid "You are sharing with %s" msgstr "Współdzielisz z %s" -#: src/Module/Contact.php:496 +#: src/Module/Contact.php:499 #, php-format msgid "%s is sharing with you" msgstr "%s współdzieli z tobą" -#: src/Module/Contact.php:520 +#: src/Module/Contact.php:523 msgid "Private communications are not available for this contact." msgstr "Nie można nawiązać prywatnej rozmowy z tym kontaktem." -#: src/Module/Contact.php:522 +#: src/Module/Contact.php:525 msgid "Never" msgstr "Nigdy" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was successful)" msgstr "(Aktualizacja przebiegła pomyślnie)" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was not successful)" msgstr "(Aktualizacja nie powiodła się)" -#: src/Module/Contact.php:527 src/Module/Contact.php:1058 +#: src/Module/Contact.php:530 src/Module/Contact.php:1061 msgid "Suggest friends" msgstr "Osoby, które możesz znać" -#: src/Module/Contact.php:531 +#: src/Module/Contact.php:534 #, php-format msgid "Network type: %s" msgstr "Typ sieci: %s" -#: src/Module/Contact.php:536 +#: src/Module/Contact.php:539 msgid "Communications lost with this contact!" msgstr "Utracono komunikację z tym kontaktem!" -#: src/Module/Contact.php:542 +#: src/Module/Contact.php:545 msgid "Fetch further information for feeds" msgstr "Pobierz dalsze informacje dla kanałów" -#: src/Module/Contact.php:544 +#: src/Module/Contact.php:547 msgid "" "Fetch information like preview pictures, title and teaser from the feed " "item. You can activate this if the feed doesn't contain much text. Keywords " "are taken from the meta header in the feed item and are posted as hash tags." msgstr "Pobieranie informacji, takich jak zdjęcia podglądu, tytuł i zwiastun z elementu kanału. Możesz to aktywować, jeśli plik danych nie zawiera dużo tekstu. Słowa kluczowe są pobierane z nagłówka meta w elemencie kanału i są publikowane jako znaczniki haszowania." -#: src/Module/Contact.php:547 +#: src/Module/Contact.php:550 msgid "Fetch information" msgstr "Pobierz informacje" -#: src/Module/Contact.php:548 +#: src/Module/Contact.php:551 msgid "Fetch keywords" msgstr "Pobierz słowa kluczowe" -#: src/Module/Contact.php:549 +#: src/Module/Contact.php:552 msgid "Fetch information and keywords" msgstr "Pobierz informacje i słowa kluczowe" -#: src/Module/Contact.php:581 +#: src/Module/Contact.php:584 msgid "Profile Visibility" msgstr "Widoczność profilu" -#: src/Module/Contact.php:582 +#: src/Module/Contact.php:585 msgid "Contact Information / Notes" msgstr "Informacje kontaktowe/Notatki" -#: src/Module/Contact.php:583 +#: src/Module/Contact.php:586 msgid "Contact Settings" msgstr "Ustawienia kontaktów" -#: src/Module/Contact.php:592 +#: src/Module/Contact.php:595 msgid "Contact" msgstr "Kontakt" -#: src/Module/Contact.php:596 +#: src/Module/Contact.php:599 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Wybierz profil, który chcesz bezpiecznie wyświetlić %s" -#: src/Module/Contact.php:598 +#: src/Module/Contact.php:601 msgid "Their personal note" msgstr "Ich osobista uwaga" -#: src/Module/Contact.php:600 +#: src/Module/Contact.php:603 msgid "Edit contact notes" msgstr "Edytuj notatki kontaktu" -#: src/Module/Contact.php:604 +#: src/Module/Contact.php:607 msgid "Block/Unblock contact" msgstr "Zablokuj/odblokuj kontakt" -#: src/Module/Contact.php:605 +#: src/Module/Contact.php:608 msgid "Ignore contact" msgstr "Ignoruj kontakt" -#: src/Module/Contact.php:606 +#: src/Module/Contact.php:609 msgid "Repair URL settings" msgstr "Napraw ustawienia adresów URL" -#: src/Module/Contact.php:607 +#: src/Module/Contact.php:610 msgid "View conversations" msgstr "Wyświetl rozmowy" -#: src/Module/Contact.php:612 +#: src/Module/Contact.php:615 msgid "Last update:" msgstr "Ostatnia aktualizacja:" -#: src/Module/Contact.php:614 +#: src/Module/Contact.php:617 msgid "Update public posts" msgstr "Zaktualizuj publiczne posty" -#: src/Module/Contact.php:616 src/Module/Contact.php:1068 +#: src/Module/Contact.php:619 src/Module/Contact.php:1071 msgid "Update now" msgstr "Aktualizuj teraz" -#: src/Module/Contact.php:622 src/Module/Contact.php:825 -#: src/Module/Contact.php:1085 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 msgid "Unignore" msgstr "Odblokuj" -#: src/Module/Contact.php:626 +#: src/Module/Contact.php:629 msgid "Currently blocked" msgstr "Obecnie zablokowany" -#: src/Module/Contact.php:627 +#: src/Module/Contact.php:630 msgid "Currently ignored" msgstr "Obecnie zignorowany" -#: src/Module/Contact.php:628 +#: src/Module/Contact.php:631 msgid "Currently archived" msgstr "Obecnie zarchiwizowany" -#: src/Module/Contact.php:629 +#: src/Module/Contact.php:632 msgid "Awaiting connection acknowledge" msgstr "Oczekiwanie na potwierdzenie połączenia" -#: src/Module/Contact.php:630 +#: src/Module/Contact.php:633 msgid "" "Replies/likes to your public posts may still be visible" msgstr "Odpowiedzi/kliknięcia \"lubię to\" do twoich publicznych postów nadal mogą być widoczne" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Notification for new posts" msgstr "Powiadomienie o nowych postach" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Send a notification of every new post of this contact" msgstr "Wyślij powiadomienie o każdym nowym poście tego kontaktu" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "Blacklisted keywords" msgstr "Słowa kluczowe na czarnej liście" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "" "Comma separated list of keywords that should not be converted to hashtags, " "when \"Fetch information and keywords\" is selected" msgstr "Rozdzielana przecinkami lista słów kluczowych, które nie powinny zostać przekonwertowane na hashtagi, gdy wybrana jest opcja 'Pobierz informacje i słowa kluczowe'" -#: src/Module/Contact.php:650 +#: src/Module/Contact.php:653 src/Module/Settings/TwoFactor/Index.php:100 msgid "Actions" msgstr "Akcja" -#: src/Module/Contact.php:696 +#: src/Module/Contact.php:700 msgid "Suggestions" msgstr "Sugestie" -#: src/Module/Contact.php:699 +#: src/Module/Contact.php:703 msgid "Suggest potential friends" msgstr "Sugerowani znajomi" -#: src/Module/Contact.php:707 +#: src/Module/Contact.php:708 src/Module/Group.php:287 +msgid "All Contacts" +msgstr "Wszystkie kontakty" + +#: src/Module/Contact.php:711 msgid "Show all contacts" msgstr "Pokaż wszystkie kontakty" -#: src/Module/Contact.php:712 +#: src/Module/Contact.php:716 msgid "Unblocked" msgstr "Odblokowane" -#: src/Module/Contact.php:715 +#: src/Module/Contact.php:719 msgid "Only show unblocked contacts" msgstr "Pokaż tylko odblokowane kontakty" -#: src/Module/Contact.php:720 +#: src/Module/Contact.php:724 msgid "Blocked" msgstr "Zablokowane" -#: src/Module/Contact.php:723 +#: src/Module/Contact.php:727 msgid "Only show blocked contacts" msgstr "Pokaż tylko zablokowane kontakty" -#: src/Module/Contact.php:728 +#: src/Module/Contact.php:732 msgid "Ignored" msgstr "Ignorowane" -#: src/Module/Contact.php:731 +#: src/Module/Contact.php:735 msgid "Only show ignored contacts" msgstr "Pokaż tylko ignorowane kontakty" -#: src/Module/Contact.php:736 +#: src/Module/Contact.php:740 msgid "Archived" msgstr "Zarchiwizowane" -#: src/Module/Contact.php:739 +#: src/Module/Contact.php:743 msgid "Only show archived contacts" msgstr "Pokaż tylko zarchiwizowane kontakty" -#: src/Module/Contact.php:744 +#: src/Module/Contact.php:748 msgid "Hidden" msgstr "Ukryte" -#: src/Module/Contact.php:747 +#: src/Module/Contact.php:751 msgid "Only show hidden contacts" msgstr "Pokaż tylko ukryte kontakty" -#: src/Module/Contact.php:755 +#: src/Module/Contact.php:759 msgid "Organize your contact groups" msgstr "Uporządkuj swoje grupy kontaktów" -#: src/Module/Contact.php:815 +#: src/Module/Contact.php:818 msgid "Search your contacts" msgstr "Wyszukaj w kontaktach" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Archive" msgstr "Archiwum" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Unarchive" msgstr "Przywróć z archiwum" -#: src/Module/Contact.php:829 +#: src/Module/Contact.php:832 msgid "Batch Actions" msgstr "Akcje wsadowe" -#: src/Module/Contact.php:856 +#: src/Module/Contact.php:859 msgid "Conversations started by this contact" msgstr "Rozmowy rozpoczęły się od tego kontaktu" -#: src/Module/Contact.php:861 +#: src/Module/Contact.php:864 msgid "Posts and Comments" msgstr "Posty i komentarze" -#: src/Module/Contact.php:884 +#: src/Module/Contact.php:887 msgid "View all contacts" msgstr "Zobacz wszystkie kontakty" -#: src/Module/Contact.php:895 +#: src/Module/Contact.php:898 msgid "View all common friends" msgstr "Zobacz wszystkich popularnych znajomych" -#: src/Module/Contact.php:905 +#: src/Module/Contact.php:908 msgid "Advanced Contact Settings" msgstr "Zaawansowane ustawienia kontaktów" -#: src/Module/Contact.php:991 +#: src/Module/Contact.php:994 msgid "Mutual Friendship" msgstr "Wzajemna przyjaźń" -#: src/Module/Contact.php:996 +#: src/Module/Contact.php:999 msgid "is a fan of yours" msgstr "jest twoim fanem" -#: src/Module/Contact.php:1001 +#: src/Module/Contact.php:1004 msgid "you are a fan of" msgstr "jesteś fanem" -#: src/Module/Contact.php:1025 +#: src/Module/Contact.php:1028 msgid "Edit contact" msgstr "Edytuj kontakt" -#: src/Module/Contact.php:1079 +#: src/Module/Contact.php:1082 msgid "Toggle Blocked status" msgstr "Przełącz status na Zablokowany" -#: src/Module/Contact.php:1087 +#: src/Module/Contact.php:1090 msgid "Toggle Ignored status" msgstr "Przełącz status na Ignorowany" -#: src/Module/Contact.php:1096 +#: src/Module/Contact.php:1099 msgid "Toggle Archive status" msgstr "Przełącz status na Archiwalny" -#: src/Module/Contact.php:1104 +#: src/Module/Contact.php:1107 msgid "Delete contact" msgstr "Usuń kontakt" -#: src/Module/Install.php:118 +#: src/Module/Credits.php:25 +msgid "Credits" +msgstr "Zaufany" + +#: src/Module/Credits.php:26 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "Friendica to projekt społecznościowy, który nie byłby możliwy bez pomocy wielu osób. Oto lista osób, które przyczyniły się do tworzenia kodu lub tłumaczenia Friendica. Dziękuję wam wszystkim!" + +#: src/Module/Directory.php:66 +msgid "No entries (some entries may be hidden)." +msgstr "Brak odwiedzin (niektóre odwiedziny mogą być ukryte)." + +#: src/Module/Directory.php:85 +msgid "Find on this site" +msgstr "Znajdź na tej stronie" + +#: src/Module/Directory.php:87 +msgid "Results for:" +msgstr "Wyniki dla:" + +#: src/Module/Directory.php:89 +msgid "Site Directory" +msgstr "Katalog Witryny" + +#: src/Module/Feedtest.php:20 src/Module/Filer/SaveTag.php:20 +msgid "You must be logged in to use this module" +msgstr "Musisz być zalogowany, aby korzystać z tego modułu" + +#: src/Module/Feedtest.php:49 +msgid "Source URL" +msgstr "Źródłowy adres URL" + +#: src/Module/Filer/SaveTag.php:39 +#, php-format +msgid "Filetag %s saved to item" +msgstr "" + +#: src/Module/Filer/SaveTag.php:49 +msgid "- select -" +msgstr "- wybierz -" + +#: src/Module/FollowConfirm.php:37 +msgid "No given contact." +msgstr "Brak kontaktu." + +#: src/Module/Friendica.php:40 +msgid "Installed addons/apps:" +msgstr "Zainstalowane dodatki/aplikacje:" + +#: src/Module/Friendica.php:45 +msgid "No installed addons/apps" +msgstr "Brak zainstalowanych dodatków/aplikacji" + +#: src/Module/Friendica.php:50 +#, php-format +msgid "Read about the Terms of Service of this node." +msgstr "Przeczytaj o Warunkach świadczenia usług tego węzła." + +#: src/Module/Friendica.php:57 +msgid "On this server the following remote servers are blocked." +msgstr "Na tym serwerze następujące serwery zdalne są blokowane." + +#: src/Module/Friendica.php:75 +#, php-format +msgid "" +"This is Friendica, version %s that is running at the web location %s. The " +"database version is %s, the post update version is %s." +msgstr "To jest wersja Friendica, %s która działa w lokalizacji internetowej %s. Wersja bazy danych to %s wersja po aktualizacji %s." + +#: src/Module/Friendica.php:80 +msgid "" +"Please visit Friendi.ca to learn more " +"about the Friendica project." +msgstr "Odwiedź stronę Friendi.ca aby dowiedzieć się więcej o projekcie Friendica." + +#: src/Module/Friendica.php:81 +msgid "Bug reports and issues: please visit" +msgstr "Raporty o błędach i problemy: odwiedź stronę" + +#: src/Module/Friendica.php:81 +msgid "the bugtracker at github" +msgstr "śledzenie błędów na github" + +#: src/Module/Friendica.php:82 +msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" +msgstr "Propozycje, pochwały itd. – napisz e-mail do „info” małpa „friendi” - kropka - „ca”" + +#: src/Module/Group.php:42 +msgid "Group created." +msgstr "Grupa utworzona." + +#: src/Module/Group.php:48 +msgid "Could not create group." +msgstr "Nie można utworzyć grupy." + +#: src/Module/Group.php:59 src/Module/Group.php:207 src/Module/Group.php:233 +msgid "Group not found." +msgstr "Nie znaleziono grupy." + +#: src/Module/Group.php:65 +msgid "Group name changed." +msgstr "Zmieniono nazwę grupy." + +#: src/Module/Group.php:87 +msgid "Unknown group." +msgstr "Nieznana grupa." + +#: src/Module/Group.php:96 +msgid "Contact is unavailable." +msgstr "Kontakt jest niedostępny." + +#: src/Module/Group.php:100 +msgid "Contact is deleted." +msgstr "Kontakt został usunięty." + +#: src/Module/Group.php:106 +msgid "Contact is blocked, unable to add it to a group." +msgstr "Kontakt jest zablokowany, nie można go dodać do grupy." + +#: src/Module/Group.php:110 +msgid "Unable to add the contact to the group." +msgstr "Nie można dodać kontaktu do grupy." + +#: src/Module/Group.php:112 +msgid "Contact successfully added to group." +msgstr "" + +#: src/Module/Group.php:116 +msgid "Unable to remove the contact from the group." +msgstr "" + +#: src/Module/Group.php:118 +msgid "Contact successfully removed from group." +msgstr "" + +#: src/Module/Group.php:121 +msgid "Unknown group command." +msgstr "" + +#: src/Module/Group.php:124 +msgid "Bad request." +msgstr "" + +#: src/Module/Group.php:163 +msgid "Save Group" +msgstr "Zapisz grupę" + +#: src/Module/Group.php:164 +msgid "Filter" +msgstr "Filtr" + +#: src/Module/Group.php:170 +msgid "Create a group of contacts/friends." +msgstr "Stwórz grupę znajomych." + +#: src/Module/Group.php:212 +msgid "Group removed." +msgstr "Grupa usunięta." + +#: src/Module/Group.php:214 +msgid "Unable to remove group." +msgstr "Nie można usunąć grupy." + +#: src/Module/Group.php:265 +msgid "Delete Group" +msgstr "Usuń grupę" + +#: src/Module/Group.php:275 +msgid "Edit Group Name" +msgstr "Edytuj nazwę grupy" + +#: src/Module/Group.php:285 +msgid "Members" +msgstr "Członkowie" + +#: src/Module/Group.php:301 +msgid "Remove contact from group" +msgstr "Usuń kontakt z grupy" + +#: src/Module/Group.php:335 +msgid "Add contact to group" +msgstr "Dodaj kontakt do grupy" + +#: src/Module/Help.php:43 +msgid "Help:" +msgstr "Pomoc:" + +#: src/Module/Home.php:42 +#, php-format +msgid "Welcome to %s" +msgstr "Witamy w %s" + +#: src/Module/Install.php:158 msgid "Friendica Communications Server - Setup" msgstr "Friendica Communications Server - Instalator" -#: src/Module/Install.php:129 +#: src/Module/Install.php:169 msgid "System check" msgstr "Sprawdzanie systemu" -#: src/Module/Install.php:134 +#: src/Module/Install.php:174 msgid "Check again" msgstr "Sprawdź ponownie" -#: src/Module/Install.php:151 +#: src/Module/Install.php:189 +msgid "Base settings" +msgstr "" + +#: src/Module/Install.php:196 +msgid "Host name" +msgstr "Nazwa hosta" + +#: src/Module/Install.php:198 +msgid "" +"Overwrite this field in case the determinated hostname isn't right, " +"otherweise leave it as is." +msgstr "" + +#: src/Module/Install.php:201 +msgid "Base path to installation" +msgstr "Podstawowa ścieżka do instalacji" + +#: src/Module/Install.php:203 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "Jeśli system nie może wykryć poprawnej ścieżki do instalacji, wprowadź tutaj poprawną ścieżkę. To ustawienie powinno być ustawione tylko wtedy, gdy używasz ograniczonego systemu i dowiązań symbolicznych do twojego webroota." + +#: src/Module/Install.php:206 +msgid "Sub path of the URL" +msgstr "" + +#: src/Module/Install.php:208 +msgid "" +"Overwrite this field in case the sub path determination isn't right, " +"otherwise leave it as is. Leaving this field blank means the installation is" +" at the base URL without sub path." +msgstr "" + +#: src/Module/Install.php:219 msgid "Database connection" msgstr "Połączenie z bazą danych" -#: src/Module/Install.php:152 +#: src/Module/Install.php:220 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "W celu zainstalowania Friendica musimy wiedzieć jak połączyć się z twoją bazą danych." -#: src/Module/Install.php:153 +#: src/Module/Install.php:221 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "Proszę skontaktuj się ze swoim dostawcą usług hostingowych bądź administratorem strony jeśli masz pytania co do tych ustawień ." -#: src/Module/Install.php:154 +#: src/Module/Install.php:222 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "Wymieniona przez Ciebie baza danych powinna już istnieć. Jeżeli nie, utwórz ją przed kontynuacją." -#: src/Module/Install.php:157 +#: src/Module/Install.php:229 msgid "Database Server Name" msgstr "Nazwa serwera bazy danych" -#: src/Module/Install.php:162 +#: src/Module/Install.php:234 msgid "Database Login Name" msgstr "Nazwa użytkownika bazy danych" -#: src/Module/Install.php:168 +#: src/Module/Install.php:240 msgid "Database Login Password" msgstr "Hasło logowania do bazy danych" -#: src/Module/Install.php:170 +#: src/Module/Install.php:242 msgid "For security reasons the password must not be empty" msgstr "Ze względów bezpieczeństwa hasło nie może być puste" -#: src/Module/Install.php:173 +#: src/Module/Install.php:245 msgid "Database Name" msgstr "Nazwa bazy danych" -#: src/Module/Install.php:178 src/Module/Install.php:214 +#: src/Module/Install.php:249 src/Module/Install.php:278 +msgid "Please select a default timezone for your website" +msgstr "Proszę wybrać domyślną strefę czasową dla swojej strony" + +#: src/Module/Install.php:263 +msgid "Site settings" +msgstr "Ustawienia strony" + +#: src/Module/Install.php:273 msgid "Site administrator email address" msgstr "Adres e-mail administratora strony" -#: src/Module/Install.php:180 src/Module/Install.php:214 +#: src/Module/Install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "Adres e-mail konta musi pasować do tego, aby móc korzystać z panelu administracyjnego." -#: src/Module/Install.php:184 src/Module/Install.php:215 -msgid "Please select a default timezone for your website" -msgstr "Proszę wybrać domyślną strefę czasową dla swojej strony" - -#: src/Module/Install.php:208 -msgid "Site settings" -msgstr "Ustawienia strony" - -#: src/Module/Install.php:217 +#: src/Module/Install.php:282 msgid "System Language:" msgstr "Język systemu:" -#: src/Module/Install.php:219 +#: src/Module/Install.php:284 msgid "" "Set the default language for your Friendica installation interface and to " "send emails." msgstr "Ustaw domyślny język dla interfejsu instalacyjnego Friendica i wysyłaj e-maile." -#: src/Module/Install.php:231 +#: src/Module/Install.php:296 msgid "Your Friendica site database has been installed." msgstr "Twoja baza danych witryny Friendica została zainstalowana." -#: src/Module/Install.php:239 +#: src/Module/Install.php:304 msgid "Installation finished" msgstr "Instalacja zakończona" -#: src/Module/Install.php:261 +#: src/Module/Install.php:326 msgid "

    What next

    " msgstr "

    Co dalej

    " -#: src/Module/Install.php:262 +#: src/Module/Install.php:327 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "worker." msgstr "WAŻNE: Będziesz musiał [ręcznie] ustawić zaplanowane zadanie dla pracownika." -#: src/Module/Install.php:265 +#: src/Module/Install.php:330 #, php-format msgid "" "Go to your new Friendica node registration page " @@ -9377,43 +9384,174 @@ msgid "" " administrator email. This will allow you to enter the site admin panel." msgstr "Przejdź do strony rejestracji nowego węzła Friendica i zarejestruj się jako nowy użytkownik. Pamiętaj, aby użyć adresu e-mail wprowadzonego jako e-mail administratora. To pozwoli Ci wejść do panelu administratora witryny." -#: src/Module/Itemsource.php:41 -msgid "Item Guid" -msgstr "Element Guid" +#: src/Module/Invite.php:37 +msgid "Total invitation limit exceeded." +msgstr "Przekroczono limit zaproszeń ogółem." -#: src/Module/Login.php:292 +#: src/Module/Invite.php:60 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Nieprawidłowy adres e-mail." + +#: src/Module/Invite.php:87 +msgid "Please join us on Friendica" +msgstr "Dołącz do nas na Friendica" + +#: src/Module/Invite.php:96 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Przekroczono limit zaproszeń. Skontaktuj się z administratorem witryny." + +#: src/Module/Invite.php:100 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Nie udało się dostarczyć wiadomości." + +#: src/Module/Invite.php:104 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d wiadomość wysłana." +msgstr[1] "%d wiadomości wysłane." +msgstr[2] "%d wysłano ." +msgstr[3] "%d wiadomość wysłano." + +#: src/Module/Invite.php:122 +msgid "You have no more invitations available" +msgstr "Nie masz już dostępnych zaproszeń" + +#: src/Module/Invite.php:129 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Odwiedź %s listę publicznych witryn, do których możesz dołączyć. Członkowie Friendica na innych stronach mogą łączyć się ze sobą, jak również z członkami wielu innych sieci społecznościowych." + +#: src/Module/Invite.php:131 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "Aby zaakceptować to zaproszenie, odwiedź i zarejestruj się %s lub w dowolnej innej publicznej witrynie internetowej Friendica." + +#: src/Module/Invite.php:132 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi. Zobacz %s listę alternatywnych witryn Friendica, do których możesz dołączyć." + +#: src/Module/Invite.php:136 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Przepraszamy. System nie jest obecnie skonfigurowany do łączenia się z innymi publicznymi witrynami lub zapraszania członków." + +#: src/Module/Invite.php:139 +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks." +msgstr "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi." + +#: src/Module/Invite.php:138 +#, php-format +msgid "To accept this invitation, please visit and register at %s." +msgstr "Aby zaakceptować to zaproszenie, odwiedź stronę i zarejestruj się na stronie %s." + +#: src/Module/Invite.php:146 +msgid "Send invitations" +msgstr "Wyślij zaproszenie" + +#: src/Module/Invite.php:147 +msgid "Enter email addresses, one per line:" +msgstr "Wprowadź adresy e-mail, po jednym w wierszu:" + +#: src/Module/Invite.php:151 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "Serdecznie zapraszam do przyłączenia się do mnie i innych bliskich znajomych na stronie Friendica - i pomóż nam stworzyć lepszą sieć społecznościową." + +#: src/Module/Invite.php:153 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Musisz podać ten kod zaproszenia: $invite_code" + +#: src/Module/Invite.php:153 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Po rejestracji połącz się ze mną na stronie mojego profilu pod adresem:" + +#: src/Module/Invite.php:155 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendi.ca" +msgstr "Aby uzyskać więcej informacji na temat projektu Friendica i dlaczego uważamy, że jest to ważne, odwiedź http://friendi.ca" + +#: src/Module/Localtime.php:30 +msgid "Time Conversion" +msgstr "Zmiana czasu" + +#: src/Module/Localtime.php:31 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica udostępnia tę usługę do udostępniania wydarzeń innym sieciom i znajomym w nieznanych strefach czasowych." + +#: src/Module/Localtime.php:32 +#, php-format +msgid "UTC time: %s" +msgstr "Czas UTC %s" + +#: src/Module/Localtime.php:35 +#, php-format +msgid "Current timezone: %s" +msgstr "Obecna strefa czasowa: %s" + +#: src/Module/Localtime.php:39 +#, php-format +msgid "Converted localtime: %s" +msgstr "Zmień strefę czasową: %s" + +#: src/Module/Localtime.php:43 +msgid "Please select your timezone:" +msgstr "Wybierz swoją strefę czasową:" + +#: src/Module/Login.php:295 msgid "Create a New Account" msgstr "Załóż nowe konto" -#: src/Module/Login.php:325 +#: src/Module/Login.php:328 msgid "Password: " msgstr "Hasło: " -#: src/Module/Login.php:326 +#: src/Module/Login.php:329 msgid "Remember me" msgstr "Zapamiętaj mnie" -#: src/Module/Login.php:329 +#: src/Module/Login.php:332 msgid "Or login using OpenID: " msgstr "Lub zaloguj się za pośrednictwem OpenID: " -#: src/Module/Login.php:335 +#: src/Module/Login.php:338 msgid "Forgot your password?" msgstr "Zapomniałeś swojego hasła?" -#: src/Module/Login.php:338 +#: src/Module/Login.php:341 msgid "Website Terms of Service" msgstr "Warunki korzystania z witryny" -#: src/Module/Login.php:339 +#: src/Module/Login.php:342 msgid "terms of service" msgstr "warunki użytkowania" -#: src/Module/Login.php:341 +#: src/Module/Login.php:344 msgid "Website Privacy Policy" msgstr "Polityka Prywatności Witryny" -#: src/Module/Login.php:342 +#: src/Module/Login.php:345 msgid "privacy policy" msgstr "polityka prywatności" @@ -9421,26 +9559,35 @@ msgstr "polityka prywatności" msgid "Logged out." msgstr "Wylogowano." -#: src/Module/Profile.php:102 src/Module/Profile.php:105 +#: src/Module/Maintenance.php:29 +msgid "System down for maintenance" +msgstr "System wyłączony w celu konserwacji" + +#: src/Module/PageNotFound.php:13 +msgid "Page not found." +msgstr "Strona nie znaleziona." + +#: src/Module/Photo.php:87 +#, php-format +msgid "Invalid photo with id %s." +msgstr "" + +#: src/Module/Profile.php:110 src/Module/Profile.php:113 #: src/Protocol/OStatus.php:1302 #, php-format msgid "%s's timeline" msgstr "oś czasu %s" -#: src/Module/Profile.php:103 src/Protocol/OStatus.php:1306 +#: src/Module/Profile.php:111 src/Protocol/OStatus.php:1306 #, php-format msgid "%s's posts" msgstr "wpisy %s" -#: src/Module/Profile.php:104 src/Protocol/OStatus.php:1309 +#: src/Module/Profile.php:112 src/Protocol/OStatus.php:1309 #, php-format msgid "%s's comments" msgstr "komentarze %s" -#: src/Module/Proxy.php:73 -msgid "Bad Request." -msgstr "Nieprawidłowe żądanie." - #: src/Module/Register.php:83 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " @@ -9506,34 +9653,258 @@ msgstr "Wybierz pseudonim: " msgid "Import your profile to this friendica instance" msgstr "Zaimportuj swój profil do tej instancji friendica" -#: src/Module/Register.php:150 +#: src/Module/Register.php:149 msgid "Note: This node explicitly contains adult content" msgstr "Uwaga: Ten węzeł jawnie zawiera treści dla dorosłych" -#: src/Module/Register.php:243 +#: src/Module/Register.php:242 msgid "" "Registration successful. Please check your email for further instructions." msgstr "Rejestracja zakończona pomyślnie. Dalsze instrukcje zostały wysłane na twojego e-maila." -#: src/Module/Register.php:247 +#: src/Module/Register.php:246 #, php-format msgid "" "Failed to send email message. Here your accout details:
    login: %s
    " "password: %s

    You can change your password after login." msgstr "Nie udało się wysłać wiadomości e-mail. Tutaj szczegóły twojego konta:
    login: %s
    hasło: %s

    Możesz zmienić swoje hasło po zalogowaniu." -#: src/Module/Register.php:254 +#: src/Module/Register.php:253 msgid "Registration successful." msgstr "Rejestracja udana." -#: src/Module/Register.php:259 +#: src/Module/Register.php:258 msgid "Your registration can not be processed." msgstr "Nie można przetworzyć Twojej rejestracji." -#: src/Module/Register.php:305 +#: src/Module/Register.php:304 msgid "Your registration is pending approval by the site owner." msgstr "Twoja rejestracja oczekuje na zaakceptowanie przez właściciela witryny." +#: src/Module/Settings/TwoFactor/Index.php:50 +msgid "Two-factor authentication successfully disabled." +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:86 +msgid "" +"

    Use an application on a mobile device to get two-factor authentication " +"codes when prompted on login.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:90 +msgid "Authenticator app" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Configured" +msgstr "Skonfigurowane" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Not Configured" +msgstr "Nie skonfigurowane" + +#: src/Module/Settings/TwoFactor/Index.php:92 +msgid "

    You haven't finished configuring your authenticator app.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:93 +msgid "

    Your authenticator app is correctly configured.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:95 +msgid "Recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:96 +msgid "Remaining valid codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:98 +msgid "" +"

    These one-use codes can replace an authenticator app code in case you " +"have lost access to it.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "Current password:" +msgstr "Aktualne hasło:" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "" +"You need to provide your current password to change two-factor " +"authentication settings." +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:102 +msgid "Enable two-factor authentication" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:103 +msgid "Disable two-factor authentication" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:104 +msgid "Show recovery codes" +msgstr "Pokaż kody odzyskiwania" + +#: src/Module/Settings/TwoFactor/Index.php:105 +msgid "Finish app configuration" +msgstr "Zakończ konfigurację aplikacji" + +#: src/Module/Settings/TwoFactor/Recovery.php:34 +#: src/Module/Settings/TwoFactor/Verify.php:41 +msgid "Please enter your password to access this page." +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:50 +msgid "New recovery codes successfully generated." +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:76 +msgid "Two-factor recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:78 +msgid "" +"

    Recovery codes can be used to access your account in the event you lose " +"access to your device and cannot receive two-factor authentication " +"codes.

    Put these in a safe spot! If you lose your " +"device and don’t have the recovery codes you will lose access to your " +"account.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:80 +msgid "" +"When you generate new recovery codes, you must copy the new codes. Your old " +"codes won’t work anymore." +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:81 +msgid "Generate new recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:83 +msgid "Next: Verification" +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:63 +msgid "Two-factor authentication successfully activated." +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:67 +#: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:41 +msgid "Invalid code, please retry." +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:96 +#, php-format +msgid "" +"

    Or you can submit the authentication settings manually:

    \n" +"
    \n" +"\t
    Issuer
    \n" +"\t
    %s
    \n" +"\t
    Account Name
    \n" +"\t
    %s
    \n" +"\t
    Secret Key
    \n" +"\t
    %s
    \n" +"\t
    Type
    \n" +"\t
    Time-based
    \n" +"\t
    Number of digits
    \n" +"\t
    6
    \n" +"\t
    Hashing algorithm
    \n" +"\t
    SHA-1
    \n" +"
    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:116 +msgid "Two-factor code verification" +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:118 +msgid "" +"

    Please scan this QR Code with your authenticator app and submit the " +"provided code.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:120 +#, php-format +msgid "" +"

    Or you can open the following URL in your mobile devicde:

    %s

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:126 +#: src/Module/TwoFactor/Verify.php:63 +msgid "Please enter a code from your authentication app" +msgstr "Wprowadź kod z aplikacji uwierzytelniającej" + +#: src/Module/Settings/TwoFactor/Verify.php:127 +msgid "Verify code and enable two-factor authentication" +msgstr "Sprawdź kod i włącz uwierzytelnianie dwuskładnikowe" + +#: src/Module/Special/HTTPException.php:32 +msgid "Bad Request" +msgstr "Nieprawidłowe żądanie" + +#: src/Module/Special/HTTPException.php:33 +msgid "Unauthorized" +msgstr "Nieautoryzowane" + +#: src/Module/Special/HTTPException.php:34 +msgid "Forbidden" +msgstr "Zabronione" + +#: src/Module/Special/HTTPException.php:35 +msgid "Not Found" +msgstr "Nie znaleziono" + +#: src/Module/Special/HTTPException.php:36 +msgid "Internal Server Error" +msgstr "" + +#: src/Module/Special/HTTPException.php:37 +msgid "Service Unavailable" +msgstr "" + +#: src/Module/Special/HTTPException.php:44 +msgid "" +"The server cannot or will not process the request due to an apparent client " +"error." +msgstr "Serwer nie może lub nie będzie przetwarzać żądania z powodu widocznego błędu klienta." + +#: src/Module/Special/HTTPException.php:45 +msgid "" +"Authentication is required and has failed or has not yet been provided." +msgstr "Uwierzytelnienie jest wymagane i nie powiodło się lub nie zostało jeszcze dostarczone." + +#: src/Module/Special/HTTPException.php:46 +msgid "" +"The request was valid, but the server is refusing action. The user might not" +" have the necessary permissions for a resource, or may need an account." +msgstr "Żądanie było ważne, ale serwer odmawia działania. Użytkownik może nie mieć wymaganych uprawnień do zasobu lub może potrzebować konta." + +#: src/Module/Special/HTTPException.php:47 +msgid "" +"The requested resource could not be found but may be available in the " +"future." +msgstr "Żądany zasób nie został znaleziony, ale może być dostępny w przyszłości." + +#: src/Module/Special/HTTPException.php:48 +msgid "" +"An unexpected condition was encountered and no more specific message is " +"suitable." +msgstr "Napotkano nieoczekiwany warunek i nie jest odpowiedni żaden bardziej szczegółowy komunikat." + +#: src/Module/Special/HTTPException.php:49 +msgid "" +"The server is currently unavailable (because it is overloaded or down for " +"maintenance). Please try again later." +msgstr "Serwer jest obecnie niedostępny (ponieważ jest przeciążony lub wyłączony z powodu konserwacji). Spróbuj ponownie później." + +#: src/Module/Special/HTTPException.php:55 +msgid "Go back" +msgstr "Wróć" + #: src/Module/Tos.php:35 src/Module/Tos.php:77 msgid "" "At the time of registration, and for providing communications between the " @@ -9569,10 +9940,52 @@ msgstr "W dowolnym momencie zalogowany użytkownik może wyeksportować dane swo msgid "Privacy Statement" msgstr "Oświadczenie o prywatności" +#: src/Module/TwoFactor/Recovery.php:41 +#, php-format +msgid "Remaining recovery codes: %d" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:65 +msgid "Two-factor recovery" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:66 +msgid "" +"

    You can enter one of your one-time recovery codes in case you lost access" +" to your mobile device.

    " +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:62 +#, php-format +msgid "Don’t have your phone? Enter a two-factor recovery code" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:68 +msgid "Please enter a recovery code" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:69 +msgid "Submit recovery code and complete login" +msgstr "" + +#: src/Module/TwoFactor/Verify.php:61 +msgid "" +"

    Open the two-factor authentication app on your device to get an " +"authentication code and verify your identity.

    " +msgstr "" + +#: src/Module/TwoFactor/Verify.php:64 +msgid "Verify code and complete login" +msgstr "" + #: src/Object/Post.php:137 msgid "This entry was edited" msgstr "Ten wpis został zedytowany" +#: src/Object/Post.php:157 +msgid "Private Message" +msgstr "Wiadomość prywatna" + #: src/Object/Post.php:199 msgid "Delete locally" msgstr "Usuń lokalnie" @@ -9649,48 +10062,48 @@ msgstr "Udostępnij to" msgid "share" msgstr "udostępnij" -#: src/Object/Post.php:383 +#: src/Object/Post.php:384 msgid "to" msgstr "do" -#: src/Object/Post.php:384 +#: src/Object/Post.php:385 msgid "via" msgstr "przez" -#: src/Object/Post.php:385 +#: src/Object/Post.php:386 msgid "Wall-to-Wall" msgstr "Wall-to-Wall" -#: src/Object/Post.php:386 +#: src/Object/Post.php:387 msgid "via Wall-To-Wall:" msgstr "via Wall-To-Wall:" -#: src/Object/Post.php:419 +#: src/Object/Post.php:420 #, php-format msgid "Reply to %s" msgstr "Odpowiedź %s" -#: src/Object/Post.php:434 +#: src/Object/Post.php:435 msgid "Notifier task is pending" msgstr "Zadanie Notifier jest w toku" -#: src/Object/Post.php:435 +#: src/Object/Post.php:436 msgid "Delivery to remote servers is pending" msgstr "Trwa przesyłanie do serwerów zdalnych" -#: src/Object/Post.php:436 +#: src/Object/Post.php:437 msgid "Delivery to remote servers is underway" msgstr "Trwa dostawa do serwerów zdalnych" -#: src/Object/Post.php:437 +#: src/Object/Post.php:438 msgid "Delivery to remote servers is mostly done" msgstr "Dostawa do zdalnych serwerów jest w większości wykonywana" -#: src/Object/Post.php:438 +#: src/Object/Post.php:439 msgid "Delivery to remote servers is done" msgstr "Trwa dostarczanie do zdalnych serwerów" -#: src/Object/Post.php:458 +#: src/Object/Post.php:459 #, php-format msgid "%d comment" msgid_plural "%d comments" @@ -9699,37 +10112,37 @@ msgstr[1] "%d komentarze" msgstr[2] "%d komentarzy" msgstr[3] "%d komentarzy" -#: src/Object/Post.php:459 +#: src/Object/Post.php:460 msgid "Show more" msgstr "Pokaż więcej" -#: src/Object/Post.php:460 +#: src/Object/Post.php:461 msgid "Show fewer" msgstr "Pokaż mniej" -#: src/Protocol/Diaspora.php:2496 +#: src/Protocol/Diaspora.php:2438 msgid "Sharing notification from Diaspora network" msgstr "Wspólne powiadomienie z sieci Diaspora" -#: src/Protocol/Diaspora.php:3613 +#: src/Protocol/Diaspora.php:3598 msgid "Attachments:" msgstr "Załączniki:" -#: src/Protocol/OStatus.php:1866 +#: src/Protocol/OStatus.php:1863 #, php-format msgid "%s is now following %s." msgstr "%s zaczął(-ęła) obserwować %s." -#: src/Protocol/OStatus.php:1867 +#: src/Protocol/OStatus.php:1864 msgid "following" msgstr "następujący" -#: src/Protocol/OStatus.php:1870 +#: src/Protocol/OStatus.php:1867 #, php-format msgid "%s stopped following %s." msgstr "%s przestał(a) obserwować %s." -#: src/Protocol/OStatus.php:1871 +#: src/Protocol/OStatus.php:1868 msgid "stopped following" msgstr "przestał śledzić" @@ -9799,16 +10212,16 @@ msgstr "w %1$d %2$s" msgid "%1$d %2$s ago" msgstr "%1$d %2$s temu" -#: src/Worker/Delivery.php:453 +#: src/Worker/Delivery.php:450 msgid "(no subject)" msgstr "(bez tematu)" -#: update.php:217 +#: update.php:218 #, php-format msgid "%s: Updating author-id and owner-id in item and thread table. " msgstr "%s: Aktualizowanie ID autora i właściciela w tabeli pozycji i wątku. " -#: update.php:272 +#: update.php:273 #, php-format msgid "%s: Updating post-type." msgstr "%s: Aktualizowanie typu postu." @@ -9837,63 +10250,73 @@ msgstr "comix" msgid "slackr" msgstr "luźny" -#: view/theme/duepuntozero/config.php:75 +#: view/theme/duepuntozero/config.php:74 msgid "Variations" msgstr "Zmiana" -#: view/theme/frio/config.php:103 +#: view/theme/frio/config.php:105 msgid "Custom" msgstr "Niestandardowe" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Note" msgstr "Uwaga" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Check image permissions if all users are allowed to see the image" msgstr "Sprawdź uprawnienia do zdjęć, jeśli wszyscy użytkownicy mogą zobaczyć obraz" -#: view/theme/frio/config.php:122 +#: view/theme/frio/config.php:123 msgid "Select color scheme" msgstr "Wybierz schemat kolorów" -#: view/theme/frio/config.php:123 +#: view/theme/frio/config.php:124 +msgid "Copy or paste schemestring" +msgstr "" + +#: view/theme/frio/config.php:124 +msgid "" +"You can copy this string to share your theme with others. Pasting here " +"applies the schemestring" +msgstr "" + +#: view/theme/frio/config.php:125 msgid "Navigation bar background color" msgstr "Kolor tła paska nawigacyjnego" -#: view/theme/frio/config.php:124 +#: view/theme/frio/config.php:126 msgid "Navigation bar icon color " msgstr "Kolor ikon na pasku nawigacyjnym " -#: view/theme/frio/config.php:125 +#: view/theme/frio/config.php:127 msgid "Link color" msgstr "Kolor łączy" -#: view/theme/frio/config.php:126 +#: view/theme/frio/config.php:128 msgid "Set the background color" msgstr "Ustaw kolor tła" -#: view/theme/frio/config.php:127 +#: view/theme/frio/config.php:129 msgid "Content background opacity" msgstr "Nieprzezroczystość tła treści" -#: view/theme/frio/config.php:128 +#: view/theme/frio/config.php:130 msgid "Set the background image" msgstr "Ustaw obraz tła" -#: view/theme/frio/config.php:129 +#: view/theme/frio/config.php:131 msgid "Background image style" msgstr "Styl tła" -#: view/theme/frio/config.php:134 +#: view/theme/frio/config.php:136 msgid "Login page background image" msgstr "Obraz tła strony logowania" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Login page background color" msgstr "Kolor tła strony logowania" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Leave background image and color empty for theme defaults" msgstr "Pozostaw obraz tła i kolor pusty dla domyślnych ustawień kompozycji" @@ -9941,27 +10364,27 @@ msgstr "Gość" msgid "Visitor" msgstr "Odwiedzający" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Alignment" msgstr "Wyrównanie" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Left" msgstr "Lewo" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Center" msgstr "Środek" -#: view/theme/quattro/config.php:78 +#: view/theme/quattro/config.php:77 msgid "Color scheme" msgstr "Zestaw kolorów" -#: view/theme/quattro/config.php:79 +#: view/theme/quattro/config.php:78 msgid "Posts font size" msgstr "Rozmiar czcionki postów" -#: view/theme/quattro/config.php:80 +#: view/theme/quattro/config.php:79 msgid "Textareas font size" msgstr "Rozmiar czcionki Textareas" @@ -9969,31 +10392,31 @@ msgstr "Rozmiar czcionki Textareas" msgid "Comma separated list of helper forums" msgstr "Lista pomocników oddzielona przecinkami" -#: view/theme/vier/config.php:123 +#: view/theme/vier/config.php:122 msgid "Set style" msgstr "Ustaw styl" -#: view/theme/vier/config.php:124 +#: view/theme/vier/config.php:123 msgid "Community Pages" msgstr "Strony społeczności" -#: view/theme/vier/config.php:125 view/theme/vier/theme.php:151 +#: view/theme/vier/config.php:124 view/theme/vier/theme.php:151 msgid "Community Profiles" msgstr "Profile społeczności" -#: view/theme/vier/config.php:126 +#: view/theme/vier/config.php:125 msgid "Help or @NewHere ?" msgstr "Pomóż lub @NowyTutaj?" -#: view/theme/vier/config.php:127 view/theme/vier/theme.php:373 +#: view/theme/vier/config.php:126 view/theme/vier/theme.php:373 msgid "Connect Services" msgstr "Połączone serwisy" -#: view/theme/vier/config.php:128 +#: view/theme/vier/config.php:127 msgid "Find Friends" msgstr "Znajdź znajomych" -#: view/theme/vier/config.php:129 view/theme/vier/theme.php:181 +#: view/theme/vier/config.php:128 view/theme/vier/theme.php:181 msgid "Last users" msgstr "Ostatni użytkownicy" diff --git a/view/lang/pl/strings.php b/view/lang/pl/strings.php index 14cd7b61c..cab47a201 100644 --- a/view/lang/pl/strings.php +++ b/view/lang/pl/strings.php @@ -43,6 +43,7 @@ $a->strings["Attending"] = [ ]; $a->strings["Not attending"] = "Nie uczestniczę"; $a->strings["Might attend"] = "Może wziąć udział"; +$a->strings["Reshares"] = "Udostępnianie"; $a->strings["Select"] = "Wybierz"; $a->strings["Delete"] = "Usuń"; $a->strings["View %s's profile @ %s"] = "Pokaż %s's profil @ %s"; @@ -60,6 +61,8 @@ $a->strings["View Photos"] = "Zobacz zdjęcia"; $a->strings["Network Posts"] = "Wiadomości sieciowe"; $a->strings["View Contact"] = "Pokaż kontakt"; $a->strings["Send PM"] = "Wyślij prywatną wiadomość"; +$a->strings["Block"] = "Zablokuj"; +$a->strings["Ignore"] = "Ignoruj"; $a->strings["Poke"] = "Zaczepka"; $a->strings["Connect/Follow"] = "Połącz/Obserwuj"; $a->strings["%s likes this."] = "%s lubi to."; @@ -67,6 +70,7 @@ $a->strings["%s doesn't like this."] = "%s nie lubi tego."; $a->strings["%s attends."] = "%s uczestniczy."; $a->strings["%s doesn't attend."] = "%s nie uczestniczy."; $a->strings["%s attends maybe."] = "%s może bierze udział."; +$a->strings["%s reshared this."] = "%sudostępnił to. "; $a->strings["and"] = "i"; $a->strings["and %d other people"] = "i %d inni ludzie"; $a->strings["%2\$d people like this"] = "%2\$d ludzi lubi to"; @@ -79,6 +83,7 @@ $a->strings["%2\$d people don't attend"] = "%2\ $a->strings["%s don't attend."] = "%s nie uczestniczy."; $a->strings["%2\$d people attend maybe"] = "Możliwe, że %2\$d osoby będą uczestniczyć"; $a->strings["%s attend maybe."] = "%sbyć może uczestniczyć."; +$a->strings["%2\$d people reshared this"] = ""; $a->strings["Visible to everybody"] = "Widoczne dla wszystkich"; $a->strings["Please enter a image/video/audio/webpage URL:"] = "Wprowadź adres URL obrazu/wideo/audio/strony:"; $a->strings["Tag term:"] = "Termin tagu:"; @@ -209,482 +214,12 @@ $a->strings["Yes"] = "Tak"; $a->strings["Permission denied."] = "Brak uprawnień."; $a->strings["Archives"] = "Archiwum"; $a->strings["show more"] = "pokaż więcej"; -$a->strings["Theme settings updated."] = "Zaktualizowano ustawienia motywów."; -$a->strings["Information"] = "Informacje"; -$a->strings["Overview"] = "Przegląd"; -$a->strings["Federation Statistics"] = "Statystyki Organizacji"; -$a->strings["Configuration"] = "Konfiguracja"; -$a->strings["Site"] = "Strona"; -$a->strings["Users"] = "Użytkownicy"; -$a->strings["Addons"] = "Dodatki"; -$a->strings["Themes"] = "Wygląd"; -$a->strings["Additional features"] = "Dodatkowe funkcje"; -$a->strings["Terms of Service"] = "Warunki usługi"; -$a->strings["Database"] = "Baza danych"; -$a->strings["DB updates"] = "Aktualizacje DB"; -$a->strings["Inspect Queue"] = "Sprawdź kolejkę"; -$a->strings["Inspect Deferred Workers"] = "Sprawdź Odroczonych Pracowników"; -$a->strings["Inspect worker Queue"] = "Sprawdź kolejkę pracowników"; -$a->strings["Tools"] = "Narzędzia"; -$a->strings["Contact Blocklist"] = "Lista zablokowanych kontaktów"; -$a->strings["Server Blocklist"] = "Lista zablokowanych serwerów"; -$a->strings["Delete Item"] = "Usuń przedmiot"; -$a->strings["Logs"] = "Logi"; -$a->strings["View Logs"] = "Zobacz rejestry"; -$a->strings["Diagnostics"] = "Diagnostyka"; -$a->strings["PHP Info"] = "Informacje o PHP"; -$a->strings["probe address"] = "adres sondy"; -$a->strings["check webfinger"] = "sprawdź webfinger"; -$a->strings["Admin"] = "Administator"; -$a->strings["Addon Features"] = "Funkcje dodatkowe"; -$a->strings["User registrations waiting for confirmation"] = "Rejestracje użytkowników czekające na potwierdzenie"; -$a->strings["Administration"] = "Administracja"; -$a->strings["Display Terms of Service"] = "Wyświetl Warunki korzystania z usługi"; -$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Włącz stronę Warunki świadczenia usług. Jeśli ta opcja jest włączona, link do warunków zostanie dodany do formularza rejestracyjnego i strony z informacjami ogólnymi."; -$a->strings["Display Privacy Statement"] = "Wyświetl oświadczenie o prywatności"; -$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Pokaż niektóre informacje dotyczące potrzebnych informacji do obsługi węzła zgodnie np. do EU-GDPR."; -$a->strings["Privacy Statement Preview"] = "Podgląd oświadczenia o prywatności"; -$a->strings["The Terms of Service"] = "Warunki świadczenia usług"; -$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Wprowadź tutaj Warunki świadczenia usług dla swojego węzła. Możesz użyć BBCode. Nagłówki sekcji powinny być [h2] i poniżej."; -$a->strings["Save Settings"] = "Zapisz ustawienia"; -$a->strings["Blocked domain"] = "Zablokowana domena"; -$a->strings["The blocked domain"] = "Zablokowana domena"; -$a->strings["Reason for the block"] = "Powód blokowania"; -$a->strings["The reason why you blocked this domain."] = "Powód zablokowania tej domeny."; -$a->strings["Delete domain"] = "Usuń domenę"; -$a->strings["Check to delete this entry from the blocklist"] = "Zaznacz, aby usunąć ten wpis z listy bloków"; -$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "Na tej stronie można zdefiniować czarną listę serwerów ze stowarzyszonej sieci, które nie mogą współdziałać z danym węzłem. Dla wszystkich wprowadzonych domen powinieneś podać powód, dla którego zablokowałeś serwer zdalny."; -$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "Lista zablokowanych serwerów zostanie publicznie udostępniona na stronie /friendica, dzięki czemu użytkownicy i osoby badające problemy z komunikacją mogą łatwo znaleźć przyczynę."; -$a->strings["Add new entry to block list"] = "Dodaj nowy wpis do listy bloków"; -$a->strings["Server Domain"] = "Domena serwera"; -$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "Domena nowego serwera do dodania do listy bloków. Nie dołączaj protokołu."; -$a->strings["Block reason"] = "Powód zablokowania"; -$a->strings["Add Entry"] = "Dodaj wpis"; -$a->strings["Save changes to the blocklist"] = "Zapisz zmiany w liście zablokowanych"; -$a->strings["Current Entries in the Blocklist"] = "Aktualne wpisy na liście zablokowanych"; -$a->strings["Delete entry from blocklist"] = "Usuń wpis z listy zablokowanych"; -$a->strings["Delete entry from blocklist?"] = "Usunąć wpis z listy zablokowanych?"; -$a->strings["Server added to blocklist."] = "Serwer dodany do listy zablokowanych."; -$a->strings["Site blocklist updated."] = "Zaktualizowano listę bloków witryny."; -$a->strings["The contact has been blocked from the node"] = "Kontakt został zablokowany w węźle"; -$a->strings["Could not find any contact entry for this URL (%s)"] = "Nie można znaleźć żadnego kontaktu dla tego adresu URL (%s)"; -$a->strings["%s contact unblocked"] = [ - 0 => "%s kontakt odblokowany", - 1 => "%s kontakty odblokowane", - 2 => "%s kontaktów odblokowanych", - 3 => "%s kontaktów odblokowanych", -]; -$a->strings["Remote Contact Blocklist"] = "Lista zablokowanych kontaktów zdalnych"; -$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "Ta strona pozwala zapobiec wysyłaniu do węzła wiadomości od kontaktu zdalnego."; -$a->strings["Block Remote Contact"] = "Zablokuj kontakt zdalny"; -$a->strings["select all"] = "zaznacz wszystko"; -$a->strings["select none"] = "wybierz brak"; -$a->strings["Block"] = "Zablokuj"; -$a->strings["Unblock"] = "Odblokuj"; -$a->strings["No remote contact is blocked from this node."] = "Z tego węzła nie jest blokowany kontakt zdalny."; -$a->strings["Blocked Remote Contacts"] = "Zablokowane kontakty zdalne"; -$a->strings["Block New Remote Contact"] = "Zablokuj nowy kontakt zdalny"; -$a->strings["Photo"] = "Zdjęcie"; -$a->strings["Name"] = "Nazwa"; -$a->strings["Address"] = "Adres"; -$a->strings["Profile URL"] = "Adres URL profilu"; -$a->strings["%s total blocked contact"] = [ - 0 => "łącznie %s zablokowany kontakt", - 1 => "łącznie %s zablokowane kontakty", - 2 => "łącznie %s zablokowanych kontaktów", - 3 => "%s całkowicie zablokowane kontakty", -]; -$a->strings["URL of the remote contact to block."] = "Adres URL kontaktu zdalnego do zablokowania."; -$a->strings["Delete this Item"] = "Usuń ten przedmiot"; -$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Na tej stronie możesz usunąć przedmiot ze swojego węzła. Jeśli element jest publikowaniem na najwyższym poziomie, cały wątek zostanie usunięty."; -$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "Musisz znać identyfikator GUID tego przedmiotu. Możesz go znaleźć np. patrząc na wyświetlany adres URL. Ostatnia część http://example.com/display/123456 to GUID, tutaj 123456."; -$a->strings["GUID"] = "GUID"; -$a->strings["The GUID of the item you want to delete."] = "Identyfikator elementu GUID, który chcesz usunąć."; -$a->strings["Item marked for deletion."] = "Przedmiot oznaczony do usunięcia."; -$a->strings["unknown"] = "nieznany"; -$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Ta strona zawiera kilka numerów do znanej części federacyjnej sieci społecznościowej, do której należy Twój węzeł Friendica. Liczby te nie są kompletne, ale odzwierciedlają tylko część sieci, o której wie twój węzeł."; -$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "Funkcja Katalog kontaktów automatycznie odkrytych nie jest włączona, poprawi ona wyświetlane tutaj dane."; -$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Obecnie węzeł ten jest świadomy %dwęzłów z %d zarejestrowanymi użytkownikami z następujących platform:"; -$a->strings["ID"] = "ID"; -$a->strings["Recipient Name"] = "Nazwa odbiorcy"; -$a->strings["Recipient Profile"] = "Profil odbiorcy"; -$a->strings["Network"] = "Sieć"; -$a->strings["Created"] = "Utwórz"; -$a->strings["Last Tried"] = "Ostatnia wypróbowana"; -$a->strings["This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."] = "Na tej stronie znajduje się zawartość kolejki dla wysyłek wychodzących. Są to posty, dla których początkowe wysyłanie nie powiodło się. Zostaną one ponownie wysłane później i ostatecznie usunięte, jeśli doręczenie zakończy się trwale."; -$a->strings["Inspect Deferred Worker Queue"] = "Sprawdź kolejkę odroczonych pracowników"; -$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "Ta strona zawiera listę zadań opóźnionych pracowników. Są to zadania, które nie mogą być wykonywane po raz pierwszy."; -$a->strings["Inspect Worker Queue"] = "Sprawdź Kolejkę Pracowników"; -$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "Ta strona zawiera listę aktualnie ustawionych zadań dla pracowników. Te zadania są obsługiwane przez cronjob pracownika, który skonfigurowałeś podczas instalacji."; -$a->strings["Job Parameters"] = "Parametry zadania"; -$a->strings["Priority"] = "Priorytet"; -$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Twoja baza danych nadal używa tabel MyISAM. Powinieneś(-naś) zmienić typ silnika na InnoDB. Ponieważ Friendica będzie używać w przyszłości wyłącznie funkcji InnoDB, powinieneś(-naś) to zmienić! Zobacz tutaj przewodnik, który może być pomocny w konwersji silników tabel. Możesz także użyć polecenia php bin/console.php dbstructure toinnodb instalacji Friendica, aby dokonać automatycznej konwersji.
    "; -$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "Dostępna jest nowa wersja aplikacji Friendica. Twoja aktualna wersja to %1\$s wyższa wersja to %2\$s"; -$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "Aktualizacja bazy danych nie powiodła się. Uruchom polecenie \"php bin/console.php dbstructure update\" z wiersza poleceń i sprawdź błędy, które mogą się pojawić."; -$a->strings["The worker was never executed. Please check your database structure!"] = "Pracownik nigdy nie został stracony. Sprawdź swoją strukturę bazy danych!"; -$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "Ostatnie wykonanie robota było w %s UTC. To jest starsze niż jedna godzina. Sprawdź ustawienia crontab."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = ""; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = ""; -$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s nie jest osiągalny w twoim systemie. Jest to poważny problem z konfiguracją, który uniemożliwia komunikację między serwerami. Zobacz pomoc na stronie instalacji."; -$a->strings["Normal Account"] = "Konto normalne"; -$a->strings["Automatic Follower Account"] = "Automatyczne konto obserwatora"; -$a->strings["Public Forum Account"] = "Publiczne konto na forum"; -$a->strings["Automatic Friend Account"] = "Automatyczny przyjaciel konta"; -$a->strings["Blog Account"] = "Konto Bloga"; -$a->strings["Private Forum Account"] = "Prywatne konto na forum"; -$a->strings["Message queues"] = "Wiadomości"; -$a->strings["Server Settings"] = "Ustawienia serwera"; -$a->strings["Summary"] = "Podsumowanie"; -$a->strings["Registered users"] = "Zarejestrowani użytkownicy"; -$a->strings["Pending registrations"] = "Oczekujące rejestracje"; -$a->strings["Version"] = "Wersja"; -$a->strings["Active addons"] = "Aktywne dodatki"; -$a->strings["Can not parse base url. Must have at least ://"] = "Nie można zanalizować podstawowego adresu URL. Musi mieć co najmniej : //"; -$a->strings["Site settings updated."] = "Zaktualizowano ustawienia strony."; -$a->strings["No special theme for mobile devices"] = "Brak specialnego motywu dla urządzeń mobilnych"; -$a->strings["No community page for local users"] = "Brak strony społeczności dla użytkowników lokalnych"; -$a->strings["No community page"] = "Brak strony społeczności"; -$a->strings["Public postings from users of this site"] = "Publikacje publiczne od użytkowników tej strony"; -$a->strings["Public postings from the federated network"] = "Publikacje wpisy ze sfederowanej sieci"; -$a->strings["Public postings from local users and the federated network"] = "Publikacje publiczne od użytkowników lokalnych i sieci federacyjnej"; -$a->strings["Disabled"] = "Wyłączony"; -$a->strings["Users, Global Contacts"] = "Użytkownicy, kontakty globalne"; -$a->strings["Users, Global Contacts/fallback"] = "Użytkownicy, kontakty globalne/awaryjne"; -$a->strings["One month"] = "Miesiąc"; -$a->strings["Three months"] = "Trzy miesiące"; -$a->strings["Half a year"] = "Pół roku"; -$a->strings["One year"] = "Rok"; -$a->strings["Multi user instance"] = "Tryb wielu użytkowników"; -$a->strings["Closed"] = "Zamknięte"; -$a->strings["Requires approval"] = "Wymaga zatwierdzenia"; -$a->strings["Open"] = "Otwarta"; -$a->strings["No SSL policy, links will track page SSL state"] = "Brak SSL, linki będą śledzić stan SSL"; -$a->strings["Force all links to use SSL"] = "Wymuś używanie SSL na wszystkich odnośnikach"; -$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Wewnętrzne Certyfikaty, użyj SSL tylko dla linków lokalnych . "; -$a->strings["Don't check"] = "Nie sprawdzaj"; -$a->strings["check the stable version"] = "sprawdź wersję stabilną"; -$a->strings["check the development version"] = "sprawdź wersję rozwojową"; -$a->strings["Database (legacy)"] = ""; -$a->strings["Republish users to directory"] = "Ponownie opublikuj użytkowników w katalogu"; -$a->strings["Registration"] = "Rejestracja"; -$a->strings["File upload"] = "Przesyłanie plików"; -$a->strings["Policies"] = "Zasady"; -$a->strings["Advanced"] = "Zaawansowany"; -$a->strings["Auto Discovered Contact Directory"] = "Katalog kontaktów automatycznie odkrytych"; -$a->strings["Performance"] = "Ustawienia"; -$a->strings["Worker"] = "Pracownik"; -$a->strings["Message Relay"] = "Przekazywanie wiadomości"; -$a->strings["Relocate Instance"] = "Zmień lokalizację"; -$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Ostrzeżenie! Zaawansowana funkcja. Może spowodować, że serwer będzie nieosiągalny."; -$a->strings["Site name"] = "Nazwa strony"; -$a->strings["Host name"] = "Nazwa hosta"; -$a->strings["Sender Email"] = "E-mail nadawcy"; -$a->strings["The email address your server shall use to send notification emails from."] = "Adres e-mail używany przez Twój serwer do wysyłania e-maili z powiadomieniami."; -$a->strings["Banner/Logo"] = "Logo"; -$a->strings["Shortcut icon"] = "Ikona skrótu"; -$a->strings["Link to an icon that will be used for browsers."] = "Link do ikony, która będzie używana w przeglądarkach."; -$a->strings["Touch icon"] = "Dołącz ikonę"; -$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link do ikony, która będzie używana w tabletach i telefonach komórkowych."; -$a->strings["Additional Info"] = "Dodatkowe informacje"; -$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "W przypadku serwerów publicznych: możesz tu dodać dodatkowe informacje, które będą wymienione na %s/servers."; -$a->strings["System language"] = "Język systemu"; -$a->strings["System theme"] = "Motyw systemowy"; -$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Domyślny motyw systemu - może być nadpisany przez profil użytkownika zmień ustawienia motywów"; -$a->strings["Mobile system theme"] = "Motyw systemu mobilnego"; -$a->strings["Theme for mobile devices"] = "Motyw na urządzenia mobilne"; -$a->strings["SSL link policy"] = "Polityka odnośników SSL"; -$a->strings["Determines whether generated links should be forced to use SSL"] = "Określa, czy generowane odnośniki będą obowiązkowo używały SSL"; -$a->strings["Force SSL"] = "Wymuś SSL"; -$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Wymuszaj wszystkie żądania SSL bez SSL - Uwaga: w niektórych systemach może to prowadzić do niekończących się pętli."; -$a->strings["Hide help entry from navigation menu"] = "Ukryj pomoc w menu nawigacyjnym"; -$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Chowa pozycje menu dla stron pomocy ze strony nawigacyjnej. Możesz nadal ją wywołać poprzez komendę /help."; -$a->strings["Single user instance"] = "Tryb pojedynczego użytkownika"; -$a->strings["Make this instance multi-user or single-user for the named user"] = "Ustawia tryb dla wielu użytkowników lub pojedynczego użytkownika dla nazwanego użytkownika"; -$a->strings["File storage backend"] = "Backend przechowywania plików"; -$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = ""; -$a->strings["Maximum image size"] = "Maksymalny rozmiar zdjęcia"; -$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maksymalny rozmiar w bitach dla wczytywanego obrazu . Domyślnie jest to 0 , co oznacza bez limitu ."; -$a->strings["Maximum image length"] = "Maksymalna długość obrazu"; -$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maksymalna długość w pikselach dłuższego boku przesyłanego obrazu. Wartością domyślną jest -1, co oznacza brak ograniczeń."; -$a->strings["JPEG image quality"] = "Jakość obrazu JPEG"; -$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Przesłane pliki JPEG zostaną zapisane w tym ustawieniu jakości [0-100]. Domyślna wartość to 100, która jest pełną jakością."; -$a->strings["Register policy"] = "Zasady rejestracji"; -$a->strings["Maximum Daily Registrations"] = "Maksymalna dzienna rejestracja"; -$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "Jeśli rejestracja powyżej jest dozwolona, to określa maksymalną liczbę nowych rejestracji użytkowników do zaakceptowania na dzień. Jeśli rejestracja jest ustawiona na \"Zamknięta\", to ustawienie to nie ma wpływu."; -$a->strings["Register text"] = "Zarejestruj tekst"; -$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Będą wyświetlane w widocznym miejscu na stronie rejestracji. Możesz użyć BBCode tutaj."; -$a->strings["Forbidden Nicknames"] = "Zakazane pseudonimy"; -$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Lista oddzielonych przecinkami pseudonimów, których nie wolno rejestrować. Preset to lista nazw ról zgodnie z RFC 2142."; -$a->strings["Accounts abandoned after x days"] = "Konta porzucone po x dni"; -$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Nie będzie marnować zasobów systemu wypytując zewnętrzne strony o opuszczone konta. Ustaw 0 dla braku limitu czasu ."; -$a->strings["Allowed friend domains"] = "Dozwolone domeny przyjaciół"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Rozdzielana przecinkami lista domen, które mogą nawiązywać przyjaźnie z tą witryną. Symbole wieloznaczne są akceptowane. Pozostaw puste by zezwolić każdej domenie na zaprzyjaźnienie."; -$a->strings["Allowed email domains"] = "Dozwolone domeny e-mailowe"; -$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Rozdzielana przecinkami lista domen dozwolonych w adresach e-mail do rejestracji na tej stronie. Symbole wieloznaczne są akceptowane. Opróżnij, aby zezwolić na dowolne domeny"; -$a->strings["No OEmbed rich content"] = "Brak treści multimedialnych ze znaczkiem HTML"; -$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Nie wyświetlaj zasobów treści (np. osadzonego pliku PDF), z wyjątkiem domen wymienionych poniżej."; -$a->strings["Allowed OEmbed domains"] = "Dozwolone domeny OEmbed"; -$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Rozdzielana przecinkami lista domen, w których wyświetlana jest treść, może być wyświetlana. Symbole wieloznaczne są akceptowane."; -$a->strings["Block public"] = "Blokuj publicznie"; -$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Zaznacz, aby zablokować publiczny dostęp do wszystkich publicznych stron prywatnych w tej witrynie, chyba że jesteś zalogowany."; -$a->strings["Force publish"] = "Wymuś publikację"; -$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Zaznacz, aby wymusić umieszczenie wszystkich profili w tej witrynie w katalogu witryny."; -$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Włączenie tego może naruszyć prawa ochrony prywatności, takie jak GDPR"; -$a->strings["Global directory URL"] = "Globalny adres URL katalogu"; -$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "Adres URL do katalogu globalnego. Jeśli nie zostanie to ustawione, katalog globalny jest całkowicie niedostępny dla aplikacji."; -$a->strings["Private posts by default for new users"] = "Prywatne posty domyślnie dla nowych użytkowników"; -$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Ustaw domyślne uprawnienia do publikowania dla wszystkich nowych członków na domyślną grupę prywatności, a nie publiczną."; -$a->strings["Don't include post content in email notifications"] = "Nie wklejaj zawartości postu do powiadomienia o poczcie"; -$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "W celu ochrony prywatności, nie włączaj zawartości postu/komentarza/wiadomości prywatnej/etc. do powiadomień w wiadomościach mailowych wysyłanych z tej strony."; -$a->strings["Disallow public access to addons listed in the apps menu."] = "Nie zezwalaj na publiczny dostęp do dodatkowych wtyczek wyszczególnionych w menu aplikacji."; -$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Zaznaczenie tego pola spowoduje ograniczenie dodatków wymienionych w menu aplikacji tylko dla członków."; -$a->strings["Don't embed private images in posts"] = "Nie umieszczaj prywatnych zdjęć w postach"; -$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Nie zastępuj lokalnie hostowanych zdjęć prywatnych we wpisach za pomocą osadzonej kopii obrazu. Oznacza to, że osoby, które otrzymują posty zawierające prywatne zdjęcia, będą musiały uwierzytelnić i wczytać każdy obraz, co może trochę potrwać."; -$a->strings["Explicit Content"] = "Treści dla dorosłych"; -$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Ustaw to, aby ogłosić, że Twój węzeł jest używany głównie do jawnej treści, która może nie być odpowiednia dla nieletnich. Informacje te zostaną opublikowane w informacjach o węźle i mogą zostać wykorzystane, np. w katalogu globalnym, aby filtrować węzeł z list węzłów do przyłączenia. Dodatkowo notatka o tym zostanie pokazana na stronie rejestracji użytkownika."; -$a->strings["Allow Users to set remote_self"] = "Zezwól użytkownikom na ustawienie remote_self"; -$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Po sprawdzeniu tego każdy użytkownik może zaznaczyć każdy kontakt jako zdalny w oknie dialogowym kontaktu naprawczego. Ustawienie tej flagi na kontakcie powoduje dublowanie każdego wpisu tego kontaktu w strumieniu użytkowników."; -$a->strings["Block multiple registrations"] = "Zablokuj wielokrotną rejestrację"; -$a->strings["Disallow users to register additional accounts for use as pages."] = "Nie pozwalaj użytkownikom na zakładanie dodatkowych kont do używania jako strony. "; -$a->strings["Disable OpenID"] = "Wyłącz OpenID"; -$a->strings["Disable OpenID support for registration and logins."] = "Wyłącz obsługę OpenID dla rejestracji i logowania."; -$a->strings["No Fullname check"] = "Bez sprawdzania pełnej nazwy"; -$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Zezwól użytkownikom na rejestrację bez spacji między imieniem i nazwiskiem w ich pełnym imieniu."; -$a->strings["Community pages for visitors"] = "Strony społecznościowe dla odwiedzających"; -$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Które strony społeczności powinny być dostępne dla odwiedzających. Lokalni użytkownicy zawsze widzą obie strony."; -$a->strings["Posts per user on community page"] = "Lista postów użytkownika na stronie społeczności"; -$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = "Maksymalna liczba postów na użytkownika na stronie społeczności. (Nie dotyczy 'społeczności globalnej')"; -$a->strings["Disable OStatus support"] = "Wyłącz obsługę OStatus"; -$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Wyłącz wbudowaną kompatybilność z OStatus (StatusNet, GNU Social itd.). Wszystkie rozmowy w OStatus są publiczne, więc czasem będą pojawiać się ostrzeżenia o prywatności."; -$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Importuj wątki OStatus/ActivityPub tylko z naszych kontaktów"; -$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normalnie importujemy każdą zawartość z naszych kontaktów OStatus i ActivityPub. W tej opcji przechowujemy tylko wątki uruchomione przez kontakt znany w naszym systemie."; -$a->strings["OStatus support can only be enabled if threading is enabled."] = "Obsługa OStatus może być włączona tylko wtedy, gdy włączone jest wątkowanie."; -$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Obsługa Diaspory nie może być włączona, ponieważ Friendica została zainstalowana w podkatalogu."; -$a->strings["Enable Diaspora support"] = "Włączyć obsługę Diaspory"; -$a->strings["Provide built-in Diaspora network compatibility."] = "Zapewnij wbudowaną kompatybilność z siecią Diaspora."; -$a->strings["Only allow Friendica contacts"] = "Dopuść tylko kontakty Friendrica"; -$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Wszyscy znajomi muszą używać protokołów Friendica. Wszystkie inne wbudowane protokoły komunikacyjne są wyłączone."; -$a->strings["Verify SSL"] = "Weryfikacja SSL"; -$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Jeśli chcesz, możesz włączyć ścisłe sprawdzanie certyfikatu. Oznacza to, że nie możesz połączyć się (w ogóle) z własnoręcznie podpisanymi stronami SSL."; -$a->strings["Proxy user"] = "Użytkownik proxy"; -$a->strings["Proxy URL"] = "URL Proxy"; -$a->strings["Network timeout"] = "Network timeout"; -$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Wartość jest w sekundach. Ustaw na 0 dla nieograniczonej (niezalecane)."; -$a->strings["Maximum Load Average"] = "Maksymalne obciążenie średnie"; -$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maksymalne obciążenie systemu przed dostawą i odpytywaniem jest odłożone - domyślnie 50."; -$a->strings["Maximum Load Average (Frontend)"] = "Maksymalne obciążenie średnie (Frontend)"; -$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maksymalne obciążenie systemu, zanim frontend zakończy pracę - domyślnie 50."; -$a->strings["Minimal Memory"] = "Minimalna pamięć"; -$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimalna wolna pamięć w MB dla pracownika. Potrzebuje dostępu do /proc/ meminfo - domyślnie 0 (wyłączone)."; -$a->strings["Maximum table size for optimization"] = "Maksymalny rozmiar stołu do optymalizacji"; -$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maksymalny rozmiar tablicy (w MB) do automatycznej optymalizacji. Wprowadź -1, aby go wyłączyć."; -$a->strings["Minimum level of fragmentation"] = "Minimalny poziom fragmentacji"; -$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimalny poziom fragmentacji, aby rozpocząć automatyczną optymalizację - domyślna wartość to 30%."; -$a->strings["Periodical check of global contacts"] = "Okresowa kontrola kontaktów globalnych"; -$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Jeśli jest włączona, kontakty globalne są okresowo sprawdzane pod kątem brakujących lub nieaktualnych danych oraz żywotności kontaktów i serwerów."; -$a->strings["Days between requery"] = "Dni między żądaniem"; -$a->strings["Number of days after which a server is requeried for his contacts."] = "Liczba dni, po upływie których serwer jest żądany dla swoich kontaktów."; -$a->strings["Discover contacts from other servers"] = "Odkryj kontakty z innych serwerów"; -$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."] = "Okresowo sprawdzaj kontakty z innymi serwerami. Możesz wybrać pomiędzy „użytkownikami”: użytkownikami systemu zdalnego, „kontaktami globalnymi”: aktywnymi kontaktami znanymi w systemie. Rozwiązanie awaryjne jest przeznaczone dla serwerów Redmatrix i starszych serwerów friendica, gdzie globalne kontakty nie były dostępne. Powrót awaryjny zwiększa obciążenie serwera, dlatego zalecane ustawienie to „Użytkownicy, kontakty globalne”."; -$a->strings["Timeframe for fetching global contacts"] = "Czas pobierania globalnych kontaktów"; -$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Po aktywowaniu wykrywania ta wartość określa czas działania globalnych kontaktów pobieranych z innych serwerów."; -$a->strings["Search the local directory"] = "Wyszukaj w lokalnym katalogu"; -$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Wyszukaj lokalny katalog zamiast katalogu globalnego. Podczas wyszukiwania lokalnie każde wyszukiwanie zostanie wykonane w katalogu globalnym w tle. Poprawia to wyniki wyszukiwania, gdy wyszukiwanie jest powtarzane."; -$a->strings["Publish server information"] = "Publikuj informacje o serwerze"; -$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "Jeśli opcja jest włączona, ogólne dane serwera i użytkowania zostaną opublikowane. Dane zawierają nazwę i wersję serwera, liczbę użytkowników z profilami publicznymi, liczbę postów oraz aktywowane protokoły i konektory. Aby uzyskać szczegółowe informacje, patrz the-federation.info."; -$a->strings["Check upstream version"] = "Sprawdź wersję powyżej"; -$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Umożliwia sprawdzenie nowych wersji Friendica na github. Jeśli pojawi się nowa wersja, zostaniesz o tym poinformowany w panelu administracyjnym."; -$a->strings["Suppress Tags"] = "Ukryj tagi"; -$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Pomiń wyświetlenie listy hashtagów na końcu postu."; -$a->strings["Clean database"] = "Wyczyść bazę danych"; -$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Usuń stare zdalne pozycje, osierocone rekordy bazy danych i starą zawartość z innych tabel pomocników."; -$a->strings["Lifespan of remote items"] = "Żywotność odległych przedmiotów"; -$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "Po włączeniu czyszczenia bazy danych określa dni, po których zdalne elementy zostaną usunięte. Własne przedmioty oraz oznaczone lub wypełnione pozycje są zawsze przechowywane. 0 wyłącza to zachowanie."; -$a->strings["Lifespan of unclaimed items"] = "Żywotność nieodebranych przedmiotów"; -$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "Po włączeniu czyszczenia bazy danych określa się dni, po których usunięte zostaną nieodebrane zdalne elementy (głównie zawartość z przekaźnika). Wartość domyślna to 90 dni. Wartość domyślna dla ogólnej długości życia zdalnych pozycji, jeśli jest ustawiona na 0."; -$a->strings["Lifespan of raw conversation data"] = "Trwałość nieprzetworzonych danych konwersacji"; -$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "Dane konwersacji są używane do ActivityPub i OStatus, a także do celów debugowania. Powinno być bezpieczne usunięcie go po 14 dniach, domyślnie jest to 90 dni."; -$a->strings["Path to item cache"] = "Ścieżka do pamięci podręcznej"; -$a->strings["The item caches buffers generated bbcode and external images."] = "Pozycja buforuje bufory generowane bbcode i obrazy zewnętrzne."; -$a->strings["Cache duration in seconds"] = "Czas trwania w sekundach"; -$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Jak długo powinny być przechowywane pliki pamięci podręcznej? Wartość domyślna to 86400 sekund (jeden dzień). Aby wyłączyć pamięć podręczną elementów, ustaw wartość na -1."; -$a->strings["Maximum numbers of comments per post"] = "Maksymalna liczba komentarzy na post"; -$a->strings["How much comments should be shown for each post? Default value is 100."] = "Ile komentarzy powinno być pokazywanych dla każdego posta? Domyślna wartość to 100."; -$a->strings["Temp path"] = "Ścieżka do Temp"; -$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Jeśli masz zastrzeżony system, w którym serwer internetowy nie może uzyskać dostępu do ścieżki temp systemu, wprowadź tutaj inną ścieżkę."; -$a->strings["Base path to installation"] = "Podstawowa ścieżka do instalacji"; -$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "Jeśli system nie może wykryć poprawnej ścieżki do instalacji, wprowadź tutaj poprawną ścieżkę. To ustawienie powinno być ustawione tylko wtedy, gdy używasz ograniczonego systemu i dowiązań symbolicznych do twojego webroota."; -$a->strings["Disable picture proxy"] = "Wyłącz obraz proxy"; -$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "Serwer proxy zwiększa wydajność i prywatność. Nie powinno być używane w systemach o bardzo niskiej przepustowości."; -$a->strings["Only search in tags"] = "Szukaj tylko w tagach"; -$a->strings["On large systems the text search can slow down the system extremely."] = "W dużych systemach wyszukiwanie tekstu może wyjątkowo spowolnić system."; -$a->strings["New base url"] = "Nowy bazowy adres url"; -$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Zmień bazowy adres URL dla tego serwera. Wysyła wiadomość o przeniesieniu do wszystkich kontaktów Friendica i Diaspora* wszystkich użytkowników."; -$a->strings["RINO Encryption"] = "Szyfrowanie RINO"; -$a->strings["Encryption layer between nodes."] = "Warstwa szyfrowania między węzłami."; -$a->strings["Enabled"] = "Włącz"; -$a->strings["Maximum number of parallel workers"] = "Maksymalna liczba równoległych pracowników"; -$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Na udostępnionych usługach hostingowych ustaw tę opcję %d. W większych systemach wartości %dsą świetne . Wartość domyślna to %d."; -$a->strings["Don't use 'proc_open' with the worker"] = "Nie używaj 'proc_open' z robotnikiem"; -$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Włącz to, jeśli twój system nie zezwala na użycie 'proc_open'. Może się to zdarzyć w przypadku współdzielonych hosterów. Jeśli ta opcja jest włączona, powinieneś zwiększyć częstotliwość wywołań pracowniczych w twoim pliku crontab."; -$a->strings["Enable fastlane"] = "Włącz Fastlane"; -$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "Po włączeniu system Fastlane uruchamia dodatkowego pracownika, jeśli procesy o wyższym priorytecie są blokowane przez procesy o niższym priorytecie."; -$a->strings["Enable frontend worker"] = "Włącz pracownika frontend"; -$a->strings["When enabled the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "Po włączeniu proces roboczy jest wyzwalany, gdy wykonywany jest dostęp do zaplecza \\x28e.g. wiadomości są dostarczane\\x29. W mniejszych witrynach możesz chcieć wywoływać %s/robotnika regularnie przez zewnętrzne zadanie cron. Tę opcję należy włączyć tylko wtedy, gdy nie można używać zadań cron/zaplanowanych na serwerze."; -$a->strings["Subscribe to relay"] = "Subskrybuj przekaźnik"; -$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Umożliwia odbieranie publicznych wiadomości z przekaźnika. Zostaną uwzględnione w tagach wyszukiwania, subskrybowanych i na stronie społeczności globalnej."; -$a->strings["Relay server"] = "Serwer przekazujący"; -$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Adres serwera przekazującego, do którego należy wysyłać publiczne posty. Na przykład https://relay.diasp.org"; -$a->strings["Direct relay transfer"] = "Bezpośredni transfer przekaźników"; -$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Umożliwia bezpośredni transfer do innych serwerów bez korzystania z serwerów przekazujących"; -$a->strings["Relay scope"] = "Zakres przekaźnika"; -$a->strings["Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."] = "Może być 'wszystkim' lub 'tagami'. 'wszystko' oznacza, że ​​każdy post publiczny powinien zostać odebrany. 'tagi' oznaczają, że powinny być odbierane tylko posty z wybranymi tagami."; -$a->strings["all"] = "wszystko"; -$a->strings["tags"] = "tagi"; -$a->strings["Server tags"] = "Serwer tagów"; -$a->strings["Comma separated list of tags for the 'tags' subscription."] = "Lista oddzielonych przecinkami znaczników dla subskrypcji 'tagów'."; -$a->strings["Allow user tags"] = "Pozwól na tagi użytkowników"; -$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "Po włączeniu tagi z zapisanych wyszukiwań będą używane do subskrypcji 'tagów' oprócz 'relay_server_tags'."; -$a->strings["Start Relocation"] = "Rozpocznij przenoszenie"; -$a->strings["Update has been marked successful"] = "Aktualizacja została oznaczona jako udana"; -$a->strings["Database structure update %s was successfully applied."] = "Pomyślnie zastosowano aktualizację %s struktury bazy danych."; -$a->strings["Executing of database structure update %s failed with error: %s"] = "Wykonanie aktualizacji %s struktury bazy danych nie powiodło się z powodu błędu:%s"; -$a->strings["Executing %s failed with error: %s"] = "Wykonanie %s nie powiodło się z powodu błędu:%s"; -$a->strings["Update %s was successfully applied."] = "Aktualizacja %s została pomyślnie zastosowana."; -$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Aktualizacja %s nie zwróciła statusu. Nieznane, jeśli się udało."; -$a->strings["There was no additional update function %s that needed to be called."] = "Nie było dodatkowej funkcji %s aktualizacji, która musiała zostać wywołana."; -$a->strings["No failed updates."] = "Brak błędów aktualizacji."; -$a->strings["Check database structure"] = "Sprawdź strukturę bazy danych"; -$a->strings["Failed Updates"] = "Błąd aktualizacji"; -$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Nie dotyczy to aktualizacji przed 1139, który nie zwrócił statusu."; -$a->strings["Mark success (if update was manually applied)"] = "Oznacz sukces (jeśli aktualizacja została ręcznie zastosowana)"; -$a->strings["Attempt to execute this update step automatically"] = "Spróbuj automatycznie wykonać ten krok aktualizacji"; -$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tSzanowny Użytkowniku %1\$s, \n\t\t\t\tadministrator %2\$s założył dla ciebie konto."; -$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tDane logowania są następuje:\n\t\t\tLokalizacja witryny:\t%1\$s\n\t\t\tNazwa użytkownika:%2\$s\n\t\t\tHasło:%3\$s\n\n\t\t\tPo zalogowaniu możesz zmienić hasło do swojego konta na stronie \"Ustawienia\".\n \t\t\tProszę poświęć chwilę, aby przejrzeć inne ustawienia konta na tej stronie.\n\n\t\t\tMożesz również dodać podstawowe informacje do swojego domyślnego profilu\n\t\t\t(na stronie \"Profil użytkownika\"), aby inne osoby mogły łatwo Cię znaleźć.\n\n\t\t\tZalecamy ustawienie imienia i nazwiska, dodanie zdjęcia profilowego,\n\t\t\tdodanie niektórych \"słów kluczowych\" profilu (bardzo przydatne w nawiązywaniu nowych znajomości) \n\t\t\ti być może gdzie mieszkasz; jeśli nie chcesz podać więcej szczegów.\n\n\t\t\tW pełni szanujemy Twoje prawo do prywatności i żaden z tych elementów nie jest konieczny.\n\t\t\tJeśli jesteś nowy i nie znasz tutaj nikogo, oni mogą ci pomóc,\n\t\t\tmożesz zdobyć nowych interesujących przyjaciół.\n\n\t\t\tJeśli kiedykolwiek zechcesz usunąć swoje konto, możesz to zrobić na stronie %1\$s/removeme\n\n\t\t\tDziękujemy i Zapraszamy do%4\$s"; -$a->strings["Registration details for %s"] = "Szczegóły rejestracji dla %s"; -$a->strings["%s user blocked/unblocked"] = [ - 0 => "zablokowano/odblokowano %s użytkownika", - 1 => "zablokowano/odblokowano %s użytkowników", - 2 => "zablokowano/odblokowano %s użytkowników", - 3 => "%sużytkowników zablokowanych/odblokowanych", -]; -$a->strings["You can't remove yourself"] = "Nie możesz usunąć siebie"; -$a->strings["%s user deleted"] = [ - 0 => "usunięto %s użytkownika", - 1 => "usunięto %s użytkowników", - 2 => "usunięto %s użytkowników", - 3 => "%s usuniętych użytkowników", -]; -$a->strings["User '%s' deleted"] = "Użytkownik '%s' usunięty"; -$a->strings["User '%s' unblocked"] = "Użytkownik '%s' odblokowany"; -$a->strings["User '%s' blocked"] = "Użytkownik '%s' zablokowany"; -$a->strings["Normal Account Page"] = "Normalna strona konta"; -$a->strings["Soapbox Page"] = "Strona Soapbox"; -$a->strings["Public Forum"] = "Forum publiczne"; -$a->strings["Automatic Friend Page"] = "Automatyczna strona znajomego"; -$a->strings["Private Forum"] = "Prywatne forum"; -$a->strings["Personal Page"] = "Strona osobista"; -$a->strings["Organisation Page"] = "Strona Organizacji"; -$a->strings["News Page"] = "Strona Wiadomości"; -$a->strings["Community Forum"] = "Forum społecznościowe"; -$a->strings["Relay"] = ""; -$a->strings["Email"] = "E-mail"; -$a->strings["Register date"] = "Data rejestracji"; -$a->strings["Last login"] = "Ostatnie logowanie"; -$a->strings["Last item"] = "Ostatni element"; -$a->strings["Type"] = "Typu"; -$a->strings["Add User"] = "Dodaj użytkownika"; -$a->strings["User registrations waiting for confirm"] = "Zarejestrowani użytkownicy czekający na potwierdzenie"; -$a->strings["User waiting for permanent deletion"] = "Użytkownik czekający na trwałe usunięcie"; -$a->strings["Request date"] = "Data prośby"; -$a->strings["No registrations."] = "Brak rejestracji."; -$a->strings["Note from the user"] = "Uwaga od użytkownika"; -$a->strings["Approve"] = "Zatwierdź"; -$a->strings["Deny"] = "Odmów"; -$a->strings["User blocked"] = "Użytkownik zablokowany"; -$a->strings["Site admin"] = "Administracja stroną"; -$a->strings["Account expired"] = "Konto wygasło"; -$a->strings["New User"] = "Nowy użytkownik"; -$a->strings["Permanent deletion"] = "Trwałe usunięcie"; -$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Zaznaczeni użytkownicy zostaną usunięci!\\n\\n Wszystko co zamieścili na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?"; -$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Użytkownik {0} zostanie usunięty!\\n\\n Wszystko co zamieścił na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?"; -$a->strings["Name of the new user."] = "Nazwa nowego użytkownika."; -$a->strings["Nickname"] = "Pseudonim"; -$a->strings["Nickname of the new user."] = "Pseudonim nowego użytkownika."; -$a->strings["Email address of the new user."] = "Adres email nowego użytkownika."; -$a->strings["Addon %s disabled."] = "Dodatek %s wyłączony."; -$a->strings["Addon %s enabled."] = "Dodatek %s włączony."; -$a->strings["Disable"] = "Wyłącz"; -$a->strings["Enable"] = "Zezwól"; -$a->strings["Toggle"] = "Włącz"; -$a->strings["Settings"] = "Ustawienia"; -$a->strings["Author: "] = "Autor: "; -$a->strings["Maintainer: "] = "Opiekun: "; -$a->strings["Reload active addons"] = "Załaduj ponownie aktywne dodatki"; -$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "W twoim węźle nie ma obecnie żadnych dodatków. Możesz znaleźć oficjalne repozytorium dodatków na %1\$s i możesz znaleźć inne interesujące dodatki w otwartym rejestrze dodatków na %2\$s"; -$a->strings["No themes found."] = "Nie znaleziono motywów."; -$a->strings["Screenshot"] = "Zrzut ekranu"; -$a->strings["Reload active themes"] = "Przeładuj aktywne motywy"; -$a->strings["No themes found on the system. They should be placed in %1\$s"] = "Nie znaleziono motywów w systemie. Powinny zostać umieszczone %1\$s"; -$a->strings["[Experimental]"] = "[Eksperymentalne]"; -$a->strings["[Unsupported]"] = "[Niewspieralne]"; -$a->strings["Log settings updated."] = "Zaktualizowano ustawienia logów."; -$a->strings["PHP log currently enabled."] = "Dziennik PHP jest obecnie włączony."; -$a->strings["PHP log currently disabled."] = "Dziennik PHP jest obecnie wyłączony."; -$a->strings["Clear"] = "Wyczyść"; -$a->strings["Enable Debugging"] = "Włącz debugowanie"; -$a->strings["Log file"] = "Plik logów"; -$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Musi być zapisywalny przez serwer sieciowy. W stosunku do katalogu najwyższego poziomu Friendica."; -$a->strings["Log level"] = "Poziom logów"; -$a->strings["PHP logging"] = "Logowanie w PHP"; -$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Aby tymczasowo włączyć rejestrowanie błędów i ostrzeżeń PHP, możesz dołączyć do pliku index.php swojej instalacji. Nazwa pliku ustawiona w linii 'error_log' odnosi się do katalogu najwyższego poziomu friendiki i musi być zapisywalna przez serwer WWW. Opcja '1' dla 'log_errors' i 'display_errors' polega na włączeniu tych opcji, ustawieniu na '0', aby je wyłączyć."; -$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Błąd podczas próby otwarcia %1\$s pliku dziennika. \\r\\n
    Sprawdź, czy plik %1\$s istnieje i czy można go odczytać."; -$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Nie można otworzyć %1\$spliku dziennika. \\r\\n
    Sprawdź, czy plik %1\$s jest czytelny."; -$a->strings["Off"] = "Wyłącz"; -$a->strings["On"] = "Włącz"; -$a->strings["Lock feature %s"] = "Funkcja blokady %s"; -$a->strings["Manage Additional Features"] = "Zarządzanie dodatkowymi funkcjami"; -$a->strings["No friends to display."] = "Brak znajomych do wyświetlenia."; -$a->strings["Connect"] = "Połącz"; $a->strings["Authorize application connection"] = "Autoryzacja połączenia aplikacji"; $a->strings["Return to your app and insert this Securty Code:"] = "Powróć do swojej aplikacji i wpisz ten Kod Bezpieczeństwa:"; $a->strings["Please login to continue."] = "Zaloguj się aby kontynuować."; $a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Czy chcesz zezwolić tej aplikacji na dostęp do swoich postów i kontaktów i/lub tworzenie nowych postów?"; $a->strings["No"] = "Nie"; -$a->strings["You must be logged in to use addons. "] = "Musisz być zalogowany(-a), aby korzystać z dodatków. "; -$a->strings["Applications"] = "Aplikacje"; -$a->strings["No installed applications."] = "Brak zainstalowanych aplikacji."; -$a->strings["Source input"] = "Źródło wejściowe"; -$a->strings["BBCode::toPlaintext"] = "BBCode::na prosty tekst"; -$a->strings["BBCode::convert (raw HTML)"] = "BBCode:: konwersjia (raw HTML)"; -$a->strings["BBCode::convert"] = "BBCode::przekształć"; -$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::przekształć => HTML::toBBCode"; -$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; -$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::przekształć"; -$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; -$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::przekształć => HTML::toBBCode"; -$a->strings["Item Body"] = ""; -$a->strings["Item Tags"] = ""; -$a->strings["Source input (Diaspora format)"] = "Źródło wejściowe (format Diaspora)"; -$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (raw HTML)"; -$a->strings["Markdown::convert"] = "Markdown::convert"; -$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; -$a->strings["Raw HTML input"] = "Surowe wejście HTML"; -$a->strings["HTML Input"] = "Wejście HTML"; -$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; -$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; -$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (raw HTML)"; -$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; -$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; -$a->strings["Source text"] = "Tekst źródłowy"; -$a->strings["BBCode"] = "BBCode"; -$a->strings["Markdown"] = "Markdown"; -$a->strings["HTML"] = "HTML"; -$a->strings["Login"] = "Zaloguj się"; -$a->strings["Bad Request"] = "Nieprawidłowe żądanie"; -$a->strings["The post was created"] = "Post został utworzony"; $a->strings["Access denied."] = "Brak dostępu."; -$a->strings["Page not found."] = "Strona nie znaleziona."; $a->strings["Access to this profile has been restricted."] = "Dostęp do tego profilu został ograniczony."; $a->strings["Events"] = "Wydarzenia"; $a->strings["View"] = "Widok"; @@ -710,8 +245,6 @@ $a->strings["Global Community"] = "Globalna społeczność"; $a->strings["Posts from users of the whole federated network"] = "Wpisy od użytkowników całej sieci stowarzyszonej"; $a->strings["No results."] = "Brak wyników."; $a->strings["This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users."] = "Ten strumień społeczności pokazuje wszystkie publiczne posty otrzymane przez ten węzeł. Mogą nie odzwierciedlać opinii użytkowników tego węzła."; -$a->strings["Credits"] = "Zaufany"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica to projekt społecznościowy, który nie byłby możliwy bez pomocy wielu osób. Oto lista osób, które przyczyniły się do tworzenia kodu lub tłumaczenia Friendica. Dziękuję wam wszystkim!"; $a->strings["Contact settings applied."] = "Ustawienia kontaktu zaktualizowane."; $a->strings["Contact update failed."] = "Nie udało się zaktualizować kontaktu."; $a->strings["Contact not found."] = "Nie znaleziono kontaktu."; @@ -726,6 +259,7 @@ $a->strings["Submit"] = "Potwierdź"; $a->strings["Remote Self"] = "Zdalny Self"; $a->strings["Mirror postings from this contact"] = "Publikacje lustrzane od tego kontaktu"; $a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Oznacz ten kontakt jako remote_self, spowoduje to, że friendica odeśle nowe wpisy z tego kontaktu."; +$a->strings["Name"] = "Nazwa"; $a->strings["Account Nickname"] = "Nazwa konta"; $a->strings["@Tagname - overrides Name/Nickname"] = "@Tagname - zastępuje Imię/Pseudonim"; $a->strings["Account URL"] = "Adres URL konta"; @@ -741,6 +275,7 @@ $a->strings["Parent Password:"] = "Hasło nadrzędne:"; $a->strings["Please enter the password of the parent account to legitimize your request."] = "Wprowadź hasło konta nadrzędnego, aby legalizować swoje żądanie."; $a->strings["Parent User"] = "Użytkownik nadrzędny"; $a->strings["Parent users have total control about this account, including the account settings. Please double check whom you give this access."] = "Użytkownicy nadrzędni mają pełną kontrolę nad tym kontem, w tym także ustawienia konta. Sprawdź dokładnie, komu przyznasz ten dostęp."; +$a->strings["Save Settings"] = "Zapisz ustawienia"; $a->strings["Delegate Page Management"] = "Deleguj zarządzanie stronami"; $a->strings["Delegates"] = "Oddeleguj"; $a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Delegaci mogą zarządzać wszystkimi aspektami tego konta/strony, z wyjątkiem podstawowych ustawień konta. Nie przekazuj swojego konta osobistego nikomu, komu nie ufasz całkowicie."; @@ -757,7 +292,6 @@ $a->strings["Confirmation completed successfully."] = "Potwierdzenie zostało po $a->strings["Temporary failure. Please wait and try again."] = "Tymczasowa awaria. Proszę czekać i spróbuj ponownie."; $a->strings["Introduction failed or was revoked."] = "Wprowadzenie nie powiodło się lub zostało odwołane."; $a->strings["Remote site reported: "] = "Zgłoszona zdana strona:"; -$a->strings["Unable to set contact photo."] = "Nie można ustawić zdjęcia kontaktu."; $a->strings["No user record found for '%s' "] = "Nie znaleziono użytkownika dla '%s'"; $a->strings["Our site encryption key is apparently messed up."] = "Klucz kodujący jest najwyraźniej uszkodzony."; $a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Został podany pusty adres URL witryny lub nie można go odszyfrować."; @@ -789,6 +323,7 @@ $a->strings["You have already introduced yourself here."] = "Już się tu przeds $a->strings["Apparently you are already friends with %s."] = "Wygląda na to, że już jesteście znajomymi z %s."; $a->strings["Invalid profile URL."] = "Nieprawidłowy adres URL profilu."; $a->strings["Disallowed profile URL."] = "Nie dozwolony adres URL profilu."; +$a->strings["Blocked domain"] = "Zablokowana domena"; $a->strings["Failed to update contact record."] = "Aktualizacja rekordu kontaktu nie powiodła się."; $a->strings["Your introduction has been sent."] = "Twoje dane zostały wysłane."; $a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "Zdalnej subskrypcji nie można wykonać dla swojej sieci. Proszę zasubskrybuj bezpośrednio w swoim systemie."; @@ -811,20 +346,12 @@ $a->strings["Diaspora (Socialhome, Hubzilla)"] = "Diaspora (Socialhome, Hubzilla $a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - proszę nie używać tego formularza. Zamiast tego, wpisz %s w pasku wyszukiwania Diaspory."; $a->strings["Your Identity Address:"] = "Twój adres tożsamości:"; $a->strings["Submit Request"] = "Wyślij zgłoszenie"; -$a->strings["No entries (some entries may be hidden)."] = "Brak odwiedzin (niektóre odwiedziny mogą być ukryte)."; -$a->strings["Global Directory"] = "Katalog globalny"; -$a->strings["Find on this site"] = "Znajdź na tej stronie"; -$a->strings["Results for:"] = "Wyniki dla:"; -$a->strings["Site Directory"] = "Katalog Witryny"; -$a->strings["Find"] = "Znajdź"; -$a->strings["Location:"] = "Lokalizacja:"; -$a->strings["Gender:"] = "Płeć:"; -$a->strings["Status:"] = "Status:"; -$a->strings["Homepage:"] = "Strona główna:"; -$a->strings["About:"] = "O:"; $a->strings["People Search - %s"] = "Szukaj osób - %s"; $a->strings["Forum Search - %s"] = "Przeszukiwanie forum - %s"; +$a->strings["Connect"] = "Połącz"; $a->strings["No matches"] = "Brak wyników"; +$a->strings["The requested item doesn't exist or has been deleted."] = "Żądany element nie istnieje lub został usunięty."; +$a->strings["The feed for this item is unavailable."] = "Kanał dla tego elementu jest niedostępny."; $a->strings["Item not found"] = "Nie znaleziono elementu"; $a->strings["Edit post"] = "Edytuj post"; $a->strings["Save"] = "Zapisz"; @@ -847,9 +374,11 @@ $a->strings["Finish date/time is not known or not relevant"] = "Data/czas zakoń $a->strings["Event Finishes:"] = "Zakończenie wydarzenia:"; $a->strings["Adjust for viewer timezone"] = "Dopasuj dla strefy czasowej widza"; $a->strings["Description:"] = "Opis:"; +$a->strings["Location:"] = "Lokalizacja:"; $a->strings["Title:"] = "Tytuł:"; $a->strings["Share this event"] = "Udostępnij te wydarzenie"; $a->strings["Basic"] = "Podstawowy"; +$a->strings["Advanced"] = "Zaawansowany"; $a->strings["Permissions"] = "Uprawnienia"; $a->strings["Failed to remove event"] = "Nie udało się usunąć wydarzenia"; $a->strings["Event removed"] = "Wydarzenie zostało usunięte"; @@ -857,91 +386,24 @@ $a->strings["Photos"] = "Zdjęcia"; $a->strings["Contact Photos"] = "Zdjęcia kontaktu"; $a->strings["Upload"] = "Załaduj"; $a->strings["Files"] = "Pliki"; -$a->strings["You must be logged in to use this module"] = "Musisz być zalogowany, aby korzystać z tego modułu"; -$a->strings["Source URL"] = "Źródłowy adres URL"; -$a->strings["- select -"] = "- wybierz -"; $a->strings["The contact could not be added."] = "Nie można dodać kontaktu."; $a->strings["You already added this contact."] = "Już dodałeś ten kontakt."; $a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Obsługa Diaspory nie jest włączona. Kontakt nie może zostać dodany."; $a->strings["OStatus support is disabled. Contact can't be added."] = "Obsługa OStatus jest wyłączona. Kontakt nie może zostać dodany."; $a->strings["The network type couldn't be detected. Contact can't be added."] = "Nie można wykryć typu sieci. Kontakt nie może zostać dodany."; +$a->strings["Profile URL"] = "Adres URL profilu"; $a->strings["Tags:"] = "Tagi:"; $a->strings["Status Messages and Posts"] = "Status wiadomości i postów"; -$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "To jest wersja Friendica, %s która działa w lokalizacji internetowej %s. Wersja bazy danych to %s wersja po aktualizacji %s."; -$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Odwiedź stronę Friendi.ca aby dowiedzieć się więcej o projekcie Friendica."; -$a->strings["Bug reports and issues: please visit"] = "Raporty o błędach i problemy: odwiedź stronę"; -$a->strings["the bugtracker at github"] = "śledzenie błędów na github"; -$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Propozycje, pochwały itd. – napisz e-mail do „info” małpa „friendi” - kropka - „ca”"; -$a->strings["Installed addons/apps:"] = "Zainstalowane dodatki/aplikacje:"; -$a->strings["No installed addons/apps"] = "Brak zainstalowanych dodatków/aplikacji"; -$a->strings["Read about the Terms of Service of this node."] = "Przeczytaj o Warunkach świadczenia usług tego węzła."; -$a->strings["On this server the following remote servers are blocked."] = "Na tym serwerze następujące serwery zdalne są blokowane."; $a->strings["Friend suggestion sent."] = "Wysłana propozycja dodania do znajomych."; $a->strings["Suggest Friends"] = "Zaproponuj znajomych"; $a->strings["Suggest a friend for %s"] = "Zaproponuj znajomych dla %s"; -$a->strings["Group created."] = "Grupa utworzona."; -$a->strings["Could not create group."] = "Nie można utworzyć grupy."; -$a->strings["Group not found."] = "Nie znaleziono grupy."; -$a->strings["Group name changed."] = "Zmieniono nazwę grupy."; -$a->strings["Permission denied"] = "Odmowa dostępu"; -$a->strings["Save Group"] = "Zapisz grupę"; -$a->strings["Filter"] = "Filtr"; -$a->strings["Create a group of contacts/friends."] = "Stwórz grupę znajomych."; -$a->strings["Group Name: "] = "Nazwa grupy: "; -$a->strings["Contacts not in any group"] = "Kontakt nie jest w żadnej grupie"; -$a->strings["Group removed."] = "Grupa usunięta."; -$a->strings["Unable to remove group."] = "Nie można usunąć grupy."; -$a->strings["Delete Group"] = "Usuń grupę"; -$a->strings["Edit Group Name"] = "Edytuj nazwę grupy"; -$a->strings["Members"] = "Członkowie"; -$a->strings["All Contacts"] = "Wszystkie kontakty"; -$a->strings["Group is empty"] = "Grupa jest pusta"; -$a->strings["Remove contact from group"] = "Usuń kontakt z grupy"; -$a->strings["Click on a contact to add or remove."] = "Kliknij na kontakt w celu dodania lub usunięcia."; -$a->strings["Add contact to group"] = "Dodaj kontakt do grupy"; $a->strings["No profile"] = "Brak profilu"; -$a->strings["Help:"] = "Pomoc:"; -$a->strings["Help"] = "Pomoc"; -$a->strings["Not Found"] = "Nie znaleziono"; -$a->strings["Welcome to %s"] = "Witamy w %s"; -$a->strings["Total invitation limit exceeded."] = "Przekroczono limit zaproszeń ogółem."; -$a->strings["%s : Not a valid email address."] = "%s : Nieprawidłowy adres e-mail."; -$a->strings["Please join us on Friendica"] = "Dołącz do nas na Friendica"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Przekroczono limit zaproszeń. Skontaktuj się z administratorem witryny."; -$a->strings["%s : Message delivery failed."] = "%s : Nie udało się dostarczyć wiadomości."; -$a->strings["%d message sent."] = [ - 0 => "%d wiadomość wysłana.", - 1 => "%d wiadomości wysłane.", - 2 => "%d wysłano .", - 3 => "%d wiadomość wysłano.", -]; -$a->strings["You have no more invitations available"] = "Nie masz już dostępnych zaproszeń"; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Odwiedź %s listę publicznych witryn, do których możesz dołączyć. Członkowie Friendica na innych stronach mogą łączyć się ze sobą, jak również z członkami wielu innych sieci społecznościowych."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Aby zaakceptować to zaproszenie, odwiedź i zarejestruj się %s lub w dowolnej innej publicznej witrynie internetowej Friendica."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi. Zobacz %s listę alternatywnych witryn Friendica, do których możesz dołączyć."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Przepraszamy. System nie jest obecnie skonfigurowany do łączenia się z innymi publicznymi witrynami lub zapraszania członków."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi."; -$a->strings["To accept this invitation, please visit and register at %s."] = "Aby zaakceptować to zaproszenie, odwiedź stronę i zarejestruj się na stronie %s."; -$a->strings["Send invitations"] = "Wyślij zaproszenie"; -$a->strings["Enter email addresses, one per line:"] = "Wprowadź adresy e-mail, po jednym w wierszu:"; -$a->strings["Your message:"] = "Twoja wiadomość:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Serdecznie zapraszam do przyłączenia się do mnie i innych bliskich znajomych na stronie Friendica - i pomóż nam stworzyć lepszą sieć społecznościową."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Musisz podać ten kod zaproszenia: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Po rejestracji połącz się ze mną na stronie mojego profilu pod adresem:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "Aby uzyskać więcej informacji na temat projektu Friendica i dlaczego uważamy, że jest to ważne, odwiedź http://friendi.ca"; $a->strings["Unable to locate original post."] = "Nie można zlokalizować oryginalnej wiadomości."; $a->strings["Empty post discarded."] = "Pusty wpis został odrzucony."; $a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Wiadomość została wysłana do ciebie od %s, członka sieci społecznościowej Friendica."; $a->strings["You may visit them online at %s"] = "Możesz odwiedzić ich online pod adresem %s"; $a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Skontaktuj się z nadawcą odpowiadając na ten post jeśli nie chcesz otrzymywać tych wiadomości."; $a->strings["%s posted an update."] = "%s zaktualizował wpis."; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; -$a->strings["Time Conversion"] = "Zmiana czasu"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica udostępnia tę usługę do udostępniania wydarzeń innym sieciom i znajomym w nieznanych strefach czasowych."; -$a->strings["UTC time: %s"] = "Czas UTC %s"; -$a->strings["Current timezone: %s"] = "Obecna strefa czasowa: %s"; -$a->strings["Converted localtime: %s"] = "Zmień strefę czasową: %s"; -$a->strings["Please select your timezone:"] = "Wybierz swoją strefę czasową:"; $a->strings["Remote privacy information not available."] = "Nie są dostępne zdalne informacje o prywatności."; $a->strings["Visible to:"] = "Widoczne dla:"; $a->strings["No valid account found."] = "Nie znaleziono ważnego konta."; @@ -964,7 +426,6 @@ $a->strings["Your password may be changed from the Settings page after $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t"] = "\n\t\t\tSzanowny Użytkowniku %1\$s, \n\t\t\t\tTwoje hasło zostało zmienione zgodnie z życzeniem. Proszę, zachowaj te \n\t\t\tinformacje dotyczące twoich rekordów (lub natychmiast zmień hasło na \n\t\t\tcoś, co zapamiętasz).\n\t\t"; $a->strings["\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t%2\$s\n\t\t\tPassword:\t%3\$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t"] = "\n\t\t\tDane logowania są następujące:\n\n\t\t\tLokalizacja witryny:\t%1\$s\n\t\t\tNazwa użytkownika:\t%2\$s\n\t\t\tHasło:\t%3\$s\n\n\t\t\tMożesz zmienić hasło na stronie ustawień konta po zalogowaniu.\n\t\t"; $a->strings["Your password has been changed at %s"] = "Twoje hasło zostało zmienione na %s"; -$a->strings["System down for maintenance"] = "System wyłączony w celu konserwacji"; $a->strings["Manage Identities and/or Pages"] = "Zarządzaj tożsamościami i/lub stronami"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Przełącz między różnymi tożsamościami lub stronami społeczność/grupy, które udostępniają dane Twojego konta lub które otrzymałeś uprawnienia \"zarządzaj\""; $a->strings["Select an identity to manage: "] = "Wybierz tożsamość do zarządzania: "; @@ -988,6 +449,7 @@ $a->strings["Please enter a link URL:"] = "Proszę wpisać adres URL:"; $a->strings["Send Private Message"] = "Wyślij prywatną wiadomość"; $a->strings["To:"] = "Do:"; $a->strings["Subject:"] = "Temat:"; +$a->strings["Your message:"] = "Twoja wiadomość:"; $a->strings["No messages."] = "Brak wiadomości."; $a->strings["Message not available."] = "Wiadomość nie jest dostępna."; $a->strings["Delete message"] = "Usuń wiadomość"; @@ -1015,6 +477,7 @@ $a->strings["Warning: This group contains %s member from a network that doesn't ]; $a->strings["Messages in this group won't be send to these receivers."] = "Wiadomości z tej grupy nie będą wysyłane do tych odbiorców."; $a->strings["No such group"] = "Nie ma takiej grupy"; +$a->strings["Group is empty"] = "Grupa jest pusta"; $a->strings["Group: %s"] = "Grupa: %s"; $a->strings["Private messages to this person are at risk of public disclosure."] = "Prywatne wiadomości do tej osoby mogą być widoczne publicznie."; $a->strings["Invalid contact."] = "Nieprawidłowy kontakt."; @@ -1036,6 +499,7 @@ $a->strings["We would like to offer some tips and links to help make your experi $a->strings["Getting Started"] = "Pierwsze kroki"; $a->strings["Friendica Walk-Through"] = "Friendica Przejdź-Przez"; $a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Na stronie Szybki start - znajdź krótkie wprowadzenie do swojego profilu i kart sieciowych, stwórz nowe połączenia i znajdź kilka grup do przyłączenia się."; +$a->strings["Settings"] = "Ustawienia"; $a->strings["Go to Your Settings"] = "Idź do swoich ustawień"; $a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Na stronie Ustawienia - zmień swoje początkowe hasło. Zanotuj także swój adres tożsamości. Wygląda to jak adres e-mail - będzie przydatny w nawiązywaniu znajomości w bezpłatnej sieci społecznościowej."; $a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Przejrzyj pozostałe ustawienia, w szczególności ustawienia prywatności. Niepublikowany wykaz katalogów jest podobny do niepublicznego numeru telefonu. Ogólnie rzecz biorąc, powinieneś opublikować swój wpis - chyba, że wszyscy twoi znajomi i potencjalni znajomi dokładnie wiedzą, jak Cię znaleźć."; @@ -1065,7 +529,6 @@ $a->strings["Go to the Help Section"] = "Przejdź do sekcji pomocy"; $a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Na naszych stronach pomocy można znaleźć szczegółowe informacje na temat innych funkcji programu i zasobów."; $a->strings["Personal Notes"] = "Notatki"; $a->strings["Invalid request identifier."] = "Nieprawidłowe żądanie identyfikatora."; -$a->strings["Ignore"] = "Ignoruj"; $a->strings["Notifications"] = "Powiadomienia"; $a->strings["Network Notifications"] = "Powiadomienia sieciowe"; $a->strings["System Notifications"] = "Powiadomienia systemowe"; @@ -1078,6 +541,7 @@ $a->strings["Hide Ignored Requests"] = "Ukryj zignorowane prośby"; $a->strings["Notification type:"] = "Typ powiadomienia:"; $a->strings["Suggested by:"] = "Sugerowany przez:"; $a->strings["Hide this contact from others"] = "Ukryj ten kontakt przed innymi"; +$a->strings["Approve"] = "Zatwierdź"; $a->strings["Claims to be known to you: "] = "Twierdzi, że go/ją znasz: "; $a->strings["yes"] = "tak"; $a->strings["no"] = "nie"; @@ -1088,6 +552,8 @@ $a->strings["Accepting %s as a sharer allows them to subscribe to your posts, bu $a->strings["Friend"] = "Znajomy"; $a->strings["Sharer"] = "Udostępniający/a"; $a->strings["Subscriber"] = "Subskrybent"; +$a->strings["About:"] = "O:"; +$a->strings["Gender:"] = "Płeć:"; $a->strings["Network:"] = "Sieć:"; $a->strings["No introductions."] = "Brak dostępu."; $a->strings["No more %s notifications."] = "Brak kolejnych %s powiadomień."; @@ -1111,10 +577,8 @@ $a->strings["Upload New Photos"] = "Wyślij nowe zdjęcie"; $a->strings["everybody"] = "wszyscy"; $a->strings["Contact information unavailable"] = "Informacje o kontakcie są niedostępne"; $a->strings["Album not found."] = "Nie znaleziono albumu."; -$a->strings["Delete Album"] = "Usuń album"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Czy na pewno chcesz usunąć ten album i wszystkie zdjęcia z tego albumu?"; -$a->strings["Delete Photo"] = "Usuń zdjęcie"; -$a->strings["Do you really want to delete this photo?"] = "Czy na pewno chcesz usunąć to zdjęcie ?"; +$a->strings["Album successfully deleted"] = "Album został pomyślnie usunięty"; +$a->strings["Album was empty."] = "Album był pusty."; $a->strings["a photo"] = "zdjęcie"; $a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$szostał oznaczony tagiem %2\$s przez %3\$s"; $a->strings["Image exceeds size limit of %s"] = "Obraz przekracza limit rozmiaru wynoszący %s"; @@ -1132,16 +596,22 @@ $a->strings["or select existing album:"] = "lub wybierz istniejący album:"; $a->strings["Do not show a status post for this upload"] = "Nie pokazuj statusu postów dla tego wysłania"; $a->strings["Show to Groups"] = "Pokaż Grupy"; $a->strings["Show to Contacts"] = "Pokaż kontakty"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Czy na pewno chcesz usunąć ten album i wszystkie zdjęcia z tego albumu?"; +$a->strings["Delete Album"] = "Usuń album"; $a->strings["Edit Album"] = "Edytuj album"; +$a->strings["Drop Album"] = "Upuść Album"; $a->strings["Show Newest First"] = "Pokaż najpierw najnowsze"; $a->strings["Show Oldest First"] = "Pokaż najpierw najstarsze"; $a->strings["View Photo"] = "Zobacz zdjęcie"; $a->strings["Permission denied. Access to this item may be restricted."] = "Odmowa dostępu. Dostęp do tych danych może być ograniczony."; $a->strings["Photo not available"] = "Zdjęcie niedostępne"; +$a->strings["Do you really want to delete this photo?"] = "Czy na pewno chcesz usunąć to zdjęcie ?"; +$a->strings["Delete Photo"] = "Usuń zdjęcie"; $a->strings["View photo"] = "Zobacz zdjęcie"; $a->strings["Edit photo"] = "Edytuj zdjęcie"; +$a->strings["Delete photo"] = "Usuń zdjęcie"; $a->strings["Use as profile photo"] = "Ustaw jako zdjęcie profilowe"; -$a->strings["Private Message"] = "Wiadomość prywatna"; +$a->strings["Private Photo"] = "Prywatne zdjęcie"; $a->strings["View Full Size"] = "Zobacz w pełnym rozmiarze"; $a->strings["Tags: "] = "Tagi: "; $a->strings["[Select tags to remove]"] = "[Wybierz tagi do usunięcia]"; @@ -1181,6 +651,7 @@ $a->strings["Sexual Preference"] = "Orientacja seksualna"; $a->strings["XMPP"] = "XMPP"; $a->strings["Homepage"] = "Strona Główna"; $a->strings["Interests"] = "Zainteresowania"; +$a->strings["Address"] = "Adres"; $a->strings["Location"] = "Lokalizacja"; $a->strings["Profile updated."] = "Profil zaktualizowany."; $a->strings["Hide contacts and friends:"] = "Ukryj kontakty i znajomych:"; @@ -1259,8 +730,10 @@ $a->strings["Crop Image"] = "Przytnij zdjęcie"; $a->strings["Please adjust the image cropping for optimum viewing."] = "Dostosuj kadrowanie obrazu, aby uzyskać optymalny obraz."; $a->strings["Done Editing"] = "Zakończono edycję"; $a->strings["Image uploaded successfully."] = "Pomyślnie wysłano zdjęcie."; +$a->strings["Permission denied"] = "Odmowa dostępu"; $a->strings["Invalid profile identifier."] = "Nieprawidłowa nazwa użytkownika."; $a->strings["Profile Visibility Editor"] = "Ustawienia widoczności profilu"; +$a->strings["Click on a contact to add or remove."] = "Kliknij na kontakt w celu dodania lub usunięcia."; $a->strings["Visible To"] = "Widoczne dla"; $a->strings["All Contacts (with secure profile access)"] = "Wszystkie kontakty (z bezpiecznym dostępem do profilu)"; $a->strings["Account approved."] = "Konto zatwierdzone."; @@ -1275,15 +748,17 @@ $a->strings["Please enter your password for verification:"] = "Wprowadź hasło $a->strings["Resubscribing to OStatus contacts"] = "Ponowne subskrybowanie kontaktów OStatus"; $a->strings["Error"] = "Błąd"; $a->strings["Only logged in users are permitted to perform a search."] = "Tylko zalogowani użytkownicy mogą wyszukiwać."; -$a->strings["Too Many Requests"] = "Zbyt dużo próśb"; $a->strings["Only one search per minute is permitted for not logged in users."] = "Dla niezalogowanych użytkowników dozwolone jest tylko jedno wyszukiwanie na minutę."; $a->strings["Search"] = "Szukaj"; $a->strings["Items tagged with: %s"] = "Przedmioty oznaczone tagiem: %s"; $a->strings["Results for: %s"] = "Wyniki dla: %s"; $a->strings["Account"] = "Konto"; +$a->strings["Two-factor authentication"] = "Uwierzytelnianie dwuskładnikowe"; $a->strings["Profiles"] = "Profile"; +$a->strings["Additional features"] = "Dodatkowe funkcje"; $a->strings["Display"] = "Wygląd"; $a->strings["Social Networks"] = "Portale społecznościowe"; +$a->strings["Addons"] = "Dodatki"; $a->strings["Delegations"] = "Delegowanie"; $a->strings["Connected apps"] = "Powiązane aplikacje"; $a->strings["Export personal data"] = "Eksportuj dane osobiste"; @@ -1319,6 +794,8 @@ $a->strings["No name"] = "Bez nazwy"; $a->strings["Remove authorization"] = "Odwołaj upoważnienie"; $a->strings["No Addon settings configured"] = "Brak skonfigurowanych ustawień dodatków"; $a->strings["Addon Settings"] = "Ustawienia Dodatków"; +$a->strings["Off"] = "Wyłącz"; +$a->strings["On"] = "Włącz"; $a->strings["Additional Features"] = "Dodatkowe funkcje"; $a->strings["Diaspora"] = "Diaspora"; $a->strings["enabled"] = "włączone"; @@ -1352,6 +829,7 @@ $a->strings["Action after import:"] = "Akcja po zaimportowaniu:"; $a->strings["Mark as seen"] = "Oznacz jako przeczytane"; $a->strings["Move to folder"] = "Przenieś do folderu"; $a->strings["Move to folder:"] = "Przenieś do folderu:"; +$a->strings["No special theme for mobile devices"] = "Brak specialnego motywu dla urządzeń mobilnych"; $a->strings["%s - (Unsupported)"] = "%s - (Nieobsługiwane)"; $a->strings["%s - (Experimental)"] = "%s- (Eksperymentalne)"; $a->strings["Sunday"] = "Niedziela"; @@ -1385,13 +863,21 @@ $a->strings["Unable to find your profile. Please contact your admin."] = "Nie mo $a->strings["Account Types"] = "Rodzaje kont"; $a->strings["Personal Page Subtypes"] = "Podtypy osobistych stron"; $a->strings["Community Forum Subtypes"] = "Podtypy społeczności forum"; +$a->strings["Personal Page"] = "Strona osobista"; $a->strings["Account for a personal profile."] = "Konto dla profilu osobistego."; +$a->strings["Organisation Page"] = "Strona Organizacji"; $a->strings["Account for an organisation that automatically approves contact requests as \"Followers\"."] = "Konto dla organizacji, która automatycznie zatwierdza prośby o kontakt jako \"Obserwatorzy\"."; +$a->strings["News Page"] = "Strona Wiadomości"; $a->strings["Account for a news reflector that automatically approves contact requests as \"Followers\"."] = "Konto dla reflektora wiadomości, który automatycznie zatwierdza prośby o kontakt jako \"Obserwatorzy\"."; +$a->strings["Community Forum"] = "Forum społecznościowe"; $a->strings["Account for community discussions."] = "Konto do dyskusji w społeczności."; +$a->strings["Normal Account Page"] = "Normalna strona konta"; $a->strings["Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."] = "Konto dla zwykłego profilu osobistego, który wymaga ręcznej zgody \"Przyjaciół\" i \"Obserwatorów\"."; +$a->strings["Soapbox Page"] = "Strona Soapbox"; $a->strings["Account for a public profile that automatically approves contact requests as \"Followers\"."] = "Konto dla profilu publicznego, który automatycznie zatwierdza prośby o kontakt jako \"Obserwatorzy\"."; +$a->strings["Public Forum"] = "Forum publiczne"; $a->strings["Automatically approves all contact requests."] = "Automatycznie zatwierdza wszystkie prośby o kontakt."; +$a->strings["Automatic Friend Page"] = "Automatyczna strona znajomego"; $a->strings["Account for a popular profile that automatically approves contact requests as \"Friends\"."] = "Konto popularnego profilu, które automatycznie zatwierdza prośby o kontakt jako \"Przyjaciele\"."; $a->strings["Private Forum [Experimental]"] = "Prywatne Forum [Eksperymentalne]"; $a->strings["Requires manual approval of contact requests."] = "Wymaga ręcznego zatwierdzania żądań kontaktów."; @@ -1472,8 +958,9 @@ $a->strings["Relocate"] = "Przeniesienie"; $a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Jeśli ten profil został przeniesiony z innego serwera, a niektóre z Twoich kontaktów nie otrzymają aktualizacji, spróbuj nacisnąć ten przycisk."; $a->strings["Resend relocate message to contacts"] = "Wyślij ponownie przenieść wiadomości do kontaktów"; $a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s śledzi %3\$s %2\$s"; -$a->strings["Do you really want to delete this suggestion?"] = "Czy na pewno chcesz usunąć te sugestie ?"; +$a->strings["Contact suggestion successfully ignored."] = "Sugestia kontaktu została zignorowana."; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Brak dostępnych sugestii. Jeśli jest to nowa witryna, spróbuj ponownie za 24 godziny."; +$a->strings["Do you really want to delete this suggestion?"] = "Czy na pewno chcesz usunąć te sugestie ?"; $a->strings["Ignore/Hide"] = "Ignoruj/Ukryj"; $a->strings["Friend Suggestions"] = "Osoby, które możesz znać"; $a->strings["Tag(s) removed"] = "Usunięty Tag(i) "; @@ -1497,8 +984,6 @@ $a->strings["Unfollowing is currently not supported by your network."] = "Brak o $a->strings["Contact unfollowed"] = "Skontaktuj się z obserwowanym"; $a->strings["Disconnect/Unfollow"] = "Rozłącz/Nie obserwuj"; $a->strings["[Embedded content - reload page to view]"] = "[Dodatkowa zawartość - odśwież stronę by zobaczyć]"; -$a->strings["Do you really want to delete this video?"] = "Czy na pewno chcesz usunąć ten film wideo?"; -$a->strings["Delete Video"] = "Usuń wideo"; $a->strings["No videos selected"] = "Nie zaznaczono filmów"; $a->strings["View Video"] = "Zobacz film"; $a->strings["Recent Videos"] = "Ostatnio dodane filmy"; @@ -1519,7 +1004,18 @@ $a->strings["Wall Photos"] = "Tablica zdjęć"; $a->strings["Delete this item?"] = "Usunąć ten element?"; $a->strings["toggle mobile"] = "przełącz na mobilny"; $a->strings["No system theme config value set."] = "Nie ustawiono wartości konfiguracyjnej zestawu tematycznego."; +$a->strings["You must be logged in to use addons. "] = "Musisz być zalogowany(-a), aby korzystać z dodatków. "; $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Znacznik zabezpieczeń formularza nie był poprawny. Prawdopodobnie stało się tak, ponieważ formularz został otwarty zbyt długo (> 3 godziny) przed jego przesłaniem."; +$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Nie można znaleźć żadnego wpisu kontaktu zarchiwizowanego dla tego adresu URL (%s)"; +$a->strings["The contact entries have been archived"] = "Wpisy kontaktów zostały zarchiwizowane"; +$a->strings["Could not find any contact entry for this URL (%s)"] = "Nie można znaleźć żadnego kontaktu dla tego adresu URL (%s)"; +$a->strings["The contact has been blocked from the node"] = "Kontakt został zablokowany w węźle"; +$a->strings["Enter new password: "] = "Wprowadź nowe hasło: "; +$a->strings["Post update version number has been set to %s."] = "Numer wersji aktualizacji posta został ustawiony na %s."; +$a->strings["Check for pending update actions."] = "Sprawdź oczekujące działania aktualizacji."; +$a->strings["Done."] = "Gotowe."; +$a->strings["Execute pending post updates."] = "Wykonaj oczekujące aktualizacje postów."; +$a->strings["All pending post updates are done."] = "Wszystkie oczekujące aktualizacje postów są gotowe."; $a->strings["Frequently"] = "Często"; $a->strings["Hourly"] = "Co godzinę"; $a->strings["Twice daily"] = "Dwa razy dziennie"; @@ -1529,6 +1025,7 @@ $a->strings["Monthly"] = "Miesięczne"; $a->strings["DFRN"] = "DFRN"; $a->strings["OStatus"] = "OStatus"; $a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "E-mail"; $a->strings["Zot!"] = "Zot!"; $a->strings["LinkedIn"] = "LinkedIn"; $a->strings["XMPP/IM"] = "XMPP/IM"; @@ -1645,11 +1142,13 @@ $a->strings["Your videos"] = "Twoje filmy"; $a->strings["Your events"] = "Twoje wydarzenia"; $a->strings["Personal notes"] = "Notatki"; $a->strings["Your personal notes"] = "Twoje prywatne notatki"; +$a->strings["Login"] = "Zaloguj się"; $a->strings["Sign in"] = "Zaloguj się"; $a->strings["Home"] = "Strona domowa"; $a->strings["Home Page"] = "Strona startowa"; $a->strings["Register"] = "Zarejestruj"; $a->strings["Create an account"] = "Załóż konto"; +$a->strings["Help"] = "Pomoc"; $a->strings["Help and documentation"] = "Pomoc i dokumentacja"; $a->strings["Apps"] = "Aplikacje"; $a->strings["Addon applications, utilities, games"] = "Wtyczki, aplikacje, narzędzia, gry"; @@ -1661,8 +1160,11 @@ $a->strings["Conversations on this and other servers"] = "Rozmowy na tym i innyc $a->strings["Events and Calendar"] = "Wydarzenia i kalendarz"; $a->strings["Directory"] = "Katalog"; $a->strings["People directory"] = "Katalog osób"; +$a->strings["Information"] = "Informacje"; $a->strings["Information about this friendica instance"] = "Informacje o tej instancji friendica"; +$a->strings["Terms of Service"] = "Warunki usługi"; $a->strings["Terms of Service of this Friendica instance"] = "Warunki świadczenia usług tej instancji Friendica"; +$a->strings["Network"] = "Sieć"; $a->strings["Conversations from your friends"] = "Rozmowy Twoich przyjaciół"; $a->strings["Network Reset"] = "Resetowanie sieci"; $a->strings["Load Network page with no filters"] = "Załaduj stronę sieci bez filtrów"; @@ -1678,6 +1180,7 @@ $a->strings["Manage other pages"] = "Zarządzaj innymi stronami"; $a->strings["Account settings"] = "Ustawienia konta"; $a->strings["Manage/Edit Profiles"] = "Zarządzaj/Edytuj profile"; $a->strings["Manage/edit friends and contacts"] = "Zarządzaj listą przyjaciół i kontaktami"; +$a->strings["Admin"] = "Administator"; $a->strings["Site setup and configuration"] = "Konfiguracja i ustawienia instancji"; $a->strings["Navigation"] = "Nawigacja"; $a->strings["Site map"] = "Mapa strony"; @@ -1721,9 +1224,11 @@ $a->strings["%d invitation available"] = [ $a->strings["Find People"] = "Znajdź ludzi"; $a->strings["Enter name or interest"] = "Wpisz nazwę lub zainteresowanie"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Przykład: Jan Kowalski, Wędkarstwo"; +$a->strings["Find"] = "Znajdź"; $a->strings["Similar Interests"] = "Podobne zainteresowania"; $a->strings["Random Profile"] = "Domyślny profil"; $a->strings["Invite Friends"] = "Zaproś znajomych"; +$a->strings["Global Directory"] = "Katalog globalny"; $a->strings["Local Directory"] = "Katalog lokalny"; $a->strings["Protocols"] = "Protokoły"; $a->strings["All Protocols"] = "Wszystkie protokoły"; @@ -1737,23 +1242,13 @@ $a->strings["%d contact in common"] = [ 3 => "%dwspólnych kontaktów", ]; $a->strings["Post to Email"] = "Prześlij e-mailem"; -$a->strings["Hide your profile details from unknown viewers?"] = "Ukryć szczegóły twojego profilu przed nieznajomymi?"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Wtyczki są wyłączone, ponieważ \"%s\" jest włączone."; $a->strings["Visible to everybody"] = "Widoczny dla wszystkich"; $a->strings["show"] = "pokaż"; $a->strings["don't show"] = "nie pokazuj"; +$a->strings["Connectors"] = ""; +$a->strings["Hide your profile details from unknown viewers?"] = "Ukryć szczegóły twojego profilu przed nieznajomymi?"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Wtyczki są wyłączone, ponieważ \"%s\" jest włączone."; $a->strings["Close"] = "Zamknij"; -$a->strings["Welcome "] = "Witaj "; -$a->strings["Please upload a profile photo."] = "Proszę dodać zdjęcie profilowe."; -$a->strings["Welcome back "] = "Witaj ponownie "; -$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Nie można znaleźć żadnego wpisu kontaktu zarchiwizowanego dla tego adresu URL (%s)"; -$a->strings["The contact entries have been archived"] = "Wpisy kontaktów zostały zarchiwizowane"; -$a->strings["Enter new password: "] = "Wprowadź nowe hasło: "; -$a->strings["Post update version number has been set to %s."] = "Numer wersji aktualizacji posta został ustawiony na %s."; -$a->strings["Check for pending update actions."] = "Sprawdź oczekujące działania aktualizacji."; -$a->strings["Done."] = "Gotowe."; -$a->strings["Execute pending post updates."] = "Wykonaj oczekujące aktualizacje postów."; -$a->strings["All pending post updates are done."] = "Wszystkie oczekujące aktualizacje postów są gotowe."; $a->strings["The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Plik konfiguracyjny bazy danych \"config/local.config.php\" nie mógł zostać zapisany. Proszę użyć załączonego tekstu, aby utworzyć plik konfiguracyjny w katalogu głównym serwera."; $a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Może być konieczne zaimportowanie pliku \"database.sql\" ręcznie, używając phpmyadmin lub mysql."; $a->strings["Please see the file \"INSTALL.txt\"."] = "Proszę przejrzeć plik \"INSTALL.txt\"."; @@ -1870,21 +1365,13 @@ $a->strings["%s is now friends with %s"] = "%s jest teraz znajomym %s"; $a->strings["Friend Suggestion"] = "Propozycja znajomych"; $a->strings["Friend/Connect Request"] = "Prośba o dodanie do przyjaciół/powiązanych"; $a->strings["New Follower"] = "Nowy obserwujący"; -$a->strings["Error 400 - Bad Request"] = "Błąd 400 - nieprawidłowe żądanie"; -$a->strings["Error 401 - Unauthorized"] = "Błąd 401 - Nieautoryzowane"; -$a->strings["Error 403 - Forbidden"] = "Błąd 403 - Zabroniony"; -$a->strings["Error 404 - Not Found"] = "Błąd 404 nie znaleziono"; -$a->strings["Error 500 - Internal Server Error"] = "Błąd 500 - Błąd wewnętrzny serwera"; -$a->strings["Error 503 - Service Unavailable"] = "Błąd 503 Usługa Niedostępna"; -$a->strings["The server cannot or will not process the request due to an apparent client error."] = "Serwer nie może lub nie będzie przetwarzać żądania z powodu widocznego błędu klienta."; -$a->strings["Authentication is required and has failed or has not yet been provided."] = "Uwierzytelnienie jest wymagane i nie powiodło się lub nie zostało jeszcze dostarczone."; -$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "Żądanie było ważne, ale serwer odmawia działania. Użytkownik może nie mieć wymaganych uprawnień do zasobu lub może potrzebować konta."; -$a->strings["The requested resource could not be found but may be available in the future."] = "Żądany zasób nie został znaleziony, ale może być dostępny w przyszłości."; -$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "Napotkano nieoczekiwany warunek i nie jest odpowiedni żaden bardziej szczegółowy komunikat."; -$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "Serwer jest obecnie niedostępny (ponieważ jest przeciążony lub wyłączony z powodu konserwacji). Spróbuj ponownie później."; +$a->strings["Welcome %s"] = "Witaj %s"; +$a->strings["Please upload a profile photo."] = "Proszę dodać zdjęcie profilowe."; +$a->strings["Welcome back %s"] = "Witaj ponownie %s"; $a->strings["Update %s failed. See error logs."] = "Aktualizacja %s nie powiodła się. Zobacz dziennik błędów."; $a->strings["\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\t\tDeweloperzy friendica wydali niedawno aktualizację %s,\n\t\t\t\tale podczas próby instalacji, coś poszło nie tak.\n\t\t\t\tZostanie to naprawione wkrótce i nie mogę tego zrobić sam. Proszę skontaktować się z \n\t\t\t\tprogramistami friendica, jeśli nie możesz mi pomóc na własną rękę. Moja baza danych może być nieprawidłowa."; $a->strings["The error message is\n[pre]%s[/pre]"] = "Komunikat o błędzie jest \n[pre]%s[/ pre]"; +$a->strings["[Friendica Notify] Database update"] = "[Powiadomienie Friendica] Aktualizacja bazy danych"; $a->strings["\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s."] = "\n\t\t\t\t\tBaza danych Friendica została pomyślnie zaktualizowana z %s do %s."; $a->strings["Error decoding account file"] = "Błąd podczas odczytu pliku konta"; $a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Błąd! Brak danych wersji w pliku! To nie jest plik konta Friendica?"; @@ -1920,6 +1407,7 @@ $a->strings["Use mailto: in front of address to force email check."] = "Użyj ma $a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Określony adres profilu należy do sieci, która została wyłączona na tej stronie."; $a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Profil ograniczony. Ta osoba będzie niezdolna do odbierania osobistych powiadomień od ciebie."; $a->strings["Unable to retrieve contact information."] = "Nie można otrzymać informacji kontaktowych"; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; $a->strings["Starts:"] = "Rozpoczęcie:"; $a->strings["Finishes:"] = "Zakończenie:"; $a->strings["all-day"] = "cały dzień"; @@ -1943,7 +1431,9 @@ $a->strings["Default privacy group for new contacts"] = "Domyślne ustawienia pr $a->strings["Everybody"] = "Wszyscy"; $a->strings["edit"] = "edytuj"; $a->strings["Edit group"] = "Edytuj grupy"; +$a->strings["Contacts not in any group"] = "Kontakt nie jest w żadnej grupie"; $a->strings["Create a new group"] = "Stwórz nową grupę"; +$a->strings["Group Name: "] = "Nazwa grupy: "; $a->strings["Edit groups"] = "Edytuj grupy"; $a->strings["activity"] = "aktywność"; $a->strings["comment"] = [ @@ -1958,11 +1448,11 @@ $a->strings["bytes"] = "bajty"; $a->strings["View on separate page"] = "Zobacz na oddzielnej stronie"; $a->strings["view on separate page"] = "zobacz na oddzielnej stronie"; $a->strings["[no subject]"] = "[bez tematu]"; -$a->strings["Requested account is not available."] = "Żądane konto jest niedostępne."; -$a->strings["Requested profile is not available."] = "Żądany profil jest niedostępny."; $a->strings["Edit profile"] = "Edytuj profil"; $a->strings["Atom feed"] = "Kanał Atom"; $a->strings["Manage/edit profiles"] = "Zarządzaj profilami"; +$a->strings["Status:"] = "Status:"; +$a->strings["Homepage:"] = "Strona główna:"; $a->strings["XMPP:"] = "XMPP:"; $a->strings["g A l F d"] = "g A I F d"; $a->strings["F d"] = "F d"; @@ -2043,7 +1533,456 @@ $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Yo $a->strings["Registration at %s"] = "Rejestracja w %s"; $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"] = "\n\t\t\tSzanowny(-a) %1\$s,\n\t\t\t\tDziękujemy za rejestrację na stronie %2\$s. Twoje konto zostało utworzone."; $a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."] = "\n\t\t\tDane logowania są następuje:\n\t\t\tLokalizacja witryny:\t%3\$s\n\t\t\tNazwa użytkownika:\t\t%1\$s\n\t\t\tHasło:\t\t%5\$s\n\n\t\t\tPo zalogowaniu możesz zmienić hasło do swojego konta na stronie \"Ustawienia\".\n \t\t\tProszę poświęć chwilę, aby przejrzeć inne ustawienia konta na tej stronie.\n\n\t\t\tMożesz również dodać podstawowe informacje do swojego domyślnego profilu\n\t\t\t(na stronie \"Profil użytkownika\"), aby inne osoby mogły łatwo Cię znaleźć.\n\n\t\t\tZalecamy ustawienie imienia i nazwiska, dodanie zdjęcia profilowego,\n\t\t\tdodanie niektórych \"słów kluczowych\" profilu (bardzo przydatne w nawiązywaniu nowych znajomości) \n\t\t\ti być może gdzie mieszkasz; jeśli nie chcesz podać więcej szczegów.\n\n\t\t\tW pełni szanujemy Twoje prawo do prywatności i żaden z tych elementów nie jest konieczny.\n\t\t\tJeśli jesteś nowy i nie znasz tutaj nikogo, oni mogą ci pomóc\n\t\t\tmożesz zdobyć nowych interesujących przyjaciół.\n\n\t\t\tJeśli kiedykolwiek zechcesz usunąć swoje konto, możesz to zrobić na stronie %3\$s/removeme\n\n\t\t\tDziękujemy i Zapraszamy do %2\$s."; +$a->strings["Registration details for %s"] = "Szczegóły rejestracji dla %s"; +$a->strings["Addon not found."] = "Nie znaleziono dodatku."; +$a->strings["Addon %s disabled."] = "Dodatek %s wyłączony."; +$a->strings["Addon %s enabled."] = "Dodatek %s włączony."; +$a->strings["Disable"] = "Wyłącz"; +$a->strings["Enable"] = "Zezwól"; +$a->strings["Administration"] = "Administracja"; +$a->strings["Toggle"] = "Włącz"; +$a->strings["Author: "] = "Autor: "; +$a->strings["Maintainer: "] = "Opiekun: "; +$a->strings["Addon %s failed to install."] = "Instalacja dodatku %s nie powiodła się."; +$a->strings["Reload active addons"] = "Załaduj ponownie aktywne dodatki"; +$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "W twoim węźle nie ma obecnie żadnych dodatków. Możesz znaleźć oficjalne repozytorium dodatków na %1\$s i możesz znaleźć inne interesujące dodatki w otwartym rejestrze dodatków na %2\$s"; +$a->strings["%s contact unblocked"] = [ + 0 => "%s kontakt odblokowany", + 1 => "%s kontakty odblokowane", + 2 => "%s kontaktów odblokowanych", + 3 => "%s kontaktów odblokowanych", +]; +$a->strings["Remote Contact Blocklist"] = "Lista zablokowanych kontaktów zdalnych"; +$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "Ta strona pozwala zapobiec wysyłaniu do węzła wiadomości od kontaktu zdalnego."; +$a->strings["Block Remote Contact"] = "Zablokuj kontakt zdalny"; +$a->strings["select all"] = "zaznacz wszystko"; +$a->strings["select none"] = "wybierz brak"; +$a->strings["Unblock"] = "Odblokuj"; +$a->strings["No remote contact is blocked from this node."] = "Z tego węzła nie jest blokowany kontakt zdalny."; +$a->strings["Blocked Remote Contacts"] = "Zablokowane kontakty zdalne"; +$a->strings["Block New Remote Contact"] = "Zablokuj nowy kontakt zdalny"; +$a->strings["Photo"] = "Zdjęcie"; +$a->strings["%s total blocked contact"] = [ + 0 => "łącznie %s zablokowany kontakt", + 1 => "łącznie %s zablokowane kontakty", + 2 => "łącznie %s zablokowanych kontaktów", + 3 => "%s całkowicie zablokowane kontakty", +]; +$a->strings["URL of the remote contact to block."] = "Adres URL kontaktu zdalnego do zablokowania."; +$a->strings["Server added to blocklist."] = "Serwer dodany do listy zablokowanych."; +$a->strings["Site blocklist updated."] = "Zaktualizowano listę bloków witryny."; +$a->strings["The blocked domain"] = "Zablokowana domena"; +$a->strings["Reason for the block"] = "Powód blokowania"; +$a->strings["The reason why you blocked this domain."] = "Powód zablokowania tej domeny."; +$a->strings["Delete domain"] = "Usuń domenę"; +$a->strings["Check to delete this entry from the blocklist"] = "Zaznacz, aby usunąć ten wpis z listy bloków"; +$a->strings["Server Blocklist"] = "Lista zablokowanych serwerów"; +$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "Na tej stronie można zdefiniować czarną listę serwerów ze stowarzyszonej sieci, które nie mogą współdziałać z danym węzłem. Dla wszystkich wprowadzonych domen powinieneś podać powód, dla którego zablokowałeś serwer zdalny."; +$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "Lista zablokowanych serwerów zostanie publicznie udostępniona na stronie /friendica, dzięki czemu użytkownicy i osoby badające problemy z komunikacją mogą łatwo znaleźć przyczynę."; +$a->strings["Add new entry to block list"] = "Dodaj nowy wpis do listy bloków"; +$a->strings["Server Domain"] = "Domena serwera"; +$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "Domena nowego serwera do dodania do listy bloków. Nie dołączaj protokołu."; +$a->strings["Block reason"] = "Powód zablokowania"; +$a->strings["Add Entry"] = "Dodaj wpis"; +$a->strings["Save changes to the blocklist"] = "Zapisz zmiany w liście zablokowanych"; +$a->strings["Current Entries in the Blocklist"] = "Aktualne wpisy na liście zablokowanych"; +$a->strings["Delete entry from blocklist"] = "Usuń wpis z listy zablokowanych"; +$a->strings["Delete entry from blocklist?"] = "Usunąć wpis z listy zablokowanych?"; +$a->strings["Update has been marked successful"] = "Aktualizacja została oznaczona jako udana"; +$a->strings["Database structure update %s was successfully applied."] = "Pomyślnie zastosowano aktualizację %s struktury bazy danych."; +$a->strings["Executing of database structure update %s failed with error: %s"] = "Wykonanie aktualizacji %s struktury bazy danych nie powiodło się z powodu błędu:%s"; +$a->strings["Executing %s failed with error: %s"] = "Wykonanie %s nie powiodło się z powodu błędu:%s"; +$a->strings["Update %s was successfully applied."] = "Aktualizacja %s została pomyślnie zastosowana."; +$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Aktualizacja %s nie zwróciła statusu. Nieznane, jeśli się udało."; +$a->strings["There was no additional update function %s that needed to be called."] = "Nie było dodatkowej funkcji %s aktualizacji, która musiała zostać wywołana."; +$a->strings["No failed updates."] = "Brak błędów aktualizacji."; +$a->strings["Check database structure"] = "Sprawdź strukturę bazy danych"; +$a->strings["Failed Updates"] = "Błąd aktualizacji"; +$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Nie dotyczy to aktualizacji przed 1139, który nie zwrócił statusu."; +$a->strings["Mark success (if update was manually applied)"] = "Oznacz sukces (jeśli aktualizacja została ręcznie zastosowana)"; +$a->strings["Attempt to execute this update step automatically"] = "Spróbuj automatycznie wykonać ten krok aktualizacji"; +$a->strings["Lock feature %s"] = "Funkcja blokady %s"; +$a->strings["Manage Additional Features"] = "Zarządzanie dodatkowymi funkcjami"; +$a->strings["unknown"] = "nieznany"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Ta strona zawiera kilka numerów do znanej części federacyjnej sieci społecznościowej, do której należy Twój węzeł Friendica. Liczby te nie są kompletne, ale odzwierciedlają tylko część sieci, o której wie twój węzeł."; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "Funkcja Katalog kontaktów automatycznie odkrytych nie jest włączona, poprawi ona wyświetlane tutaj dane."; +$a->strings["Federation Statistics"] = "Statystyki Organizacji"; +$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Obecnie węzeł ten jest świadomy %dwęzłów z %d zarejestrowanymi użytkownikami z następujących platform:"; +$a->strings["Item marked for deletion."] = "Przedmiot oznaczony do usunięcia."; +$a->strings["Delete Item"] = "Usuń przedmiot"; +$a->strings["Delete this Item"] = "Usuń ten przedmiot"; +$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Na tej stronie możesz usunąć przedmiot ze swojego węzła. Jeśli element jest publikowaniem na najwyższym poziomie, cały wątek zostanie usunięty."; +$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "Musisz znać identyfikator GUID tego przedmiotu. Możesz go znaleźć np. patrząc na wyświetlany adres URL. Ostatnia część http://example.com/display/123456 to GUID, tutaj 123456."; +$a->strings["GUID"] = "GUID"; +$a->strings["The GUID of the item you want to delete."] = "Identyfikator elementu GUID, który chcesz usunąć."; +$a->strings["Item Guid"] = "Element Guid"; +$a->strings["Log settings updated."] = "Zaktualizowano ustawienia logów."; +$a->strings["PHP log currently enabled."] = "Dziennik PHP jest obecnie włączony."; +$a->strings["PHP log currently disabled."] = "Dziennik PHP jest obecnie wyłączony."; +$a->strings["Logs"] = "Logi"; +$a->strings["Clear"] = "Wyczyść"; +$a->strings["Enable Debugging"] = "Włącz debugowanie"; +$a->strings["Log file"] = "Plik logów"; +$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Musi być zapisywalny przez serwer sieciowy. W stosunku do katalogu najwyższego poziomu Friendica."; +$a->strings["Log level"] = "Poziom logów"; +$a->strings["PHP logging"] = "Logowanie w PHP"; +$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Aby tymczasowo włączyć rejestrowanie błędów i ostrzeżeń PHP, możesz dołączyć do pliku index.php swojej instalacji. Nazwa pliku ustawiona w linii 'error_log' odnosi się do katalogu najwyższego poziomu friendiki i musi być zapisywalna przez serwer WWW. Opcja '1' dla 'log_errors' i 'display_errors' polega na włączeniu tych opcji, ustawieniu na '0', aby je wyłączyć."; +$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Błąd podczas próby otwarcia %1\$s pliku dziennika. \\r\\n
    Sprawdź, czy plik %1\$s istnieje i czy można go odczytać."; +$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Nie można otworzyć %1\$spliku dziennika. \\r\\n
    Sprawdź, czy plik %1\$s jest czytelny."; +$a->strings["View Logs"] = "Zobacz rejestry"; +$a->strings["Inspect Deferred Worker Queue"] = "Sprawdź kolejkę odroczonych pracowników"; +$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "Ta strona zawiera listę zadań opóźnionych pracowników. Są to zadania, które nie mogą być wykonywane po raz pierwszy."; +$a->strings["Inspect Worker Queue"] = "Sprawdź Kolejkę Pracowników"; +$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "Ta strona zawiera listę aktualnie ustawionych zadań dla pracowników. Te zadania są obsługiwane przez cronjob pracownika, który skonfigurowałeś podczas instalacji."; +$a->strings["ID"] = "ID"; +$a->strings["Job Parameters"] = "Parametry zadania"; +$a->strings["Created"] = "Utwórz"; +$a->strings["Priority"] = "Priorytet"; +$a->strings["Can not parse base url. Must have at least ://"] = "Nie można zanalizować podstawowego adresu URL. Musi mieć co najmniej : //"; +$a->strings["Invalid storage backend setting value."] = ""; +$a->strings["Site settings updated."] = "Zaktualizowano ustawienia strony."; +$a->strings["No community page for local users"] = "Brak strony społeczności dla użytkowników lokalnych"; +$a->strings["No community page"] = "Brak strony społeczności"; +$a->strings["Public postings from users of this site"] = "Publikacje publiczne od użytkowników tej strony"; +$a->strings["Public postings from the federated network"] = "Publikacje wpisy ze sfederowanej sieci"; +$a->strings["Public postings from local users and the federated network"] = "Publikacje publiczne od użytkowników lokalnych i sieci federacyjnej"; +$a->strings["Disabled"] = "Wyłączony"; +$a->strings["Users"] = "Użytkownicy"; +$a->strings["Users, Global Contacts"] = "Użytkownicy, kontakty globalne"; +$a->strings["Users, Global Contacts/fallback"] = "Użytkownicy, kontakty globalne/awaryjne"; +$a->strings["One month"] = "Miesiąc"; +$a->strings["Three months"] = "Trzy miesiące"; +$a->strings["Half a year"] = "Pół roku"; +$a->strings["One year"] = "Rok"; +$a->strings["Multi user instance"] = "Tryb wielu użytkowników"; +$a->strings["Closed"] = "Zamknięte"; +$a->strings["Requires approval"] = "Wymaga zatwierdzenia"; +$a->strings["Open"] = "Otwarta"; +$a->strings["No SSL policy, links will track page SSL state"] = "Brak SSL, linki będą śledzić stan SSL"; +$a->strings["Force all links to use SSL"] = "Wymuś używanie SSL na wszystkich odnośnikach"; +$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Wewnętrzne Certyfikaty, użyj SSL tylko dla linków lokalnych . "; +$a->strings["Don't check"] = "Nie sprawdzaj"; +$a->strings["check the stable version"] = "sprawdź wersję stabilną"; +$a->strings["check the development version"] = "sprawdź wersję rozwojową"; +$a->strings["Database (legacy)"] = ""; +$a->strings["Site"] = "Strona"; +$a->strings["Republish users to directory"] = "Ponownie opublikuj użytkowników w katalogu"; +$a->strings["Registration"] = "Rejestracja"; +$a->strings["File upload"] = "Przesyłanie plików"; +$a->strings["Policies"] = "Zasady"; +$a->strings["Auto Discovered Contact Directory"] = "Katalog kontaktów automatycznie odkrytych"; +$a->strings["Performance"] = "Ustawienia"; +$a->strings["Worker"] = "Pracownik"; +$a->strings["Message Relay"] = "Przekazywanie wiadomości"; +$a->strings["Relocate Instance"] = "Zmień lokalizację"; +$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Ostrzeżenie! Zaawansowana funkcja. Może spowodować, że serwer będzie nieosiągalny."; +$a->strings["Site name"] = "Nazwa strony"; +$a->strings["Sender Email"] = "E-mail nadawcy"; +$a->strings["The email address your server shall use to send notification emails from."] = "Adres e-mail używany przez Twój serwer do wysyłania e-maili z powiadomieniami."; +$a->strings["Banner/Logo"] = "Logo"; +$a->strings["Shortcut icon"] = "Ikona skrótu"; +$a->strings["Link to an icon that will be used for browsers."] = "Link do ikony, która będzie używana w przeglądarkach."; +$a->strings["Touch icon"] = "Dołącz ikonę"; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link do ikony, która będzie używana w tabletach i telefonach komórkowych."; +$a->strings["Additional Info"] = "Dodatkowe informacje"; +$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "W przypadku serwerów publicznych: możesz tu dodać dodatkowe informacje, które będą wymienione na %s/servers."; +$a->strings["System language"] = "Język systemu"; +$a->strings["System theme"] = "Motyw systemowy"; +$a->strings["Default system theme - may be over-ridden by user profiles - Change default theme settings"] = ""; +$a->strings["Mobile system theme"] = "Motyw systemu mobilnego"; +$a->strings["Theme for mobile devices"] = "Motyw na urządzenia mobilne"; +$a->strings["SSL link policy"] = "Polityka odnośników SSL"; +$a->strings["Determines whether generated links should be forced to use SSL"] = "Określa, czy generowane odnośniki będą obowiązkowo używały SSL"; +$a->strings["Force SSL"] = "Wymuś SSL"; +$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Wymuszaj wszystkie żądania SSL bez SSL - Uwaga: w niektórych systemach może to prowadzić do niekończących się pętli."; +$a->strings["Hide help entry from navigation menu"] = "Ukryj pomoc w menu nawigacyjnym"; +$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Chowa pozycje menu dla stron pomocy ze strony nawigacyjnej. Możesz nadal ją wywołać poprzez komendę /help."; +$a->strings["Single user instance"] = "Tryb pojedynczego użytkownika"; +$a->strings["Make this instance multi-user or single-user for the named user"] = "Ustawia tryb dla wielu użytkowników lub pojedynczego użytkownika dla nazwanego użytkownika"; +$a->strings["File storage backend"] = "Backend przechowywania plików"; +$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = ""; +$a->strings["Maximum image size"] = "Maksymalny rozmiar zdjęcia"; +$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maksymalny rozmiar w bitach dla wczytywanego obrazu . Domyślnie jest to 0 , co oznacza bez limitu ."; +$a->strings["Maximum image length"] = "Maksymalna długość obrazu"; +$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maksymalna długość w pikselach dłuższego boku przesyłanego obrazu. Wartością domyślną jest -1, co oznacza brak ograniczeń."; +$a->strings["JPEG image quality"] = "Jakość obrazu JPEG"; +$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Przesłane pliki JPEG zostaną zapisane w tym ustawieniu jakości [0-100]. Domyślna wartość to 100, która jest pełną jakością."; +$a->strings["Register policy"] = "Zasady rejestracji"; +$a->strings["Maximum Daily Registrations"] = "Maksymalna dzienna rejestracja"; +$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "Jeśli rejestracja powyżej jest dozwolona, to określa maksymalną liczbę nowych rejestracji użytkowników do zaakceptowania na dzień. Jeśli rejestracja jest ustawiona na \"Zamknięta\", to ustawienie to nie ma wpływu."; +$a->strings["Register text"] = "Zarejestruj tekst"; +$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Będą wyświetlane w widocznym miejscu na stronie rejestracji. Możesz użyć BBCode tutaj."; +$a->strings["Forbidden Nicknames"] = "Zakazane pseudonimy"; +$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Lista oddzielonych przecinkami pseudonimów, których nie wolno rejestrować. Preset to lista nazw ról zgodnie z RFC 2142."; +$a->strings["Accounts abandoned after x days"] = "Konta porzucone po x dni"; +$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Nie będzie marnować zasobów systemu wypytując zewnętrzne strony o opuszczone konta. Ustaw 0 dla braku limitu czasu ."; +$a->strings["Allowed friend domains"] = "Dozwolone domeny przyjaciół"; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Rozdzielana przecinkami lista domen, które mogą nawiązywać przyjaźnie z tą witryną. Symbole wieloznaczne są akceptowane. Pozostaw puste by zezwolić każdej domenie na zaprzyjaźnienie."; +$a->strings["Allowed email domains"] = "Dozwolone domeny e-mailowe"; +$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Rozdzielana przecinkami lista domen dozwolonych w adresach e-mail do rejestracji na tej stronie. Symbole wieloznaczne są akceptowane. Opróżnij, aby zezwolić na dowolne domeny"; +$a->strings["No OEmbed rich content"] = "Brak treści multimedialnych ze znaczkiem HTML"; +$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Nie wyświetlaj zasobów treści (np. osadzonego pliku PDF), z wyjątkiem domen wymienionych poniżej."; +$a->strings["Allowed OEmbed domains"] = "Dozwolone domeny OEmbed"; +$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Rozdzielana przecinkami lista domen, w których wyświetlana jest treść, może być wyświetlana. Symbole wieloznaczne są akceptowane."; +$a->strings["Block public"] = "Blokuj publicznie"; +$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Zaznacz, aby zablokować publiczny dostęp do wszystkich publicznych stron prywatnych w tej witrynie, chyba że jesteś zalogowany."; +$a->strings["Force publish"] = "Wymuś publikację"; +$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Zaznacz, aby wymusić umieszczenie wszystkich profili w tej witrynie w katalogu witryny."; +$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Włączenie tego może naruszyć prawa ochrony prywatności, takie jak GDPR"; +$a->strings["Global directory URL"] = "Globalny adres URL katalogu"; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "Adres URL do katalogu globalnego. Jeśli nie zostanie to ustawione, katalog globalny jest całkowicie niedostępny dla aplikacji."; +$a->strings["Private posts by default for new users"] = "Prywatne posty domyślnie dla nowych użytkowników"; +$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Ustaw domyślne uprawnienia do publikowania dla wszystkich nowych członków na domyślną grupę prywatności, a nie publiczną."; +$a->strings["Don't include post content in email notifications"] = "Nie wklejaj zawartości postu do powiadomienia o poczcie"; +$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "W celu ochrony prywatności, nie włączaj zawartości postu/komentarza/wiadomości prywatnej/etc. do powiadomień w wiadomościach mailowych wysyłanych z tej strony."; +$a->strings["Disallow public access to addons listed in the apps menu."] = "Nie zezwalaj na publiczny dostęp do dodatkowych wtyczek wyszczególnionych w menu aplikacji."; +$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Zaznaczenie tego pola spowoduje ograniczenie dodatków wymienionych w menu aplikacji tylko dla członków."; +$a->strings["Don't embed private images in posts"] = "Nie umieszczaj prywatnych zdjęć w postach"; +$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Nie zastępuj lokalnie hostowanych zdjęć prywatnych we wpisach za pomocą osadzonej kopii obrazu. Oznacza to, że osoby, które otrzymują posty zawierające prywatne zdjęcia, będą musiały uwierzytelnić i wczytać każdy obraz, co może trochę potrwać."; +$a->strings["Explicit Content"] = "Treści dla dorosłych"; +$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Ustaw to, aby ogłosić, że Twój węzeł jest używany głównie do jawnej treści, która może nie być odpowiednia dla nieletnich. Informacje te zostaną opublikowane w informacjach o węźle i mogą zostać wykorzystane, np. w katalogu globalnym, aby filtrować węzeł z list węzłów do przyłączenia. Dodatkowo notatka o tym zostanie pokazana na stronie rejestracji użytkownika."; +$a->strings["Allow Users to set remote_self"] = "Zezwól użytkownikom na ustawienie remote_self"; +$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Po sprawdzeniu tego każdy użytkownik może zaznaczyć każdy kontakt jako zdalny w oknie dialogowym kontaktu naprawczego. Ustawienie tej flagi na kontakcie powoduje dublowanie każdego wpisu tego kontaktu w strumieniu użytkowników."; +$a->strings["Block multiple registrations"] = "Zablokuj wielokrotną rejestrację"; +$a->strings["Disallow users to register additional accounts for use as pages."] = "Nie pozwalaj użytkownikom na zakładanie dodatkowych kont do używania jako strony. "; +$a->strings["Disable OpenID"] = "Wyłącz OpenID"; +$a->strings["Disable OpenID support for registration and logins."] = "Wyłącz obsługę OpenID dla rejestracji i logowania."; +$a->strings["No Fullname check"] = "Bez sprawdzania pełnej nazwy"; +$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Zezwól użytkownikom na rejestrację bez spacji między imieniem i nazwiskiem w ich pełnym imieniu."; +$a->strings["Community pages for visitors"] = "Strony społecznościowe dla odwiedzających"; +$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Które strony społeczności powinny być dostępne dla odwiedzających. Lokalni użytkownicy zawsze widzą obie strony."; +$a->strings["Posts per user on community page"] = "Lista postów użytkownika na stronie społeczności"; +$a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = "Maksymalna liczba postów na użytkownika na stronie społeczności. (Nie dotyczy „Globalnej społeczności”)"; +$a->strings["Disable OStatus support"] = "Wyłącz obsługę OStatus"; +$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Wyłącz wbudowaną kompatybilność z OStatus (StatusNet, GNU Social itd.). Wszystkie rozmowy w OStatus są publiczne, więc czasem będą pojawiać się ostrzeżenia o prywatności."; +$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Importuj wątki OStatus/ActivityPub tylko z naszych kontaktów"; +$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normalnie importujemy każdą zawartość z naszych kontaktów OStatus i ActivityPub. W tej opcji przechowujemy tylko wątki uruchomione przez kontakt znany w naszym systemie."; +$a->strings["OStatus support can only be enabled if threading is enabled."] = "Obsługa OStatus może być włączona tylko wtedy, gdy włączone jest wątkowanie."; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Obsługa Diaspory nie może być włączona, ponieważ Friendica została zainstalowana w podkatalogu."; +$a->strings["Enable Diaspora support"] = "Włączyć obsługę Diaspory"; +$a->strings["Provide built-in Diaspora network compatibility."] = "Zapewnij wbudowaną kompatybilność z siecią Diaspora."; +$a->strings["Only allow Friendica contacts"] = "Dopuść tylko kontakty Friendrica"; +$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Wszyscy znajomi muszą używać protokołów Friendica. Wszystkie inne wbudowane protokoły komunikacyjne są wyłączone."; +$a->strings["Verify SSL"] = "Weryfikacja SSL"; +$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Jeśli chcesz, możesz włączyć ścisłe sprawdzanie certyfikatu. Oznacza to, że nie możesz połączyć się (w ogóle) z własnoręcznie podpisanymi stronami SSL."; +$a->strings["Proxy user"] = "Użytkownik proxy"; +$a->strings["Proxy URL"] = "URL Proxy"; +$a->strings["Network timeout"] = "Network timeout"; +$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Wartość jest w sekundach. Ustaw na 0 dla nieograniczonej (niezalecane)."; +$a->strings["Maximum Load Average"] = "Maksymalne obciążenie średnie"; +$a->strings["Maximum system load before delivery and poll processes are deferred - default %d."] = ""; +$a->strings["Maximum Load Average (Frontend)"] = "Maksymalne obciążenie średnie (Frontend)"; +$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maksymalne obciążenie systemu, zanim frontend zakończy pracę - domyślnie 50."; +$a->strings["Minimal Memory"] = "Minimalna pamięć"; +$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimalna wolna pamięć w MB dla pracownika. Potrzebuje dostępu do /proc/ meminfo - domyślnie 0 (wyłączone)."; +$a->strings["Maximum table size for optimization"] = "Maksymalny rozmiar stołu do optymalizacji"; +$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maksymalny rozmiar tablicy (w MB) do automatycznej optymalizacji. Wprowadź -1, aby go wyłączyć."; +$a->strings["Minimum level of fragmentation"] = "Minimalny poziom fragmentacji"; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimalny poziom fragmentacji, aby rozpocząć automatyczną optymalizację - domyślna wartość to 30%."; +$a->strings["Periodical check of global contacts"] = "Okresowa kontrola kontaktów globalnych"; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Jeśli jest włączona, kontakty globalne są okresowo sprawdzane pod kątem brakujących lub nieaktualnych danych oraz żywotności kontaktów i serwerów."; +$a->strings["Days between requery"] = "Dni między żądaniem"; +$a->strings["Number of days after which a server is requeried for his contacts."] = "Liczba dni, po upływie których serwer jest żądany dla swoich kontaktów."; +$a->strings["Discover contacts from other servers"] = "Odkryj kontakty z innych serwerów"; +$a->strings["Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."] = ""; +$a->strings["Timeframe for fetching global contacts"] = "Czas pobierania globalnych kontaktów"; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Po aktywowaniu wykrywania ta wartość określa czas działania globalnych kontaktów pobieranych z innych serwerów."; +$a->strings["Search the local directory"] = "Wyszukaj w lokalnym katalogu"; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Wyszukaj lokalny katalog zamiast katalogu globalnego. Podczas wyszukiwania lokalnie każde wyszukiwanie zostanie wykonane w katalogu globalnym w tle. Poprawia to wyniki wyszukiwania, gdy wyszukiwanie jest powtarzane."; +$a->strings["Publish server information"] = "Publikuj informacje o serwerze"; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = ""; +$a->strings["Check upstream version"] = "Sprawdź wersję powyżej"; +$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Umożliwia sprawdzenie nowych wersji Friendica na github. Jeśli pojawi się nowa wersja, zostaniesz o tym poinformowany w panelu administracyjnym."; +$a->strings["Suppress Tags"] = "Ukryj tagi"; +$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Pomiń wyświetlenie listy hashtagów na końcu postu."; +$a->strings["Clean database"] = "Wyczyść bazę danych"; +$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Usuń stare zdalne pozycje, osierocone rekordy bazy danych i starą zawartość z innych tabel pomocników."; +$a->strings["Lifespan of remote items"] = "Żywotność odległych przedmiotów"; +$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "Po włączeniu czyszczenia bazy danych określa dni, po których zdalne elementy zostaną usunięte. Własne przedmioty oraz oznaczone lub wypełnione pozycje są zawsze przechowywane. 0 wyłącza to zachowanie."; +$a->strings["Lifespan of unclaimed items"] = "Żywotność nieodebranych przedmiotów"; +$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "Po włączeniu czyszczenia bazy danych określa się dni, po których usunięte zostaną nieodebrane zdalne elementy (głównie zawartość z przekaźnika). Wartość domyślna to 90 dni. Wartość domyślna dla ogólnej długości życia zdalnych pozycji, jeśli jest ustawiona na 0."; +$a->strings["Lifespan of raw conversation data"] = "Trwałość nieprzetworzonych danych konwersacji"; +$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "Dane konwersacji są używane do ActivityPub i OStatus, a także do celów debugowania. Powinno być bezpieczne usunięcie go po 14 dniach, domyślnie jest to 90 dni."; +$a->strings["Path to item cache"] = "Ścieżka do pamięci podręcznej"; +$a->strings["The item caches buffers generated bbcode and external images."] = "Pozycja buforuje bufory generowane bbcode i obrazy zewnętrzne."; +$a->strings["Cache duration in seconds"] = "Czas trwania w sekundach"; +$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Jak długo powinny być przechowywane pliki pamięci podręcznej? Wartość domyślna to 86400 sekund (jeden dzień). Aby wyłączyć pamięć podręczną elementów, ustaw wartość na -1."; +$a->strings["Maximum numbers of comments per post"] = "Maksymalna liczba komentarzy na post"; +$a->strings["How much comments should be shown for each post? Default value is 100."] = "Ile komentarzy powinno być pokazywanych dla każdego posta? Domyślna wartość to 100."; +$a->strings["Temp path"] = "Ścieżka do Temp"; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Jeśli masz zastrzeżony system, w którym serwer internetowy nie może uzyskać dostępu do ścieżki temp systemu, wprowadź tutaj inną ścieżkę."; +$a->strings["Disable picture proxy"] = "Wyłącz obraz proxy"; +$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "Serwer proxy zwiększa wydajność i prywatność. Nie powinno być używane w systemach o bardzo niskiej przepustowości."; +$a->strings["Only search in tags"] = "Szukaj tylko w tagach"; +$a->strings["On large systems the text search can slow down the system extremely."] = "W dużych systemach wyszukiwanie tekstu może wyjątkowo spowolnić system."; +$a->strings["New base url"] = "Nowy bazowy adres url"; +$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Zmień bazowy adres URL dla tego serwera. Wysyła wiadomość o przeniesieniu do wszystkich kontaktów Friendica i Diaspora* wszystkich użytkowników."; +$a->strings["RINO Encryption"] = "Szyfrowanie RINO"; +$a->strings["Encryption layer between nodes."] = "Warstwa szyfrowania między węzłami."; +$a->strings["Enabled"] = "Włącz"; +$a->strings["Maximum number of parallel workers"] = "Maksymalna liczba równoległych pracowników"; +$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Na udostępnionych usługach hostingowych ustaw tę opcję %d. W większych systemach wartości %dsą świetne . Wartość domyślna to %d."; +$a->strings["Don't use \"proc_open\" with the worker"] = ""; +$a->strings["Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Włącz to, jeśli twój system nie zezwala na użycie „proc_open”. Może się tak zdarzyć na współdzielonych hostach. Jeśli to jest włączone, powinieneś zwiększyć częstotliwość wywołań roboczych w crontabie."; +$a->strings["Enable fastlane"] = "Włącz Fastlane"; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "Po włączeniu system Fastlane uruchamia dodatkowego pracownika, jeśli procesy o wyższym priorytecie są blokowane przez procesy o niższym priorytecie."; +$a->strings["Enable frontend worker"] = "Włącz pracownika frontend"; +$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = ""; +$a->strings["Subscribe to relay"] = "Subskrybuj przekaźnik"; +$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Umożliwia odbieranie publicznych wiadomości z przekaźnika. Zostaną uwzględnione w tagach wyszukiwania, subskrybowanych i na stronie społeczności globalnej."; +$a->strings["Relay server"] = "Serwer przekazujący"; +$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Adres serwera przekazującego, do którego należy wysyłać publiczne posty. Na przykład https://relay.diasp.org"; +$a->strings["Direct relay transfer"] = "Bezpośredni transfer przekaźników"; +$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Umożliwia bezpośredni transfer do innych serwerów bez korzystania z serwerów przekazujących"; +$a->strings["Relay scope"] = "Zakres przekaźnika"; +$a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = ""; +$a->strings["all"] = "wszystko"; +$a->strings["tags"] = "tagi"; +$a->strings["Server tags"] = "Serwer tagów"; +$a->strings["Comma separated list of tags for the \"tags\" subscription."] = "Rozdzielana przecinkami lista tagów dla subskrypcji „tagi”."; +$a->strings["Allow user tags"] = "Pozwól na tagi użytkowników"; +$a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = ""; +$a->strings["Start Relocation"] = "Rozpocznij przenoszenie"; +$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Twoja baza danych nadal używa tabel MyISAM. Powinieneś(-naś) zmienić typ silnika na InnoDB. Ponieważ Friendica będzie używać w przyszłości wyłącznie funkcji InnoDB, powinieneś(-naś) to zmienić! Zobacz tutaj przewodnik, który może być pomocny w konwersji silników tabel. Możesz także użyć polecenia php bin/console.php dbstructure toinnodb instalacji Friendica, aby dokonać automatycznej konwersji.
    "; +$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "Dostępna jest nowa wersja aplikacji Friendica. Twoja aktualna wersja to %1\$s wyższa wersja to %2\$s"; +$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "Aktualizacja bazy danych nie powiodła się. Uruchom polecenie \"php bin/console.php dbstructure update\" z wiersza poleceń i sprawdź błędy, które mogą się pojawić."; +$a->strings["The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)"] = ""; +$a->strings["The worker was never executed. Please check your database structure!"] = "Pracownik nigdy nie został stracony. Sprawdź swoją strukturę bazy danych!"; +$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "Ostatnie wykonanie robota było w %s UTC. To jest starsze niż jedna godzina. Sprawdź ustawienia crontab."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = ""; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = ""; +$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s nie jest osiągalny w twoim systemie. Jest to poważny problem z konfiguracją, który uniemożliwia komunikację między serwerami. Zobacz pomoc na stronie instalacji."; +$a->strings["Friendica's system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."] = ""; +$a->strings["Friendica's current system.basepath '%s' is wrong and the config file '%s' isn't used."] = ""; +$a->strings["Friendica's current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."] = ""; +$a->strings["Normal Account"] = "Konto normalne"; +$a->strings["Automatic Follower Account"] = "Automatyczne konto obserwatora"; +$a->strings["Public Forum Account"] = "Publiczne konto na forum"; +$a->strings["Automatic Friend Account"] = "Automatyczny przyjaciel konta"; +$a->strings["Blog Account"] = "Konto Bloga"; +$a->strings["Private Forum Account"] = "Prywatne konto na forum"; +$a->strings["Message queues"] = "Wiadomości"; +$a->strings["Server Settings"] = "Ustawienia serwera"; +$a->strings["Summary"] = "Podsumowanie"; +$a->strings["Registered users"] = "Zarejestrowani użytkownicy"; +$a->strings["Pending registrations"] = "Oczekujące rejestracje"; +$a->strings["Version"] = "Wersja"; +$a->strings["Active addons"] = "Aktywne dodatki"; +$a->strings["Theme settings updated."] = "Zaktualizowano ustawienia motywów."; +$a->strings["Theme %s disabled."] = "Motyw %s wyłączony."; +$a->strings["Theme %s successfully enabled."] = "Motyw %s został pomyślnie włączony."; +$a->strings["Theme %s failed to install."] = "Nie udało się zainstalować motywu %s."; +$a->strings["Screenshot"] = "Zrzut ekranu"; +$a->strings["Themes"] = "Wygląd"; +$a->strings["Unknown theme."] = "Nieznany motyw."; +$a->strings["Reload active themes"] = "Przeładuj aktywne motywy"; +$a->strings["No themes found on the system. They should be placed in %1\$s"] = "Nie znaleziono motywów w systemie. Powinny zostać umieszczone %1\$s"; +$a->strings["[Experimental]"] = "[Eksperymentalne]"; +$a->strings["[Unsupported]"] = "[Niewspieralne]"; +$a->strings["The Terms of Service settings have been updated."] = "Ustawienia Warunków korzystania z usługi zostały zaktualizowane."; +$a->strings["Display Terms of Service"] = "Wyświetl Warunki korzystania z usługi"; +$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Włącz stronę Warunki świadczenia usług. Jeśli ta opcja jest włączona, link do warunków zostanie dodany do formularza rejestracyjnego i strony z informacjami ogólnymi."; +$a->strings["Display Privacy Statement"] = "Wyświetl oświadczenie o prywatności"; +$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Pokaż niektóre informacje dotyczące potrzebnych informacji do obsługi węzła zgodnie np. do EU-GDPR."; +$a->strings["Privacy Statement Preview"] = "Podgląd oświadczenia o prywatności"; +$a->strings["The Terms of Service"] = "Warunki świadczenia usług"; +$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Wprowadź tutaj Warunki świadczenia usług dla swojego węzła. Możesz użyć BBCode. Nagłówki sekcji powinny być [h2] i poniżej."; +$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tSzanowny Użytkowniku %1\$s, \n\t\t\t\tadministrator %2\$s założył dla ciebie konto."; +$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tDane logowania są następuje:\n\t\t\tLokalizacja witryny:\t%1\$s\n\t\t\tNazwa użytkownika:%2\$s\n\t\t\tHasło:%3\$s\n\n\t\t\tPo zalogowaniu możesz zmienić hasło do swojego konta na stronie \"Ustawienia\".\n \t\t\tProszę poświęć chwilę, aby przejrzeć inne ustawienia konta na tej stronie.\n\n\t\t\tMożesz również dodać podstawowe informacje do swojego domyślnego profilu\n\t\t\t(na stronie \"Profil użytkownika\"), aby inne osoby mogły łatwo Cię znaleźć.\n\n\t\t\tZalecamy ustawienie imienia i nazwiska, dodanie zdjęcia profilowego,\n\t\t\tdodanie niektórych \"słów kluczowych\" profilu (bardzo przydatne w nawiązywaniu nowych znajomości) \n\t\t\ti być może gdzie mieszkasz; jeśli nie chcesz podać więcej szczegów.\n\n\t\t\tW pełni szanujemy Twoje prawo do prywatności i żaden z tych elementów nie jest konieczny.\n\t\t\tJeśli jesteś nowy i nie znasz tutaj nikogo, oni mogą ci pomóc,\n\t\t\tmożesz zdobyć nowych interesujących przyjaciół.\n\n\t\t\tJeśli kiedykolwiek zechcesz usunąć swoje konto, możesz to zrobić na stronie %1\$s/removeme\n\n\t\t\tDziękujemy i Zapraszamy do%4\$s"; +$a->strings["%s user blocked"] = [ + 0 => "", + 1 => "", + 2 => "", + 3 => "", +]; +$a->strings["%s user unblocked"] = [ + 0 => "", + 1 => "", + 2 => "", + 3 => "", +]; +$a->strings["You can't remove yourself"] = "Nie możesz usunąć siebie"; +$a->strings["%s user deleted"] = [ + 0 => "usunięto %s użytkownika", + 1 => "usunięto %s użytkowników", + 2 => "usunięto %s użytkowników", + 3 => "%s usuniętych użytkowników", +]; +$a->strings["User \"%s\" deleted"] = "Użytkownik \"%s\" usunięty"; +$a->strings["User \"%s\" blocked"] = "Użytkownik \"%s\" zablokowany"; +$a->strings["User \"%s\" unblocked"] = "Użytkownik \"%s\" odblokowany"; +$a->strings["Private Forum"] = "Prywatne forum"; +$a->strings["Relay"] = ""; +$a->strings["Register date"] = "Data rejestracji"; +$a->strings["Last login"] = "Ostatnie logowanie"; +$a->strings["Last item"] = "Ostatni element"; +$a->strings["Type"] = "Typu"; +$a->strings["Add User"] = "Dodaj użytkownika"; +$a->strings["User registrations waiting for confirm"] = "Zarejestrowani użytkownicy czekający na potwierdzenie"; +$a->strings["User waiting for permanent deletion"] = "Użytkownik czekający na trwałe usunięcie"; +$a->strings["Request date"] = "Data prośby"; +$a->strings["No registrations."] = "Brak rejestracji."; +$a->strings["Note from the user"] = "Uwaga od użytkownika"; +$a->strings["Deny"] = "Odmów"; +$a->strings["User blocked"] = "Użytkownik zablokowany"; +$a->strings["Site admin"] = "Administracja stroną"; +$a->strings["Account expired"] = "Konto wygasło"; +$a->strings["New User"] = "Nowy użytkownik"; +$a->strings["Permanent deletion"] = "Trwałe usunięcie"; +$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Zaznaczeni użytkownicy zostaną usunięci!\\n\\n Wszystko co zamieścili na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?"; +$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Użytkownik {0} zostanie usunięty!\\n\\n Wszystko co zamieścił na tej stronie będzie trwale skasowane!\\n\\n Jesteś pewien?"; +$a->strings["Name of the new user."] = "Nazwa nowego użytkownika."; +$a->strings["Nickname"] = "Pseudonim"; +$a->strings["Nickname of the new user."] = "Pseudonim nowego użytkownika."; +$a->strings["Email address of the new user."] = "Adres email nowego użytkownika."; +$a->strings["No friends to display."] = "Brak znajomych do wyświetlenia."; +$a->strings["No installed applications."] = "Brak zainstalowanych aplikacji."; +$a->strings["Applications"] = "Aplikacje"; $a->strings["Item was not found."] = "Element nie znaleziony."; +$a->strings["Source input"] = "Źródło wejściowe"; +$a->strings["BBCode::toPlaintext"] = "BBCode::na prosty tekst"; +$a->strings["BBCode::convert (raw HTML)"] = "BBCode:: konwersjia (raw HTML)"; +$a->strings["BBCode::convert"] = "BBCode::przekształć"; +$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::przekształć => HTML::toBBCode"; +$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; +$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::przekształć"; +$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; +$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::przekształć => HTML::toBBCode"; +$a->strings["Item Body"] = ""; +$a->strings["Item Tags"] = ""; +$a->strings["Source input (Diaspora format)"] = "Źródło wejściowe (format Diaspora)"; +$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (raw HTML)"; +$a->strings["Markdown::convert"] = "Markdown::convert"; +$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; +$a->strings["Raw HTML input"] = "Surowe wejście HTML"; +$a->strings["HTML Input"] = "Wejście HTML"; +$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; +$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; +$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (raw HTML)"; +$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; +$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; +$a->strings["Source text"] = "Tekst źródłowy"; +$a->strings["BBCode"] = "BBCode"; +$a->strings["Markdown"] = "Markdown"; +$a->strings["HTML"] = "HTML"; +$a->strings["Overview"] = "Przegląd"; +$a->strings["Configuration"] = "Konfiguracja"; +$a->strings["Database"] = "Baza danych"; +$a->strings["DB updates"] = "Aktualizacje DB"; +$a->strings["Inspect Deferred Workers"] = "Sprawdź Odroczonych Pracowników"; +$a->strings["Inspect worker Queue"] = "Sprawdź kolejkę pracowników"; +$a->strings["Tools"] = "Narzędzia"; +$a->strings["Contact Blocklist"] = "Lista zablokowanych kontaktów"; +$a->strings["Diagnostics"] = "Diagnostyka"; +$a->strings["PHP Info"] = "Informacje o PHP"; +$a->strings["probe address"] = "adres sondy"; +$a->strings["check webfinger"] = "sprawdź webfinger"; +$a->strings["Item Source"] = ""; +$a->strings["Babel"] = ""; +$a->strings["Addon Features"] = "Funkcje dodatkowe"; +$a->strings["User registrations waiting for confirmation"] = "Rejestracje użytkowników czekające na potwierdzenie"; +$a->strings["This page is missing a url parameter."] = "Na tej stronie brakuje parametru url."; +$a->strings["The post was created"] = "Post został utworzony"; $a->strings["%d contact edited."] = [ 0 => "Zedytowano %d kontakt.", 1 => "Zedytowano %d kontakty.", @@ -2104,6 +2043,7 @@ $a->strings["Comma separated list of keywords that should not be converted to ha $a->strings["Actions"] = "Akcja"; $a->strings["Suggestions"] = "Sugestie"; $a->strings["Suggest potential friends"] = "Sugerowani znajomi"; +$a->strings["All Contacts"] = "Wszystkie kontakty"; $a->strings["Show all contacts"] = "Pokaż wszystkie kontakty"; $a->strings["Unblocked"] = "Odblokowane"; $a->strings["Only show unblocked contacts"] = "Pokaż tylko odblokowane kontakty"; @@ -2133,9 +2073,62 @@ $a->strings["Toggle Blocked status"] = "Przełącz status na Zablokowany"; $a->strings["Toggle Ignored status"] = "Przełącz status na Ignorowany"; $a->strings["Toggle Archive status"] = "Przełącz status na Archiwalny"; $a->strings["Delete contact"] = "Usuń kontakt"; +$a->strings["Credits"] = "Zaufany"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica to projekt społecznościowy, który nie byłby możliwy bez pomocy wielu osób. Oto lista osób, które przyczyniły się do tworzenia kodu lub tłumaczenia Friendica. Dziękuję wam wszystkim!"; +$a->strings["No entries (some entries may be hidden)."] = "Brak odwiedzin (niektóre odwiedziny mogą być ukryte)."; +$a->strings["Find on this site"] = "Znajdź na tej stronie"; +$a->strings["Results for:"] = "Wyniki dla:"; +$a->strings["Site Directory"] = "Katalog Witryny"; +$a->strings["You must be logged in to use this module"] = "Musisz być zalogowany, aby korzystać z tego modułu"; +$a->strings["Source URL"] = "Źródłowy adres URL"; +$a->strings["Filetag %s saved to item"] = ""; +$a->strings["- select -"] = "- wybierz -"; +$a->strings["No given contact."] = "Brak kontaktu."; +$a->strings["Installed addons/apps:"] = "Zainstalowane dodatki/aplikacje:"; +$a->strings["No installed addons/apps"] = "Brak zainstalowanych dodatków/aplikacji"; +$a->strings["Read about the Terms of Service of this node."] = "Przeczytaj o Warunkach świadczenia usług tego węzła."; +$a->strings["On this server the following remote servers are blocked."] = "Na tym serwerze następujące serwery zdalne są blokowane."; +$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "To jest wersja Friendica, %s która działa w lokalizacji internetowej %s. Wersja bazy danych to %s wersja po aktualizacji %s."; +$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Odwiedź stronę Friendi.ca aby dowiedzieć się więcej o projekcie Friendica."; +$a->strings["Bug reports and issues: please visit"] = "Raporty o błędach i problemy: odwiedź stronę"; +$a->strings["the bugtracker at github"] = "śledzenie błędów na github"; +$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Propozycje, pochwały itd. – napisz e-mail do „info” małpa „friendi” - kropka - „ca”"; +$a->strings["Group created."] = "Grupa utworzona."; +$a->strings["Could not create group."] = "Nie można utworzyć grupy."; +$a->strings["Group not found."] = "Nie znaleziono grupy."; +$a->strings["Group name changed."] = "Zmieniono nazwę grupy."; +$a->strings["Unknown group."] = "Nieznana grupa."; +$a->strings["Contact is unavailable."] = "Kontakt jest niedostępny."; +$a->strings["Contact is deleted."] = "Kontakt został usunięty."; +$a->strings["Contact is blocked, unable to add it to a group."] = "Kontakt jest zablokowany, nie można go dodać do grupy."; +$a->strings["Unable to add the contact to the group."] = "Nie można dodać kontaktu do grupy."; +$a->strings["Contact successfully added to group."] = ""; +$a->strings["Unable to remove the contact from the group."] = ""; +$a->strings["Contact successfully removed from group."] = ""; +$a->strings["Unknown group command."] = ""; +$a->strings["Bad request."] = ""; +$a->strings["Save Group"] = "Zapisz grupę"; +$a->strings["Filter"] = "Filtr"; +$a->strings["Create a group of contacts/friends."] = "Stwórz grupę znajomych."; +$a->strings["Group removed."] = "Grupa usunięta."; +$a->strings["Unable to remove group."] = "Nie można usunąć grupy."; +$a->strings["Delete Group"] = "Usuń grupę"; +$a->strings["Edit Group Name"] = "Edytuj nazwę grupy"; +$a->strings["Members"] = "Członkowie"; +$a->strings["Remove contact from group"] = "Usuń kontakt z grupy"; +$a->strings["Add contact to group"] = "Dodaj kontakt do grupy"; +$a->strings["Help:"] = "Pomoc:"; +$a->strings["Welcome to %s"] = "Witamy w %s"; $a->strings["Friendica Communications Server - Setup"] = "Friendica Communications Server - Instalator"; $a->strings["System check"] = "Sprawdzanie systemu"; $a->strings["Check again"] = "Sprawdź ponownie"; +$a->strings["Base settings"] = ""; +$a->strings["Host name"] = "Nazwa hosta"; +$a->strings["Overwrite this field in case the determinated hostname isn't right, otherweise leave it as is."] = ""; +$a->strings["Base path to installation"] = "Podstawowa ścieżka do instalacji"; +$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "Jeśli system nie może wykryć poprawnej ścieżki do instalacji, wprowadź tutaj poprawną ścieżkę. To ustawienie powinno być ustawione tylko wtedy, gdy używasz ograniczonego systemu i dowiązań symbolicznych do twojego webroota."; +$a->strings["Sub path of the URL"] = ""; +$a->strings["Overwrite this field in case the sub path determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path."] = ""; $a->strings["Database connection"] = "Połączenie z bazą danych"; $a->strings["In order to install Friendica we need to know how to connect to your database."] = "W celu zainstalowania Friendica musimy wiedzieć jak połączyć się z twoją bazą danych."; $a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Proszę skontaktuj się ze swoim dostawcą usług hostingowych bądź administratorem strony jeśli masz pytania co do tych ustawień ."; @@ -2145,10 +2138,10 @@ $a->strings["Database Login Name"] = "Nazwa użytkownika bazy danych"; $a->strings["Database Login Password"] = "Hasło logowania do bazy danych"; $a->strings["For security reasons the password must not be empty"] = "Ze względów bezpieczeństwa hasło nie może być puste"; $a->strings["Database Name"] = "Nazwa bazy danych"; -$a->strings["Site administrator email address"] = "Adres e-mail administratora strony"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Adres e-mail konta musi pasować do tego, aby móc korzystać z panelu administracyjnego."; $a->strings["Please select a default timezone for your website"] = "Proszę wybrać domyślną strefę czasową dla swojej strony"; $a->strings["Site settings"] = "Ustawienia strony"; +$a->strings["Site administrator email address"] = "Adres e-mail administratora strony"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Adres e-mail konta musi pasować do tego, aby móc korzystać z panelu administracyjnego."; $a->strings["System Language:"] = "Język systemu:"; $a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Ustaw domyślny język dla interfejsu instalacyjnego Friendica i wysyłaj e-maile."; $a->strings["Your Friendica site database has been installed."] = "Twoja baza danych witryny Friendica została zainstalowana."; @@ -2156,7 +2149,36 @@ $a->strings["Installation finished"] = "Instalacja zakończona"; $a->strings["

    What next

    "] = "

    Co dalej

    "; $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the worker."] = "WAŻNE: Będziesz musiał [ręcznie] ustawić zaplanowane zadanie dla pracownika."; $a->strings["Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."] = "Przejdź do strony rejestracji nowego węzła Friendica i zarejestruj się jako nowy użytkownik. Pamiętaj, aby użyć adresu e-mail wprowadzonego jako e-mail administratora. To pozwoli Ci wejść do panelu administratora witryny."; -$a->strings["Item Guid"] = "Element Guid"; +$a->strings["Total invitation limit exceeded."] = "Przekroczono limit zaproszeń ogółem."; +$a->strings["%s : Not a valid email address."] = "%s : Nieprawidłowy adres e-mail."; +$a->strings["Please join us on Friendica"] = "Dołącz do nas na Friendica"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Przekroczono limit zaproszeń. Skontaktuj się z administratorem witryny."; +$a->strings["%s : Message delivery failed."] = "%s : Nie udało się dostarczyć wiadomości."; +$a->strings["%d message sent."] = [ + 0 => "%d wiadomość wysłana.", + 1 => "%d wiadomości wysłane.", + 2 => "%d wysłano .", + 3 => "%d wiadomość wysłano.", +]; +$a->strings["You have no more invitations available"] = "Nie masz już dostępnych zaproszeń"; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Odwiedź %s listę publicznych witryn, do których możesz dołączyć. Członkowie Friendica na innych stronach mogą łączyć się ze sobą, jak również z członkami wielu innych sieci społecznościowych."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Aby zaakceptować to zaproszenie, odwiedź i zarejestruj się %s lub w dowolnej innej publicznej witrynie internetowej Friendica."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi. Zobacz %s listę alternatywnych witryn Friendica, do których możesz dołączyć."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Przepraszamy. System nie jest obecnie skonfigurowany do łączenia się z innymi publicznymi witrynami lub zapraszania członków."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Strony Friendica łączą się ze sobą, tworząc ogromną sieć społecznościową o zwiększonej prywatności, która jest własnością i jest kontrolowana przez jej członków. Mogą również łączyć się z wieloma tradycyjnymi sieciami społecznościowymi."; +$a->strings["To accept this invitation, please visit and register at %s."] = "Aby zaakceptować to zaproszenie, odwiedź stronę i zarejestruj się na stronie %s."; +$a->strings["Send invitations"] = "Wyślij zaproszenie"; +$a->strings["Enter email addresses, one per line:"] = "Wprowadź adresy e-mail, po jednym w wierszu:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Serdecznie zapraszam do przyłączenia się do mnie i innych bliskich znajomych na stronie Friendica - i pomóż nam stworzyć lepszą sieć społecznościową."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Musisz podać ten kod zaproszenia: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Po rejestracji połącz się ze mną na stronie mojego profilu pod adresem:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "Aby uzyskać więcej informacji na temat projektu Friendica i dlaczego uważamy, że jest to ważne, odwiedź http://friendi.ca"; +$a->strings["Time Conversion"] = "Zmiana czasu"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica udostępnia tę usługę do udostępniania wydarzeń innym sieciom i znajomym w nieznanych strefach czasowych."; +$a->strings["UTC time: %s"] = "Czas UTC %s"; +$a->strings["Current timezone: %s"] = "Obecna strefa czasowa: %s"; +$a->strings["Converted localtime: %s"] = "Zmień strefę czasową: %s"; +$a->strings["Please select your timezone:"] = "Wybierz swoją strefę czasową:"; $a->strings["Create a New Account"] = "Załóż nowe konto"; $a->strings["Password: "] = "Hasło: "; $a->strings["Remember me"] = "Zapamiętaj mnie"; @@ -2167,10 +2189,12 @@ $a->strings["terms of service"] = "warunki użytkowania"; $a->strings["Website Privacy Policy"] = "Polityka Prywatności Witryny"; $a->strings["privacy policy"] = "polityka prywatności"; $a->strings["Logged out."] = "Wylogowano."; +$a->strings["System down for maintenance"] = "System wyłączony w celu konserwacji"; +$a->strings["Page not found."] = "Strona nie znaleziona."; +$a->strings["Invalid photo with id %s."] = ""; $a->strings["%s's timeline"] = "oś czasu %s"; $a->strings["%s's posts"] = "wpisy %s"; $a->strings["%s's comments"] = "komentarze %s"; -$a->strings["Bad Request."] = "Nieprawidłowe żądanie."; $a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."] = "Możesz (opcjonalnie) wypełnić ten formularz za pośrednictwem OpenID, podając swój OpenID i klikając \"Register\"."; $a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Jeśli nie jesteś zaznajomiony z OpenID, zostaw to pole puste i uzupełnij resztę elementów."; $a->strings["Your OpenID (optional): "] = "Twój OpenID (opcjonalnie): "; @@ -2191,11 +2215,64 @@ $a->strings["Failed to send email message. Here your accout details:
    login: $a->strings["Registration successful."] = "Rejestracja udana."; $a->strings["Your registration can not be processed."] = "Nie można przetworzyć Twojej rejestracji."; $a->strings["Your registration is pending approval by the site owner."] = "Twoja rejestracja oczekuje na zaakceptowanie przez właściciela witryny."; +$a->strings["Two-factor authentication successfully disabled."] = ""; +$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = ""; +$a->strings["Authenticator app"] = ""; +$a->strings["Configured"] = "Skonfigurowane"; +$a->strings["Not Configured"] = "Nie skonfigurowane"; +$a->strings["

    You haven't finished configuring your authenticator app.

    "] = ""; +$a->strings["

    Your authenticator app is correctly configured.

    "] = ""; +$a->strings["Recovery codes"] = ""; +$a->strings["Remaining valid codes"] = ""; +$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = ""; +$a->strings["Current password:"] = "Aktualne hasło:"; +$a->strings["You need to provide your current password to change two-factor authentication settings."] = ""; +$a->strings["Enable two-factor authentication"] = ""; +$a->strings["Disable two-factor authentication"] = ""; +$a->strings["Show recovery codes"] = "Pokaż kody odzyskiwania"; +$a->strings["Finish app configuration"] = "Zakończ konfigurację aplikacji"; +$a->strings["Please enter your password to access this page."] = ""; +$a->strings["New recovery codes successfully generated."] = ""; +$a->strings["Two-factor recovery codes"] = ""; +$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = ""; +$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = ""; +$a->strings["Generate new recovery codes"] = ""; +$a->strings["Next: Verification"] = ""; +$a->strings["Two-factor authentication successfully activated."] = ""; +$a->strings["Invalid code, please retry."] = ""; +$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = ""; +$a->strings["Two-factor code verification"] = ""; +$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = ""; +$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = ""; +$a->strings["Please enter a code from your authentication app"] = "Wprowadź kod z aplikacji uwierzytelniającej"; +$a->strings["Verify code and enable two-factor authentication"] = "Sprawdź kod i włącz uwierzytelnianie dwuskładnikowe"; +$a->strings["Bad Request"] = "Nieprawidłowe żądanie"; +$a->strings["Unauthorized"] = "Nieautoryzowane"; +$a->strings["Forbidden"] = "Zabronione"; +$a->strings["Not Found"] = "Nie znaleziono"; +$a->strings["Internal Server Error"] = ""; +$a->strings["Service Unavailable"] = ""; +$a->strings["The server cannot or will not process the request due to an apparent client error."] = "Serwer nie może lub nie będzie przetwarzać żądania z powodu widocznego błędu klienta."; +$a->strings["Authentication is required and has failed or has not yet been provided."] = "Uwierzytelnienie jest wymagane i nie powiodło się lub nie zostało jeszcze dostarczone."; +$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "Żądanie było ważne, ale serwer odmawia działania. Użytkownik może nie mieć wymaganych uprawnień do zasobu lub może potrzebować konta."; +$a->strings["The requested resource could not be found but may be available in the future."] = "Żądany zasób nie został znaleziony, ale może być dostępny w przyszłości."; +$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "Napotkano nieoczekiwany warunek i nie jest odpowiedni żaden bardziej szczegółowy komunikat."; +$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "Serwer jest obecnie niedostępny (ponieważ jest przeciążony lub wyłączony z powodu konserwacji). Spróbuj ponownie później."; +$a->strings["Go back"] = "Wróć"; $a->strings["At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."] = "W momencie rejestracji oraz w celu zapewnienia komunikacji między kontem użytkownika, a jego kontaktami, użytkownik musi podać nazwę wyświetlaną (pseudonim), nazwę użytkownika (przydomek) i działający adres e-mail. Nazwy będą dostępne na stronie profilu konta dla każdego odwiedzającego stronę, nawet jeśli inne szczegóły profilu nie zostaną wyświetlone. Adres e-mail będzie używany tylko do wysyłania powiadomień użytkownika o interakcjach, ale nie będzie wyświetlany w widoczny sposób. Lista kont w katalogu użytkownika węzła lub globalnym katalogu użytkownika jest opcjonalna i może być kontrolowana w ustawieniach użytkownika, nie jest konieczna do komunikacji."; $a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = "Te dane są wymagane do komunikacji i są przekazywane do węzłów partnerów komunikacyjnych i są tam przechowywane. Użytkownicy mogą wprowadzać dodatkowe prywatne dane, które mogą być przesyłane na konta partnerów komunikacyjnych."; $a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = "W dowolnym momencie zalogowany użytkownik może wyeksportować dane swojego konta z ustawień konta. Jeśli użytkownik chce usunąć swoje konto, może to zrobić w%1\$s / Usuń mnie. Usunięcie konta będzie trwałe. Skasowanie danych będzie również wymagane od węzłów partnerów komunikacyjnych."; $a->strings["Privacy Statement"] = "Oświadczenie o prywatności"; +$a->strings["Remaining recovery codes: %d"] = ""; +$a->strings["Two-factor recovery"] = ""; +$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = ""; +$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = ""; +$a->strings["Please enter a recovery code"] = ""; +$a->strings["Submit recovery code and complete login"] = ""; +$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = ""; +$a->strings["Verify code and complete login"] = ""; $a->strings["This entry was edited"] = "Ten wpis został zedytowany"; +$a->strings["Private Message"] = "Wiadomość prywatna"; $a->strings["Delete locally"] = "Usuń lokalnie"; $a->strings["Delete globally"] = "Usuń globalnie"; $a->strings["Remove locally"] = "Usuń lokalnie"; @@ -2269,6 +2346,8 @@ $a->strings["Custom"] = "Niestandardowe"; $a->strings["Note"] = "Uwaga"; $a->strings["Check image permissions if all users are allowed to see the image"] = "Sprawdź uprawnienia do zdjęć, jeśli wszyscy użytkownicy mogą zobaczyć obraz"; $a->strings["Select color scheme"] = "Wybierz schemat kolorów"; +$a->strings["Copy or paste schemestring"] = ""; +$a->strings["You can copy this string to share your theme with others. Pasting here applies the schemestring"] = ""; $a->strings["Navigation bar background color"] = "Kolor tła paska nawigacyjnego"; $a->strings["Navigation bar icon color "] = "Kolor ikon na pasku nawigacyjnym "; $a->strings["Link color"] = "Kolor łączy"; From 680e2eb9e51bd03aee0e78e426a0092a70d2a316 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 22 Jun 2019 07:29:52 +0200 Subject: [PATCH 637/653] DE translation update THX Copis --- view/lang/de/messages.po | 10530 +++++++++++++++++++------------------ view/lang/de/strings.php | 1996 +++---- 2 files changed, 6458 insertions(+), 6068 deletions(-) diff --git a/view/lang/de/messages.po b/view/lang/de/messages.po index 66a3eb7f0..c57ca914e 100644 --- a/view/lang/de/messages.po +++ b/view/lang/de/messages.po @@ -29,6 +29,7 @@ # Oliver , 2015 # Oliver , 2012 # rabuzarus , 2016-2019 +# Ralf Thees , 2019 # Sennewood , 2013 # Sennewood , 2012-2013 # silke m , 2015 @@ -44,9 +45,9 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-28 12:38+0200\n" -"PO-Revision-Date: 2019-04-29 06:29+0000\n" -"Last-Translator: Tobias Diekershoff \n" +"POT-Creation-Date: 2019-05-15 08:55-0400\n" +"PO-Revision-Date: 2019-06-18 10:37+0000\n" +"Last-Translator: Copiis Praeesse \n" "Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -74,40 +75,40 @@ msgstr[1] "Das wöchentliche Limit von %d Beiträgen wurde erreicht. Der Beitrag msgid "Monthly posting limit of %d post reached. The post was rejected." msgstr "Das monatliche Limit von %d Beiträgen wurde erreicht. Der Beitrag wurde verworfen." -#: include/api.php:4511 mod/photos.php:93 mod/photos.php:201 -#: mod/photos.php:695 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1636 mod/profile_photo.php:85 mod/profile_photo.php:94 +#: include/api.php:4511 mod/photos.php:91 mod/photos.php:193 +#: mod/photos.php:636 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1601 mod/profile_photo.php:85 mod/profile_photo.php:94 #: mod/profile_photo.php:103 mod/profile_photo.php:217 -#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:736 -#: src/Model/User.php:744 src/Model/User.php:752 +#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:763 +#: src/Model/User.php:771 src/Model/User.php:779 msgid "Profile Photos" msgstr "Profilbilder" #: include/conversation.php:160 include/conversation.php:297 -#: src/Model/Item.php:3309 +#: src/Model/Item.php:3253 msgid "event" -msgstr "Event" +msgstr "Veranstaltung" #: include/conversation.php:163 include/conversation.php:173 #: include/conversation.php:300 include/conversation.php:309 -#: mod/subthread.php:88 mod/tagger.php:70 +#: mod/subthread.php:88 mod/tagger.php:68 msgid "status" msgstr "Status" #: include/conversation.php:168 include/conversation.php:305 -#: mod/subthread.php:88 mod/tagger.php:70 src/Model/Item.php:3311 +#: mod/subthread.php:88 mod/tagger.php:68 src/Model/Item.php:3255 msgid "photo" msgstr "Foto" #: include/conversation.php:181 #, php-format msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s mag %2$ss %3$s" +msgstr "%1$s Gefällt %2$ss %3$s" #: include/conversation.php:183 #, php-format msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s mag %2$ss %3$s nicht" +msgstr "%1$s Gefällt %2$ss %3$s nicht" #: include/conversation.php:185 #, php-format @@ -134,7 +135,7 @@ msgstr "%1$s ist nun mit %2$s befreundet" msgid "%1$s poked %2$s" msgstr "%1$s stupste %2$s" -#: include/conversation.php:319 mod/tagger.php:108 +#: include/conversation.php:319 mod/tagger.php:101 #, php-format msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s hat %2$ss %3$s mit %4$s getaggt" @@ -148,26 +149,26 @@ msgstr "Nachricht/Beitrag" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s hat %2$s\\s %3$s als Favorit markiert" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:352 +#: include/conversation.php:568 mod/photos.php:1433 mod/profiles.php:352 msgid "Likes" msgstr "Likes" -#: include/conversation.php:569 mod/photos.php:1467 mod/profiles.php:355 +#: include/conversation.php:569 mod/photos.php:1433 mod/profiles.php:355 msgid "Dislikes" msgstr "Dislikes" #: include/conversation.php:570 include/conversation.php:1564 -#: mod/photos.php:1468 +#: mod/photos.php:1434 msgid "Attending" msgid_plural "Attending" msgstr[0] "Teilnehmend" msgstr[1] "Teilnehmend" -#: include/conversation.php:571 mod/photos.php:1468 +#: include/conversation.php:571 mod/photos.php:1434 msgid "Not attending" msgstr "Nicht teilnehmend" -#: include/conversation.php:572 mod/photos.php:1468 +#: include/conversation.php:572 mod/photos.php:1434 msgid "Might attend" msgstr "Eventuell teilnehmend" @@ -175,12 +176,13 @@ msgstr "Eventuell teilnehmend" msgid "Reshares" msgstr "Reshares" -#: include/conversation.php:653 mod/photos.php:1524 src/Object/Post.php:208 +#: include/conversation.php:653 mod/photos.php:1490 src/Object/Post.php:208 msgid "Select" msgstr "Auswählen" -#: include/conversation.php:654 mod/photos.php:1525 mod/admin.php:2021 -#: mod/settings.php:728 src/Module/Contact.php:827 src/Module/Contact.php:1102 +#: include/conversation.php:654 mod/photos.php:1491 mod/settings.php:735 +#: src/Module/Admin/Users.php:288 src/Module/Contact.php:830 +#: src/Module/Contact.php:1105 msgid "Delete" msgstr "Löschen" @@ -208,8 +210,8 @@ msgid "View in context" msgstr "Im Zusammenhang betrachten" #: include/conversation.php:717 include/conversation.php:1230 -#: mod/editpost.php:88 mod/message.php:260 mod/message.php:442 -#: mod/photos.php:1440 mod/wallmessage.php:141 src/Object/Post.php:423 +#: mod/editpost.php:86 mod/message.php:260 mod/message.php:442 +#: mod/photos.php:1406 mod/wallmessage.php:141 src/Object/Post.php:423 msgid "Please wait" msgstr "Bitte warten" @@ -225,56 +227,57 @@ msgstr "Lösche die markierten Beiträge" msgid "Follow Thread" msgstr "Folge der Unterhaltung" -#: include/conversation.php:941 src/Model/Contact.php:1068 +#: include/conversation.php:941 src/Model/Contact.php:1111 msgid "View Status" msgstr "Pinnwand anschauen" #: include/conversation.php:942 include/conversation.php:960 -#: mod/allfriends.php:72 mod/dirfind.php:226 mod/suggest.php:87 -#: mod/directory.php:198 mod/match.php:87 src/Model/Contact.php:1008 -#: src/Model/Contact.php:1061 src/Model/Contact.php:1069 +#: mod/dirfind.php:226 mod/match.php:87 mod/suggest.php:87 +#: src/Model/Contact.php:1051 src/Model/Contact.php:1104 +#: src/Model/Contact.php:1112 src/Module/AllFriends.php:74 +#: src/Module/Directory.php:155 msgid "View Profile" msgstr "Profil anschauen" -#: include/conversation.php:943 src/Model/Contact.php:1070 +#: include/conversation.php:943 src/Model/Contact.php:1113 msgid "View Photos" msgstr "Bilder anschauen" -#: include/conversation.php:944 src/Model/Contact.php:1062 -#: src/Model/Contact.php:1071 +#: include/conversation.php:944 src/Model/Contact.php:1105 +#: src/Model/Contact.php:1114 msgid "Network Posts" msgstr "Netzwerkbeiträge" -#: include/conversation.php:945 src/Model/Contact.php:1063 -#: src/Model/Contact.php:1072 +#: include/conversation.php:945 src/Model/Contact.php:1106 +#: src/Model/Contact.php:1115 msgid "View Contact" msgstr "Kontakt anzeigen" -#: include/conversation.php:946 src/Model/Contact.php:1074 +#: include/conversation.php:946 src/Model/Contact.php:1117 msgid "Send PM" msgstr "Private Nachricht senden" -#: include/conversation.php:947 mod/admin.php:517 mod/admin.php:2022 -#: src/Module/Contact.php:621 src/Module/Contact.php:824 -#: src/Module/Contact.php:1077 +#: include/conversation.php:947 src/Module/Admin/Blocklist/Contact.php:66 +#: src/Module/Admin/Users.php:289 src/Module/Contact.php:624 +#: src/Module/Contact.php:827 src/Module/Contact.php:1080 msgid "Block" msgstr "Sperren" #: include/conversation.php:948 mod/notifications.php:60 -#: mod/notifications.php:186 mod/notifications.php:271 -#: src/Module/Contact.php:622 src/Module/Contact.php:825 -#: src/Module/Contact.php:1085 +#: mod/notifications.php:186 mod/notifications.php:279 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 msgid "Ignore" msgstr "Ignorieren" -#: include/conversation.php:952 src/Model/Contact.php:1075 +#: include/conversation.php:952 src/Model/Contact.php:1118 msgid "Poke" msgstr "Anstupsen" -#: include/conversation.php:957 mod/allfriends.php:73 mod/dirfind.php:227 -#: mod/suggest.php:88 mod/follow.php:156 mod/match.php:88 -#: view/theme/vier/theme.php:201 src/Content/Widget.php:63 -#: src/Model/Contact.php:1064 src/Module/Contact.php:574 +#: include/conversation.php:957 mod/dirfind.php:227 mod/follow.php:158 +#: mod/match.php:88 mod/suggest.php:88 src/Content/Widget.php:63 +#: src/Model/Contact.php:1107 src/Module/AllFriends.php:75 +#: src/Module/Contact.php:577 view/theme/vier/theme.php:201 msgid "Connect/Follow" msgstr "Verbinden/Folgen" @@ -384,7 +387,7 @@ msgstr "Bitte gib eine Bild/Video/Audio/Webseiten-URL ein:" msgid "Tag term:" msgstr "Tag:" -#: include/conversation.php:1172 src/Module/Filer.php:48 +#: include/conversation.php:1172 src/Module/Filer/SaveTag.php:49 msgid "Save to Folder:" msgstr "In diesem Ordner speichern:" @@ -404,20 +407,20 @@ msgstr "Neuer Beitrag" msgid "Share" msgstr "Teilen" -#: include/conversation.php:1210 mod/editpost.php:74 mod/message.php:258 +#: include/conversation.php:1210 mod/editpost.php:72 mod/message.php:258 #: mod/message.php:439 mod/wallmessage.php:139 msgid "Upload photo" msgstr "Foto hochladen" -#: include/conversation.php:1211 mod/editpost.php:75 +#: include/conversation.php:1211 mod/editpost.php:73 msgid "upload photo" msgstr "Bild hochladen" -#: include/conversation.php:1212 mod/editpost.php:76 +#: include/conversation.php:1212 mod/editpost.php:74 msgid "Attach file" msgstr "Datei anhängen" -#: include/conversation.php:1213 mod/editpost.php:77 +#: include/conversation.php:1213 mod/editpost.php:75 msgid "attach file" msgstr "Datei anhängen" @@ -453,54 +456,54 @@ msgstr "Link" msgid "Link or Media" msgstr "Link oder Mediendatei" -#: include/conversation.php:1222 mod/editpost.php:84 +#: include/conversation.php:1222 mod/editpost.php:82 msgid "Set your location" msgstr "Deinen Standort festlegen" -#: include/conversation.php:1223 mod/editpost.php:85 +#: include/conversation.php:1223 mod/editpost.php:83 msgid "set location" msgstr "Ort setzen" -#: include/conversation.php:1224 mod/editpost.php:86 +#: include/conversation.php:1224 mod/editpost.php:84 msgid "Clear browser location" msgstr "Browser-Standort leeren" -#: include/conversation.php:1225 mod/editpost.php:87 +#: include/conversation.php:1225 mod/editpost.php:85 msgid "clear location" msgstr "Ort löschen" -#: include/conversation.php:1227 mod/editpost.php:102 +#: include/conversation.php:1227 mod/editpost.php:99 msgid "Set title" msgstr "Titel setzen" -#: include/conversation.php:1229 mod/editpost.php:104 +#: include/conversation.php:1229 mod/editpost.php:101 msgid "Categories (comma-separated list)" msgstr "Kategorien (kommasepariert)" -#: include/conversation.php:1231 mod/editpost.php:89 +#: include/conversation.php:1231 mod/editpost.php:87 msgid "Permission settings" msgstr "Berechtigungseinstellungen" -#: include/conversation.php:1232 mod/editpost.php:119 +#: include/conversation.php:1232 mod/editpost.php:116 msgid "permissions" msgstr "Zugriffsrechte" -#: include/conversation.php:1241 mod/editpost.php:99 +#: include/conversation.php:1241 mod/editpost.php:96 msgid "Public post" msgstr "Öffentlicher Beitrag" -#: include/conversation.php:1245 mod/editpost.php:110 mod/events.php:551 -#: mod/photos.php:1458 mod/photos.php:1497 mod/photos.php:1557 +#: include/conversation.php:1245 mod/editpost.php:107 mod/events.php:549 +#: mod/photos.php:1424 mod/photos.php:1463 mod/photos.php:1523 #: src/Object/Post.php:887 msgid "Preview" msgstr "Vorschau" #: include/conversation.php:1249 include/items.php:397 -#: mod/dfrn_request.php:650 mod/editpost.php:113 mod/fbrowser.php:104 -#: mod/fbrowser.php:134 mod/message.php:153 mod/photos.php:257 -#: mod/photos.php:325 mod/suggest.php:44 mod/tagrm.php:20 mod/tagrm.php:115 -#: mod/unfollow.php:132 mod/videos.php:105 mod/follow.php:170 -#: mod/settings.php:668 mod/settings.php:694 src/Module/Contact.php:447 +#: mod/dfrn_request.php:650 mod/editpost.php:110 mod/fbrowser.php:110 +#: mod/fbrowser.php:139 mod/follow.php:172 mod/message.php:153 +#: mod/photos.php:1076 mod/photos.php:1183 mod/settings.php:675 +#: mod/settings.php:701 mod/suggest.php:76 mod/tagrm.php:20 mod/tagrm.php:115 +#: mod/unfollow.php:132 src/Module/Contact.php:450 msgid "Cancel" msgstr "Abbrechen" @@ -516,12 +519,12 @@ msgstr "Poste an Kontakte" msgid "Private post" msgstr "Privater Beitrag" -#: include/conversation.php:1261 mod/editpost.php:117 -#: src/Model/Profile.php:370 +#: include/conversation.php:1261 mod/editpost.php:114 +#: src/Model/Profile.php:366 msgid "Message" msgstr "Nachricht" -#: include/conversation.php:1262 mod/editpost.php:118 +#: include/conversation.php:1262 mod/editpost.php:115 msgid "Browser" msgstr "Browser" @@ -868,8 +871,9 @@ msgstr "Kompletter Name: %s\nURL der Seite: %s\nLogin Name: %s(%s)" msgid "Please visit %s to approve or reject the request." msgstr "Bitte besuche %s, um die Anfrage zu bearbeiten." -#: include/items.php:354 mod/notice.php:20 mod/viewsrc.php:22 -#: mod/admin.php:299 mod/admin.php:2080 mod/admin.php:2327 +#: include/items.php:354 mod/notice.php:19 +#: src/Module/Admin/Themes/Details.php:53 src/Module/Admin/Themes/Index.php:41 +#: src/Module/ItemBody.php:27 src/Module/ItemBody.php:40 msgid "Item not found." msgstr "Beitrag nicht gefunden." @@ -878,35 +882,35 @@ msgid "Do you really want to delete this item?" msgstr "Möchtest du wirklich dieses Item löschen?" #: include/items.php:394 mod/api.php:109 mod/dfrn_request.php:640 -#: mod/message.php:150 mod/suggest.php:41 mod/follow.php:159 -#: mod/profiles.php:526 mod/profiles.php:529 mod/profiles.php:551 -#: mod/settings.php:1077 mod/settings.php:1083 mod/settings.php:1090 -#: mod/settings.php:1094 mod/settings.php:1098 mod/settings.php:1102 -#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1130 -#: mod/settings.php:1131 mod/settings.php:1132 mod/settings.php:1133 -#: mod/settings.php:1134 src/Module/Contact.php:444 src/Module/Register.php:97 +#: mod/follow.php:161 mod/message.php:150 mod/profiles.php:526 +#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1084 +#: mod/settings.php:1090 mod/settings.php:1097 mod/settings.php:1101 +#: mod/settings.php:1105 mod/settings.php:1109 mod/settings.php:1113 +#: mod/settings.php:1117 mod/settings.php:1137 mod/settings.php:1138 +#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 +#: mod/suggest.php:73 src/Module/Contact.php:447 src/Module/Register.php:97 msgid "Yes" msgstr "Ja" -#: include/items.php:444 mod/allfriends.php:22 mod/api.php:34 mod/api.php:39 -#: mod/cal.php:303 mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 -#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:66 -#: mod/dirfind.php:29 mod/editpost.php:22 mod/events.php:207 -#: mod/fsuggest.php:77 mod/invite.php:23 mod/invite.php:111 mod/manage.php:129 -#: mod/message.php:56 mod/message.php:101 mod/nogroup.php:18 mod/notes.php:27 -#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:186 -#: mod/photos.php:1020 mod/poke.php:141 mod/profile_photo.php:32 -#: mod/profile_photo.php:177 mod/profile_photo.php:204 mod/regmod.php:89 -#: mod/repair_ostatus.php:16 mod/suggest.php:62 mod/uimport.php:17 -#: mod/unfollow.php:22 mod/unfollow.php:77 mod/unfollow.php:109 -#: mod/viewcontacts.php:56 mod/wall_attach.php:76 mod/wall_attach.php:79 -#: mod/wall_upload.php:107 mod/wall_upload.php:110 mod/wallmessage.php:19 -#: mod/wallmessage.php:43 mod/wallmessage.php:82 mod/wallmessage.php:106 -#: mod/follow.php:57 mod/follow.php:130 mod/item.php:169 mod/network.php:36 -#: mod/profiles.php:182 mod/profiles.php:499 mod/settings.php:50 -#: mod/settings.php:156 mod/settings.php:657 src/Module/Attach.php:42 -#: src/Module/Contact.php:360 src/Module/Register.php:193 -#: src/Module/Group.php:31 src/Module/Group.php:75 src/App.php:1312 +#: include/items.php:444 mod/api.php:34 mod/api.php:39 mod/cal.php:301 +#: mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 +#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:64 +#: mod/dirfind.php:29 mod/editpost.php:21 mod/events.php:207 mod/follow.php:57 +#: mod/follow.php:132 mod/fsuggest.php:77 mod/item.php:169 mod/manage.php:130 +#: mod/message.php:56 mod/message.php:101 mod/network.php:36 mod/notes.php:27 +#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:178 +#: mod/photos.php:958 mod/poke.php:141 mod/profiles.php:182 +#: mod/profiles.php:499 mod/profile_photo.php:32 mod/profile_photo.php:177 +#: mod/profile_photo.php:204 mod/regmod.php:89 mod/repair_ostatus.php:16 +#: mod/settings.php:50 mod/settings.php:163 mod/settings.php:664 +#: mod/suggest.php:39 mod/uimport.php:17 mod/unfollow.php:22 +#: mod/unfollow.php:77 mod/unfollow.php:109 mod/viewcontacts.php:56 +#: mod/wallmessage.php:19 mod/wallmessage.php:43 mod/wallmessage.php:82 +#: mod/wallmessage.php:106 mod/wall_attach.php:76 mod/wall_attach.php:79 +#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/Module/Attach.php:42 +#: src/Module/Contact.php:362 src/Module/FollowConfirm.php:27 +#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22 +#: src/Module/Invite.php:110 src/Module/Register.php:192 msgid "Permission denied." msgstr "Zugriff verweigert." @@ -914,24 +918,11 @@ msgstr "Zugriff verweigert." msgid "Archives" msgstr "Archiv" -#: include/items.php:521 view/theme/vier/theme.php:255 -#: src/Content/Widget.php:329 src/Content/ForumManager.php:135 +#: include/items.php:521 src/Content/ForumManager.php:135 +#: src/Content/Widget.php:329 view/theme/vier/theme.php:255 msgid "show more" msgstr "mehr anzeigen" -#: mod/maintenance.php:26 -msgid "System down for maintenance" -msgstr "System zur Wartung abgeschaltet" - -#: mod/allfriends.php:52 -msgid "No friends to display." -msgstr "Keine Kontakte zum Anzeigen." - -#: mod/allfriends.php:89 mod/dirfind.php:217 mod/suggest.php:106 -#: mod/match.php:102 src/Content/Widget.php:39 src/Model/Profile.php:313 -msgid "Connect" -msgstr "Verbinden" - #: mod/api.php:84 mod/api.php:106 msgid "Authorize application connection" msgstr "Verbindung der Applikation autorisieren" @@ -950,96 +941,79 @@ msgid "" " and/or create new posts for you?" msgstr "Möchtest du dieser Anwendung den Zugriff auf Deine Beiträge und Kontakte sowie das Erstellen neuer Beiträge in Deinem Namen gestatten?" -#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:159 +#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:161 #: mod/profiles.php:526 mod/profiles.php:530 mod/profiles.php:551 -#: mod/settings.php:1077 mod/settings.php:1083 mod/settings.php:1090 -#: mod/settings.php:1094 mod/settings.php:1098 mod/settings.php:1102 -#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1130 -#: mod/settings.php:1131 mod/settings.php:1132 mod/settings.php:1133 -#: mod/settings.php:1134 src/Module/Register.php:98 +#: mod/settings.php:1084 mod/settings.php:1090 mod/settings.php:1097 +#: mod/settings.php:1101 mod/settings.php:1105 mod/settings.php:1109 +#: mod/settings.php:1113 mod/settings.php:1117 mod/settings.php:1137 +#: mod/settings.php:1138 mod/settings.php:1139 mod/settings.php:1140 +#: mod/settings.php:1141 src/Module/Register.php:98 msgid "No" msgstr "Nein" -#: mod/bookmarklet.php:22 src/Content/Nav.php:170 src/Module/Login.php:322 -msgid "Login" -msgstr "Anmeldung" - -#: mod/bookmarklet.php:32 -msgid "Bad Request" -msgstr "Ungültige Anfrage" - -#: mod/bookmarklet.php:54 -msgid "The post was created" -msgstr "Der Beitrag wurde angelegt" - -#: mod/cal.php:34 mod/cal.php:38 mod/community.php:39 mod/viewcontacts.php:23 -#: mod/viewcontacts.php:27 mod/viewsrc.php:13 mod/follow.php:20 +#: mod/cal.php:34 mod/cal.php:38 mod/community.php:39 mod/follow.php:20 +#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 src/Module/ItemBody.php:18 msgid "Access denied." msgstr "Zugriff verweigert." -#: mod/cal.php:46 mod/dfrn_poll.php:486 mod/help.php:68 -#: mod/viewcontacts.php:34 src/App.php:1232 -msgid "Page not found." -msgstr "Seite nicht gefunden." - -#: mod/cal.php:141 mod/display.php:306 src/Module/Profile.php:174 +#: mod/cal.php:140 mod/display.php:306 src/Module/Profile.php:176 msgid "Access to this profile has been restricted." msgstr "Der Zugriff zu diesem Profil wurde eingeschränkt." -#: mod/cal.php:273 mod/events.php:384 view/theme/frio/theme.php:266 -#: view/theme/frio/theme.php:270 src/Content/Nav.php:160 -#: src/Content/Nav.php:226 src/Model/Profile.php:937 src/Model/Profile.php:948 +#: mod/cal.php:271 mod/events.php:382 src/Content/Nav.php:159 +#: src/Content/Nav.php:225 src/Model/Profile.php:931 src/Model/Profile.php:942 +#: view/theme/frio/theme.php:266 view/theme/frio/theme.php:270 msgid "Events" msgstr "Veranstaltungen" -#: mod/cal.php:274 mod/events.php:385 +#: mod/cal.php:272 mod/events.php:383 msgid "View" msgstr "Ansehen" -#: mod/cal.php:275 mod/events.php:387 +#: mod/cal.php:273 mod/events.php:385 msgid "Previous" msgstr "Vorherige" -#: mod/cal.php:276 mod/events.php:388 src/Module/Install.php:172 +#: mod/cal.php:274 mod/events.php:386 src/Module/Install.php:173 msgid "Next" msgstr "Nächste" -#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:428 +#: mod/cal.php:277 mod/events.php:391 src/Model/Event.php:428 msgid "today" msgstr "Heute" -#: mod/cal.php:280 mod/events.php:394 src/Util/Temporal.php:314 -#: src/Model/Event.php:429 +#: mod/cal.php:278 mod/events.php:392 src/Model/Event.php:429 +#: src/Util/Temporal.php:314 msgid "month" msgstr "Monat" -#: mod/cal.php:281 mod/events.php:395 src/Util/Temporal.php:315 -#: src/Model/Event.php:430 +#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:430 +#: src/Util/Temporal.php:315 msgid "week" msgstr "Woche" -#: mod/cal.php:282 mod/events.php:396 src/Util/Temporal.php:316 -#: src/Model/Event.php:431 +#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:431 +#: src/Util/Temporal.php:316 msgid "day" msgstr "Tag" -#: mod/cal.php:283 mod/events.php:397 +#: mod/cal.php:281 mod/events.php:395 msgid "list" msgstr "Liste" -#: mod/cal.php:296 src/Core/Console/NewPassword.php:67 src/Model/User.php:324 +#: mod/cal.php:294 src/Console/NewPassword.php:67 src/Model/User.php:351 msgid "User not found" msgstr "Nutzer nicht gefunden" -#: mod/cal.php:312 +#: mod/cal.php:310 msgid "This calendar format is not supported" msgstr "Dieses Kalenderformat wird nicht unterstützt." -#: mod/cal.php:314 +#: mod/cal.php:312 msgid "No exportable data found" msgstr "Keine exportierbaren Daten gefunden" -#: mod/cal.php:331 +#: mod/cal.php:329 msgid "calendar" msgstr "Kalender" @@ -1047,14 +1021,14 @@ msgstr "Kalender" msgid "No contacts in common." msgstr "Keine gemeinsamen Kontakte." -#: mod/common.php:141 src/Module/Contact.php:892 +#: mod/common.php:141 src/Module/Contact.php:895 msgid "Common Friends" msgstr "Gemeinsame Kontakte" -#: mod/community.php:32 mod/dfrn_request.php:597 mod/photos.php:903 -#: mod/probe.php:13 mod/search.php:96 mod/search.php:102 mod/videos.php:147 -#: mod/viewcontacts.php:46 mod/webfinger.php:16 mod/directory.php:43 -#: mod/display.php:203 +#: mod/community.php:32 mod/dfrn_request.php:597 mod/display.php:204 +#: mod/photos.php:846 mod/probe.php:14 mod/search.php:96 mod/search.php:102 +#: mod/videos.php:118 mod/viewcontacts.php:46 src/Module/Directory.php:43 +#: src/Module/WebFinger.php:19 msgid "Public access denied." msgstr "Öffentlicher Zugriff verweigert." @@ -1082,7 +1056,7 @@ msgstr "Globale Gemeinschaft" msgid "Posts from users of the whole federated network" msgstr "Beiträge von Nutzern des gesamten föderalen Netzwerks" -#: mod/community.php:162 mod/search.php:229 +#: mod/community.php:162 mod/search.php:223 msgid "No results." msgstr "Keine Ergebnisse." @@ -1100,9 +1074,9 @@ msgstr "Einstellungen zum Kontakt angewandt." msgid "Contact update failed." msgstr "Konnte den Kontakt nicht aktualisieren." -#: mod/crepair.php:102 mod/dfrn_confirm.php:127 mod/fsuggest.php:28 +#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/fsuggest.php:28 #: mod/fsuggest.php:89 mod/redir.php:31 mod/redir.php:137 -#: src/Module/Group.php:89 +#: src/Module/FollowConfirm.php:46 src/Module/Group.php:92 msgid "Contact not found." msgstr "Kontakt nicht gefunden." @@ -1138,16 +1112,16 @@ msgstr "Zurück zum Kontakteditor" msgid "Refetch contact data" msgstr "Kontaktdaten neu laden" -#: mod/crepair.php:149 mod/events.php:553 mod/fsuggest.php:106 -#: mod/invite.php:154 mod/manage.php:182 mod/message.php:261 -#: mod/message.php:441 mod/photos.php:1049 mod/photos.php:1137 -#: mod/photos.php:1412 mod/photos.php:1457 mod/photos.php:1496 -#: mod/photos.php:1556 mod/poke.php:188 mod/profiles.php:562 +#: mod/crepair.php:149 mod/events.php:551 mod/fsuggest.php:106 +#: mod/manage.php:183 mod/message.php:261 mod/message.php:441 +#: mod/photos.php:987 mod/photos.php:1093 mod/photos.php:1378 +#: mod/photos.php:1423 mod/photos.php:1462 mod/photos.php:1522 +#: mod/poke.php:184 mod/profiles.php:562 src/Module/Contact.php:597 +#: src/Module/Install.php:211 src/Module/Install.php:251 +#: src/Module/Install.php:287 src/Module/Invite.php:157 +#: src/Module/Localtime.php:45 src/Object/Post.php:877 #: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:121 #: view/theme/quattro/config.php:74 view/theme/vier/config.php:120 -#: src/Module/Contact.php:594 src/Module/Install.php:212 -#: src/Module/Install.php:253 src/Module/Install.php:290 -#: src/Module/Localtime.php:45 src/Object/Post.php:877 msgid "Submit" msgstr "Senden" @@ -1165,9 +1139,10 @@ msgid "" "entries from this contact." msgstr "Markiere diesen Kontakt als remote_self (entferntes Konto), dies veranlasst Friendica, alle Top-Level Beiträge dieses Kontakts an all Deine Kontakte zu senden (spiegeln)." -#: mod/crepair.php:159 mod/admin.php:523 mod/admin.php:2005 mod/admin.php:2016 -#: mod/admin.php:2030 mod/admin.php:2046 mod/settings.php:669 -#: mod/settings.php:695 +#: mod/crepair.php:159 mod/settings.php:676 mod/settings.php:702 +#: src/Module/Admin/Blocklist/Contact.php:72 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:313 msgid "Name" msgstr "Name" @@ -1234,14 +1209,15 @@ msgid "" "settings. Please double check whom you give this access." msgstr "Verwalter haben Zugriff auf alle Funktionen dieses Benutzerkontos und können dessen Einstellungen ändern." -#: mod/delegate.php:175 mod/admin.php:333 mod/admin.php:1533 -#: mod/admin.php:2189 mod/admin.php:2430 mod/admin.php:2506 mod/admin.php:2656 -#: mod/settings.php:667 mod/settings.php:774 mod/settings.php:862 -#: mod/settings.php:941 mod/settings.php:1166 +#: mod/delegate.php:175 mod/settings.php:674 mod/settings.php:781 +#: mod/settings.php:869 mod/settings.php:948 mod/settings.php:1173 +#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69 +#: src/Module/Admin/Logs/Settings.php:59 src/Module/Admin/Site.php:570 +#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Tos.php:50 msgid "Save Settings" msgstr "Einstellungen speichern" -#: mod/delegate.php:176 src/Content/Nav.php:261 +#: mod/delegate.php:176 src/Content/Nav.php:260 msgid "Delegate Page Management" msgstr "Delegiere das Management für die Seite" @@ -1276,83 +1252,79 @@ msgstr "Hinzufügen" msgid "No entries." msgstr "Keine Einträge." -#: mod/dfrn_confirm.php:72 mod/profiles.php:43 mod/profiles.php:152 +#: mod/dfrn_confirm.php:70 mod/profiles.php:43 mod/profiles.php:152 #: mod/profiles.php:196 mod/profiles.php:511 msgid "Profile not found." msgstr "Profil nicht gefunden." -#: mod/dfrn_confirm.php:128 +#: mod/dfrn_confirm.php:126 msgid "" "This may occasionally happen if contact was requested by both persons and it" " has already been approved." msgstr "Das kann passieren, wenn sich zwei Kontakte gegenseitig eingeladen haben und bereits einer angenommen wurde." -#: mod/dfrn_confirm.php:238 +#: mod/dfrn_confirm.php:227 msgid "Response from remote site was not understood." msgstr "Antwort der Gegenstelle unverständlich." -#: mod/dfrn_confirm.php:245 mod/dfrn_confirm.php:251 +#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240 msgid "Unexpected response from remote site: " msgstr "Unerwartete Antwort der Gegenstelle: " -#: mod/dfrn_confirm.php:260 +#: mod/dfrn_confirm.php:249 msgid "Confirmation completed successfully." msgstr "Bestätigung erfolgreich abgeschlossen." -#: mod/dfrn_confirm.php:272 +#: mod/dfrn_confirm.php:261 msgid "Temporary failure. Please wait and try again." msgstr "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal." -#: mod/dfrn_confirm.php:275 +#: mod/dfrn_confirm.php:264 msgid "Introduction failed or was revoked." msgstr "Kontaktanfrage schlug fehl oder wurde zurückgezogen." -#: mod/dfrn_confirm.php:280 +#: mod/dfrn_confirm.php:269 msgid "Remote site reported: " msgstr "Gegenstelle meldet: " -#: mod/dfrn_confirm.php:386 -msgid "Unable to set contact photo." -msgstr "Konnte das Bild des Kontakts nicht speichern." - -#: mod/dfrn_confirm.php:448 +#: mod/dfrn_confirm.php:374 #, php-format msgid "No user record found for '%s' " msgstr "Für '%s' wurde kein Nutzer gefunden" -#: mod/dfrn_confirm.php:458 +#: mod/dfrn_confirm.php:384 msgid "Our site encryption key is apparently messed up." msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend nicht in Ordnung." -#: mod/dfrn_confirm.php:469 +#: mod/dfrn_confirm.php:395 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden." -#: mod/dfrn_confirm.php:485 +#: mod/dfrn_confirm.php:411 msgid "Contact record was not found for you on our site." msgstr "Für diesen Kontakt wurde auf unserer Seite kein Eintrag gefunden." -#: mod/dfrn_confirm.php:499 +#: mod/dfrn_confirm.php:425 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "Die Kontaktdaten für URL %s enthalten keinen Public Key für den Server." -#: mod/dfrn_confirm.php:515 +#: mod/dfrn_confirm.php:441 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "Die ID, die uns dein System angeboten hat, ist hier bereits vergeben. Bitte versuche es noch einmal." -#: mod/dfrn_confirm.php:526 +#: mod/dfrn_confirm.php:452 msgid "Unable to set your contact credentials on our system." msgstr "Deine Kontaktreferenzen konnten nicht in unserem System gespeichert werden." -#: mod/dfrn_confirm.php:582 +#: mod/dfrn_confirm.php:508 msgid "Unable to update your contact profile details on our system" msgstr "Die Updates für dein Profil konnten nicht gespeichert werden" -#: mod/dfrn_confirm.php:612 mod/dfrn_request.php:560 -#: src/Model/Contact.php:2130 +#: mod/dfrn_confirm.php:538 mod/dfrn_request.php:560 +#: src/Model/Contact.php:2217 msgid "[Name Withheld]" msgstr "[Name unterdrückt]" @@ -1426,16 +1398,17 @@ msgstr "Es scheint so, als ob du bereits mit %s in Kontakt stehst." msgid "Invalid profile URL." msgstr "Ungültige Profil-URL." -#: mod/dfrn_request.php:340 src/Model/Contact.php:1801 +#: mod/dfrn_request.php:340 src/Model/Contact.php:1878 msgid "Disallowed profile URL." msgstr "Nicht erlaubte Profil-URL." -#: mod/dfrn_request.php:346 mod/friendica.php:131 mod/admin.php:383 -#: mod/admin.php:401 src/Model/Contact.php:1806 +#: mod/dfrn_request.php:346 src/Model/Contact.php:1883 +#: src/Module/Admin/Blocklist/Server.php:64 +#: src/Module/Admin/Blocklist/Server.php:83 src/Module/Friendica.php:59 msgid "Blocked domain" msgstr "Blockierte Domain" -#: mod/dfrn_request.php:413 src/Module/Contact.php:235 +#: mod/dfrn_request.php:413 src/Module/Contact.php:237 msgid "Failed to update contact record." msgstr "Aktualisierung der Kontaktdaten fehlgeschlagen." @@ -1500,16 +1473,16 @@ msgid "" "testuser@gnusocial.de" msgstr "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de" -#: mod/dfrn_request.php:639 mod/follow.php:158 +#: mod/dfrn_request.php:639 mod/follow.php:160 msgid "Please answer the following:" msgstr "Bitte beantworte folgendes:" -#: mod/dfrn_request.php:640 mod/follow.php:159 +#: mod/dfrn_request.php:640 mod/follow.php:161 #, php-format msgid "Does %s know you?" msgstr "Kennt %s dich?" -#: mod/dfrn_request.php:641 mod/follow.php:160 +#: mod/dfrn_request.php:641 mod/follow.php:162 msgid "Add a personal note:" msgstr "Eine persönliche Notiz beifügen:" @@ -1532,11 +1505,11 @@ msgid "" " bar." msgstr " - bitte verwende dieses Formular nicht. Stattdessen suche nach %s in Deiner Diaspora-Suchleiste." -#: mod/dfrn_request.php:647 mod/unfollow.php:128 mod/follow.php:166 +#: mod/dfrn_request.php:647 mod/follow.php:168 mod/unfollow.php:128 msgid "Your Identity Address:" msgstr "Adresse Deines Profils:" -#: mod/dfrn_request.php:649 mod/unfollow.php:131 mod/follow.php:74 +#: mod/dfrn_request.php:649 mod/follow.php:74 mod/unfollow.php:131 msgid "Submit Request" msgstr "Anfrage abschicken" @@ -1550,53 +1523,67 @@ msgstr "Personensuche - %s" msgid "Forum Search - %s" msgstr "Forensuche - %s" +#: mod/dirfind.php:217 mod/match.php:102 mod/suggest.php:106 +#: src/Content/Widget.php:39 src/Model/Profile.php:309 +#: src/Module/AllFriends.php:91 +msgid "Connect" +msgstr "Verbinden" + #: mod/dirfind.php:259 mod/match.php:130 msgid "No matches" msgstr "Keine Übereinstimmungen" -#: mod/editpost.php:29 mod/editpost.php:39 +#: mod/display.php:257 mod/display.php:342 +msgid "The requested item doesn't exist or has been deleted." +msgstr "Der angeforderte Beitrag existiert nicht oder wurde gelöscht." + +#: mod/display.php:417 +msgid "The feed for this item is unavailable." +msgstr "Der Feed für diesen Beitrag ist nicht verfügbar." + +#: mod/editpost.php:28 mod/editpost.php:38 msgid "Item not found" msgstr "Beitrag nicht gefunden" -#: mod/editpost.php:46 +#: mod/editpost.php:45 msgid "Edit post" msgstr "Beitrag bearbeiten" -#: mod/editpost.php:73 mod/notes.php:46 src/Content/Text/HTML.php:894 -#: src/Module/Filer.php:49 +#: mod/editpost.php:71 mod/notes.php:46 src/Content/Text/HTML.php:894 +#: src/Module/Filer/SaveTag.php:50 msgid "Save" msgstr "Speichern" -#: mod/editpost.php:78 mod/message.php:259 mod/message.php:440 +#: mod/editpost.php:76 mod/message.php:259 mod/message.php:440 #: mod/wallmessage.php:140 msgid "Insert web link" msgstr "Einen Link einfügen" -#: mod/editpost.php:79 +#: mod/editpost.php:77 msgid "web link" msgstr "Weblink" -#: mod/editpost.php:80 +#: mod/editpost.php:78 msgid "Insert video link" msgstr "Video-Adresse einfügen" -#: mod/editpost.php:81 +#: mod/editpost.php:79 msgid "video link" msgstr "Video-Link" -#: mod/editpost.php:82 +#: mod/editpost.php:80 msgid "Insert audio link" msgstr "Audio-Adresse einfügen" -#: mod/editpost.php:83 +#: mod/editpost.php:81 msgid "audio link" msgstr "Audio-Link" -#: mod/editpost.php:98 src/Core/ACL.php:308 +#: mod/editpost.php:95 src/Core/ACL.php:308 msgid "CC: email addresses" msgstr "Cc: E-Mail-Addressen" -#: mod/editpost.php:105 src/Core/ACL.php:309 +#: mod/editpost.php:102 src/Core/ACL.php:309 msgid "Example: bob@example.com, mary@example.com" msgstr "Z.B.: bob@example.com, mary@example.com" @@ -1608,144 +1595,134 @@ msgstr "Die Veranstaltung kann nicht enden, bevor sie beginnt." msgid "Event title and start time are required." msgstr "Der Veranstaltungstitel und die Anfangszeit müssen angegeben werden." -#: mod/events.php:386 +#: mod/events.php:384 msgid "Create New Event" msgstr "Neue Veranstaltung erstellen" -#: mod/events.php:509 +#: mod/events.php:507 msgid "Event details" msgstr "Veranstaltungsdetails" -#: mod/events.php:510 +#: mod/events.php:508 msgid "Starting date and Title are required." msgstr "Anfangszeitpunkt und Titel werden benötigt" -#: mod/events.php:511 mod/events.php:516 +#: mod/events.php:509 mod/events.php:514 msgid "Event Starts:" msgstr "Veranstaltungsbeginn:" -#: mod/events.php:511 mod/events.php:543 mod/profiles.php:592 +#: mod/events.php:509 mod/events.php:541 mod/profiles.php:592 msgid "Required" msgstr "Benötigt" -#: mod/events.php:524 mod/events.php:549 +#: mod/events.php:522 mod/events.php:547 msgid "Finish date/time is not known or not relevant" msgstr "Enddatum/-zeit ist nicht bekannt oder nicht relevant" -#: mod/events.php:526 mod/events.php:531 +#: mod/events.php:524 mod/events.php:529 msgid "Event Finishes:" msgstr "Veranstaltungsende:" -#: mod/events.php:537 mod/events.php:550 +#: mod/events.php:535 mod/events.php:548 msgid "Adjust for viewer timezone" msgstr "An Zeitzone des Betrachters anpassen" -#: mod/events.php:539 +#: mod/events.php:537 msgid "Description:" msgstr "Beschreibung" -#: mod/events.php:541 mod/notifications.php:253 mod/directory.php:185 -#: src/Model/Event.php:68 src/Model/Event.php:95 src/Model/Event.php:437 -#: src/Model/Event.php:933 src/Model/Profile.php:443 -#: src/Module/Contact.php:643 +#: mod/events.php:539 mod/notifications.php:261 src/Model/Event.php:68 +#: src/Model/Event.php:95 src/Model/Event.php:437 src/Model/Event.php:933 +#: src/Model/Profile.php:439 src/Module/Contact.php:646 +#: src/Module/Directory.php:142 msgid "Location:" msgstr "Ort:" -#: mod/events.php:543 mod/events.php:545 +#: mod/events.php:541 mod/events.php:543 msgid "Title:" msgstr "Titel:" -#: mod/events.php:546 mod/events.php:547 +#: mod/events.php:544 mod/events.php:545 msgid "Share this event" msgstr "Veranstaltung teilen" -#: mod/events.php:554 src/Model/Profile.php:877 +#: mod/events.php:552 src/Model/Profile.php:871 msgid "Basic" msgstr "Allgemein" -#: mod/events.php:555 mod/admin.php:1538 src/Model/Profile.php:878 -#: src/Module/Contact.php:902 +#: mod/events.php:553 src/Model/Profile.php:872 src/Module/Admin/Site.php:575 +#: src/Module/Contact.php:905 msgid "Advanced" msgstr "Erweitert" -#: mod/events.php:556 mod/photos.php:1067 mod/photos.php:1408 +#: mod/events.php:554 mod/photos.php:1005 mod/photos.php:1374 #: src/Core/ACL.php:314 msgid "Permissions" msgstr "Berechtigungen" -#: mod/events.php:572 +#: mod/events.php:570 msgid "Failed to remove event" msgstr "Entfernen der Veranstaltung fehlgeschlagen" -#: mod/events.php:574 +#: mod/events.php:572 msgid "Event removed" msgstr "Veranstaltung enfternt" -#: mod/fbrowser.php:36 view/theme/frio/theme.php:264 src/Content/Nav.php:158 -#: src/Model/Profile.php:917 +#: mod/fbrowser.php:43 src/Content/Nav.php:157 src/Model/Profile.php:911 +#: view/theme/frio/theme.php:264 msgid "Photos" msgstr "Bilder" -#: mod/fbrowser.php:45 mod/fbrowser.php:69 mod/photos.php:201 -#: mod/photos.php:1031 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1610 mod/photos.php:1625 src/Model/Photo.php:552 +#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:193 +#: mod/photos.php:969 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1575 mod/photos.php:1590 src/Model/Photo.php:552 #: src/Model/Photo.php:561 msgid "Contact Photos" msgstr "Kontaktbilder" -#: mod/fbrowser.php:106 mod/fbrowser.php:136 mod/profile_photo.php:254 +#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:254 msgid "Upload" msgstr "Hochladen" -#: mod/fbrowser.php:131 +#: mod/fbrowser.php:136 msgid "Files" msgstr "Dateien" -#: mod/friendica.php:88 -#, php-format -msgid "" -"This is Friendica, version %s that is running at the web location %s. The " -"database version is %s, the post update version is %s." -msgstr "Diese Friendica-Instanz verwendet die Version %s, sie ist unter der folgenden Adresse im Web zu finden %s. Die Datenbankversion ist %s und die Post-Update-Version %s." +#: mod/follow.php:46 +msgid "The contact could not be added." +msgstr "Der Kontakt konnte nicht hinzugefügt werden." -#: mod/friendica.php:94 -msgid "" -"Please visit Friendi.ca to learn more " -"about the Friendica project." -msgstr "Bitte besuche Friendi.ca, um mehr über das Friendica-Projekt zu erfahren." +#: mod/follow.php:85 +msgid "You already added this contact." +msgstr "Du hast den Kontakt bereits hinzugefügt." -#: mod/friendica.php:98 -msgid "Bug reports and issues: please visit" -msgstr "Probleme oder Fehler gefunden? Bitte besuche" +#: mod/follow.php:97 +msgid "Diaspora support isn't enabled. Contact can't be added." +msgstr "Diaspora-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." -#: mod/friendica.php:98 -msgid "the bugtracker at github" -msgstr "den Bugtracker auf github" +#: mod/follow.php:104 +msgid "OStatus support is disabled. Contact can't be added." +msgstr "OStatus-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." -#: mod/friendica.php:101 -msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" -msgstr "Vorschläge, Lob usw.: E-Mail an \"Info\" at \"Friendi - dot ca\"" +#: mod/follow.php:111 +msgid "The network type couldn't be detected. Contact can't be added." +msgstr "Der Netzwerktyp wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden." -#: mod/friendica.php:106 -msgid "Installed addons/apps:" -msgstr "Installierte Apps und Addons" +#: mod/follow.php:177 mod/notifications.php:179 mod/notifications.php:271 +#: mod/unfollow.php:137 src/Module/Admin/Blocklist/Contact.php:72 +#: src/Module/Admin/Blocklist/Contact.php:82 src/Module/Contact.php:642 +msgid "Profile URL" +msgstr "Profil URL" -#: mod/friendica.php:120 -msgid "No installed addons/apps" -msgstr "Es sind keine Addons oder Apps installiert" +#: mod/follow.php:181 mod/notifications.php:265 src/Model/Profile.php:801 +#: src/Module/Contact.php:652 +msgid "Tags:" +msgstr "Tags:" -#: mod/friendica.php:125 -#, php-format -msgid "Read about the Terms of Service of this node." -msgstr "Erfahre mehr über die Nutzungsbedingungen dieses Knotens." - -#: mod/friendica.php:130 -msgid "On this server the following remote servers are blocked." -msgstr "Auf diesem Server werden die folgenden, entfernten Server blockiert." - -#: mod/friendica.php:131 mod/admin.php:384 mod/admin.php:402 -msgid "Reason for the block" -msgstr "Begründung für die Blockierung" +#: mod/follow.php:193 mod/unfollow.php:147 src/Model/Profile.php:898 +#: src/Module/Contact.php:867 +msgid "Status Messages and Posts" +msgstr "Statusnachrichten und Beiträge" #: mod/fsuggest.php:69 msgid "Friend suggestion sent." @@ -1764,131 +1741,36 @@ msgstr "Schlage %s einen Kontakt vor" msgid "No profile" msgstr "Kein Profil" -#: mod/help.php:52 -msgid "Help:" -msgstr "Hilfe:" +#: mod/item.php:122 +msgid "Unable to locate original post." +msgstr "Konnte den Originalbeitrag nicht finden." -#: mod/help.php:59 view/theme/vier/theme.php:294 src/Content/Nav.php:190 -msgid "Help" -msgstr "Hilfe" +#: mod/item.php:322 +msgid "Empty post discarded." +msgstr "Leerer Beitrag wurde verworfen." -#: mod/help.php:65 src/App.php:1229 -msgid "Not Found" -msgstr "Nicht gefunden" - -#: mod/home.php:40 -#, php-format -msgid "Welcome to %s" -msgstr "Willkommen zu %s" - -#: mod/invite.php:36 -msgid "Total invitation limit exceeded." -msgstr "Limit für Einladungen erreicht." - -#: mod/invite.php:60 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s: Keine gültige Email Adresse." - -#: mod/invite.php:87 -msgid "Please join us on Friendica" -msgstr "Ich lade dich zu unserem sozialen Netzwerk Friendica ein" - -#: mod/invite.php:96 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limit für Einladungen erreicht. Bitte kontaktiere des Administrator der Seite." - -#: mod/invite.php:100 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s: Zustellung der Nachricht fehlgeschlagen." - -#: mod/invite.php:104 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d Nachricht gesendet." -msgstr[1] "%d Nachrichten gesendet." - -#: mod/invite.php:122 -msgid "You have no more invitations available" -msgstr "Du hast keine weiteren Einladungen" - -#: mod/invite.php:130 +#: mod/item.php:839 #, php-format msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Besuche %s für eine Liste der öffentlichen Server, denen du beitreten kannst. Friendica-Mitglieder unterschiedlicher Server können sich sowohl alle miteinander verbinden, als auch mit Mitgliedern anderer sozialer Netzwerke." +"This message was sent to you by %s, a member of the Friendica social " +"network." +msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica." -#: mod/invite.php:132 +#: mod/item.php:841 #, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica-Website." +msgid "You may visit them online at %s" +msgstr "Du kannst sie online unter %s besuchen" -#: mod/invite.php:133 +#: mod/item.php:842 +msgid "" +"Please contact the sender by replying to this post if you do not wish to " +"receive these messages." +msgstr "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest." + +#: mod/item.php:846 #, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst." - -#: mod/invite.php:137 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Es tut uns leid. Dieses System ist zurzeit nicht dafür konfiguriert, sich mit anderen öffentlichen Seiten zu verbinden oder Mitglieder einzuladen." - -#: mod/invite.php:141 -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks." -msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden." - -#: mod/invite.php:140 -#, php-format -msgid "To accept this invitation, please visit and register at %s." -msgstr "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s." - -#: mod/invite.php:147 -msgid "Send invitations" -msgstr "Einladungen senden" - -#: mod/invite.php:148 -msgid "Enter email addresses, one per line:" -msgstr "E-Mail-Adressen eingeben, eine pro Zeile:" - -#: mod/invite.php:149 mod/message.php:255 mod/message.php:435 -#: mod/wallmessage.php:137 -msgid "Your message:" -msgstr "Deine Nachricht:" - -#: mod/invite.php:149 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "Du bist herzlich dazu eingeladen, dich mir und anderen guten Freunden auf Friendica anzuschließen - und ein besseres, soziales Netz aufzubauen." - -#: mod/invite.php:151 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Du benötigst den folgenden Einladungscode: $invite_code" - -#: mod/invite.php:151 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:" - -#: mod/invite.php:153 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendi.ca" -msgstr "Für weitere Informationen über das Friendica-Projekt und warum wir es für ein wichtiges Projekt halten, besuche bitte http://friendi.ca." +msgid "%s posted an update." +msgstr "%s hat ein Update veröffentlicht." #: mod/lockview.php:46 mod/lockview.php:57 msgid "Remote privacy information not available." @@ -1964,7 +1846,7 @@ msgid "" "your email for further instructions." msgstr "Gib Deine E-Mail-Adresse an und fordere ein neues Passwort an. Es werden dir dann weitere Informationen per Mail zugesendet." -#: mod/lostpass.php:119 src/Module/Login.php:324 +#: mod/lostpass.php:119 src/Module/Login.php:327 msgid "Nickname or Email: " msgstr "Spitzname oder E-Mail:" @@ -1972,7 +1854,7 @@ msgstr "Spitzname oder E-Mail:" msgid "Reset" msgstr "Zurücksetzen" -#: mod/lostpass.php:135 src/Module/Login.php:336 +#: mod/lostpass.php:135 src/Module/Login.php:339 msgid "Password Reset" msgstr "Passwort zurücksetzen" @@ -1998,7 +1880,7 @@ msgid "" "successful login." msgstr "Du kannst das Passwort in den Einstellungen ändern, sobald du dich erfolgreich angemeldet hast." -#: mod/lostpass.php:148 +#: mod/lostpass.php:147 #, php-format msgid "" "\n" @@ -2009,7 +1891,7 @@ msgid "" "\t\t" msgstr "\nHallo %1$s,\n\nDein Passwort wurde wie gewünscht geändert. Bitte bewahre diese Informationen gut auf (oder ändere dein Passwort in eines, das du dir leicht merken kannst)." -#: mod/lostpass.php:154 +#: mod/lostpass.php:153 #, php-format msgid "" "\n" @@ -2023,26 +1905,42 @@ msgid "" "\t\t" msgstr "\nDie Anmeldedaten sind die folgenden:\n\nAdresse der Seite: %1$s\nLogin Name: %2$s\nPasswort: %3$s\n\nDas Passwort kann und sollte in den Kontoeinstellungen nach der Anmeldung geändert werden." -#: mod/lostpass.php:170 +#: mod/lostpass.php:169 #, php-format msgid "Your password has been changed at %s" msgstr "Auf %s wurde dein Passwort geändert" -#: mod/manage.php:178 +#: mod/manage.php:179 msgid "Manage Identities and/or Pages" msgstr "Verwalte Identitäten und/oder Seiten" -#: mod/manage.php:179 +#: mod/manage.php:180 msgid "" "Toggle between different identities or community/group pages which share " "your account details or which you have been granted \"manage\" permissions" msgstr "Zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppenseiten wechseln, die deine Kontoinformationen teilen oder zu denen du „Verwalten“-Befugnisse bekommen hast." -#: mod/manage.php:180 +#: mod/manage.php:181 msgid "Select an identity to manage: " msgstr "Wähle eine Identität zum Verwalten aus: " -#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:255 +#: mod/match.php:49 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Keine Schlüsselwörter zum Abgleichen gefunden. Bitte füge einige Schlüsselwörter zu Deinem Standardprofil hinzu." + +#: mod/match.php:115 src/Content/Pager.php:198 +msgid "first" +msgstr "erste" + +#: mod/match.php:120 src/Content/Pager.php:258 +msgid "next" +msgstr "nächste" + +#: mod/match.php:135 +msgid "Profile Match" +msgstr "Profilübereinstimmungen" + +#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:254 msgid "New Message" msgstr "Neue Nachricht" @@ -2067,11 +1965,11 @@ msgid "Message sent." msgstr "Nachricht gesendet." #: mod/message.php:110 mod/notifications.php:47 mod/notifications.php:187 -#: mod/notifications.php:235 +#: mod/notifications.php:243 msgid "Discard" msgstr "Verwerfen" -#: mod/message.php:123 view/theme/frio/theme.php:271 src/Content/Nav.php:252 +#: mod/message.php:123 src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Messages" msgstr "Nachrichten" @@ -2107,6 +2005,11 @@ msgstr "An:" msgid "Subject:" msgstr "Betreff:" +#: mod/message.php:255 mod/message.php:435 mod/wallmessage.php:137 +#: src/Module/Invite.php:150 +msgid "Your message:" +msgstr "Deine Nachricht:" + #: mod/message.php:289 msgid "No messages." msgstr "Keine Nachrichten." @@ -2159,6 +2062,104 @@ msgid_plural "%d messages" msgstr[0] "%d Nachricht" msgstr[1] "%d Nachrichten" +#: mod/network.php:184 mod/search.php:38 +msgid "Remove term" +msgstr "Begriff entfernen" + +#: mod/network.php:191 mod/search.php:47 +msgid "Saved Searches" +msgstr "Gespeicherte Suchen" + +#: mod/network.php:192 src/Model/Group.php:434 +msgid "add" +msgstr "hinzufügen" + +#: mod/network.php:572 +#, php-format +msgid "" +"Warning: This group contains %s member from a network that doesn't allow non" +" public messages." +msgid_plural "" +"Warning: This group contains %s members from a network that doesn't allow " +"non public messages." +msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem Netzwerk das keine nicht öffentlichen Beiträge empfangen kann." +msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus Netzwerken, die keine nicht-öffentlichen Beiträge empfangen können." + +#: mod/network.php:575 +msgid "Messages in this group won't be send to these receivers." +msgstr "Beiträge in dieser Gruppe werden deshalb nicht an diese Personen zugestellt werden." + +#: mod/network.php:642 +msgid "No such group" +msgstr "Es gibt keine solche Gruppe" + +#: mod/network.php:663 src/Module/Group.php:288 +msgid "Group is empty" +msgstr "Gruppe ist leer" + +#: mod/network.php:667 +#, php-format +msgid "Group: %s" +msgstr "Gruppe: %s" + +#: mod/network.php:693 +msgid "Private messages to this person are at risk of public disclosure." +msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." + +#: mod/network.php:696 src/Module/AllFriends.php:35 +#: src/Module/AllFriends.php:43 +msgid "Invalid contact." +msgstr "Ungültiger Kontakt." + +#: mod/network.php:975 +msgid "Commented Order" +msgstr "Neueste Kommentare" + +#: mod/network.php:978 +msgid "Sort by Comment Date" +msgstr "Nach Kommentardatum sortieren" + +#: mod/network.php:983 +msgid "Posted Order" +msgstr "Neueste Beiträge" + +#: mod/network.php:986 +msgid "Sort by Post Date" +msgstr "Nach Beitragsdatum sortieren" + +#: mod/network.php:993 mod/profiles.php:579 +#: src/Core/NotificationsManager.php:158 +msgid "Personal" +msgstr "Persönlich" + +#: mod/network.php:996 +msgid "Posts that mention or involve you" +msgstr "Beiträge, in denen es um dich geht" + +#: mod/network.php:1003 +msgid "New" +msgstr "Neue" + +#: mod/network.php:1006 +msgid "Activity Stream - by date" +msgstr "Aktivitäten-Stream - nach Datum" + +#: mod/network.php:1014 +msgid "Shared Links" +msgstr "Geteilte Links" + +#: mod/network.php:1017 +msgid "Interesting Links" +msgstr "Interessante Links" + +#: mod/network.php:1024 +msgid "Starred" +msgstr "Markierte" + +#: mod/network.php:1027 +msgid "Favourite Posts" +msgstr "Favorisierte Beiträge" + #: mod/newmember.php:12 msgid "Welcome to Friendica" msgstr "Willkommen bei Friendica" @@ -2190,8 +2191,10 @@ msgid "" " join." msgstr "Auf der Quick Start-Seite findest du eine kurze Einleitung in die einzelnen Funktionen deines Profils und die Netzwerk-Reiter, wo du interessante Foren findest und neue Kontakte knüpfst." -#: mod/newmember.php:20 mod/admin.php:2130 mod/admin.php:2387 -#: mod/settings.php:138 view/theme/frio/theme.php:272 src/Content/Nav.php:263 +#: mod/newmember.php:20 mod/settings.php:145 src/Content/Nav.php:262 +#: src/Module/Admin/Addons/Details.php:102 +#: src/Module/Admin/Themes/Details.php:107 +#: src/Module/BaseSettingsModule.php:105 view/theme/frio/theme.php:272 msgid "Settings" msgstr "Einstellungen" @@ -2214,13 +2217,14 @@ msgid "" "potential friends know exactly how to find you." msgstr "Überprüfe die restlichen Einstellungen, insbesondere die Einstellungen zur Privatsphäre. Wenn du dein Profil nicht veröffentlichst, ist das, als wenn du deine Telefonnummer nicht ins Telefonbuch einträgst. Im Allgemeinen solltest du es veröffentlichen - außer all deine Kontakte und potentiellen Kontakte wissen genau, wie sie dich finden können." -#: mod/newmember.php:25 mod/profperm.php:117 view/theme/frio/theme.php:263 -#: src/Content/Nav.php:157 src/Model/Profile.php:876 src/Model/Profile.php:909 -#: src/Module/Contact.php:654 src/Module/Contact.php:869 +#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:156 +#: src/Model/Profile.php:870 src/Model/Profile.php:903 +#: src/Module/Contact.php:657 src/Module/Contact.php:872 +#: view/theme/frio/theme.php:263 msgid "Profile" msgstr "Profil" -#: mod/newmember.php:27 mod/profile_photo.php:253 mod/profiles.php:583 +#: mod/newmember.php:27 mod/profiles.php:583 mod/profile_photo.php:253 msgid "Upload Profile Photo" msgstr "Profilbild hochladen" @@ -2303,7 +2307,7 @@ msgid "" "hours." msgstr "Im seitlichen Bedienfeld der Kontakteseite gibt es diverse Werkzeuge, um neue Personen zu finden. Wir können Menschen mit den gleichen Interessen finden, anhand von Namen oder Interessen suchen oder aber aufgrund vorhandener Kontakte neue Leute vorschlagen.\nAuf einer brandneuen - soeben erstellten - Seite starten die Kontaktvorschläge innerhalb von 24 Stunden." -#: mod/newmember.php:44 src/Model/Group.php:435 src/Module/Contact.php:752 +#: mod/newmember.php:44 src/Model/Group.php:435 src/Module/Contact.php:756 msgid "Groups" msgstr "Gruppen" @@ -2343,7 +2347,7 @@ msgid "" " features and resources." msgstr "Unsere Hilfe-Seiten können herangezogen werden, um weitere Einzelheiten zu anderen Programm-Features zu erhalten." -#: mod/notes.php:34 src/Model/Profile.php:959 +#: mod/notes.php:34 src/Model/Profile.php:953 msgid "Personal Notes" msgstr "Persönliche Notizen" @@ -2351,7 +2355,7 @@ msgstr "Persönliche Notizen" msgid "Invalid request identifier." msgstr "Invalid request identifier." -#: mod/notifications.php:93 src/Content/Nav.php:247 +#: mod/notifications.php:93 src/Content/Nav.php:246 msgid "Notifications" msgstr "Benachrichtigungen" @@ -2359,7 +2363,7 @@ msgstr "Benachrichtigungen" msgid "Network Notifications" msgstr "Netzwerkbenachrichtigungen" -#: mod/notifications.php:112 mod/notify.php:84 +#: mod/notifications.php:112 mod/notify.php:72 msgid "System Notifications" msgstr "Systembenachrichtigungen" @@ -2387,7 +2391,7 @@ msgstr "Zeige ignorierte Anfragen" msgid "Hide Ignored Requests" msgstr "Verberge ignorierte Anfragen" -#: mod/notifications.php:166 mod/notifications.php:243 +#: mod/notifications.php:166 mod/notifications.php:251 msgid "Notification type:" msgstr "Art der Benachrichtigung:" @@ -2395,18 +2399,13 @@ msgstr "Art der Benachrichtigung:" msgid "Suggested by:" msgstr "Vorgeschlagen von:" -#: mod/notifications.php:179 mod/notifications.php:263 mod/unfollow.php:137 -#: mod/admin.php:523 mod/admin.php:533 mod/follow.php:175 -#: src/Module/Contact.php:639 -msgid "Profile URL" -msgstr "Profil URL" - -#: mod/notifications.php:181 mod/notifications.php:260 -#: src/Module/Contact.php:630 +#: mod/notifications.php:181 mod/notifications.php:268 +#: src/Module/Contact.php:633 msgid "Hide this contact from others" msgstr "Verbirg diesen Kontakt vor Anderen" -#: mod/notifications.php:183 mod/notifications.php:269 mod/admin.php:2019 +#: mod/notifications.php:183 mod/notifications.php:277 +#: src/Module/Admin/Users.php:286 msgid "Approve" msgstr "Genehmigen" @@ -2459,36 +2458,32 @@ msgstr "Teilender" msgid "Subscriber" msgstr "Abonnent" -#: mod/notifications.php:255 mod/directory.php:193 src/Model/Profile.php:449 -#: src/Model/Profile.php:819 src/Module/Contact.php:647 +#: mod/notifications.php:263 src/Model/Profile.php:445 +#: src/Model/Profile.php:813 src/Module/Contact.php:650 +#: src/Module/Directory.php:150 msgid "About:" msgstr "Über:" -#: mod/notifications.php:257 mod/follow.php:179 src/Model/Profile.php:807 -#: src/Module/Contact.php:649 -msgid "Tags:" -msgstr "Tags:" - -#: mod/notifications.php:259 mod/directory.php:190 src/Model/Profile.php:446 -#: src/Model/Profile.php:758 +#: mod/notifications.php:267 src/Model/Profile.php:442 +#: src/Model/Profile.php:752 src/Module/Directory.php:147 msgid "Gender:" msgstr "Geschlecht:" -#: mod/notifications.php:266 src/Model/Profile.php:543 -#: src/Module/Contact.php:88 +#: mod/notifications.php:274 src/Model/Profile.php:539 +#: src/Module/Contact.php:90 msgid "Network:" msgstr "Netzwerk:" -#: mod/notifications.php:279 +#: mod/notifications.php:288 msgid "No introductions." msgstr "Keine Kontaktanfragen." -#: mod/notifications.php:313 +#: mod/notifications.php:322 #, php-format msgid "No more %s notifications." msgstr "Keine weiteren %s-Benachrichtigungen" -#: mod/notify.php:80 +#: mod/notify.php:68 msgid "No more system notifications." msgstr "Keine weiteren Systembenachrichtigungen." @@ -2505,7 +2500,7 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Nutzerkonto wurde nicht gefunden und OpenID-Registrierung ist auf diesem Server nicht gestattet." -#: mod/openid.php:117 src/Module/Login.php:92 src/Module/Login.php:143 +#: mod/openid.php:117 src/Module/Login.php:93 src/Module/Login.php:144 msgid "Login failed." msgstr "Anmeldung fehlgeschlagen." @@ -2545,223 +2540,239 @@ msgstr "Ignoriert" msgid "Keep this window open until done." msgstr "Lasse dieses Fenster offen, bis der Vorgang abgeschlossen ist." -#: mod/photos.php:115 src/Model/Profile.php:920 +#: mod/photos.php:113 src/Model/Profile.php:914 msgid "Photo Albums" msgstr "Fotoalben" -#: mod/photos.php:116 mod/photos.php:1665 +#: mod/photos.php:114 mod/photos.php:1630 msgid "Recent Photos" msgstr "Neueste Fotos" -#: mod/photos.php:119 mod/photos.php:1187 mod/photos.php:1667 +#: mod/photos.php:116 mod/photos.php:1144 mod/photos.php:1632 msgid "Upload New Photos" msgstr "Neue Fotos hochladen" -#: mod/photos.php:137 mod/settings.php:58 +#: mod/photos.php:134 mod/settings.php:58 src/Module/BaseSettingsModule.php:18 msgid "everybody" msgstr "jeder" -#: mod/photos.php:193 +#: mod/photos.php:185 msgid "Contact information unavailable" msgstr "Kontaktinformationen nicht verfügbar" -#: mod/photos.php:212 +#: mod/photos.php:204 msgid "Album not found." msgstr "Album nicht gefunden." -#: mod/photos.php:241 mod/photos.php:254 mod/photos.php:1138 -msgid "Delete Album" -msgstr "Album löschen" +#: mod/photos.php:262 +msgid "Album successfully deleted" +msgstr "Album wurde erfolgreich gelöscht." -#: mod/photos.php:252 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Möchtest du wirklich dieses Foto-Album und all seine Foto löschen?" +#: mod/photos.php:264 +msgid "Album was empty." +msgstr "Album ist leer." -#: mod/photos.php:310 mod/photos.php:322 mod/photos.php:1413 -msgid "Delete Photo" -msgstr "Foto löschen" - -#: mod/photos.php:320 -msgid "Do you really want to delete this photo?" -msgstr "Möchtest du wirklich dieses Foto löschen?" - -#: mod/photos.php:645 +#: mod/photos.php:586 msgid "a photo" msgstr "einem Foto" -#: mod/photos.php:645 +#: mod/photos.php:586 #, php-format msgid "%1$s was tagged in %2$s by %3$s" msgstr "%1$s wurde von %3$s in %2$s getaggt" -#: mod/photos.php:738 mod/photos.php:741 mod/photos.php:770 +#: mod/photos.php:679 mod/photos.php:682 mod/photos.php:711 #: mod/profile_photo.php:152 mod/wall_upload.php:198 #, php-format msgid "Image exceeds size limit of %s" msgstr "Bildgröße überschreitet das Limit von %s" -#: mod/photos.php:744 +#: mod/photos.php:685 msgid "Image upload didn't complete, please try again" msgstr "Der Upload des Bildes war nicht vollständig. Bitte versuche es erneut." -#: mod/photos.php:747 +#: mod/photos.php:688 msgid "Image file is missing" msgstr "Bilddatei konnte nicht gefunden werden." -#: mod/photos.php:752 +#: mod/photos.php:693 msgid "" "Server can't accept new file upload at this time, please contact your " "administrator" msgstr "Der Server kann derzeit keine neuen Datei-Uploads akzeptieren. Bitte kontaktiere deinen Administrator." -#: mod/photos.php:778 +#: mod/photos.php:719 msgid "Image file is empty." msgstr "Bilddatei ist leer." -#: mod/photos.php:793 mod/profile_photo.php:161 mod/wall_upload.php:212 +#: mod/photos.php:734 mod/profile_photo.php:161 mod/wall_upload.php:212 msgid "Unable to process image." msgstr "Konnte das Bild nicht bearbeiten." -#: mod/photos.php:822 mod/profile_photo.php:310 mod/wall_upload.php:251 +#: mod/photos.php:763 mod/profile_photo.php:310 mod/wall_upload.php:251 msgid "Image upload failed." msgstr "Hochladen des Bildes gescheitert." -#: mod/photos.php:908 +#: mod/photos.php:851 msgid "No photos selected" msgstr "Keine Bilder ausgewählt" -#: mod/photos.php:1005 mod/videos.php:239 +#: mod/photos.php:943 mod/videos.php:210 msgid "Access to this item is restricted." msgstr "Zugriff zu diesem Eintrag wurde eingeschränkt." -#: mod/photos.php:1059 +#: mod/photos.php:997 msgid "Upload Photos" msgstr "Bilder hochladen" -#: mod/photos.php:1063 mod/photos.php:1133 +#: mod/photos.php:1001 mod/photos.php:1089 msgid "New album name: " msgstr "Name des neuen Albums: " -#: mod/photos.php:1064 +#: mod/photos.php:1002 msgid "or select existing album:" msgstr "oder wähle ein bestehendes Album:" -#: mod/photos.php:1065 +#: mod/photos.php:1003 msgid "Do not show a status post for this upload" msgstr "Keine Status-Mitteilung für diesen Beitrag anzeigen" -#: mod/photos.php:1081 mod/photos.php:1416 mod/settings.php:1201 +#: mod/photos.php:1019 mod/photos.php:1382 mod/settings.php:1208 msgid "Show to Groups" msgstr "Zeige den Gruppen" -#: mod/photos.php:1082 mod/photos.php:1417 mod/settings.php:1202 +#: mod/photos.php:1020 mod/photos.php:1383 mod/settings.php:1209 msgid "Show to Contacts" msgstr "Zeige den Kontakten" -#: mod/photos.php:1144 +#: mod/photos.php:1071 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Möchtest du wirklich dieses Foto-Album und all seine Foto löschen?" + +#: mod/photos.php:1073 mod/photos.php:1094 +msgid "Delete Album" +msgstr "Album löschen" + +#: mod/photos.php:1100 msgid "Edit Album" msgstr "Album bearbeiten" -#: mod/photos.php:1149 +#: mod/photos.php:1101 +msgid "Drop Album" +msgstr "Album löschen" + +#: mod/photos.php:1106 msgid "Show Newest First" msgstr "Zeige neueste zuerst" -#: mod/photos.php:1151 +#: mod/photos.php:1108 msgid "Show Oldest First" msgstr "Zeige älteste zuerst" -#: mod/photos.php:1172 mod/photos.php:1650 +#: mod/photos.php:1129 mod/photos.php:1615 msgid "View Photo" msgstr "Foto betrachten" -#: mod/photos.php:1213 +#: mod/photos.php:1166 msgid "Permission denied. Access to this item may be restricted." msgstr "Zugriff verweigert. Zugriff zu diesem Eintrag könnte eingeschränkt sein." -#: mod/photos.php:1215 +#: mod/photos.php:1168 msgid "Photo not available" msgstr "Foto nicht verfügbar" -#: mod/photos.php:1290 +#: mod/photos.php:1178 +msgid "Do you really want to delete this photo?" +msgstr "Möchtest du wirklich dieses Foto löschen?" + +#: mod/photos.php:1180 mod/photos.php:1379 +msgid "Delete Photo" +msgstr "Foto löschen" + +#: mod/photos.php:1271 msgid "View photo" msgstr "Fotos ansehen" -#: mod/photos.php:1290 +#: mod/photos.php:1273 msgid "Edit photo" msgstr "Foto bearbeiten" -#: mod/photos.php:1291 +#: mod/photos.php:1274 +msgid "Delete photo" +msgstr "Foto löschen" + +#: mod/photos.php:1275 msgid "Use as profile photo" msgstr "Als Profilbild verwenden" -#: mod/photos.php:1297 src/Object/Post.php:157 -msgid "Private Message" -msgstr "Private Nachricht" +#: mod/photos.php:1282 +msgid "Private Photo" +msgstr "Privates Foto" -#: mod/photos.php:1317 +#: mod/photos.php:1288 msgid "View Full Size" msgstr "Betrachte Originalgröße" -#: mod/photos.php:1381 +#: mod/photos.php:1347 msgid "Tags: " msgstr "Tags: " -#: mod/photos.php:1384 +#: mod/photos.php:1350 msgid "[Select tags to remove]" msgstr "[Zu entfernende Tags auswählen]" -#: mod/photos.php:1399 +#: mod/photos.php:1365 msgid "New album name" msgstr "Name des neuen Albums" -#: mod/photos.php:1400 +#: mod/photos.php:1366 msgid "Caption" msgstr "Bildunterschrift" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "Add a Tag" msgstr "Tag hinzufügen" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Beispiel: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" -#: mod/photos.php:1402 +#: mod/photos.php:1368 msgid "Do not rotate" msgstr "Nicht rotieren" -#: mod/photos.php:1403 +#: mod/photos.php:1369 msgid "Rotate CW (right)" msgstr "Drehen US (rechts)" -#: mod/photos.php:1404 +#: mod/photos.php:1370 msgid "Rotate CCW (left)" msgstr "Drehen EUS (links)" -#: mod/photos.php:1438 src/Object/Post.php:312 +#: mod/photos.php:1404 src/Object/Post.php:312 msgid "I like this (toggle)" msgstr "Ich mag das (toggle)" -#: mod/photos.php:1439 src/Object/Post.php:313 +#: mod/photos.php:1405 src/Object/Post.php:313 msgid "I don't like this (toggle)" msgstr "Ich mag das nicht (toggle)" -#: mod/photos.php:1454 mod/photos.php:1493 mod/photos.php:1553 -#: src/Module/Contact.php:1018 src/Object/Post.php:874 +#: mod/photos.php:1420 mod/photos.php:1459 mod/photos.php:1519 +#: src/Module/Contact.php:1021 src/Object/Post.php:874 msgid "This is you" msgstr "Das bist du" -#: mod/photos.php:1456 mod/photos.php:1495 mod/photos.php:1555 +#: mod/photos.php:1422 mod/photos.php:1461 mod/photos.php:1521 #: src/Object/Post.php:419 src/Object/Post.php:876 msgid "Comment" msgstr "Kommentar" -#: mod/photos.php:1585 +#: mod/photos.php:1550 msgid "Map" msgstr "Karte" -#: mod/photos.php:1656 mod/videos.php:316 +#: mod/photos.php:1621 mod/videos.php:287 msgid "View Album" msgstr "Album betrachten" @@ -2773,2509 +2784,30 @@ msgstr "{0} möchte mit dir in Kontakt treten" msgid "{0} requested registration" msgstr "{0} möchte sich registrieren" -#: mod/poke.php:181 +#: mod/poke.php:177 msgid "Poke/Prod" msgstr "Anstupsen" -#: mod/poke.php:182 +#: mod/poke.php:178 msgid "poke, prod or do other things to somebody" msgstr "Stupse Leute an oder mache anderes mit ihnen" -#: mod/poke.php:183 +#: mod/poke.php:179 msgid "Recipient" msgstr "Empfänger" -#: mod/poke.php:184 +#: mod/poke.php:180 msgid "Choose what you wish to do to recipient" msgstr "Was willst du mit dem Empfänger machen:" -#: mod/poke.php:187 +#: mod/poke.php:183 msgid "Make this post private" msgstr "Diesen Beitrag privat machen" -#: mod/probe.php:14 mod/webfinger.php:17 +#: mod/probe.php:13 src/Module/WebFinger.php:18 msgid "Only logged in users are permitted to perform a probing." msgstr "Nur eingeloggten Benutzern ist das Untersuchen von Adressen gestattet." -#: mod/profile_photo.php:58 -msgid "Image uploaded but image cropping failed." -msgstr "Bild hochgeladen, aber das Zuschneiden schlug fehl." - -#: mod/profile_photo.php:88 mod/profile_photo.php:97 mod/profile_photo.php:106 -#: mod/profile_photo.php:318 -#, php-format -msgid "Image size reduction [%s] failed." -msgstr "Verkleinern der Bildgröße von [%s] scheiterte." - -#: mod/profile_photo.php:125 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird." - -#: mod/profile_photo.php:133 -msgid "Unable to process image" -msgstr "Bild konnte nicht verarbeitet werden" - -#: mod/profile_photo.php:251 -msgid "Upload File:" -msgstr "Datei hochladen:" - -#: mod/profile_photo.php:252 -msgid "Select a profile:" -msgstr "Profil auswählen:" - -#: mod/profile_photo.php:257 -msgid "or" -msgstr "oder" - -#: mod/profile_photo.php:258 -msgid "skip this step" -msgstr "diesen Schritt überspringen" - -#: mod/profile_photo.php:258 -msgid "select a photo from your photo albums" -msgstr "wähle ein Foto aus deinen Fotoalben" - -#: mod/profile_photo.php:271 -msgid "Crop Image" -msgstr "Bild zurechtschneiden" - -#: mod/profile_photo.php:272 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann." - -#: mod/profile_photo.php:274 -msgid "Done Editing" -msgstr "Bearbeitung abgeschlossen" - -#: mod/profile_photo.php:308 -msgid "Image uploaded successfully." -msgstr "Bild erfolgreich hochgeladen." - -#: mod/profperm.php:30 src/App.php:1311 -msgid "Permission denied" -msgstr "Zugriff verweigert" - -#: mod/profperm.php:36 mod/profperm.php:69 -msgid "Invalid profile identifier." -msgstr "Ungültiger Profil-Bezeichner." - -#: mod/profperm.php:115 -msgid "Profile Visibility Editor" -msgstr "Editor für die Profil-Sichtbarkeit" - -#: mod/profperm.php:119 src/Module/Group.php:310 -msgid "Click on a contact to add or remove." -msgstr "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen" - -#: mod/profperm.php:128 -msgid "Visible To" -msgstr "Sichtbar für" - -#: mod/profperm.php:144 -msgid "All Contacts (with secure profile access)" -msgstr "Alle Kontakte (mit gesichertem Profilzugriff)" - -#: mod/regmod.php:53 -msgid "Account approved." -msgstr "Konto freigegeben." - -#: mod/regmod.php:77 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registrierung für %s wurde zurückgezogen" - -#: mod/regmod.php:84 -msgid "Please login." -msgstr "Bitte melde dich an." - -#: mod/removeme.php:46 -msgid "User deleted their account" -msgstr "Gelöschter Nutzeraccount" - -#: mod/removeme.php:47 -msgid "" -"On your Friendica node an user deleted their account. Please ensure that " -"their data is removed from the backups." -msgstr "Ein Nutzer deiner Friendica-Instanz hat seinen Account gelöscht. Bitte stelle sicher, dass dessen Daten aus deinen Backups entfernt werden." - -#: mod/removeme.php:48 -#, php-format -msgid "The user id is %d" -msgstr "Die ID des Users lautet %d" - -#: mod/removeme.php:84 mod/removeme.php:87 -msgid "Remove My Account" -msgstr "Konto löschen" - -#: mod/removeme.php:85 -msgid "" -"This will completely remove your account. Once this has been done it is not " -"recoverable." -msgstr "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen." - -#: mod/removeme.php:86 -msgid "Please enter your password for verification:" -msgstr "Bitte gib dein Passwort zur Verifikation ein:" - -#: mod/repair_ostatus.php:21 -msgid "Resubscribing to OStatus contacts" -msgstr "Erneuern der OStatus-Abonements" - -#: mod/repair_ostatus.php:37 -msgid "Error" -msgstr "Fehler" - -#: mod/search.php:38 mod/network.php:184 -msgid "Remove term" -msgstr "Begriff entfernen" - -#: mod/search.php:47 mod/network.php:191 -msgid "Saved Searches" -msgstr "Gespeicherte Suchen" - -#: mod/search.php:103 -msgid "Only logged in users are permitted to perform a search." -msgstr "Nur eingeloggten Benutzern ist das Suchen gestattet." - -#: mod/search.php:127 -msgid "Too Many Requests" -msgstr "Zu viele Abfragen" - -#: mod/search.php:128 -msgid "Only one search per minute is permitted for not logged in users." -msgstr "Es ist nur eine Suchanfrage pro Minute für nicht eingeloggte Benutzer gestattet." - -#: mod/search.php:149 src/Content/Text/HTML.php:900 src/Content/Nav.php:198 -msgid "Search" -msgstr "Suche" - -#: mod/search.php:235 -#, php-format -msgid "Items tagged with: %s" -msgstr "Beiträge, die mit %s getaggt sind" - -#: mod/search.php:237 src/Module/Contact.php:816 -#, php-format -msgid "Results for: %s" -msgstr "Ergebnisse für: %s" - -#: mod/subthread.php:104 -#, php-format -msgid "%1$s is following %2$s's %3$s" -msgstr "%1$s folgt %2$s %3$s" - -#: mod/suggest.php:39 -msgid "Do you really want to delete this suggestion?" -msgstr "Möchtest du wirklich diese Empfehlung löschen?" - -#: mod/suggest.php:75 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." -msgstr "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal." - -#: mod/suggest.php:89 mod/suggest.php:109 -msgid "Ignore/Hide" -msgstr "Ignorieren/Verbergen" - -#: mod/suggest.php:119 view/theme/vier/theme.php:204 src/Content/Widget.php:66 -msgid "Friend Suggestions" -msgstr "Kontaktvorschläge" - -#: mod/tagrm.php:31 -msgid "Tag(s) removed" -msgstr "Tag(s) entfernt" - -#: mod/tagrm.php:101 -msgid "Remove Item Tag" -msgstr "Gegenstands-Tag entfernen" - -#: mod/tagrm.php:103 -msgid "Select a tag to remove: " -msgstr "Wähle ein Tag zum Entfernen aus: " - -#: mod/uexport.php:45 -msgid "Export account" -msgstr "Account exportieren" - -#: mod/uexport.php:45 -msgid "" -"Export your account info and contacts. Use this to make a backup of your " -"account and/or to move it to another server." -msgstr "Exportiere Deine Account-Informationen und Kontakte. Verwende dies, um ein Backup Deines Accounts anzulegen und/oder damit auf einen anderen Server umzuziehen." - -#: mod/uexport.php:46 -msgid "Export all" -msgstr "Alles exportieren" - -#: mod/uexport.php:46 -msgid "" -"Export your accout info, contacts and all your items as json. Could be a " -"very big file, and could take a lot of time. Use this to make a full backup " -"of your account (photos are not exported)" -msgstr "Exportiere Deine Account-Informationen, Kontakte und alle Einträge als JSON Datei. Dies könnte eine sehr große Datei werden und dementsprechend viel Zeit benötigen. Verwende dies, um ein komplettes Backup Deines Accounts anzulegen (Fotos werden nicht exportiert)." - -#: mod/uexport.php:53 mod/settings.php:122 -msgid "Export personal data" -msgstr "Persönliche Daten exportieren" - -#: mod/uimport.php:30 -msgid "User imports on closed servers can only be done by an administrator." -msgstr "Auf geschlossenen Servern können ausschließlich die Administratoren Benutzerkonten importieren." - -#: mod/uimport.php:39 src/Module/Register.php:59 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal." - -#: mod/uimport.php:54 src/Module/Register.php:141 -msgid "Import" -msgstr "Import" - -#: mod/uimport.php:56 -msgid "Move account" -msgstr "Account umziehen" - -#: mod/uimport.php:57 -msgid "You can import an account from another Friendica server." -msgstr "Du kannst einen Account von einem anderen Friendica Server importieren." - -#: mod/uimport.php:58 -msgid "" -"You need to export your account from the old server and upload it here. We " -"will recreate your old account here with all your contacts. We will try also" -" to inform your friends that you moved here." -msgstr "Du musst deinen Account vom alten Server exportieren und hier hochladen. Wir stellen deinen alten Account mit all deinen Kontakten wieder her. Wir werden auch versuchen, deine Kontakte darüber zu informieren, dass du hierher umgezogen bist." - -#: mod/uimport.php:59 -msgid "" -"This feature is experimental. We can't import contacts from the OStatus " -"network (GNU Social/Statusnet) or from Diaspora" -msgstr "Dieses Feature ist experimentell. Wir können keine Kontakte vom OStatus-Netzwerk (GNU Social/Statusnet) oder von Diaspora importieren" - -#: mod/uimport.php:60 -msgid "Account file" -msgstr "Account-Datei" - -#: mod/uimport.php:60 -msgid "" -"To export your account, go to \"Settings->Export your personal data\" and " -"select \"Export account\"" -msgstr "Um Deinen Account zu exportieren, rufe \"Einstellungen -> Persönliche Daten exportieren\" auf und wähle \"Account exportieren\"" - -#: mod/unfollow.php:36 mod/unfollow.php:92 -msgid "You aren't following this contact." -msgstr "Du folgst diesem Kontakt." - -#: mod/unfollow.php:46 mod/unfollow.php:98 -msgid "Unfollowing is currently not supported by your network." -msgstr "Bei diesem Netzwerk wird das Entfolgen derzeit nicht unterstützt." - -#: mod/unfollow.php:67 -msgid "Contact unfollowed" -msgstr "Kontakt wird nicht mehr gefolgt" - -#: mod/unfollow.php:118 src/Module/Contact.php:570 -msgid "Disconnect/Unfollow" -msgstr "Verbindung lösen/Nicht mehr folgen" - -#: mod/unfollow.php:147 mod/follow.php:191 src/Model/Profile.php:904 -#: src/Module/Contact.php:864 -msgid "Status Messages and Posts" -msgstr "Statusnachrichten und Beiträge" - -#: mod/update_community.php:23 mod/update_contact.php:23 -#: mod/update_display.php:24 mod/update_network.php:33 mod/update_notes.php:36 -#: mod/update_profile.php:34 -msgid "[Embedded content - reload page to view]" -msgstr "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]" - -#: mod/videos.php:97 -msgid "Do you really want to delete this video?" -msgstr "Möchtest du dieses Video wirklich löschen?" - -#: mod/videos.php:102 -msgid "Delete Video" -msgstr "Video Löschen" - -#: mod/videos.php:152 -msgid "No videos selected" -msgstr "Keine Videos ausgewählt" - -#: mod/videos.php:309 src/Model/Item.php:3479 -msgid "View Video" -msgstr "Video ansehen" - -#: mod/videos.php:324 -msgid "Recent Videos" -msgstr "Neueste Videos" - -#: mod/videos.php:326 -msgid "Upload New Videos" -msgstr "Neues Video hochladen" - -#: mod/viewcontacts.php:78 -msgid "No contacts." -msgstr "Keine Kontakte." - -#: mod/viewcontacts.php:94 src/Module/Contact.php:603 -#: src/Module/Contact.php:1024 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Besuche %ss Profil [%s]" - -#: mod/viewcontacts.php:114 view/theme/frio/theme.php:273 -#: src/Content/Text/HTML.php:911 src/Content/Nav.php:203 -#: src/Content/Nav.php:269 src/Model/Profile.php:980 src/Model/Profile.php:983 -#: src/Module/Contact.php:811 src/Module/Contact.php:881 -msgid "Contacts" -msgstr "Kontakte" - -#: mod/wall_attach.php:26 mod/wall_attach.php:33 mod/wall_attach.php:85 -#: mod/wall_upload.php:42 mod/wall_upload.php:58 mod/wall_upload.php:116 -#: mod/wall_upload.php:167 mod/wall_upload.php:170 -msgid "Invalid request." -msgstr "Ungültige Anfrage" - -#: mod/wall_attach.php:103 -msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" -msgstr "Entschuldige, die Datei scheint größer zu sein, als es die PHP-Konfiguration erlaubt." - -#: mod/wall_attach.php:103 -msgid "Or - did you try to upload an empty file?" -msgstr "Oder - hast du versucht, eine leere Datei hochzuladen?" - -#: mod/wall_attach.php:114 -#, php-format -msgid "File exceeds size limit of %s" -msgstr "Die Datei ist größer als das erlaubte Limit von %s" - -#: mod/wall_attach.php:129 -msgid "File upload failed." -msgstr "Hochladen der Datei fehlgeschlagen." - -#: mod/wall_upload.php:243 -msgid "Wall Photos" -msgstr "Pinnwand-Bilder" - -#: mod/wallmessage.php:52 mod/wallmessage.php:115 -#, php-format -msgid "Number of daily wall messages for %s exceeded. Message failed." -msgstr "Maximale Anzahl der täglichen Pinnwand-Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen." - -#: mod/wallmessage.php:63 -msgid "Unable to check your home location." -msgstr "Konnte Deinen Heimatort nicht bestimmen." - -#: mod/wallmessage.php:89 mod/wallmessage.php:98 -msgid "No recipient." -msgstr "Kein Empfänger." - -#: mod/wallmessage.php:129 -#, php-format -msgid "" -"If you wish for %s to respond, please check that the privacy settings on " -"your site allow private mail from unknown senders." -msgstr "Wenn du möchtest, dass %s dir antworten kann, überprüfe deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern." - -#: mod/admin.php:123 -msgid "Theme settings updated." -msgstr "Themeneinstellungen aktualisiert." - -#: mod/admin.php:197 src/Content/Nav.php:231 -msgid "Information" -msgstr "Information" - -#: mod/admin.php:198 -msgid "Overview" -msgstr "Übersicht" - -#: mod/admin.php:199 mod/admin.php:778 -msgid "Federation Statistics" -msgstr "Föderation Statistik" - -#: mod/admin.php:200 -msgid "Configuration" -msgstr "Konfiguration" - -#: mod/admin.php:201 mod/admin.php:1532 -msgid "Site" -msgstr "Seite" - -#: mod/admin.php:202 mod/admin.php:1431 mod/admin.php:2011 mod/admin.php:2028 -msgid "Users" -msgstr "Nutzer" - -#: mod/admin.php:203 mod/admin.php:2128 mod/admin.php:2188 -#: mod/settings.php:101 -msgid "Addons" -msgstr "Addons" - -#: mod/admin.php:204 mod/admin.php:2385 mod/admin.php:2429 -msgid "Themes" -msgstr "Themen" - -#: mod/admin.php:205 mod/settings.php:79 -msgid "Additional features" -msgstr "Zusätzliche Features" - -#: mod/admin.php:206 mod/admin.php:326 src/Content/Nav.php:234 -#: src/Module/Register.php:144 src/Module/Tos.php:73 -msgid "Terms of Service" -msgstr "Nutzungsbedingungen" - -#: mod/admin.php:207 -msgid "Database" -msgstr "Datenbank" - -#: mod/admin.php:208 -msgid "DB updates" -msgstr "DB Updates" - -#: mod/admin.php:209 -msgid "Inspect Deferred Workers" -msgstr "Verzögerte Worker inspizieren" - -#: mod/admin.php:210 -msgid "Inspect worker Queue" -msgstr "Worker Warteschlange inspizieren" - -#: mod/admin.php:211 -msgid "Tools" -msgstr "Werkzeuge" - -#: mod/admin.php:212 -msgid "Contact Blocklist" -msgstr "Kontakt Sperrliste" - -#: mod/admin.php:213 mod/admin.php:392 -msgid "Server Blocklist" -msgstr "Server Blockliste" - -#: mod/admin.php:214 mod/admin.php:555 -msgid "Delete Item" -msgstr "Eintrag löschen" - -#: mod/admin.php:215 mod/admin.php:216 mod/admin.php:2505 -msgid "Logs" -msgstr "Protokolle" - -#: mod/admin.php:217 mod/admin.php:2573 -msgid "View Logs" -msgstr "Protokolle anzeigen" - -#: mod/admin.php:219 -msgid "Diagnostics" -msgstr "Diagnostik" - -#: mod/admin.php:220 -msgid "PHP Info" -msgstr "PHP-Info" - -#: mod/admin.php:221 -msgid "probe address" -msgstr "Adresse untersuchen" - -#: mod/admin.php:222 -msgid "check webfinger" -msgstr "Webfinger überprüfen" - -#: mod/admin.php:242 src/Content/Nav.php:274 -msgid "Admin" -msgstr "Administration" - -#: mod/admin.php:243 -msgid "Addon Features" -msgstr "Addon Features" - -#: mod/admin.php:244 -msgid "User registrations waiting for confirmation" -msgstr "Nutzeranmeldungen, die auf Bestätigung warten" - -#: mod/admin.php:325 mod/admin.php:391 mod/admin.php:511 mod/admin.php:554 -#: mod/admin.php:777 mod/admin.php:828 mod/admin.php:953 mod/admin.php:1531 -#: mod/admin.php:2010 mod/admin.php:2127 mod/admin.php:2187 mod/admin.php:2384 -#: mod/admin.php:2428 mod/admin.php:2504 mod/admin.php:2572 -msgid "Administration" -msgstr "Administration" - -#: mod/admin.php:327 -msgid "Display Terms of Service" -msgstr "Nutzungsbedingungen anzeigen" - -#: mod/admin.php:327 -msgid "" -"Enable the Terms of Service page. If this is enabled a link to the terms " -"will be added to the registration form and the general information page." -msgstr "Aktiviert die Seite für die Nutzungsbedingungen. Ist dies der Fall, werden sie auch von der Registrierungsseite und der allgemeinen Informationsseite verlinkt." - -#: mod/admin.php:328 -msgid "Display Privacy Statement" -msgstr "Datenschutzerklärung anzeigen" - -#: mod/admin.php:328 -#, php-format -msgid "" -"Show some informations regarding the needed information to operate the node " -"according e.g. to EU-GDPR." -msgstr "Zeige Informationen über die zum Betrieb der Seite notwendigen, personenbezogenen Daten an, wie es z.B. die EU-DSGVO verlangt." - -#: mod/admin.php:329 -msgid "Privacy Statement Preview" -msgstr "Vorschau: Datenschutzerklärung" - -#: mod/admin.php:331 -msgid "The Terms of Service" -msgstr "Die Nutzungsbedingungen" - -#: mod/admin.php:331 -msgid "" -"Enter the Terms of Service for your node here. You can use BBCode. Headers " -"of sections should be [h2] and below." -msgstr "Füge hier die Nutzungsbedingungen deines Knotens ein. Du kannst BBCode zur Formatierung verwenden. Überschriften sollten [h2] oder darunter sein." - -#: mod/admin.php:383 -msgid "The blocked domain" -msgstr "Die blockierte Domain" - -#: mod/admin.php:384 mod/admin.php:397 -msgid "The reason why you blocked this domain." -msgstr "Die Begründung, warum du diese Domain blockiert hast." - -#: mod/admin.php:385 -msgid "Delete domain" -msgstr "Domain löschen" - -#: mod/admin.php:385 -msgid "Check to delete this entry from the blocklist" -msgstr "Markieren, um diesen Eintrag von der Blocklist zu entfernen" - -#: mod/admin.php:393 -msgid "" -"This page can be used to define a black list of servers from the federated " -"network that are not allowed to interact with your node. For all entered " -"domains you should also give a reason why you have blocked the remote " -"server." -msgstr "Auf dieser Seite kannst du die Liste der blockierten Domains aus dem föderalen Netzwerk verwalten, denen es untersagt ist, mit deinem Knoten zu interagieren. Für jede der blockierten Domains musst du außerdem einen Grund für die Sperrung angeben." - -#: mod/admin.php:394 -msgid "" -"The list of blocked servers will be made publically available on the " -"/friendica page so that your users and people investigating communication " -"problems can find the reason easily." -msgstr "Die Liste der blockierten Domains wird auf der /friendica Seite öffentlich einsehbar gemacht, damit deine Nutzer und Personen, die Kommunikationsprobleme erkunden, die Ursachen einfach finden können." - -#: mod/admin.php:395 -msgid "Add new entry to block list" -msgstr "Neuen Eintrag in die Blockliste" - -#: mod/admin.php:396 -msgid "Server Domain" -msgstr "Domain des Servers" - -#: mod/admin.php:396 -msgid "" -"The domain of the new server to add to the block list. Do not include the " -"protocol." -msgstr "Der Domain-Name des Servers, der geblockt werden soll. Gib das Protokoll nicht mit an!" - -#: mod/admin.php:397 -msgid "Block reason" -msgstr "Begründung der Blockierung" - -#: mod/admin.php:398 -msgid "Add Entry" -msgstr "Eintrag hinzufügen" - -#: mod/admin.php:399 -msgid "Save changes to the blocklist" -msgstr "Änderungen der Blockliste speichern" - -#: mod/admin.php:400 -msgid "Current Entries in the Blocklist" -msgstr "Aktuelle Einträge der Blockliste" - -#: mod/admin.php:403 -msgid "Delete entry from blocklist" -msgstr "Eintrag von der Blockliste entfernen" - -#: mod/admin.php:406 -msgid "Delete entry from blocklist?" -msgstr "Eintrag von der Blockliste entfernen?" - -#: mod/admin.php:433 -msgid "Server added to blocklist." -msgstr "Server zur Blockliste hinzugefügt." - -#: mod/admin.php:449 -msgid "Site blocklist updated." -msgstr "Blockliste aktualisiert." - -#: mod/admin.php:474 src/Core/Console/GlobalCommunityBlock.php:68 -msgid "The contact has been blocked from the node" -msgstr "Der Kontakt wurde von diesem Knoten geblockt" - -#: mod/admin.php:476 src/Core/Console/GlobalCommunityBlock.php:65 -#, php-format -msgid "Could not find any contact entry for this URL (%s)" -msgstr "Für die URL (%s) konnte kein Kontakt gefunden werden" - -#: mod/admin.php:483 -#, php-format -msgid "%s contact unblocked" -msgid_plural "%s contacts unblocked" -msgstr[0] "%sKontakt wieder freigegeben" -msgstr[1] "%sKontakte wieder freigegeben" - -#: mod/admin.php:512 -msgid "Remote Contact Blocklist" -msgstr "Sperrliste entfernter Kontakte" - -#: mod/admin.php:513 -msgid "" -"This page allows you to prevent any message from a remote contact to reach " -"your node." -msgstr "Auf dieser Seite kannst du Accounts von anderen Knoten blockieren und damit verhindern, dass ihre Beiträge von deinem Knoten angenommen werden." - -#: mod/admin.php:514 -msgid "Block Remote Contact" -msgstr "Blockiere entfernten Kontakt" - -#: mod/admin.php:515 mod/admin.php:2013 -msgid "select all" -msgstr "Alle auswählen" - -#: mod/admin.php:516 -msgid "select none" -msgstr "Auswahl aufheben" - -#: mod/admin.php:518 mod/admin.php:2024 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Unblock" -msgstr "Entsperren" - -#: mod/admin.php:519 -msgid "No remote contact is blocked from this node." -msgstr "Derzeit werden keine Kontakte auf diesem Knoten blockiert." - -#: mod/admin.php:521 -msgid "Blocked Remote Contacts" -msgstr "Blockierte Kontakte von anderen Knoten" - -#: mod/admin.php:522 -msgid "Block New Remote Contact" -msgstr "Blockieren von weiteren Kontakten" - -#: mod/admin.php:523 -msgid "Photo" -msgstr "Foto:" - -#: mod/admin.php:523 mod/profiles.php:382 -msgid "Address" -msgstr "Adresse" - -#: mod/admin.php:531 -#, php-format -msgid "%s total blocked contact" -msgid_plural "%s total blocked contacts" -msgstr[0] "Insgesamt %s blockierter Kontakt" -msgstr[1] "Insgesamt %s blockierte Kontakte" - -#: mod/admin.php:533 -msgid "URL of the remote contact to block." -msgstr "Die URL des entfernten Kontakts, der blockiert werden soll." - -#: mod/admin.php:556 -msgid "Delete this Item" -msgstr "Diesen Eintrag löschen" - -#: mod/admin.php:557 -msgid "" -"On this page you can delete an item from your node. If the item is a top " -"level posting, the entire thread will be deleted." -msgstr "Auf dieser Seite kannst du Einträge von deinem Knoten löschen. Wenn der Eintrag der Anfang einer Diskussion ist, wird der gesamte Diskussionsverlauf gelöscht." - -#: mod/admin.php:558 -msgid "" -"You need to know the GUID of the item. You can find it e.g. by looking at " -"the display URL. The last part of http://example.com/display/123456 is the " -"GUID, here 123456." -msgstr "Zur Löschung musst du die GUID des Eintrags kennen. Diese findest du z.B. durch die /display URL des Eintrags. Der letzte Teil der URL ist die GUID. Lautet die URL beispielsweise http://example.com/display/123456, ist die GUID 123456." - -#: mod/admin.php:559 -msgid "GUID" -msgstr "GUID" - -#: mod/admin.php:559 -msgid "The GUID of the item you want to delete." -msgstr "Die GUID des zu löschenden Eintrags" - -#: mod/admin.php:594 -msgid "Item marked for deletion." -msgstr "Eintrag wurden zur Löschung markiert" - -#: mod/admin.php:666 -msgid "unknown" -msgstr "Unbekannt" - -#: mod/admin.php:771 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "Diese Seite präsentiert einige Zahlen zu dem bekannten Teil des föderalen sozialen Netzwerks, von dem deine Friendica Installation ein Teil ist. Diese Zahlen sind nicht absolut und reflektieren nur den Teil des Netzwerks, den dein Knoten kennt." - -#: mod/admin.php:772 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "Die Funktion \"Regelmäßig globale Kontakte überprüfen\" ist nicht aktiv. Sie wird die hier angezeigten Daten verbessern." - -#: mod/admin.php:784 -#, php-format -msgid "" -"Currently this node is aware of %d nodes with %d registered users from the " -"following platforms:" -msgstr "Momentan kennt dieser Knoten %d Knoten mit insgesamt %d registrierten Nutzern, die die folgenden Plattformen verwenden:" - -#: mod/admin.php:807 -msgid "Inspect Deferred Worker Queue" -msgstr "Verzögerte Worker-Warteschlange inspizieren" - -#: mod/admin.php:808 -msgid "" -"This page lists the deferred worker jobs. This are jobs that couldn't be " -"executed at the first time." -msgstr "Auf dieser Seite werden die aufgeschobenen Worker-Jobs aufgelistet. Dies sind Jobs, die beim ersten Mal nicht ausgeführt werden konnten." - -#: mod/admin.php:811 -msgid "Inspect Worker Queue" -msgstr "Worker-Warteschlange inspizieren" - -#: mod/admin.php:812 -msgid "" -"This page lists the currently queued worker jobs. These jobs are handled by " -"the worker cronjob you've set up during install." -msgstr "Auf dieser Seite werden die derzeit in der Warteschlange befindlichen Worker-Jobs aufgelistet. Diese Jobs werden vom Cronjob verarbeitet, den du während der Installation eingerichtet hast." - -#: mod/admin.php:831 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:832 -msgid "Job Parameters" -msgstr "Parameter der Aufgabe" - -#: mod/admin.php:833 -msgid "Created" -msgstr "Erstellt" - -#: mod/admin.php:834 -msgid "Priority" -msgstr "Priorität" - -#: mod/admin.php:860 -#, php-format -msgid "" -"Your DB still runs with MyISAM tables. You should change the engine type to " -"InnoDB. As Friendica will use InnoDB only features in the future, you should" -" change this! See here for a guide that may be helpful " -"converting the table engines. You may also use the command php " -"bin/console.php dbstructure toinnodb of your Friendica installation for" -" an automatic conversion.
    " -msgstr "Deine DB verwendet derzeit noch MyISAM Tabellen. Du solltest die Datenbank Engine auf InnoDB umstellen, da Friendica in Zukunft InnoDB-Features verwenden wird. Eine Anleitung zur Umstellung der Datenbank kannst du hier finden. Du kannst außerdem mit dem Befehl php bin/console.php dbstructure toinnodb auf der Kommandozeile die Umstellung automatisch vornehmen lassen." - -#: mod/admin.php:867 -#, php-format -msgid "" -"There is a new version of Friendica available for download. Your current " -"version is %1$s, upstream version is %2$s" -msgstr "Es gibt eine neue Version von Friendica. Du verwendest derzeit die Version %1$s, die aktuelle Version ist %2$s." - -#: mod/admin.php:877 -msgid "" -"The database update failed. Please run \"php bin/console.php dbstructure " -"update\" from the command line and have a look at the errors that might " -"appear." -msgstr "Das Update der Datenbank ist fehlgeschlagen. Bitte führe 'php bin/console.php dbstructure update' in der Kommandozeile aus und achte auf eventuell auftretende Fehlermeldungen." - -#: mod/admin.php:881 -msgid "" -"The last update failed. Please run \"php bin/console.php dbstructure " -"update\" from the command line and have a look at the errors that might " -"appear. (Some of the errors are possibly inside the logfile.)" -msgstr "Das letzte Update ist fehlgeschlagen. Bitte führe \"php bin/console.php dbstructure update\" auf der Kommandozeile aus und werfe einen Blick auf eventuell auftretende Fehler. (Zusätzliche Informationen zu Fehlern könnten in den Logdateien stehen.)" - -#: mod/admin.php:887 -msgid "The worker was never executed. Please check your database structure!" -msgstr "Der Hintergrundprozess (worker) wurde noch nie gestartet. Bitte überprüfe deine Datenbankstruktur." - -#: mod/admin.php:890 -#, php-format -msgid "" -"The last worker execution was on %s UTC. This is older than one hour. Please" -" check your crontab settings." -msgstr "Der Hintergrundprozess (worker) wurde zuletzt um %s UTC ausgeführt. Das war vor mehr als einer Stunde. Bitte überprüfe deine crontab-Einstellungen." - -#: mod/admin.php:896 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -".htconfig.php. See the Config help page for " -"help with the transition." -msgstr "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.ini.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten .htconfig.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen." - -#: mod/admin.php:900 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -"config/local.ini.php. See the Config help " -"page for help with the transition." -msgstr "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.config.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten config/local.ini.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen." - -#: mod/admin.php:907 -#, php-format -msgid "" -"%s is not reachable on your system. This is a severe " -"configuration issue that prevents server to server communication. See the installation page for help." -msgstr "%s konnte von deinem System nicht aufgerufen werden. Dies deutet auf ein schwerwiegendes Problem deiner Konfiguration hin. Bitte konsultiere die Installations-Dokumentation zum Beheben des Problems." - -#: mod/admin.php:913 -msgid "Normal Account" -msgstr "Normales Konto" - -#: mod/admin.php:914 -msgid "Automatic Follower Account" -msgstr "Automatisch folgendes Konto (Marktschreier)" - -#: mod/admin.php:915 -msgid "Public Forum Account" -msgstr "Öffentliches Forum-Konto" - -#: mod/admin.php:916 -msgid "Automatic Friend Account" -msgstr "Automatische Freunde-Seite" - -#: mod/admin.php:917 -msgid "Blog Account" -msgstr "Blog-Konto" - -#: mod/admin.php:918 -msgid "Private Forum Account" -msgstr "Privates Forum-Konto" - -#: mod/admin.php:939 -msgid "Message queues" -msgstr "Nachrichten-Warteschlangen" - -#: mod/admin.php:945 -msgid "Server Settings" -msgstr "Servereinstellungen" - -#: mod/admin.php:954 -msgid "Summary" -msgstr "Zusammenfassung" - -#: mod/admin.php:956 -msgid "Registered users" -msgstr "Registrierte Personen" - -#: mod/admin.php:958 -msgid "Pending registrations" -msgstr "Anstehende Anmeldungen" - -#: mod/admin.php:959 -msgid "Version" -msgstr "Version" - -#: mod/admin.php:964 -msgid "Active addons" -msgstr "Aktivierte Addons" - -#: mod/admin.php:997 -msgid "Can not parse base url. Must have at least ://" -msgstr "Die Basis-URL konnte nicht analysiert werden. Sie muss mindestens aus :// bestehen" - -#: mod/admin.php:1185 -msgid "Invalid storage backend setting value." -msgstr "Ungültige Einstellung für das Datenspeicher-Backend" - -#: mod/admin.php:1364 -msgid "Site settings updated." -msgstr "Seiteneinstellungen aktualisiert." - -#: mod/admin.php:1393 mod/settings.php:885 -msgid "No special theme for mobile devices" -msgstr "Kein spezielles Theme für mobile Geräte verwenden." - -#: mod/admin.php:1422 -msgid "No community page for local users" -msgstr "Keine Gemeinschaftsseite für lokale Nutzer" - -#: mod/admin.php:1423 -msgid "No community page" -msgstr "Keine Gemeinschaftsseite" - -#: mod/admin.php:1424 -msgid "Public postings from users of this site" -msgstr "Öffentliche Beiträge von NutzerInnen dieser Seite" - -#: mod/admin.php:1425 -msgid "Public postings from the federated network" -msgstr "Öffentliche Beiträge aus dem föderalen Netzwerk" - -#: mod/admin.php:1426 -msgid "Public postings from local users and the federated network" -msgstr "Öffentliche Beiträge von lokalen Nutzern und aus dem föderalen Netzwerk" - -#: mod/admin.php:1430 mod/admin.php:1631 mod/admin.php:1641 -#: src/Module/Contact.php:546 -msgid "Disabled" -msgstr "Deaktiviert" - -#: mod/admin.php:1432 -msgid "Users, Global Contacts" -msgstr "Nutzer, globale Kontakte" - -#: mod/admin.php:1433 -msgid "Users, Global Contacts/fallback" -msgstr "Nutzer, globale Kontakte / Fallback" - -#: mod/admin.php:1437 -msgid "One month" -msgstr "ein Monat" - -#: mod/admin.php:1438 -msgid "Three months" -msgstr "drei Monate" - -#: mod/admin.php:1439 -msgid "Half a year" -msgstr "ein halbes Jahr" - -#: mod/admin.php:1440 -msgid "One year" -msgstr "ein Jahr" - -#: mod/admin.php:1445 -msgid "Multi user instance" -msgstr "Mehrbenutzer-Instanz" - -#: mod/admin.php:1469 -msgid "Closed" -msgstr "Geschlossen" - -#: mod/admin.php:1470 -msgid "Requires approval" -msgstr "Bedarf der Zustimmung" - -#: mod/admin.php:1471 -msgid "Open" -msgstr "Offen" - -#: mod/admin.php:1475 src/Module/Install.php:181 -msgid "No SSL policy, links will track page SSL state" -msgstr "Keine SSL-Richtlinie, Links werden das verwendete Protokoll beibehalten" - -#: mod/admin.php:1476 src/Module/Install.php:182 -msgid "Force all links to use SSL" -msgstr "SSL für alle Links erzwingen" - -#: mod/admin.php:1477 src/Module/Install.php:183 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)" - -#: mod/admin.php:1481 -msgid "Don't check" -msgstr "Nicht überprüfen" - -#: mod/admin.php:1482 -msgid "check the stable version" -msgstr "überprüfe die stabile Version" - -#: mod/admin.php:1483 -msgid "check the development version" -msgstr "überprüfe die Entwicklungsversion" - -#: mod/admin.php:1506 -msgid "Database (legacy)" -msgstr "Datenbank (legacy)" - -#: mod/admin.php:1534 -msgid "Republish users to directory" -msgstr "Nutzer erneut im globalen Verzeichnis veröffentlichen." - -#: mod/admin.php:1535 src/Module/Register.php:121 -msgid "Registration" -msgstr "Registrierung" - -#: mod/admin.php:1536 -msgid "File upload" -msgstr "Datei hochladen" - -#: mod/admin.php:1537 -msgid "Policies" -msgstr "Regeln" - -#: mod/admin.php:1539 -msgid "Auto Discovered Contact Directory" -msgstr "Automatisch ein Kontaktverzeichnis erstellen" - -#: mod/admin.php:1540 -msgid "Performance" -msgstr "Performance" - -#: mod/admin.php:1541 -msgid "Worker" -msgstr "Worker" - -#: mod/admin.php:1542 -msgid "Message Relay" -msgstr "Nachrichten-Relais" - -#: mod/admin.php:1543 -msgid "Relocate Instance" -msgstr "Instanz Umziehen" - -#: mod/admin.php:1544 -msgid "Warning! Advanced function. Could make this server unreachable." -msgstr "WARNUNG: Funktion für Fortgeschrittene. Könnte diesen Server unerreichbar machen." - -#: mod/admin.php:1548 -msgid "Site name" -msgstr "Seitenname" - -#: mod/admin.php:1549 -msgid "Sender Email" -msgstr "Absender für Emails" - -#: mod/admin.php:1549 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "Die E-Mail Adresse, die dein Server zum Versenden von Benachrichtigungen verwenden soll." - -#: mod/admin.php:1550 -msgid "Banner/Logo" -msgstr "Banner/Logo" - -#: mod/admin.php:1551 -msgid "Shortcut icon" -msgstr "Shortcut Icon" - -#: mod/admin.php:1551 -msgid "Link to an icon that will be used for browsers." -msgstr "Link zu einem Icon, das Browser verwenden werden." - -#: mod/admin.php:1552 -msgid "Touch icon" -msgstr "Touch Icon" - -#: mod/admin.php:1552 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Link zu einem Icon, das Tablets und Mobiltelefone verwenden sollen." - -#: mod/admin.php:1553 -msgid "Additional Info" -msgstr "Zusätzliche Informationen" - -#: mod/admin.php:1553 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/servers." -msgstr "Für öffentliche Server kannst du hier zusätzliche Informationen angeben, die dann auf %s/servers angezeigt werden." - -#: mod/admin.php:1554 -msgid "System language" -msgstr "Systemsprache" - -#: mod/admin.php:1555 -msgid "System theme" -msgstr "Systemweites Theme" - -#: mod/admin.php:1555 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Vorgabe für das System-Theme - kann von Benutzerprofilen überschrieben werden - Theme-Einstellungen ändern" - -#: mod/admin.php:1556 -msgid "Mobile system theme" -msgstr "Systemweites mobiles Theme" - -#: mod/admin.php:1556 -msgid "Theme for mobile devices" -msgstr "Theme für mobile Geräte" - -#: mod/admin.php:1557 src/Module/Install.php:191 -msgid "SSL link policy" -msgstr "Regeln für SSL Links" - -#: mod/admin.php:1557 src/Module/Install.php:193 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Bestimmt, ob generierte Links SSL verwenden müssen" - -#: mod/admin.php:1558 -msgid "Force SSL" -msgstr "Erzwinge SSL" - -#: mod/admin.php:1558 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Erzwinge SSL für alle Nicht-SSL-Anfragen - Achtung: auf manchen Systemen verursacht dies eine Endlosschleife." - -#: mod/admin.php:1559 -msgid "Hide help entry from navigation menu" -msgstr "Verberge den Hilfe-Eintrag im Navigationsmenü" - -#: mod/admin.php:1559 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Verbirgt den Menüeintrag für die Hilfe-Seiten im Navigationsmenü. Die Seiten können weiterhin über /help aufgerufen werden." - -#: mod/admin.php:1560 -msgid "Single user instance" -msgstr "Ein-Nutzer Instanz" - -#: mod/admin.php:1560 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Bestimmt, ob es sich bei dieser Instanz um eine Installation mit nur einen Nutzer oder mit mehreren Nutzern handelt." - -#: mod/admin.php:1562 -msgid "File storage backend" -msgstr "Datenspeicher-Backend" - -#: mod/admin.php:1562 -msgid "" -"The backend used to store uploaded data. If you change the storage backend, " -"you can manually move the existing files. If you do not do so, the files " -"uploaded before the change will still be available at the old backend. " -"Please see the settings documentation" -" for more information about the choices and the moving procedure." -msgstr "Das zu verwendende Datenspeicher-Backend, wenn Dateien hochgeladen werden. Wenn du das Datenspeicher-Backend änderst, kannst du die bestehenden Dateien zum neuen Backend verschieben. Machst du dies nicht, verbleiben sie im alten Backend und werden weiterhin von dort geladen. Für weitere Informationen zu den verfügbaren Alternativen und der Prozedur zum Verschieben der Daten schaue bitte in die Dokumentation zu den Einstellungen." - -#: mod/admin.php:1564 -msgid "Maximum image size" -msgstr "Maximale Bildgröße" - -#: mod/admin.php:1564 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Maximale Uploadgröße von Bildern in Bytes. Standard ist 0, d.h. ohne Limit." - -#: mod/admin.php:1565 -msgid "Maximum image length" -msgstr "Maximale Bildlänge" - -#: mod/admin.php:1565 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Maximale Länge in Pixeln der längsten Seite eines hochgeladenen Bildes. Grundeinstellung ist -1, was keine Einschränkung bedeutet." - -#: mod/admin.php:1566 -msgid "JPEG image quality" -msgstr "Qualität des JPEG Bildes" - -#: mod/admin.php:1566 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Hochgeladene JPEG-Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust." - -#: mod/admin.php:1568 -msgid "Register policy" -msgstr "Registrierungsmethode" - -#: mod/admin.php:1569 -msgid "Maximum Daily Registrations" -msgstr "Maximum täglicher Registrierungen" - -#: mod/admin.php:1569 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "Wenn die Registrierung weiter oben erlaubt ist, regelt dies die maximale Anzahl von Neuanmeldungen pro Tag. Wenn die Registrierung geschlossen ist, hat diese Einstellung keinen Effekt." - -#: mod/admin.php:1570 -msgid "Register text" -msgstr "Registrierungstext" - -#: mod/admin.php:1570 -msgid "" -"Will be displayed prominently on the registration page. You can use BBCode " -"here." -msgstr "Wird gut sichtbar auf der Registrierungsseite angezeigt. BBCode kann verwendet werden." - -#: mod/admin.php:1571 -msgid "Forbidden Nicknames" -msgstr "Verbotene Spitznamen" - -#: mod/admin.php:1571 -msgid "" -"Comma separated list of nicknames that are forbidden from registration. " -"Preset is a list of role names according RFC 2142." -msgstr "Durch Kommas getrennte Liste von Spitznamen, die von der Registrierung ausgeschlossen sind. Die Vorgabe ist eine Liste von Rollennamen nach RFC 2142." - -#: mod/admin.php:1572 -msgid "Accounts abandoned after x days" -msgstr "Nutzerkonten gelten nach x Tagen als unbenutzt" - -#: mod/admin.php:1572 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit." - -#: mod/admin.php:1573 -msgid "Allowed friend domains" -msgstr "Erlaubte Domains für Kontakte" - -#: mod/admin.php:1573 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Liste der Domains, die für Kontakte erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." - -#: mod/admin.php:1574 -msgid "Allowed email domains" -msgstr "Erlaubte Domains für E-Mails" - -#: mod/admin.php:1574 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." - -#: mod/admin.php:1575 -msgid "No OEmbed rich content" -msgstr "OEmbed nicht verwenden" - -#: mod/admin.php:1575 -msgid "" -"Don't show the rich content (e.g. embedded PDF), except from the domains " -"listed below." -msgstr "Verhindert das Einbetten von reichhaltigen Inhalten (z.B. eingebettete PDF Dateien). Ausgenommen von dieser Regel werden Domänen, die unten aufgeführt werden." - -#: mod/admin.php:1576 -msgid "Allowed OEmbed domains" -msgstr "Erlaubte OEmbed-Domänen" - -#: mod/admin.php:1576 -msgid "" -"Comma separated list of domains which oembed content is allowed to be " -"displayed. Wildcards are accepted." -msgstr "Durch Kommas getrennte Liste von Domänen, für die das Einbetten reichhaltiger Inhalte erlaubt ist. Platzhalter können verwendet werden." - -#: mod/admin.php:1577 -msgid "Block public" -msgstr "Öffentlichen Zugriff blockieren" - -#: mod/admin.php:1577 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist." - -#: mod/admin.php:1578 -msgid "Force publish" -msgstr "Erzwinge Veröffentlichung" - -#: mod/admin.php:1578 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen." - -#: mod/admin.php:1578 -msgid "Enabling this may violate privacy laws like the GDPR" -msgstr "Wenn du diese Option aktivierst, verstößt das unter Umständen gegen Gesetze wie die EU-DSGVO." - -#: mod/admin.php:1579 -msgid "Global directory URL" -msgstr "URL des weltweiten Verzeichnisses" - -#: mod/admin.php:1579 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "URL des weltweiten Verzeichnisses. Wenn diese nicht gesetzt ist, ist das Verzeichnis für die Applikation nicht erreichbar." - -#: mod/admin.php:1580 -msgid "Private posts by default for new users" -msgstr "Private Beiträge als Standard für neue Nutzer" - -#: mod/admin.php:1580 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Die Standard-Zugriffsrechte für neue Nutzer werden so gesetzt, dass als Voreinstellung in die private Gruppe gepostet wird anstelle von öffentlichen Beiträgen." - -#: mod/admin.php:1581 -msgid "Don't include post content in email notifications" -msgstr "Inhalte von Beiträgen nicht in E-Mail-Benachrichtigungen versenden" - -#: mod/admin.php:1581 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "Inhalte von Beiträgen/Kommentaren/privaten Nachrichten/usw. zum Datenschutz nicht in E-Mail-Benachrichtigungen einbinden." - -#: mod/admin.php:1582 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Öffentlichen Zugriff auf Addons im Apps Menü verbieten." - -#: mod/admin.php:1582 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Wenn ausgewählt, werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt." - -#: mod/admin.php:1583 -msgid "Don't embed private images in posts" -msgstr "Private Bilder nicht in Beiträgen einbetten." - -#: mod/admin.php:1583 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Ersetze lokal gehostete, private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten, sich zunächst auf den jeweiligen Servern authentifizieren müssen, bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert." - -#: mod/admin.php:1584 -msgid "Explicit Content" -msgstr "Sensibler Inhalt" - -#: mod/admin.php:1584 -msgid "" -"Set this to announce that your node is used mostly for explicit content that" -" might not be suited for minors. This information will be published in the " -"node information and might be used, e.g. by the global directory, to filter " -"your node from listings of nodes to join. Additionally a note about this " -"will be shown at the user registration page." -msgstr "Wähle dies, um anzuzeigen, dass dein Knoten hauptsächlich für explizite Inhalte verwendet wird, die möglicherweise nicht für Minderjährige geeignet sind. Diese Info wird in der Knoteninformation veröffentlicht und kann durch das Globale Verzeichnis genutzt werden, um deinen Knoten von den Auflistungen auszuschließen. Zusätzlich wird auf der Registrierungsseite ein Hinweis darüber angezeigt." - -#: mod/admin.php:1585 -msgid "Allow Users to set remote_self" -msgstr "Nutzern erlauben, das remote_self Flag zu setzen" - -#: mod/admin.php:1585 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "Ist dies ausgewählt, kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im \"Erweitert\"-Reiter der Kontaktansicht markieren. Nach dem Setzen dieses Flags werden alle Top-Level-Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet (gespiegelt)." - -#: mod/admin.php:1586 -msgid "Block multiple registrations" -msgstr "Unterbinde Mehrfachregistrierung" - -#: mod/admin.php:1586 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Benutzern nicht erlauben, weitere Konten für Organisationsseiten o. ä. mit der gleichen E-Mail-Adresse anzulegen." - -#: mod/admin.php:1587 -msgid "Disable OpenID" -msgstr "OpenID deaktivieren" - -#: mod/admin.php:1587 -msgid "Disable OpenID support for registration and logins." -msgstr "OpenID-Unterstützung für Registrierung und Login." - -#: mod/admin.php:1588 -msgid "No Fullname check" -msgstr "Namen nicht auf Vollständigkeit überprüfen" - -#: mod/admin.php:1588 -msgid "" -"Allow users to register without a space between the first name and the last " -"name in their full name." -msgstr "Erlaubt Nutzern, Konten zu registrieren, bei denen im Namensfeld kein Leerzeichen zur Trennung von Vor- und Nachnamen verwendet wird." - -#: mod/admin.php:1589 -msgid "Community pages for visitors" -msgstr "Für Besucher verfügbare Gemeinschaftsseite" - -#: mod/admin.php:1589 -msgid "" -"Which community pages should be available for visitors. Local users always " -"see both pages." -msgstr "Welche Gemeinschaftsseiten sollen für Besucher dieses Knotens verfügbar sein? Lokale Nutzer können grundsätzlich beide Seiten verwenden." - -#: mod/admin.php:1590 -msgid "Posts per user on community page" -msgstr "Anzahl der Beiträge pro Benutzer auf der Gemeinschaftsseite" - -#: mod/admin.php:1590 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Die Anzahl der Beiträge, die von jedem Nutzer maximal auf der Gemeinschaftsseite angezeigt werden sollen. Dieser Parameter wird nicht für die Globale Gemeinschaftsseite genutzt." - -#: mod/admin.php:1591 -msgid "Disable OStatus support" -msgstr "OStatus-Unterstützung deaktivieren" - -#: mod/admin.php:1591 -msgid "" -"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Die eingebaute OStatus-Unterstützung (StatusNet, GNU Social, etc.) deaktivieren. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre-Warnungen werden nur bei Bedarf angezeigt." - -#: mod/admin.php:1592 -msgid "Only import OStatus/ActivityPub threads from our contacts" -msgstr "Nur OStatus/ActivityPub-Konversationen unserer Kontakte importieren" - -#: mod/admin.php:1592 -msgid "" -"Normally we import every content from our OStatus and ActivityPub contacts. " -"With this option we only store threads that are started by a contact that is" -" known on our system." -msgstr "Normalerweise werden alle Inhalte von OStatus- und ActivityPub-Kontakten importiert. Mit dieser Option werden nur solche Konversationen gespeichert, die von Kontakten der Nutzer dieses Knotens gestartet wurden." - -#: mod/admin.php:1593 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "OStatus Unterstützung kann nur aktiviert werden, wenn \"Threading\" aktiviert ist. " - -#: mod/admin.php:1595 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "Diaspora Unterstützung kann nicht aktiviert werden, da Friendica in ein Unterverzeichnis installiert ist." - -#: mod/admin.php:1596 -msgid "Enable Diaspora support" -msgstr "Diaspora-Unterstützung aktivieren" - -#: mod/admin.php:1596 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Verwende die eingebaute Diaspora-Verknüpfung." - -#: mod/admin.php:1597 -msgid "Only allow Friendica contacts" -msgstr "Nur Friendica-Kontakte erlauben" - -#: mod/admin.php:1597 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "Alle Kontakte müssen das Friendica-Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert." - -#: mod/admin.php:1598 -msgid "Verify SSL" -msgstr "SSL Überprüfen" - -#: mod/admin.php:1598 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "Wenn gewollt, kann man hier eine strenge Zertifikatskontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL-Zertifikat eine Verbindung herstellen kann." - -#: mod/admin.php:1599 -msgid "Proxy user" -msgstr "Proxy-Nutzer" - -#: mod/admin.php:1600 -msgid "Proxy URL" -msgstr "Proxy-URL" - -#: mod/admin.php:1601 -msgid "Network timeout" -msgstr "Netzwerk-Wartezeit" - -#: mod/admin.php:1601 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)." - -#: mod/admin.php:1602 -msgid "Maximum Load Average" -msgstr "Maximum Load Average" - -#: mod/admin.php:1602 -#, php-format -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default %d." -msgstr "Maximale System-LOAD bevor Verteil- und Empfangsprozesse verschoben werden - Standard %d" - -#: mod/admin.php:1603 -msgid "Maximum Load Average (Frontend)" -msgstr "Maximum Load Average (Frontend)" - -#: mod/admin.php:1603 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "Maximale Systemlast, bevor Vordergrundprozesse pausiert werden - Standard 50." - -#: mod/admin.php:1604 -msgid "Minimal Memory" -msgstr "Minimaler Speicher" - -#: mod/admin.php:1604 -msgid "" -"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " -"default 0 (deactivated)." -msgstr "Minimal freier Speicher in MB für den Worker Prozess. Benötigt Zugriff auf /proc/meminfo - Standardwert ist 0 (deaktiviert)" - -#: mod/admin.php:1605 -msgid "Maximum table size for optimization" -msgstr "Maximale Tabellengröße zur Optimierung" - -#: mod/admin.php:1605 -msgid "" -"Maximum table size (in MB) for the automatic optimization. Enter -1 to " -"disable it." -msgstr "Maximale Tabellengröße (in MB) für die automatische Optimierung - Gib -1 für Deaktivierung ein." - -#: mod/admin.php:1606 -msgid "Minimum level of fragmentation" -msgstr "Minimaler Fragmentationsgrad" - -#: mod/admin.php:1606 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "Minimaler Fragmentationsgrad von Datenbanktabellen, um die automatische Optimierung einzuleiten - Standardwert ist 30%" - -#: mod/admin.php:1608 -msgid "Periodical check of global contacts" -msgstr "Regelmäßig globale Kontakte überprüfen" - -#: mod/admin.php:1608 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "Wenn diese Option aktiviert ist, werden die globalen Kontakte regelmäßig auf fehlende oder veraltete Daten sowie auf Erreichbarkeit des Kontakts und des Servers überprüft." - -#: mod/admin.php:1609 -msgid "Days between requery" -msgstr "Tage zwischen erneuten Abfragen" - -#: mod/admin.php:1609 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Legt das Abfrageintervall fest, nach dem ein Server erneut nach Kontakten abgefragt werden soll." - -#: mod/admin.php:1610 -msgid "Discover contacts from other servers" -msgstr "Neue Kontakte auf anderen Servern entdecken" - -#: mod/admin.php:1610 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommended setting is 'Users, " -"Global Contacts'." -msgstr "Regelmäßig andere Server nach potentiellen Kontakten absuchen. Du kannst zwischen 'Nutzern', also den tatsächlichen Nutzern des anderen Systems, und 'globalen Kontakten', also aktiven Kontakten, die auf dem System bekannt sind, wählen. Der Fallback-Mechanismus ist für ältere Friendica- und Redmatrix-Server gedacht, bei denen globale Kontakte noch nicht verfügbar sind. Durch den Fallback-Modus entsteht auf deinem Server eine wesentlich höhere Last, empfohlen wird der Modus 'Nutzer, globale Kontakte'." - -#: mod/admin.php:1611 -msgid "Timeframe for fetching global contacts" -msgstr "Zeitfenster für globale Kontakte" - -#: mod/admin.php:1611 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "Wenn die Entdeckung neuer Kontakte aktiv ist, definiert dieses Zeitfenster den Zeitraum, in dem globale Kontakte als aktiv gelten und von anderen Servern importiert werden." - -#: mod/admin.php:1612 -msgid "Search the local directory" -msgstr "Lokales Verzeichnis durchsuchen" - -#: mod/admin.php:1612 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "Suche im lokalen Verzeichnis anstelle des globalen Verzeichnisses durchführen. Jede Suche wird im Hintergrund auch im globalen Verzeichnis durchgeführt, um die Suchresultate zu verbessern, wenn die Suche wiederholt wird." - -#: mod/admin.php:1614 -msgid "Publish server information" -msgstr "Server-Informationen veröffentlichen" - -#: mod/admin.php:1614 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "Wenn aktiviert, werden allgemeine Informationen über den Server und Nutzungsdaten veröffentlicht. Die Daten beinhalten den Namen sowie die Version des Servers, die Anzahl der Personen mit öffentlichen Profilen, die Anzahl der Beiträge sowie aktivierte Protokolle und Konnektoren. Für Details bitte the-federation.info aufrufen." - -#: mod/admin.php:1616 -msgid "Check upstream version" -msgstr "Suche nach Updates" - -#: mod/admin.php:1616 -msgid "" -"Enables checking for new Friendica versions at github. If there is a new " -"version, you will be informed in the admin panel overview." -msgstr "Wenn diese Option aktiviert ist, wird regelmäßig nach neuen Friendica-Versionen auf github gesucht. Wenn es eine neue Version gibt, wird dies auf der Übersichtsseite im Admin-Panel angezeigt." - -#: mod/admin.php:1617 -msgid "Suppress Tags" -msgstr "Tags unterdrücken" - -#: mod/admin.php:1617 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Unterdrückt die Anzeige von Tags am Ende eines Beitrags." - -#: mod/admin.php:1618 -msgid "Clean database" -msgstr "Datenbank aufräumen" - -#: mod/admin.php:1618 -msgid "" -"Remove old remote items, orphaned database records and old content from some" -" other helper tables." -msgstr "Entferne alte Beiträge von anderen Knoten, verwaiste Einträge und alten Inhalt einiger Hilfstabellen." - -#: mod/admin.php:1619 -msgid "Lifespan of remote items" -msgstr "Lebensdauer von Beiträgen anderer Knoten" - -#: mod/admin.php:1619 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"remote items will be deleted. Own items, and marked or filed items are " -"always kept. 0 disables this behaviour." -msgstr "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl in Tagen, nach der Beiträge, die auf anderen Knoten des Netzwerks verfasst wurden, gelöscht werden sollen. Eigene Beiträge sowie markierte oder abgespeicherte Beiträge werden nicht gelöscht. Ein Wert von 0 deaktiviert das automatische Löschen von Beiträgen." - -#: mod/admin.php:1620 -msgid "Lifespan of unclaimed items" -msgstr "Lebensdauer nicht angeforderter Beiträge" - -#: mod/admin.php:1620 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"unclaimed remote items (mostly content from the relay) will be deleted. " -"Default value is 90 days. Defaults to the general lifespan value of remote " -"items if set to 0." -msgstr "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl von Tagen, nach denen nicht angeforderte Beiträge (hauptsächlich solche, die über das Relais eintreffen) gelöscht werden. Der Standardwert beträgt 90 Tage. Wird dieser Wert auf 0 gesetzt, wird die Lebensdauer von Beiträgen anderer Knoten verwendet." - -#: mod/admin.php:1621 -msgid "Lifespan of raw conversation data" -msgstr "Lebensdauer der Beiträge" - -#: mod/admin.php:1621 -msgid "" -"The conversation data is used for ActivityPub and OStatus, as well as for " -"debug purposes. It should be safe to remove it after 14 days, default is 90 " -"days." -msgstr "Die Konversationsdaten werden für ActivityPub und OStatus sowie für Debug-Zwecke verwendet. Sie sollten gefahrlos nach 14 Tagen entfernt werden können, der Standardwert beträgt 90 Tage." - -#: mod/admin.php:1622 -msgid "Path to item cache" -msgstr "Pfad zum Item-Cache" - -#: mod/admin.php:1622 -msgid "The item caches buffers generated bbcode and external images." -msgstr "Im Item-Cache werden externe Bilder und geparster BBCode zwischen gespeichert." - -#: mod/admin.php:1623 -msgid "Cache duration in seconds" -msgstr "Cache-Dauer in Sekunden" - -#: mod/admin.php:1623 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "Wie lange sollen die zwischengespeicherten Dateien vorgehalten werden? Grundeinstellung sind 86400 Sekunden (ein Tag). Um den Item-Cache zu deaktivieren, setze diesen Wert auf -1." - -#: mod/admin.php:1624 -msgid "Maximum numbers of comments per post" -msgstr "Maximale Anzahl von Kommentaren pro Beitrag" - -#: mod/admin.php:1624 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "Wie viele Kommentare sollen pro Beitrag angezeigt werden? Standardwert sind 100." - -#: mod/admin.php:1625 -msgid "Temp path" -msgstr "Temp-Pfad" - -#: mod/admin.php:1625 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "Solltest du ein eingeschränktes System haben, auf dem der Webserver nicht auf das temp-Verzeichnis des Systems zugreifen kann, setze hier einen anderen Pfad." - -#: mod/admin.php:1626 -msgid "Disable picture proxy" -msgstr "Bilder-Proxy deaktivieren" - -#: mod/admin.php:1626 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwidth." -msgstr "Der Proxy für Bilder verbessert die Leistung und Privatsphäre der Nutzer. Er sollte nicht auf Systemen verwendet werden, die nur über begrenzte Bandbreite verfügen." - -#: mod/admin.php:1627 -msgid "Only search in tags" -msgstr "Nur in Tags suchen" - -#: mod/admin.php:1627 -msgid "On large systems the text search can slow down the system extremely." -msgstr "Auf großen Knoten kann die Volltext-Suche das System ausbremsen." - -#: mod/admin.php:1629 -msgid "New base url" -msgstr "Neue Basis-URL" - -#: mod/admin.php:1629 -msgid "" -"Change base url for this server. Sends relocate message to all Friendica and" -" Diaspora* contacts of all users." -msgstr "Ändert die Basis-URL dieses Servers und sendet eine Umzugsmitteilung an alle Friendica- und Diaspora*-Kontakte deiner NutzerInnen." - -#: mod/admin.php:1631 -msgid "RINO Encryption" -msgstr "RINO-Verschlüsselung" - -#: mod/admin.php:1631 -msgid "Encryption layer between nodes." -msgstr "Verschlüsselung zwischen Friendica-Instanzen" - -#: mod/admin.php:1631 -msgid "Enabled" -msgstr "Aktiv" - -#: mod/admin.php:1633 -msgid "Maximum number of parallel workers" -msgstr "Maximale Anzahl parallel laufender Worker" - -#: mod/admin.php:1633 -#, php-format -msgid "" -"On shared hosters set this to %d. On larger systems, values of %d are great." -" Default value is %d." -msgstr "Wenn dein Knoten bei einem Shared Hoster ist, setze diesen Wert auf %d. Auf größeren Systemen funktioniert ein Wert von %d recht gut. Standardeinstellung sind %d." - -#: mod/admin.php:1634 -msgid "Don't use 'proc_open' with the worker" -msgstr "'proc_open' nicht mit den Workern verwenden" - -#: mod/admin.php:1634 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of worker calls in your crontab." -msgstr "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der worker-Aufrufe in deiner crontab erhöhen." - -#: mod/admin.php:1635 -msgid "Enable fastlane" -msgstr "Aktiviere Fastlane" - -#: mod/admin.php:1635 -msgid "" -"When enabed, the fastlane mechanism starts an additional worker if processes" -" with higher priority are blocked by processes of lower priority." -msgstr "Wenn aktiviert, wird der Fastlane-Mechanismus einen weiteren Worker-Prozeß starten, wenn Prozesse mit höherer Priorität von Prozessen mit niedrigerer Priorität blockiert werden." - -#: mod/admin.php:1636 -msgid "Enable frontend worker" -msgstr "Aktiviere den Frontend-Worker" - -#: mod/admin.php:1636 -#, php-format -msgid "" -"When enabled the Worker process is triggered when backend access is " -"performed (e.g. messages being delivered). On smaller sites you might want " -"to call %s/worker on a regular basis via an external cron job. You should " -"only enable this option if you cannot utilize cron/scheduled jobs on your " -"server." -msgstr "Ist diese Option aktiv, wird der Worker Prozess durch Aktionen am Frontend gestartet (z.B. wenn Nachrichten zugestellt werden). Auf kleineren Seiten sollte %s/worker regelmäßig, beispielsweise durch einen externen Cron Anbieter, aufgerufen werden. Du solltest diese Option nur dann aktivieren, wenn du keinen Cron Job auf deinem eigenen Server starten kannst." - -#: mod/admin.php:1638 -msgid "Subscribe to relay" -msgstr "Relais abonnieren" - -#: mod/admin.php:1638 -msgid "" -"Enables the receiving of public posts from the relay. They will be included " -"in the search, subscribed tags and on the global community page." -msgstr "Aktiviert den Empfang von öffentlichen Beiträgen vom Relais-Server. Diese Beiträge werden in der Suche, den abonnierten Hashtags sowie der globalen Gemeinschaftsseite verfügbar sein." - -#: mod/admin.php:1639 -msgid "Relay server" -msgstr "Relais-Server" - -#: mod/admin.php:1639 -msgid "" -"Address of the relay server where public posts should be send to. For " -"example https://relay.diasp.org" -msgstr "Adresse des Relais-Servers, an den die öffentlichen Beiträge gesendet werden sollen. Zum Beispiel https://relay.diasp.org" - -#: mod/admin.php:1640 -msgid "Direct relay transfer" -msgstr "Direkte Relais-Übertragung" - -#: mod/admin.php:1640 -msgid "" -"Enables the direct transfer to other servers without using the relay servers" -msgstr "Aktiviert das direkte Verteilen an andere Server, ohne dass ein Relais-Server verwendet wird." - -#: mod/admin.php:1641 -msgid "Relay scope" -msgstr "Geltungsbereich des Relais" - -#: mod/admin.php:1641 -msgid "" -"Can be 'all' or 'tags'. 'all' means that every public post should be " -"received. 'tags' means that only posts with selected tags should be " -"received." -msgstr "Der Wert kann entweder 'Alle' oder 'Schlagwörter' sein. 'Alle' bedeutet, dass alle öffentliche Beiträge empfangen werden sollen. 'Schlagwörter' schränkt dem Empfang auf Beiträge ein, die bestimmte Schlagwörter beinhalten." - -#: mod/admin.php:1641 -msgid "all" -msgstr "Alle" - -#: mod/admin.php:1641 -msgid "tags" -msgstr "Schlagwörter" - -#: mod/admin.php:1642 -msgid "Server tags" -msgstr "Server-Schlagworte" - -#: mod/admin.php:1642 -msgid "Comma separated list of tags for the 'tags' subscription." -msgstr "Liste von Schlagworten, die abonniert werden sollen, mit Komma getrennt." - -#: mod/admin.php:1643 -msgid "Allow user tags" -msgstr "Verwende Schlagworte der Nutzer" - -#: mod/admin.php:1643 -msgid "" -"If enabled, the tags from the saved searches will used for the 'tags' " -"subscription in addition to the 'relay_server_tags'." -msgstr "Ist dies aktiviert, werden die Schlagwörter der gespeicherten Suchen zusätzlich zu den oben definierten Server-Schlagworten abonniert." - -#: mod/admin.php:1646 -msgid "Start Relocation" -msgstr "Umsiedlung starten" - -#: mod/admin.php:1673 -msgid "Update has been marked successful" -msgstr "Update wurde als erfolgreich markiert" - -#: mod/admin.php:1680 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt." - -#: mod/admin.php:1684 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s" - -#: mod/admin.php:1700 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "Die Ausführung von %s schlug fehl. Fehlermeldung: %s" - -#: mod/admin.php:1702 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Update %s war erfolgreich." - -#: mod/admin.php:1705 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Update %s hat keinen Status zurückgegeben. Unbekannter Status." - -#: mod/admin.php:1708 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "Es gab keine weitere Update-Funktion, die von %s ausgeführt werden musste." - -#: mod/admin.php:1731 -msgid "No failed updates." -msgstr "Keine fehlgeschlagenen Updates." - -#: mod/admin.php:1732 -msgid "Check database structure" -msgstr "Datenbankstruktur überprüfen" - -#: mod/admin.php:1737 -msgid "Failed Updates" -msgstr "Fehlgeschlagene Updates" - -#: mod/admin.php:1738 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben." - -#: mod/admin.php:1739 -msgid "Mark success (if update was manually applied)" -msgstr "Als erfolgreich markieren (falls das Update manuell installiert wurde)" - -#: mod/admin.php:1740 -msgid "Attempt to execute this update step automatically" -msgstr "Versuchen, diesen Schritt automatisch auszuführen" - -#: mod/admin.php:1780 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\nHallo %1$s,\n\nauf %2$s wurde ein Account für dich angelegt." - -#: mod/admin.php:1783 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "\nNachfolgend die Anmelde-Details:\n\tAdresse der Seite:\t%1$s\n\tBenutzername:\t%2$s\n\tPasswort:\t%3$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich\nangemeldet hast.\n\nBitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst du ja auch einige Informationen über dich in deinem\nProfil veröffentlichen, damit andere Leute dich einfacher finden können.\nBearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir\npassendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.\nAußerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.\n\nWir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nSolltest du dein Nutzerkonto löschen wollen, kannst du dies unter %1$s/removeme jederzeit tun.\n\nNun viel Spaß, gute Begegnungen und willkommen auf %4$s." - -#: mod/admin.php:1820 src/Model/User.php:859 -#, php-format -msgid "Registration details for %s" -msgstr "Details der Registration von %s" - -#: mod/admin.php:1830 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "%s Benutzer geblockt/freigegeben" -msgstr[1] "%s Benutzer geblockt/freigegeben" - -#: mod/admin.php:1837 mod/admin.php:1891 -msgid "You can't remove yourself" -msgstr "Du kannst dich nicht selbst löschen!" - -#: mod/admin.php:1840 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s Nutzer gelöscht" -msgstr[1] "%s Nutzer gelöscht" - -#: mod/admin.php:1889 -#, php-format -msgid "User '%s' deleted" -msgstr "Nutzer '%s' gelöscht" - -#: mod/admin.php:1900 -#, php-format -msgid "User '%s' unblocked" -msgstr "Nutzer '%s' entsperrt" - -#: mod/admin.php:1900 -#, php-format -msgid "User '%s' blocked" -msgstr "Nutzer '%s' gesperrt" - -#: mod/admin.php:1948 mod/settings.php:1041 -msgid "Normal Account Page" -msgstr "Normales Konto" - -#: mod/admin.php:1949 mod/settings.php:1045 -msgid "Soapbox Page" -msgstr "Marktschreier-Konto" - -#: mod/admin.php:1950 mod/settings.php:1049 -msgid "Public Forum" -msgstr "Öffentliches Forum" - -#: mod/admin.php:1951 mod/settings.php:1053 -msgid "Automatic Friend Page" -msgstr "Automatische Freunde-Seite" - -#: mod/admin.php:1952 -msgid "Private Forum" -msgstr "Privates Forum" - -#: mod/admin.php:1955 mod/settings.php:1025 -msgid "Personal Page" -msgstr "Persönliche Seite" - -#: mod/admin.php:1956 mod/settings.php:1029 -msgid "Organisation Page" -msgstr "Organisationsseite" - -#: mod/admin.php:1957 mod/settings.php:1033 -msgid "News Page" -msgstr "Nachrichtenseite" - -#: mod/admin.php:1958 mod/settings.php:1037 -msgid "Community Forum" -msgstr "Gemeinschaftsforum" - -#: mod/admin.php:1959 -msgid "Relay" -msgstr "Relais" - -#: mod/admin.php:2005 mod/admin.php:2016 mod/admin.php:2030 mod/admin.php:2048 -#: src/Content/ContactSelector.php:86 -msgid "Email" -msgstr "E-Mail" - -#: mod/admin.php:2005 mod/admin.php:2030 -msgid "Register date" -msgstr "Anmeldedatum" - -#: mod/admin.php:2005 mod/admin.php:2030 -msgid "Last login" -msgstr "Letzte Anmeldung" - -#: mod/admin.php:2005 mod/admin.php:2030 -msgid "Last item" -msgstr "Letzter Beitrag" - -#: mod/admin.php:2005 -msgid "Type" -msgstr "Typ" - -#: mod/admin.php:2012 -msgid "Add User" -msgstr "Nutzer hinzufügen" - -#: mod/admin.php:2014 -msgid "User registrations waiting for confirm" -msgstr "Neuanmeldungen, die auf Deine Bestätigung warten" - -#: mod/admin.php:2015 -msgid "User waiting for permanent deletion" -msgstr "Nutzer wartet auf permanente Löschung" - -#: mod/admin.php:2016 -msgid "Request date" -msgstr "Anfragedatum" - -#: mod/admin.php:2017 -msgid "No registrations." -msgstr "Keine Neuanmeldungen." - -#: mod/admin.php:2018 -msgid "Note from the user" -msgstr "Hinweis vom Nutzer" - -#: mod/admin.php:2020 -msgid "Deny" -msgstr "Verwehren" - -#: mod/admin.php:2023 -msgid "User blocked" -msgstr "Nutzer blockiert." - -#: mod/admin.php:2025 -msgid "Site admin" -msgstr "Seitenadministrator" - -#: mod/admin.php:2026 -msgid "Account expired" -msgstr "Account ist abgelaufen" - -#: mod/admin.php:2029 -msgid "New User" -msgstr "Neuer Nutzer" - -#: mod/admin.php:2030 -msgid "Permanent deletion" -msgstr "Permanent löschen" - -#: mod/admin.php:2035 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?" - -#: mod/admin.php:2036 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles, was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?" - -#: mod/admin.php:2046 -msgid "Name of the new user." -msgstr "Name des neuen Nutzers" - -#: mod/admin.php:2047 -msgid "Nickname" -msgstr "Spitzname" - -#: mod/admin.php:2047 -msgid "Nickname of the new user." -msgstr "Spitznamen für den neuen Nutzer" - -#: mod/admin.php:2048 -msgid "Email address of the new user." -msgstr "Email Adresse des neuen Nutzers" - -#: mod/admin.php:2090 -#, php-format -msgid "Addon %s disabled." -msgstr "Addon %s ausgeschaltet." - -#: mod/admin.php:2093 -#, php-format -msgid "Addon %s enabled." -msgstr "Addon %s eingeschaltet." - -#: mod/admin.php:2104 mod/admin.php:2354 -msgid "Disable" -msgstr "Ausschalten" - -#: mod/admin.php:2107 mod/admin.php:2357 -msgid "Enable" -msgstr "Einschalten" - -#: mod/admin.php:2129 mod/admin.php:2386 -msgid "Toggle" -msgstr "Umschalten" - -#: mod/admin.php:2137 mod/admin.php:2395 -msgid "Author: " -msgstr "Autor:" - -#: mod/admin.php:2138 mod/admin.php:2396 -msgid "Maintainer: " -msgstr "Betreuer:" - -#: mod/admin.php:2190 -msgid "Reload active addons" -msgstr "Aktivierte Addons neu laden" - -#: mod/admin.php:2195 -#, php-format -msgid "" -"There are currently no addons available on your node. You can find the " -"official addon repository at %1$s and might find other interesting addons in" -" the open addon registry at %2$s" -msgstr "Es sind derzeit keine Addons auf diesem Knoten verfügbar. Du findest das offizielle Addon-Repository unter %1$s und weitere eventuell interessante Addons im offenen Addon-Verzeichnis auf %2$s." - -#: mod/admin.php:2316 -msgid "No themes found." -msgstr "Keine Themes gefunden." - -#: mod/admin.php:2377 -msgid "Screenshot" -msgstr "Bildschirmfoto" - -#: mod/admin.php:2431 -msgid "Reload active themes" -msgstr "Aktives Theme neu laden" - -#: mod/admin.php:2436 -#, php-format -msgid "No themes found on the system. They should be placed in %1$s" -msgstr "Es wurden keine Themes auf dem System gefunden. Diese sollten in %1$s platziert werden." - -#: mod/admin.php:2437 -msgid "[Experimental]" -msgstr "[Experimentell]" - -#: mod/admin.php:2438 -msgid "[Unsupported]" -msgstr "[Nicht unterstützt]" - -#: mod/admin.php:2463 -msgid "Log settings updated." -msgstr "Protokolleinstellungen aktualisiert." - -#: mod/admin.php:2496 -msgid "PHP log currently enabled." -msgstr "PHP Protokollierung ist derzeit aktiviert." - -#: mod/admin.php:2498 -msgid "PHP log currently disabled." -msgstr "PHP Protokollierung ist derzeit nicht aktiviert." - -#: mod/admin.php:2507 -msgid "Clear" -msgstr "löschen" - -#: mod/admin.php:2511 -msgid "Enable Debugging" -msgstr "Protokoll führen" - -#: mod/admin.php:2512 -msgid "Log file" -msgstr "Protokolldatei" - -#: mod/admin.php:2512 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis." - -#: mod/admin.php:2513 -msgid "Log level" -msgstr "Protokoll-Level" - -#: mod/admin.php:2515 -msgid "PHP logging" -msgstr "PHP Protokollieren" - -#: mod/admin.php:2516 -msgid "" -"To temporarily enable logging of PHP errors and warnings you can prepend the" -" following to the index.php file of your installation. The filename set in " -"the 'error_log' line is relative to the friendica top-level directory and " -"must be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "Um die Protokollierung von PHP-Fehlern und Warnungen vorübergehend zu aktivieren, kannst du der Datei index.php deiner Installation Folgendes voranstellen. Der in der Datei 'error_log' angegebene Dateiname ist relativ zum obersten Verzeichnis von Friendica und muss vom Webserver beschreibbar sein. Die Option '1' für 'log_errors' und 'display_errors' aktiviert diese Optionen, ersetze die '1' durch eine '0', um sie zu deaktivieren." - -#: mod/admin.php:2548 -#, php-format -msgid "" -"Error trying to open %1$s log file.\\r\\n
    Check to see " -"if file %1$s exist and is readable." -msgstr "Fehler beim Öffnen der Logdatei %1$s.\\r\\n
    Bitte überprüfe ob die Datei %1$s existiert und gelesen werden kann." - -#: mod/admin.php:2552 -#, php-format -msgid "" -"Couldn't open %1$s log file.\\r\\n
    Check to see if file" -" %1$s is readable." -msgstr "Konnte die Logdatei %1$s nicht öffnen.\\r\\n
    Bitte stelle sicher, dass die Datei %1$s lesbar ist." - -#: mod/admin.php:2645 mod/admin.php:2646 mod/settings.php:765 -msgid "Off" -msgstr "Aus" - -#: mod/admin.php:2645 mod/admin.php:2646 mod/settings.php:765 -msgid "On" -msgstr "An" - -#: mod/admin.php:2646 -#, php-format -msgid "Lock feature %s" -msgstr "Feature festlegen: %s" - -#: mod/admin.php:2654 -msgid "Manage Additional Features" -msgstr "Zusätzliche Features Verwalten" - -#: mod/directory.php:121 -msgid "No entries (some entries may be hidden)." -msgstr "Keine Einträge (einige Einträge könnten versteckt sein)." - -#: mod/directory.php:128 view/theme/vier/theme.php:208 -#: src/Content/Widget.php:70 -msgid "Global Directory" -msgstr "Weltweites Verzeichnis" - -#: mod/directory.php:130 -msgid "Find on this site" -msgstr "Auf diesem Server suchen" - -#: mod/directory.php:132 -msgid "Results for:" -msgstr "Ergebnisse für:" - -#: mod/directory.php:134 -msgid "Site Directory" -msgstr "Verzeichnis" - -#: mod/directory.php:136 view/theme/vier/theme.php:203 -#: src/Content/Widget.php:65 src/Module/Contact.php:817 -msgid "Find" -msgstr "Finde" - -#: mod/directory.php:191 src/Model/Profile.php:447 src/Model/Profile.php:782 -msgid "Status:" -msgstr "Status:" - -#: mod/directory.php:192 src/Model/Profile.php:448 src/Model/Profile.php:799 -msgid "Homepage:" -msgstr "Homepage:" - -#: mod/follow.php:46 -msgid "The contact could not be added." -msgstr "Der Kontakt konnte nicht hinzugefügt werden." - -#: mod/follow.php:85 -msgid "You already added this contact." -msgstr "Du hast den Kontakt bereits hinzugefügt." - -#: mod/follow.php:95 -msgid "Diaspora support isn't enabled. Contact can't be added." -msgstr "Diaspora-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." - -#: mod/follow.php:102 -msgid "OStatus support is disabled. Contact can't be added." -msgstr "OStatus-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden." - -#: mod/follow.php:109 -msgid "The network type couldn't be detected. Contact can't be added." -msgstr "Der Netzwerktyp wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden." - -#: mod/item.php:122 -msgid "Unable to locate original post." -msgstr "Konnte den Originalbeitrag nicht finden." - -#: mod/item.php:322 -msgid "Empty post discarded." -msgstr "Leerer Beitrag wurde verworfen." - -#: mod/item.php:839 -#, php-format -msgid "" -"This message was sent to you by %s, a member of the Friendica social " -"network." -msgstr "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica." - -#: mod/item.php:841 -#, php-format -msgid "You may visit them online at %s" -msgstr "Du kannst sie online unter %s besuchen" - -#: mod/item.php:842 -msgid "" -"Please contact the sender by replying to this post if you do not wish to " -"receive these messages." -msgstr "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest." - -#: mod/item.php:846 -#, php-format -msgid "%s posted an update." -msgstr "%s hat ein Update veröffentlicht." - -#: mod/match.php:49 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Keine Schlüsselwörter zum Abgleichen gefunden. Bitte füge einige Schlüsselwörter zu Deinem Standardprofil hinzu." - -#: mod/match.php:115 src/Content/Pager.php:198 -msgid "first" -msgstr "erste" - -#: mod/match.php:120 src/Content/Pager.php:258 -msgid "next" -msgstr "nächste" - -#: mod/match.php:135 -msgid "Profile Match" -msgstr "Profilübereinstimmungen" - -#: mod/network.php:192 src/Model/Group.php:434 -msgid "add" -msgstr "hinzufügen" - -#: mod/network.php:572 -#, php-format -msgid "" -"Warning: This group contains %s member from a network that doesn't allow non" -" public messages." -msgid_plural "" -"Warning: This group contains %s members from a network that doesn't allow " -"non public messages." -msgstr[0] "Warnung: Diese Gruppe beinhaltet %s Person aus einem Netzwerk das keine nicht öffentlichen Beiträge empfangen kann." -msgstr[1] "Warnung: Diese Gruppe beinhaltet %s Personen aus Netzwerken, die keine nicht-öffentlichen Beiträge empfangen können." - -#: mod/network.php:575 -msgid "Messages in this group won't be send to these receivers." -msgstr "Beiträge in dieser Gruppe werden deshalb nicht an diese Personen zugestellt werden." - -#: mod/network.php:642 -msgid "No such group" -msgstr "Es gibt keine solche Gruppe" - -#: mod/network.php:663 src/Module/Group.php:277 -msgid "Group is empty" -msgstr "Gruppe ist leer" - -#: mod/network.php:667 -#, php-format -msgid "Group: %s" -msgstr "Gruppe: %s" - -#: mod/network.php:693 -msgid "Private messages to this person are at risk of public disclosure." -msgstr "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen." - -#: mod/network.php:696 -msgid "Invalid contact." -msgstr "Ungültiger Kontakt." - -#: mod/network.php:975 -msgid "Commented Order" -msgstr "Neueste Kommentare" - -#: mod/network.php:978 -msgid "Sort by Comment Date" -msgstr "Nach Kommentardatum sortieren" - -#: mod/network.php:983 -msgid "Posted Order" -msgstr "Neueste Beiträge" - -#: mod/network.php:986 -msgid "Sort by Post Date" -msgstr "Nach Beitragsdatum sortieren" - -#: mod/network.php:993 mod/profiles.php:579 -#: src/Core/NotificationsManager.php:158 -msgid "Personal" -msgstr "Persönlich" - -#: mod/network.php:996 -msgid "Posts that mention or involve you" -msgstr "Beiträge, in denen es um dich geht" - -#: mod/network.php:1003 -msgid "New" -msgstr "Neue" - -#: mod/network.php:1006 -msgid "Activity Stream - by date" -msgstr "Aktivitäten-Stream - nach Datum" - -#: mod/network.php:1014 -msgid "Shared Links" -msgstr "Geteilte Links" - -#: mod/network.php:1017 -msgid "Interesting Links" -msgstr "Interessante Links" - -#: mod/network.php:1024 -msgid "Starred" -msgstr "Markierte" - -#: mod/network.php:1027 -msgid "Favourite Posts" -msgstr "Favorisierte Beiträge" - #: mod/profiles.php:62 msgid "Profile deleted." msgstr "Profil gelöscht." @@ -5336,6 +2868,10 @@ msgstr "Webseite" msgid "Interests" msgstr "Interessen" +#: mod/profiles.php:382 src/Module/Admin/Blocklist/Contact.php:72 +msgid "Address" +msgstr "Adresse" + #: mod/profiles.php:389 mod/profiles.php:574 msgid "Location" msgstr "Wohnort" @@ -5376,7 +2912,7 @@ msgstr "Dieses Profil anzeigen" msgid "View all profiles" msgstr "Alle Profile anzeigen" -#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:419 +#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:415 msgid "Edit visibility" msgstr "Sichtbarkeit bearbeiten" @@ -5428,7 +2964,7 @@ msgstr "Dein Geschlecht:" msgid " Marital Status:" msgstr " Beziehungsstatus:" -#: mod/profiles.php:586 src/Model/Profile.php:795 +#: mod/profiles.php:586 src/Model/Profile.php:789 msgid "Sexual Preference:" msgstr "Sexuelle Vorlieben:" @@ -5508,11 +3044,11 @@ msgstr "Die XMPP Adresse wird an deine Kontakte verteilt werden, so dass sie auc msgid "Homepage URL:" msgstr "Adresse der Homepage:" -#: mod/profiles.php:613 src/Model/Profile.php:803 +#: mod/profiles.php:613 src/Model/Profile.php:797 msgid "Hometown:" msgstr "Heimatort:" -#: mod/profiles.php:614 src/Model/Profile.php:811 +#: mod/profiles.php:614 src/Model/Profile.php:805 msgid "Political Views:" msgstr "Politische Ansichten:" @@ -5536,11 +3072,11 @@ msgstr "Private Schlüsselwörter:" msgid "(Used for searching profiles, never shown to others)" msgstr "(Wird für die Suche nach Profilen verwendet und niemals veröffentlicht)" -#: mod/profiles.php:618 src/Model/Profile.php:827 +#: mod/profiles.php:618 src/Model/Profile.php:821 msgid "Likes:" msgstr "Likes:" -#: mod/profiles.php:619 src/Model/Profile.php:831 +#: mod/profiles.php:619 src/Model/Profile.php:825 msgid "Dislikes:" msgstr "Dislikes:" @@ -5580,11 +3116,11 @@ msgstr "Schule/Ausbildung" msgid "Contact information and Social Networks" msgstr "Kontaktinformationen und Soziale Netzwerke" -#: mod/profiles.php:659 src/Model/Profile.php:415 +#: mod/profiles.php:659 src/Model/Profile.php:411 msgid "Profile Image" msgstr "Profilbild" -#: mod/profiles.php:661 src/Model/Profile.php:418 +#: mod/profiles.php:661 src/Model/Profile.php:414 msgid "visible to everybody" msgstr "sichtbar für jeden" @@ -5592,204 +3128,391 @@ msgstr "sichtbar für jeden" msgid "Edit/Manage Profiles" msgstr "Bearbeite/Verwalte Profile" -#: mod/profiles.php:669 src/Model/Profile.php:405 src/Model/Profile.php:427 +#: mod/profiles.php:669 src/Model/Profile.php:401 src/Model/Profile.php:423 msgid "Change profile photo" msgstr "Profilbild ändern" -#: mod/profiles.php:670 src/Model/Profile.php:406 +#: mod/profiles.php:670 src/Model/Profile.php:402 msgid "Create New Profile" msgstr "Neues Profil anlegen" -#: mod/settings.php:63 +#: mod/profile_photo.php:58 +msgid "Image uploaded but image cropping failed." +msgstr "Bild hochgeladen, aber das Zuschneiden schlug fehl." + +#: mod/profile_photo.php:88 mod/profile_photo.php:97 mod/profile_photo.php:106 +#: mod/profile_photo.php:318 +#, php-format +msgid "Image size reduction [%s] failed." +msgstr "Verkleinern der Bildgröße von [%s] scheiterte." + +#: mod/profile_photo.php:125 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird." + +#: mod/profile_photo.php:133 +msgid "Unable to process image" +msgstr "Bild konnte nicht verarbeitet werden" + +#: mod/profile_photo.php:251 +msgid "Upload File:" +msgstr "Datei hochladen:" + +#: mod/profile_photo.php:252 +msgid "Select a profile:" +msgstr "Profil auswählen:" + +#: mod/profile_photo.php:257 +msgid "or" +msgstr "oder" + +#: mod/profile_photo.php:258 +msgid "skip this step" +msgstr "diesen Schritt überspringen" + +#: mod/profile_photo.php:258 +msgid "select a photo from your photo albums" +msgstr "wähle ein Foto aus deinen Fotoalben" + +#: mod/profile_photo.php:271 +msgid "Crop Image" +msgstr "Bild zurechtschneiden" + +#: mod/profile_photo.php:272 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann." + +#: mod/profile_photo.php:274 +msgid "Done Editing" +msgstr "Bearbeitung abgeschlossen" + +#: mod/profile_photo.php:308 +msgid "Image uploaded successfully." +msgstr "Bild erfolgreich hochgeladen." + +#: mod/profperm.php:30 +msgid "Permission denied" +msgstr "Zugriff verweigert" + +#: mod/profperm.php:36 mod/profperm.php:69 +msgid "Invalid profile identifier." +msgstr "Ungültiger Profil-Bezeichner." + +#: mod/profperm.php:115 +msgid "Profile Visibility Editor" +msgstr "Editor für die Profil-Sichtbarkeit" + +#: mod/profperm.php:119 src/Module/Group.php:321 +msgid "Click on a contact to add or remove." +msgstr "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen" + +#: mod/profperm.php:128 +msgid "Visible To" +msgstr "Sichtbar für" + +#: mod/profperm.php:144 +msgid "All Contacts (with secure profile access)" +msgstr "Alle Kontakte (mit gesichertem Profilzugriff)" + +#: mod/regmod.php:53 +msgid "Account approved." +msgstr "Konto freigegeben." + +#: mod/regmod.php:77 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registrierung für %s wurde zurückgezogen" + +#: mod/regmod.php:84 +msgid "Please login." +msgstr "Bitte melde dich an." + +#: mod/removeme.php:46 +msgid "User deleted their account" +msgstr "Gelöschter Nutzeraccount" + +#: mod/removeme.php:47 +msgid "" +"On your Friendica node an user deleted their account. Please ensure that " +"their data is removed from the backups." +msgstr "Ein Nutzer deiner Friendica-Instanz hat seinen Account gelöscht. Bitte stelle sicher, dass dessen Daten aus deinen Backups entfernt werden." + +#: mod/removeme.php:48 +#, php-format +msgid "The user id is %d" +msgstr "Die ID des Users lautet %d" + +#: mod/removeme.php:84 mod/removeme.php:87 +msgid "Remove My Account" +msgstr "Konto löschen" + +#: mod/removeme.php:85 +msgid "" +"This will completely remove your account. Once this has been done it is not " +"recoverable." +msgstr "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen." + +#: mod/removeme.php:86 +msgid "Please enter your password for verification:" +msgstr "Bitte gib dein Passwort zur Verifikation ein:" + +#: mod/repair_ostatus.php:21 +msgid "Resubscribing to OStatus contacts" +msgstr "Erneuern der OStatus-Abonements" + +#: mod/repair_ostatus.php:37 +msgid "Error" +msgstr "Fehler" + +#: mod/search.php:101 +msgid "Only logged in users are permitted to perform a search." +msgstr "Nur eingeloggten Benutzern ist das Suchen gestattet." + +#: mod/search.php:123 +msgid "Only one search per minute is permitted for not logged in users." +msgstr "Es ist nur eine Suchanfrage pro Minute für nicht eingeloggte Benutzer gestattet." + +#: mod/search.php:143 src/Content/Nav.php:197 src/Content/Text/HTML.php:900 +msgid "Search" +msgstr "Suche" + +#: mod/search.php:229 +#, php-format +msgid "Items tagged with: %s" +msgstr "Beiträge, die mit %s getaggt sind" + +#: mod/search.php:231 src/Module/Contact.php:819 +#, php-format +msgid "Results for: %s" +msgstr "Ergebnisse für: %s" + +#: mod/settings.php:63 src/Module/BaseSettingsModule.php:24 msgid "Account" msgstr "Nutzerkonto" -#: mod/settings.php:71 src/Content/Nav.php:266 src/Model/Profile.php:398 +#: mod/settings.php:71 src/Module/BaseSettingsModule.php:31 +#: src/Module/Settings/TwoFactor/Index.php:83 +#: src/Module/TwoFactor/Verify.php:60 +msgid "Two-factor authentication" +msgstr "Zwei-Faktor Authentifizierung" + +#: mod/settings.php:78 src/Content/Nav.php:265 src/Model/Profile.php:394 +#: src/Module/BaseSettingsModule.php:38 msgid "Profiles" msgstr "Profile" -#: mod/settings.php:87 +#: mod/settings.php:86 src/Module/BaseAdminModule.php:84 +#: src/Module/BaseSettingsModule.php:46 +msgid "Additional features" +msgstr "Zusätzliche Features" + +#: mod/settings.php:94 src/Module/BaseSettingsModule.php:54 msgid "Display" msgstr "Anzeige" -#: mod/settings.php:94 mod/settings.php:832 +#: mod/settings.php:101 mod/settings.php:839 +#: src/Module/BaseSettingsModule.php:61 msgid "Social Networks" msgstr "Soziale Netzwerke" -#: mod/settings.php:108 src/Content/Nav.php:261 +#: mod/settings.php:108 src/Module/Admin/Addons/Details.php:100 +#: src/Module/Admin/Addons/Index.php:51 src/Module/BaseAdminModule.php:82 +#: src/Module/BaseSettingsModule.php:68 +msgid "Addons" +msgstr "Addons" + +#: mod/settings.php:115 src/Content/Nav.php:260 +#: src/Module/BaseSettingsModule.php:75 msgid "Delegations" msgstr "Delegationen" -#: mod/settings.php:115 +#: mod/settings.php:122 src/Module/BaseSettingsModule.php:82 msgid "Connected apps" msgstr "Verbundene Programme" -#: mod/settings.php:129 +#: mod/settings.php:129 mod/uexport.php:52 +#: src/Module/BaseSettingsModule.php:89 +msgid "Export personal data" +msgstr "Persönliche Daten exportieren" + +#: mod/settings.php:136 src/Module/BaseSettingsModule.php:96 msgid "Remove account" msgstr "Konto löschen" -#: mod/settings.php:181 +#: mod/settings.php:188 msgid "Missing some important data!" msgstr "Wichtige Daten fehlen!" -#: mod/settings.php:183 mod/settings.php:693 src/Module/Contact.php:823 +#: mod/settings.php:190 mod/settings.php:700 src/Module/Contact.php:826 msgid "Update" msgstr "Aktualisierungen" -#: mod/settings.php:292 +#: mod/settings.php:299 msgid "Failed to connect with email account using the settings provided." msgstr "Verbindung zum E-Mail-Konto mit den angegebenen Einstellungen nicht möglich." -#: mod/settings.php:297 +#: mod/settings.php:304 msgid "Email settings updated." msgstr "E-Mail Einstellungen bearbeitet." -#: mod/settings.php:313 +#: mod/settings.php:320 msgid "Features updated" msgstr "Features aktualisiert" -#: mod/settings.php:386 +#: mod/settings.php:393 msgid "Relocate message has been send to your contacts" msgstr "Die Umzugsbenachrichtigung wurde an Deine Kontakte versendet." -#: mod/settings.php:398 +#: mod/settings.php:405 msgid "Passwords do not match." msgstr "Die Passwörter stimmen nicht überein." -#: mod/settings.php:406 src/Core/Console/NewPassword.php:80 +#: mod/settings.php:413 src/Console/NewPassword.php:80 msgid "Password update failed. Please try again." msgstr "Aktualisierung des Passworts gescheitert, bitte versuche es noch einmal." -#: mod/settings.php:409 src/Core/Console/NewPassword.php:83 +#: mod/settings.php:416 src/Console/NewPassword.php:83 msgid "Password changed." msgstr "Passwort geändert." -#: mod/settings.php:412 +#: mod/settings.php:419 msgid "Password unchanged." msgstr "Passwort unverändert." -#: mod/settings.php:493 +#: mod/settings.php:500 msgid " Please use a shorter name." msgstr " Bitte verwende einen kürzeren Namen." -#: mod/settings.php:496 +#: mod/settings.php:503 msgid " Name too short." msgstr " Name ist zu kurz." -#: mod/settings.php:503 +#: mod/settings.php:510 src/Module/Settings/TwoFactor/Index.php:66 msgid "Wrong Password" msgstr "Falsches Passwort" -#: mod/settings.php:508 +#: mod/settings.php:515 msgid "Invalid email." msgstr "Ungültige E-Mail-Adresse." -#: mod/settings.php:514 +#: mod/settings.php:521 msgid "Cannot change to that email." msgstr "Ändern der E-Mail nicht möglich. " -#: mod/settings.php:564 +#: mod/settings.php:571 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "Für das private Forum sind keine Zugriffsrechte eingestellt. Die voreingestellte Gruppe für neue Kontakte wird benutzt." -#: mod/settings.php:567 +#: mod/settings.php:574 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "Für das private Forum sind keine Zugriffsrechte eingestellt, und es gibt keine voreingestellte Gruppe für neue Kontakte." -#: mod/settings.php:607 +#: mod/settings.php:614 msgid "Settings updated." msgstr "Einstellungen aktualisiert." -#: mod/settings.php:666 mod/settings.php:692 mod/settings.php:726 +#: mod/settings.php:673 mod/settings.php:699 mod/settings.php:733 msgid "Add application" msgstr "Programm hinzufügen" -#: mod/settings.php:670 mod/settings.php:696 +#: mod/settings.php:677 mod/settings.php:703 msgid "Consumer Key" msgstr "Consumer Key" -#: mod/settings.php:671 mod/settings.php:697 +#: mod/settings.php:678 mod/settings.php:704 msgid "Consumer Secret" msgstr "Consumer Secret" -#: mod/settings.php:672 mod/settings.php:698 +#: mod/settings.php:679 mod/settings.php:705 msgid "Redirect" msgstr "Umleiten" -#: mod/settings.php:673 mod/settings.php:699 +#: mod/settings.php:680 mod/settings.php:706 msgid "Icon url" msgstr "Icon URL" -#: mod/settings.php:684 +#: mod/settings.php:691 msgid "You can't edit this application." msgstr "Du kannst dieses Programm nicht bearbeiten." -#: mod/settings.php:725 +#: mod/settings.php:732 msgid "Connected Apps" msgstr "Verbundene Programme" -#: mod/settings.php:727 src/Object/Post.php:167 src/Object/Post.php:169 +#: mod/settings.php:734 src/Object/Post.php:167 src/Object/Post.php:169 msgid "Edit" msgstr "Bearbeiten" -#: mod/settings.php:729 +#: mod/settings.php:736 msgid "Client key starts with" msgstr "Anwenderschlüssel beginnt mit" -#: mod/settings.php:730 +#: mod/settings.php:737 msgid "No name" msgstr "Kein Name" -#: mod/settings.php:731 +#: mod/settings.php:738 msgid "Remove authorization" msgstr "Autorisierung entziehen" -#: mod/settings.php:742 +#: mod/settings.php:749 msgid "No Addon settings configured" msgstr "Keine Addon-Einstellungen konfiguriert" -#: mod/settings.php:751 +#: mod/settings.php:758 msgid "Addon Settings" msgstr "Addon Einstellungen" -#: mod/settings.php:772 +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "Off" +msgstr "Aus" + +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "On" +msgstr "An" + +#: mod/settings.php:779 msgid "Additional Features" msgstr "Zusätzliche Features" -#: mod/settings.php:795 src/Content/ContactSelector.php:87 +#: mod/settings.php:802 src/Content/ContactSelector.php:87 msgid "Diaspora" msgstr "Diaspora" -#: mod/settings.php:795 mod/settings.php:796 +#: mod/settings.php:802 mod/settings.php:803 msgid "enabled" msgstr "eingeschaltet" -#: mod/settings.php:795 mod/settings.php:796 +#: mod/settings.php:802 mod/settings.php:803 msgid "disabled" msgstr "ausgeschaltet" -#: mod/settings.php:795 mod/settings.php:796 +#: mod/settings.php:802 mod/settings.php:803 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Eingebaute Unterstützung für Verbindungen zu %s ist %s" -#: mod/settings.php:796 +#: mod/settings.php:803 msgid "GNU Social (OStatus)" msgstr "GNU Social (OStatus)" -#: mod/settings.php:827 +#: mod/settings.php:834 msgid "Email access is disabled on this site." msgstr "Zugriff auf E-Mails für diese Seite deaktiviert." -#: mod/settings.php:837 +#: mod/settings.php:844 msgid "General Social Media Settings" msgstr "Allgemeine Einstellungen zu Sozialen Medien" -#: mod/settings.php:838 +#: mod/settings.php:845 msgid "Disable Content Warning" msgstr "Inhaltswarnung ausschalten" -#: mod/settings.php:838 +#: mod/settings.php:845 msgid "" "Users on networks like Mastodon or Pleroma are able to set a content warning" " field which collapse their post by default. This disables the automatic " @@ -5797,316 +3520,352 @@ msgid "" "any other content filtering you eventually set up." msgstr "Benutzer in Netzwerken wie Mastodon oder Pleroma können ein Inhaltswarnfeld einstellen, das ihren Beitrag standardmäßig ausblendet. Dies deaktiviert das automatische Zusammenklappen und setzt die Inhaltswarnung als Beitragstitel. Beeinflusst keine anderen Inhaltsfilterungen, die du eventuell eingerichtet hast." -#: mod/settings.php:839 +#: mod/settings.php:846 msgid "Disable intelligent shortening" msgstr "Intelligentes Link-Kürzen ausschalten" -#: mod/settings.php:839 +#: mod/settings.php:846 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the" " original friendica post." msgstr "Normalerweise versucht das System, den besten Link zu finden, um ihn zu gekürzten Postings hinzuzufügen. Wird diese Option ausgewählt, wird stets ein Link auf die originale Friendica-Nachricht beigefügt." -#: mod/settings.php:840 +#: mod/settings.php:847 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "Automatisch allen GNU Social (OStatus) Followern/Erwähnern folgen" -#: mod/settings.php:840 +#: mod/settings.php:847 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "Wenn du eine Nachricht eines unbekannten OStatus-Nutzers bekommst, entscheidet diese Option, wie diese behandelt werden soll. Ist die Option aktiviert, wird ein neuer Kontakt für den Verfasser erstellt,." -#: mod/settings.php:841 +#: mod/settings.php:848 msgid "Default group for OStatus contacts" msgstr "Voreingestellte Gruppe für OStatus-Kontakte" -#: mod/settings.php:842 +#: mod/settings.php:849 msgid "Your legacy GNU Social account" msgstr "Dein alter GNU Social-Account" -#: mod/settings.php:842 +#: mod/settings.php:849 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "Wenn du deinen alten GNU Social/Statusnet-Account-Namen hier angibst (Format name@domain.tld), werden deine Kontakte automatisch hinzugefügt. Dieses Feld wird geleert, wenn die Kontakte hinzugefügt wurden." -#: mod/settings.php:845 +#: mod/settings.php:852 msgid "Repair OStatus subscriptions" msgstr "OStatus-Abonnements reparieren" -#: mod/settings.php:849 +#: mod/settings.php:856 msgid "Email/Mailbox Setup" msgstr "E-Mail/Postfach-Einstellungen" -#: mod/settings.php:850 +#: mod/settings.php:857 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Wenn du mit E-Mail-Kontakten über diesen Service kommunizieren möchtest (optional), gib bitte die Einstellungen für dein Postfach an." -#: mod/settings.php:851 +#: mod/settings.php:858 msgid "Last successful email check:" msgstr "Letzter erfolgreicher E-Mail-Check" -#: mod/settings.php:853 +#: mod/settings.php:860 msgid "IMAP server name:" msgstr "IMAP-Server-Name:" -#: mod/settings.php:854 +#: mod/settings.php:861 msgid "IMAP port:" msgstr "IMAP-Port:" -#: mod/settings.php:855 +#: mod/settings.php:862 msgid "Security:" msgstr "Sicherheit:" -#: mod/settings.php:855 mod/settings.php:860 +#: mod/settings.php:862 mod/settings.php:867 msgid "None" msgstr "Keine" -#: mod/settings.php:856 +#: mod/settings.php:863 msgid "Email login name:" msgstr "E-Mail-Login-Name:" -#: mod/settings.php:857 +#: mod/settings.php:864 msgid "Email password:" msgstr "E-Mail-Passwort:" -#: mod/settings.php:858 +#: mod/settings.php:865 msgid "Reply-to address:" msgstr "Reply-to Adresse:" -#: mod/settings.php:859 +#: mod/settings.php:866 msgid "Send public posts to all email contacts:" msgstr "Sende öffentliche Beiträge an alle E-Mail-Kontakte:" -#: mod/settings.php:860 +#: mod/settings.php:867 msgid "Action after import:" msgstr "Aktion nach Import:" -#: mod/settings.php:860 src/Content/Nav.php:249 +#: mod/settings.php:867 src/Content/Nav.php:248 msgid "Mark as seen" msgstr "Als gelesen markieren" -#: mod/settings.php:860 +#: mod/settings.php:867 msgid "Move to folder" msgstr "In einen Ordner verschieben" -#: mod/settings.php:861 +#: mod/settings.php:868 msgid "Move to folder:" msgstr "In diesen Ordner verschieben:" -#: mod/settings.php:893 +#: mod/settings.php:892 src/Module/Admin/Site.php:435 +msgid "No special theme for mobile devices" +msgstr "Kein spezielles Theme für mobile Geräte verwenden." + +#: mod/settings.php:900 #, php-format msgid "%s - (Unsupported)" msgstr "%s - (Nicht unterstützt)" -#: mod/settings.php:895 +#: mod/settings.php:902 src/Module/Admin/Site.php:452 #, php-format msgid "%s - (Experimental)" msgstr "%s - (Experimentell)" -#: mod/settings.php:923 src/Core/L10n.php:371 src/Model/Event.php:395 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:395 msgid "Sunday" msgstr "Sonntag" -#: mod/settings.php:923 src/Core/L10n.php:371 src/Model/Event.php:396 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:396 msgid "Monday" msgstr "Montag" -#: mod/settings.php:939 +#: mod/settings.php:946 msgid "Display Settings" msgstr "Anzeige-Einstellungen" -#: mod/settings.php:945 +#: mod/settings.php:952 msgid "Display Theme:" msgstr "Theme:" -#: mod/settings.php:946 +#: mod/settings.php:953 msgid "Mobile Theme:" msgstr "Mobiles Theme" -#: mod/settings.php:947 +#: mod/settings.php:954 msgid "Suppress warning of insecure networks" msgstr "Warnung vor unsicheren Netzwerken unterdrücken" -#: mod/settings.php:947 +#: mod/settings.php:954 msgid "" "Should the system suppress the warning that the current group contains " "members of networks that can't receive non public postings." msgstr "Soll das System Warnungen unterdrücken, die angezeigt werden, weil von dir eingerichtete Kontakt-Gruppen Accounts aus Netzwerken beinhalten, die keine nicht öffentlichen Beiträge empfangen können." -#: mod/settings.php:948 +#: mod/settings.php:955 msgid "Update browser every xx seconds" msgstr "Browser alle xx Sekunden aktualisieren" -#: mod/settings.php:948 +#: mod/settings.php:955 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "Minimum sind 10 Sekunden. Gib -1 ein, um abzuschalten." -#: mod/settings.php:949 +#: mod/settings.php:956 msgid "Number of items to display per page:" msgstr "Zahl der Beiträge, die pro Netzwerkseite angezeigt werden sollen: " -#: mod/settings.php:949 mod/settings.php:950 +#: mod/settings.php:956 mod/settings.php:957 msgid "Maximum of 100 items" msgstr "Maximal 100 Beiträge" -#: mod/settings.php:950 +#: mod/settings.php:957 msgid "Number of items to display per page when viewed from mobile device:" msgstr "Zahl der Beiträge, die pro Netzwerkseite auf mobilen Geräten angezeigt werden sollen:" -#: mod/settings.php:951 +#: mod/settings.php:958 msgid "Don't show emoticons" msgstr "Keine Smileys anzeigen" -#: mod/settings.php:952 +#: mod/settings.php:959 msgid "Calendar" msgstr "Kalender" -#: mod/settings.php:953 +#: mod/settings.php:960 msgid "Beginning of week:" msgstr "Wochenbeginn:" -#: mod/settings.php:954 +#: mod/settings.php:961 msgid "Don't show notices" msgstr "Info-Popups nicht anzeigen" -#: mod/settings.php:955 +#: mod/settings.php:962 msgid "Infinite scroll" msgstr "Endloses Scrollen" -#: mod/settings.php:956 +#: mod/settings.php:963 msgid "Automatic updates only at the top of the network page" msgstr "Automatische Updates nur, wenn du oben auf der Netzwerkseite bist." -#: mod/settings.php:956 +#: mod/settings.php:963 msgid "" "When disabled, the network page is updated all the time, which could be " "confusing while reading." msgstr "Wenn dies deaktiviert ist, wird die Netzwerk-Seite aktualisiert, wann immer neue Beiträge eintreffen, egal an welcher Stelle gerade gelesen wird." -#: mod/settings.php:957 +#: mod/settings.php:964 msgid "Bandwidth Saver Mode" msgstr "Bandbreiten-Spar-Modus" -#: mod/settings.php:957 +#: mod/settings.php:964 msgid "" "When enabled, embedded content is not displayed on automatic updates, they " "only show on page reload." msgstr "Wenn aktiviert, wird der eingebettete Inhalt nicht automatisch aktualisiert. In diesem Fall Seite bitte neu laden." -#: mod/settings.php:958 +#: mod/settings.php:965 msgid "Smart Threading" msgstr "Intelligentes Threading" -#: mod/settings.php:958 +#: mod/settings.php:965 msgid "" "When enabled, suppress extraneous thread indentation while keeping it where " "it matters. Only works if threading is available and enabled." msgstr "Ist dies aktiviert, werden Einrückungen in Unterhaltungen unterdrückt, wo sie nicht benötigt werden. Werden sie benötigt, werden die Threads weiterhin eingerückt." -#: mod/settings.php:960 +#: mod/settings.php:967 msgid "General Theme Settings" msgstr "Allgemeine Theme-Einstellungen" -#: mod/settings.php:961 +#: mod/settings.php:968 msgid "Custom Theme Settings" msgstr "Benutzerdefinierte Theme-Einstellungen" -#: mod/settings.php:962 +#: mod/settings.php:969 msgid "Content Settings" msgstr "Einstellungen zum Inhalt" -#: mod/settings.php:963 view/theme/duepuntozero/config.php:74 -#: view/theme/frio/config.php:123 view/theme/quattro/config.php:76 -#: view/theme/vier/config.php:122 +#: mod/settings.php:970 view/theme/duepuntozero/config.php:73 +#: view/theme/frio/config.php:122 view/theme/quattro/config.php:75 +#: view/theme/vier/config.php:121 msgid "Theme settings" msgstr "Theme-Einstellungen" -#: mod/settings.php:977 +#: mod/settings.php:984 msgid "Unable to find your profile. Please contact your admin." msgstr "Konnte dein Profil nicht finden. Bitte kontaktiere den Admin." -#: mod/settings.php:1016 +#: mod/settings.php:1023 msgid "Account Types" msgstr "Kontenarten" -#: mod/settings.php:1017 +#: mod/settings.php:1024 msgid "Personal Page Subtypes" msgstr "Unterarten der persönlichen Seite" -#: mod/settings.php:1018 +#: mod/settings.php:1025 msgid "Community Forum Subtypes" msgstr "Unterarten des Gemeinschaftsforums" -#: mod/settings.php:1026 +#: mod/settings.php:1032 src/Module/Admin/Users.php:229 +msgid "Personal Page" +msgstr "Persönliche Seite" + +#: mod/settings.php:1033 msgid "Account for a personal profile." msgstr "Konto für ein persönliches Profil." -#: mod/settings.php:1030 +#: mod/settings.php:1036 src/Module/Admin/Users.php:230 +msgid "Organisation Page" +msgstr "Organisationsseite" + +#: mod/settings.php:1037 msgid "" "Account for an organisation that automatically approves contact requests as " "\"Followers\"." msgstr "Konto für eine Organisation, das Kontaktanfragen automatisch als \"Follower\" annimmt." -#: mod/settings.php:1034 +#: mod/settings.php:1040 src/Module/Admin/Users.php:231 +msgid "News Page" +msgstr "Nachrichtenseite" + +#: mod/settings.php:1041 msgid "" "Account for a news reflector that automatically approves contact requests as" " \"Followers\"." msgstr "Konto für einen Feedspiegel, das Kontaktanfragen automatisch als \"Follower\" annimmt." -#: mod/settings.php:1038 +#: mod/settings.php:1044 src/Module/Admin/Users.php:232 +msgid "Community Forum" +msgstr "Gemeinschaftsforum" + +#: mod/settings.php:1045 msgid "Account for community discussions." msgstr "Konto für Diskussionsforen. " -#: mod/settings.php:1042 +#: mod/settings.php:1048 src/Module/Admin/Users.php:222 +msgid "Normal Account Page" +msgstr "Normales Konto" + +#: mod/settings.php:1049 msgid "" "Account for a regular personal profile that requires manual approval of " "\"Friends\" and \"Followers\"." msgstr "Konto für ein normales, persönliches Profil. Kontaktanfragen müssen manuell als \"Friend\" oder \"Follower\" bestätigt werden." -#: mod/settings.php:1046 +#: mod/settings.php:1052 src/Module/Admin/Users.php:223 +msgid "Soapbox Page" +msgstr "Marktschreier-Konto" + +#: mod/settings.php:1053 msgid "" "Account for a public profile that automatically approves contact requests as" " \"Followers\"." msgstr "Konto für ein öffentliches Profil, das Kontaktanfragen automatisch als \"Follower\" annimmt." -#: mod/settings.php:1050 +#: mod/settings.php:1056 src/Module/Admin/Users.php:224 +msgid "Public Forum" +msgstr "Öffentliches Forum" + +#: mod/settings.php:1057 msgid "Automatically approves all contact requests." msgstr "Bestätigt alle Kontaktanfragen automatisch." -#: mod/settings.php:1054 +#: mod/settings.php:1060 src/Module/Admin/Users.php:225 +msgid "Automatic Friend Page" +msgstr "Automatische Freunde-Seite" + +#: mod/settings.php:1061 msgid "" "Account for a popular profile that automatically approves contact requests " "as \"Friends\"." msgstr "Konto für ein gefragtes Profil, das Kontaktanfragen automatisch als \"Friend\" annimmt." -#: mod/settings.php:1057 +#: mod/settings.php:1064 msgid "Private Forum [Experimental]" msgstr "Privates Forum [Versuchsstadium]" -#: mod/settings.php:1058 +#: mod/settings.php:1065 msgid "Requires manual approval of contact requests." msgstr "Kontaktanfragen müssen manuell bestätigt werden." -#: mod/settings.php:1069 +#: mod/settings.php:1076 msgid "OpenID:" msgstr "OpenID:" -#: mod/settings.php:1069 +#: mod/settings.php:1076 msgid "(Optional) Allow this OpenID to login to this account." msgstr "(Optional) Erlaube die Anmeldung für dieses Konto mit dieser OpenID." -#: mod/settings.php:1077 +#: mod/settings.php:1084 msgid "Publish your default profile in your local site directory?" msgstr "Darf dein Standardprofil im Verzeichnis dieses Servers veröffentlicht werden?" -#: mod/settings.php:1077 +#: mod/settings.php:1084 #, php-format msgid "" "Your profile will be published in this node's local " @@ -6114,665 +3873,1470 @@ msgid "" " system settings." msgstr "Dein Profil wird im lokalen Verzeichnis dieses Knotens veröffentlicht. Je nach Systemeinstellungen kann es öffentlich auffindbar sein." -#: mod/settings.php:1083 +#: mod/settings.php:1090 msgid "Publish your default profile in the global social directory?" msgstr "Darf dein Standardprofil im weltweiten Verzeichnis veröffentlicht werden?" -#: mod/settings.php:1083 +#: mod/settings.php:1090 #, php-format msgid "" "Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public." msgstr "Dein Profil wird in den globalen Friendica-Verzeichnissen (z.B. %s) veröffentlicht. Dein Profil wird öffentlich auffindbar sein." -#: mod/settings.php:1090 +#: mod/settings.php:1097 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Liste der Kontakte vor Betrachtern des Standardprofils verbergen?" -#: mod/settings.php:1090 +#: mod/settings.php:1097 msgid "" "Your contact list won't be shown in your default profile page. You can " "decide to show your contact list separately for each additional profile you " "create" msgstr "Die Liste deiner Kontakte wird nicht in deinem Standard-Profil angezeigt werden. Du kannst für jedes weitere Profil diese Entscheidung separat einstellen." -#: mod/settings.php:1094 +#: mod/settings.php:1101 msgid "Hide your profile details from anonymous viewers?" msgstr "Profil-Details vor unbekannten Betrachtern verbergen?" -#: mod/settings.php:1094 +#: mod/settings.php:1101 msgid "" "Anonymous visitors will only see your profile picture, your display name and" " the nickname you are using on your profile page. Your public posts and " "replies will still be accessible by other means." msgstr "Anonyme Besucher deines Profils werden ausschließlich dein Profilbild, deinen Namen sowie deinen Spitznamen sehen. Deine öffentlichen Beiträge und Kommentare werden weiterhin sichtbar sein." -#: mod/settings.php:1098 +#: mod/settings.php:1105 msgid "Allow friends to post to your profile page?" msgstr "Dürfen deine Kontakte auf deine Pinnwand schreiben?" -#: mod/settings.php:1098 +#: mod/settings.php:1105 msgid "" "Your contacts may write posts on your profile wall. These posts will be " "distributed to your contacts" msgstr "Deine Kontakte können Beiträge auf deiner Pinnwand hinterlassen. Diese werden an deine Kontakte verteilt." -#: mod/settings.php:1102 +#: mod/settings.php:1109 msgid "Allow friends to tag your posts?" msgstr "Dürfen deine Kontakte deine Beiträge mit Schlagwörtern versehen?" -#: mod/settings.php:1102 +#: mod/settings.php:1109 msgid "Your contacts can add additional tags to your posts." msgstr "Deine Kontakte dürfen deine Beiträge mit zusätzlichen Schlagworten versehen." -#: mod/settings.php:1106 +#: mod/settings.php:1113 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Dürfen wir dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?" -#: mod/settings.php:1106 +#: mod/settings.php:1113 msgid "" "If you like, Friendica may suggest new members to add you as a contact." msgstr "Wenn du magst, kann Friendica dich neuen Mitgliedern als Kontakt vorschlagen." -#: mod/settings.php:1110 +#: mod/settings.php:1117 msgid "Permit unknown people to send you private mail?" msgstr "Dürfen dir Unbekannte private Nachrichten schicken?" -#: mod/settings.php:1110 +#: mod/settings.php:1117 msgid "" "Friendica network users may send you private messages even if they are not " "in your contact list." msgstr "Nutzer des Friendica Netzwerks können dir private Nachrichten senden, selbst wenn sie nicht in deine Kontaktliste sind." -#: mod/settings.php:1114 +#: mod/settings.php:1121 msgid "Profile is not published." msgstr "Profil ist nicht veröffentlicht." -#: mod/settings.php:1120 +#: mod/settings.php:1127 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "Die Adresse deines Profils lautet '%s' oder '%s'." -#: mod/settings.php:1127 +#: mod/settings.php:1134 msgid "Automatically expire posts after this many days:" msgstr "Beiträge verfallen automatisch nach dieser Anzahl von Tagen:" -#: mod/settings.php:1127 +#: mod/settings.php:1134 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Wenn leer, verfallen Beiträge nie automatisch. Verfallene Beiträge werden gelöscht." -#: mod/settings.php:1128 +#: mod/settings.php:1135 msgid "Advanced expiration settings" msgstr "Erweiterte Verfallseinstellungen" -#: mod/settings.php:1129 +#: mod/settings.php:1136 msgid "Advanced Expiration" msgstr "Erweitertes Verfallen" -#: mod/settings.php:1130 +#: mod/settings.php:1137 msgid "Expire posts:" msgstr "Beiträge verfallen lassen:" -#: mod/settings.php:1131 +#: mod/settings.php:1138 msgid "Expire personal notes:" msgstr "Persönliche Notizen verfallen lassen:" -#: mod/settings.php:1132 +#: mod/settings.php:1139 msgid "Expire starred posts:" msgstr "Markierte Beiträge verfallen lassen:" -#: mod/settings.php:1133 +#: mod/settings.php:1140 msgid "Expire photos:" msgstr "Fotos verfallen lassen:" -#: mod/settings.php:1134 +#: mod/settings.php:1141 msgid "Only expire posts by others:" msgstr "Nur Beiträge anderer verfallen:" -#: mod/settings.php:1164 +#: mod/settings.php:1171 msgid "Account Settings" msgstr "Kontoeinstellungen" -#: mod/settings.php:1172 +#: mod/settings.php:1179 msgid "Password Settings" msgstr "Passwort-Einstellungen" -#: mod/settings.php:1173 src/Module/Register.php:130 +#: mod/settings.php:1180 src/Module/Register.php:130 msgid "New Password:" msgstr "Neues Passwort:" -#: mod/settings.php:1173 +#: mod/settings.php:1180 msgid "" "Allowed characters are a-z, A-Z, 0-9 and special characters except white " "spaces, accentuated letters and colon (:)." msgstr "Erlaubte Zeichen sind a-z, A-Z, 0-9 und Sonderzeichen, abgesehen von Leerzeichen, Doppelpunkten (:) und akzentuierten Buchstaben." -#: mod/settings.php:1174 src/Module/Register.php:131 +#: mod/settings.php:1181 src/Module/Register.php:131 msgid "Confirm:" msgstr "Bestätigen:" -#: mod/settings.php:1174 +#: mod/settings.php:1181 msgid "Leave password fields blank unless changing" msgstr "Lass die Passwort-Felder leer, außer du willst das Passwort ändern" -#: mod/settings.php:1175 +#: mod/settings.php:1182 msgid "Current Password:" msgstr "Aktuelles Passwort:" -#: mod/settings.php:1175 mod/settings.php:1176 +#: mod/settings.php:1182 mod/settings.php:1183 msgid "Your current password to confirm the changes" msgstr "Dein aktuelles Passwort um die Änderungen zu bestätigen" -#: mod/settings.php:1176 +#: mod/settings.php:1183 msgid "Password:" msgstr "Passwort:" -#: mod/settings.php:1180 +#: mod/settings.php:1187 msgid "Basic Settings" msgstr "Grundeinstellungen" -#: mod/settings.php:1181 src/Model/Profile.php:751 +#: mod/settings.php:1188 src/Model/Profile.php:745 msgid "Full Name:" msgstr "Kompletter Name:" -#: mod/settings.php:1182 +#: mod/settings.php:1189 msgid "Email Address:" msgstr "E-Mail-Adresse:" -#: mod/settings.php:1183 +#: mod/settings.php:1190 msgid "Your Timezone:" msgstr "Deine Zeitzone:" -#: mod/settings.php:1184 +#: mod/settings.php:1191 msgid "Your Language:" msgstr "Deine Sprache:" -#: mod/settings.php:1184 +#: mod/settings.php:1191 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "Wähle die Sprache, in der wir dir die Friendica-Oberfläche präsentieren sollen und dir E-Mail schicken" -#: mod/settings.php:1185 +#: mod/settings.php:1192 msgid "Default Post Location:" msgstr "Standardstandort:" -#: mod/settings.php:1186 +#: mod/settings.php:1193 msgid "Use Browser Location:" msgstr "Standort des Browsers verwenden:" -#: mod/settings.php:1189 +#: mod/settings.php:1196 msgid "Security and Privacy Settings" msgstr "Sicherheits- und Privatsphäre-Einstellungen" -#: mod/settings.php:1191 +#: mod/settings.php:1198 msgid "Maximum Friend Requests/Day:" msgstr "Maximale Anzahl von Kontaktanfragen/Tag:" -#: mod/settings.php:1191 mod/settings.php:1220 +#: mod/settings.php:1198 mod/settings.php:1227 msgid "(to prevent spam abuse)" msgstr "(um SPAM zu vermeiden)" -#: mod/settings.php:1192 +#: mod/settings.php:1199 msgid "Default Post Permissions" msgstr "Standard-Zugriffsrechte für Beiträge" -#: mod/settings.php:1193 +#: mod/settings.php:1200 msgid "(click to open/close)" msgstr "(klicke zum Öffnen/Schließen)" -#: mod/settings.php:1203 +#: mod/settings.php:1210 msgid "Default Private Post" msgstr "Privater Standardbeitrag" -#: mod/settings.php:1204 +#: mod/settings.php:1211 msgid "Default Public Post" msgstr "Öffentlicher Standardbeitrag" -#: mod/settings.php:1208 +#: mod/settings.php:1215 msgid "Default Permissions for New Posts" msgstr "Standardberechtigungen für neue Beiträge" -#: mod/settings.php:1220 +#: mod/settings.php:1227 msgid "Maximum private messages per day from unknown people:" msgstr "Maximale Anzahl privater Nachrichten von Unbekannten pro Tag:" -#: mod/settings.php:1223 +#: mod/settings.php:1230 msgid "Notification Settings" msgstr "Benachrichtigungseinstellungen" -#: mod/settings.php:1224 +#: mod/settings.php:1231 msgid "Send a notification email when:" msgstr "Benachrichtigungs-E-Mail senden, wenn:" -#: mod/settings.php:1225 +#: mod/settings.php:1232 msgid "You receive an introduction" msgstr "– du eine Kontaktanfrage erhältst" -#: mod/settings.php:1226 +#: mod/settings.php:1233 msgid "Your introductions are confirmed" msgstr "– eine Deiner Kontaktanfragen akzeptiert wurde" -#: mod/settings.php:1227 +#: mod/settings.php:1234 msgid "Someone writes on your profile wall" msgstr "– jemand etwas auf Deine Pinnwand schreibt" -#: mod/settings.php:1228 +#: mod/settings.php:1235 msgid "Someone writes a followup comment" msgstr "– jemand auch einen Kommentar verfasst" -#: mod/settings.php:1229 +#: mod/settings.php:1236 msgid "You receive a private message" msgstr "– du eine private Nachricht erhältst" -#: mod/settings.php:1230 +#: mod/settings.php:1237 msgid "You receive a friend suggestion" msgstr "– du eine Empfehlung erhältst" -#: mod/settings.php:1231 +#: mod/settings.php:1238 msgid "You are tagged in a post" msgstr "– du in einem Beitrag erwähnt wirst" -#: mod/settings.php:1232 +#: mod/settings.php:1239 msgid "You are poked/prodded/etc. in a post" msgstr "– du von jemandem angestupst oder sonstwie behandelt wirst" -#: mod/settings.php:1234 +#: mod/settings.php:1241 msgid "Activate desktop notifications" msgstr "Desktop-Benachrichtigungen einschalten" -#: mod/settings.php:1234 +#: mod/settings.php:1241 msgid "Show desktop popup on new notifications" msgstr "Desktop-Benachrichtigungen einschalten" -#: mod/settings.php:1236 +#: mod/settings.php:1243 msgid "Text-only notification emails" msgstr "Benachrichtigungs-E-Mail als Rein-Text." -#: mod/settings.php:1238 +#: mod/settings.php:1245 msgid "Send text only notification emails, without the html part" msgstr "Sende Benachrichtigungs-E-Mail als Rein-Text - ohne HTML-Teil" -#: mod/settings.php:1240 +#: mod/settings.php:1247 msgid "Show detailled notifications" msgstr "Detaillierte Benachrichtigungen anzeigen" -#: mod/settings.php:1242 +#: mod/settings.php:1249 msgid "" "Per default, notifications are condensed to a single notification per item. " "When enabled every notification is displayed." msgstr "Normalerweise werden alle Benachrichtigungen zu einem Thema in einer einzigen Benachrichtigung zusammengefasst. Wenn diese Option aktiviert ist, wird jede Benachrichtigung einzeln angezeigt." -#: mod/settings.php:1244 +#: mod/settings.php:1251 msgid "Advanced Account/Page Type Settings" msgstr "Erweiterte Konto-/Seitentyp-Einstellungen" -#: mod/settings.php:1245 +#: mod/settings.php:1252 msgid "Change the behaviour of this account for special situations" msgstr "Verhalten dieses Kontos in bestimmten Situationen:" -#: mod/settings.php:1248 +#: mod/settings.php:1255 msgid "Relocate" msgstr "Umziehen" -#: mod/settings.php:1249 +#: mod/settings.php:1256 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "Wenn du dein Profil von einem anderen Server umgezogen hast und einige deiner Kontakte deine Beiträge nicht erhalten, verwende diesen Button." -#: mod/settings.php:1250 +#: mod/settings.php:1257 msgid "Resend relocate message to contacts" msgstr "Umzugsbenachrichtigung erneut an Kontakte senden" -#: view/theme/duepuntozero/config.php:55 src/Model/User.php:685 -msgid "default" -msgstr "Standard" +#: mod/subthread.php:104 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "%1$s folgt %2$s %3$s" -#: view/theme/duepuntozero/config.php:56 -msgid "greenzero" -msgstr "greenzero" +#: mod/suggest.php:28 +msgid "Contact suggestion successfully ignored." +msgstr "Kontaktvorschlag erfolgreich ignoriert." -#: view/theme/duepuntozero/config.php:57 -msgid "purplezero" -msgstr "purplezero" - -#: view/theme/duepuntozero/config.php:58 -msgid "easterbunny" -msgstr "easterbunny" - -#: view/theme/duepuntozero/config.php:59 -msgid "darkzero" -msgstr "darkzero" - -#: view/theme/duepuntozero/config.php:60 -msgid "comix" -msgstr "comix" - -#: view/theme/duepuntozero/config.php:61 -msgid "slackr" -msgstr "slackr" - -#: view/theme/duepuntozero/config.php:75 -msgid "Variations" -msgstr "Variationen" - -#: view/theme/frio/php/Image.php:24 -msgid "Top Banner" -msgstr "Top Banner" - -#: view/theme/frio/php/Image.php:24 +#: mod/suggest.php:52 msgid "" -"Resize image to the width of the screen and show background color below on " -"long pages." -msgstr "Skaliere das Hintergrundbild so, dass es die Breite der Seite einnimmt, und fülle den Rest der Seite mit der Hintergrundfarbe bei langen Seiten." +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal." -#: view/theme/frio/php/Image.php:25 -msgid "Full screen" -msgstr "Vollbildmodus" +#: mod/suggest.php:71 +msgid "Do you really want to delete this suggestion?" +msgstr "Möchtest du wirklich diese Empfehlung löschen?" -#: view/theme/frio/php/Image.php:25 +#: mod/suggest.php:89 mod/suggest.php:109 +msgid "Ignore/Hide" +msgstr "Ignorieren/Verbergen" + +#: mod/suggest.php:119 src/Content/Widget.php:66 view/theme/vier/theme.php:204 +msgid "Friend Suggestions" +msgstr "Kontaktvorschläge" + +#: mod/tagrm.php:31 +msgid "Tag(s) removed" +msgstr "Tag(s) entfernt" + +#: mod/tagrm.php:101 +msgid "Remove Item Tag" +msgstr "Gegenstands-Tag entfernen" + +#: mod/tagrm.php:103 +msgid "Select a tag to remove: " +msgstr "Wähle ein Tag zum Entfernen aus: " + +#: mod/uexport.php:45 +msgid "Export account" +msgstr "Account exportieren" + +#: mod/uexport.php:45 msgid "" -"Resize image to fill entire screen, clipping either the right or the bottom." -msgstr "Skaliere das Bild so, dass es den gesamten Bildschirm füllt. Hierfür wird entweder die Breite oder die Höhe des Bildes automatisch abgeschnitten." +"Export your account info and contacts. Use this to make a backup of your " +"account and/or to move it to another server." +msgstr "Exportiere Deine Account-Informationen und Kontakte. Verwende dies, um ein Backup Deines Accounts anzulegen und/oder damit auf einen anderen Server umzuziehen." -#: view/theme/frio/php/Image.php:26 -msgid "Single row mosaic" -msgstr "Mosaik in einer Zeile" +#: mod/uexport.php:46 +msgid "Export all" +msgstr "Alles exportieren" -#: view/theme/frio/php/Image.php:26 +#: mod/uexport.php:46 msgid "" -"Resize image to repeat it on a single row, either vertical or horizontal." -msgstr "Skaliere das Bild so, dass es in einer einzelnen Reihe, entweder horizontal oder vertikal, wiederholt wird." +"Export your accout info, contacts and all your items as json. Could be a " +"very big file, and could take a lot of time. Use this to make a full backup " +"of your account (photos are not exported)" +msgstr "Exportiere Deine Account-Informationen, Kontakte und alle Einträge als JSON Datei. Dies könnte eine sehr große Datei werden und dementsprechend viel Zeit benötigen. Verwende dies, um ein komplettes Backup Deines Accounts anzulegen (Fotos werden nicht exportiert)." -#: view/theme/frio/php/Image.php:27 -msgid "Mosaic" -msgstr "Mosaik" +#: mod/uimport.php:30 +msgid "User imports on closed servers can only be done by an administrator." +msgstr "Auf geschlossenen Servern können ausschließlich die Administratoren Benutzerkonten importieren." -#: view/theme/frio/php/Image.php:27 -msgid "Repeat image to fill the screen." -msgstr "Wiederhole das Bild, um den Bildschirm zu füllen." - -#: view/theme/frio/theme.php:239 -msgid "Guest" -msgstr "Gast" - -#: view/theme/frio/theme.php:244 -msgid "Visitor" -msgstr "Besucher" - -#: view/theme/frio/theme.php:259 src/Content/Nav.php:153 -#: src/Module/Login.php:321 -msgid "Logout" -msgstr "Abmelden" - -#: view/theme/frio/theme.php:259 src/Content/Nav.php:153 -msgid "End this session" -msgstr "Diese Sitzung beenden" - -#: view/theme/frio/theme.php:262 src/Content/Nav.php:156 -#: src/Model/Profile.php:901 src/Module/Contact.php:652 -#: src/Module/Contact.php:853 -msgid "Status" -msgstr "Status" - -#: view/theme/frio/theme.php:262 src/Content/Nav.php:156 -#: src/Content/Nav.php:242 -msgid "Your posts and conversations" -msgstr "Deine Beiträge und Unterhaltungen" - -#: view/theme/frio/theme.php:263 src/Content/Nav.php:157 -msgid "Your profile page" -msgstr "Deine Profilseite" - -#: view/theme/frio/theme.php:264 src/Content/Nav.php:158 -msgid "Your photos" -msgstr "Deine Fotos" - -#: view/theme/frio/theme.php:265 src/Content/Nav.php:159 -#: src/Model/Profile.php:925 src/Model/Profile.php:928 -msgid "Videos" -msgstr "Videos" - -#: view/theme/frio/theme.php:265 src/Content/Nav.php:159 -msgid "Your videos" -msgstr "Deine Videos" - -#: view/theme/frio/theme.php:266 src/Content/Nav.php:160 -msgid "Your events" -msgstr "Deine Ereignisse" - -#: view/theme/frio/theme.php:269 src/Core/NotificationsManager.php:151 -#: src/Content/Nav.php:239 -msgid "Network" -msgstr "Netzwerk" - -#: view/theme/frio/theme.php:269 src/Content/Nav.php:239 -msgid "Conversations from your friends" -msgstr "Unterhaltungen Deiner Kontakte" - -#: view/theme/frio/theme.php:270 src/Content/Nav.php:226 -#: src/Model/Profile.php:940 src/Model/Profile.php:951 -msgid "Events and Calendar" -msgstr "Ereignisse und Kalender" - -#: view/theme/frio/theme.php:271 src/Content/Nav.php:252 -msgid "Private mail" -msgstr "Private E-Mail" - -#: view/theme/frio/theme.php:272 src/Content/Nav.php:263 -msgid "Account settings" -msgstr "Kontoeinstellungen" - -#: view/theme/frio/theme.php:273 src/Content/Nav.php:269 -msgid "Manage/edit friends and contacts" -msgstr "Freunde und Kontakte verwalten/bearbeiten" - -#: view/theme/frio/config.php:105 -msgid "Custom" -msgstr "Benutzerdefiniert" - -#: view/theme/frio/config.php:117 -msgid "Note" -msgstr "Hinweis" - -#: view/theme/frio/config.php:117 -msgid "Check image permissions if all users are allowed to see the image" -msgstr "Überprüfe, dass alle Benutzer die Berechtigung haben dieses Bild anzusehen" - -#: view/theme/frio/config.php:124 -msgid "Select color scheme" -msgstr "Farbschema auswählen" - -#: view/theme/frio/config.php:125 -msgid "Copy or paste schemestring" -msgstr "Farbschema kopieren oder einfügen" - -#: view/theme/frio/config.php:125 +#: mod/uimport.php:39 src/Module/Register.php:59 msgid "" -"You can copy this string to share your theme with others. Pasting here " -"applies the schemestring" -msgstr "Du kannst den String mit den Farbschema Informationen mit anderen Teilen. Wenn du einen neuen Farbschema-String hier einfügst wird er für deine Einstellungen übernommen." +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal." -#: view/theme/frio/config.php:126 -msgid "Navigation bar background color" -msgstr "Hintergrundfarbe der Navigationsleiste" +#: mod/uimport.php:54 src/Module/Register.php:141 +msgid "Import" +msgstr "Import" -#: view/theme/frio/config.php:127 -msgid "Navigation bar icon color " -msgstr "Icon Farbe in der Navigationsleiste" +#: mod/uimport.php:56 +msgid "Move account" +msgstr "Account umziehen" -#: view/theme/frio/config.php:128 -msgid "Link color" -msgstr "Linkfarbe" +#: mod/uimport.php:57 +msgid "You can import an account from another Friendica server." +msgstr "Du kannst einen Account von einem anderen Friendica Server importieren." -#: view/theme/frio/config.php:129 -msgid "Set the background color" -msgstr "Hintergrundfarbe festlegen" +#: mod/uimport.php:58 +msgid "" +"You need to export your account from the old server and upload it here. We " +"will recreate your old account here with all your contacts. We will try also" +" to inform your friends that you moved here." +msgstr "Du musst deinen Account vom alten Server exportieren und hier hochladen. Wir stellen deinen alten Account mit all deinen Kontakten wieder her. Wir werden auch versuchen, deine Kontakte darüber zu informieren, dass du hierher umgezogen bist." -#: view/theme/frio/config.php:130 -msgid "Content background opacity" -msgstr "Opazität des Hintergrunds von Beiträgen" +#: mod/uimport.php:59 +msgid "" +"This feature is experimental. We can't import contacts from the OStatus " +"network (GNU Social/Statusnet) or from Diaspora" +msgstr "Dieses Feature ist experimentell. Wir können keine Kontakte vom OStatus-Netzwerk (GNU Social/Statusnet) oder von Diaspora importieren" -#: view/theme/frio/config.php:131 -msgid "Set the background image" -msgstr "Hintergrundbild festlegen" +#: mod/uimport.php:60 +msgid "Account file" +msgstr "Account-Datei" -#: view/theme/frio/config.php:132 -msgid "Background image style" -msgstr "Stil des Hintergrundbildes" +#: mod/uimport.php:60 +msgid "" +"To export your account, go to \"Settings->Export your personal data\" and " +"select \"Export account\"" +msgstr "Um Deinen Account zu exportieren, rufe \"Einstellungen -> Persönliche Daten exportieren\" auf und wähle \"Account exportieren\"" -#: view/theme/frio/config.php:137 -msgid "Login page background image" -msgstr "Hintergrundbild der Login-Seite" +#: mod/unfollow.php:36 mod/unfollow.php:92 +msgid "You aren't following this contact." +msgstr "Du folgst diesem Kontakt." -#: view/theme/frio/config.php:141 -msgid "Login page background color" -msgstr "Hintergrundfarbe der Login-Seite" +#: mod/unfollow.php:46 mod/unfollow.php:98 +msgid "Unfollowing is currently not supported by your network." +msgstr "Bei diesem Netzwerk wird das Entfolgen derzeit nicht unterstützt." -#: view/theme/frio/config.php:141 -msgid "Leave background image and color empty for theme defaults" -msgstr "Wenn die Theme-Vorgaben verwendet werden sollen, lass bitte die Felder für die Hintergrundfarbe und das Hintergrundbild leer." +#: mod/unfollow.php:67 +msgid "Contact unfollowed" +msgstr "Kontakt wird nicht mehr gefolgt" -#: view/theme/quattro/config.php:77 -msgid "Alignment" -msgstr "Ausrichtung" +#: mod/unfollow.php:118 src/Module/Contact.php:573 +msgid "Disconnect/Unfollow" +msgstr "Verbindung lösen/Nicht mehr folgen" -#: view/theme/quattro/config.php:77 -msgid "Left" -msgstr "Links" +#: mod/update_community.php:23 mod/update_contact.php:23 +#: mod/update_display.php:24 mod/update_network.php:33 mod/update_notes.php:36 +#: mod/update_profile.php:34 +msgid "[Embedded content - reload page to view]" +msgstr "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]" -#: view/theme/quattro/config.php:77 -msgid "Center" -msgstr "Mitte" +#: mod/videos.php:123 +msgid "No videos selected" +msgstr "Keine Videos ausgewählt" -#: view/theme/quattro/config.php:78 -msgid "Color scheme" -msgstr "Farbschema" +#: mod/videos.php:280 src/Model/Item.php:3421 +msgid "View Video" +msgstr "Video ansehen" -#: view/theme/quattro/config.php:79 -msgid "Posts font size" -msgstr "Schriftgröße in Beiträgen" +#: mod/videos.php:295 +msgid "Recent Videos" +msgstr "Neueste Videos" -#: view/theme/quattro/config.php:80 -msgid "Textareas font size" -msgstr "Schriftgröße in Eingabefeldern" +#: mod/videos.php:297 +msgid "Upload New Videos" +msgstr "Neues Video hochladen" -#: view/theme/vier/config.php:76 -msgid "Comma separated list of helper forums" -msgstr "Komma-separierte Liste der Helfer-Foren" +#: mod/viewcontacts.php:78 +msgid "No contacts." +msgstr "Keine Kontakte." -#: view/theme/vier/config.php:116 src/Core/ACL.php:302 -msgid "don't show" -msgstr "nicht zeigen" +#: mod/viewcontacts.php:94 src/Module/Contact.php:606 +#: src/Module/Contact.php:1027 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Besuche %ss Profil [%s]" -#: view/theme/vier/config.php:116 src/Core/ACL.php:301 -msgid "show" -msgstr "zeigen" +#: mod/viewcontacts.php:114 src/Content/Nav.php:202 src/Content/Nav.php:268 +#: src/Content/Text/HTML.php:911 src/Model/Profile.php:974 +#: src/Model/Profile.php:977 src/Module/Contact.php:814 +#: src/Module/Contact.php:884 view/theme/frio/theme.php:273 +msgid "Contacts" +msgstr "Kontakte" -#: view/theme/vier/config.php:123 -msgid "Set style" -msgstr "Stil auswählen" +#: mod/wallmessage.php:52 mod/wallmessage.php:115 +#, php-format +msgid "Number of daily wall messages for %s exceeded. Message failed." +msgstr "Maximale Anzahl der täglichen Pinnwand-Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen." -#: view/theme/vier/config.php:124 -msgid "Community Pages" -msgstr "Foren" +#: mod/wallmessage.php:63 +msgid "Unable to check your home location." +msgstr "Konnte Deinen Heimatort nicht bestimmen." -#: view/theme/vier/config.php:125 view/theme/vier/theme.php:151 -msgid "Community Profiles" -msgstr "Community-Profile" +#: mod/wallmessage.php:89 mod/wallmessage.php:98 +msgid "No recipient." +msgstr "Kein Empfänger." -#: view/theme/vier/config.php:126 -msgid "Help or @NewHere ?" -msgstr "Hilfe oder @NewHere" +#: mod/wallmessage.php:129 +#, php-format +msgid "" +"If you wish for %s to respond, please check that the privacy settings on " +"your site allow private mail from unknown senders." +msgstr "Wenn du möchtest, dass %s dir antworten kann, überprüfe deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern." -#: view/theme/vier/config.php:127 view/theme/vier/theme.php:373 -msgid "Connect Services" -msgstr "Verbinde Dienste" +#: mod/wall_attach.php:26 mod/wall_attach.php:33 mod/wall_attach.php:85 +#: mod/wall_upload.php:42 mod/wall_upload.php:58 mod/wall_upload.php:116 +#: mod/wall_upload.php:167 mod/wall_upload.php:170 +msgid "Invalid request." +msgstr "Ungültige Anfrage" -#: view/theme/vier/config.php:128 -msgid "Find Friends" -msgstr "Kontakte finden" +#: mod/wall_attach.php:103 +msgid "Sorry, maybe your upload is bigger than the PHP configuration allows" +msgstr "Entschuldige, die Datei scheint größer zu sein, als es die PHP-Konfiguration erlaubt." -#: view/theme/vier/config.php:129 view/theme/vier/theme.php:181 -msgid "Last users" -msgstr "Letzte Nutzer" +#: mod/wall_attach.php:103 +msgid "Or - did you try to upload an empty file?" +msgstr "Oder - hast du versucht, eine leere Datei hochzuladen?" -#: view/theme/vier/theme.php:199 src/Content/Widget.php:61 -msgid "Find People" -msgstr "Leute finden" +#: mod/wall_attach.php:114 +#, php-format +msgid "File exceeds size limit of %s" +msgstr "Die Datei ist größer als das erlaubte Limit von %s" -#: view/theme/vier/theme.php:200 src/Content/Widget.php:62 -msgid "Enter name or interest" -msgstr "Name oder Interessen eingeben" +#: mod/wall_attach.php:129 +msgid "File upload failed." +msgstr "Hochladen der Datei fehlgeschlagen." -#: view/theme/vier/theme.php:202 src/Content/Widget.php:64 -msgid "Examples: Robert Morgenstein, Fishing" -msgstr "Beispiel: Robert Morgenstein, Angeln" +#: mod/wall_upload.php:243 +msgid "Wall Photos" +msgstr "Pinnwand-Bilder" -#: view/theme/vier/theme.php:205 src/Content/Widget.php:67 -msgid "Similar Interests" -msgstr "Ähnliche Interessen" +#: src/App.php:505 +msgid "Delete this item?" +msgstr "Diesen Beitrag löschen?" -#: view/theme/vier/theme.php:206 src/Content/Widget.php:68 -msgid "Random Profile" -msgstr "Zufälliges Profil" +#: src/App.php:547 +msgid "toggle mobile" +msgstr "mobile Ansicht umschalten" -#: view/theme/vier/theme.php:207 src/Content/Widget.php:69 -msgid "Invite Friends" -msgstr "Freunde einladen" +#: src/App.php:863 +msgid "No system theme config value set." +msgstr "Es wurde kein Konfigurationswert für das systemweite Theme gesetzt." -#: view/theme/vier/theme.php:210 src/Content/Widget.php:72 -msgid "Local Directory" -msgstr "Lokales Verzeichnis" +#: src/App.php:1163 +msgid "You must be logged in to use addons. " +msgstr "Du musst angemeldet sein, um Addons benutzen zu können." -#: view/theme/vier/theme.php:250 src/Content/Text/HTML.php:914 -#: src/Content/Nav.php:207 src/Content/ForumManager.php:130 -msgid "Forums" -msgstr "Foren" +#: src/BaseModule.php:135 +msgid "" +"The form security token was not correct. This probably happened because the " +"form has been opened for too long (>3 hours) before submitting it." +msgstr "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens, wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden)." -#: view/theme/vier/theme.php:252 src/Content/ForumManager.php:132 -msgid "External link to forum" -msgstr "Externer Link zum Forum" - -#: view/theme/vier/theme.php:288 -msgid "Quick Start" -msgstr "Schnell-Start" - -#: src/Core/Console/NewPassword.php:72 -msgid "Enter new password: " -msgstr "Neues Passwort eingeben:" - -#: src/Core/Console/ArchiveContact.php:65 +#: src/Console/ArchiveContact.php:65 #, php-format msgid "Could not find any unarchived contact entry for this URL (%s)" msgstr "Für die URL (%s) konnte kein nicht-archivierter Kontakt gefunden werden" -#: src/Core/Console/ArchiveContact.php:68 +#: src/Console/ArchiveContact.php:68 msgid "The contact entries have been archived" msgstr "Die Kontakteinträge wurden archiviert." -#: src/Core/Console/PostUpdate.php:50 +#: src/Console/GlobalCommunityBlock.php:65 +#: src/Module/Admin/Blocklist/Contact.php:29 +#, php-format +msgid "Could not find any contact entry for this URL (%s)" +msgstr "Für die URL (%s) konnte kein Kontakt gefunden werden" + +#: src/Console/GlobalCommunityBlock.php:68 +#: src/Module/Admin/Blocklist/Contact.php:27 +msgid "The contact has been blocked from the node" +msgstr "Der Kontakt wurde von diesem Knoten geblockt" + +#: src/Console/NewPassword.php:72 +msgid "Enter new password: " +msgstr "Neues Passwort eingeben:" + +#: src/Console/PostUpdate.php:50 #, php-format msgid "Post update version number has been set to %s." msgstr "Die Post-Update-Versionsnummer wurde auf %s gesetzt." -#: src/Core/Console/PostUpdate.php:58 +#: src/Console/PostUpdate.php:58 msgid "Check for pending update actions." msgstr "Überprüfe ausstehende Update-Aktionen" -#: src/Core/Console/PostUpdate.php:60 +#: src/Console/PostUpdate.php:60 msgid "Done." msgstr "Erledigt." -#: src/Core/Console/PostUpdate.php:62 +#: src/Console/PostUpdate.php:62 msgid "Execute pending post updates." msgstr "Ausstehende Post-Updates ausführen" -#: src/Core/Console/PostUpdate.php:68 +#: src/Console/PostUpdate.php:68 msgid "All pending post updates are done." msgstr "Alle ausstehenden Post-Updates wurden ausgeführt." +#: src/Content/ContactSelector.php:58 +msgid "Frequently" +msgstr "immer wieder" + +#: src/Content/ContactSelector.php:59 +msgid "Hourly" +msgstr "Stündlich" + +#: src/Content/ContactSelector.php:60 +msgid "Twice daily" +msgstr "Zweimal täglich" + +#: src/Content/ContactSelector.php:61 +msgid "Daily" +msgstr "Täglich" + +#: src/Content/ContactSelector.php:62 +msgid "Weekly" +msgstr "Wöchentlich" + +#: src/Content/ContactSelector.php:63 +msgid "Monthly" +msgstr "Monatlich" + +#: src/Content/ContactSelector.php:83 +msgid "DFRN" +msgstr "DFRN" + +#: src/Content/ContactSelector.php:84 +msgid "OStatus" +msgstr "OStatus" + +#: src/Content/ContactSelector.php:85 +msgid "RSS/Atom" +msgstr "RSS/Atom" + +#: src/Content/ContactSelector.php:86 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:315 +msgid "Email" +msgstr "E-Mail" + +#: src/Content/ContactSelector.php:88 +msgid "Zot!" +msgstr "Zott" + +#: src/Content/ContactSelector.php:89 +msgid "LinkedIn" +msgstr "LinkedIn" + +#: src/Content/ContactSelector.php:90 +msgid "XMPP/IM" +msgstr "XMPP/Chat" + +#: src/Content/ContactSelector.php:91 +msgid "MySpace" +msgstr "MySpace" + +#: src/Content/ContactSelector.php:92 +msgid "Google+" +msgstr "Google+" + +#: src/Content/ContactSelector.php:93 +msgid "pump.io" +msgstr "pump.io" + +#: src/Content/ContactSelector.php:94 +msgid "Twitter" +msgstr "Twitter" + +#: src/Content/ContactSelector.php:95 +msgid "Diaspora Connector" +msgstr "Diaspora Connector" + +#: src/Content/ContactSelector.php:96 +msgid "GNU Social Connector" +msgstr "GNU Social Connector" + +#: src/Content/ContactSelector.php:97 +msgid "ActivityPub" +msgstr "ActivityPub" + +#: src/Content/ContactSelector.php:98 +msgid "pnut" +msgstr "pnut" + +#: src/Content/ContactSelector.php:153 src/Content/ContactSelector.php:193 +#: src/Content/ContactSelector.php:231 +msgid "No answer" +msgstr "Keine Antwort" + +#: src/Content/ContactSelector.php:154 +msgid "Male" +msgstr "Männlich" + +#: src/Content/ContactSelector.php:155 +msgid "Female" +msgstr "Weiblich" + +#: src/Content/ContactSelector.php:156 +msgid "Currently Male" +msgstr "Momentan männlich" + +#: src/Content/ContactSelector.php:157 +msgid "Currently Female" +msgstr "Momentan weiblich" + +#: src/Content/ContactSelector.php:158 +msgid "Mostly Male" +msgstr "Hauptsächlich männlich" + +#: src/Content/ContactSelector.php:159 +msgid "Mostly Female" +msgstr "Hauptsächlich weiblich" + +#: src/Content/ContactSelector.php:160 +msgid "Transgender" +msgstr "Transgender" + +#: src/Content/ContactSelector.php:161 +msgid "Intersex" +msgstr "Intersex" + +#: src/Content/ContactSelector.php:162 +msgid "Transsexual" +msgstr "Transsexuell" + +#: src/Content/ContactSelector.php:163 +msgid "Hermaphrodite" +msgstr "Hermaphrodit" + +#: src/Content/ContactSelector.php:164 +msgid "Neuter" +msgstr "Neuter" + +#: src/Content/ContactSelector.php:165 +msgid "Non-specific" +msgstr "Nicht spezifiziert" + +#: src/Content/ContactSelector.php:166 +msgid "Other" +msgstr "Andere" + +#: src/Content/ContactSelector.php:194 +msgid "Males" +msgstr "Männer" + +#: src/Content/ContactSelector.php:195 +msgid "Females" +msgstr "Frauen" + +#: src/Content/ContactSelector.php:196 +msgid "Gay" +msgstr "Schwul" + +#: src/Content/ContactSelector.php:197 +msgid "Lesbian" +msgstr "Lesbisch" + +#: src/Content/ContactSelector.php:198 +msgid "No Preference" +msgstr "Keine Vorlieben" + +#: src/Content/ContactSelector.php:199 +msgid "Bisexual" +msgstr "Bisexuell" + +#: src/Content/ContactSelector.php:200 +msgid "Autosexual" +msgstr "Autosexuell" + +#: src/Content/ContactSelector.php:201 +msgid "Abstinent" +msgstr "Abstinent" + +#: src/Content/ContactSelector.php:202 +msgid "Virgin" +msgstr "Jungfrauen" + +#: src/Content/ContactSelector.php:203 +msgid "Deviant" +msgstr "Deviant" + +#: src/Content/ContactSelector.php:204 +msgid "Fetish" +msgstr "Fetish" + +#: src/Content/ContactSelector.php:205 +msgid "Oodles" +msgstr "Oodles" + +#: src/Content/ContactSelector.php:206 +msgid "Nonsexual" +msgstr "Nonsexual" + +#: src/Content/ContactSelector.php:232 +msgid "Single" +msgstr "Single" + +#: src/Content/ContactSelector.php:233 +msgid "Lonely" +msgstr "Einsam" + +#: src/Content/ContactSelector.php:234 +msgid "Available" +msgstr "Verfügbar" + +#: src/Content/ContactSelector.php:235 +msgid "Unavailable" +msgstr "Nicht verfügbar" + +#: src/Content/ContactSelector.php:236 +msgid "Has crush" +msgstr "verknallt" + +#: src/Content/ContactSelector.php:237 +msgid "Infatuated" +msgstr "verliebt" + +#: src/Content/ContactSelector.php:238 +msgid "Dating" +msgstr "Dating" + +#: src/Content/ContactSelector.php:239 +msgid "Unfaithful" +msgstr "Untreu" + +#: src/Content/ContactSelector.php:240 +msgid "Sex Addict" +msgstr "Sexbesessen" + +#: src/Content/ContactSelector.php:241 src/Model/User.php:729 +msgid "Friends" +msgstr "Kontakte" + +#: src/Content/ContactSelector.php:242 +msgid "Friends/Benefits" +msgstr "Freunde/Zuwendungen" + +#: src/Content/ContactSelector.php:243 +msgid "Casual" +msgstr "Casual" + +#: src/Content/ContactSelector.php:244 +msgid "Engaged" +msgstr "Verlobt" + +#: src/Content/ContactSelector.php:245 +msgid "Married" +msgstr "Verheiratet" + +#: src/Content/ContactSelector.php:246 +msgid "Imaginarily married" +msgstr "imaginär verheiratet" + +#: src/Content/ContactSelector.php:247 +msgid "Partners" +msgstr "Partner" + +#: src/Content/ContactSelector.php:248 +msgid "Cohabiting" +msgstr "zusammenlebend" + +#: src/Content/ContactSelector.php:249 +msgid "Common law" +msgstr "wilde Ehe" + +#: src/Content/ContactSelector.php:250 +msgid "Happy" +msgstr "Glücklich" + +#: src/Content/ContactSelector.php:251 +msgid "Not looking" +msgstr "Nicht auf der Suche" + +#: src/Content/ContactSelector.php:252 +msgid "Swinger" +msgstr "Swinger" + +#: src/Content/ContactSelector.php:253 +msgid "Betrayed" +msgstr "Betrogen" + +#: src/Content/ContactSelector.php:254 +msgid "Separated" +msgstr "Getrennt" + +#: src/Content/ContactSelector.php:255 +msgid "Unstable" +msgstr "Unstabil" + +#: src/Content/ContactSelector.php:256 +msgid "Divorced" +msgstr "Geschieden" + +#: src/Content/ContactSelector.php:257 +msgid "Imaginarily divorced" +msgstr "Imaginär geschieden" + +#: src/Content/ContactSelector.php:258 +msgid "Widowed" +msgstr "Verwitwet" + +#: src/Content/ContactSelector.php:259 +msgid "Uncertain" +msgstr "Unsicher" + +#: src/Content/ContactSelector.php:260 +msgid "It's complicated" +msgstr "Ist kompliziert" + +#: src/Content/ContactSelector.php:261 +msgid "Don't care" +msgstr "Ist mir nicht wichtig" + +#: src/Content/ContactSelector.php:262 +msgid "Ask me" +msgstr "Frag mich" + +#: src/Content/Feature.php:82 +msgid "General Features" +msgstr "Allgemeine Features" + +#: src/Content/Feature.php:84 +msgid "Multiple Profiles" +msgstr "Mehrere Profile" + +#: src/Content/Feature.php:84 +msgid "Ability to create multiple profiles" +msgstr "Möglichkeit, mehrere Profile zu erstellen" + +#: src/Content/Feature.php:85 +msgid "Photo Location" +msgstr "Aufnahmeort" + +#: src/Content/Feature.php:85 +msgid "" +"Photo metadata is normally stripped. This extracts the location (if present)" +" prior to stripping metadata and links it to a map." +msgstr "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden." + +#: src/Content/Feature.php:86 +msgid "Export Public Calendar" +msgstr "Öffentlichen Kalender exportieren" + +#: src/Content/Feature.php:86 +msgid "Ability for visitors to download the public calendar" +msgstr "Möglichkeit für Besucher, den öffentlichen Kalender herunter zu laden" + +#: src/Content/Feature.php:91 +msgid "Post Composition Features" +msgstr "Beitragserstellung-Features" + +#: src/Content/Feature.php:92 +msgid "Auto-mention Forums" +msgstr "Foren automatisch erwähnen" + +#: src/Content/Feature.php:92 +msgid "" +"Add/remove mention when a forum page is selected/deselected in ACL window." +msgstr "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde." + +#: src/Content/Feature.php:93 +msgid "Explicit Mentions" +msgstr "Explizite Erwähnungen" + +#: src/Content/Feature.php:93 +msgid "" +"Add explicit mentions to comment box for manual control over who gets " +"mentioned in replies." +msgstr "Füge Erwähnungen zum Kommentarfeld hinzu, um manuell über die explizite Erwähnung von Gesprächsteilnehmern zu entscheiden." + +#: src/Content/Feature.php:98 +msgid "Network Sidebar" +msgstr "Netzwerk-Seitenleiste" + +#: src/Content/Feature.php:99 +msgid "Ability to select posts by date ranges" +msgstr "Möglichkeit, die Beiträge nach Datumsbereichen zu sortieren" + +#: src/Content/Feature.php:100 +msgid "Protocol Filter" +msgstr "Protokoll-Filter" + +#: src/Content/Feature.php:100 +msgid "Enable widget to display Network posts only from selected protocols" +msgstr "Aktiviere Widget, um Netzwerkbeiträge nur von ausgesuchten Protokollen anzuzeigen" + +#: src/Content/Feature.php:105 +msgid "Network Tabs" +msgstr "Netzwerk-Reiter" + +#: src/Content/Feature.php:106 +msgid "Network New Tab" +msgstr "Netzwerk-Reiter: Neue" + +#: src/Content/Feature.php:106 +msgid "Enable tab to display only new Network posts (from the last 12 hours)" +msgstr "Aktiviert einen Netzwerk-Reiter, in dem ausschließlich neue Beiträge (der letzten 12 Stunden) angezeigt werden" + +#: src/Content/Feature.php:107 +msgid "Network Shared Links Tab" +msgstr "Netzwerk-Reiter: Geteilte Links" + +#: src/Content/Feature.php:107 +msgid "Enable tab to display only Network posts with links in them" +msgstr "Aktiviert einen Netzwerk-Reiter, der ausschließlich Nachrichten mit Links enthält" + +#: src/Content/Feature.php:112 +msgid "Post/Comment Tools" +msgstr "Werkzeuge für Beiträge und Kommentare" + +#: src/Content/Feature.php:113 +msgid "Post Categories" +msgstr "Beitragskategorien" + +#: src/Content/Feature.php:113 +msgid "Add categories to your posts" +msgstr "Eigene Beiträge mit Kategorien versehen" + +#: src/Content/Feature.php:118 +msgid "Advanced Profile Settings" +msgstr "Erweiterte Profil-Einstellungen" + +#: src/Content/Feature.php:119 +msgid "List Forums" +msgstr "Zeige Foren" + +#: src/Content/Feature.php:119 +msgid "Show visitors public community forums at the Advanced Profile Page" +msgstr "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite" + +#: src/Content/Feature.php:120 +msgid "Tag Cloud" +msgstr "Schlagwortwolke" + +#: src/Content/Feature.php:120 +msgid "Provide a personal tag cloud on your profile page" +msgstr "Wortwolke aus den von dir verwendeten Schlagwörtern im Profil anzeigen" + +#: src/Content/Feature.php:121 +msgid "Display Membership Date" +msgstr "Mitgliedschaftsdatum anzeigen" + +#: src/Content/Feature.php:121 +msgid "Display membership date in profile" +msgstr "Das Datum der Registrierung deines Accounts im Profil anzeigen" + +#: src/Content/ForumManager.php:130 src/Content/Nav.php:206 +#: src/Content/Text/HTML.php:914 view/theme/vier/theme.php:250 +msgid "Forums" +msgstr "Foren" + +#: src/Content/ForumManager.php:132 view/theme/vier/theme.php:252 +msgid "External link to forum" +msgstr "Externer Link zum Forum" + +#: src/Content/Nav.php:73 +msgid "Nothing new here" +msgstr "Keine Neuigkeiten" + +#: src/Content/Nav.php:77 +msgid "Clear notifications" +msgstr "Bereinige Benachrichtigungen" + +#: src/Content/Nav.php:78 src/Content/Text/HTML.php:903 +msgid "@name, !forum, #tags, content" +msgstr "@name, !forum, #tags, content" + +#: src/Content/Nav.php:152 src/Module/Login.php:324 +#: view/theme/frio/theme.php:259 +msgid "Logout" +msgstr "Abmelden" + +#: src/Content/Nav.php:152 view/theme/frio/theme.php:259 +msgid "End this session" +msgstr "Diese Sitzung beenden" + +#: src/Content/Nav.php:155 src/Model/Profile.php:895 +#: src/Module/Contact.php:655 src/Module/Contact.php:856 +#: src/Module/Settings/TwoFactor/Index.php:85 view/theme/frio/theme.php:262 +msgid "Status" +msgstr "Status" + +#: src/Content/Nav.php:155 src/Content/Nav.php:241 +#: view/theme/frio/theme.php:262 +msgid "Your posts and conversations" +msgstr "Deine Beiträge und Unterhaltungen" + +#: src/Content/Nav.php:156 view/theme/frio/theme.php:263 +msgid "Your profile page" +msgstr "Deine Profilseite" + +#: src/Content/Nav.php:157 view/theme/frio/theme.php:264 +msgid "Your photos" +msgstr "Deine Fotos" + +#: src/Content/Nav.php:158 src/Model/Profile.php:919 src/Model/Profile.php:922 +#: view/theme/frio/theme.php:265 +msgid "Videos" +msgstr "Videos" + +#: src/Content/Nav.php:158 view/theme/frio/theme.php:265 +msgid "Your videos" +msgstr "Deine Videos" + +#: src/Content/Nav.php:159 view/theme/frio/theme.php:266 +msgid "Your events" +msgstr "Deine Ereignisse" + +#: src/Content/Nav.php:160 +msgid "Personal notes" +msgstr "Persönliche Notizen" + +#: src/Content/Nav.php:160 +msgid "Your personal notes" +msgstr "Deine persönlichen Notizen" + +#: src/Content/Nav.php:169 src/Module/Bookmarklet.php:25 +#: src/Module/Login.php:325 +msgid "Login" +msgstr "Anmeldung" + +#: src/Content/Nav.php:169 +msgid "Sign in" +msgstr "Anmelden" + +#: src/Content/Nav.php:179 src/Content/Nav.php:241 +#: src/Core/NotificationsManager.php:165 +msgid "Home" +msgstr "Pinnwand" + +#: src/Content/Nav.php:179 +msgid "Home Page" +msgstr "Homepage" + +#: src/Content/Nav.php:183 src/Module/Login.php:296 +#: src/Module/Register.php:136 +msgid "Register" +msgstr "Registrieren" + +#: src/Content/Nav.php:183 +msgid "Create an account" +msgstr "Nutzerkonto erstellen" + +#: src/Content/Nav.php:189 src/Module/Help.php:50 +#: src/Module/Settings/TwoFactor/Index.php:84 +#: src/Module/Settings/TwoFactor/Recovery.php:77 +#: src/Module/Settings/TwoFactor/Verify.php:117 view/theme/vier/theme.php:294 +msgid "Help" +msgstr "Hilfe" + +#: src/Content/Nav.php:189 +msgid "Help and documentation" +msgstr "Hilfe und Dokumentation" + +#: src/Content/Nav.php:193 +msgid "Apps" +msgstr "Apps" + +#: src/Content/Nav.php:193 +msgid "Addon applications, utilities, games" +msgstr "Zusätzliche Anwendungen, Dienstprogramme, Spiele" + +#: src/Content/Nav.php:197 +msgid "Search site content" +msgstr "Inhalt der Seite durchsuchen" + +#: src/Content/Nav.php:200 src/Content/Text/HTML.php:909 +msgid "Full Text" +msgstr "Volltext" + +#: src/Content/Nav.php:201 src/Content/Text/HTML.php:910 +#: src/Content/Widget/TagCloud.php:54 +msgid "Tags" +msgstr "Tags" + +#: src/Content/Nav.php:221 +msgid "Community" +msgstr "Gemeinschaft" + +#: src/Content/Nav.php:221 +msgid "Conversations on this and other servers" +msgstr "Unterhaltungen auf diesem und anderen Servern" + +#: src/Content/Nav.php:225 src/Model/Profile.php:934 src/Model/Profile.php:945 +#: view/theme/frio/theme.php:270 +msgid "Events and Calendar" +msgstr "Ereignisse und Kalender" + +#: src/Content/Nav.php:228 +msgid "Directory" +msgstr "Verzeichnis" + +#: src/Content/Nav.php:228 +msgid "People directory" +msgstr "Nutzerverzeichnis" + +#: src/Content/Nav.php:230 src/Module/BaseAdminModule.php:75 +msgid "Information" +msgstr "Information" + +#: src/Content/Nav.php:230 +msgid "Information about this friendica instance" +msgstr "Informationen zu dieser Friendica-Instanz" + +#: src/Content/Nav.php:233 src/Module/Admin/Tos.php:43 +#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:144 +#: src/Module/Tos.php:73 +msgid "Terms of Service" +msgstr "Nutzungsbedingungen" + +#: src/Content/Nav.php:233 +msgid "Terms of Service of this Friendica instance" +msgstr "Die Nutzungsbedingungen dieser Friendica-Instanz" + +#: src/Content/Nav.php:238 src/Core/NotificationsManager.php:151 +#: view/theme/frio/theme.php:269 +msgid "Network" +msgstr "Netzwerk" + +#: src/Content/Nav.php:238 view/theme/frio/theme.php:269 +msgid "Conversations from your friends" +msgstr "Unterhaltungen Deiner Kontakte" + +#: src/Content/Nav.php:239 +msgid "Network Reset" +msgstr "Netzwerk zurücksetzen" + +#: src/Content/Nav.php:239 +msgid "Load Network page with no filters" +msgstr "Netzwerk-Seite ohne Filter laden" + +#: src/Content/Nav.php:245 src/Core/NotificationsManager.php:172 +msgid "Introductions" +msgstr "Kontaktanfragen" + +#: src/Content/Nav.php:245 +msgid "Friend Requests" +msgstr "Kontaktanfragen" + +#: src/Content/Nav.php:247 +msgid "See all notifications" +msgstr "Alle Benachrichtigungen anzeigen" + +#: src/Content/Nav.php:248 +msgid "Mark all system notifications seen" +msgstr "Markiere alle Systembenachrichtigungen als gelesen" + +#: src/Content/Nav.php:251 view/theme/frio/theme.php:271 +msgid "Private mail" +msgstr "Private E-Mail" + +#: src/Content/Nav.php:252 +msgid "Inbox" +msgstr "Eingang" + +#: src/Content/Nav.php:253 +msgid "Outbox" +msgstr "Ausgang" + +#: src/Content/Nav.php:257 +msgid "Manage" +msgstr "Verwalten" + +#: src/Content/Nav.php:257 +msgid "Manage other pages" +msgstr "Andere Seiten verwalten" + +#: src/Content/Nav.php:262 view/theme/frio/theme.php:272 +msgid "Account settings" +msgstr "Kontoeinstellungen" + +#: src/Content/Nav.php:265 +msgid "Manage/Edit Profiles" +msgstr "Profile verwalten/editieren" + +#: src/Content/Nav.php:268 view/theme/frio/theme.php:273 +msgid "Manage/edit friends and contacts" +msgstr "Freunde und Kontakte verwalten/bearbeiten" + +#: src/Content/Nav.php:273 src/Module/BaseAdminModule.php:114 +msgid "Admin" +msgstr "Administration" + +#: src/Content/Nav.php:273 +msgid "Site setup and configuration" +msgstr "Einstellungen der Seite und Konfiguration" + +#: src/Content/Nav.php:276 +msgid "Navigation" +msgstr "Navigation" + +#: src/Content/Nav.php:276 +msgid "Site map" +msgstr "Sitemap" + +#: src/Content/OEmbed.php:255 +msgid "Embedding disabled" +msgstr "Einbettungen deaktiviert" + +#: src/Content/OEmbed.php:378 +msgid "Embedded content" +msgstr "Eingebetteter Inhalt" + +#: src/Content/Pager.php:153 +msgid "newer" +msgstr "neuer" + +#: src/Content/Pager.php:158 +msgid "older" +msgstr "älter" + +#: src/Content/Pager.php:203 +msgid "prev" +msgstr "vorige" + +#: src/Content/Pager.php:263 +msgid "last" +msgstr "letzte" + +#: src/Content/Text/BBCode.php:430 +msgid "view full size" +msgstr "Volle Größe anzeigen" + +#: src/Content/Text/BBCode.php:864 src/Content/Text/BBCode.php:1591 +#: src/Content/Text/BBCode.php:1592 +msgid "Image/photo" +msgstr "Bild/Foto" + +#: src/Content/Text/BBCode.php:972 +#, php-format +msgid "%2$s %3$s" +msgstr "%2$s %3$s" + +#: src/Content/Text/BBCode.php:1518 src/Content/Text/BBCode.php:1540 +msgid "$1 wrote:" +msgstr "$1 hat geschrieben:" + +#: src/Content/Text/BBCode.php:1602 src/Content/Text/BBCode.php:1603 +msgid "Encrypted content" +msgstr "Verschlüsselter Inhalt" + +#: src/Content/Text/BBCode.php:1710 +msgid "Invalid source protocol" +msgstr "Ungültiges Quell-Protokoll" + +#: src/Content/Text/BBCode.php:1721 +msgid "Invalid link protocol" +msgstr "Ungültiges Link-Protokoll" + +#: src/Content/Text/HTML.php:800 +msgid "Loading more entries..." +msgstr "lade weitere Einträge..." + +#: src/Content/Text/HTML.php:801 +msgid "The end" +msgstr "Das Ende" + +#: src/Content/Text/HTML.php:894 +msgid "Follow" +msgstr "Folge" + +#: src/Content/Text/HTML.php:951 src/Model/Item.php:3471 +#: src/Model/Item.php:3482 +msgid "Click to open/close" +msgstr "Zum Öffnen/Schließen klicken" + +#: src/Content/Widget/CalendarExport.php:64 +msgid "Export" +msgstr "Exportieren" + +#: src/Content/Widget/CalendarExport.php:65 +msgid "Export calendar as ical" +msgstr "Kalender als ical exportieren" + +#: src/Content/Widget/CalendarExport.php:66 +msgid "Export calendar as csv" +msgstr "Kalender als csv exportieren" + +#: src/Content/Widget/ContactBlock.php:58 +msgid "No contacts" +msgstr "Keine Kontakte" + +#: src/Content/Widget/ContactBlock.php:90 +#, php-format +msgid "%d Contact" +msgid_plural "%d Contacts" +msgstr[0] "%d Kontakt" +msgstr[1] "%d Kontakte" + +#: src/Content/Widget/ContactBlock.php:109 +msgid "View Contacts" +msgstr "Kontakte anzeigen" + +#: src/Content/Widget.php:35 +msgid "Add New Contact" +msgstr "Neuen Kontakt hinzufügen" + +#: src/Content/Widget.php:36 +msgid "Enter address or web location" +msgstr "Adresse oder Web-Link eingeben" + +#: src/Content/Widget.php:37 +msgid "Example: bob@example.com, http://example.com/barbara" +msgstr "Beispiel: bob@example.com, http://example.com/barbara" + +#: src/Content/Widget.php:55 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "%d Einladung verfügbar" +msgstr[1] "%d Einladungen verfügbar" + +#: src/Content/Widget.php:61 view/theme/vier/theme.php:199 +msgid "Find People" +msgstr "Leute finden" + +#: src/Content/Widget.php:62 view/theme/vier/theme.php:200 +msgid "Enter name or interest" +msgstr "Name oder Interessen eingeben" + +#: src/Content/Widget.php:64 view/theme/vier/theme.php:202 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "Beispiel: Robert Morgenstein, Angeln" + +#: src/Content/Widget.php:65 src/Module/Contact.php:820 +#: src/Module/Directory.php:91 view/theme/vier/theme.php:203 +msgid "Find" +msgstr "Finde" + +#: src/Content/Widget.php:67 view/theme/vier/theme.php:205 +msgid "Similar Interests" +msgstr "Ähnliche Interessen" + +#: src/Content/Widget.php:68 view/theme/vier/theme.php:206 +msgid "Random Profile" +msgstr "Zufälliges Profil" + +#: src/Content/Widget.php:69 view/theme/vier/theme.php:207 +msgid "Invite Friends" +msgstr "Freunde einladen" + +#: src/Content/Widget.php:70 src/Module/Directory.php:83 +#: view/theme/vier/theme.php:208 +msgid "Global Directory" +msgstr "Weltweites Verzeichnis" + +#: src/Content/Widget.php:72 view/theme/vier/theme.php:210 +msgid "Local Directory" +msgstr "Lokales Verzeichnis" + +#: src/Content/Widget.php:158 +msgid "Protocols" +msgstr "Protokolle" + +#: src/Content/Widget.php:161 +msgid "All Protocols" +msgstr "Alle Protokolle" + +#: src/Content/Widget.php:198 +msgid "Saved Folders" +msgstr "Gespeicherte Ordner" + +#: src/Content/Widget.php:201 src/Content/Widget.php:243 +msgid "Everything" +msgstr "Alles" + +#: src/Content/Widget.php:240 +msgid "Categories" +msgstr "Kategorien" + +#: src/Content/Widget.php:324 +#, php-format +msgid "%d contact in common" +msgid_plural "%d contacts in common" +msgstr[0] "%d gemeinsamer Kontakt" +msgstr[1] "%d gemeinsame Kontakte" + #: src/Core/ACL.php:288 msgid "Post to Email" msgstr "An E-Mail senden" @@ -6781,6 +5345,14 @@ msgstr "An E-Mail senden" msgid "Visible to everybody" msgstr "Für jeden sichtbar" +#: src/Core/ACL.php:301 view/theme/vier/config.php:116 +msgid "show" +msgstr "zeigen" + +#: src/Core/ACL.php:302 view/theme/vier/config.php:116 +msgid "don't show" +msgstr "nicht zeigen" + #: src/Core/ACL.php:311 msgid "Connectors" msgstr "Connectoren" @@ -6798,18 +5370,6 @@ msgstr "Konnektoren sind nicht verfügbar, da \"%s\" aktiv ist." msgid "Close" msgstr "Schließen" -#: src/Core/Authentication.php:88 -msgid "Welcome " -msgstr "Willkommen " - -#: src/Core/Authentication.php:89 -msgid "Please upload a profile photo." -msgstr "Bitte lade ein Profilbild hoch." - -#: src/Core/Authentication.php:91 -msgid "Welcome back " -msgstr "Willkommen zurück " - #: src/Core/Installer.php:164 msgid "" "The database configuration file \"config/local.config.php\" could not be " @@ -6823,8 +5383,8 @@ msgid "" "or mysql." msgstr "Möglicherweise musst du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren." -#: src/Core/Installer.php:184 src/Module/Install.php:171 -#: src/Module/Install.php:331 +#: src/Core/Installer.php:184 src/Module/Install.php:172 +#: src/Module/Install.php:328 msgid "Please see the file \"INSTALL.txt\"." msgstr "Lies bitte die \"INSTALL.txt\"." @@ -7271,15 +5831,6 @@ msgstr "abfuhrerteilte" msgid "System" msgstr "System" -#: src/Core/NotificationsManager.php:165 src/Content/Nav.php:180 -#: src/Content/Nav.php:242 -msgid "Home" -msgstr "Pinnwand" - -#: src/Core/NotificationsManager.php:172 src/Content/Nav.php:246 -msgid "Introductions" -msgstr "Kontaktanfragen" - #: src/Core/NotificationsManager.php:234 src/Core/NotificationsManager.php:246 #, php-format msgid "%s commented on %s's post" @@ -7332,64 +5883,19 @@ msgstr "Kontakt-/Freundschaftsanfrage" msgid "New Follower" msgstr "Neuer Bewunderer" -#: src/Core/System.php:137 -msgid "Error 400 - Bad Request" -msgstr "Error 400 - Bad Request" +#: src/Core/Session.php:194 +#, php-format +msgid "Welcome %s" +msgstr "Willkommen %s" -#: src/Core/System.php:138 -msgid "Error 401 - Unauthorized" -msgstr "Error 401 - Unauthorized" +#: src/Core/Session.php:195 +msgid "Please upload a profile photo." +msgstr "Bitte lade ein Profilbild hoch." -#: src/Core/System.php:139 -msgid "Error 403 - Forbidden" -msgstr "Error 403 - Forbidden" - -#: src/Core/System.php:140 -msgid "Error 404 - Not Found" -msgstr "Error 404 - Not Found" - -#: src/Core/System.php:141 -msgid "Error 500 - Internal Server Error" -msgstr "Error 500 - Internal Server Error" - -#: src/Core/System.php:142 -msgid "Error 503 - Service Unavailable" -msgstr "Error 503 - Service Unavailable" - -#: src/Core/System.php:150 -msgid "" -"The server cannot or will not process the request due to an apparent client " -"error." -msgstr "Aufgrund eines offensichtlichen Fehlers auf der Seite des Clients kann oder wird der Server die Anfrage nicht bearbeiten." - -#: src/Core/System.php:151 -msgid "" -"Authentication is required and has failed or has not yet been provided." -msgstr "Die erforderliche Authentifizierung ist fehlgeschlagen oder noch nicht erfolgt." - -#: src/Core/System.php:152 -msgid "" -"The request was valid, but the server is refusing action. The user might not" -" have the necessary permissions for a resource, or may need an account." -msgstr "Die Anfrage war gültig, aber der Server verweigert die Ausführung. Der Benutzer verfügt möglicherweise nicht über die erforderlichen Berechtigungen oder benötigt ein Nutzerkonto." - -#: src/Core/System.php:153 -msgid "" -"The requested resource could not be found but may be available in the " -"future." -msgstr "Die angeforderte Ressource konnte nicht gefunden werden, sie könnte allerdings zu einem späteren Zeitpunkt verfügbar sein." - -#: src/Core/System.php:154 -msgid "" -"An unexpected condition was encountered and no more specific message is " -"suitable." -msgstr "Eine unerwartete Situation ist eingetreten, zu der keine detailliertere Nachricht vorliegt." - -#: src/Core/System.php:155 -msgid "" -"The server is currently unavailable (because it is overloaded or down for " -"maintenance). Please try again later." -msgstr "Der Server ist derzeit nicht verfügbar (wegen Überlastung oder Wartungsarbeiten). Bitte versuche es später noch einmal." +#: src/Core/Session.php:198 +#, php-format +msgid "Welcome back %s" +msgstr "Willkommen zurück %s" #: src/Core/Update.php:193 #, php-format @@ -7413,7 +5919,7 @@ msgid "" "[pre]%s[/pre]" msgstr "Die Fehlermeldung lautet\n[pre]%s[/pre]" -#: src/Core/Update.php:269 +#: src/Core/Update.php:269 src/Core/Update.php:308 msgid "[Friendica Notify] Database update" msgstr "[Friendica-Benachrichtigung]: Datenbank Update" @@ -7456,800 +5962,6 @@ msgstr[1] "%d Kontakte nicht importiert" msgid "Done. You can now login with your username and password" msgstr "Erledigt. Du kannst dich jetzt mit deinem Nutzernamen und Passwort anmelden" -#: src/Util/Temporal.php:147 src/Model/Profile.php:771 -msgid "Birthday:" -msgstr "Geburtstag:" - -#: src/Util/Temporal.php:151 -msgid "YYYY-MM-DD or MM-DD" -msgstr "YYYY-MM-DD oder MM-DD" - -#: src/Util/Temporal.php:298 -msgid "never" -msgstr "nie" - -#: src/Util/Temporal.php:305 -msgid "less than a second ago" -msgstr "vor weniger als einer Sekunde" - -#: src/Util/Temporal.php:313 -msgid "year" -msgstr "Jahr" - -#: src/Util/Temporal.php:313 -msgid "years" -msgstr "Jahre" - -#: src/Util/Temporal.php:314 -msgid "months" -msgstr "Monate" - -#: src/Util/Temporal.php:315 -msgid "weeks" -msgstr "Wochen" - -#: src/Util/Temporal.php:316 -msgid "days" -msgstr "Tage" - -#: src/Util/Temporal.php:317 -msgid "hour" -msgstr "Stunde" - -#: src/Util/Temporal.php:317 -msgid "hours" -msgstr "Stunden" - -#: src/Util/Temporal.php:318 -msgid "minute" -msgstr "Minute" - -#: src/Util/Temporal.php:318 -msgid "minutes" -msgstr "Minuten" - -#: src/Util/Temporal.php:319 -msgid "second" -msgstr "Sekunde" - -#: src/Util/Temporal.php:319 -msgid "seconds" -msgstr "Sekunden" - -#: src/Util/Temporal.php:329 -#, php-format -msgid "in %1$d %2$s" -msgstr "in %1$d %2$s" - -#: src/Util/Temporal.php:332 -#, php-format -msgid "%1$d %2$s ago" -msgstr "vor %1$d %2$s" - -#: src/Content/Text/HTML.php:800 -msgid "Loading more entries..." -msgstr "lade weitere Einträge..." - -#: src/Content/Text/HTML.php:801 -msgid "The end" -msgstr "Das Ende" - -#: src/Content/Text/HTML.php:894 -msgid "Follow" -msgstr "Folge" - -#: src/Content/Text/HTML.php:903 src/Content/Nav.php:79 -msgid "@name, !forum, #tags, content" -msgstr "@name, !forum, #tags, content" - -#: src/Content/Text/HTML.php:909 src/Content/Nav.php:201 -msgid "Full Text" -msgstr "Volltext" - -#: src/Content/Text/HTML.php:910 src/Content/Widget/TagCloud.php:54 -#: src/Content/Nav.php:202 -msgid "Tags" -msgstr "Tags" - -#: src/Content/Text/HTML.php:951 src/Model/Item.php:3529 -#: src/Model/Item.php:3540 -msgid "Click to open/close" -msgstr "Zum Öffnen/Schließen klicken" - -#: src/Content/Text/BBCode.php:430 -msgid "view full size" -msgstr "Volle Größe anzeigen" - -#: src/Content/Text/BBCode.php:864 src/Content/Text/BBCode.php:1591 -#: src/Content/Text/BBCode.php:1592 -msgid "Image/photo" -msgstr "Bild/Foto" - -#: src/Content/Text/BBCode.php:972 -#, php-format -msgid "%2$s %3$s" -msgstr "%2$s %3$s" - -#: src/Content/Text/BBCode.php:1518 src/Content/Text/BBCode.php:1540 -msgid "$1 wrote:" -msgstr "$1 hat geschrieben:" - -#: src/Content/Text/BBCode.php:1602 src/Content/Text/BBCode.php:1603 -msgid "Encrypted content" -msgstr "Verschlüsselter Inhalt" - -#: src/Content/Text/BBCode.php:1710 -msgid "Invalid source protocol" -msgstr "Ungültiges Quell-Protokoll" - -#: src/Content/Text/BBCode.php:1721 -msgid "Invalid link protocol" -msgstr "Ungültiges Link-Protokoll" - -#: src/Content/Widget/CalendarExport.php:64 -msgid "Export" -msgstr "Exportieren" - -#: src/Content/Widget/CalendarExport.php:65 -msgid "Export calendar as ical" -msgstr "Kalender als ical exportieren" - -#: src/Content/Widget/CalendarExport.php:66 -msgid "Export calendar as csv" -msgstr "Kalender als csv exportieren" - -#: src/Content/Widget/ContactBlock.php:58 -msgid "No contacts" -msgstr "Keine Kontakte" - -#: src/Content/Widget/ContactBlock.php:90 -#, php-format -msgid "%d Contact" -msgid_plural "%d Contacts" -msgstr[0] "%d Kontakt" -msgstr[1] "%d Kontakte" - -#: src/Content/Widget/ContactBlock.php:109 -msgid "View Contacts" -msgstr "Kontakte anzeigen" - -#: src/Content/Feature.php:82 -msgid "General Features" -msgstr "Allgemeine Features" - -#: src/Content/Feature.php:84 -msgid "Multiple Profiles" -msgstr "Mehrere Profile" - -#: src/Content/Feature.php:84 -msgid "Ability to create multiple profiles" -msgstr "Möglichkeit, mehrere Profile zu erstellen" - -#: src/Content/Feature.php:85 -msgid "Photo Location" -msgstr "Aufnahmeort" - -#: src/Content/Feature.php:85 -msgid "" -"Photo metadata is normally stripped. This extracts the location (if present)" -" prior to stripping metadata and links it to a map." -msgstr "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden." - -#: src/Content/Feature.php:86 -msgid "Export Public Calendar" -msgstr "Öffentlichen Kalender exportieren" - -#: src/Content/Feature.php:86 -msgid "Ability for visitors to download the public calendar" -msgstr "Möglichkeit für Besucher, den öffentlichen Kalender herunter zu laden" - -#: src/Content/Feature.php:91 -msgid "Post Composition Features" -msgstr "Beitragserstellung-Features" - -#: src/Content/Feature.php:92 -msgid "Auto-mention Forums" -msgstr "Foren automatisch erwähnen" - -#: src/Content/Feature.php:92 -msgid "" -"Add/remove mention when a forum page is selected/deselected in ACL window." -msgstr "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde." - -#: src/Content/Feature.php:93 -msgid "Explicit Mentions" -msgstr "Explizite Erwähnungen" - -#: src/Content/Feature.php:93 -msgid "" -"Add explicit mentions to comment box for manual control over who gets " -"mentioned in replies." -msgstr "Füge Erwähnungen zum Kommentarfeld hinzu, um manuell über die explizite Erwähnung von Gesprächsteilnehmern zu entscheiden." - -#: src/Content/Feature.php:98 -msgid "Network Sidebar" -msgstr "Netzwerk-Seitenleiste" - -#: src/Content/Feature.php:99 -msgid "Ability to select posts by date ranges" -msgstr "Möglichkeit, die Beiträge nach Datumsbereichen zu sortieren" - -#: src/Content/Feature.php:100 -msgid "Protocol Filter" -msgstr "Protokoll-Filter" - -#: src/Content/Feature.php:100 -msgid "Enable widget to display Network posts only from selected protocols" -msgstr "Aktiviere Widget, um Netzwerkbeiträge nur von ausgesuchten Protokollen anzuzeigen" - -#: src/Content/Feature.php:105 -msgid "Network Tabs" -msgstr "Netzwerk-Reiter" - -#: src/Content/Feature.php:106 -msgid "Network New Tab" -msgstr "Netzwerk-Reiter: Neue" - -#: src/Content/Feature.php:106 -msgid "Enable tab to display only new Network posts (from the last 12 hours)" -msgstr "Aktiviert einen Netzwerk-Reiter, in dem ausschließlich neue Beiträge (der letzten 12 Stunden) angezeigt werden" - -#: src/Content/Feature.php:107 -msgid "Network Shared Links Tab" -msgstr "Netzwerk-Reiter: Geteilte Links" - -#: src/Content/Feature.php:107 -msgid "Enable tab to display only Network posts with links in them" -msgstr "Aktiviert einen Netzwerk-Reiter, der ausschließlich Nachrichten mit Links enthält" - -#: src/Content/Feature.php:112 -msgid "Post/Comment Tools" -msgstr "Werkzeuge für Beiträge und Kommentare" - -#: src/Content/Feature.php:113 -msgid "Post Categories" -msgstr "Beitragskategorien" - -#: src/Content/Feature.php:113 -msgid "Add categories to your posts" -msgstr "Eigene Beiträge mit Kategorien versehen" - -#: src/Content/Feature.php:118 -msgid "Advanced Profile Settings" -msgstr "Erweiterte Profil-Einstellungen" - -#: src/Content/Feature.php:119 -msgid "List Forums" -msgstr "Zeige Foren" - -#: src/Content/Feature.php:119 -msgid "Show visitors public community forums at the Advanced Profile Page" -msgstr "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite" - -#: src/Content/Feature.php:120 -msgid "Tag Cloud" -msgstr "Schlagwortwolke" - -#: src/Content/Feature.php:120 -msgid "Provide a personal tag cloud on your profile page" -msgstr "Wortwolke aus den von dir verwendeten Schlagwörtern im Profil anzeigen" - -#: src/Content/Feature.php:121 -msgid "Display Membership Date" -msgstr "Mitgliedschaftsdatum anzeigen" - -#: src/Content/Feature.php:121 -msgid "Display membership date in profile" -msgstr "Das Datum der Registrierung deines Accounts im Profil anzeigen" - -#: src/Content/Nav.php:74 -msgid "Nothing new here" -msgstr "Keine Neuigkeiten" - -#: src/Content/Nav.php:78 -msgid "Clear notifications" -msgstr "Bereinige Benachrichtigungen" - -#: src/Content/Nav.php:161 -msgid "Personal notes" -msgstr "Persönliche Notizen" - -#: src/Content/Nav.php:161 -msgid "Your personal notes" -msgstr "Deine persönlichen Notizen" - -#: src/Content/Nav.php:170 -msgid "Sign in" -msgstr "Anmelden" - -#: src/Content/Nav.php:180 -msgid "Home Page" -msgstr "Homepage" - -#: src/Content/Nav.php:184 src/Module/Login.php:293 -#: src/Module/Register.php:136 -msgid "Register" -msgstr "Registrieren" - -#: src/Content/Nav.php:184 -msgid "Create an account" -msgstr "Nutzerkonto erstellen" - -#: src/Content/Nav.php:190 -msgid "Help and documentation" -msgstr "Hilfe und Dokumentation" - -#: src/Content/Nav.php:194 -msgid "Apps" -msgstr "Apps" - -#: src/Content/Nav.php:194 -msgid "Addon applications, utilities, games" -msgstr "Zusätzliche Anwendungen, Dienstprogramme, Spiele" - -#: src/Content/Nav.php:198 -msgid "Search site content" -msgstr "Inhalt der Seite durchsuchen" - -#: src/Content/Nav.php:222 -msgid "Community" -msgstr "Gemeinschaft" - -#: src/Content/Nav.php:222 -msgid "Conversations on this and other servers" -msgstr "Unterhaltungen auf diesem und anderen Servern" - -#: src/Content/Nav.php:229 -msgid "Directory" -msgstr "Verzeichnis" - -#: src/Content/Nav.php:229 -msgid "People directory" -msgstr "Nutzerverzeichnis" - -#: src/Content/Nav.php:231 -msgid "Information about this friendica instance" -msgstr "Informationen zu dieser Friendica-Instanz" - -#: src/Content/Nav.php:234 -msgid "Terms of Service of this Friendica instance" -msgstr "Die Nutzungsbedingungen dieser Friendica-Instanz" - -#: src/Content/Nav.php:240 -msgid "Network Reset" -msgstr "Netzwerk zurücksetzen" - -#: src/Content/Nav.php:240 -msgid "Load Network page with no filters" -msgstr "Netzwerk-Seite ohne Filter laden" - -#: src/Content/Nav.php:246 -msgid "Friend Requests" -msgstr "Kontaktanfragen" - -#: src/Content/Nav.php:248 -msgid "See all notifications" -msgstr "Alle Benachrichtigungen anzeigen" - -#: src/Content/Nav.php:249 -msgid "Mark all system notifications seen" -msgstr "Markiere alle Systembenachrichtigungen als gelesen" - -#: src/Content/Nav.php:253 -msgid "Inbox" -msgstr "Eingang" - -#: src/Content/Nav.php:254 -msgid "Outbox" -msgstr "Ausgang" - -#: src/Content/Nav.php:258 -msgid "Manage" -msgstr "Verwalten" - -#: src/Content/Nav.php:258 -msgid "Manage other pages" -msgstr "Andere Seiten verwalten" - -#: src/Content/Nav.php:266 -msgid "Manage/Edit Profiles" -msgstr "Profile verwalten/editieren" - -#: src/Content/Nav.php:274 -msgid "Site setup and configuration" -msgstr "Einstellungen der Seite und Konfiguration" - -#: src/Content/Nav.php:277 -msgid "Navigation" -msgstr "Navigation" - -#: src/Content/Nav.php:277 -msgid "Site map" -msgstr "Sitemap" - -#: src/Content/OEmbed.php:256 -msgid "Embedding disabled" -msgstr "Einbettungen deaktiviert" - -#: src/Content/OEmbed.php:379 -msgid "Embedded content" -msgstr "Eingebetteter Inhalt" - -#: src/Content/Pager.php:153 -msgid "newer" -msgstr "neuer" - -#: src/Content/Pager.php:158 -msgid "older" -msgstr "älter" - -#: src/Content/Pager.php:203 -msgid "prev" -msgstr "vorige" - -#: src/Content/Pager.php:263 -msgid "last" -msgstr "letzte" - -#: src/Content/Widget.php:35 -msgid "Add New Contact" -msgstr "Neuen Kontakt hinzufügen" - -#: src/Content/Widget.php:36 -msgid "Enter address or web location" -msgstr "Adresse oder Web-Link eingeben" - -#: src/Content/Widget.php:37 -msgid "Example: bob@example.com, http://example.com/barbara" -msgstr "Beispiel: bob@example.com, http://example.com/barbara" - -#: src/Content/Widget.php:55 -#, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "%d Einladung verfügbar" -msgstr[1] "%d Einladungen verfügbar" - -#: src/Content/Widget.php:158 -msgid "Protocols" -msgstr "Protokolle" - -#: src/Content/Widget.php:161 -msgid "All Protocols" -msgstr "Alle Protokolle" - -#: src/Content/Widget.php:198 -msgid "Saved Folders" -msgstr "Gespeicherte Ordner" - -#: src/Content/Widget.php:201 src/Content/Widget.php:243 -msgid "Everything" -msgstr "Alles" - -#: src/Content/Widget.php:240 -msgid "Categories" -msgstr "Kategorien" - -#: src/Content/Widget.php:324 -#, php-format -msgid "%d contact in common" -msgid_plural "%d contacts in common" -msgstr[0] "%d gemeinsamer Kontakt" -msgstr[1] "%d gemeinsame Kontakte" - -#: src/Content/ContactSelector.php:58 -msgid "Frequently" -msgstr "immer wieder" - -#: src/Content/ContactSelector.php:59 -msgid "Hourly" -msgstr "Stündlich" - -#: src/Content/ContactSelector.php:60 -msgid "Twice daily" -msgstr "Zweimal täglich" - -#: src/Content/ContactSelector.php:61 -msgid "Daily" -msgstr "Täglich" - -#: src/Content/ContactSelector.php:62 -msgid "Weekly" -msgstr "Wöchentlich" - -#: src/Content/ContactSelector.php:63 -msgid "Monthly" -msgstr "Monatlich" - -#: src/Content/ContactSelector.php:83 -msgid "DFRN" -msgstr "DFRN" - -#: src/Content/ContactSelector.php:84 -msgid "OStatus" -msgstr "OStatus" - -#: src/Content/ContactSelector.php:85 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: src/Content/ContactSelector.php:88 -msgid "Zot!" -msgstr "Zott" - -#: src/Content/ContactSelector.php:89 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: src/Content/ContactSelector.php:90 -msgid "XMPP/IM" -msgstr "XMPP/Chat" - -#: src/Content/ContactSelector.php:91 -msgid "MySpace" -msgstr "MySpace" - -#: src/Content/ContactSelector.php:92 -msgid "Google+" -msgstr "Google+" - -#: src/Content/ContactSelector.php:93 -msgid "pump.io" -msgstr "pump.io" - -#: src/Content/ContactSelector.php:94 -msgid "Twitter" -msgstr "Twitter" - -#: src/Content/ContactSelector.php:95 -msgid "Diaspora Connector" -msgstr "Diaspora Connector" - -#: src/Content/ContactSelector.php:96 -msgid "GNU Social Connector" -msgstr "GNU Social Connector" - -#: src/Content/ContactSelector.php:97 -msgid "ActivityPub" -msgstr "ActivityPub" - -#: src/Content/ContactSelector.php:98 -msgid "pnut" -msgstr "pnut" - -#: src/Content/ContactSelector.php:153 src/Content/ContactSelector.php:193 -#: src/Content/ContactSelector.php:231 -msgid "No answer" -msgstr "Keine Antwort" - -#: src/Content/ContactSelector.php:154 -msgid "Male" -msgstr "Männlich" - -#: src/Content/ContactSelector.php:155 -msgid "Female" -msgstr "Weiblich" - -#: src/Content/ContactSelector.php:156 -msgid "Currently Male" -msgstr "Momentan männlich" - -#: src/Content/ContactSelector.php:157 -msgid "Currently Female" -msgstr "Momentan weiblich" - -#: src/Content/ContactSelector.php:158 -msgid "Mostly Male" -msgstr "Hauptsächlich männlich" - -#: src/Content/ContactSelector.php:159 -msgid "Mostly Female" -msgstr "Hauptsächlich weiblich" - -#: src/Content/ContactSelector.php:160 -msgid "Transgender" -msgstr "Transgender" - -#: src/Content/ContactSelector.php:161 -msgid "Intersex" -msgstr "Intersex" - -#: src/Content/ContactSelector.php:162 -msgid "Transsexual" -msgstr "Transsexuell" - -#: src/Content/ContactSelector.php:163 -msgid "Hermaphrodite" -msgstr "Hermaphrodit" - -#: src/Content/ContactSelector.php:164 -msgid "Neuter" -msgstr "Neuter" - -#: src/Content/ContactSelector.php:165 -msgid "Non-specific" -msgstr "Nicht spezifiziert" - -#: src/Content/ContactSelector.php:166 -msgid "Other" -msgstr "Andere" - -#: src/Content/ContactSelector.php:194 -msgid "Males" -msgstr "Männer" - -#: src/Content/ContactSelector.php:195 -msgid "Females" -msgstr "Frauen" - -#: src/Content/ContactSelector.php:196 -msgid "Gay" -msgstr "Schwul" - -#: src/Content/ContactSelector.php:197 -msgid "Lesbian" -msgstr "Lesbisch" - -#: src/Content/ContactSelector.php:198 -msgid "No Preference" -msgstr "Keine Vorlieben" - -#: src/Content/ContactSelector.php:199 -msgid "Bisexual" -msgstr "Bisexuell" - -#: src/Content/ContactSelector.php:200 -msgid "Autosexual" -msgstr "Autosexuell" - -#: src/Content/ContactSelector.php:201 -msgid "Abstinent" -msgstr "Abstinent" - -#: src/Content/ContactSelector.php:202 -msgid "Virgin" -msgstr "Jungfrauen" - -#: src/Content/ContactSelector.php:203 -msgid "Deviant" -msgstr "Deviant" - -#: src/Content/ContactSelector.php:204 -msgid "Fetish" -msgstr "Fetish" - -#: src/Content/ContactSelector.php:205 -msgid "Oodles" -msgstr "Oodles" - -#: src/Content/ContactSelector.php:206 -msgid "Nonsexual" -msgstr "Nonsexual" - -#: src/Content/ContactSelector.php:232 -msgid "Single" -msgstr "Single" - -#: src/Content/ContactSelector.php:233 -msgid "Lonely" -msgstr "Einsam" - -#: src/Content/ContactSelector.php:234 -msgid "Available" -msgstr "Verfügbar" - -#: src/Content/ContactSelector.php:235 -msgid "Unavailable" -msgstr "Nicht verfügbar" - -#: src/Content/ContactSelector.php:236 -msgid "Has crush" -msgstr "verknallt" - -#: src/Content/ContactSelector.php:237 -msgid "Infatuated" -msgstr "verliebt" - -#: src/Content/ContactSelector.php:238 -msgid "Dating" -msgstr "Dating" - -#: src/Content/ContactSelector.php:239 -msgid "Unfaithful" -msgstr "Untreu" - -#: src/Content/ContactSelector.php:240 -msgid "Sex Addict" -msgstr "Sexbesessen" - -#: src/Content/ContactSelector.php:241 src/Model/User.php:702 -msgid "Friends" -msgstr "Kontakte" - -#: src/Content/ContactSelector.php:242 -msgid "Friends/Benefits" -msgstr "Freunde/Zuwendungen" - -#: src/Content/ContactSelector.php:243 -msgid "Casual" -msgstr "Casual" - -#: src/Content/ContactSelector.php:244 -msgid "Engaged" -msgstr "Verlobt" - -#: src/Content/ContactSelector.php:245 -msgid "Married" -msgstr "Verheiratet" - -#: src/Content/ContactSelector.php:246 -msgid "Imaginarily married" -msgstr "imaginär verheiratet" - -#: src/Content/ContactSelector.php:247 -msgid "Partners" -msgstr "Partner" - -#: src/Content/ContactSelector.php:248 -msgid "Cohabiting" -msgstr "zusammenlebend" - -#: src/Content/ContactSelector.php:249 -msgid "Common law" -msgstr "wilde Ehe" - -#: src/Content/ContactSelector.php:250 -msgid "Happy" -msgstr "Glücklich" - -#: src/Content/ContactSelector.php:251 -msgid "Not looking" -msgstr "Nicht auf der Suche" - -#: src/Content/ContactSelector.php:252 -msgid "Swinger" -msgstr "Swinger" - -#: src/Content/ContactSelector.php:253 -msgid "Betrayed" -msgstr "Betrogen" - -#: src/Content/ContactSelector.php:254 -msgid "Separated" -msgstr "Getrennt" - -#: src/Content/ContactSelector.php:255 -msgid "Unstable" -msgstr "Unstabil" - -#: src/Content/ContactSelector.php:256 -msgid "Divorced" -msgstr "Geschieden" - -#: src/Content/ContactSelector.php:257 -msgid "Imaginarily divorced" -msgstr "Imaginär geschieden" - -#: src/Content/ContactSelector.php:258 -msgid "Widowed" -msgstr "Verwitwet" - -#: src/Content/ContactSelector.php:259 -msgid "Uncertain" -msgstr "Unsicher" - -#: src/Content/ContactSelector.php:260 -msgid "It's complicated" -msgstr "Ist kompliziert" - -#: src/Content/ContactSelector.php:261 -msgid "Don't care" -msgstr "Ist mir nicht wichtig" - -#: src/Content/ContactSelector.php:262 -msgid "Ask me" -msgstr "Frag mich" - #: src/Database/DBStructure.php:47 msgid "There are no tables on MyISAM." msgstr "Es gibt keine MyISAM-Tabellen." @@ -8276,119 +5988,81 @@ msgstr "%s: Datenbank Aktualisierung" msgid "%s: updating %s table." msgstr "%s: aktualisiere Tabelle %s" -#: src/Model/FileTag.php:256 -msgid "Item filed" -msgstr "Beitrag abgelegt" - -#: src/Model/Mail.php:40 src/Model/Mail.php:175 -msgid "[no subject]" -msgstr "[kein Betreff]" - -#: src/Model/Storage/Filesystem.php:63 +#: src/LegacyModule.php:30 #, php-format -msgid "Filesystem storage failed to create \"%s\". Check you write permissions." -msgstr "Dateisystemspeicher konnte nicht erstellt werden \"%s\". Überprüfe, ob du Schreibberechtigungen hast." +msgid "Legacy module file not found: %s" +msgstr "Legacy-Moduldatei nicht gefunden: %s" -#: src/Model/Storage/Filesystem.php:105 -#, php-format -msgid "" -"Filesystem storage failed to save data to \"%s\". Check your write " -"permissions" -msgstr "Der Dateisystemspeicher konnte die Daten nicht in \"%s\" speichern. Überprüfe Deine Schreibberechtigungen" - -#: src/Model/Storage/Filesystem.php:126 -msgid "Storage base path" -msgstr "Dateipfad zum Speicher" - -#: src/Model/Storage/Filesystem.php:128 -msgid "" -"Folder where uploaded files are saved. For maximum security, This should be " -"a path outside web server folder tree" -msgstr "Verzeichnis, in das Dateien hochgeladen werden. Für maximale Sicherheit sollte dies ein Pfad außerhalb der Webserver-Verzeichnisstruktur sein" - -#: src/Model/Storage/Filesystem.php:138 -msgid "Enter a valid existing folder" -msgstr "Gib einen gültigen, existierenden Ordner ein" - -#: src/Model/Storage/Database.php:36 -#, php-format -msgid "Database storage failed to update %s" -msgstr "Datenbankspeicher konnte nicht aktualisiert werden %s" - -#: src/Model/Storage/Database.php:43 -msgid "Database storage failed to insert data" -msgstr "Der Datenbankspeicher konnte keine Daten einfügen" - -#: src/Model/Contact.php:1073 +#: src/Model/Contact.php:1116 msgid "Drop Contact" msgstr "Kontakt löschen" -#: src/Model/Contact.php:1608 +#: src/Model/Contact.php:1651 msgid "Organisation" msgstr "Organisation" -#: src/Model/Contact.php:1612 +#: src/Model/Contact.php:1655 msgid "News" msgstr "Nachrichten" -#: src/Model/Contact.php:1616 +#: src/Model/Contact.php:1659 msgid "Forum" msgstr "Forum" -#: src/Model/Contact.php:1811 +#: src/Model/Contact.php:1888 msgid "Connect URL missing." msgstr "Connect-URL fehlt" -#: src/Model/Contact.php:1820 +#: src/Model/Contact.php:1897 msgid "" "The contact could not be added. Please check the relevant network " "credentials in your Settings -> Social Networks page." msgstr "Der Kontakt konnte nicht hinzugefügt werden. Bitte überprüfe die Einstellungen unter Einstellungen -> Soziale Netzwerke" -#: src/Model/Contact.php:1859 +#: src/Model/Contact.php:1938 msgid "" "This site is not configured to allow communications with other networks." msgstr "Diese Seite ist so konfiguriert, dass keine Kommunikation mit anderen Netzwerken erfolgen kann." -#: src/Model/Contact.php:1860 src/Model/Contact.php:1873 +#: src/Model/Contact.php:1939 src/Model/Contact.php:1952 msgid "No compatible communication protocols or feeds were discovered." msgstr "Es wurden keine kompatiblen Kommunikationsprotokolle oder Feeds gefunden." -#: src/Model/Contact.php:1871 +#: src/Model/Contact.php:1950 msgid "The profile address specified does not provide adequate information." msgstr "Die angegebene Profiladresse liefert unzureichende Informationen." -#: src/Model/Contact.php:1876 +#: src/Model/Contact.php:1955 msgid "An author or name was not found." msgstr "Es wurde kein Autor oder Name gefunden." -#: src/Model/Contact.php:1879 +#: src/Model/Contact.php:1958 msgid "No browser URL could be matched to this address." msgstr "Zu dieser Adresse konnte keine passende Browser-URL gefunden werden." -#: src/Model/Contact.php:1882 +#: src/Model/Contact.php:1961 msgid "" "Unable to match @-style Identity Address with a known protocol or email " "contact." msgstr "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen." -#: src/Model/Contact.php:1883 +#: src/Model/Contact.php:1962 msgid "Use mailto: in front of address to force email check." msgstr "Verwende mailto: vor der E-Mail-Adresse, um eine Überprüfung der E-Mail-Adresse zu erzwingen." -#: src/Model/Contact.php:1889 +#: src/Model/Contact.php:1968 msgid "" "The profile address specified belongs to a network which has been disabled " "on this site." msgstr "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde." -#: src/Model/Contact.php:1894 +#: src/Model/Contact.php:1973 msgid "" "Limited profile. This person will be unable to receive direct/personal " "notifications from you." msgstr "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können." -#: src/Model/Contact.php:1947 +#: src/Model/Contact.php:2027 msgid "Unable to retrieve contact information." msgstr "Konnte die Kontaktinformationen nicht empfangen." @@ -8438,7 +6112,7 @@ msgstr "Veranstaltung kopieren" msgid "Delete event" msgstr "Veranstaltung löschen" -#: src/Model/Event.php:626 src/Model/Item.php:3580 src/Model/Item.php:3587 +#: src/Model/Event.php:626 src/Model/Item.php:3522 src/Model/Item.php:3529 msgid "link to source" msgstr "Link zum Originalbeitrag" @@ -8468,6 +6142,10 @@ msgstr "%ss Geburtstag" msgid "Happy Birthday %s" msgstr "Herzlichen Glückwunsch, %s" +#: src/Model/FileTag.php:256 +msgid "Item filed" +msgstr "Beitrag abgelegt" + #: src/Model/Group.php:63 msgid "" "A deleted group with this name was revived. Existing item permissions " @@ -8491,7 +6169,7 @@ msgstr "bearbeiten" msgid "Edit group" msgstr "Gruppe bearbeiten" -#: src/Model/Group.php:440 src/Module/Group.php:179 +#: src/Model/Group.php:440 src/Module/Group.php:186 msgid "Contacts not in any group" msgstr "Kontakte in keiner Gruppe" @@ -8499,8 +6177,8 @@ msgstr "Kontakte in keiner Gruppe" msgid "Create a new group" msgstr "Neue Gruppe erstellen" -#: src/Model/Group.php:443 src/Module/Group.php:166 src/Module/Group.php:187 -#: src/Module/Group.php:260 +#: src/Model/Group.php:443 src/Module/Group.php:171 src/Module/Group.php:194 +#: src/Module/Group.php:271 msgid "Group Name: " msgstr "Gruppenname:" @@ -8508,304 +6186,353 @@ msgstr "Gruppenname:" msgid "Edit groups" msgstr "Gruppen bearbeiten" -#: src/Model/Item.php:3313 +#: src/Model/Item.php:3257 msgid "activity" msgstr "Aktivität" -#: src/Model/Item.php:3315 src/Object/Post.php:472 +#: src/Model/Item.php:3259 src/Object/Post.php:472 msgid "comment" msgid_plural "comments" msgstr[0] "Kommentar" msgstr[1] "Kommentare" -#: src/Model/Item.php:3318 +#: src/Model/Item.php:3262 msgid "post" msgstr "Beitrag" -#: src/Model/Item.php:3417 +#: src/Model/Item.php:3361 #, php-format msgid "Content warning: %s" msgstr "Inhaltswarnung: %s" -#: src/Model/Item.php:3496 +#: src/Model/Item.php:3438 msgid "bytes" msgstr "Byte" -#: src/Model/Item.php:3574 +#: src/Model/Item.php:3516 msgid "View on separate page" msgstr "Auf separater Seite ansehen" -#: src/Model/Item.php:3575 +#: src/Model/Item.php:3517 msgid "view on separate page" msgstr "auf separater Seite ansehen" -#: src/Model/Profile.php:115 -msgid "Requested account is not available." -msgstr "Das angefragte Profil ist nicht vorhanden." +#: src/Model/Mail.php:109 src/Model/Mail.php:244 +msgid "[no subject]" +msgstr "[kein Betreff]" -#: src/Model/Profile.php:133 -msgid "Requested profile is not available." -msgstr "Das angefragte Profil ist nicht vorhanden." - -#: src/Model/Profile.php:181 src/Model/Profile.php:425 -#: src/Model/Profile.php:872 +#: src/Model/Profile.php:177 src/Model/Profile.php:421 +#: src/Model/Profile.php:866 msgid "Edit profile" msgstr "Profil bearbeiten" -#: src/Model/Profile.php:359 +#: src/Model/Profile.php:355 msgid "Atom feed" msgstr "Atom-Feed" -#: src/Model/Profile.php:398 +#: src/Model/Profile.php:394 msgid "Manage/edit profiles" msgstr "Profile verwalten/editieren" -#: src/Model/Profile.php:450 src/Module/Contact.php:645 +#: src/Model/Profile.php:443 src/Model/Profile.php:776 +#: src/Module/Directory.php:148 +msgid "Status:" +msgstr "Status:" + +#: src/Model/Profile.php:444 src/Model/Profile.php:793 +#: src/Module/Directory.php:149 +msgid "Homepage:" +msgstr "Homepage:" + +#: src/Model/Profile.php:446 src/Module/Contact.php:648 msgid "XMPP:" msgstr "XMPP:" -#: src/Model/Profile.php:573 src/Model/Profile.php:671 +#: src/Model/Profile.php:569 src/Model/Profile.php:666 msgid "g A l F d" msgstr "l, d. F G \\U\\h\\r" -#: src/Model/Profile.php:574 +#: src/Model/Profile.php:570 msgid "F d" msgstr "d. F" -#: src/Model/Profile.php:636 src/Model/Profile.php:722 +#: src/Model/Profile.php:632 src/Model/Profile.php:717 msgid "[today]" msgstr "[heute]" -#: src/Model/Profile.php:647 +#: src/Model/Profile.php:642 msgid "Birthday Reminders" msgstr "Geburtstagserinnerungen" -#: src/Model/Profile.php:648 +#: src/Model/Profile.php:643 msgid "Birthdays this week:" msgstr "Geburtstage diese Woche:" -#: src/Model/Profile.php:709 +#: src/Model/Profile.php:704 msgid "[No description]" msgstr "[keine Beschreibung]" -#: src/Model/Profile.php:736 +#: src/Model/Profile.php:730 msgid "Event Reminders" msgstr "Veranstaltungserinnerungen" -#: src/Model/Profile.php:737 +#: src/Model/Profile.php:731 msgid "Upcoming events the next 7 days:" msgstr "Veranstaltungen der nächsten 7 Tage:" -#: src/Model/Profile.php:754 +#: src/Model/Profile.php:748 msgid "Member since:" msgstr "Mitglied seit:" -#: src/Model/Profile.php:762 +#: src/Model/Profile.php:756 msgid "j F, Y" msgstr "j F, Y" -#: src/Model/Profile.php:763 +#: src/Model/Profile.php:757 msgid "j F" msgstr "j F" -#: src/Model/Profile.php:778 +#: src/Model/Profile.php:765 src/Util/Temporal.php:147 +msgid "Birthday:" +msgstr "Geburtstag:" + +#: src/Model/Profile.php:772 msgid "Age:" msgstr "Alter:" -#: src/Model/Profile.php:791 +#: src/Model/Profile.php:785 #, php-format msgid "for %1$d %2$s" msgstr "für %1$d %2$s" -#: src/Model/Profile.php:815 +#: src/Model/Profile.php:809 msgid "Religion:" msgstr "Religion:" -#: src/Model/Profile.php:823 +#: src/Model/Profile.php:817 msgid "Hobbies/Interests:" msgstr "Hobbies/Interessen:" -#: src/Model/Profile.php:835 +#: src/Model/Profile.php:829 msgid "Contact information and Social Networks:" msgstr "Kontaktinformationen und Soziale Netzwerke:" -#: src/Model/Profile.php:839 +#: src/Model/Profile.php:833 msgid "Musical interests:" msgstr "Musikalische Interessen:" -#: src/Model/Profile.php:843 +#: src/Model/Profile.php:837 msgid "Books, literature:" msgstr "Literatur/Bücher:" -#: src/Model/Profile.php:847 +#: src/Model/Profile.php:841 msgid "Television:" msgstr "Fernsehen:" -#: src/Model/Profile.php:851 +#: src/Model/Profile.php:845 msgid "Film/dance/culture/entertainment:" msgstr "Filme/Tänze/Kultur/Unterhaltung:" -#: src/Model/Profile.php:855 +#: src/Model/Profile.php:849 msgid "Love/Romance:" msgstr "Liebesleben:" -#: src/Model/Profile.php:859 +#: src/Model/Profile.php:853 msgid "Work/employment:" msgstr "Arbeit/Beschäftigung:" -#: src/Model/Profile.php:863 +#: src/Model/Profile.php:857 msgid "School/education:" msgstr "Schule/Ausbildung:" -#: src/Model/Profile.php:868 +#: src/Model/Profile.php:862 msgid "Forums:" msgstr "Foren:" -#: src/Model/Profile.php:912 src/Module/Contact.php:872 +#: src/Model/Profile.php:906 src/Module/Contact.php:875 msgid "Profile Details" msgstr "Profildetails" -#: src/Model/Profile.php:962 +#: src/Model/Profile.php:956 msgid "Only You Can See This" msgstr "Nur du kannst das sehen" -#: src/Model/Profile.php:970 src/Model/Profile.php:973 +#: src/Model/Profile.php:964 src/Model/Profile.php:967 msgid "Tips for New Members" msgstr "Tipps für neue Nutzer" -#: src/Model/Profile.php:1173 +#: src/Model/Profile.php:1167 #, php-format msgid "OpenWebAuth: %1$s welcomes %2$s" msgstr "OpenWebAuth: %1$s heißt %2$s herzlich willkommen" -#: src/Model/User.php:271 +#: src/Model/Storage/Database.php:36 +#, php-format +msgid "Database storage failed to update %s" +msgstr "Datenbankspeicher konnte nicht aktualisiert werden %s" + +#: src/Model/Storage/Database.php:43 +msgid "Database storage failed to insert data" +msgstr "Der Datenbankspeicher konnte keine Daten einfügen" + +#: src/Model/Storage/Filesystem.php:63 +#, php-format +msgid "Filesystem storage failed to create \"%s\". Check you write permissions." +msgstr "Dateisystemspeicher konnte nicht erstellt werden \"%s\". Überprüfe, ob du Schreibberechtigungen hast." + +#: src/Model/Storage/Filesystem.php:105 +#, php-format +msgid "" +"Filesystem storage failed to save data to \"%s\". Check your write " +"permissions" +msgstr "Der Dateisystemspeicher konnte die Daten nicht in \"%s\" speichern. Überprüfe Deine Schreibberechtigungen" + +#: src/Model/Storage/Filesystem.php:126 +msgid "Storage base path" +msgstr "Dateipfad zum Speicher" + +#: src/Model/Storage/Filesystem.php:128 +msgid "" +"Folder where uploaded files are saved. For maximum security, This should be " +"a path outside web server folder tree" +msgstr "Verzeichnis, in das Dateien hochgeladen werden. Für maximale Sicherheit sollte dies ein Pfad außerhalb der Webserver-Verzeichnisstruktur sein" + +#: src/Model/Storage/Filesystem.php:138 +msgid "Enter a valid existing folder" +msgstr "Gib einen gültigen, existierenden Ordner ein" + +#: src/Model/User.php:298 msgid "Login failed" msgstr "Anmeldung fehlgeschlagen" -#: src/Model/User.php:302 +#: src/Model/User.php:329 msgid "Not enough information to authenticate" msgstr "Nicht genügend Informationen für die Authentifizierung" -#: src/Model/User.php:380 +#: src/Model/User.php:407 msgid "Password can't be empty" msgstr "Das Passwort kann nicht leer sein" -#: src/Model/User.php:399 +#: src/Model/User.php:426 msgid "Empty passwords are not allowed." msgstr "Leere Passwörter sind nicht erlaubt." -#: src/Model/User.php:403 +#: src/Model/User.php:430 msgid "" "The new password has been exposed in a public data dump, please choose " "another." msgstr "Das neue Passwort wurde in einem öffentlichen Daten-Dump veröffentlicht. Bitte verwende ein anderes Passwort." -#: src/Model/User.php:409 +#: src/Model/User.php:436 msgid "" "The password can't contain accentuated letters, white spaces or colons (:)" msgstr "Das Passwort darf keine akzentuierten Buchstaben, Leerzeichen oder Doppelpunkte (:) beinhalten" -#: src/Model/User.php:509 +#: src/Model/User.php:536 msgid "Passwords do not match. Password unchanged." msgstr "Die Passwörter stimmen nicht überein. Das Passwort bleibt unverändert." -#: src/Model/User.php:516 +#: src/Model/User.php:543 msgid "An invitation is required." msgstr "Du benötigst eine Einladung." -#: src/Model/User.php:520 +#: src/Model/User.php:547 msgid "Invitation could not be verified." msgstr "Die Einladung konnte nicht überprüft werden." -#: src/Model/User.php:527 +#: src/Model/User.php:554 msgid "Invalid OpenID url" msgstr "Ungültige OpenID URL" -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "Beim Versuch, dich mit der von dir angegebenen OpenID anzumelden, trat ein Problem auf. Bitte überprüfe, dass du die OpenID richtig geschrieben hast." -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "The error message was:" msgstr "Die Fehlermeldung lautete:" -#: src/Model/User.php:546 +#: src/Model/User.php:573 msgid "Please enter the required information." msgstr "Bitte trage die erforderlichen Informationen ein." -#: src/Model/User.php:560 +#: src/Model/User.php:587 #, php-format msgid "" "system.username_min_length (%s) and system.username_max_length (%s) are " "excluding each other, swapping values." msgstr "system.username_min_length (%s) and system.username_max_length (%s) schließen sich gegenseitig aus, tausche Werte aus." -#: src/Model/User.php:567 +#: src/Model/User.php:594 #, php-format msgid "Username should be at least %s character." msgid_plural "Username should be at least %s characters." msgstr[0] "Der Benutzername sollte aus mindestens %s Zeichen bestehen." msgstr[1] "Der Benutzername sollte aus mindestens %s Zeichen bestehen." -#: src/Model/User.php:571 +#: src/Model/User.php:598 #, php-format msgid "Username should be at most %s character." msgid_plural "Username should be at most %s characters." msgstr[0] "Der Benutzername sollte aus maximal %s Zeichen bestehen." msgstr[1] "Der Benutzername sollte aus maximal %s Zeichen bestehen." -#: src/Model/User.php:579 +#: src/Model/User.php:606 msgid "That doesn't appear to be your full (First Last) name." msgstr "Das scheint nicht dein kompletter Name (Vor- und Nachname) zu sein." -#: src/Model/User.php:584 +#: src/Model/User.php:611 msgid "Your email domain is not among those allowed on this site." msgstr "Die Domain Deiner E-Mail-Adresse ist auf dieser Seite nicht erlaubt." -#: src/Model/User.php:588 +#: src/Model/User.php:615 msgid "Not a valid email address." msgstr "Keine gültige E-Mail-Adresse." -#: src/Model/User.php:591 +#: src/Model/User.php:618 msgid "The nickname was blocked from registration by the nodes admin." msgstr "Der Admin des Knotens hat den Spitznamen für die Registrierung gesperrt." -#: src/Model/User.php:595 src/Model/User.php:603 +#: src/Model/User.php:622 src/Model/User.php:630 msgid "Cannot use that email." msgstr "Konnte diese E-Mail-Adresse nicht verwenden." -#: src/Model/User.php:610 +#: src/Model/User.php:637 msgid "Your nickname can only contain a-z, 0-9 and _." msgstr "Dein Spitzname darf nur aus Buchstaben und Zahlen (\"a-z\",\"0-9\" und \"_\") bestehen." -#: src/Model/User.php:617 src/Model/User.php:674 +#: src/Model/User.php:644 src/Model/User.php:701 msgid "Nickname is already registered. Please choose another." msgstr "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen." -#: src/Model/User.php:627 +#: src/Model/User.php:654 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden." -#: src/Model/User.php:661 src/Model/User.php:665 +#: src/Model/User.php:688 src/Model/User.php:692 msgid "An error occurred during registration. Please try again." msgstr "Während der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal." -#: src/Model/User.php:690 +#: src/Model/User.php:712 view/theme/duepuntozero/config.php:55 +msgid "default" +msgstr "Standard" + +#: src/Model/User.php:717 msgid "An error occurred creating your default profile. Please try again." msgstr "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal." -#: src/Model/User.php:697 +#: src/Model/User.php:724 msgid "An error occurred creating your self contact. Please try again." msgstr "Bei der Erstellung deines self-Kontakts ist ein Fehler aufgetreten. Bitte versuche es erneut." -#: src/Model/User.php:706 +#: src/Model/User.php:733 msgid "" "An error occurred creating your default contact group. Please try again." msgstr "Bei der Erstellung deiner Standardgruppe für Kontakte ist ein Fehler aufgetreten. Bitte versuche es erneut." -#: src/Model/User.php:782 +#: src/Model/User.php:809 #, php-format msgid "" "\n" @@ -8820,12 +6547,12 @@ msgid "" "\t\t" msgstr "\n\t\t\tHallo %1$s,\n\t\t\t\tdanke für deine Registrierung auf %2$s. Dein Account muss noch vom Admin des Knotens freigeschaltet werden.\n\n\t\t\tDeine Zugangsdaten lauten wie folgt:\n\n\t\t\tSeitenadresse:\t%3$s\n\t\t\tAnmeldename:\t\t%4$s\n\t\t\tPasswort:\t\t%5$s\n\t\t" -#: src/Model/User.php:799 +#: src/Model/User.php:826 #, php-format msgid "Registration at %s" msgstr "Registrierung als %s" -#: src/Model/User.php:818 +#: src/Model/User.php:845 #, php-format msgid "" "\n" @@ -8834,7 +6561,7 @@ msgid "" "\t\t" msgstr "\nHallo %1$s,\n\ndanke für deine Registrierung auf %2$s. Dein Account wurde eingerichtet." -#: src/Model/User.php:824 +#: src/Model/User.php:851 #, php-format msgid "" "\n" @@ -8866,580 +6593,1855 @@ msgid "" "\t\t\tThank you and welcome to %2$s." msgstr "\nDie Anmelde-Details sind die folgenden:\n\tAdresse der Seite:\t%3$s\n\tBenutzernamename:\t%1$s\n\tPasswort:\t%5$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich\nangemeldet hast.\n\nBitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst du ja auch einige Informationen über dich in deinem\nProfil veröffentlichen, damit andere Leute dich einfacher finden können.\nBearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir\npassendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.\nAußerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.\n\nWir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nSolltest du dein Nutzerkonto löschen wollen, kannst du dies unter %3$s/removeme jederzeit tun.\n\nDanke für deine Aufmerksamkeit und willkommen auf %2$s." -#: src/Protocol/Diaspora.php:2498 -msgid "Sharing notification from Diaspora network" -msgstr "Freigabe-Benachrichtigung von Diaspora" - -#: src/Protocol/Diaspora.php:3658 -msgid "Attachments:" -msgstr "Anhänge:" - -#: src/Protocol/OStatus.php:1302 src/Module/Profile.php:108 -#: src/Module/Profile.php:111 +#: src/Model/User.php:886 src/Module/Admin/Users.php:88 #, php-format -msgid "%s's timeline" -msgstr "Timeline von %s" +msgid "Registration details for %s" +msgstr "Details der Registration von %s" -#: src/Protocol/OStatus.php:1306 src/Module/Profile.php:109 +#: src/Module/Admin/Addons/Details.php:51 +msgid "Addon not found." +msgstr "Addon nicht gefunden." + +#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:32 #, php-format -msgid "%s's posts" -msgstr "Beiträge von %s" +msgid "Addon %s disabled." +msgstr "Addon %s ausgeschaltet." -#: src/Protocol/OStatus.php:1309 src/Module/Profile.php:110 +#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:34 #, php-format -msgid "%s's comments" -msgstr "Kommentare von %s" +msgid "Addon %s enabled." +msgstr "Addon %s eingeschaltet." -#: src/Protocol/OStatus.php:1863 +#: src/Module/Admin/Addons/Details.php:76 +#: src/Module/Admin/Themes/Details.php:60 +msgid "Disable" +msgstr "Ausschalten" + +#: src/Module/Admin/Addons/Details.php:79 +#: src/Module/Admin/Themes/Details.php:63 +msgid "Enable" +msgstr "Einschalten" + +#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50 +#: src/Module/Admin/Blocklist/Contact.php:60 +#: src/Module/Admin/Blocklist/Server.php:73 +#: src/Module/Admin/Federation.php:185 src/Module/Admin/Item/Delete.php:46 +#: src/Module/Admin/Logs/Settings.php:57 src/Module/Admin/Logs/View.php:46 +#: src/Module/Admin/Queue.php:56 src/Module/Admin/Site.php:568 +#: src/Module/Admin/Summary.php:160 src/Module/Admin/Themes/Details.php:104 +#: src/Module/Admin/Themes/Index.php:93 src/Module/Admin/Tos.php:42 +#: src/Module/Admin/Users.php:277 +msgid "Administration" +msgstr "Administration" + +#: src/Module/Admin/Addons/Details.php:101 +#: src/Module/Admin/Themes/Details.php:106 +msgid "Toggle" +msgstr "Umschalten" + +#: src/Module/Admin/Addons/Details.php:109 +#: src/Module/Admin/Themes/Details.php:115 +msgid "Author: " +msgstr "Autor:" + +#: src/Module/Admin/Addons/Details.php:110 +#: src/Module/Admin/Themes/Details.php:116 +msgid "Maintainer: " +msgstr "Betreuer:" + +#: src/Module/Admin/Addons/Index.php:36 #, php-format -msgid "%s is now following %s." -msgstr "%s folgt nun %s" +msgid "Addon %s failed to install." +msgstr "Addon %s konnte nicht installiert werden" -#: src/Protocol/OStatus.php:1864 -msgid "following" -msgstr "folgen" +#: src/Module/Admin/Addons/Index.php:53 +msgid "Reload active addons" +msgstr "Aktivierte Addons neu laden" -#: src/Protocol/OStatus.php:1867 -#, php-format -msgid "%s stopped following %s." -msgstr "%s hat aufgehört %s, zu folgen" - -#: src/Protocol/OStatus.php:1868 -msgid "stopped following" -msgstr "wird nicht mehr gefolgt" - -#: src/Worker/Delivery.php:450 -msgid "(no subject)" -msgstr "(kein Betreff)" - -#: src/Module/Attach.php:36 src/Module/Attach.php:48 -msgid "Item was not found." -msgstr "Beitrag konnte nicht gefunden werden." - -#: src/Module/Contact.php:166 -#, php-format -msgid "%d contact edited." -msgid_plural "%d contacts edited." -msgstr[0] "%d Kontakt bearbeitet." -msgstr[1] "%d Kontakte bearbeitet." - -#: src/Module/Contact.php:191 src/Module/Contact.php:374 -msgid "Could not access contact record." -msgstr "Konnte nicht auf die Kontaktdaten zugreifen." - -#: src/Module/Contact.php:201 -msgid "Could not locate selected profile." -msgstr "Konnte das ausgewählte Profil nicht finden." - -#: src/Module/Contact.php:233 -msgid "Contact updated." -msgstr "Kontakt aktualisiert." - -#: src/Module/Contact.php:395 -msgid "Contact has been blocked" -msgstr "Kontakt wurde blockiert" - -#: src/Module/Contact.php:395 -msgid "Contact has been unblocked" -msgstr "Kontakt wurde wieder freigegeben" - -#: src/Module/Contact.php:405 -msgid "Contact has been ignored" -msgstr "Kontakt wurde ignoriert" - -#: src/Module/Contact.php:405 -msgid "Contact has been unignored" -msgstr "Kontakt wird nicht mehr ignoriert" - -#: src/Module/Contact.php:415 -msgid "Contact has been archived" -msgstr "Kontakt wurde archiviert" - -#: src/Module/Contact.php:415 -msgid "Contact has been unarchived" -msgstr "Kontakt wurde aus dem Archiv geholt" - -#: src/Module/Contact.php:439 -msgid "Drop contact" -msgstr "Kontakt löschen" - -#: src/Module/Contact.php:442 src/Module/Contact.php:820 -msgid "Do you really want to delete this contact?" -msgstr "Möchtest Du wirklich diesen Kontakt löschen?" - -#: src/Module/Contact.php:456 -msgid "Contact has been removed." -msgstr "Kontakt wurde entfernt." - -#: src/Module/Contact.php:486 -#, php-format -msgid "You are mutual friends with %s" -msgstr "Du hast mit %s eine beidseitige Freundschaft" - -#: src/Module/Contact.php:491 -#, php-format -msgid "You are sharing with %s" -msgstr "Du teilst mit %s" - -#: src/Module/Contact.php:496 -#, php-format -msgid "%s is sharing with you" -msgstr "%s teilt mit dir" - -#: src/Module/Contact.php:520 -msgid "Private communications are not available for this contact." -msgstr "Private Kommunikation ist für diesen Kontakt nicht verfügbar." - -#: src/Module/Contact.php:522 -msgid "Never" -msgstr "Niemals" - -#: src/Module/Contact.php:525 -msgid "(Update was successful)" -msgstr "(Aktualisierung war erfolgreich)" - -#: src/Module/Contact.php:525 -msgid "(Update was not successful)" -msgstr "(Aktualisierung war nicht erfolgreich)" - -#: src/Module/Contact.php:527 src/Module/Contact.php:1058 -msgid "Suggest friends" -msgstr "Kontakte vorschlagen" - -#: src/Module/Contact.php:531 -#, php-format -msgid "Network type: %s" -msgstr "Netzwerktyp: %s" - -#: src/Module/Contact.php:536 -msgid "Communications lost with this contact!" -msgstr "Verbindungen mit diesem Kontakt verloren!" - -#: src/Module/Contact.php:542 -msgid "Fetch further information for feeds" -msgstr "Weitere Informationen zu Feeds holen" - -#: src/Module/Contact.php:544 -msgid "" -"Fetch information like preview pictures, title and teaser from the feed " -"item. You can activate this if the feed doesn't contain much text. Keywords " -"are taken from the meta header in the feed item and are posted as hash tags." -msgstr "Zusätzliche Informationen wie Vorschaubilder, Titel und Zusammenfassungen vom Feed-Eintrag laden. Du kannst diese Option aktivieren, wenn der Feed nicht allzu viel Text beinhaltet. Schlagwörter werden aus den Meta-Informationen des Feed-Headers bezogen und als Hash-Tags verwendet." - -#: src/Module/Contact.php:547 -msgid "Fetch information" -msgstr "Beziehe Information" - -#: src/Module/Contact.php:548 -msgid "Fetch keywords" -msgstr "Schlüsselwörter abrufen" - -#: src/Module/Contact.php:549 -msgid "Fetch information and keywords" -msgstr "Beziehe Information und Schlüsselworte" - -#: src/Module/Contact.php:581 -msgid "Profile Visibility" -msgstr "Profil-Sichtbarkeit" - -#: src/Module/Contact.php:582 -msgid "Contact Information / Notes" -msgstr "Kontakt-Informationen / -Notizen" - -#: src/Module/Contact.php:583 -msgid "Contact Settings" -msgstr "Kontakteinstellungen" - -#: src/Module/Contact.php:592 -msgid "Contact" -msgstr "Kontakt" - -#: src/Module/Contact.php:596 +#: src/Module/Admin/Addons/Index.php:58 #, php-format msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Bitte wähle eines deiner Profile das angezeigt werden soll, wenn %s dein Profil aufruft." +"There are currently no addons available on your node. You can find the " +"official addon repository at %1$s and might find other interesting addons in" +" the open addon registry at %2$s" +msgstr "Es sind derzeit keine Addons auf diesem Knoten verfügbar. Du findest das offizielle Addon-Repository unter %1$s und weitere eventuell interessante Addons im offenen Addon-Verzeichnis auf %2$s." -#: src/Module/Contact.php:598 -msgid "Their personal note" -msgstr "Die persönliche Mitteilung" +#: src/Module/Admin/Blocklist/Contact.php:37 +#, php-format +msgid "%s contact unblocked" +msgid_plural "%s contacts unblocked" +msgstr[0] "%sKontakt wieder freigegeben" +msgstr[1] "%sKontakte wieder freigegeben" -#: src/Module/Contact.php:600 -msgid "Edit contact notes" -msgstr "Notizen zum Kontakt bearbeiten" +#: src/Module/Admin/Blocklist/Contact.php:61 +msgid "Remote Contact Blocklist" +msgstr "Sperrliste entfernter Kontakte" -#: src/Module/Contact.php:604 -msgid "Block/Unblock contact" -msgstr "Kontakt blockieren/freischalten" - -#: src/Module/Contact.php:605 -msgid "Ignore contact" -msgstr "Ignoriere den Kontakt" - -#: src/Module/Contact.php:606 -msgid "Repair URL settings" -msgstr "URL-Einstellungen reparieren" - -#: src/Module/Contact.php:607 -msgid "View conversations" -msgstr "Unterhaltungen anzeigen" - -#: src/Module/Contact.php:612 -msgid "Last update:" -msgstr "Letzte Aktualisierung: " - -#: src/Module/Contact.php:614 -msgid "Update public posts" -msgstr "Öffentliche Beiträge aktualisieren" - -#: src/Module/Contact.php:616 src/Module/Contact.php:1068 -msgid "Update now" -msgstr "Jetzt aktualisieren" - -#: src/Module/Contact.php:622 src/Module/Contact.php:825 -#: src/Module/Contact.php:1085 -msgid "Unignore" -msgstr "Ignorieren aufheben" - -#: src/Module/Contact.php:626 -msgid "Currently blocked" -msgstr "Derzeit geblockt" - -#: src/Module/Contact.php:627 -msgid "Currently ignored" -msgstr "Derzeit ignoriert" - -#: src/Module/Contact.php:628 -msgid "Currently archived" -msgstr "Momentan archiviert" - -#: src/Module/Contact.php:629 -msgid "Awaiting connection acknowledge" -msgstr "Bedarf der Bestätigung des Kontakts" - -#: src/Module/Contact.php:630 +#: src/Module/Admin/Blocklist/Contact.php:62 msgid "" -"Replies/likes to your public posts may still be visible" -msgstr "Antworten/Likes auf deine öffentlichen Beiträge könnten weiterhin sichtbar sein" +"This page allows you to prevent any message from a remote contact to reach " +"your node." +msgstr "Auf dieser Seite kannst du Accounts von anderen Knoten blockieren und damit verhindern, dass ihre Beiträge von deinem Knoten angenommen werden." -#: src/Module/Contact.php:631 -msgid "Notification for new posts" -msgstr "Benachrichtigung bei neuen Beiträgen" +#: src/Module/Admin/Blocklist/Contact.php:63 +msgid "Block Remote Contact" +msgstr "Blockiere entfernten Kontakt" -#: src/Module/Contact.php:631 -msgid "Send a notification of every new post of this contact" -msgstr "Sende eine Benachrichtigung, wann immer dieser Kontakt einen neuen Beitrag schreibt." +#: src/Module/Admin/Blocklist/Contact.php:64 src/Module/Admin/Users.php:280 +msgid "select all" +msgstr "Alle auswählen" -#: src/Module/Contact.php:633 -msgid "Blacklisted keywords" -msgstr "Unterdrückte Schlüsselworte " +#: src/Module/Admin/Blocklist/Contact.php:65 +msgid "select none" +msgstr "Auswahl aufheben" -#: src/Module/Contact.php:633 +#: src/Module/Admin/Blocklist/Contact.php:67 src/Module/Admin/Users.php:291 +#: src/Module/Contact.php:624 src/Module/Contact.php:827 +#: src/Module/Contact.php:1080 +msgid "Unblock" +msgstr "Entsperren" + +#: src/Module/Admin/Blocklist/Contact.php:68 +msgid "No remote contact is blocked from this node." +msgstr "Derzeit werden keine Kontakte auf diesem Knoten blockiert." + +#: src/Module/Admin/Blocklist/Contact.php:70 +msgid "Blocked Remote Contacts" +msgstr "Blockierte Kontakte von anderen Knoten" + +#: src/Module/Admin/Blocklist/Contact.php:71 +msgid "Block New Remote Contact" +msgstr "Blockieren von weiteren Kontakten" + +#: src/Module/Admin/Blocklist/Contact.php:72 +msgid "Photo" +msgstr "Foto:" + +#: src/Module/Admin/Blocklist/Contact.php:80 +#, php-format +msgid "%s total blocked contact" +msgid_plural "%s total blocked contacts" +msgstr[0] "Insgesamt %s blockierter Kontakt" +msgstr[1] "Insgesamt %s blockierte Kontakte" + +#: src/Module/Admin/Blocklist/Contact.php:82 +msgid "URL of the remote contact to block." +msgstr "Die URL des entfernten Kontakts, der blockiert werden soll." + +#: src/Module/Admin/Blocklist/Server.php:31 +msgid "Server added to blocklist." +msgstr "Server zur Blockliste hinzugefügt." + +#: src/Module/Admin/Blocklist/Server.php:47 +msgid "Site blocklist updated." +msgstr "Blockliste aktualisiert." + +#: src/Module/Admin/Blocklist/Server.php:64 +msgid "The blocked domain" +msgstr "Die blockierte Domain" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:84 src/Module/Friendica.php:60 +msgid "Reason for the block" +msgstr "Begründung für die Blockierung" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "The reason why you blocked this domain." +msgstr "Die Begründung, warum du diese Domain blockiert hast." + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Delete domain" +msgstr "Domain löschen" + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Check to delete this entry from the blocklist" +msgstr "Markieren, um diesen Eintrag von der Blocklist zu entfernen" + +#: src/Module/Admin/Blocklist/Server.php:74 src/Module/BaseAdminModule.php:94 +msgid "Server Blocklist" +msgstr "Server Blockliste" + +#: src/Module/Admin/Blocklist/Server.php:75 msgid "" -"Comma separated list of keywords that should not be converted to hashtags, " -"when \"Fetch information and keywords\" is selected" -msgstr "Komma-Separierte Liste mit Schlüsselworten, die nicht in Hashtags konvertiert werden, wenn \"Beziehe Information und Schlüsselworte\" aktiviert wurde" +"This page can be used to define a black list of servers from the federated " +"network that are not allowed to interact with your node. For all entered " +"domains you should also give a reason why you have blocked the remote " +"server." +msgstr "Auf dieser Seite kannst du die Liste der blockierten Domains aus dem föderalen Netzwerk verwalten, denen es untersagt ist, mit deinem Knoten zu interagieren. Für jede der blockierten Domains musst du außerdem einen Grund für die Sperrung angeben." -#: src/Module/Contact.php:650 -msgid "Actions" -msgstr "Aktionen" - -#: src/Module/Contact.php:696 -msgid "Suggestions" -msgstr "Kontaktvorschläge" - -#: src/Module/Contact.php:699 -msgid "Suggest potential friends" -msgstr "Kontakte vorschlagen" - -#: src/Module/Contact.php:704 src/Module/Group.php:276 -msgid "All Contacts" -msgstr "Alle Kontakte" - -#: src/Module/Contact.php:707 -msgid "Show all contacts" -msgstr "Alle Kontakte anzeigen" - -#: src/Module/Contact.php:712 -msgid "Unblocked" -msgstr "Ungeblockt" - -#: src/Module/Contact.php:715 -msgid "Only show unblocked contacts" -msgstr "Nur nicht-blockierte Kontakte anzeigen" - -#: src/Module/Contact.php:720 -msgid "Blocked" -msgstr "Geblockt" - -#: src/Module/Contact.php:723 -msgid "Only show blocked contacts" -msgstr "Nur blockierte Kontakte anzeigen" - -#: src/Module/Contact.php:728 -msgid "Ignored" -msgstr "Ignoriert" - -#: src/Module/Contact.php:731 -msgid "Only show ignored contacts" -msgstr "Nur ignorierte Kontakte anzeigen" - -#: src/Module/Contact.php:736 -msgid "Archived" -msgstr "Archiviert" - -#: src/Module/Contact.php:739 -msgid "Only show archived contacts" -msgstr "Nur archivierte Kontakte anzeigen" - -#: src/Module/Contact.php:744 -msgid "Hidden" -msgstr "Verborgen" - -#: src/Module/Contact.php:747 -msgid "Only show hidden contacts" -msgstr "Nur verborgene Kontakte anzeigen" - -#: src/Module/Contact.php:755 -msgid "Organize your contact groups" -msgstr "Verwalte deine Kontaktgruppen" - -#: src/Module/Contact.php:815 -msgid "Search your contacts" -msgstr "Suche in deinen Kontakten" - -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 -msgid "Archive" -msgstr "Archivieren" - -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 -msgid "Unarchive" -msgstr "Aus Archiv zurückholen" - -#: src/Module/Contact.php:829 -msgid "Batch Actions" -msgstr "Stapelverarbeitung" - -#: src/Module/Contact.php:856 -msgid "Conversations started by this contact" -msgstr "Unterhaltungen, die von diesem Kontakt begonnen wurden" - -#: src/Module/Contact.php:861 -msgid "Posts and Comments" -msgstr "Statusnachrichten und Kommentare" - -#: src/Module/Contact.php:884 -msgid "View all contacts" -msgstr "Alle Kontakte anzeigen" - -#: src/Module/Contact.php:895 -msgid "View all common friends" -msgstr "Alle Kontakte anzeigen" - -#: src/Module/Contact.php:905 -msgid "Advanced Contact Settings" -msgstr "Fortgeschrittene Kontakteinstellungen" - -#: src/Module/Contact.php:991 -msgid "Mutual Friendship" -msgstr "Beidseitige Freundschaft" - -#: src/Module/Contact.php:996 -msgid "is a fan of yours" -msgstr "ist ein Fan von dir" - -#: src/Module/Contact.php:1001 -msgid "you are a fan of" -msgstr "Du bist Fan von" - -#: src/Module/Contact.php:1025 -msgid "Edit contact" -msgstr "Kontakt bearbeiten" - -#: src/Module/Contact.php:1079 -msgid "Toggle Blocked status" -msgstr "Geblockt-Status ein-/ausschalten" - -#: src/Module/Contact.php:1087 -msgid "Toggle Ignored status" -msgstr "Ignoriert-Status ein-/ausschalten" - -#: src/Module/Contact.php:1096 -msgid "Toggle Archive status" -msgstr "Archiviert-Status ein-/ausschalten" - -#: src/Module/Contact.php:1104 -msgid "Delete contact" -msgstr "Lösche den Kontakt" - -#: src/Module/Login.php:292 -msgid "Create a New Account" -msgstr "Neues Konto erstellen" - -#: src/Module/Login.php:325 -msgid "Password: " -msgstr "Passwort: " - -#: src/Module/Login.php:326 -msgid "Remember me" -msgstr "Anmeldedaten merken" - -#: src/Module/Login.php:329 -msgid "Or login using OpenID: " -msgstr "Oder melde dich mit deiner OpenID an: " - -#: src/Module/Login.php:335 -msgid "Forgot your password?" -msgstr "Passwort vergessen?" - -#: src/Module/Login.php:338 -msgid "Website Terms of Service" -msgstr "Website-Nutzungsbedingungen" - -#: src/Module/Login.php:339 -msgid "terms of service" -msgstr "Nutzungsbedingungen" - -#: src/Module/Login.php:341 -msgid "Website Privacy Policy" -msgstr "Website-Datenschutzerklärung" - -#: src/Module/Login.php:342 -msgid "privacy policy" -msgstr "Datenschutzerklärung" - -#: src/Module/Logout.php:27 -msgid "Logged out." -msgstr "Abgemeldet." - -#: src/Module/Register.php:83 +#: src/Module/Admin/Blocklist/Server.php:76 msgid "" -"You may (optionally) fill in this form via OpenID by supplying your OpenID " -"and clicking \"Register\"." -msgstr "Du kannst dieses Formular auch (optional) mit deiner OpenID ausfüllen, indem du deine OpenID angibst und 'Registrieren' klickst." +"The list of blocked servers will be made publically available on the " +"/friendica page so that your users and people investigating communication " +"problems can find the reason easily." +msgstr "Die Liste der blockierten Domains wird auf der /friendica Seite öffentlich einsehbar gemacht, damit deine Nutzer und Personen, die Kommunikationsprobleme erkunden, die Ursachen einfach finden können." -#: src/Module/Register.php:84 +#: src/Module/Admin/Blocklist/Server.php:77 +msgid "Add new entry to block list" +msgstr "Neuen Eintrag in die Blockliste" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "Server Domain" +msgstr "Domain des Servers" + +#: src/Module/Admin/Blocklist/Server.php:78 msgid "" -"If you are not familiar with OpenID, please leave that field blank and fill " -"in the rest of the items." -msgstr "Wenn du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus." +"The domain of the new server to add to the block list. Do not include the " +"protocol." +msgstr "Der Domain-Name des Servers, der geblockt werden soll. Gib das Protokoll nicht mit an!" -#: src/Module/Register.php:85 -msgid "Your OpenID (optional): " -msgstr "Deine OpenID (optional): " +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "Block reason" +msgstr "Begründung der Blockierung" -#: src/Module/Register.php:94 -msgid "Include your profile in member directory?" -msgstr "Soll dein Profil im Nutzerverzeichnis angezeigt werden?" +#: src/Module/Admin/Blocklist/Server.php:80 +msgid "Add Entry" +msgstr "Eintrag hinzufügen" -#: src/Module/Register.php:117 -msgid "Note for the admin" -msgstr "Hinweis für den Admin" +#: src/Module/Admin/Blocklist/Server.php:81 +msgid "Save changes to the blocklist" +msgstr "Änderungen der Blockliste speichern" -#: src/Module/Register.php:117 -msgid "Leave a message for the admin, why you want to join this node" -msgstr "Hinterlasse eine Nachricht an den Admin, warum du einen Account auf dieser Instanz haben möchtest." +#: src/Module/Admin/Blocklist/Server.php:82 +msgid "Current Entries in the Blocklist" +msgstr "Aktuelle Einträge der Blockliste" -#: src/Module/Register.php:118 -msgid "Membership on this site is by invitation only." -msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich." +#: src/Module/Admin/Blocklist/Server.php:85 +msgid "Delete entry from blocklist" +msgstr "Eintrag von der Blockliste entfernen" -#: src/Module/Register.php:119 -msgid "Your invitation code: " -msgstr "Dein Ein­la­dungs­code" +#: src/Module/Admin/Blocklist/Server.php:88 +msgid "Delete entry from blocklist?" +msgstr "Eintrag von der Blockliste entfernen?" -#: src/Module/Register.php:127 -msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " -msgstr "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):" +#: src/Module/Admin/DBSync.php:32 +msgid "Update has been marked successful" +msgstr "Update wurde als erfolgreich markiert" -#: src/Module/Register.php:128 +#: src/Module/Admin/DBSync.php:42 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt." + +#: src/Module/Admin/DBSync.php:46 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s" + +#: src/Module/Admin/DBSync.php:63 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "Die Ausführung von %s schlug fehl. Fehlermeldung: %s" + +#: src/Module/Admin/DBSync.php:65 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Update %s war erfolgreich." + +#: src/Module/Admin/DBSync.php:68 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Update %s hat keinen Status zurückgegeben. Unbekannter Status." + +#: src/Module/Admin/DBSync.php:71 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "Es gab keine weitere Update-Funktion, die von %s ausgeführt werden musste." + +#: src/Module/Admin/DBSync.php:91 +msgid "No failed updates." +msgstr "Keine fehlgeschlagenen Updates." + +#: src/Module/Admin/DBSync.php:92 +msgid "Check database structure" +msgstr "Datenbankstruktur überprüfen" + +#: src/Module/Admin/DBSync.php:97 +msgid "Failed Updates" +msgstr "Fehlgeschlagene Updates" + +#: src/Module/Admin/DBSync.php:98 msgid "" -"Your Email Address: (Initial information will be send there, so this has to " -"be an existing address.)" -msgstr "Deine E-Mail Adresse (Informationen zur Registrierung werden an diese Adresse gesendet, darum muss sie existieren.)" +"This does not include updates prior to 1139, which did not return a status." +msgstr "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben." -#: src/Module/Register.php:130 -msgid "Leave empty for an auto generated password." -msgstr "Leer lassen, um das Passwort automatisch zu generieren." +#: src/Module/Admin/DBSync.php:99 +msgid "Mark success (if update was manually applied)" +msgstr "Als erfolgreich markieren (falls das Update manuell installiert wurde)" -#: src/Module/Register.php:132 +#: src/Module/Admin/DBSync.php:100 +msgid "Attempt to execute this update step automatically" +msgstr "Versuchen, diesen Schritt automatisch auszuführen" + +#: src/Module/Admin/Features.php:59 +#, php-format +msgid "Lock feature %s" +msgstr "Feature festlegen: %s" + +#: src/Module/Admin/Features.php:67 +msgid "Manage Additional Features" +msgstr "Zusätzliche Features Verwalten" + +#: src/Module/Admin/Federation.php:76 +msgid "unknown" +msgstr "Unbekannt" + +#: src/Module/Admin/Federation.php:179 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "Diese Seite präsentiert einige Zahlen zu dem bekannten Teil des föderalen sozialen Netzwerks, von dem deine Friendica Installation ein Teil ist. Diese Zahlen sind nicht absolut und reflektieren nur den Teil des Netzwerks, den dein Knoten kennt." + +#: src/Module/Admin/Federation.php:180 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "Die Funktion \"Regelmäßig globale Kontakte überprüfen\" ist nicht aktiv. Sie wird die hier angezeigten Daten verbessern." + +#: src/Module/Admin/Federation.php:186 src/Module/BaseAdminModule.php:77 +msgid "Federation Statistics" +msgstr "Föderation Statistik" + +#: src/Module/Admin/Federation.php:192 #, php-format msgid "" -"Choose a profile nickname. This must begin with a text character. Your " -"profile address on this site will then be \"nickname@%s\"." -msgstr "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse deines Profils auf dieser Seite wird 'spitzname@%s' sein." +"Currently this node is aware of %d nodes with %d registered users from the " +"following platforms:" +msgstr "Momentan kennt dieser Knoten %d Knoten mit insgesamt %d registrierten Nutzern, die die folgenden Plattformen verwenden:" -#: src/Module/Register.php:133 -msgid "Choose a nickname: " -msgstr "Spitznamen wählen: " +#: src/Module/Admin/Item/Delete.php:35 +msgid "Item marked for deletion." +msgstr "Eintrag wurden zur Löschung markiert" -#: src/Module/Register.php:142 -msgid "Import your profile to this friendica instance" -msgstr "Importiere dein Profil auf diese Friendica-Instanz" +#: src/Module/Admin/Item/Delete.php:47 src/Module/BaseAdminModule.php:95 +msgid "Delete Item" +msgstr "Eintrag löschen" -#: src/Module/Register.php:150 -msgid "Note: This node explicitly contains adult content" -msgstr "Hinweis: Dieser Knoten enthält explizit Inhalte für Erwachsene" +#: src/Module/Admin/Item/Delete.php:48 +msgid "Delete this Item" +msgstr "Diesen Eintrag löschen" -#: src/Module/Register.php:243 +#: src/Module/Admin/Item/Delete.php:49 msgid "" -"Registration successful. Please check your email for further instructions." -msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet." +"On this page you can delete an item from your node. If the item is a top " +"level posting, the entire thread will be deleted." +msgstr "Auf dieser Seite kannst du Einträge von deinem Knoten löschen. Wenn der Eintrag der Anfang einer Diskussion ist, wird der gesamte Diskussionsverlauf gelöscht." -#: src/Module/Register.php:247 +#: src/Module/Admin/Item/Delete.php:50 +msgid "" +"You need to know the GUID of the item. You can find it e.g. by looking at " +"the display URL. The last part of http://example.com/display/123456 is the " +"GUID, here 123456." +msgstr "Zur Löschung musst du die GUID des Eintrags kennen. Diese findest du z.B. durch die /display URL des Eintrags. Der letzte Teil der URL ist die GUID. Lautet die URL beispielsweise http://example.com/display/123456, ist die GUID 123456." + +#: src/Module/Admin/Item/Delete.php:51 +msgid "GUID" +msgstr "GUID" + +#: src/Module/Admin/Item/Delete.php:51 +msgid "The GUID of the item you want to delete." +msgstr "Die GUID des zu löschenden Eintrags" + +#: src/Module/Admin/Item/Source.php:46 src/Module/Itemsource.php:46 +msgid "Item Guid" +msgstr "Beitrags-Guid" + +#: src/Module/Admin/Logs/Settings.php:30 +msgid "Log settings updated." +msgstr "Protokolleinstellungen aktualisiert." + +#: src/Module/Admin/Logs/Settings.php:49 +msgid "PHP log currently enabled." +msgstr "PHP Protokollierung ist derzeit aktiviert." + +#: src/Module/Admin/Logs/Settings.php:51 +msgid "PHP log currently disabled." +msgstr "PHP Protokollierung ist derzeit nicht aktiviert." + +#: src/Module/Admin/Logs/Settings.php:58 src/Module/BaseAdminModule.php:97 +#: src/Module/BaseAdminModule.php:98 +msgid "Logs" +msgstr "Protokolle" + +#: src/Module/Admin/Logs/Settings.php:60 +msgid "Clear" +msgstr "löschen" + +#: src/Module/Admin/Logs/Settings.php:64 +msgid "Enable Debugging" +msgstr "Protokoll führen" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "Log file" +msgstr "Protokolldatei" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis." + +#: src/Module/Admin/Logs/Settings.php:66 +msgid "Log level" +msgstr "Protokoll-Level" + +#: src/Module/Admin/Logs/Settings.php:68 +msgid "PHP logging" +msgstr "PHP Protokollieren" + +#: src/Module/Admin/Logs/Settings.php:69 +msgid "" +"To temporarily enable logging of PHP errors and warnings you can prepend the" +" following to the index.php file of your installation. The filename set in " +"the 'error_log' line is relative to the friendica top-level directory and " +"must be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "Um die Protokollierung von PHP-Fehlern und Warnungen vorübergehend zu aktivieren, kannst du der Datei index.php deiner Installation Folgendes voranstellen. Der in der Datei 'error_log' angegebene Dateiname ist relativ zum obersten Verzeichnis von Friendica und muss vom Webserver beschreibbar sein. Die Option '1' für 'log_errors' und 'display_errors' aktiviert diese Optionen, ersetze die '1' durch eine '0', um sie zu deaktivieren." + +#: src/Module/Admin/Logs/View.php:22 #, php-format msgid "" -"Failed to send email message. Here your accout details:
    login: %s
    " -"password: %s

    You can change your password after login." -msgstr "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account-Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern." +"Error trying to open %1$s log file.\\r\\n
    Check to see " +"if file %1$s exist and is readable." +msgstr "Fehler beim Öffnen der Logdatei %1$s.\\r\\n
    Bitte überprüfe ob die Datei %1$s existiert und gelesen werden kann." -#: src/Module/Register.php:254 -msgid "Registration successful." -msgstr "Registrierung erfolgreich." - -#: src/Module/Register.php:259 -msgid "Your registration can not be processed." -msgstr "Deine Registrierung konnte nicht verarbeitet werden." - -#: src/Module/Register.php:305 -msgid "Your registration is pending approval by the site owner." -msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden." - -#: src/Module/Tos.php:35 src/Module/Tos.php:77 -msgid "" -"At the time of registration, and for providing communications between the " -"user account and their contacts, the user has to provide a display name (pen" -" name), an username (nickname) and a working email address. The names will " -"be accessible on the profile page of the account by any visitor of the page," -" even if other profile details are not displayed. The email address will " -"only be used to send the user notifications about interactions, but wont be " -"visibly displayed. The listing of an account in the node's user directory or" -" the global user directory is optional and can be controlled in the user " -"settings, it is not necessary for communication." -msgstr "Zum Zwecke der Registrierung und um die Kommunikation zwischen dem Nutzer und seinen Kontakten zu gewährleisten, muß der Nutzer einen Namen (auch Pseudonym) und einen Nutzernamen (Spitzname) sowie eine funktionierende E-Mail-Adresse angeben. Der Name ist auf der Profilseite für alle Nutzer sichtbar, auch wenn die Profildetails nicht angezeigt werden.\nDie E-Mail-Adresse wird nur zur Benachrichtigung des Nutzers verwendet, sie wird nirgends angezeigt. Die Anzeige des Nutzerkontos im Server-Verzeichnis bzw. dem weltweiten Verzeichnis erfolgt gemäß den Einstellungen des Nutzers, sie ist zur Kommunikation nicht zwingend notwendig." - -#: src/Module/Tos.php:36 src/Module/Tos.php:78 -msgid "" -"This data is required for communication and is passed on to the nodes of the" -" communication partners and is stored there. Users can enter additional " -"private data that may be transmitted to the communication partners accounts." -msgstr "Diese Daten sind für die Kommunikation notwendig und werden an die Knoten der Kommunikationspartner übermittelt und dort gespeichert. Nutzer können weitere, private Angaben machen, die ebenfalls an die verwendeten Server der Kommunikationspartner übermittelt werden können." - -#: src/Module/Tos.php:37 src/Module/Tos.php:79 +#: src/Module/Admin/Logs/View.php:26 #, php-format msgid "" -"At any point in time a logged in user can export their account data from the" -" account settings. If the user wants " -"to delete their account they can do so at %1$s/removeme. The deletion of the account will " -"be permanent. Deletion of the data will also be requested from the nodes of " -"the communication partners." -msgstr "Angemeldete Nutzer können ihre Nutzerdaten jederzeit von den Kontoeinstellungen aus exportieren. Wenn ein Nutzer wünscht das Nutzerkonto zu löschen, so ist dies jederzeit unter %1$s/removeme möglich. Die Löschung des Nutzerkontos ist permanent. Die Löschung der Daten wird auch von den Knoten der Kommunikationspartner angefordert." +"Couldn't open %1$s log file.\\r\\n
    Check to see if file" +" %1$s is readable." +msgstr "Konnte die Logdatei %1$s nicht öffnen.\\r\\n
    Bitte stelle sicher, dass die Datei %1$s lesbar ist." -#: src/Module/Tos.php:40 src/Module/Tos.php:76 -msgid "Privacy Statement" -msgstr "Datenschutzerklärung" +#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99 +msgid "View Logs" +msgstr "Protokolle anzeigen" + +#: src/Module/Admin/Queue.php:34 +msgid "Inspect Deferred Worker Queue" +msgstr "Verzögerte Worker-Warteschlange inspizieren" + +#: src/Module/Admin/Queue.php:35 +msgid "" +"This page lists the deferred worker jobs. This are jobs that couldn't be " +"executed at the first time." +msgstr "Auf dieser Seite werden die aufgeschobenen Worker-Jobs aufgelistet. Dies sind Jobs, die beim ersten Mal nicht ausgeführt werden konnten." + +#: src/Module/Admin/Queue.php:38 +msgid "Inspect Worker Queue" +msgstr "Worker-Warteschlange inspizieren" + +#: src/Module/Admin/Queue.php:39 +msgid "" +"This page lists the currently queued worker jobs. These jobs are handled by " +"the worker cronjob you've set up during install." +msgstr "Auf dieser Seite werden die derzeit in der Warteschlange befindlichen Worker-Jobs aufgelistet. Diese Jobs werden vom Cronjob verarbeitet, den du während der Installation eingerichtet hast." + +#: src/Module/Admin/Queue.php:59 +msgid "ID" +msgstr "ID" + +#: src/Module/Admin/Queue.php:60 +msgid "Job Parameters" +msgstr "Parameter der Aufgabe" + +#: src/Module/Admin/Queue.php:61 +msgid "Created" +msgstr "Erstellt" + +#: src/Module/Admin/Queue.php:62 +msgid "Priority" +msgstr "Priorität" + +#: src/Module/Admin/Site.php:49 +msgid "Can not parse base url. Must have at least ://" +msgstr "Die Basis-URL konnte nicht analysiert werden. Sie muss mindestens aus :// bestehen" + +#: src/Module/Admin/Site.php:235 +msgid "Invalid storage backend setting value." +msgstr "Ungültige Einstellung für das Datenspeicher-Backend" + +#: src/Module/Admin/Site.php:412 +msgid "Site settings updated." +msgstr "Seiteneinstellungen aktualisiert." + +#: src/Module/Admin/Site.php:464 +msgid "No community page for local users" +msgstr "Keine Gemeinschaftsseite für lokale Nutzer" + +#: src/Module/Admin/Site.php:465 +msgid "No community page" +msgstr "Keine Gemeinschaftsseite" + +#: src/Module/Admin/Site.php:466 +msgid "Public postings from users of this site" +msgstr "Öffentliche Beiträge von NutzerInnen dieser Seite" + +#: src/Module/Admin/Site.php:467 +msgid "Public postings from the federated network" +msgstr "Öffentliche Beiträge aus dem föderalen Netzwerk" + +#: src/Module/Admin/Site.php:468 +msgid "Public postings from local users and the federated network" +msgstr "Öffentliche Beiträge von lokalen Nutzern und aus dem föderalen Netzwerk" + +#: src/Module/Admin/Site.php:472 src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:678 src/Module/Contact.php:549 +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Disabled" +msgstr "Deaktiviert" + +#: src/Module/Admin/Site.php:473 src/Module/Admin/Users.php:278 +#: src/Module/Admin/Users.php:295 src/Module/BaseAdminModule.php:81 +msgid "Users" +msgstr "Nutzer" + +#: src/Module/Admin/Site.php:474 +msgid "Users, Global Contacts" +msgstr "Nutzer, globale Kontakte" + +#: src/Module/Admin/Site.php:475 +msgid "Users, Global Contacts/fallback" +msgstr "Nutzer, globale Kontakte / Fallback" + +#: src/Module/Admin/Site.php:479 +msgid "One month" +msgstr "ein Monat" + +#: src/Module/Admin/Site.php:480 +msgid "Three months" +msgstr "drei Monate" + +#: src/Module/Admin/Site.php:481 +msgid "Half a year" +msgstr "ein halbes Jahr" + +#: src/Module/Admin/Site.php:482 +msgid "One year" +msgstr "ein Jahr" + +#: src/Module/Admin/Site.php:488 +msgid "Multi user instance" +msgstr "Mehrbenutzer-Instanz" + +#: src/Module/Admin/Site.php:510 +msgid "Closed" +msgstr "Geschlossen" + +#: src/Module/Admin/Site.php:511 +msgid "Requires approval" +msgstr "Bedarf der Zustimmung" + +#: src/Module/Admin/Site.php:512 +msgid "Open" +msgstr "Offen" + +#: src/Module/Admin/Site.php:516 src/Module/Install.php:181 +msgid "No SSL policy, links will track page SSL state" +msgstr "Keine SSL-Richtlinie, Links werden das verwendete Protokoll beibehalten" + +#: src/Module/Admin/Site.php:517 src/Module/Install.php:182 +msgid "Force all links to use SSL" +msgstr "SSL für alle Links erzwingen" + +#: src/Module/Admin/Site.php:518 src/Module/Install.php:183 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)" + +#: src/Module/Admin/Site.php:522 +msgid "Don't check" +msgstr "Nicht überprüfen" + +#: src/Module/Admin/Site.php:523 +msgid "check the stable version" +msgstr "überprüfe die stabile Version" + +#: src/Module/Admin/Site.php:524 +msgid "check the development version" +msgstr "überprüfe die Entwicklungsversion" + +#: src/Module/Admin/Site.php:544 +msgid "Database (legacy)" +msgstr "Datenbank (legacy)" + +#: src/Module/Admin/Site.php:569 src/Module/BaseAdminModule.php:80 +msgid "Site" +msgstr "Seite" + +#: src/Module/Admin/Site.php:571 +msgid "Republish users to directory" +msgstr "Nutzer erneut im globalen Verzeichnis veröffentlichen." + +#: src/Module/Admin/Site.php:572 src/Module/Register.php:121 +msgid "Registration" +msgstr "Registrierung" + +#: src/Module/Admin/Site.php:573 +msgid "File upload" +msgstr "Datei hochladen" + +#: src/Module/Admin/Site.php:574 +msgid "Policies" +msgstr "Regeln" + +#: src/Module/Admin/Site.php:576 +msgid "Auto Discovered Contact Directory" +msgstr "Automatisch ein Kontaktverzeichnis erstellen" + +#: src/Module/Admin/Site.php:577 +msgid "Performance" +msgstr "Performance" + +#: src/Module/Admin/Site.php:578 +msgid "Worker" +msgstr "Worker" + +#: src/Module/Admin/Site.php:579 +msgid "Message Relay" +msgstr "Nachrichten-Relais" + +#: src/Module/Admin/Site.php:580 +msgid "Relocate Instance" +msgstr "Instanz Umziehen" + +#: src/Module/Admin/Site.php:581 +msgid "Warning! Advanced function. Could make this server unreachable." +msgstr "WARNUNG: Funktion für Fortgeschrittene. Könnte diesen Server unerreichbar machen." + +#: src/Module/Admin/Site.php:585 +msgid "Site name" +msgstr "Seitenname" + +#: src/Module/Admin/Site.php:586 +msgid "Sender Email" +msgstr "Absender für Emails" + +#: src/Module/Admin/Site.php:586 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "Die E-Mail Adresse, die dein Server zum Versenden von Benachrichtigungen verwenden soll." + +#: src/Module/Admin/Site.php:587 +msgid "Banner/Logo" +msgstr "Banner/Logo" + +#: src/Module/Admin/Site.php:588 +msgid "Shortcut icon" +msgstr "Shortcut Icon" + +#: src/Module/Admin/Site.php:588 +msgid "Link to an icon that will be used for browsers." +msgstr "Link zu einem Icon, das Browser verwenden werden." + +#: src/Module/Admin/Site.php:589 +msgid "Touch icon" +msgstr "Touch Icon" + +#: src/Module/Admin/Site.php:589 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Link zu einem Icon, das Tablets und Mobiltelefone verwenden sollen." + +#: src/Module/Admin/Site.php:590 +msgid "Additional Info" +msgstr "Zusätzliche Informationen" + +#: src/Module/Admin/Site.php:590 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/servers." +msgstr "Für öffentliche Server kannst du hier zusätzliche Informationen angeben, die dann auf %s/servers angezeigt werden." + +#: src/Module/Admin/Site.php:591 +msgid "System language" +msgstr "Systemsprache" + +#: src/Module/Admin/Site.php:592 +msgid "System theme" +msgstr "Systemweites Theme" + +#: src/Module/Admin/Site.php:592 +msgid "" +"Default system theme - may be over-ridden by user profiles - Change default theme settings" +msgstr "Standard-Theme des Systems - kann von Benutzerprofilen überschrieben werden - Ändere Einstellung des Standard-Themes" + +#: src/Module/Admin/Site.php:593 +msgid "Mobile system theme" +msgstr "Systemweites mobiles Theme" + +#: src/Module/Admin/Site.php:593 +msgid "Theme for mobile devices" +msgstr "Theme für mobile Geräte" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:191 +msgid "SSL link policy" +msgstr "Regeln für SSL Links" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:193 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Bestimmt, ob generierte Links SSL verwenden müssen" + +#: src/Module/Admin/Site.php:595 +msgid "Force SSL" +msgstr "Erzwinge SSL" + +#: src/Module/Admin/Site.php:595 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Erzwinge SSL für alle Nicht-SSL-Anfragen - Achtung: auf manchen Systemen verursacht dies eine Endlosschleife." + +#: src/Module/Admin/Site.php:596 +msgid "Hide help entry from navigation menu" +msgstr "Verberge den Hilfe-Eintrag im Navigationsmenü" + +#: src/Module/Admin/Site.php:596 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Verbirgt den Menüeintrag für die Hilfe-Seiten im Navigationsmenü. Die Seiten können weiterhin über /help aufgerufen werden." + +#: src/Module/Admin/Site.php:597 +msgid "Single user instance" +msgstr "Ein-Nutzer Instanz" + +#: src/Module/Admin/Site.php:597 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Bestimmt, ob es sich bei dieser Instanz um eine Installation mit nur einen Nutzer oder mit mehreren Nutzern handelt." + +#: src/Module/Admin/Site.php:599 +msgid "File storage backend" +msgstr "Datenspeicher-Backend" + +#: src/Module/Admin/Site.php:599 +msgid "" +"The backend used to store uploaded data. If you change the storage backend, " +"you can manually move the existing files. If you do not do so, the files " +"uploaded before the change will still be available at the old backend. " +"Please see the settings documentation" +" for more information about the choices and the moving procedure." +msgstr "Das zu verwendende Datenspeicher-Backend, wenn Dateien hochgeladen werden. Wenn du das Datenspeicher-Backend änderst, kannst du die bestehenden Dateien zum neuen Backend verschieben. Machst du dies nicht, verbleiben sie im alten Backend und werden weiterhin von dort geladen. Für weitere Informationen zu den verfügbaren Alternativen und der Prozedur zum Verschieben der Daten schaue bitte in die Dokumentation zu den Einstellungen." + +#: src/Module/Admin/Site.php:601 +msgid "Maximum image size" +msgstr "Maximale Bildgröße" + +#: src/Module/Admin/Site.php:601 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Maximale Uploadgröße von Bildern in Bytes. Standard ist 0, d.h. ohne Limit." + +#: src/Module/Admin/Site.php:602 +msgid "Maximum image length" +msgstr "Maximale Bildlänge" + +#: src/Module/Admin/Site.php:602 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Maximale Länge in Pixeln der längsten Seite eines hochgeladenen Bildes. Grundeinstellung ist -1, was keine Einschränkung bedeutet." + +#: src/Module/Admin/Site.php:603 +msgid "JPEG image quality" +msgstr "Qualität des JPEG Bildes" + +#: src/Module/Admin/Site.php:603 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Hochgeladene JPEG-Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust." + +#: src/Module/Admin/Site.php:605 +msgid "Register policy" +msgstr "Registrierungsmethode" + +#: src/Module/Admin/Site.php:606 +msgid "Maximum Daily Registrations" +msgstr "Maximum täglicher Registrierungen" + +#: src/Module/Admin/Site.php:606 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "Wenn die Registrierung weiter oben erlaubt ist, regelt dies die maximale Anzahl von Neuanmeldungen pro Tag. Wenn die Registrierung geschlossen ist, hat diese Einstellung keinen Effekt." + +#: src/Module/Admin/Site.php:607 +msgid "Register text" +msgstr "Registrierungstext" + +#: src/Module/Admin/Site.php:607 +msgid "" +"Will be displayed prominently on the registration page. You can use BBCode " +"here." +msgstr "Wird gut sichtbar auf der Registrierungsseite angezeigt. BBCode kann verwendet werden." + +#: src/Module/Admin/Site.php:608 +msgid "Forbidden Nicknames" +msgstr "Verbotene Spitznamen" + +#: src/Module/Admin/Site.php:608 +msgid "" +"Comma separated list of nicknames that are forbidden from registration. " +"Preset is a list of role names according RFC 2142." +msgstr "Durch Kommas getrennte Liste von Spitznamen, die von der Registrierung ausgeschlossen sind. Die Vorgabe ist eine Liste von Rollennamen nach RFC 2142." + +#: src/Module/Admin/Site.php:609 +msgid "Accounts abandoned after x days" +msgstr "Nutzerkonten gelten nach x Tagen als unbenutzt" + +#: src/Module/Admin/Site.php:609 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit." + +#: src/Module/Admin/Site.php:610 +msgid "Allowed friend domains" +msgstr "Erlaubte Domains für Kontakte" + +#: src/Module/Admin/Site.php:610 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Liste der Domains, die für Kontakte erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." + +#: src/Module/Admin/Site.php:611 +msgid "Allowed email domains" +msgstr "Erlaubte Domains für E-Mails" + +#: src/Module/Admin/Site.php:611 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." + +#: src/Module/Admin/Site.php:612 +msgid "No OEmbed rich content" +msgstr "OEmbed nicht verwenden" + +#: src/Module/Admin/Site.php:612 +msgid "" +"Don't show the rich content (e.g. embedded PDF), except from the domains " +"listed below." +msgstr "Verhindert das Einbetten von reichhaltigen Inhalten (z.B. eingebettete PDF Dateien). Ausgenommen von dieser Regel werden Domänen, die unten aufgeführt werden." + +#: src/Module/Admin/Site.php:613 +msgid "Allowed OEmbed domains" +msgstr "Erlaubte OEmbed-Domänen" + +#: src/Module/Admin/Site.php:613 +msgid "" +"Comma separated list of domains which oembed content is allowed to be " +"displayed. Wildcards are accepted." +msgstr "Durch Kommas getrennte Liste von Domänen, für die das Einbetten reichhaltiger Inhalte erlaubt ist. Platzhalter können verwendet werden." + +#: src/Module/Admin/Site.php:614 +msgid "Block public" +msgstr "Öffentlichen Zugriff blockieren" + +#: src/Module/Admin/Site.php:614 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist." + +#: src/Module/Admin/Site.php:615 +msgid "Force publish" +msgstr "Erzwinge Veröffentlichung" + +#: src/Module/Admin/Site.php:615 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen." + +#: src/Module/Admin/Site.php:615 +msgid "Enabling this may violate privacy laws like the GDPR" +msgstr "Wenn du diese Option aktivierst, verstößt das unter Umständen gegen Gesetze wie die EU-DSGVO." + +#: src/Module/Admin/Site.php:616 +msgid "Global directory URL" +msgstr "URL des weltweiten Verzeichnisses" + +#: src/Module/Admin/Site.php:616 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "URL des weltweiten Verzeichnisses. Wenn diese nicht gesetzt ist, ist das Verzeichnis für die Applikation nicht erreichbar." + +#: src/Module/Admin/Site.php:617 +msgid "Private posts by default for new users" +msgstr "Private Beiträge als Standard für neue Nutzer" + +#: src/Module/Admin/Site.php:617 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Die Standard-Zugriffsrechte für neue Nutzer werden so gesetzt, dass als Voreinstellung in die private Gruppe gepostet wird anstelle von öffentlichen Beiträgen." + +#: src/Module/Admin/Site.php:618 +msgid "Don't include post content in email notifications" +msgstr "Inhalte von Beiträgen nicht in E-Mail-Benachrichtigungen versenden" + +#: src/Module/Admin/Site.php:618 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "Inhalte von Beiträgen/Kommentaren/privaten Nachrichten/usw. zum Datenschutz nicht in E-Mail-Benachrichtigungen einbinden." + +#: src/Module/Admin/Site.php:619 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Öffentlichen Zugriff auf Addons im Apps Menü verbieten." + +#: src/Module/Admin/Site.php:619 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Wenn ausgewählt, werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt." + +#: src/Module/Admin/Site.php:620 +msgid "Don't embed private images in posts" +msgstr "Private Bilder nicht in Beiträgen einbetten." + +#: src/Module/Admin/Site.php:620 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Ersetze lokal gehostete, private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten, sich zunächst auf den jeweiligen Servern authentifizieren müssen, bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert." + +#: src/Module/Admin/Site.php:621 +msgid "Explicit Content" +msgstr "Sensibler Inhalt" + +#: src/Module/Admin/Site.php:621 +msgid "" +"Set this to announce that your node is used mostly for explicit content that" +" might not be suited for minors. This information will be published in the " +"node information and might be used, e.g. by the global directory, to filter " +"your node from listings of nodes to join. Additionally a note about this " +"will be shown at the user registration page." +msgstr "Wähle dies, um anzuzeigen, dass dein Knoten hauptsächlich für explizite Inhalte verwendet wird, die möglicherweise nicht für Minderjährige geeignet sind. Diese Info wird in der Knoteninformation veröffentlicht und kann durch das Globale Verzeichnis genutzt werden, um deinen Knoten von den Auflistungen auszuschließen. Zusätzlich wird auf der Registrierungsseite ein Hinweis darüber angezeigt." + +#: src/Module/Admin/Site.php:622 +msgid "Allow Users to set remote_self" +msgstr "Nutzern erlauben, das remote_self Flag zu setzen" + +#: src/Module/Admin/Site.php:622 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "Ist dies ausgewählt, kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im \"Erweitert\"-Reiter der Kontaktansicht markieren. Nach dem Setzen dieses Flags werden alle Top-Level-Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet (gespiegelt)." + +#: src/Module/Admin/Site.php:623 +msgid "Block multiple registrations" +msgstr "Unterbinde Mehrfachregistrierung" + +#: src/Module/Admin/Site.php:623 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Benutzern nicht erlauben, weitere Konten für Organisationsseiten o. ä. mit der gleichen E-Mail-Adresse anzulegen." + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID" +msgstr "OpenID deaktivieren" + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID support for registration and logins." +msgstr "OpenID-Unterstützung für Registrierung und Login." + +#: src/Module/Admin/Site.php:625 +msgid "No Fullname check" +msgstr "Namen nicht auf Vollständigkeit überprüfen" + +#: src/Module/Admin/Site.php:625 +msgid "" +"Allow users to register without a space between the first name and the last " +"name in their full name." +msgstr "Erlaubt Nutzern, Konten zu registrieren, bei denen im Namensfeld kein Leerzeichen zur Trennung von Vor- und Nachnamen verwendet wird." + +#: src/Module/Admin/Site.php:626 +msgid "Community pages for visitors" +msgstr "Für Besucher verfügbare Gemeinschaftsseite" + +#: src/Module/Admin/Site.php:626 +msgid "" +"Which community pages should be available for visitors. Local users always " +"see both pages." +msgstr "Welche Gemeinschaftsseiten sollen für Besucher dieses Knotens verfügbar sein? Lokale Nutzer können grundsätzlich beide Seiten verwenden." + +#: src/Module/Admin/Site.php:627 +msgid "Posts per user on community page" +msgstr "Anzahl der Beiträge pro Benutzer auf der Gemeinschaftsseite" + +#: src/Module/Admin/Site.php:627 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"\"Global Community\")" +msgstr "Maximale Anzahl der Beiträge, die von jedem Nutzer auf der Gemeinschaftsseite angezeigt werden. (Gilt nicht für die 'Globale Gemeinschaftsseite')" + +#: src/Module/Admin/Site.php:628 +msgid "Disable OStatus support" +msgstr "OStatus-Unterstützung deaktivieren" + +#: src/Module/Admin/Site.php:628 +msgid "" +"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Die eingebaute OStatus-Unterstützung (StatusNet, GNU Social, etc.) deaktivieren. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre-Warnungen werden nur bei Bedarf angezeigt." + +#: src/Module/Admin/Site.php:629 +msgid "Only import OStatus/ActivityPub threads from our contacts" +msgstr "Nur OStatus/ActivityPub-Konversationen unserer Kontakte importieren" + +#: src/Module/Admin/Site.php:629 +msgid "" +"Normally we import every content from our OStatus and ActivityPub contacts. " +"With this option we only store threads that are started by a contact that is" +" known on our system." +msgstr "Normalerweise werden alle Inhalte von OStatus- und ActivityPub-Kontakten importiert. Mit dieser Option werden nur solche Konversationen gespeichert, die von Kontakten der Nutzer dieses Knotens gestartet wurden." + +#: src/Module/Admin/Site.php:630 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "OStatus Unterstützung kann nur aktiviert werden, wenn \"Threading\" aktiviert ist. " + +#: src/Module/Admin/Site.php:632 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "Diaspora Unterstützung kann nicht aktiviert werden, da Friendica in ein Unterverzeichnis installiert ist." + +#: src/Module/Admin/Site.php:633 +msgid "Enable Diaspora support" +msgstr "Diaspora-Unterstützung aktivieren" + +#: src/Module/Admin/Site.php:633 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Verwende die eingebaute Diaspora-Verknüpfung." + +#: src/Module/Admin/Site.php:634 +msgid "Only allow Friendica contacts" +msgstr "Nur Friendica-Kontakte erlauben" + +#: src/Module/Admin/Site.php:634 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "Alle Kontakte müssen das Friendica-Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert." + +#: src/Module/Admin/Site.php:635 +msgid "Verify SSL" +msgstr "SSL Überprüfen" + +#: src/Module/Admin/Site.php:635 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "Wenn gewollt, kann man hier eine strenge Zertifikatskontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL-Zertifikat eine Verbindung herstellen kann." + +#: src/Module/Admin/Site.php:636 +msgid "Proxy user" +msgstr "Proxy-Nutzer" + +#: src/Module/Admin/Site.php:637 +msgid "Proxy URL" +msgstr "Proxy-URL" + +#: src/Module/Admin/Site.php:638 +msgid "Network timeout" +msgstr "Netzwerk-Wartezeit" + +#: src/Module/Admin/Site.php:638 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)." + +#: src/Module/Admin/Site.php:639 +msgid "Maximum Load Average" +msgstr "Maximum Load Average" + +#: src/Module/Admin/Site.php:639 +#, php-format +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default %d." +msgstr "Maximale System-LOAD bevor Verteil- und Empfangsprozesse verschoben werden - Standard %d" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum Load Average (Frontend)" +msgstr "Maximum Load Average (Frontend)" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Maximale Systemlast, bevor Vordergrundprozesse pausiert werden - Standard 50." + +#: src/Module/Admin/Site.php:641 +msgid "Minimal Memory" +msgstr "Minimaler Speicher" + +#: src/Module/Admin/Site.php:641 +msgid "" +"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " +"default 0 (deactivated)." +msgstr "Minimal freier Speicher in MB für den Worker Prozess. Benötigt Zugriff auf /proc/meminfo - Standardwert ist 0 (deaktiviert)" + +#: src/Module/Admin/Site.php:642 +msgid "Maximum table size for optimization" +msgstr "Maximale Tabellengröße zur Optimierung" + +#: src/Module/Admin/Site.php:642 +msgid "" +"Maximum table size (in MB) for the automatic optimization. Enter -1 to " +"disable it." +msgstr "Maximale Tabellengröße (in MB) für die automatische Optimierung - Gib -1 für Deaktivierung ein." + +#: src/Module/Admin/Site.php:643 +msgid "Minimum level of fragmentation" +msgstr "Minimaler Fragmentationsgrad" + +#: src/Module/Admin/Site.php:643 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Minimaler Fragmentationsgrad von Datenbanktabellen, um die automatische Optimierung einzuleiten - Standardwert ist 30%" + +#: src/Module/Admin/Site.php:645 +msgid "Periodical check of global contacts" +msgstr "Regelmäßig globale Kontakte überprüfen" + +#: src/Module/Admin/Site.php:645 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "Wenn diese Option aktiviert ist, werden die globalen Kontakte regelmäßig auf fehlende oder veraltete Daten sowie auf Erreichbarkeit des Kontakts und des Servers überprüft." + +#: src/Module/Admin/Site.php:646 +msgid "Days between requery" +msgstr "Tage zwischen erneuten Abfragen" + +#: src/Module/Admin/Site.php:646 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Legt das Abfrageintervall fest, nach dem ein Server erneut nach Kontakten abgefragt werden soll." + +#: src/Module/Admin/Site.php:647 +msgid "Discover contacts from other servers" +msgstr "Neue Kontakte auf anderen Servern entdecken" + +#: src/Module/Admin/Site.php:647 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"\"Users\": the users on the remote system, \"Global Contacts\": active " +"contacts that are known on the system. The fallback is meant for Redmatrix " +"servers and older friendica servers, where global contacts weren't " +"available. The fallback increases the server load, so the recommended " +"setting is \"Users, Global Contacts\"." +msgstr "Regelmäßig andere Server nach potentiellen Kontakten absuchen. Du kannst zwischen 'Nutzern', also den tatsächlichen Nutzern des anderen Systems, und 'globalen Kontakten', also aktiven Kontakten, die auf dem System bekannt sind, wählen. Der Fallback-Mechanismus ist für ältere Friendica- und Redmatrix-Server gedacht, bei denen globale Kontakte noch nicht verfügbar sind. Durch den Fallback-Modus entsteht auf deinem Server eine wesentlich höhere Last, empfohlen wird der Modus 'Nutzer, globale Kontakte'." + +#: src/Module/Admin/Site.php:648 +msgid "Timeframe for fetching global contacts" +msgstr "Zeitfenster für globale Kontakte" + +#: src/Module/Admin/Site.php:648 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "Wenn die Entdeckung neuer Kontakte aktiv ist, definiert dieses Zeitfenster den Zeitraum, in dem globale Kontakte als aktiv gelten und von anderen Servern importiert werden." + +#: src/Module/Admin/Site.php:649 +msgid "Search the local directory" +msgstr "Lokales Verzeichnis durchsuchen" + +#: src/Module/Admin/Site.php:649 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Suche im lokalen Verzeichnis anstelle des globalen Verzeichnisses durchführen. Jede Suche wird im Hintergrund auch im globalen Verzeichnis durchgeführt, um die Suchresultate zu verbessern, wenn die Suche wiederholt wird." + +#: src/Module/Admin/Site.php:651 +msgid "Publish server information" +msgstr "Server-Informationen veröffentlichen" + +#: src/Module/Admin/Site.php:651 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "Wenn aktiviert, werden allgemeine Informationen über den Server und Nutzungsdaten veröffentlicht. Die Daten beinhalten den Namen sowie die Version des Servers, die Anzahl der Personen mit öffentlichen Profilen, die Anzahl der Beiträge sowie aktivierte Protokolle und Konnektoren. Für Details bitte the-federation.info aufrufen." + +#: src/Module/Admin/Site.php:653 +msgid "Check upstream version" +msgstr "Suche nach Updates" + +#: src/Module/Admin/Site.php:653 +msgid "" +"Enables checking for new Friendica versions at github. If there is a new " +"version, you will be informed in the admin panel overview." +msgstr "Wenn diese Option aktiviert ist, wird regelmäßig nach neuen Friendica-Versionen auf github gesucht. Wenn es eine neue Version gibt, wird dies auf der Übersichtsseite im Admin-Panel angezeigt." + +#: src/Module/Admin/Site.php:654 +msgid "Suppress Tags" +msgstr "Tags unterdrücken" + +#: src/Module/Admin/Site.php:654 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Unterdrückt die Anzeige von Tags am Ende eines Beitrags." + +#: src/Module/Admin/Site.php:655 +msgid "Clean database" +msgstr "Datenbank aufräumen" + +#: src/Module/Admin/Site.php:655 +msgid "" +"Remove old remote items, orphaned database records and old content from some" +" other helper tables." +msgstr "Entferne alte Beiträge von anderen Knoten, verwaiste Einträge und alten Inhalt einiger Hilfstabellen." + +#: src/Module/Admin/Site.php:656 +msgid "Lifespan of remote items" +msgstr "Lebensdauer von Beiträgen anderer Knoten" + +#: src/Module/Admin/Site.php:656 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"remote items will be deleted. Own items, and marked or filed items are " +"always kept. 0 disables this behaviour." +msgstr "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl in Tagen, nach der Beiträge, die auf anderen Knoten des Netzwerks verfasst wurden, gelöscht werden sollen. Eigene Beiträge sowie markierte oder abgespeicherte Beiträge werden nicht gelöscht. Ein Wert von 0 deaktiviert das automatische Löschen von Beiträgen." + +#: src/Module/Admin/Site.php:657 +msgid "Lifespan of unclaimed items" +msgstr "Lebensdauer nicht angeforderter Beiträge" + +#: src/Module/Admin/Site.php:657 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"unclaimed remote items (mostly content from the relay) will be deleted. " +"Default value is 90 days. Defaults to the general lifespan value of remote " +"items if set to 0." +msgstr "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl von Tagen, nach denen nicht angeforderte Beiträge (hauptsächlich solche, die über das Relais eintreffen) gelöscht werden. Der Standardwert beträgt 90 Tage. Wird dieser Wert auf 0 gesetzt, wird die Lebensdauer von Beiträgen anderer Knoten verwendet." + +#: src/Module/Admin/Site.php:658 +msgid "Lifespan of raw conversation data" +msgstr "Lebensdauer der Beiträge" + +#: src/Module/Admin/Site.php:658 +msgid "" +"The conversation data is used for ActivityPub and OStatus, as well as for " +"debug purposes. It should be safe to remove it after 14 days, default is 90 " +"days." +msgstr "Die Konversationsdaten werden für ActivityPub und OStatus sowie für Debug-Zwecke verwendet. Sie sollten gefahrlos nach 14 Tagen entfernt werden können, der Standardwert beträgt 90 Tage." + +#: src/Module/Admin/Site.php:659 +msgid "Path to item cache" +msgstr "Pfad zum Item-Cache" + +#: src/Module/Admin/Site.php:659 +msgid "The item caches buffers generated bbcode and external images." +msgstr "Im Item-Cache werden externe Bilder und geparster BBCode zwischen gespeichert." + +#: src/Module/Admin/Site.php:660 +msgid "Cache duration in seconds" +msgstr "Cache-Dauer in Sekunden" + +#: src/Module/Admin/Site.php:660 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "Wie lange sollen die zwischengespeicherten Dateien vorgehalten werden? Grundeinstellung sind 86400 Sekunden (ein Tag). Um den Item-Cache zu deaktivieren, setze diesen Wert auf -1." + +#: src/Module/Admin/Site.php:661 +msgid "Maximum numbers of comments per post" +msgstr "Maximale Anzahl von Kommentaren pro Beitrag" + +#: src/Module/Admin/Site.php:661 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "Wie viele Kommentare sollen pro Beitrag angezeigt werden? Standardwert sind 100." + +#: src/Module/Admin/Site.php:662 +msgid "Temp path" +msgstr "Temp-Pfad" + +#: src/Module/Admin/Site.php:662 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "Solltest du ein eingeschränktes System haben, auf dem der Webserver nicht auf das temp-Verzeichnis des Systems zugreifen kann, setze hier einen anderen Pfad." + +#: src/Module/Admin/Site.php:663 +msgid "Disable picture proxy" +msgstr "Bilder-Proxy deaktivieren" + +#: src/Module/Admin/Site.php:663 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwidth." +msgstr "Der Proxy für Bilder verbessert die Leistung und Privatsphäre der Nutzer. Er sollte nicht auf Systemen verwendet werden, die nur über begrenzte Bandbreite verfügen." + +#: src/Module/Admin/Site.php:664 +msgid "Only search in tags" +msgstr "Nur in Tags suchen" + +#: src/Module/Admin/Site.php:664 +msgid "On large systems the text search can slow down the system extremely." +msgstr "Auf großen Knoten kann die Volltext-Suche das System ausbremsen." + +#: src/Module/Admin/Site.php:666 +msgid "New base url" +msgstr "Neue Basis-URL" + +#: src/Module/Admin/Site.php:666 +msgid "" +"Change base url for this server. Sends relocate message to all Friendica and" +" Diaspora* contacts of all users." +msgstr "Ändert die Basis-URL dieses Servers und sendet eine Umzugsmitteilung an alle Friendica- und Diaspora*-Kontakte deiner NutzerInnen." + +#: src/Module/Admin/Site.php:668 +msgid "RINO Encryption" +msgstr "RINO-Verschlüsselung" + +#: src/Module/Admin/Site.php:668 +msgid "Encryption layer between nodes." +msgstr "Verschlüsselung zwischen Friendica-Instanzen" + +#: src/Module/Admin/Site.php:668 +msgid "Enabled" +msgstr "Aktiv" + +#: src/Module/Admin/Site.php:670 +msgid "Maximum number of parallel workers" +msgstr "Maximale Anzahl parallel laufender Worker" + +#: src/Module/Admin/Site.php:670 +#, php-format +msgid "" +"On shared hosters set this to %d. On larger systems, values of %d are great." +" Default value is %d." +msgstr "Wenn dein Knoten bei einem Shared Hoster ist, setze diesen Wert auf %d. Auf größeren Systemen funktioniert ein Wert von %d recht gut. Standardeinstellung sind %d." + +#: src/Module/Admin/Site.php:671 +msgid "Don't use \"proc_open\" with the worker" +msgstr "\"proc_open\" nicht für die Worker verwenden" + +#: src/Module/Admin/Site.php:671 +msgid "" +"Enable this if your system doesn't allow the use of \"proc_open\". This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of worker calls in your crontab." +msgstr "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der worker-Aufrufe in deiner crontab erhöhen." + +#: src/Module/Admin/Site.php:672 +msgid "Enable fastlane" +msgstr "Aktiviere Fastlane" + +#: src/Module/Admin/Site.php:672 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "Wenn aktiviert, wird der Fastlane-Mechanismus einen weiteren Worker-Prozeß starten, wenn Prozesse mit höherer Priorität von Prozessen mit niedrigerer Priorität blockiert werden." + +#: src/Module/Admin/Site.php:673 +msgid "Enable frontend worker" +msgstr "Aktiviere den Frontend-Worker" + +#: src/Module/Admin/Site.php:673 +#, php-format +msgid "" +"When enabled the Worker process is triggered when backend access is " +"performed (e.g. messages being delivered). On smaller sites you might want " +"to call %s/worker on a regular basis via an external cron job. You should " +"only enable this option if you cannot utilize cron/scheduled jobs on your " +"server." +msgstr "Ist diese Option aktiv, wird der Worker Prozess durch Aktionen am Frontend gestartet (z.B. wenn Nachrichten zugestellt werden). Auf kleineren Seiten sollte %s/worker regelmäßig, beispielsweise durch einen externen Cron Anbieter, aufgerufen werden. Du solltest diese Option nur dann aktivieren, wenn du keinen Cron Job auf deinem eigenen Server starten kannst." + +#: src/Module/Admin/Site.php:675 +msgid "Subscribe to relay" +msgstr "Relais abonnieren" + +#: src/Module/Admin/Site.php:675 +msgid "" +"Enables the receiving of public posts from the relay. They will be included " +"in the search, subscribed tags and on the global community page." +msgstr "Aktiviert den Empfang von öffentlichen Beiträgen vom Relais-Server. Diese Beiträge werden in der Suche, den abonnierten Hashtags sowie der globalen Gemeinschaftsseite verfügbar sein." + +#: src/Module/Admin/Site.php:676 +msgid "Relay server" +msgstr "Relais-Server" + +#: src/Module/Admin/Site.php:676 +msgid "" +"Address of the relay server where public posts should be send to. For " +"example https://relay.diasp.org" +msgstr "Adresse des Relais-Servers, an den die öffentlichen Beiträge gesendet werden sollen. Zum Beispiel https://relay.diasp.org" + +#: src/Module/Admin/Site.php:677 +msgid "Direct relay transfer" +msgstr "Direkte Relais-Übertragung" + +#: src/Module/Admin/Site.php:677 +msgid "" +"Enables the direct transfer to other servers without using the relay servers" +msgstr "Aktiviert das direkte Verteilen an andere Server, ohne dass ein Relais-Server verwendet wird." + +#: src/Module/Admin/Site.php:678 +msgid "Relay scope" +msgstr "Geltungsbereich des Relais" + +#: src/Module/Admin/Site.php:678 +msgid "" +"Can be \"all\" or \"tags\". \"all\" means that every public post should be " +"received. \"tags\" means that only posts with selected tags should be " +"received." +msgstr "Der Wert kann entweder 'Alle' oder 'Schlagwörter' sein. 'Alle' bedeutet, dass alle öffentliche Beiträge empfangen werden sollen. 'Schlagwörter' schränkt dem Empfang auf Beiträge ein, die bestimmte Schlagwörter beinhalten." + +#: src/Module/Admin/Site.php:678 +msgid "all" +msgstr "Alle" + +#: src/Module/Admin/Site.php:678 +msgid "tags" +msgstr "Schlagwörter" + +#: src/Module/Admin/Site.php:679 +msgid "Server tags" +msgstr "Server-Schlagworte" + +#: src/Module/Admin/Site.php:679 +msgid "Comma separated list of tags for the \"tags\" subscription." +msgstr "Liste von Schlagworten, die abonniert werden sollen, mit Komma getrennt." + +#: src/Module/Admin/Site.php:680 +msgid "Allow user tags" +msgstr "Verwende Schlagworte der Nutzer" + +#: src/Module/Admin/Site.php:680 +msgid "" +"If enabled, the tags from the saved searches will used for the \"tags\" " +"subscription in addition to the \"relay_server_tags\"." +msgstr "Ist dies aktiviert, werden die Schlagwörter der gespeicherten Suchen zusätzlich zu den oben definierten Server-Schlagworten abonniert." + +#: src/Module/Admin/Site.php:683 +msgid "Start Relocation" +msgstr "Umsiedlung starten" + +#: src/Module/Admin/Summary.php:30 +#, php-format +msgid "" +"Your DB still runs with MyISAM tables. You should change the engine type to " +"InnoDB. As Friendica will use InnoDB only features in the future, you should" +" change this! See here for a guide that may be helpful " +"converting the table engines. You may also use the command php " +"bin/console.php dbstructure toinnodb of your Friendica installation for" +" an automatic conversion.
    " +msgstr "Deine DB verwendet derzeit noch MyISAM Tabellen. Du solltest die Datenbank Engine auf InnoDB umstellen, da Friendica in Zukunft InnoDB-Features verwenden wird. Eine Anleitung zur Umstellung der Datenbank kannst du hier finden. Du kannst außerdem mit dem Befehl php bin/console.php dbstructure toinnodb auf der Kommandozeile die Umstellung automatisch vornehmen lassen." + +#: src/Module/Admin/Summary.php:38 +#, php-format +msgid "" +"There is a new version of Friendica available for download. Your current " +"version is %1$s, upstream version is %2$s" +msgstr "Es gibt eine neue Version von Friendica. Du verwendest derzeit die Version %1$s, die aktuelle Version ist %2$s." + +#: src/Module/Admin/Summary.php:47 +msgid "" +"The database update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear." +msgstr "Das Update der Datenbank ist fehlgeschlagen. Bitte führe 'php bin/console.php dbstructure update' in der Kommandozeile aus und achte auf eventuell auftretende Fehlermeldungen." + +#: src/Module/Admin/Summary.php:51 +msgid "" +"The last update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear. (Some of the errors are possibly inside the logfile.)" +msgstr "Das letzte Update ist fehlgeschlagen. Bitte führe \"php bin/console.php dbstructure update\" auf der Kommandozeile aus und werfe einen Blick auf eventuell auftretende Fehler. (Zusätzliche Informationen zu Fehlern könnten in den Logdateien stehen.)" + +#: src/Module/Admin/Summary.php:56 +msgid "The worker was never executed. Please check your database structure!" +msgstr "Der Hintergrundprozess (worker) wurde noch nie gestartet. Bitte überprüfe deine Datenbankstruktur." + +#: src/Module/Admin/Summary.php:58 +#, php-format +msgid "" +"The last worker execution was on %s UTC. This is older than one hour. Please" +" check your crontab settings." +msgstr "Der Hintergrundprozess (worker) wurde zuletzt um %s UTC ausgeführt. Das war vor mehr als einer Stunde. Bitte überprüfe deine crontab-Einstellungen." + +#: src/Module/Admin/Summary.php:63 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +".htconfig.php. See the Config help page for " +"help with the transition." +msgstr "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.ini.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten .htconfig.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen." + +#: src/Module/Admin/Summary.php:67 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +"config/local.ini.php. See the Config help " +"page for help with the transition." +msgstr "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.config.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten config/local.ini.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen." + +#: src/Module/Admin/Summary.php:73 +#, php-format +msgid "" +"%s is not reachable on your system. This is a severe " +"configuration issue that prevents server to server communication. See the installation page for help." +msgstr "%s konnte von deinem System nicht aufgerufen werden. Dies deutet auf ein schwerwiegendes Problem deiner Konfiguration hin. Bitte konsultiere die Installations-Dokumentation zum Beheben des Problems." + +#: src/Module/Admin/Summary.php:89 +#, php-format +msgid "" +"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the" +" system.basepath from your db to avoid differences." +msgstr "Friendica's system.basepath würde aktualisiert '%s' von '%s'. Bitte entfernen Sie system.basepath aus der Datenbank um Unterschiede zu vermeiden." + +#: src/Module/Admin/Summary.php:97 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is wrong and the config file '%s' " +"isn't used." +msgstr "Friendica's aktueller system.basepath '%s' ist verkehrt und die config file '%s' wird nicht benutzt." + +#: src/Module/Admin/Summary.php:105 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is not equal to the config file " +"'%s'. Please fix your configuration." +msgstr "Friendica's aktueller system.basepath '%s' ist nicht gleich wie die config file '%s'. Bitte korrigieren Sie Ihre Konfiguration." + +#: src/Module/Admin/Summary.php:112 +msgid "Normal Account" +msgstr "Normales Konto" + +#: src/Module/Admin/Summary.php:113 +msgid "Automatic Follower Account" +msgstr "Automatisch folgendes Konto (Marktschreier)" + +#: src/Module/Admin/Summary.php:114 +msgid "Public Forum Account" +msgstr "Öffentliches Forum-Konto" + +#: src/Module/Admin/Summary.php:115 +msgid "Automatic Friend Account" +msgstr "Automatische Freunde-Seite" + +#: src/Module/Admin/Summary.php:116 +msgid "Blog Account" +msgstr "Blog-Konto" + +#: src/Module/Admin/Summary.php:117 +msgid "Private Forum Account" +msgstr "Privates Forum-Konto" + +#: src/Module/Admin/Summary.php:141 +msgid "Message queues" +msgstr "Nachrichten-Warteschlangen" + +#: src/Module/Admin/Summary.php:147 +msgid "Server Settings" +msgstr "Servereinstellungen" + +#: src/Module/Admin/Summary.php:161 +msgid "Summary" +msgstr "Zusammenfassung" + +#: src/Module/Admin/Summary.php:163 +msgid "Registered users" +msgstr "Registrierte Personen" + +#: src/Module/Admin/Summary.php:165 +msgid "Pending registrations" +msgstr "Anstehende Anmeldungen" + +#: src/Module/Admin/Summary.php:166 +msgid "Version" +msgstr "Version" + +#: src/Module/Admin/Summary.php:170 +msgid "Active addons" +msgstr "Aktivierte Addons" + +#: src/Module/Admin/Themes/Details.php:32 src/Module/Admin/Themes/Embed.php:46 +msgid "Theme settings updated." +msgstr "Themeneinstellungen aktualisiert." + +#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:47 +#, php-format +msgid "Theme %s disabled." +msgstr "Theme %s deaktiviert." + +#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:49 +#, php-format +msgid "Theme %s successfully enabled." +msgstr "Theme %s erfolgreich aktiviert." + +#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:51 +#, php-format +msgid "Theme %s failed to install." +msgstr "Theme %s konnte nicht aktiviert werden." + +#: src/Module/Admin/Themes/Details.php:97 +msgid "Screenshot" +msgstr "Bildschirmfoto" + +#: src/Module/Admin/Themes/Details.php:105 +#: src/Module/Admin/Themes/Index.php:94 src/Module/BaseAdminModule.php:83 +msgid "Themes" +msgstr "Themen" + +#: src/Module/Admin/Themes/Embed.php:67 +msgid "Unknown theme." +msgstr "Unbekanntes Theme" + +#: src/Module/Admin/Themes/Index.php:96 +msgid "Reload active themes" +msgstr "Aktives Theme neu laden" + +#: src/Module/Admin/Themes/Index.php:101 +#, php-format +msgid "No themes found on the system. They should be placed in %1$s" +msgstr "Es wurden keine Themes auf dem System gefunden. Diese sollten in %1$s platziert werden." + +#: src/Module/Admin/Themes/Index.php:102 +msgid "[Experimental]" +msgstr "[Experimentell]" + +#: src/Module/Admin/Themes/Index.php:103 +msgid "[Unsupported]" +msgstr "[Nicht unterstützt]" + +#: src/Module/Admin/Tos.php:30 +msgid "The Terms of Service settings have been updated." +msgstr "Die Einstellungen zur Nutzungsbedingung wurden aktualisiert" + +#: src/Module/Admin/Tos.php:44 +msgid "Display Terms of Service" +msgstr "Nutzungsbedingungen anzeigen" + +#: src/Module/Admin/Tos.php:44 +msgid "" +"Enable the Terms of Service page. If this is enabled a link to the terms " +"will be added to the registration form and the general information page." +msgstr "Aktiviert die Seite für die Nutzungsbedingungen. Ist dies der Fall, werden sie auch von der Registrierungsseite und der allgemeinen Informationsseite verlinkt." + +#: src/Module/Admin/Tos.php:45 +msgid "Display Privacy Statement" +msgstr "Datenschutzerklärung anzeigen" + +#: src/Module/Admin/Tos.php:45 +#, php-format +msgid "" +"Show some informations regarding the needed information to operate the node " +"according e.g. to EU-GDPR." +msgstr "Zeige Informationen über die zum Betrieb der Seite notwendigen, personenbezogenen Daten an, wie es z.B. die EU-DSGVO verlangt." + +#: src/Module/Admin/Tos.php:46 +msgid "Privacy Statement Preview" +msgstr "Vorschau: Datenschutzerklärung" + +#: src/Module/Admin/Tos.php:48 +msgid "The Terms of Service" +msgstr "Die Nutzungsbedingungen" + +#: src/Module/Admin/Tos.php:48 +msgid "" +"Enter the Terms of Service for your node here. You can use BBCode. Headers " +"of sections should be [h2] and below." +msgstr "Füge hier die Nutzungsbedingungen deines Knotens ein. Du kannst BBCode zur Formatierung verwenden. Überschriften sollten [h2] oder darunter sein." + +#: src/Module/Admin/Users.php:48 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\nHallo %1$s,\n\nauf %2$s wurde ein Account für dich angelegt." + +#: src/Module/Admin/Users.php:51 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "\nNachfolgend die Anmelde-Details:\n\tAdresse der Seite:\t%1$s\n\tBenutzername:\t%2$s\n\tPasswort:\t%3$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich\nangemeldet hast.\n\nBitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst du ja auch einige Informationen über dich in deinem\nProfil veröffentlichen, damit andere Leute dich einfacher finden können.\nBearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir\npassendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.\nAußerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.\n\nWir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nSolltest du dein Nutzerkonto löschen wollen, kannst du dies unter %1$s/removeme jederzeit tun.\n\nNun viel Spaß, gute Begegnungen und willkommen auf %4$s." + +#: src/Module/Admin/Users.php:96 +#, php-format +msgid "%s user blocked" +msgid_plural "%s users blocked" +msgstr[0] "%s Nutzer blockiert" +msgstr[1] "%s Nutzer blockiert" + +#: src/Module/Admin/Users.php:102 +#, php-format +msgid "%s user unblocked" +msgid_plural "%s users unblocked" +msgstr[0] "%s Nutzer freigeschaltet" +msgstr[1] "%s Nutzer freigeschaltet" + +#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160 +msgid "You can't remove yourself" +msgstr "Du kannst dich nicht selbst löschen!" + +#: src/Module/Admin/Users.php:114 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s Nutzer gelöscht" +msgstr[1] "%s Nutzer gelöscht" + +#: src/Module/Admin/Users.php:158 +#, php-format +msgid "User \"%s\" deleted" +msgstr "Nutzer \"%s\" gelöscht" + +#: src/Module/Admin/Users.php:167 +#, php-format +msgid "User \"%s\" blocked" +msgstr "Nutzer \"%s\" blockiert" + +#: src/Module/Admin/Users.php:173 +#, php-format +msgid "User \"%s\" unblocked" +msgstr "Nutzer \"%s\" frei geschaltet" + +#: src/Module/Admin/Users.php:226 +msgid "Private Forum" +msgstr "Privates Forum" + +#: src/Module/Admin/Users.php:233 +msgid "Relay" +msgstr "Relais" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Register date" +msgstr "Anmeldedatum" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last login" +msgstr "Letzte Anmeldung" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last item" +msgstr "Letzter Beitrag" + +#: src/Module/Admin/Users.php:272 +msgid "Type" +msgstr "Typ" + +#: src/Module/Admin/Users.php:279 +msgid "Add User" +msgstr "Nutzer hinzufügen" + +#: src/Module/Admin/Users.php:281 +msgid "User registrations waiting for confirm" +msgstr "Neuanmeldungen, die auf Deine Bestätigung warten" + +#: src/Module/Admin/Users.php:282 +msgid "User waiting for permanent deletion" +msgstr "Nutzer wartet auf permanente Löschung" + +#: src/Module/Admin/Users.php:283 +msgid "Request date" +msgstr "Anfragedatum" + +#: src/Module/Admin/Users.php:284 +msgid "No registrations." +msgstr "Keine Neuanmeldungen." + +#: src/Module/Admin/Users.php:285 +msgid "Note from the user" +msgstr "Hinweis vom Nutzer" + +#: src/Module/Admin/Users.php:287 +msgid "Deny" +msgstr "Verwehren" + +#: src/Module/Admin/Users.php:290 +msgid "User blocked" +msgstr "Nutzer blockiert." + +#: src/Module/Admin/Users.php:292 +msgid "Site admin" +msgstr "Seitenadministrator" + +#: src/Module/Admin/Users.php:293 +msgid "Account expired" +msgstr "Account ist abgelaufen" + +#: src/Module/Admin/Users.php:296 +msgid "New User" +msgstr "Neuer Nutzer" + +#: src/Module/Admin/Users.php:297 +msgid "Permanent deletion" +msgstr "Permanent löschen" + +#: src/Module/Admin/Users.php:302 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?" + +#: src/Module/Admin/Users.php:303 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Der Nutzer {0} wird gelöscht!\\n\\nAlles, was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?" + +#: src/Module/Admin/Users.php:313 +msgid "Name of the new user." +msgstr "Name des neuen Nutzers" + +#: src/Module/Admin/Users.php:314 +msgid "Nickname" +msgstr "Spitzname" + +#: src/Module/Admin/Users.php:314 +msgid "Nickname of the new user." +msgstr "Spitznamen für den neuen Nutzer" + +#: src/Module/Admin/Users.php:315 +msgid "Email address of the new user." +msgstr "Email Adresse des neuen Nutzers" + +#: src/Module/AllFriends.php:55 +msgid "No friends to display." +msgstr "Keine Kontakte zum Anzeigen." #: src/Module/Apps.php:29 msgid "No installed applications." @@ -9449,6 +8451,10 @@ msgstr "Keine Applikationen installiert." msgid "Applications" msgstr "Anwendungen" +#: src/Module/Attach.php:36 src/Module/Attach.php:48 +msgid "Item was not found." +msgstr "Beitrag konnte nicht gefunden werden." + #: src/Module/Babel.php:31 msgid "Source input" msgstr "Originaltext:" @@ -9553,6 +8559,435 @@ msgstr "Markdown" msgid "HTML" msgstr "HTML" +#: src/Module/BaseAdminModule.php:76 +msgid "Overview" +msgstr "Übersicht" + +#: src/Module/BaseAdminModule.php:79 +msgid "Configuration" +msgstr "Konfiguration" + +#: src/Module/BaseAdminModule.php:87 +msgid "Database" +msgstr "Datenbank" + +#: src/Module/BaseAdminModule.php:88 +msgid "DB updates" +msgstr "DB Updates" + +#: src/Module/BaseAdminModule.php:89 +msgid "Inspect Deferred Workers" +msgstr "Verzögerte Worker inspizieren" + +#: src/Module/BaseAdminModule.php:90 +msgid "Inspect worker Queue" +msgstr "Worker Warteschlange inspizieren" + +#: src/Module/BaseAdminModule.php:92 +msgid "Tools" +msgstr "Werkzeuge" + +#: src/Module/BaseAdminModule.php:93 +msgid "Contact Blocklist" +msgstr "Kontakt Sperrliste" + +#: src/Module/BaseAdminModule.php:101 +msgid "Diagnostics" +msgstr "Diagnostik" + +#: src/Module/BaseAdminModule.php:102 +msgid "PHP Info" +msgstr "PHP-Info" + +#: src/Module/BaseAdminModule.php:103 +msgid "probe address" +msgstr "Adresse untersuchen" + +#: src/Module/BaseAdminModule.php:104 +msgid "check webfinger" +msgstr "Webfinger überprüfen" + +#: src/Module/BaseAdminModule.php:105 +msgid "Item Source" +msgstr "Eintrags Quelle" + +#: src/Module/BaseAdminModule.php:106 +msgid "Babel" +msgstr "Babel" + +#: src/Module/BaseAdminModule.php:115 +msgid "Addon Features" +msgstr "Addon Features" + +#: src/Module/BaseAdminModule.php:116 +msgid "User registrations waiting for confirmation" +msgstr "Nutzeranmeldungen, die auf Bestätigung warten" + +#: src/Module/Bookmarklet.php:35 +msgid "This page is missing a url parameter." +msgstr "Der Seite fehlt ein URL Parameter." + +#: src/Module/Bookmarklet.php:57 +msgid "The post was created" +msgstr "Der Beitrag wurde angelegt" + +#: src/Module/Contact.php:166 +#, php-format +msgid "%d contact edited." +msgid_plural "%d contacts edited." +msgstr[0] "%d Kontakt bearbeitet." +msgstr[1] "%d Kontakte bearbeitet." + +#: src/Module/Contact.php:193 src/Module/Contact.php:377 +msgid "Could not access contact record." +msgstr "Konnte nicht auf die Kontaktdaten zugreifen." + +#: src/Module/Contact.php:203 +msgid "Could not locate selected profile." +msgstr "Konnte das ausgewählte Profil nicht finden." + +#: src/Module/Contact.php:235 +msgid "Contact updated." +msgstr "Kontakt aktualisiert." + +#: src/Module/Contact.php:398 +msgid "Contact has been blocked" +msgstr "Kontakt wurde blockiert" + +#: src/Module/Contact.php:398 +msgid "Contact has been unblocked" +msgstr "Kontakt wurde wieder freigegeben" + +#: src/Module/Contact.php:408 +msgid "Contact has been ignored" +msgstr "Kontakt wurde ignoriert" + +#: src/Module/Contact.php:408 +msgid "Contact has been unignored" +msgstr "Kontakt wird nicht mehr ignoriert" + +#: src/Module/Contact.php:418 +msgid "Contact has been archived" +msgstr "Kontakt wurde archiviert" + +#: src/Module/Contact.php:418 +msgid "Contact has been unarchived" +msgstr "Kontakt wurde aus dem Archiv geholt" + +#: src/Module/Contact.php:442 +msgid "Drop contact" +msgstr "Kontakt löschen" + +#: src/Module/Contact.php:445 src/Module/Contact.php:823 +msgid "Do you really want to delete this contact?" +msgstr "Möchtest Du wirklich diesen Kontakt löschen?" + +#: src/Module/Contact.php:459 +msgid "Contact has been removed." +msgstr "Kontakt wurde entfernt." + +#: src/Module/Contact.php:489 +#, php-format +msgid "You are mutual friends with %s" +msgstr "Du hast mit %s eine beidseitige Freundschaft" + +#: src/Module/Contact.php:494 +#, php-format +msgid "You are sharing with %s" +msgstr "Du teilst mit %s" + +#: src/Module/Contact.php:499 +#, php-format +msgid "%s is sharing with you" +msgstr "%s teilt mit dir" + +#: src/Module/Contact.php:523 +msgid "Private communications are not available for this contact." +msgstr "Private Kommunikation ist für diesen Kontakt nicht verfügbar." + +#: src/Module/Contact.php:525 +msgid "Never" +msgstr "Niemals" + +#: src/Module/Contact.php:528 +msgid "(Update was successful)" +msgstr "(Aktualisierung war erfolgreich)" + +#: src/Module/Contact.php:528 +msgid "(Update was not successful)" +msgstr "(Aktualisierung war nicht erfolgreich)" + +#: src/Module/Contact.php:530 src/Module/Contact.php:1061 +msgid "Suggest friends" +msgstr "Kontakte vorschlagen" + +#: src/Module/Contact.php:534 +#, php-format +msgid "Network type: %s" +msgstr "Netzwerktyp: %s" + +#: src/Module/Contact.php:539 +msgid "Communications lost with this contact!" +msgstr "Verbindungen mit diesem Kontakt verloren!" + +#: src/Module/Contact.php:545 +msgid "Fetch further information for feeds" +msgstr "Weitere Informationen zu Feeds holen" + +#: src/Module/Contact.php:547 +msgid "" +"Fetch information like preview pictures, title and teaser from the feed " +"item. You can activate this if the feed doesn't contain much text. Keywords " +"are taken from the meta header in the feed item and are posted as hash tags." +msgstr "Zusätzliche Informationen wie Vorschaubilder, Titel und Zusammenfassungen vom Feed-Eintrag laden. Du kannst diese Option aktivieren, wenn der Feed nicht allzu viel Text beinhaltet. Schlagwörter werden aus den Meta-Informationen des Feed-Headers bezogen und als Hash-Tags verwendet." + +#: src/Module/Contact.php:550 +msgid "Fetch information" +msgstr "Beziehe Information" + +#: src/Module/Contact.php:551 +msgid "Fetch keywords" +msgstr "Schlüsselwörter abrufen" + +#: src/Module/Contact.php:552 +msgid "Fetch information and keywords" +msgstr "Beziehe Information und Schlüsselworte" + +#: src/Module/Contact.php:584 +msgid "Profile Visibility" +msgstr "Profil-Sichtbarkeit" + +#: src/Module/Contact.php:585 +msgid "Contact Information / Notes" +msgstr "Kontakt-Informationen / -Notizen" + +#: src/Module/Contact.php:586 +msgid "Contact Settings" +msgstr "Kontakteinstellungen" + +#: src/Module/Contact.php:595 +msgid "Contact" +msgstr "Kontakt" + +#: src/Module/Contact.php:599 +#, php-format +msgid "" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Bitte wähle eines deiner Profile das angezeigt werden soll, wenn %s dein Profil aufruft." + +#: src/Module/Contact.php:601 +msgid "Their personal note" +msgstr "Die persönliche Mitteilung" + +#: src/Module/Contact.php:603 +msgid "Edit contact notes" +msgstr "Notizen zum Kontakt bearbeiten" + +#: src/Module/Contact.php:607 +msgid "Block/Unblock contact" +msgstr "Kontakt blockieren/freischalten" + +#: src/Module/Contact.php:608 +msgid "Ignore contact" +msgstr "Ignoriere den Kontakt" + +#: src/Module/Contact.php:609 +msgid "Repair URL settings" +msgstr "URL-Einstellungen reparieren" + +#: src/Module/Contact.php:610 +msgid "View conversations" +msgstr "Unterhaltungen anzeigen" + +#: src/Module/Contact.php:615 +msgid "Last update:" +msgstr "Letzte Aktualisierung: " + +#: src/Module/Contact.php:617 +msgid "Update public posts" +msgstr "Öffentliche Beiträge aktualisieren" + +#: src/Module/Contact.php:619 src/Module/Contact.php:1071 +msgid "Update now" +msgstr "Jetzt aktualisieren" + +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 +msgid "Unignore" +msgstr "Ignorieren aufheben" + +#: src/Module/Contact.php:629 +msgid "Currently blocked" +msgstr "Derzeit geblockt" + +#: src/Module/Contact.php:630 +msgid "Currently ignored" +msgstr "Derzeit ignoriert" + +#: src/Module/Contact.php:631 +msgid "Currently archived" +msgstr "Momentan archiviert" + +#: src/Module/Contact.php:632 +msgid "Awaiting connection acknowledge" +msgstr "Bedarf der Bestätigung des Kontakts" + +#: src/Module/Contact.php:633 +msgid "" +"Replies/likes to your public posts may still be visible" +msgstr "Antworten/Likes auf deine öffentlichen Beiträge könnten weiterhin sichtbar sein" + +#: src/Module/Contact.php:634 +msgid "Notification for new posts" +msgstr "Benachrichtigung bei neuen Beiträgen" + +#: src/Module/Contact.php:634 +msgid "Send a notification of every new post of this contact" +msgstr "Sende eine Benachrichtigung, wann immer dieser Kontakt einen neuen Beitrag schreibt." + +#: src/Module/Contact.php:636 +msgid "Blacklisted keywords" +msgstr "Unterdrückte Schlüsselworte " + +#: src/Module/Contact.php:636 +msgid "" +"Comma separated list of keywords that should not be converted to hashtags, " +"when \"Fetch information and keywords\" is selected" +msgstr "Komma-Separierte Liste mit Schlüsselworten, die nicht in Hashtags konvertiert werden, wenn \"Beziehe Information und Schlüsselworte\" aktiviert wurde" + +#: src/Module/Contact.php:653 src/Module/Settings/TwoFactor/Index.php:100 +msgid "Actions" +msgstr "Aktionen" + +#: src/Module/Contact.php:700 +msgid "Suggestions" +msgstr "Kontaktvorschläge" + +#: src/Module/Contact.php:703 +msgid "Suggest potential friends" +msgstr "Kontakte vorschlagen" + +#: src/Module/Contact.php:708 src/Module/Group.php:287 +msgid "All Contacts" +msgstr "Alle Kontakte" + +#: src/Module/Contact.php:711 +msgid "Show all contacts" +msgstr "Alle Kontakte anzeigen" + +#: src/Module/Contact.php:716 +msgid "Unblocked" +msgstr "Ungeblockt" + +#: src/Module/Contact.php:719 +msgid "Only show unblocked contacts" +msgstr "Nur nicht-blockierte Kontakte anzeigen" + +#: src/Module/Contact.php:724 +msgid "Blocked" +msgstr "Geblockt" + +#: src/Module/Contact.php:727 +msgid "Only show blocked contacts" +msgstr "Nur blockierte Kontakte anzeigen" + +#: src/Module/Contact.php:732 +msgid "Ignored" +msgstr "Ignoriert" + +#: src/Module/Contact.php:735 +msgid "Only show ignored contacts" +msgstr "Nur ignorierte Kontakte anzeigen" + +#: src/Module/Contact.php:740 +msgid "Archived" +msgstr "Archiviert" + +#: src/Module/Contact.php:743 +msgid "Only show archived contacts" +msgstr "Nur archivierte Kontakte anzeigen" + +#: src/Module/Contact.php:748 +msgid "Hidden" +msgstr "Verborgen" + +#: src/Module/Contact.php:751 +msgid "Only show hidden contacts" +msgstr "Nur verborgene Kontakte anzeigen" + +#: src/Module/Contact.php:759 +msgid "Organize your contact groups" +msgstr "Verwalte deine Kontaktgruppen" + +#: src/Module/Contact.php:818 +msgid "Search your contacts" +msgstr "Suche in deinen Kontakten" + +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 +msgid "Archive" +msgstr "Archivieren" + +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 +msgid "Unarchive" +msgstr "Aus Archiv zurückholen" + +#: src/Module/Contact.php:832 +msgid "Batch Actions" +msgstr "Stapelverarbeitung" + +#: src/Module/Contact.php:859 +msgid "Conversations started by this contact" +msgstr "Unterhaltungen, die von diesem Kontakt begonnen wurden" + +#: src/Module/Contact.php:864 +msgid "Posts and Comments" +msgstr "Statusnachrichten und Kommentare" + +#: src/Module/Contact.php:887 +msgid "View all contacts" +msgstr "Alle Kontakte anzeigen" + +#: src/Module/Contact.php:898 +msgid "View all common friends" +msgstr "Alle Kontakte anzeigen" + +#: src/Module/Contact.php:908 +msgid "Advanced Contact Settings" +msgstr "Fortgeschrittene Kontakteinstellungen" + +#: src/Module/Contact.php:994 +msgid "Mutual Friendship" +msgstr "Beidseitige Freundschaft" + +#: src/Module/Contact.php:999 +msgid "is a fan of yours" +msgstr "ist ein Fan von dir" + +#: src/Module/Contact.php:1004 +msgid "you are a fan of" +msgstr "Du bist Fan von" + +#: src/Module/Contact.php:1028 +msgid "Edit contact" +msgstr "Kontakt bearbeiten" + +#: src/Module/Contact.php:1082 +msgid "Toggle Blocked status" +msgstr "Geblockt-Status ein-/ausschalten" + +#: src/Module/Contact.php:1090 +msgid "Toggle Ignored status" +msgstr "Ignoriert-Status ein-/ausschalten" + +#: src/Module/Contact.php:1099 +msgid "Toggle Archive status" +msgstr "Archiviert-Status ein-/ausschalten" + +#: src/Module/Contact.php:1107 +msgid "Delete contact" +msgstr "Lösche den Kontakt" + #: src/Module/Credits.php:25 msgid "Credits" msgstr "Credits" @@ -9564,7 +8999,23 @@ msgid "" "code or the translation of Friendica. Thank you all!" msgstr "Friendica ist ein Gemeinschaftsprojekt, das nicht ohne die Hilfe vieler Personen möglich wäre. Hier ist eine Aufzählung der Personen, die zum Code oder der Übersetzung beigetragen haben. Dank an alle !" -#: src/Module/Feedtest.php:20 src/Module/Filer.php:20 +#: src/Module/Directory.php:66 +msgid "No entries (some entries may be hidden)." +msgstr "Keine Einträge (einige Einträge könnten versteckt sein)." + +#: src/Module/Directory.php:85 +msgid "Find on this site" +msgstr "Auf diesem Server suchen" + +#: src/Module/Directory.php:87 +msgid "Results for:" +msgstr "Ergebnisse für:" + +#: src/Module/Directory.php:89 +msgid "Site Directory" +msgstr "Verzeichnis" + +#: src/Module/Feedtest.php:20 src/Module/Filer/SaveTag.php:20 msgid "You must be logged in to use this module" msgstr "Du musst eingeloggt sein, um dieses Modul benutzen zu können." @@ -9572,120 +9023,175 @@ msgstr "Du musst eingeloggt sein, um dieses Modul benutzen zu können." msgid "Source URL" msgstr "URL der Quelle" -#: src/Module/Filer.php:38 +#: src/Module/Filer/SaveTag.php:39 #, php-format msgid "Filetag %s saved to item" msgstr "Tag %s für den Eintrag gespeichert" -#: src/Module/Filer.php:48 +#: src/Module/Filer/SaveTag.php:49 msgid "- select -" msgstr "- auswählen -" -#: src/Module/Group.php:41 +#: src/Module/FollowConfirm.php:37 +msgid "No given contact." +msgstr "Keine Kontakte vorgegeben." + +#: src/Module/Friendica.php:40 +msgid "Installed addons/apps:" +msgstr "Installierte Apps und Addons" + +#: src/Module/Friendica.php:45 +msgid "No installed addons/apps" +msgstr "Es sind keine Addons oder Apps installiert" + +#: src/Module/Friendica.php:50 +#, php-format +msgid "Read about the Terms of Service of this node." +msgstr "Erfahre mehr über die Nutzungsbedingungen dieses Knotens." + +#: src/Module/Friendica.php:57 +msgid "On this server the following remote servers are blocked." +msgstr "Auf diesem Server werden die folgenden, entfernten Server blockiert." + +#: src/Module/Friendica.php:75 +#, php-format +msgid "" +"This is Friendica, version %s that is running at the web location %s. The " +"database version is %s, the post update version is %s." +msgstr "Diese Friendica-Instanz verwendet die Version %s, sie ist unter der folgenden Adresse im Web zu finden %s. Die Datenbankversion ist %s und die Post-Update-Version %s." + +#: src/Module/Friendica.php:80 +msgid "" +"Please visit Friendi.ca to learn more " +"about the Friendica project." +msgstr "Bitte besuche Friendi.ca, um mehr über das Friendica-Projekt zu erfahren." + +#: src/Module/Friendica.php:81 +msgid "Bug reports and issues: please visit" +msgstr "Probleme oder Fehler gefunden? Bitte besuche" + +#: src/Module/Friendica.php:81 +msgid "the bugtracker at github" +msgstr "den Bugtracker auf github" + +#: src/Module/Friendica.php:82 +msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" +msgstr "Vorschläge, Lob usw.: E-Mail an \"Info\" at \"Friendi - dot ca\"" + +#: src/Module/Group.php:42 msgid "Group created." msgstr "Gruppe erstellt." -#: src/Module/Group.php:47 +#: src/Module/Group.php:48 msgid "Could not create group." msgstr "Konnte die Gruppe nicht erstellen." -#: src/Module/Group.php:57 src/Module/Group.php:198 src/Module/Group.php:222 +#: src/Module/Group.php:59 src/Module/Group.php:207 src/Module/Group.php:233 msgid "Group not found." msgstr "Gruppe nicht gefunden." -#: src/Module/Group.php:63 +#: src/Module/Group.php:65 msgid "Group name changed." msgstr "Gruppenname geändert." -#: src/Module/Group.php:84 +#: src/Module/Group.php:87 msgid "Unknown group." msgstr "Unbekannte Gruppe" -#: src/Module/Group.php:93 +#: src/Module/Group.php:96 msgid "Contact is unavailable." msgstr "Kontakt ist nicht verfügbar" -#: src/Module/Group.php:97 +#: src/Module/Group.php:100 msgid "Contact is deleted." msgstr "Kontakt wurde gelöscht" -#: src/Module/Group.php:103 +#: src/Module/Group.php:106 msgid "Contact is blocked, unable to add it to a group." msgstr "Kontakt ist geblockt und konnte deshalb nicht zur Gruppe hinzugefügt werden" -#: src/Module/Group.php:107 +#: src/Module/Group.php:110 msgid "Unable to add the contact to the group." msgstr "Konnte den Kontakt nicht zur Gruppe hinzufügen" -#: src/Module/Group.php:109 +#: src/Module/Group.php:112 msgid "Contact successfully added to group." msgstr "Kontakt zur Gruppe hinzugefügt" -#: src/Module/Group.php:113 +#: src/Module/Group.php:116 msgid "Unable to remove the contact from the group." msgstr "Konnte den Kontakt nicht aus der Gruppe entfernen" -#: src/Module/Group.php:115 +#: src/Module/Group.php:118 msgid "Contact successfully removed from group." msgstr "Kontakt aus Gruppe entfernt" -#: src/Module/Group.php:118 +#: src/Module/Group.php:121 msgid "Unknown group command." msgstr "Unbekannter Gruppen Befehl" -#: src/Module/Group.php:121 +#: src/Module/Group.php:124 msgid "Bad request." msgstr "Ungültige Anfrage." -#: src/Module/Group.php:159 +#: src/Module/Group.php:163 msgid "Save Group" msgstr "Gruppe speichern" -#: src/Module/Group.php:160 +#: src/Module/Group.php:164 msgid "Filter" msgstr "Filter" -#: src/Module/Group.php:165 +#: src/Module/Group.php:170 msgid "Create a group of contacts/friends." msgstr "Eine Kontaktgruppe anlegen." -#: src/Module/Group.php:203 +#: src/Module/Group.php:212 msgid "Group removed." msgstr "Gruppe entfernt." -#: src/Module/Group.php:205 +#: src/Module/Group.php:214 msgid "Unable to remove group." msgstr "Konnte die Gruppe nicht entfernen." -#: src/Module/Group.php:254 +#: src/Module/Group.php:265 msgid "Delete Group" msgstr "Gruppe löschen" -#: src/Module/Group.php:264 +#: src/Module/Group.php:275 msgid "Edit Group Name" msgstr "Gruppen Name bearbeiten" -#: src/Module/Group.php:274 +#: src/Module/Group.php:285 msgid "Members" msgstr "Mitglieder" -#: src/Module/Group.php:290 +#: src/Module/Group.php:301 msgid "Remove contact from group" msgstr "Entferne den Kontakt aus der Gruppe" -#: src/Module/Group.php:324 +#: src/Module/Group.php:335 msgid "Add contact to group" msgstr "Füge den Kontakt zur Gruppe hinzu" -#: src/Module/Install.php:157 +#: src/Module/Help.php:43 +msgid "Help:" +msgstr "Hilfe:" + +#: src/Module/Home.php:42 +#, php-format +msgid "Welcome to %s" +msgstr "Willkommen zu %s" + +#: src/Module/Install.php:158 msgid "Friendica Communications Server - Setup" msgstr "Friendica Komunikationsserver - Installation" -#: src/Module/Install.php:168 +#: src/Module/Install.php:169 msgid "System check" msgstr "Systemtest" -#: src/Module/Install.php:173 +#: src/Module/Install.php:174 msgid "Check again" msgstr "Noch einmal testen" @@ -9725,95 +9231,95 @@ msgid "" " at the base URL without sub path." msgstr "Sollte das ermittelte Unterverzeichnis der Friendica Installation nicht stimmen, korrigiere es bitte. Wenn dieses Feld leer ist, bedeutet dies, dass die Installation direkt unter der Basis-URL installiert wird." -#: src/Module/Install.php:220 +#: src/Module/Install.php:219 msgid "Database connection" msgstr "Datenbankverbindung" -#: src/Module/Install.php:221 +#: src/Module/Install.php:220 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "Um Friendica installieren zu können, müssen wir wissen, wie wir mit Deiner Datenbank Kontakt aufnehmen können." -#: src/Module/Install.php:222 +#: src/Module/Install.php:221 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "Bitte kontaktiere den Hosting-Provider oder den Administrator der Seite, falls du Fragen zu diesen Einstellungen haben solltest." -#: src/Module/Install.php:223 +#: src/Module/Install.php:222 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "Die Datenbank, die du unten angibst, sollte bereits existieren. Ist dies noch nicht der Fall, erzeuge sie bitte, bevor du mit der Installation fortfährst." -#: src/Module/Install.php:230 +#: src/Module/Install.php:229 msgid "Database Server Name" msgstr "Datenbank-Server" -#: src/Module/Install.php:235 +#: src/Module/Install.php:234 msgid "Database Login Name" msgstr "Datenbank-Nutzer" -#: src/Module/Install.php:241 +#: src/Module/Install.php:240 msgid "Database Login Password" msgstr "Datenbank-Passwort" -#: src/Module/Install.php:243 +#: src/Module/Install.php:242 msgid "For security reasons the password must not be empty" msgstr "Aus Sicherheitsgründen darf das Passwort nicht leer sein." -#: src/Module/Install.php:246 +#: src/Module/Install.php:245 msgid "Database Name" msgstr "Datenbank-Name" -#: src/Module/Install.php:250 src/Module/Install.php:280 +#: src/Module/Install.php:249 src/Module/Install.php:278 msgid "Please select a default timezone for your website" msgstr "Bitte wähle die Standardzeitzone Deiner Webseite" -#: src/Module/Install.php:265 +#: src/Module/Install.php:263 msgid "Site settings" msgstr "Server-Einstellungen" -#: src/Module/Install.php:275 +#: src/Module/Install.php:273 msgid "Site administrator email address" msgstr "E-Mail-Adresse des Administrators" -#: src/Module/Install.php:277 +#: src/Module/Install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "Die E-Mail-Adresse, die in Deinem Friendica-Account eingetragen ist, muss mit dieser Adresse übereinstimmen, damit du das Admin-Panel benutzen kannst." -#: src/Module/Install.php:284 +#: src/Module/Install.php:282 msgid "System Language:" msgstr "Systemsprache:" -#: src/Module/Install.php:286 +#: src/Module/Install.php:284 msgid "" "Set the default language for your Friendica installation interface and to " "send emails." msgstr "Wähle die Standardsprache für deine Friendica-Installations-Oberfläche und den E-Mail-Versand" -#: src/Module/Install.php:299 +#: src/Module/Install.php:296 msgid "Your Friendica site database has been installed." msgstr "Die Datenbank Deiner Friendica-Seite wurde installiert." -#: src/Module/Install.php:307 +#: src/Module/Install.php:304 msgid "Installation finished" msgstr "Installation abgeschlossen" -#: src/Module/Install.php:329 +#: src/Module/Install.php:326 msgid "

    What next

    " msgstr "

    Wie geht es weiter?

    " -#: src/Module/Install.php:330 +#: src/Module/Install.php:327 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "worker." msgstr "Wichtig: du musst [manuell] einen Cronjob (o.ä.) für den Worker einrichten." -#: src/Module/Install.php:333 +#: src/Module/Install.php:330 #, php-format msgid "" "Go to your new Friendica node registration page " @@ -9821,9 +9327,109 @@ msgid "" " administrator email. This will allow you to enter the site admin panel." msgstr "Du solltest nun die Seite zur Nutzerregistrierung deiner neuen Friendica Instanz besuchen und einen neuen Nutzer einrichten. Bitte denke daran, dieselbe E-Mail Adresse anzugeben, die du auch als Administrator-E-Mail angegeben hast, damit du das Admin-Panel verwenden kannst." -#: src/Module/Itemsource.php:48 -msgid "Item Guid" -msgstr "Beitrags-Guid" +#: src/Module/Invite.php:37 +msgid "Total invitation limit exceeded." +msgstr "Limit für Einladungen erreicht." + +#: src/Module/Invite.php:60 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s: Keine gültige Email Adresse." + +#: src/Module/Invite.php:87 +msgid "Please join us on Friendica" +msgstr "Ich lade dich zu unserem sozialen Netzwerk Friendica ein" + +#: src/Module/Invite.php:96 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limit für Einladungen erreicht. Bitte kontaktiere des Administrator der Seite." + +#: src/Module/Invite.php:100 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s: Zustellung der Nachricht fehlgeschlagen." + +#: src/Module/Invite.php:104 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d Nachricht gesendet." +msgstr[1] "%d Nachrichten gesendet." + +#: src/Module/Invite.php:122 +msgid "You have no more invitations available" +msgstr "Du hast keine weiteren Einladungen" + +#: src/Module/Invite.php:129 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Besuche %s für eine Liste der öffentlichen Server, denen du beitreten kannst. Friendica-Mitglieder unterschiedlicher Server können sich sowohl alle miteinander verbinden, als auch mit Mitgliedern anderer sozialer Netzwerke." + +#: src/Module/Invite.php:131 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica-Website." + +#: src/Module/Invite.php:132 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst." + +#: src/Module/Invite.php:136 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Es tut uns leid. Dieses System ist zurzeit nicht dafür konfiguriert, sich mit anderen öffentlichen Seiten zu verbinden oder Mitglieder einzuladen." + +#: src/Module/Invite.php:139 +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks." +msgstr "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden." + +#: src/Module/Invite.php:138 +#, php-format +msgid "To accept this invitation, please visit and register at %s." +msgstr "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s." + +#: src/Module/Invite.php:146 +msgid "Send invitations" +msgstr "Einladungen senden" + +#: src/Module/Invite.php:147 +msgid "Enter email addresses, one per line:" +msgstr "E-Mail-Adressen eingeben, eine pro Zeile:" + +#: src/Module/Invite.php:151 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "Du bist herzlich dazu eingeladen, dich mir und anderen guten Freunden auf Friendica anzuschließen - und ein besseres, soziales Netz aufzubauen." + +#: src/Module/Invite.php:153 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Du benötigst den folgenden Einladungscode: $invite_code" + +#: src/Module/Invite.php:153 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:" + +#: src/Module/Invite.php:155 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendi.ca" +msgstr "Für weitere Informationen über das Friendica-Projekt und warum wir es für ein wichtiges Projekt halten, besuche bitte http://friendi.ca." #: src/Module/Localtime.php:30 msgid "Time Conversion" @@ -9854,14 +9460,473 @@ msgstr "Umgerechnete lokale Zeit: %s" msgid "Please select your timezone:" msgstr "Bitte wähle Deine Zeitzone:" -#: src/Module/Proxy.php:74 -msgid "Bad Request." -msgstr "Ungültige Anfrage." +#: src/Module/Login.php:295 +msgid "Create a New Account" +msgstr "Neues Konto erstellen" + +#: src/Module/Login.php:328 +msgid "Password: " +msgstr "Passwort: " + +#: src/Module/Login.php:329 +msgid "Remember me" +msgstr "Anmeldedaten merken" + +#: src/Module/Login.php:332 +msgid "Or login using OpenID: " +msgstr "Oder melde dich mit deiner OpenID an: " + +#: src/Module/Login.php:338 +msgid "Forgot your password?" +msgstr "Passwort vergessen?" + +#: src/Module/Login.php:341 +msgid "Website Terms of Service" +msgstr "Website-Nutzungsbedingungen" + +#: src/Module/Login.php:342 +msgid "terms of service" +msgstr "Nutzungsbedingungen" + +#: src/Module/Login.php:344 +msgid "Website Privacy Policy" +msgstr "Website-Datenschutzerklärung" + +#: src/Module/Login.php:345 +msgid "privacy policy" +msgstr "Datenschutzerklärung" + +#: src/Module/Logout.php:27 +msgid "Logged out." +msgstr "Abgemeldet." + +#: src/Module/Maintenance.php:29 +msgid "System down for maintenance" +msgstr "System zur Wartung abgeschaltet" + +#: src/Module/PageNotFound.php:13 +msgid "Page not found." +msgstr "Seite nicht gefunden." + +#: src/Module/Photo.php:87 +#, php-format +msgid "Invalid photo with id %s." +msgstr "Fehlerhaftes Foto mit der ID %s." + +#: src/Module/Profile.php:110 src/Module/Profile.php:113 +#: src/Protocol/OStatus.php:1302 +#, php-format +msgid "%s's timeline" +msgstr "Timeline von %s" + +#: src/Module/Profile.php:111 src/Protocol/OStatus.php:1306 +#, php-format +msgid "%s's posts" +msgstr "Beiträge von %s" + +#: src/Module/Profile.php:112 src/Protocol/OStatus.php:1309 +#, php-format +msgid "%s's comments" +msgstr "Kommentare von %s" + +#: src/Module/Register.php:83 +msgid "" +"You may (optionally) fill in this form via OpenID by supplying your OpenID " +"and clicking \"Register\"." +msgstr "Du kannst dieses Formular auch (optional) mit deiner OpenID ausfüllen, indem du deine OpenID angibst und 'Registrieren' klickst." + +#: src/Module/Register.php:84 +msgid "" +"If you are not familiar with OpenID, please leave that field blank and fill " +"in the rest of the items." +msgstr "Wenn du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus." + +#: src/Module/Register.php:85 +msgid "Your OpenID (optional): " +msgstr "Deine OpenID (optional): " + +#: src/Module/Register.php:94 +msgid "Include your profile in member directory?" +msgstr "Soll dein Profil im Nutzerverzeichnis angezeigt werden?" + +#: src/Module/Register.php:117 +msgid "Note for the admin" +msgstr "Hinweis für den Admin" + +#: src/Module/Register.php:117 +msgid "Leave a message for the admin, why you want to join this node" +msgstr "Hinterlasse eine Nachricht an den Admin, warum du einen Account auf dieser Instanz haben möchtest." + +#: src/Module/Register.php:118 +msgid "Membership on this site is by invitation only." +msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich." + +#: src/Module/Register.php:119 +msgid "Your invitation code: " +msgstr "Dein Ein­la­dungs­code" + +#: src/Module/Register.php:127 +msgid "Your Full Name (e.g. Joe Smith, real or real-looking): " +msgstr "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):" + +#: src/Module/Register.php:128 +msgid "" +"Your Email Address: (Initial information will be send there, so this has to " +"be an existing address.)" +msgstr "Deine E-Mail Adresse (Informationen zur Registrierung werden an diese Adresse gesendet, darum muss sie existieren.)" + +#: src/Module/Register.php:130 +msgid "Leave empty for an auto generated password." +msgstr "Leer lassen, um das Passwort automatisch zu generieren." + +#: src/Module/Register.php:132 +#, php-format +msgid "" +"Choose a profile nickname. This must begin with a text character. Your " +"profile address on this site will then be \"nickname@%s\"." +msgstr "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse deines Profils auf dieser Seite wird 'spitzname@%s' sein." + +#: src/Module/Register.php:133 +msgid "Choose a nickname: " +msgstr "Spitznamen wählen: " + +#: src/Module/Register.php:142 +msgid "Import your profile to this friendica instance" +msgstr "Importiere dein Profil auf diese Friendica-Instanz" + +#: src/Module/Register.php:149 +msgid "Note: This node explicitly contains adult content" +msgstr "Hinweis: Dieser Knoten enthält explizit Inhalte für Erwachsene" + +#: src/Module/Register.php:242 +msgid "" +"Registration successful. Please check your email for further instructions." +msgstr "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet." + +#: src/Module/Register.php:246 +#, php-format +msgid "" +"Failed to send email message. Here your accout details:
    login: %s
    " +"password: %s

    You can change your password after login." +msgstr "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account-Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern." + +#: src/Module/Register.php:253 +msgid "Registration successful." +msgstr "Registrierung erfolgreich." + +#: src/Module/Register.php:258 +msgid "Your registration can not be processed." +msgstr "Deine Registrierung konnte nicht verarbeitet werden." + +#: src/Module/Register.php:304 +msgid "Your registration is pending approval by the site owner." +msgstr "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden." + +#: src/Module/Settings/TwoFactor/Index.php:50 +msgid "Two-factor authentication successfully disabled." +msgstr "Zwei-Faktor Authentifizierung erfolgreich deaktiviert." + +#: src/Module/Settings/TwoFactor/Index.php:86 +msgid "" +"

    Use an application on a mobile device to get two-factor authentication " +"codes when prompted on login.

    " +msgstr "

    Benutze eine App auf dein Smartphone um einen Zwei-Faktor identifikations Code zu bekommen wenn beim Loggin das verlagt wird.

    " + +#: src/Module/Settings/TwoFactor/Index.php:90 +msgid "Authenticator app" +msgstr "Zwei-Faktor Authentifizierungsapp" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Configured" +msgstr "Konfiguriert" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Not Configured" +msgstr "Nicht konfiguriert" + +#: src/Module/Settings/TwoFactor/Index.php:92 +msgid "

    You haven't finished configuring your authenticator app.

    " +msgstr "

    Die Konfiguration deiner Zwei-Faktor Authentifizierungsapp ist nicht abgeschlossen.

    " + +#: src/Module/Settings/TwoFactor/Index.php:93 +msgid "

    Your authenticator app is correctly configured.

    " +msgstr "

    Deine Zwei-Faktor Authentifizierungsapp ist nicht korrekt konfiguriert.

    " + +#: src/Module/Settings/TwoFactor/Index.php:95 +msgid "Recovery codes" +msgstr "Wiederherstellungsschlüssel" + +#: src/Module/Settings/TwoFactor/Index.php:96 +msgid "Remaining valid codes" +msgstr "Verbleibende Wiederherstellungsschlüssel" + +#: src/Module/Settings/TwoFactor/Index.php:98 +msgid "" +"

    These one-use codes can replace an authenticator app code in case you " +"have lost access to it.

    " +msgstr "

    Diese Einmalcodes können einen Authentifikator-App-Code ersetzen, falls Sie den Zugriff darauf verloren haben.

    " + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "Current password:" +msgstr "Aktuelles Passwort:" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "" +"You need to provide your current password to change two-factor " +"authentication settings." +msgstr "Du musst dein aktuelles Passwort eingeben um die Einstellungen der Zwei-Faktor-Authentifizierung zu ändern" + +#: src/Module/Settings/TwoFactor/Index.php:102 +msgid "Enable two-factor authentication" +msgstr "Aktiviere die Zwei-Faktor-Authentifizierung" + +#: src/Module/Settings/TwoFactor/Index.php:103 +msgid "Disable two-factor authentication" +msgstr "Deaktiviere die Zwei-Faktor-Authentifizierung" + +#: src/Module/Settings/TwoFactor/Index.php:104 +msgid "Show recovery codes" +msgstr "Wiederherstellungscodes anzeigen" + +#: src/Module/Settings/TwoFactor/Index.php:105 +msgid "Finish app configuration" +msgstr "Beenden Sie die App-Konfiguration" + +#: src/Module/Settings/TwoFactor/Recovery.php:34 +#: src/Module/Settings/TwoFactor/Verify.php:41 +msgid "Please enter your password to access this page." +msgstr "Bitte geben Sie Ihr Passwort ein, um auf diese Seite zuzugreifen." + +#: src/Module/Settings/TwoFactor/Recovery.php:50 +msgid "New recovery codes successfully generated." +msgstr "Neue Wiederherstellungscodes erfolgreich generiert." + +#: src/Module/Settings/TwoFactor/Recovery.php:76 +msgid "Two-factor recovery codes" +msgstr "Zwei-Faktor-Wiederherstellungscodes" + +#: src/Module/Settings/TwoFactor/Recovery.php:78 +msgid "" +"

    Recovery codes can be used to access your account in the event you lose " +"access to your device and cannot receive two-factor authentication " +"codes.

    Put these in a safe spot! If you lose your " +"device and don’t have the recovery codes you will lose access to your " +"account.

    " +msgstr "

    Wiederherstellungscodes können verwendet werden, um auf Ihr Konto zuzugreifen, falls Sie den Zugriff auf Ihr Gerät verlieren und keine Zwei-Faktor-Authentifizierungscodes erhalten können.

    Bewahren Sie diese an einem sicheren Ort auf! Wenn Sie Ihr Gerät verlieren und nicht über die Wiederherstellungscodes verfügen, verlieren Sie den Zugriff auf Ihr Konto.

    " + +#: src/Module/Settings/TwoFactor/Recovery.php:80 +msgid "" +"When you generate new recovery codes, you must copy the new codes. Your old " +"codes won’t work anymore." +msgstr "Wenn Sie neue Wiederherstellungscodes generieren, müssen Sie die neuen Codes kopieren. Ihre alten Codes funktionieren nicht mehr." + +#: src/Module/Settings/TwoFactor/Recovery.php:81 +msgid "Generate new recovery codes" +msgstr "Generieren Sie neue Wiederherstellungscodes" + +#: src/Module/Settings/TwoFactor/Recovery.php:83 +msgid "Next: Verification" +msgstr "Weiter: Überprüfung" + +#: src/Module/Settings/TwoFactor/Verify.php:63 +msgid "Two-factor authentication successfully activated." +msgstr "Zwei-Faktor-Authentifizierung erfolgreich aktiviert." + +#: src/Module/Settings/TwoFactor/Verify.php:67 +#: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:41 +msgid "Invalid code, please retry." +msgstr "Ungültiger Code, bitte erneut versuchen." + +#: src/Module/Settings/TwoFactor/Verify.php:96 +#, php-format +msgid "" +"

    Or you can submit the authentication settings manually:

    \n" +"
    \n" +"\t
    Issuer
    \n" +"\t
    %s
    \n" +"\t
    Account Name
    \n" +"\t
    %s
    \n" +"\t
    Secret Key
    \n" +"\t
    %s
    \n" +"\t
    Type
    \n" +"\t
    Time-based
    \n" +"\t
    Number of digits
    \n" +"\t
    6
    \n" +"\t
    Hashing algorithm
    \n" +"\t
    SHA-1
    \n" +"
    " +msgstr "

    Oder Sie können die Authentifizierungseinstellungen manuell übermitteln:

    \n
    \n\tVerursacher\n\t
    %s
    \n\t
    Kontoname
    \n\t
    %s
    \n\t
    Geheimer Schlüssel
    \n\t
    %s
    \n\t
    Typ
    \n\t
    Zeitbasiert
    \n\t
    Anzahl an Ziffern
    \n\t
    6
    \n\t
    Hashing-Algorithmus
    \n\t
    SHA-1
    \n
    " + +#: src/Module/Settings/TwoFactor/Verify.php:116 +msgid "Two-factor code verification" +msgstr "Überprüfung des Zwei-Faktor-Codes" + +#: src/Module/Settings/TwoFactor/Verify.php:118 +msgid "" +"

    Please scan this QR Code with your authenticator app and submit the " +"provided code.

    " +msgstr "

    Bitte scannen Sie diesen QR-Code mit Ihrer Authentifikator-App und übermitteln Sie den bereitgestellten Code.

    " + +#: src/Module/Settings/TwoFactor/Verify.php:120 +#, php-format +msgid "" +"

    Or you can open the following URL in your mobile devicde:

    %s

    " +msgstr "

    Oder Sie können die folgende URL in Ihrem Mobilgerät öffnen:

    %s

    " + +#: src/Module/Settings/TwoFactor/Verify.php:126 +#: src/Module/TwoFactor/Verify.php:63 +msgid "Please enter a code from your authentication app" +msgstr "Bitte geben Sie einen Code aus Ihrer Authentifizierungs-App ein" + +#: src/Module/Settings/TwoFactor/Verify.php:127 +msgid "Verify code and enable two-factor authentication" +msgstr "Überprüfen Sie den Code und aktivieren Sie die Zwei-Faktor-Authentifizierung" + +#: src/Module/Special/HTTPException.php:32 +msgid "Bad Request" +msgstr "Ungültige Anfrage" + +#: src/Module/Special/HTTPException.php:33 +msgid "Unauthorized" +msgstr "Nicht autorisiert" + +#: src/Module/Special/HTTPException.php:34 +msgid "Forbidden" +msgstr "Verboten" + +#: src/Module/Special/HTTPException.php:35 +msgid "Not Found" +msgstr "Nicht gefunden" + +#: src/Module/Special/HTTPException.php:36 +msgid "Internal Server Error" +msgstr "Interner Serverfehler" + +#: src/Module/Special/HTTPException.php:37 +msgid "Service Unavailable" +msgstr "Dienst nicht verfügbar" + +#: src/Module/Special/HTTPException.php:44 +msgid "" +"The server cannot or will not process the request due to an apparent client " +"error." +msgstr "Aufgrund eines offensichtlichen Fehlers auf der Seite des Clients kann oder wird der Server die Anfrage nicht bearbeiten." + +#: src/Module/Special/HTTPException.php:45 +msgid "" +"Authentication is required and has failed or has not yet been provided." +msgstr "Die erforderliche Authentifizierung ist fehlgeschlagen oder noch nicht erfolgt." + +#: src/Module/Special/HTTPException.php:46 +msgid "" +"The request was valid, but the server is refusing action. The user might not" +" have the necessary permissions for a resource, or may need an account." +msgstr "Die Anfrage war gültig, aber der Server verweigert die Ausführung. Der Benutzer verfügt möglicherweise nicht über die erforderlichen Berechtigungen oder benötigt ein Nutzerkonto." + +#: src/Module/Special/HTTPException.php:47 +msgid "" +"The requested resource could not be found but may be available in the " +"future." +msgstr "Die angeforderte Ressource konnte nicht gefunden werden, sie könnte allerdings zu einem späteren Zeitpunkt verfügbar sein." + +#: src/Module/Special/HTTPException.php:48 +msgid "" +"An unexpected condition was encountered and no more specific message is " +"suitable." +msgstr "Eine unerwartete Situation ist eingetreten, zu der keine detailliertere Nachricht vorliegt." + +#: src/Module/Special/HTTPException.php:49 +msgid "" +"The server is currently unavailable (because it is overloaded or down for " +"maintenance). Please try again later." +msgstr "Der Server ist derzeit nicht verfügbar (wegen Überlastung oder Wartungsarbeiten). Bitte versuche es später noch einmal." + +#: src/Module/Special/HTTPException.php:55 +msgid "Go back" +msgstr "Geh zurück" + +#: src/Module/Tos.php:35 src/Module/Tos.php:77 +msgid "" +"At the time of registration, and for providing communications between the " +"user account and their contacts, the user has to provide a display name (pen" +" name), an username (nickname) and a working email address. The names will " +"be accessible on the profile page of the account by any visitor of the page," +" even if other profile details are not displayed. The email address will " +"only be used to send the user notifications about interactions, but wont be " +"visibly displayed. The listing of an account in the node's user directory or" +" the global user directory is optional and can be controlled in the user " +"settings, it is not necessary for communication." +msgstr "Zum Zwecke der Registrierung und um die Kommunikation zwischen dem Nutzer und seinen Kontakten zu gewährleisten, muß der Nutzer einen Namen (auch Pseudonym) und einen Nutzernamen (Spitzname) sowie eine funktionierende E-Mail-Adresse angeben. Der Name ist auf der Profilseite für alle Nutzer sichtbar, auch wenn die Profildetails nicht angezeigt werden.\nDie E-Mail-Adresse wird nur zur Benachrichtigung des Nutzers verwendet, sie wird nirgends angezeigt. Die Anzeige des Nutzerkontos im Server-Verzeichnis bzw. dem weltweiten Verzeichnis erfolgt gemäß den Einstellungen des Nutzers, sie ist zur Kommunikation nicht zwingend notwendig." + +#: src/Module/Tos.php:36 src/Module/Tos.php:78 +msgid "" +"This data is required for communication and is passed on to the nodes of the" +" communication partners and is stored there. Users can enter additional " +"private data that may be transmitted to the communication partners accounts." +msgstr "Diese Daten sind für die Kommunikation notwendig und werden an die Knoten der Kommunikationspartner übermittelt und dort gespeichert. Nutzer können weitere, private Angaben machen, die ebenfalls an die verwendeten Server der Kommunikationspartner übermittelt werden können." + +#: src/Module/Tos.php:37 src/Module/Tos.php:79 +#, php-format +msgid "" +"At any point in time a logged in user can export their account data from the" +" account settings. If the user wants " +"to delete their account they can do so at %1$s/removeme. The deletion of the account will " +"be permanent. Deletion of the data will also be requested from the nodes of " +"the communication partners." +msgstr "Angemeldete Nutzer können ihre Nutzerdaten jederzeit von den Kontoeinstellungen aus exportieren. Wenn ein Nutzer wünscht das Nutzerkonto zu löschen, so ist dies jederzeit unter %1$s/removeme möglich. Die Löschung des Nutzerkontos ist permanent. Die Löschung der Daten wird auch von den Knoten der Kommunikationspartner angefordert." + +#: src/Module/Tos.php:40 src/Module/Tos.php:76 +msgid "Privacy Statement" +msgstr "Datenschutzerklärung" + +#: src/Module/TwoFactor/Recovery.php:41 +#, php-format +msgid "Remaining recovery codes: %d" +msgstr "Verbleibende Wiederherstellungscodes: %d" + +#: src/Module/TwoFactor/Recovery.php:65 +msgid "Two-factor recovery" +msgstr "Zwei-Faktor-Wiederherstellung" + +#: src/Module/TwoFactor/Recovery.php:66 +msgid "" +"

    You can enter one of your one-time recovery codes in case you lost access" +" to your mobile device.

    " +msgstr "

    Sie können einen Ihrer einmaligen Wiederherstellungscodes eingeben, falls Sie den Zugriff auf Ihr Mobilgerät verloren haben.

    " + +#: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:62 +#, php-format +msgid "Don’t have your phone? Enter a two-factor recovery code" +msgstr "Hast du dein Handy nicht? Geben Sie einen Zwei-Faktor-Wiederherstellungscode ein" + +#: src/Module/TwoFactor/Recovery.php:68 +msgid "Please enter a recovery code" +msgstr "Bitte geben Sie einen Wiederherstellungscode ein" + +#: src/Module/TwoFactor/Recovery.php:69 +msgid "Submit recovery code and complete login" +msgstr "Senden Sie den Wiederherstellungscode und schließen Sie die Anmeldung ab" + +#: src/Module/TwoFactor/Verify.php:61 +msgid "" +"

    Open the two-factor authentication app on your device to get an " +"authentication code and verify your identity.

    " +msgstr "

    Öffnen Sie die Zwei-Faktor-Authentifizierungs-App auf Ihrem Gerät, um einen Authentifizierungscode abzurufen und Ihre Identität zu überprüfen.

    " + +#: src/Module/TwoFactor/Verify.php:64 +msgid "Verify code and complete login" +msgstr "Code überprüfen und Anmeldung abschließen" #: src/Object/Post.php:137 msgid "This entry was edited" msgstr "Dieser Beitrag wurde bearbeitet." +#: src/Object/Post.php:157 +msgid "Private Message" +msgstr "Private Nachricht" + #: src/Object/Post.php:199 msgid "Delete locally" msgstr "Lokal löschen" @@ -9994,32 +10059,101 @@ msgstr "Zeige mehr" msgid "Show fewer" msgstr "Zeige weniger" -#: src/LegacyModule.php:30 +#: src/Protocol/Diaspora.php:2438 +msgid "Sharing notification from Diaspora network" +msgstr "Freigabe-Benachrichtigung von Diaspora" + +#: src/Protocol/Diaspora.php:3598 +msgid "Attachments:" +msgstr "Anhänge:" + +#: src/Protocol/OStatus.php:1863 #, php-format -msgid "Legacy module file not found: %s" -msgstr "Legacy-Moduldatei nicht gefunden: %s" +msgid "%s is now following %s." +msgstr "%s folgt nun %s" -#: src/App.php:515 -msgid "Delete this item?" -msgstr "Diesen Beitrag löschen?" +#: src/Protocol/OStatus.php:1864 +msgid "following" +msgstr "folgen" -#: src/App.php:557 -msgid "toggle mobile" -msgstr "mobile Ansicht umschalten" +#: src/Protocol/OStatus.php:1867 +#, php-format +msgid "%s stopped following %s." +msgstr "%s hat aufgehört %s, zu folgen" -#: src/App.php:891 -msgid "No system theme config value set." -msgstr "Es wurde kein Konfigurationswert für das systemweite Theme gesetzt." +#: src/Protocol/OStatus.php:1868 +msgid "stopped following" +msgstr "wird nicht mehr gefolgt" -#: src/App.php:1184 -msgid "You must be logged in to use addons. " -msgstr "Du musst angemeldet sein, um Addons benutzen zu können." +#: src/Util/Temporal.php:151 +msgid "YYYY-MM-DD or MM-DD" +msgstr "YYYY-MM-DD oder MM-DD" -#: src/BaseModule.php:135 -msgid "" -"The form security token was not correct. This probably happened because the " -"form has been opened for too long (>3 hours) before submitting it." -msgstr "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens, wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden)." +#: src/Util/Temporal.php:298 +msgid "never" +msgstr "nie" + +#: src/Util/Temporal.php:305 +msgid "less than a second ago" +msgstr "vor weniger als einer Sekunde" + +#: src/Util/Temporal.php:313 +msgid "year" +msgstr "Jahr" + +#: src/Util/Temporal.php:313 +msgid "years" +msgstr "Jahre" + +#: src/Util/Temporal.php:314 +msgid "months" +msgstr "Monate" + +#: src/Util/Temporal.php:315 +msgid "weeks" +msgstr "Wochen" + +#: src/Util/Temporal.php:316 +msgid "days" +msgstr "Tage" + +#: src/Util/Temporal.php:317 +msgid "hour" +msgstr "Stunde" + +#: src/Util/Temporal.php:317 +msgid "hours" +msgstr "Stunden" + +#: src/Util/Temporal.php:318 +msgid "minute" +msgstr "Minute" + +#: src/Util/Temporal.php:318 +msgid "minutes" +msgstr "Minuten" + +#: src/Util/Temporal.php:319 +msgid "second" +msgstr "Sekunde" + +#: src/Util/Temporal.php:319 +msgid "seconds" +msgstr "Sekunden" + +#: src/Util/Temporal.php:329 +#, php-format +msgid "in %1$d %2$s" +msgstr "in %1$d %2$s" + +#: src/Util/Temporal.php:332 +#, php-format +msgid "%1$d %2$s ago" +msgstr "vor %1$d %2$s" + +#: src/Worker/Delivery.php:450 +msgid "(no subject)" +msgstr "(kein Betreff)" #: update.php:218 #, php-format @@ -10030,3 +10164,201 @@ msgstr "%s: Aktualisiere die author-id und owner-id in der Thread Tabelle" #, php-format msgid "%s: Updating post-type." msgstr "%s: Aktualisiere Beitrags-Typ" + +#: view/theme/duepuntozero/config.php:56 +msgid "greenzero" +msgstr "greenzero" + +#: view/theme/duepuntozero/config.php:57 +msgid "purplezero" +msgstr "purplezero" + +#: view/theme/duepuntozero/config.php:58 +msgid "easterbunny" +msgstr "easterbunny" + +#: view/theme/duepuntozero/config.php:59 +msgid "darkzero" +msgstr "darkzero" + +#: view/theme/duepuntozero/config.php:60 +msgid "comix" +msgstr "comix" + +#: view/theme/duepuntozero/config.php:61 +msgid "slackr" +msgstr "slackr" + +#: view/theme/duepuntozero/config.php:74 +msgid "Variations" +msgstr "Variationen" + +#: view/theme/frio/config.php:105 +msgid "Custom" +msgstr "Benutzerdefiniert" + +#: view/theme/frio/config.php:117 +msgid "Note" +msgstr "Hinweis" + +#: view/theme/frio/config.php:117 +msgid "Check image permissions if all users are allowed to see the image" +msgstr "Überprüfe, dass alle Benutzer die Berechtigung haben dieses Bild anzusehen" + +#: view/theme/frio/config.php:123 +msgid "Select color scheme" +msgstr "Farbschema auswählen" + +#: view/theme/frio/config.php:124 +msgid "Copy or paste schemestring" +msgstr "Farbschema kopieren oder einfügen" + +#: view/theme/frio/config.php:124 +msgid "" +"You can copy this string to share your theme with others. Pasting here " +"applies the schemestring" +msgstr "Du kannst den String mit den Farbschema Informationen mit anderen Teilen. Wenn du einen neuen Farbschema-String hier einfügst wird er für deine Einstellungen übernommen." + +#: view/theme/frio/config.php:125 +msgid "Navigation bar background color" +msgstr "Hintergrundfarbe der Navigationsleiste" + +#: view/theme/frio/config.php:126 +msgid "Navigation bar icon color " +msgstr "Icon Farbe in der Navigationsleiste" + +#: view/theme/frio/config.php:127 +msgid "Link color" +msgstr "Linkfarbe" + +#: view/theme/frio/config.php:128 +msgid "Set the background color" +msgstr "Hintergrundfarbe festlegen" + +#: view/theme/frio/config.php:129 +msgid "Content background opacity" +msgstr "Opazität des Hintergrunds von Beiträgen" + +#: view/theme/frio/config.php:130 +msgid "Set the background image" +msgstr "Hintergrundbild festlegen" + +#: view/theme/frio/config.php:131 +msgid "Background image style" +msgstr "Stil des Hintergrundbildes" + +#: view/theme/frio/config.php:136 +msgid "Login page background image" +msgstr "Hintergrundbild der Login-Seite" + +#: view/theme/frio/config.php:140 +msgid "Login page background color" +msgstr "Hintergrundfarbe der Login-Seite" + +#: view/theme/frio/config.php:140 +msgid "Leave background image and color empty for theme defaults" +msgstr "Wenn die Theme-Vorgaben verwendet werden sollen, lass bitte die Felder für die Hintergrundfarbe und das Hintergrundbild leer." + +#: view/theme/frio/php/Image.php:24 +msgid "Top Banner" +msgstr "Top Banner" + +#: view/theme/frio/php/Image.php:24 +msgid "" +"Resize image to the width of the screen and show background color below on " +"long pages." +msgstr "Skaliere das Hintergrundbild so, dass es die Breite der Seite einnimmt, und fülle den Rest der Seite mit der Hintergrundfarbe bei langen Seiten." + +#: view/theme/frio/php/Image.php:25 +msgid "Full screen" +msgstr "Vollbildmodus" + +#: view/theme/frio/php/Image.php:25 +msgid "" +"Resize image to fill entire screen, clipping either the right or the bottom." +msgstr "Skaliere das Bild so, dass es den gesamten Bildschirm füllt. Hierfür wird entweder die Breite oder die Höhe des Bildes automatisch abgeschnitten." + +#: view/theme/frio/php/Image.php:26 +msgid "Single row mosaic" +msgstr "Mosaik in einer Zeile" + +#: view/theme/frio/php/Image.php:26 +msgid "" +"Resize image to repeat it on a single row, either vertical or horizontal." +msgstr "Skaliere das Bild so, dass es in einer einzelnen Reihe, entweder horizontal oder vertikal, wiederholt wird." + +#: view/theme/frio/php/Image.php:27 +msgid "Mosaic" +msgstr "Mosaik" + +#: view/theme/frio/php/Image.php:27 +msgid "Repeat image to fill the screen." +msgstr "Wiederhole das Bild, um den Bildschirm zu füllen." + +#: view/theme/frio/theme.php:239 +msgid "Guest" +msgstr "Gast" + +#: view/theme/frio/theme.php:244 +msgid "Visitor" +msgstr "Besucher" + +#: view/theme/quattro/config.php:76 +msgid "Alignment" +msgstr "Ausrichtung" + +#: view/theme/quattro/config.php:76 +msgid "Left" +msgstr "Links" + +#: view/theme/quattro/config.php:76 +msgid "Center" +msgstr "Mitte" + +#: view/theme/quattro/config.php:77 +msgid "Color scheme" +msgstr "Farbschema" + +#: view/theme/quattro/config.php:78 +msgid "Posts font size" +msgstr "Schriftgröße in Beiträgen" + +#: view/theme/quattro/config.php:79 +msgid "Textareas font size" +msgstr "Schriftgröße in Eingabefeldern" + +#: view/theme/vier/config.php:76 +msgid "Comma separated list of helper forums" +msgstr "Komma-separierte Liste der Helfer-Foren" + +#: view/theme/vier/config.php:122 +msgid "Set style" +msgstr "Stil auswählen" + +#: view/theme/vier/config.php:123 +msgid "Community Pages" +msgstr "Foren" + +#: view/theme/vier/config.php:124 view/theme/vier/theme.php:151 +msgid "Community Profiles" +msgstr "Community-Profile" + +#: view/theme/vier/config.php:125 +msgid "Help or @NewHere ?" +msgstr "Hilfe oder @NewHere" + +#: view/theme/vier/config.php:126 view/theme/vier/theme.php:373 +msgid "Connect Services" +msgstr "Verbinde Dienste" + +#: view/theme/vier/config.php:127 +msgid "Find Friends" +msgstr "Kontakte finden" + +#: view/theme/vier/config.php:128 view/theme/vier/theme.php:181 +msgid "Last users" +msgstr "Letzte Nutzer" + +#: view/theme/vier/theme.php:288 +msgid "Quick Start" +msgstr "Schnell-Start" diff --git a/view/lang/de/strings.php b/view/lang/de/strings.php index d77c36406..29d2b2c2b 100644 --- a/view/lang/de/strings.php +++ b/view/lang/de/strings.php @@ -16,11 +16,11 @@ $a->strings["Weekly posting limit of %d post reached. The post was rejected."] = ]; $a->strings["Monthly posting limit of %d post reached. The post was rejected."] = "Das monatliche Limit von %d Beiträgen wurde erreicht. Der Beitrag wurde verworfen."; $a->strings["Profile Photos"] = "Profilbilder"; -$a->strings["event"] = "Event"; +$a->strings["event"] = "Veranstaltung"; $a->strings["status"] = "Status"; $a->strings["photo"] = "Foto"; -$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s"; -$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s mag %2\$ss %3\$s nicht"; +$a->strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s Gefällt %2\$ss %3\$s"; +$a->strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s Gefällt %2\$ss %3\$s nicht"; $a->strings["%1\$s attends %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s teil."; $a->strings["%1\$s doesn't attend %2\$s's %3\$s"] = "%1\$s nimmt nicht an %2\$ss %3\$s teil."; $a->strings["%1\$s attends maybe %2\$s's %3\$s"] = "%1\$s nimmt eventuell an %2\$ss %3\$s teil."; @@ -200,19 +200,12 @@ $a->strings["Yes"] = "Ja"; $a->strings["Permission denied."] = "Zugriff verweigert."; $a->strings["Archives"] = "Archiv"; $a->strings["show more"] = "mehr anzeigen"; -$a->strings["System down for maintenance"] = "System zur Wartung abgeschaltet"; -$a->strings["No friends to display."] = "Keine Kontakte zum Anzeigen."; -$a->strings["Connect"] = "Verbinden"; $a->strings["Authorize application connection"] = "Verbindung der Applikation autorisieren"; $a->strings["Return to your app and insert this Securty Code:"] = "Gehe zu Deiner Anwendung zurück und trage dort folgenden Sicherheitscode ein:"; $a->strings["Please login to continue."] = "Bitte melde dich an, um fortzufahren."; $a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest du dieser Anwendung den Zugriff auf Deine Beiträge und Kontakte sowie das Erstellen neuer Beiträge in Deinem Namen gestatten?"; $a->strings["No"] = "Nein"; -$a->strings["Login"] = "Anmeldung"; -$a->strings["Bad Request"] = "Ungültige Anfrage"; -$a->strings["The post was created"] = "Der Beitrag wurde angelegt"; $a->strings["Access denied."] = "Zugriff verweigert."; -$a->strings["Page not found."] = "Seite nicht gefunden."; $a->strings["Access to this profile has been restricted."] = "Der Zugriff zu diesem Profil wurde eingeschränkt."; $a->strings["Events"] = "Veranstaltungen"; $a->strings["View"] = "Ansehen"; @@ -285,7 +278,6 @@ $a->strings["Confirmation completed successfully."] = "Bestätigung erfolgreich $a->strings["Temporary failure. Please wait and try again."] = "Zeitweiser Fehler. Bitte warte einige Momente und versuche es dann noch einmal."; $a->strings["Introduction failed or was revoked."] = "Kontaktanfrage schlug fehl oder wurde zurückgezogen."; $a->strings["Remote site reported: "] = "Gegenstelle meldet: "; -$a->strings["Unable to set contact photo."] = "Konnte das Bild des Kontakts nicht speichern."; $a->strings["No user record found for '%s' "] = "Für '%s' wurde kein Nutzer gefunden"; $a->strings["Our site encryption key is apparently messed up."] = "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend nicht in Ordnung."; $a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "Leere URL für die Seite erhalten oder die URL konnte nicht entschlüsselt werden."; @@ -340,7 +332,10 @@ $a->strings["Your Identity Address:"] = "Adresse Deines Profils:"; $a->strings["Submit Request"] = "Anfrage abschicken"; $a->strings["People Search - %s"] = "Personensuche - %s"; $a->strings["Forum Search - %s"] = "Forensuche - %s"; +$a->strings["Connect"] = "Verbinden"; $a->strings["No matches"] = "Keine Übereinstimmungen"; +$a->strings["The requested item doesn't exist or has been deleted."] = "Der angeforderte Beitrag existiert nicht oder wurde gelöscht."; +$a->strings["The feed for this item is unavailable."] = "Der Feed für diesen Beitrag ist nicht verfügbar."; $a->strings["Item not found"] = "Beitrag nicht gefunden"; $a->strings["Edit post"] = "Beitrag bearbeiten"; $a->strings["Save"] = "Speichern"; @@ -375,47 +370,24 @@ $a->strings["Photos"] = "Bilder"; $a->strings["Contact Photos"] = "Kontaktbilder"; $a->strings["Upload"] = "Hochladen"; $a->strings["Files"] = "Dateien"; -$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "Diese Friendica-Instanz verwendet die Version %s, sie ist unter der folgenden Adresse im Web zu finden %s. Die Datenbankversion ist %s und die Post-Update-Version %s."; -$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Bitte besuche Friendi.ca, um mehr über das Friendica-Projekt zu erfahren."; -$a->strings["Bug reports and issues: please visit"] = "Probleme oder Fehler gefunden? Bitte besuche"; -$a->strings["the bugtracker at github"] = "den Bugtracker auf github"; -$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Vorschläge, Lob usw.: E-Mail an \"Info\" at \"Friendi - dot ca\""; -$a->strings["Installed addons/apps:"] = "Installierte Apps und Addons"; -$a->strings["No installed addons/apps"] = "Es sind keine Addons oder Apps installiert"; -$a->strings["Read about the Terms of Service of this node."] = "Erfahre mehr über die Nutzungsbedingungen dieses Knotens."; -$a->strings["On this server the following remote servers are blocked."] = "Auf diesem Server werden die folgenden, entfernten Server blockiert."; -$a->strings["Reason for the block"] = "Begründung für die Blockierung"; +$a->strings["The contact could not be added."] = "Der Kontakt konnte nicht hinzugefügt werden."; +$a->strings["You already added this contact."] = "Du hast den Kontakt bereits hinzugefügt."; +$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Diaspora-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; +$a->strings["OStatus support is disabled. Contact can't be added."] = "OStatus-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; +$a->strings["The network type couldn't be detected. Contact can't be added."] = "Der Netzwerktyp wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden."; +$a->strings["Profile URL"] = "Profil URL"; +$a->strings["Tags:"] = "Tags:"; +$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge"; $a->strings["Friend suggestion sent."] = "Kontaktvorschlag gesendet."; $a->strings["Suggest Friends"] = "Kontakte vorschlagen"; $a->strings["Suggest a friend for %s"] = "Schlage %s einen Kontakt vor"; $a->strings["No profile"] = "Kein Profil"; -$a->strings["Help:"] = "Hilfe:"; -$a->strings["Help"] = "Hilfe"; -$a->strings["Not Found"] = "Nicht gefunden"; -$a->strings["Welcome to %s"] = "Willkommen zu %s"; -$a->strings["Total invitation limit exceeded."] = "Limit für Einladungen erreicht."; -$a->strings["%s : Not a valid email address."] = "%s: Keine gültige Email Adresse."; -$a->strings["Please join us on Friendica"] = "Ich lade dich zu unserem sozialen Netzwerk Friendica ein"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limit für Einladungen erreicht. Bitte kontaktiere des Administrator der Seite."; -$a->strings["%s : Message delivery failed."] = "%s: Zustellung der Nachricht fehlgeschlagen."; -$a->strings["%d message sent."] = [ - 0 => "%d Nachricht gesendet.", - 1 => "%d Nachrichten gesendet.", -]; -$a->strings["You have no more invitations available"] = "Du hast keine weiteren Einladungen"; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Besuche %s für eine Liste der öffentlichen Server, denen du beitreten kannst. Friendica-Mitglieder unterschiedlicher Server können sich sowohl alle miteinander verbinden, als auch mit Mitgliedern anderer sozialer Netzwerke."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica-Website."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Es tut uns leid. Dieses System ist zurzeit nicht dafür konfiguriert, sich mit anderen öffentlichen Seiten zu verbinden oder Mitglieder einzuladen."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden."; -$a->strings["To accept this invitation, please visit and register at %s."] = "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s."; -$a->strings["Send invitations"] = "Einladungen senden"; -$a->strings["Enter email addresses, one per line:"] = "E-Mail-Adressen eingeben, eine pro Zeile:"; -$a->strings["Your message:"] = "Deine Nachricht:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Du bist herzlich dazu eingeladen, dich mir und anderen guten Freunden auf Friendica anzuschließen - und ein besseres, soziales Netz aufzubauen."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du benötigst den folgenden Einladungscode: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "Für weitere Informationen über das Friendica-Projekt und warum wir es für ein wichtiges Projekt halten, besuche bitte http://friendi.ca."; +$a->strings["Unable to locate original post."] = "Konnte den Originalbeitrag nicht finden."; +$a->strings["Empty post discarded."] = "Leerer Beitrag wurde verworfen."; +$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica."; +$a->strings["You may visit them online at %s"] = "Du kannst sie online unter %s besuchen"; +$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest."; +$a->strings["%s posted an update."] = "%s hat ein Update veröffentlicht."; $a->strings["Remote privacy information not available."] = "Entfernte Privatsphäreneinstellungen nicht verfügbar."; $a->strings["Visible to:"] = "Sichtbar für:"; $a->strings["No valid account found."] = "Kein gültiges Konto gefunden."; @@ -441,6 +413,10 @@ $a->strings["Your password has been changed at %s"] = "Auf %s wurde dein Passwor $a->strings["Manage Identities and/or Pages"] = "Verwalte Identitäten und/oder Seiten"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Zwischen verschiedenen Identitäten oder Gemeinschafts-/Gruppenseiten wechseln, die deine Kontoinformationen teilen oder zu denen du „Verwalten“-Befugnisse bekommen hast."; $a->strings["Select an identity to manage: "] = "Wähle eine Identität zum Verwalten aus: "; +$a->strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselwörter zum Abgleichen gefunden. Bitte füge einige Schlüsselwörter zu Deinem Standardprofil hinzu."; +$a->strings["first"] = "erste"; +$a->strings["next"] = "nächste"; +$a->strings["Profile Match"] = "Profilübereinstimmungen"; $a->strings["New Message"] = "Neue Nachricht"; $a->strings["No recipient selected."] = "Kein Empfänger gewählt."; $a->strings["Unable to locate contact information."] = "Konnte die Kontaktinformationen nicht finden."; @@ -457,6 +433,7 @@ $a->strings["Please enter a link URL:"] = "Bitte gib die URL des Links ein:"; $a->strings["Send Private Message"] = "Private Nachricht senden"; $a->strings["To:"] = "An:"; $a->strings["Subject:"] = "Betreff:"; +$a->strings["Your message:"] = "Deine Nachricht:"; $a->strings["No messages."] = "Keine Nachrichten."; $a->strings["Message not available."] = "Nachricht nicht verfügbar."; $a->strings["Delete message"] = "Nachricht löschen"; @@ -471,6 +448,31 @@ $a->strings["%d message"] = [ 0 => "%d Nachricht", 1 => "%d Nachrichten", ]; +$a->strings["Remove term"] = "Begriff entfernen"; +$a->strings["Saved Searches"] = "Gespeicherte Suchen"; +$a->strings["add"] = "hinzufügen"; +$a->strings["Warning: This group contains %s member from a network that doesn't allow non public messages."] = [ + 0 => "Warnung: Diese Gruppe beinhaltet %s Person aus einem Netzwerk das keine nicht öffentlichen Beiträge empfangen kann.", + 1 => "Warnung: Diese Gruppe beinhaltet %s Personen aus Netzwerken, die keine nicht-öffentlichen Beiträge empfangen können.", +]; +$a->strings["Messages in this group won't be send to these receivers."] = "Beiträge in dieser Gruppe werden deshalb nicht an diese Personen zugestellt werden."; +$a->strings["No such group"] = "Es gibt keine solche Gruppe"; +$a->strings["Group is empty"] = "Gruppe ist leer"; +$a->strings["Group: %s"] = "Gruppe: %s"; +$a->strings["Private messages to this person are at risk of public disclosure."] = "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."; +$a->strings["Invalid contact."] = "Ungültiger Kontakt."; +$a->strings["Commented Order"] = "Neueste Kommentare"; +$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortieren"; +$a->strings["Posted Order"] = "Neueste Beiträge"; +$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortieren"; +$a->strings["Personal"] = "Persönlich"; +$a->strings["Posts that mention or involve you"] = "Beiträge, in denen es um dich geht"; +$a->strings["New"] = "Neue"; +$a->strings["Activity Stream - by date"] = "Aktivitäten-Stream - nach Datum"; +$a->strings["Shared Links"] = "Geteilte Links"; +$a->strings["Interesting Links"] = "Interessante Links"; +$a->strings["Starred"] = "Markierte"; +$a->strings["Favourite Posts"] = "Favorisierte Beiträge"; $a->strings["Welcome to Friendica"] = "Willkommen bei Friendica"; $a->strings["New Member Checklist"] = "Checkliste für neue Mitglieder"; $a->strings["We would like to offer some tips and links to help make your experience enjoyable. Click any item to visit the relevant page. A link to this page will be visible from your home page for two weeks after your initial registration and then will quietly disappear."] = "Wir möchten dir einige Tipps und Links anbieten, die dir helfen könnten, den Einstieg angenehmer zu machen. Klicke auf ein Element, um die entsprechende Seite zu besuchen. Ein Link zu dieser Seite hier bleibt für dich an deiner Pinnwand für zwei Wochen nach dem Registrierungsdatum sichtbar und wird dann verschwinden."; @@ -518,7 +520,6 @@ $a->strings["Show Ignored Requests"] = "Zeige ignorierte Anfragen"; $a->strings["Hide Ignored Requests"] = "Verberge ignorierte Anfragen"; $a->strings["Notification type:"] = "Art der Benachrichtigung:"; $a->strings["Suggested by:"] = "Vorgeschlagen von:"; -$a->strings["Profile URL"] = "Profil URL"; $a->strings["Hide this contact from others"] = "Verbirg diesen Kontakt vor Anderen"; $a->strings["Approve"] = "Genehmigen"; $a->strings["Claims to be known to you: "] = "Behauptet, dich zu kennen: "; @@ -532,7 +533,6 @@ $a->strings["Friend"] = "Kontakt"; $a->strings["Sharer"] = "Teilender"; $a->strings["Subscriber"] = "Abonnent"; $a->strings["About:"] = "Über:"; -$a->strings["Tags:"] = "Tags:"; $a->strings["Gender:"] = "Geschlecht:"; $a->strings["Network:"] = "Netzwerk:"; $a->strings["No introductions."] = "Keine Kontaktanfragen."; @@ -557,10 +557,8 @@ $a->strings["Upload New Photos"] = "Neue Fotos hochladen"; $a->strings["everybody"] = "jeder"; $a->strings["Contact information unavailable"] = "Kontaktinformationen nicht verfügbar"; $a->strings["Album not found."] = "Album nicht gefunden."; -$a->strings["Delete Album"] = "Album löschen"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Möchtest du wirklich dieses Foto-Album und all seine Foto löschen?"; -$a->strings["Delete Photo"] = "Foto löschen"; -$a->strings["Do you really want to delete this photo?"] = "Möchtest du wirklich dieses Foto löschen?"; +$a->strings["Album successfully deleted"] = "Album wurde erfolgreich gelöscht."; +$a->strings["Album was empty."] = "Album ist leer."; $a->strings["a photo"] = "einem Foto"; $a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s wurde von %3\$s in %2\$s getaggt"; $a->strings["Image exceeds size limit of %s"] = "Bildgröße überschreitet das Limit von %s"; @@ -578,16 +576,22 @@ $a->strings["or select existing album:"] = "oder wähle ein bestehendes Album:"; $a->strings["Do not show a status post for this upload"] = "Keine Status-Mitteilung für diesen Beitrag anzeigen"; $a->strings["Show to Groups"] = "Zeige den Gruppen"; $a->strings["Show to Contacts"] = "Zeige den Kontakten"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Möchtest du wirklich dieses Foto-Album und all seine Foto löschen?"; +$a->strings["Delete Album"] = "Album löschen"; $a->strings["Edit Album"] = "Album bearbeiten"; +$a->strings["Drop Album"] = "Album löschen"; $a->strings["Show Newest First"] = "Zeige neueste zuerst"; $a->strings["Show Oldest First"] = "Zeige älteste zuerst"; $a->strings["View Photo"] = "Foto betrachten"; $a->strings["Permission denied. Access to this item may be restricted."] = "Zugriff verweigert. Zugriff zu diesem Eintrag könnte eingeschränkt sein."; $a->strings["Photo not available"] = "Foto nicht verfügbar"; +$a->strings["Do you really want to delete this photo?"] = "Möchtest du wirklich dieses Foto löschen?"; +$a->strings["Delete Photo"] = "Foto löschen"; $a->strings["View photo"] = "Fotos ansehen"; $a->strings["Edit photo"] = "Foto bearbeiten"; +$a->strings["Delete photo"] = "Foto löschen"; $a->strings["Use as profile photo"] = "Als Profilbild verwenden"; -$a->strings["Private Message"] = "Private Nachricht"; +$a->strings["Private Photo"] = "Privates Foto"; $a->strings["View Full Size"] = "Betrachte Originalgröße"; $a->strings["Tags: "] = "Tags: "; $a->strings["[Select tags to remove]"] = "[Zu entfernende Tags auswählen]"; @@ -612,548 +616,6 @@ $a->strings["Recipient"] = "Empfänger"; $a->strings["Choose what you wish to do to recipient"] = "Was willst du mit dem Empfänger machen:"; $a->strings["Make this post private"] = "Diesen Beitrag privat machen"; $a->strings["Only logged in users are permitted to perform a probing."] = "Nur eingeloggten Benutzern ist das Untersuchen von Adressen gestattet."; -$a->strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zuschneiden schlug fehl."; -$a->strings["Image size reduction [%s] failed."] = "Verkleinern der Bildgröße von [%s] scheiterte."; -$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird."; -$a->strings["Unable to process image"] = "Bild konnte nicht verarbeitet werden"; -$a->strings["Upload File:"] = "Datei hochladen:"; -$a->strings["Select a profile:"] = "Profil auswählen:"; -$a->strings["or"] = "oder"; -$a->strings["skip this step"] = "diesen Schritt überspringen"; -$a->strings["select a photo from your photo albums"] = "wähle ein Foto aus deinen Fotoalben"; -$a->strings["Crop Image"] = "Bild zurechtschneiden"; -$a->strings["Please adjust the image cropping for optimum viewing."] = "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann."; -$a->strings["Done Editing"] = "Bearbeitung abgeschlossen"; -$a->strings["Image uploaded successfully."] = "Bild erfolgreich hochgeladen."; -$a->strings["Permission denied"] = "Zugriff verweigert"; -$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner."; -$a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit"; -$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen"; -$a->strings["Visible To"] = "Sichtbar für"; -$a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)"; -$a->strings["Account approved."] = "Konto freigegeben."; -$a->strings["Registration revoked for %s"] = "Registrierung für %s wurde zurückgezogen"; -$a->strings["Please login."] = "Bitte melde dich an."; -$a->strings["User deleted their account"] = "Gelöschter Nutzeraccount"; -$a->strings["On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups."] = "Ein Nutzer deiner Friendica-Instanz hat seinen Account gelöscht. Bitte stelle sicher, dass dessen Daten aus deinen Backups entfernt werden."; -$a->strings["The user id is %d"] = "Die ID des Users lautet %d"; -$a->strings["Remove My Account"] = "Konto löschen"; -$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen."; -$a->strings["Please enter your password for verification:"] = "Bitte gib dein Passwort zur Verifikation ein:"; -$a->strings["Resubscribing to OStatus contacts"] = "Erneuern der OStatus-Abonements"; -$a->strings["Error"] = "Fehler"; -$a->strings["Remove term"] = "Begriff entfernen"; -$a->strings["Saved Searches"] = "Gespeicherte Suchen"; -$a->strings["Only logged in users are permitted to perform a search."] = "Nur eingeloggten Benutzern ist das Suchen gestattet."; -$a->strings["Too Many Requests"] = "Zu viele Abfragen"; -$a->strings["Only one search per minute is permitted for not logged in users."] = "Es ist nur eine Suchanfrage pro Minute für nicht eingeloggte Benutzer gestattet."; -$a->strings["Search"] = "Suche"; -$a->strings["Items tagged with: %s"] = "Beiträge, die mit %s getaggt sind"; -$a->strings["Results for: %s"] = "Ergebnisse für: %s"; -$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt %2\$s %3\$s"; -$a->strings["Do you really want to delete this suggestion?"] = "Möchtest du wirklich diese Empfehlung löschen?"; -$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal."; -$a->strings["Ignore/Hide"] = "Ignorieren/Verbergen"; -$a->strings["Friend Suggestions"] = "Kontaktvorschläge"; -$a->strings["Tag(s) removed"] = "Tag(s) entfernt"; -$a->strings["Remove Item Tag"] = "Gegenstands-Tag entfernen"; -$a->strings["Select a tag to remove: "] = "Wähle ein Tag zum Entfernen aus: "; -$a->strings["Export account"] = "Account exportieren"; -$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exportiere Deine Account-Informationen und Kontakte. Verwende dies, um ein Backup Deines Accounts anzulegen und/oder damit auf einen anderen Server umzuziehen."; -$a->strings["Export all"] = "Alles exportieren"; -$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exportiere Deine Account-Informationen, Kontakte und alle Einträge als JSON Datei. Dies könnte eine sehr große Datei werden und dementsprechend viel Zeit benötigen. Verwende dies, um ein komplettes Backup Deines Accounts anzulegen (Fotos werden nicht exportiert)."; -$a->strings["Export personal data"] = "Persönliche Daten exportieren"; -$a->strings["User imports on closed servers can only be done by an administrator."] = "Auf geschlossenen Servern können ausschließlich die Administratoren Benutzerkonten importieren."; -$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal."; -$a->strings["Import"] = "Import"; -$a->strings["Move account"] = "Account umziehen"; -$a->strings["You can import an account from another Friendica server."] = "Du kannst einen Account von einem anderen Friendica Server importieren."; -$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Du musst deinen Account vom alten Server exportieren und hier hochladen. Wir stellen deinen alten Account mit all deinen Kontakten wieder her. Wir werden auch versuchen, deine Kontakte darüber zu informieren, dass du hierher umgezogen bist."; -$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Dieses Feature ist experimentell. Wir können keine Kontakte vom OStatus-Netzwerk (GNU Social/Statusnet) oder von Diaspora importieren"; -$a->strings["Account file"] = "Account-Datei"; -$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Um Deinen Account zu exportieren, rufe \"Einstellungen -> Persönliche Daten exportieren\" auf und wähle \"Account exportieren\""; -$a->strings["You aren't following this contact."] = "Du folgst diesem Kontakt."; -$a->strings["Unfollowing is currently not supported by your network."] = "Bei diesem Netzwerk wird das Entfolgen derzeit nicht unterstützt."; -$a->strings["Contact unfollowed"] = "Kontakt wird nicht mehr gefolgt"; -$a->strings["Disconnect/Unfollow"] = "Verbindung lösen/Nicht mehr folgen"; -$a->strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge"; -$a->strings["[Embedded content - reload page to view]"] = "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]"; -$a->strings["Do you really want to delete this video?"] = "Möchtest du dieses Video wirklich löschen?"; -$a->strings["Delete Video"] = "Video Löschen"; -$a->strings["No videos selected"] = "Keine Videos ausgewählt"; -$a->strings["View Video"] = "Video ansehen"; -$a->strings["Recent Videos"] = "Neueste Videos"; -$a->strings["Upload New Videos"] = "Neues Video hochladen"; -$a->strings["No contacts."] = "Keine Kontakte."; -$a->strings["Visit %s's profile [%s]"] = "Besuche %ss Profil [%s]"; -$a->strings["Contacts"] = "Kontakte"; -$a->strings["Invalid request."] = "Ungültige Anfrage"; -$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Entschuldige, die Datei scheint größer zu sein, als es die PHP-Konfiguration erlaubt."; -$a->strings["Or - did you try to upload an empty file?"] = "Oder - hast du versucht, eine leere Datei hochzuladen?"; -$a->strings["File exceeds size limit of %s"] = "Die Datei ist größer als das erlaubte Limit von %s"; -$a->strings["File upload failed."] = "Hochladen der Datei fehlgeschlagen."; -$a->strings["Wall Photos"] = "Pinnwand-Bilder"; -$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Maximale Anzahl der täglichen Pinnwand-Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen."; -$a->strings["Unable to check your home location."] = "Konnte Deinen Heimatort nicht bestimmen."; -$a->strings["No recipient."] = "Kein Empfänger."; -$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Wenn du möchtest, dass %s dir antworten kann, überprüfe deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern."; -$a->strings["Theme settings updated."] = "Themeneinstellungen aktualisiert."; -$a->strings["Information"] = "Information"; -$a->strings["Overview"] = "Übersicht"; -$a->strings["Federation Statistics"] = "Föderation Statistik"; -$a->strings["Configuration"] = "Konfiguration"; -$a->strings["Site"] = "Seite"; -$a->strings["Users"] = "Nutzer"; -$a->strings["Addons"] = "Addons"; -$a->strings["Themes"] = "Themen"; -$a->strings["Additional features"] = "Zusätzliche Features"; -$a->strings["Terms of Service"] = "Nutzungsbedingungen"; -$a->strings["Database"] = "Datenbank"; -$a->strings["DB updates"] = "DB Updates"; -$a->strings["Inspect Deferred Workers"] = "Verzögerte Worker inspizieren"; -$a->strings["Inspect worker Queue"] = "Worker Warteschlange inspizieren"; -$a->strings["Tools"] = "Werkzeuge"; -$a->strings["Contact Blocklist"] = "Kontakt Sperrliste"; -$a->strings["Server Blocklist"] = "Server Blockliste"; -$a->strings["Delete Item"] = "Eintrag löschen"; -$a->strings["Logs"] = "Protokolle"; -$a->strings["View Logs"] = "Protokolle anzeigen"; -$a->strings["Diagnostics"] = "Diagnostik"; -$a->strings["PHP Info"] = "PHP-Info"; -$a->strings["probe address"] = "Adresse untersuchen"; -$a->strings["check webfinger"] = "Webfinger überprüfen"; -$a->strings["Admin"] = "Administration"; -$a->strings["Addon Features"] = "Addon Features"; -$a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen, die auf Bestätigung warten"; -$a->strings["Administration"] = "Administration"; -$a->strings["Display Terms of Service"] = "Nutzungsbedingungen anzeigen"; -$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Aktiviert die Seite für die Nutzungsbedingungen. Ist dies der Fall, werden sie auch von der Registrierungsseite und der allgemeinen Informationsseite verlinkt."; -$a->strings["Display Privacy Statement"] = "Datenschutzerklärung anzeigen"; -$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Zeige Informationen über die zum Betrieb der Seite notwendigen, personenbezogenen Daten an, wie es z.B. die EU-DSGVO verlangt."; -$a->strings["Privacy Statement Preview"] = "Vorschau: Datenschutzerklärung"; -$a->strings["The Terms of Service"] = "Die Nutzungsbedingungen"; -$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Füge hier die Nutzungsbedingungen deines Knotens ein. Du kannst BBCode zur Formatierung verwenden. Überschriften sollten [h2] oder darunter sein."; -$a->strings["The blocked domain"] = "Die blockierte Domain"; -$a->strings["The reason why you blocked this domain."] = "Die Begründung, warum du diese Domain blockiert hast."; -$a->strings["Delete domain"] = "Domain löschen"; -$a->strings["Check to delete this entry from the blocklist"] = "Markieren, um diesen Eintrag von der Blocklist zu entfernen"; -$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "Auf dieser Seite kannst du die Liste der blockierten Domains aus dem föderalen Netzwerk verwalten, denen es untersagt ist, mit deinem Knoten zu interagieren. Für jede der blockierten Domains musst du außerdem einen Grund für die Sperrung angeben."; -$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "Die Liste der blockierten Domains wird auf der /friendica Seite öffentlich einsehbar gemacht, damit deine Nutzer und Personen, die Kommunikationsprobleme erkunden, die Ursachen einfach finden können."; -$a->strings["Add new entry to block list"] = "Neuen Eintrag in die Blockliste"; -$a->strings["Server Domain"] = "Domain des Servers"; -$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "Der Domain-Name des Servers, der geblockt werden soll. Gib das Protokoll nicht mit an!"; -$a->strings["Block reason"] = "Begründung der Blockierung"; -$a->strings["Add Entry"] = "Eintrag hinzufügen"; -$a->strings["Save changes to the blocklist"] = "Änderungen der Blockliste speichern"; -$a->strings["Current Entries in the Blocklist"] = "Aktuelle Einträge der Blockliste"; -$a->strings["Delete entry from blocklist"] = "Eintrag von der Blockliste entfernen"; -$a->strings["Delete entry from blocklist?"] = "Eintrag von der Blockliste entfernen?"; -$a->strings["Server added to blocklist."] = "Server zur Blockliste hinzugefügt."; -$a->strings["Site blocklist updated."] = "Blockliste aktualisiert."; -$a->strings["The contact has been blocked from the node"] = "Der Kontakt wurde von diesem Knoten geblockt"; -$a->strings["Could not find any contact entry for this URL (%s)"] = "Für die URL (%s) konnte kein Kontakt gefunden werden"; -$a->strings["%s contact unblocked"] = [ - 0 => "%sKontakt wieder freigegeben", - 1 => "%sKontakte wieder freigegeben", -]; -$a->strings["Remote Contact Blocklist"] = "Sperrliste entfernter Kontakte"; -$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "Auf dieser Seite kannst du Accounts von anderen Knoten blockieren und damit verhindern, dass ihre Beiträge von deinem Knoten angenommen werden."; -$a->strings["Block Remote Contact"] = "Blockiere entfernten Kontakt"; -$a->strings["select all"] = "Alle auswählen"; -$a->strings["select none"] = "Auswahl aufheben"; -$a->strings["Unblock"] = "Entsperren"; -$a->strings["No remote contact is blocked from this node."] = "Derzeit werden keine Kontakte auf diesem Knoten blockiert."; -$a->strings["Blocked Remote Contacts"] = "Blockierte Kontakte von anderen Knoten"; -$a->strings["Block New Remote Contact"] = "Blockieren von weiteren Kontakten"; -$a->strings["Photo"] = "Foto:"; -$a->strings["Address"] = "Adresse"; -$a->strings["%s total blocked contact"] = [ - 0 => "Insgesamt %s blockierter Kontakt", - 1 => "Insgesamt %s blockierte Kontakte", -]; -$a->strings["URL of the remote contact to block."] = "Die URL des entfernten Kontakts, der blockiert werden soll."; -$a->strings["Delete this Item"] = "Diesen Eintrag löschen"; -$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Auf dieser Seite kannst du Einträge von deinem Knoten löschen. Wenn der Eintrag der Anfang einer Diskussion ist, wird der gesamte Diskussionsverlauf gelöscht."; -$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "Zur Löschung musst du die GUID des Eintrags kennen. Diese findest du z.B. durch die /display URL des Eintrags. Der letzte Teil der URL ist die GUID. Lautet die URL beispielsweise http://example.com/display/123456, ist die GUID 123456."; -$a->strings["GUID"] = "GUID"; -$a->strings["The GUID of the item you want to delete."] = "Die GUID des zu löschenden Eintrags"; -$a->strings["Item marked for deletion."] = "Eintrag wurden zur Löschung markiert"; -$a->strings["unknown"] = "Unbekannt"; -$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Diese Seite präsentiert einige Zahlen zu dem bekannten Teil des föderalen sozialen Netzwerks, von dem deine Friendica Installation ein Teil ist. Diese Zahlen sind nicht absolut und reflektieren nur den Teil des Netzwerks, den dein Knoten kennt."; -$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "Die Funktion \"Regelmäßig globale Kontakte überprüfen\" ist nicht aktiv. Sie wird die hier angezeigten Daten verbessern."; -$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Momentan kennt dieser Knoten %d Knoten mit insgesamt %d registrierten Nutzern, die die folgenden Plattformen verwenden:"; -$a->strings["Inspect Deferred Worker Queue"] = "Verzögerte Worker-Warteschlange inspizieren"; -$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "Auf dieser Seite werden die aufgeschobenen Worker-Jobs aufgelistet. Dies sind Jobs, die beim ersten Mal nicht ausgeführt werden konnten."; -$a->strings["Inspect Worker Queue"] = "Worker-Warteschlange inspizieren"; -$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "Auf dieser Seite werden die derzeit in der Warteschlange befindlichen Worker-Jobs aufgelistet. Diese Jobs werden vom Cronjob verarbeitet, den du während der Installation eingerichtet hast."; -$a->strings["ID"] = "ID"; -$a->strings["Job Parameters"] = "Parameter der Aufgabe"; -$a->strings["Created"] = "Erstellt"; -$a->strings["Priority"] = "Priorität"; -$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Deine DB verwendet derzeit noch MyISAM Tabellen. Du solltest die Datenbank Engine auf InnoDB umstellen, da Friendica in Zukunft InnoDB-Features verwenden wird. Eine Anleitung zur Umstellung der Datenbank kannst du hier finden. Du kannst außerdem mit dem Befehl php bin/console.php dbstructure toinnodb auf der Kommandozeile die Umstellung automatisch vornehmen lassen."; -$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "Es gibt eine neue Version von Friendica. Du verwendest derzeit die Version %1\$s, die aktuelle Version ist %2\$s."; -$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "Das Update der Datenbank ist fehlgeschlagen. Bitte führe 'php bin/console.php dbstructure update' in der Kommandozeile aus und achte auf eventuell auftretende Fehlermeldungen."; -$a->strings["The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)"] = "Das letzte Update ist fehlgeschlagen. Bitte führe \"php bin/console.php dbstructure update\" auf der Kommandozeile aus und werfe einen Blick auf eventuell auftretende Fehler. (Zusätzliche Informationen zu Fehlern könnten in den Logdateien stehen.)"; -$a->strings["The worker was never executed. Please check your database structure!"] = "Der Hintergrundprozess (worker) wurde noch nie gestartet. Bitte überprüfe deine Datenbankstruktur."; -$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "Der Hintergrundprozess (worker) wurde zuletzt um %s UTC ausgeführt. Das war vor mehr als einer Stunde. Bitte überprüfe deine crontab-Einstellungen."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.ini.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten .htconfig.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.config.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten config/local.ini.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen."; -$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s konnte von deinem System nicht aufgerufen werden. Dies deutet auf ein schwerwiegendes Problem deiner Konfiguration hin. Bitte konsultiere die Installations-Dokumentation zum Beheben des Problems."; -$a->strings["Normal Account"] = "Normales Konto"; -$a->strings["Automatic Follower Account"] = "Automatisch folgendes Konto (Marktschreier)"; -$a->strings["Public Forum Account"] = "Öffentliches Forum-Konto"; -$a->strings["Automatic Friend Account"] = "Automatische Freunde-Seite"; -$a->strings["Blog Account"] = "Blog-Konto"; -$a->strings["Private Forum Account"] = "Privates Forum-Konto"; -$a->strings["Message queues"] = "Nachrichten-Warteschlangen"; -$a->strings["Server Settings"] = "Servereinstellungen"; -$a->strings["Summary"] = "Zusammenfassung"; -$a->strings["Registered users"] = "Registrierte Personen"; -$a->strings["Pending registrations"] = "Anstehende Anmeldungen"; -$a->strings["Version"] = "Version"; -$a->strings["Active addons"] = "Aktivierte Addons"; -$a->strings["Can not parse base url. Must have at least ://"] = "Die Basis-URL konnte nicht analysiert werden. Sie muss mindestens aus :// bestehen"; -$a->strings["Invalid storage backend setting value."] = "Ungültige Einstellung für das Datenspeicher-Backend"; -$a->strings["Site settings updated."] = "Seiteneinstellungen aktualisiert."; -$a->strings["No special theme for mobile devices"] = "Kein spezielles Theme für mobile Geräte verwenden."; -$a->strings["No community page for local users"] = "Keine Gemeinschaftsseite für lokale Nutzer"; -$a->strings["No community page"] = "Keine Gemeinschaftsseite"; -$a->strings["Public postings from users of this site"] = "Öffentliche Beiträge von NutzerInnen dieser Seite"; -$a->strings["Public postings from the federated network"] = "Öffentliche Beiträge aus dem föderalen Netzwerk"; -$a->strings["Public postings from local users and the federated network"] = "Öffentliche Beiträge von lokalen Nutzern und aus dem föderalen Netzwerk"; -$a->strings["Disabled"] = "Deaktiviert"; -$a->strings["Users, Global Contacts"] = "Nutzer, globale Kontakte"; -$a->strings["Users, Global Contacts/fallback"] = "Nutzer, globale Kontakte / Fallback"; -$a->strings["One month"] = "ein Monat"; -$a->strings["Three months"] = "drei Monate"; -$a->strings["Half a year"] = "ein halbes Jahr"; -$a->strings["One year"] = "ein Jahr"; -$a->strings["Multi user instance"] = "Mehrbenutzer-Instanz"; -$a->strings["Closed"] = "Geschlossen"; -$a->strings["Requires approval"] = "Bedarf der Zustimmung"; -$a->strings["Open"] = "Offen"; -$a->strings["No SSL policy, links will track page SSL state"] = "Keine SSL-Richtlinie, Links werden das verwendete Protokoll beibehalten"; -$a->strings["Force all links to use SSL"] = "SSL für alle Links erzwingen"; -$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)"; -$a->strings["Don't check"] = "Nicht überprüfen"; -$a->strings["check the stable version"] = "überprüfe die stabile Version"; -$a->strings["check the development version"] = "überprüfe die Entwicklungsversion"; -$a->strings["Database (legacy)"] = "Datenbank (legacy)"; -$a->strings["Republish users to directory"] = "Nutzer erneut im globalen Verzeichnis veröffentlichen."; -$a->strings["Registration"] = "Registrierung"; -$a->strings["File upload"] = "Datei hochladen"; -$a->strings["Policies"] = "Regeln"; -$a->strings["Auto Discovered Contact Directory"] = "Automatisch ein Kontaktverzeichnis erstellen"; -$a->strings["Performance"] = "Performance"; -$a->strings["Worker"] = "Worker"; -$a->strings["Message Relay"] = "Nachrichten-Relais"; -$a->strings["Relocate Instance"] = "Instanz Umziehen"; -$a->strings["Warning! Advanced function. Could make this server unreachable."] = "WARNUNG: Funktion für Fortgeschrittene. Könnte diesen Server unerreichbar machen."; -$a->strings["Site name"] = "Seitenname"; -$a->strings["Sender Email"] = "Absender für Emails"; -$a->strings["The email address your server shall use to send notification emails from."] = "Die E-Mail Adresse, die dein Server zum Versenden von Benachrichtigungen verwenden soll."; -$a->strings["Banner/Logo"] = "Banner/Logo"; -$a->strings["Shortcut icon"] = "Shortcut Icon"; -$a->strings["Link to an icon that will be used for browsers."] = "Link zu einem Icon, das Browser verwenden werden."; -$a->strings["Touch icon"] = "Touch Icon"; -$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link zu einem Icon, das Tablets und Mobiltelefone verwenden sollen."; -$a->strings["Additional Info"] = "Zusätzliche Informationen"; -$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "Für öffentliche Server kannst du hier zusätzliche Informationen angeben, die dann auf %s/servers angezeigt werden."; -$a->strings["System language"] = "Systemsprache"; -$a->strings["System theme"] = "Systemweites Theme"; -$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Vorgabe für das System-Theme - kann von Benutzerprofilen überschrieben werden - Theme-Einstellungen ändern"; -$a->strings["Mobile system theme"] = "Systemweites mobiles Theme"; -$a->strings["Theme for mobile devices"] = "Theme für mobile Geräte"; -$a->strings["SSL link policy"] = "Regeln für SSL Links"; -$a->strings["Determines whether generated links should be forced to use SSL"] = "Bestimmt, ob generierte Links SSL verwenden müssen"; -$a->strings["Force SSL"] = "Erzwinge SSL"; -$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Erzwinge SSL für alle Nicht-SSL-Anfragen - Achtung: auf manchen Systemen verursacht dies eine Endlosschleife."; -$a->strings["Hide help entry from navigation menu"] = "Verberge den Hilfe-Eintrag im Navigationsmenü"; -$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Verbirgt den Menüeintrag für die Hilfe-Seiten im Navigationsmenü. Die Seiten können weiterhin über /help aufgerufen werden."; -$a->strings["Single user instance"] = "Ein-Nutzer Instanz"; -$a->strings["Make this instance multi-user or single-user for the named user"] = "Bestimmt, ob es sich bei dieser Instanz um eine Installation mit nur einen Nutzer oder mit mehreren Nutzern handelt."; -$a->strings["File storage backend"] = "Datenspeicher-Backend"; -$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "Das zu verwendende Datenspeicher-Backend, wenn Dateien hochgeladen werden. Wenn du das Datenspeicher-Backend änderst, kannst du die bestehenden Dateien zum neuen Backend verschieben. Machst du dies nicht, verbleiben sie im alten Backend und werden weiterhin von dort geladen. Für weitere Informationen zu den verfügbaren Alternativen und der Prozedur zum Verschieben der Daten schaue bitte in die Dokumentation zu den Einstellungen."; -$a->strings["Maximum image size"] = "Maximale Bildgröße"; -$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale Uploadgröße von Bildern in Bytes. Standard ist 0, d.h. ohne Limit."; -$a->strings["Maximum image length"] = "Maximale Bildlänge"; -$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximale Länge in Pixeln der längsten Seite eines hochgeladenen Bildes. Grundeinstellung ist -1, was keine Einschränkung bedeutet."; -$a->strings["JPEG image quality"] = "Qualität des JPEG Bildes"; -$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Hochgeladene JPEG-Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust."; -$a->strings["Register policy"] = "Registrierungsmethode"; -$a->strings["Maximum Daily Registrations"] = "Maximum täglicher Registrierungen"; -$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "Wenn die Registrierung weiter oben erlaubt ist, regelt dies die maximale Anzahl von Neuanmeldungen pro Tag. Wenn die Registrierung geschlossen ist, hat diese Einstellung keinen Effekt."; -$a->strings["Register text"] = "Registrierungstext"; -$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Wird gut sichtbar auf der Registrierungsseite angezeigt. BBCode kann verwendet werden."; -$a->strings["Forbidden Nicknames"] = "Verbotene Spitznamen"; -$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Durch Kommas getrennte Liste von Spitznamen, die von der Registrierung ausgeschlossen sind. Die Vorgabe ist eine Liste von Rollennamen nach RFC 2142."; -$a->strings["Accounts abandoned after x days"] = "Nutzerkonten gelten nach x Tagen als unbenutzt"; -$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit."; -$a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Kontakte erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; -$a->strings["Allowed email domains"] = "Erlaubte Domains für E-Mails"; -$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; -$a->strings["No OEmbed rich content"] = "OEmbed nicht verwenden"; -$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Verhindert das Einbetten von reichhaltigen Inhalten (z.B. eingebettete PDF Dateien). Ausgenommen von dieser Regel werden Domänen, die unten aufgeführt werden."; -$a->strings["Allowed OEmbed domains"] = "Erlaubte OEmbed-Domänen"; -$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Durch Kommas getrennte Liste von Domänen, für die das Einbetten reichhaltiger Inhalte erlaubt ist. Platzhalter können verwendet werden."; -$a->strings["Block public"] = "Öffentlichen Zugriff blockieren"; -$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist."; -$a->strings["Force publish"] = "Erzwinge Veröffentlichung"; -$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen."; -$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Wenn du diese Option aktivierst, verstößt das unter Umständen gegen Gesetze wie die EU-DSGVO."; -$a->strings["Global directory URL"] = "URL des weltweiten Verzeichnisses"; -$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL des weltweiten Verzeichnisses. Wenn diese nicht gesetzt ist, ist das Verzeichnis für die Applikation nicht erreichbar."; -$a->strings["Private posts by default for new users"] = "Private Beiträge als Standard für neue Nutzer"; -$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Die Standard-Zugriffsrechte für neue Nutzer werden so gesetzt, dass als Voreinstellung in die private Gruppe gepostet wird anstelle von öffentlichen Beiträgen."; -$a->strings["Don't include post content in email notifications"] = "Inhalte von Beiträgen nicht in E-Mail-Benachrichtigungen versenden"; -$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Inhalte von Beiträgen/Kommentaren/privaten Nachrichten/usw. zum Datenschutz nicht in E-Mail-Benachrichtigungen einbinden."; -$a->strings["Disallow public access to addons listed in the apps menu."] = "Öffentlichen Zugriff auf Addons im Apps Menü verbieten."; -$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Wenn ausgewählt, werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt."; -$a->strings["Don't embed private images in posts"] = "Private Bilder nicht in Beiträgen einbetten."; -$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Ersetze lokal gehostete, private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten, sich zunächst auf den jeweiligen Servern authentifizieren müssen, bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert."; -$a->strings["Explicit Content"] = "Sensibler Inhalt"; -$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Wähle dies, um anzuzeigen, dass dein Knoten hauptsächlich für explizite Inhalte verwendet wird, die möglicherweise nicht für Minderjährige geeignet sind. Diese Info wird in der Knoteninformation veröffentlicht und kann durch das Globale Verzeichnis genutzt werden, um deinen Knoten von den Auflistungen auszuschließen. Zusätzlich wird auf der Registrierungsseite ein Hinweis darüber angezeigt."; -$a->strings["Allow Users to set remote_self"] = "Nutzern erlauben, das remote_self Flag zu setzen"; -$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Ist dies ausgewählt, kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im \"Erweitert\"-Reiter der Kontaktansicht markieren. Nach dem Setzen dieses Flags werden alle Top-Level-Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet (gespiegelt)."; -$a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung"; -$a->strings["Disallow users to register additional accounts for use as pages."] = "Benutzern nicht erlauben, weitere Konten für Organisationsseiten o. ä. mit der gleichen E-Mail-Adresse anzulegen."; -$a->strings["Disable OpenID"] = "OpenID deaktivieren"; -$a->strings["Disable OpenID support for registration and logins."] = "OpenID-Unterstützung für Registrierung und Login."; -$a->strings["No Fullname check"] = "Namen nicht auf Vollständigkeit überprüfen"; -$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Erlaubt Nutzern, Konten zu registrieren, bei denen im Namensfeld kein Leerzeichen zur Trennung von Vor- und Nachnamen verwendet wird."; -$a->strings["Community pages for visitors"] = "Für Besucher verfügbare Gemeinschaftsseite"; -$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Welche Gemeinschaftsseiten sollen für Besucher dieses Knotens verfügbar sein? Lokale Nutzer können grundsätzlich beide Seiten verwenden."; -$a->strings["Posts per user on community page"] = "Anzahl der Beiträge pro Benutzer auf der Gemeinschaftsseite"; -$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = "Die Anzahl der Beiträge, die von jedem Nutzer maximal auf der Gemeinschaftsseite angezeigt werden sollen. Dieser Parameter wird nicht für die Globale Gemeinschaftsseite genutzt."; -$a->strings["Disable OStatus support"] = "OStatus-Unterstützung deaktivieren"; -$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Die eingebaute OStatus-Unterstützung (StatusNet, GNU Social, etc.) deaktivieren. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre-Warnungen werden nur bei Bedarf angezeigt."; -$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Nur OStatus/ActivityPub-Konversationen unserer Kontakte importieren"; -$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normalerweise werden alle Inhalte von OStatus- und ActivityPub-Kontakten importiert. Mit dieser Option werden nur solche Konversationen gespeichert, die von Kontakten der Nutzer dieses Knotens gestartet wurden."; -$a->strings["OStatus support can only be enabled if threading is enabled."] = "OStatus Unterstützung kann nur aktiviert werden, wenn \"Threading\" aktiviert ist. "; -$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Diaspora Unterstützung kann nicht aktiviert werden, da Friendica in ein Unterverzeichnis installiert ist."; -$a->strings["Enable Diaspora support"] = "Diaspora-Unterstützung aktivieren"; -$a->strings["Provide built-in Diaspora network compatibility."] = "Verwende die eingebaute Diaspora-Verknüpfung."; -$a->strings["Only allow Friendica contacts"] = "Nur Friendica-Kontakte erlauben"; -$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Alle Kontakte müssen das Friendica-Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert."; -$a->strings["Verify SSL"] = "SSL Überprüfen"; -$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Wenn gewollt, kann man hier eine strenge Zertifikatskontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL-Zertifikat eine Verbindung herstellen kann."; -$a->strings["Proxy user"] = "Proxy-Nutzer"; -$a->strings["Proxy URL"] = "Proxy-URL"; -$a->strings["Network timeout"] = "Netzwerk-Wartezeit"; -$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)."; -$a->strings["Maximum Load Average"] = "Maximum Load Average"; -$a->strings["Maximum system load before delivery and poll processes are deferred - default %d."] = "Maximale System-LOAD bevor Verteil- und Empfangsprozesse verschoben werden - Standard %d"; -$a->strings["Maximum Load Average (Frontend)"] = "Maximum Load Average (Frontend)"; -$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maximale Systemlast, bevor Vordergrundprozesse pausiert werden - Standard 50."; -$a->strings["Minimal Memory"] = "Minimaler Speicher"; -$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimal freier Speicher in MB für den Worker Prozess. Benötigt Zugriff auf /proc/meminfo - Standardwert ist 0 (deaktiviert)"; -$a->strings["Maximum table size for optimization"] = "Maximale Tabellengröße zur Optimierung"; -$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maximale Tabellengröße (in MB) für die automatische Optimierung - Gib -1 für Deaktivierung ein."; -$a->strings["Minimum level of fragmentation"] = "Minimaler Fragmentationsgrad"; -$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimaler Fragmentationsgrad von Datenbanktabellen, um die automatische Optimierung einzuleiten - Standardwert ist 30%"; -$a->strings["Periodical check of global contacts"] = "Regelmäßig globale Kontakte überprüfen"; -$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Wenn diese Option aktiviert ist, werden die globalen Kontakte regelmäßig auf fehlende oder veraltete Daten sowie auf Erreichbarkeit des Kontakts und des Servers überprüft."; -$a->strings["Days between requery"] = "Tage zwischen erneuten Abfragen"; -$a->strings["Number of days after which a server is requeried for his contacts."] = "Legt das Abfrageintervall fest, nach dem ein Server erneut nach Kontakten abgefragt werden soll."; -$a->strings["Discover contacts from other servers"] = "Neue Kontakte auf anderen Servern entdecken"; -$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."] = "Regelmäßig andere Server nach potentiellen Kontakten absuchen. Du kannst zwischen 'Nutzern', also den tatsächlichen Nutzern des anderen Systems, und 'globalen Kontakten', also aktiven Kontakten, die auf dem System bekannt sind, wählen. Der Fallback-Mechanismus ist für ältere Friendica- und Redmatrix-Server gedacht, bei denen globale Kontakte noch nicht verfügbar sind. Durch den Fallback-Modus entsteht auf deinem Server eine wesentlich höhere Last, empfohlen wird der Modus 'Nutzer, globale Kontakte'."; -$a->strings["Timeframe for fetching global contacts"] = "Zeitfenster für globale Kontakte"; -$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Wenn die Entdeckung neuer Kontakte aktiv ist, definiert dieses Zeitfenster den Zeitraum, in dem globale Kontakte als aktiv gelten und von anderen Servern importiert werden."; -$a->strings["Search the local directory"] = "Lokales Verzeichnis durchsuchen"; -$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Suche im lokalen Verzeichnis anstelle des globalen Verzeichnisses durchführen. Jede Suche wird im Hintergrund auch im globalen Verzeichnis durchgeführt, um die Suchresultate zu verbessern, wenn die Suche wiederholt wird."; -$a->strings["Publish server information"] = "Server-Informationen veröffentlichen"; -$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "Wenn aktiviert, werden allgemeine Informationen über den Server und Nutzungsdaten veröffentlicht. Die Daten beinhalten den Namen sowie die Version des Servers, die Anzahl der Personen mit öffentlichen Profilen, die Anzahl der Beiträge sowie aktivierte Protokolle und Konnektoren. Für Details bitte the-federation.info aufrufen."; -$a->strings["Check upstream version"] = "Suche nach Updates"; -$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Wenn diese Option aktiviert ist, wird regelmäßig nach neuen Friendica-Versionen auf github gesucht. Wenn es eine neue Version gibt, wird dies auf der Übersichtsseite im Admin-Panel angezeigt."; -$a->strings["Suppress Tags"] = "Tags unterdrücken"; -$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Unterdrückt die Anzeige von Tags am Ende eines Beitrags."; -$a->strings["Clean database"] = "Datenbank aufräumen"; -$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Entferne alte Beiträge von anderen Knoten, verwaiste Einträge und alten Inhalt einiger Hilfstabellen."; -$a->strings["Lifespan of remote items"] = "Lebensdauer von Beiträgen anderer Knoten"; -$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl in Tagen, nach der Beiträge, die auf anderen Knoten des Netzwerks verfasst wurden, gelöscht werden sollen. Eigene Beiträge sowie markierte oder abgespeicherte Beiträge werden nicht gelöscht. Ein Wert von 0 deaktiviert das automatische Löschen von Beiträgen."; -$a->strings["Lifespan of unclaimed items"] = "Lebensdauer nicht angeforderter Beiträge"; -$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl von Tagen, nach denen nicht angeforderte Beiträge (hauptsächlich solche, die über das Relais eintreffen) gelöscht werden. Der Standardwert beträgt 90 Tage. Wird dieser Wert auf 0 gesetzt, wird die Lebensdauer von Beiträgen anderer Knoten verwendet."; -$a->strings["Lifespan of raw conversation data"] = "Lebensdauer der Beiträge"; -$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "Die Konversationsdaten werden für ActivityPub und OStatus sowie für Debug-Zwecke verwendet. Sie sollten gefahrlos nach 14 Tagen entfernt werden können, der Standardwert beträgt 90 Tage."; -$a->strings["Path to item cache"] = "Pfad zum Item-Cache"; -$a->strings["The item caches buffers generated bbcode and external images."] = "Im Item-Cache werden externe Bilder und geparster BBCode zwischen gespeichert."; -$a->strings["Cache duration in seconds"] = "Cache-Dauer in Sekunden"; -$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Wie lange sollen die zwischengespeicherten Dateien vorgehalten werden? Grundeinstellung sind 86400 Sekunden (ein Tag). Um den Item-Cache zu deaktivieren, setze diesen Wert auf -1."; -$a->strings["Maximum numbers of comments per post"] = "Maximale Anzahl von Kommentaren pro Beitrag"; -$a->strings["How much comments should be shown for each post? Default value is 100."] = "Wie viele Kommentare sollen pro Beitrag angezeigt werden? Standardwert sind 100."; -$a->strings["Temp path"] = "Temp-Pfad"; -$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Solltest du ein eingeschränktes System haben, auf dem der Webserver nicht auf das temp-Verzeichnis des Systems zugreifen kann, setze hier einen anderen Pfad."; -$a->strings["Disable picture proxy"] = "Bilder-Proxy deaktivieren"; -$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "Der Proxy für Bilder verbessert die Leistung und Privatsphäre der Nutzer. Er sollte nicht auf Systemen verwendet werden, die nur über begrenzte Bandbreite verfügen."; -$a->strings["Only search in tags"] = "Nur in Tags suchen"; -$a->strings["On large systems the text search can slow down the system extremely."] = "Auf großen Knoten kann die Volltext-Suche das System ausbremsen."; -$a->strings["New base url"] = "Neue Basis-URL"; -$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Ändert die Basis-URL dieses Servers und sendet eine Umzugsmitteilung an alle Friendica- und Diaspora*-Kontakte deiner NutzerInnen."; -$a->strings["RINO Encryption"] = "RINO-Verschlüsselung"; -$a->strings["Encryption layer between nodes."] = "Verschlüsselung zwischen Friendica-Instanzen"; -$a->strings["Enabled"] = "Aktiv"; -$a->strings["Maximum number of parallel workers"] = "Maximale Anzahl parallel laufender Worker"; -$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Wenn dein Knoten bei einem Shared Hoster ist, setze diesen Wert auf %d. Auf größeren Systemen funktioniert ein Wert von %d recht gut. Standardeinstellung sind %d."; -$a->strings["Don't use 'proc_open' with the worker"] = "'proc_open' nicht mit den Workern verwenden"; -$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der worker-Aufrufe in deiner crontab erhöhen."; -$a->strings["Enable fastlane"] = "Aktiviere Fastlane"; -$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "Wenn aktiviert, wird der Fastlane-Mechanismus einen weiteren Worker-Prozeß starten, wenn Prozesse mit höherer Priorität von Prozessen mit niedrigerer Priorität blockiert werden."; -$a->strings["Enable frontend worker"] = "Aktiviere den Frontend-Worker"; -$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "Ist diese Option aktiv, wird der Worker Prozess durch Aktionen am Frontend gestartet (z.B. wenn Nachrichten zugestellt werden). Auf kleineren Seiten sollte %s/worker regelmäßig, beispielsweise durch einen externen Cron Anbieter, aufgerufen werden. Du solltest diese Option nur dann aktivieren, wenn du keinen Cron Job auf deinem eigenen Server starten kannst."; -$a->strings["Subscribe to relay"] = "Relais abonnieren"; -$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Aktiviert den Empfang von öffentlichen Beiträgen vom Relais-Server. Diese Beiträge werden in der Suche, den abonnierten Hashtags sowie der globalen Gemeinschaftsseite verfügbar sein."; -$a->strings["Relay server"] = "Relais-Server"; -$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Adresse des Relais-Servers, an den die öffentlichen Beiträge gesendet werden sollen. Zum Beispiel https://relay.diasp.org"; -$a->strings["Direct relay transfer"] = "Direkte Relais-Übertragung"; -$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Aktiviert das direkte Verteilen an andere Server, ohne dass ein Relais-Server verwendet wird."; -$a->strings["Relay scope"] = "Geltungsbereich des Relais"; -$a->strings["Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."] = "Der Wert kann entweder 'Alle' oder 'Schlagwörter' sein. 'Alle' bedeutet, dass alle öffentliche Beiträge empfangen werden sollen. 'Schlagwörter' schränkt dem Empfang auf Beiträge ein, die bestimmte Schlagwörter beinhalten."; -$a->strings["all"] = "Alle"; -$a->strings["tags"] = "Schlagwörter"; -$a->strings["Server tags"] = "Server-Schlagworte"; -$a->strings["Comma separated list of tags for the 'tags' subscription."] = "Liste von Schlagworten, die abonniert werden sollen, mit Komma getrennt."; -$a->strings["Allow user tags"] = "Verwende Schlagworte der Nutzer"; -$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "Ist dies aktiviert, werden die Schlagwörter der gespeicherten Suchen zusätzlich zu den oben definierten Server-Schlagworten abonniert."; -$a->strings["Start Relocation"] = "Umsiedlung starten"; -$a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert"; -$a->strings["Database structure update %s was successfully applied."] = "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt."; -$a->strings["Executing of database structure update %s failed with error: %s"] = "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s"; -$a->strings["Executing %s failed with error: %s"] = "Die Ausführung von %s schlug fehl. Fehlermeldung: %s"; -$a->strings["Update %s was successfully applied."] = "Update %s war erfolgreich."; -$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s hat keinen Status zurückgegeben. Unbekannter Status."; -$a->strings["There was no additional update function %s that needed to be called."] = "Es gab keine weitere Update-Funktion, die von %s ausgeführt werden musste."; -$a->strings["No failed updates."] = "Keine fehlgeschlagenen Updates."; -$a->strings["Check database structure"] = "Datenbankstruktur überprüfen"; -$a->strings["Failed Updates"] = "Fehlgeschlagene Updates"; -$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben."; -$a->strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (falls das Update manuell installiert wurde)"; -$a->strings["Attempt to execute this update step automatically"] = "Versuchen, diesen Schritt automatisch auszuführen"; -$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\nHallo %1\$s,\n\nauf %2\$s wurde ein Account für dich angelegt."; -$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\nNachfolgend die Anmelde-Details:\n\tAdresse der Seite:\t%1\$s\n\tBenutzername:\t%2\$s\n\tPasswort:\t%3\$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich\nangemeldet hast.\n\nBitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst du ja auch einige Informationen über dich in deinem\nProfil veröffentlichen, damit andere Leute dich einfacher finden können.\nBearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir\npassendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.\nAußerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.\n\nWir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nSolltest du dein Nutzerkonto löschen wollen, kannst du dies unter %1\$s/removeme jederzeit tun.\n\nNun viel Spaß, gute Begegnungen und willkommen auf %4\$s."; -$a->strings["Registration details for %s"] = "Details der Registration von %s"; -$a->strings["%s user blocked/unblocked"] = [ - 0 => "%s Benutzer geblockt/freigegeben", - 1 => "%s Benutzer geblockt/freigegeben", -]; -$a->strings["You can't remove yourself"] = "Du kannst dich nicht selbst löschen!"; -$a->strings["%s user deleted"] = [ - 0 => "%s Nutzer gelöscht", - 1 => "%s Nutzer gelöscht", -]; -$a->strings["User '%s' deleted"] = "Nutzer '%s' gelöscht"; -$a->strings["User '%s' unblocked"] = "Nutzer '%s' entsperrt"; -$a->strings["User '%s' blocked"] = "Nutzer '%s' gesperrt"; -$a->strings["Normal Account Page"] = "Normales Konto"; -$a->strings["Soapbox Page"] = "Marktschreier-Konto"; -$a->strings["Public Forum"] = "Öffentliches Forum"; -$a->strings["Automatic Friend Page"] = "Automatische Freunde-Seite"; -$a->strings["Private Forum"] = "Privates Forum"; -$a->strings["Personal Page"] = "Persönliche Seite"; -$a->strings["Organisation Page"] = "Organisationsseite"; -$a->strings["News Page"] = "Nachrichtenseite"; -$a->strings["Community Forum"] = "Gemeinschaftsforum"; -$a->strings["Relay"] = "Relais"; -$a->strings["Email"] = "E-Mail"; -$a->strings["Register date"] = "Anmeldedatum"; -$a->strings["Last login"] = "Letzte Anmeldung"; -$a->strings["Last item"] = "Letzter Beitrag"; -$a->strings["Type"] = "Typ"; -$a->strings["Add User"] = "Nutzer hinzufügen"; -$a->strings["User registrations waiting for confirm"] = "Neuanmeldungen, die auf Deine Bestätigung warten"; -$a->strings["User waiting for permanent deletion"] = "Nutzer wartet auf permanente Löschung"; -$a->strings["Request date"] = "Anfragedatum"; -$a->strings["No registrations."] = "Keine Neuanmeldungen."; -$a->strings["Note from the user"] = "Hinweis vom Nutzer"; -$a->strings["Deny"] = "Verwehren"; -$a->strings["User blocked"] = "Nutzer blockiert."; -$a->strings["Site admin"] = "Seitenadministrator"; -$a->strings["Account expired"] = "Account ist abgelaufen"; -$a->strings["New User"] = "Neuer Nutzer"; -$a->strings["Permanent deletion"] = "Permanent löschen"; -$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?"; -$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Der Nutzer {0} wird gelöscht!\\n\\nAlles, was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?"; -$a->strings["Name of the new user."] = "Name des neuen Nutzers"; -$a->strings["Nickname"] = "Spitzname"; -$a->strings["Nickname of the new user."] = "Spitznamen für den neuen Nutzer"; -$a->strings["Email address of the new user."] = "Email Adresse des neuen Nutzers"; -$a->strings["Addon %s disabled."] = "Addon %s ausgeschaltet."; -$a->strings["Addon %s enabled."] = "Addon %s eingeschaltet."; -$a->strings["Disable"] = "Ausschalten"; -$a->strings["Enable"] = "Einschalten"; -$a->strings["Toggle"] = "Umschalten"; -$a->strings["Author: "] = "Autor:"; -$a->strings["Maintainer: "] = "Betreuer:"; -$a->strings["Reload active addons"] = "Aktivierte Addons neu laden"; -$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "Es sind derzeit keine Addons auf diesem Knoten verfügbar. Du findest das offizielle Addon-Repository unter %1\$s und weitere eventuell interessante Addons im offenen Addon-Verzeichnis auf %2\$s."; -$a->strings["No themes found."] = "Keine Themes gefunden."; -$a->strings["Screenshot"] = "Bildschirmfoto"; -$a->strings["Reload active themes"] = "Aktives Theme neu laden"; -$a->strings["No themes found on the system. They should be placed in %1\$s"] = "Es wurden keine Themes auf dem System gefunden. Diese sollten in %1\$s platziert werden."; -$a->strings["[Experimental]"] = "[Experimentell]"; -$a->strings["[Unsupported]"] = "[Nicht unterstützt]"; -$a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert."; -$a->strings["PHP log currently enabled."] = "PHP Protokollierung ist derzeit aktiviert."; -$a->strings["PHP log currently disabled."] = "PHP Protokollierung ist derzeit nicht aktiviert."; -$a->strings["Clear"] = "löschen"; -$a->strings["Enable Debugging"] = "Protokoll führen"; -$a->strings["Log file"] = "Protokolldatei"; -$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis."; -$a->strings["Log level"] = "Protokoll-Level"; -$a->strings["PHP logging"] = "PHP Protokollieren"; -$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Um die Protokollierung von PHP-Fehlern und Warnungen vorübergehend zu aktivieren, kannst du der Datei index.php deiner Installation Folgendes voranstellen. Der in der Datei 'error_log' angegebene Dateiname ist relativ zum obersten Verzeichnis von Friendica und muss vom Webserver beschreibbar sein. Die Option '1' für 'log_errors' und 'display_errors' aktiviert diese Optionen, ersetze die '1' durch eine '0', um sie zu deaktivieren."; -$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Fehler beim Öffnen der Logdatei %1\$s.\\r\\n
    Bitte überprüfe ob die Datei %1\$s existiert und gelesen werden kann."; -$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Konnte die Logdatei %1\$s nicht öffnen.\\r\\n
    Bitte stelle sicher, dass die Datei %1\$s lesbar ist."; -$a->strings["Off"] = "Aus"; -$a->strings["On"] = "An"; -$a->strings["Lock feature %s"] = "Feature festlegen: %s"; -$a->strings["Manage Additional Features"] = "Zusätzliche Features Verwalten"; -$a->strings["No entries (some entries may be hidden)."] = "Keine Einträge (einige Einträge könnten versteckt sein)."; -$a->strings["Global Directory"] = "Weltweites Verzeichnis"; -$a->strings["Find on this site"] = "Auf diesem Server suchen"; -$a->strings["Results for:"] = "Ergebnisse für:"; -$a->strings["Site Directory"] = "Verzeichnis"; -$a->strings["Find"] = "Finde"; -$a->strings["Status:"] = "Status:"; -$a->strings["Homepage:"] = "Homepage:"; -$a->strings["The contact could not be added."] = "Der Kontakt konnte nicht hinzugefügt werden."; -$a->strings["You already added this contact."] = "Du hast den Kontakt bereits hinzugefügt."; -$a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Diaspora-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; -$a->strings["OStatus support is disabled. Contact can't be added."] = "OStatus-Unterstützung ist nicht aktiviert. Der Kontakt kann nicht zugefügt werden."; -$a->strings["The network type couldn't be detected. Contact can't be added."] = "Der Netzwerktyp wurde nicht erkannt. Der Kontakt kann nicht hinzugefügt werden."; -$a->strings["Unable to locate original post."] = "Konnte den Originalbeitrag nicht finden."; -$a->strings["Empty post discarded."] = "Leerer Beitrag wurde verworfen."; -$a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Diese Nachricht wurde dir von %s geschickt, einem Mitglied des Sozialen Netzwerks Friendica."; -$a->strings["You may visit them online at %s"] = "Du kannst sie online unter %s besuchen"; -$a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Falls du diese Beiträge nicht erhalten möchtest, kontaktiere bitte den Autor, indem du auf diese Nachricht antwortest."; -$a->strings["%s posted an update."] = "%s hat ein Update veröffentlicht."; -$a->strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselwörter zum Abgleichen gefunden. Bitte füge einige Schlüsselwörter zu Deinem Standardprofil hinzu."; -$a->strings["first"] = "erste"; -$a->strings["next"] = "nächste"; -$a->strings["Profile Match"] = "Profilübereinstimmungen"; -$a->strings["add"] = "hinzufügen"; -$a->strings["Warning: This group contains %s member from a network that doesn't allow non public messages."] = [ - 0 => "Warnung: Diese Gruppe beinhaltet %s Person aus einem Netzwerk das keine nicht öffentlichen Beiträge empfangen kann.", - 1 => "Warnung: Diese Gruppe beinhaltet %s Personen aus Netzwerken, die keine nicht-öffentlichen Beiträge empfangen können.", -]; -$a->strings["Messages in this group won't be send to these receivers."] = "Beiträge in dieser Gruppe werden deshalb nicht an diese Personen zugestellt werden."; -$a->strings["No such group"] = "Es gibt keine solche Gruppe"; -$a->strings["Group is empty"] = "Gruppe ist leer"; -$a->strings["Group: %s"] = "Gruppe: %s"; -$a->strings["Private messages to this person are at risk of public disclosure."] = "Private Nachrichten an diese Person könnten an die Öffentlichkeit gelangen."; -$a->strings["Invalid contact."] = "Ungültiger Kontakt."; -$a->strings["Commented Order"] = "Neueste Kommentare"; -$a->strings["Sort by Comment Date"] = "Nach Kommentardatum sortieren"; -$a->strings["Posted Order"] = "Neueste Beiträge"; -$a->strings["Sort by Post Date"] = "Nach Beitragsdatum sortieren"; -$a->strings["Personal"] = "Persönlich"; -$a->strings["Posts that mention or involve you"] = "Beiträge, in denen es um dich geht"; -$a->strings["New"] = "Neue"; -$a->strings["Activity Stream - by date"] = "Aktivitäten-Stream - nach Datum"; -$a->strings["Shared Links"] = "Geteilte Links"; -$a->strings["Interesting Links"] = "Interessante Links"; -$a->strings["Starred"] = "Markierte"; -$a->strings["Favourite Posts"] = "Favorisierte Beiträge"; $a->strings["Profile deleted."] = "Profil gelöscht."; $a->strings["Profile-"] = "Profil-"; $a->strings["New profile created."] = "Neues Profil angelegt."; @@ -1169,6 +631,7 @@ $a->strings["Sexual Preference"] = "Sexuelle Vorlieben"; $a->strings["XMPP"] = "XMPP"; $a->strings["Homepage"] = "Webseite"; $a->strings["Interests"] = "Interessen"; +$a->strings["Address"] = "Adresse"; $a->strings["Location"] = "Wohnort"; $a->strings["Profile updated."] = "Profil aktualisiert."; $a->strings["Hide contacts and friends:"] = "Kontakte und Freunde verbergen"; @@ -1234,12 +697,51 @@ $a->strings["visible to everybody"] = "sichtbar für jeden"; $a->strings["Edit/Manage Profiles"] = "Bearbeite/Verwalte Profile"; $a->strings["Change profile photo"] = "Profilbild ändern"; $a->strings["Create New Profile"] = "Neues Profil anlegen"; +$a->strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zuschneiden schlug fehl."; +$a->strings["Image size reduction [%s] failed."] = "Verkleinern der Bildgröße von [%s] scheiterte."; +$a->strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Drücke Umschalt+Neu Laden oder leere den Browser-Cache, falls das neue Foto nicht gleich angezeigt wird."; +$a->strings["Unable to process image"] = "Bild konnte nicht verarbeitet werden"; +$a->strings["Upload File:"] = "Datei hochladen:"; +$a->strings["Select a profile:"] = "Profil auswählen:"; +$a->strings["or"] = "oder"; +$a->strings["skip this step"] = "diesen Schritt überspringen"; +$a->strings["select a photo from your photo albums"] = "wähle ein Foto aus deinen Fotoalben"; +$a->strings["Crop Image"] = "Bild zurechtschneiden"; +$a->strings["Please adjust the image cropping for optimum viewing."] = "Passe bitte den Bildausschnitt an, damit das Bild optimal dargestellt werden kann."; +$a->strings["Done Editing"] = "Bearbeitung abgeschlossen"; +$a->strings["Image uploaded successfully."] = "Bild erfolgreich hochgeladen."; +$a->strings["Permission denied"] = "Zugriff verweigert"; +$a->strings["Invalid profile identifier."] = "Ungültiger Profil-Bezeichner."; +$a->strings["Profile Visibility Editor"] = "Editor für die Profil-Sichtbarkeit"; +$a->strings["Click on a contact to add or remove."] = "Klicke einen Kontakt an, um ihn hinzuzufügen oder zu entfernen"; +$a->strings["Visible To"] = "Sichtbar für"; +$a->strings["All Contacts (with secure profile access)"] = "Alle Kontakte (mit gesichertem Profilzugriff)"; +$a->strings["Account approved."] = "Konto freigegeben."; +$a->strings["Registration revoked for %s"] = "Registrierung für %s wurde zurückgezogen"; +$a->strings["Please login."] = "Bitte melde dich an."; +$a->strings["User deleted their account"] = "Gelöschter Nutzeraccount"; +$a->strings["On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups."] = "Ein Nutzer deiner Friendica-Instanz hat seinen Account gelöscht. Bitte stelle sicher, dass dessen Daten aus deinen Backups entfernt werden."; +$a->strings["The user id is %d"] = "Die ID des Users lautet %d"; +$a->strings["Remove My Account"] = "Konto löschen"; +$a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Dein Konto wird endgültig gelöscht. Es gibt keine Möglichkeit, es wiederherzustellen."; +$a->strings["Please enter your password for verification:"] = "Bitte gib dein Passwort zur Verifikation ein:"; +$a->strings["Resubscribing to OStatus contacts"] = "Erneuern der OStatus-Abonements"; +$a->strings["Error"] = "Fehler"; +$a->strings["Only logged in users are permitted to perform a search."] = "Nur eingeloggten Benutzern ist das Suchen gestattet."; +$a->strings["Only one search per minute is permitted for not logged in users."] = "Es ist nur eine Suchanfrage pro Minute für nicht eingeloggte Benutzer gestattet."; +$a->strings["Search"] = "Suche"; +$a->strings["Items tagged with: %s"] = "Beiträge, die mit %s getaggt sind"; +$a->strings["Results for: %s"] = "Ergebnisse für: %s"; $a->strings["Account"] = "Nutzerkonto"; +$a->strings["Two-factor authentication"] = "Zwei-Faktor Authentifizierung"; $a->strings["Profiles"] = "Profile"; +$a->strings["Additional features"] = "Zusätzliche Features"; $a->strings["Display"] = "Anzeige"; $a->strings["Social Networks"] = "Soziale Netzwerke"; +$a->strings["Addons"] = "Addons"; $a->strings["Delegations"] = "Delegationen"; $a->strings["Connected apps"] = "Verbundene Programme"; +$a->strings["Export personal data"] = "Persönliche Daten exportieren"; $a->strings["Remove account"] = "Konto löschen"; $a->strings["Missing some important data!"] = "Wichtige Daten fehlen!"; $a->strings["Update"] = "Aktualisierungen"; @@ -1272,6 +774,8 @@ $a->strings["No name"] = "Kein Name"; $a->strings["Remove authorization"] = "Autorisierung entziehen"; $a->strings["No Addon settings configured"] = "Keine Addon-Einstellungen konfiguriert"; $a->strings["Addon Settings"] = "Addon Einstellungen"; +$a->strings["Off"] = "Aus"; +$a->strings["On"] = "An"; $a->strings["Additional Features"] = "Zusätzliche Features"; $a->strings["Diaspora"] = "Diaspora"; $a->strings["enabled"] = "eingeschaltet"; @@ -1305,6 +809,7 @@ $a->strings["Action after import:"] = "Aktion nach Import:"; $a->strings["Mark as seen"] = "Als gelesen markieren"; $a->strings["Move to folder"] = "In einen Ordner verschieben"; $a->strings["Move to folder:"] = "In diesen Ordner verschieben:"; +$a->strings["No special theme for mobile devices"] = "Kein spezielles Theme für mobile Geräte verwenden."; $a->strings["%s - (Unsupported)"] = "%s - (Nicht unterstützt)"; $a->strings["%s - (Experimental)"] = "%s - (Experimentell)"; $a->strings["Sunday"] = "Sonntag"; @@ -1338,13 +843,21 @@ $a->strings["Unable to find your profile. Please contact your admin."] = "Konnte $a->strings["Account Types"] = "Kontenarten"; $a->strings["Personal Page Subtypes"] = "Unterarten der persönlichen Seite"; $a->strings["Community Forum Subtypes"] = "Unterarten des Gemeinschaftsforums"; +$a->strings["Personal Page"] = "Persönliche Seite"; $a->strings["Account for a personal profile."] = "Konto für ein persönliches Profil."; +$a->strings["Organisation Page"] = "Organisationsseite"; $a->strings["Account for an organisation that automatically approves contact requests as \"Followers\"."] = "Konto für eine Organisation, das Kontaktanfragen automatisch als \"Follower\" annimmt."; +$a->strings["News Page"] = "Nachrichtenseite"; $a->strings["Account for a news reflector that automatically approves contact requests as \"Followers\"."] = "Konto für einen Feedspiegel, das Kontaktanfragen automatisch als \"Follower\" annimmt."; +$a->strings["Community Forum"] = "Gemeinschaftsforum"; $a->strings["Account for community discussions."] = "Konto für Diskussionsforen. "; +$a->strings["Normal Account Page"] = "Normales Konto"; $a->strings["Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."] = "Konto für ein normales, persönliches Profil. Kontaktanfragen müssen manuell als \"Friend\" oder \"Follower\" bestätigt werden."; +$a->strings["Soapbox Page"] = "Marktschreier-Konto"; $a->strings["Account for a public profile that automatically approves contact requests as \"Followers\"."] = "Konto für ein öffentliches Profil, das Kontaktanfragen automatisch als \"Follower\" annimmt."; +$a->strings["Public Forum"] = "Öffentliches Forum"; $a->strings["Automatically approves all contact requests."] = "Bestätigt alle Kontaktanfragen automatisch."; +$a->strings["Automatic Friend Page"] = "Automatische Freunde-Seite"; $a->strings["Account for a popular profile that automatically approves contact requests as \"Friends\"."] = "Konto für ein gefragtes Profil, das Kontaktanfragen automatisch als \"Friend\" annimmt."; $a->strings["Private Forum [Experimental]"] = "Privates Forum [Versuchsstadium]"; $a->strings["Requires manual approval of contact requests."] = "Kontaktanfragen müssen manuell bestätigt werden."; @@ -1424,24 +937,180 @@ $a->strings["Change the behaviour of this account for special situations"] = "Ve $a->strings["Relocate"] = "Umziehen"; $a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Wenn du dein Profil von einem anderen Server umgezogen hast und einige deiner Kontakte deine Beiträge nicht erhalten, verwende diesen Button."; $a->strings["Resend relocate message to contacts"] = "Umzugsbenachrichtigung erneut an Kontakte senden"; -$a->strings["default"] = "Standard"; -$a->strings["greenzero"] = "greenzero"; -$a->strings["purplezero"] = "purplezero"; -$a->strings["easterbunny"] = "easterbunny"; -$a->strings["darkzero"] = "darkzero"; -$a->strings["comix"] = "comix"; -$a->strings["slackr"] = "slackr"; -$a->strings["Variations"] = "Variationen"; -$a->strings["Top Banner"] = "Top Banner"; -$a->strings["Resize image to the width of the screen and show background color below on long pages."] = "Skaliere das Hintergrundbild so, dass es die Breite der Seite einnimmt, und fülle den Rest der Seite mit der Hintergrundfarbe bei langen Seiten."; -$a->strings["Full screen"] = "Vollbildmodus"; -$a->strings["Resize image to fill entire screen, clipping either the right or the bottom."] = "Skaliere das Bild so, dass es den gesamten Bildschirm füllt. Hierfür wird entweder die Breite oder die Höhe des Bildes automatisch abgeschnitten."; -$a->strings["Single row mosaic"] = "Mosaik in einer Zeile"; -$a->strings["Resize image to repeat it on a single row, either vertical or horizontal."] = "Skaliere das Bild so, dass es in einer einzelnen Reihe, entweder horizontal oder vertikal, wiederholt wird."; -$a->strings["Mosaic"] = "Mosaik"; -$a->strings["Repeat image to fill the screen."] = "Wiederhole das Bild, um den Bildschirm zu füllen."; -$a->strings["Guest"] = "Gast"; -$a->strings["Visitor"] = "Besucher"; +$a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s folgt %2\$s %3\$s"; +$a->strings["Contact suggestion successfully ignored."] = "Kontaktvorschlag erfolgreich ignoriert."; +$a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Keine Vorschläge verfügbar. Falls der Server frisch aufgesetzt wurde, versuche es bitte in 24 Stunden noch einmal."; +$a->strings["Do you really want to delete this suggestion?"] = "Möchtest du wirklich diese Empfehlung löschen?"; +$a->strings["Ignore/Hide"] = "Ignorieren/Verbergen"; +$a->strings["Friend Suggestions"] = "Kontaktvorschläge"; +$a->strings["Tag(s) removed"] = "Tag(s) entfernt"; +$a->strings["Remove Item Tag"] = "Gegenstands-Tag entfernen"; +$a->strings["Select a tag to remove: "] = "Wähle ein Tag zum Entfernen aus: "; +$a->strings["Export account"] = "Account exportieren"; +$a->strings["Export your account info and contacts. Use this to make a backup of your account and/or to move it to another server."] = "Exportiere Deine Account-Informationen und Kontakte. Verwende dies, um ein Backup Deines Accounts anzulegen und/oder damit auf einen anderen Server umzuziehen."; +$a->strings["Export all"] = "Alles exportieren"; +$a->strings["Export your accout info, contacts and all your items as json. Could be a very big file, and could take a lot of time. Use this to make a full backup of your account (photos are not exported)"] = "Exportiere Deine Account-Informationen, Kontakte und alle Einträge als JSON Datei. Dies könnte eine sehr große Datei werden und dementsprechend viel Zeit benötigen. Verwende dies, um ein komplettes Backup Deines Accounts anzulegen (Fotos werden nicht exportiert)."; +$a->strings["User imports on closed servers can only be done by an administrator."] = "Auf geschlossenen Servern können ausschließlich die Administratoren Benutzerkonten importieren."; +$a->strings["This site has exceeded the number of allowed daily account registrations. Please try again tomorrow."] = "Die maximale Anzahl täglicher Registrierungen auf dieser Seite wurde überschritten. Bitte versuche es morgen noch einmal."; +$a->strings["Import"] = "Import"; +$a->strings["Move account"] = "Account umziehen"; +$a->strings["You can import an account from another Friendica server."] = "Du kannst einen Account von einem anderen Friendica Server importieren."; +$a->strings["You need to export your account from the old server and upload it here. We will recreate your old account here with all your contacts. We will try also to inform your friends that you moved here."] = "Du musst deinen Account vom alten Server exportieren und hier hochladen. Wir stellen deinen alten Account mit all deinen Kontakten wieder her. Wir werden auch versuchen, deine Kontakte darüber zu informieren, dass du hierher umgezogen bist."; +$a->strings["This feature is experimental. We can't import contacts from the OStatus network (GNU Social/Statusnet) or from Diaspora"] = "Dieses Feature ist experimentell. Wir können keine Kontakte vom OStatus-Netzwerk (GNU Social/Statusnet) oder von Diaspora importieren"; +$a->strings["Account file"] = "Account-Datei"; +$a->strings["To export your account, go to \"Settings->Export your personal data\" and select \"Export account\""] = "Um Deinen Account zu exportieren, rufe \"Einstellungen -> Persönliche Daten exportieren\" auf und wähle \"Account exportieren\""; +$a->strings["You aren't following this contact."] = "Du folgst diesem Kontakt."; +$a->strings["Unfollowing is currently not supported by your network."] = "Bei diesem Netzwerk wird das Entfolgen derzeit nicht unterstützt."; +$a->strings["Contact unfollowed"] = "Kontakt wird nicht mehr gefolgt"; +$a->strings["Disconnect/Unfollow"] = "Verbindung lösen/Nicht mehr folgen"; +$a->strings["[Embedded content - reload page to view]"] = "[Eingebetteter Inhalt - Seite neu laden zum Betrachten]"; +$a->strings["No videos selected"] = "Keine Videos ausgewählt"; +$a->strings["View Video"] = "Video ansehen"; +$a->strings["Recent Videos"] = "Neueste Videos"; +$a->strings["Upload New Videos"] = "Neues Video hochladen"; +$a->strings["No contacts."] = "Keine Kontakte."; +$a->strings["Visit %s's profile [%s]"] = "Besuche %ss Profil [%s]"; +$a->strings["Contacts"] = "Kontakte"; +$a->strings["Number of daily wall messages for %s exceeded. Message failed."] = "Maximale Anzahl der täglichen Pinnwand-Nachrichten für %s ist überschritten. Zustellung fehlgeschlagen."; +$a->strings["Unable to check your home location."] = "Konnte Deinen Heimatort nicht bestimmen."; +$a->strings["No recipient."] = "Kein Empfänger."; +$a->strings["If you wish for %s to respond, please check that the privacy settings on your site allow private mail from unknown senders."] = "Wenn du möchtest, dass %s dir antworten kann, überprüfe deine Privatsphären-Einstellungen und erlaube private Nachrichten von unbekannten Absendern."; +$a->strings["Invalid request."] = "Ungültige Anfrage"; +$a->strings["Sorry, maybe your upload is bigger than the PHP configuration allows"] = "Entschuldige, die Datei scheint größer zu sein, als es die PHP-Konfiguration erlaubt."; +$a->strings["Or - did you try to upload an empty file?"] = "Oder - hast du versucht, eine leere Datei hochzuladen?"; +$a->strings["File exceeds size limit of %s"] = "Die Datei ist größer als das erlaubte Limit von %s"; +$a->strings["File upload failed."] = "Hochladen der Datei fehlgeschlagen."; +$a->strings["Wall Photos"] = "Pinnwand-Bilder"; +$a->strings["Delete this item?"] = "Diesen Beitrag löschen?"; +$a->strings["toggle mobile"] = "mobile Ansicht umschalten"; +$a->strings["No system theme config value set."] = "Es wurde kein Konfigurationswert für das systemweite Theme gesetzt."; +$a->strings["You must be logged in to use addons. "] = "Du musst angemeldet sein, um Addons benutzen zu können."; +$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens, wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden)."; +$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Für die URL (%s) konnte kein nicht-archivierter Kontakt gefunden werden"; +$a->strings["The contact entries have been archived"] = "Die Kontakteinträge wurden archiviert."; +$a->strings["Could not find any contact entry for this URL (%s)"] = "Für die URL (%s) konnte kein Kontakt gefunden werden"; +$a->strings["The contact has been blocked from the node"] = "Der Kontakt wurde von diesem Knoten geblockt"; +$a->strings["Enter new password: "] = "Neues Passwort eingeben:"; +$a->strings["Post update version number has been set to %s."] = "Die Post-Update-Versionsnummer wurde auf %s gesetzt."; +$a->strings["Check for pending update actions."] = "Überprüfe ausstehende Update-Aktionen"; +$a->strings["Done."] = "Erledigt."; +$a->strings["Execute pending post updates."] = "Ausstehende Post-Updates ausführen"; +$a->strings["All pending post updates are done."] = "Alle ausstehenden Post-Updates wurden ausgeführt."; +$a->strings["Frequently"] = "immer wieder"; +$a->strings["Hourly"] = "Stündlich"; +$a->strings["Twice daily"] = "Zweimal täglich"; +$a->strings["Daily"] = "Täglich"; +$a->strings["Weekly"] = "Wöchentlich"; +$a->strings["Monthly"] = "Monatlich"; +$a->strings["DFRN"] = "DFRN"; +$a->strings["OStatus"] = "OStatus"; +$a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "E-Mail"; +$a->strings["Zot!"] = "Zott"; +$a->strings["LinkedIn"] = "LinkedIn"; +$a->strings["XMPP/IM"] = "XMPP/Chat"; +$a->strings["MySpace"] = "MySpace"; +$a->strings["Google+"] = "Google+"; +$a->strings["pump.io"] = "pump.io"; +$a->strings["Twitter"] = "Twitter"; +$a->strings["Diaspora Connector"] = "Diaspora Connector"; +$a->strings["GNU Social Connector"] = "GNU Social Connector"; +$a->strings["ActivityPub"] = "ActivityPub"; +$a->strings["pnut"] = "pnut"; +$a->strings["No answer"] = "Keine Antwort"; +$a->strings["Male"] = "Männlich"; +$a->strings["Female"] = "Weiblich"; +$a->strings["Currently Male"] = "Momentan männlich"; +$a->strings["Currently Female"] = "Momentan weiblich"; +$a->strings["Mostly Male"] = "Hauptsächlich männlich"; +$a->strings["Mostly Female"] = "Hauptsächlich weiblich"; +$a->strings["Transgender"] = "Transgender"; +$a->strings["Intersex"] = "Intersex"; +$a->strings["Transsexual"] = "Transsexuell"; +$a->strings["Hermaphrodite"] = "Hermaphrodit"; +$a->strings["Neuter"] = "Neuter"; +$a->strings["Non-specific"] = "Nicht spezifiziert"; +$a->strings["Other"] = "Andere"; +$a->strings["Males"] = "Männer"; +$a->strings["Females"] = "Frauen"; +$a->strings["Gay"] = "Schwul"; +$a->strings["Lesbian"] = "Lesbisch"; +$a->strings["No Preference"] = "Keine Vorlieben"; +$a->strings["Bisexual"] = "Bisexuell"; +$a->strings["Autosexual"] = "Autosexuell"; +$a->strings["Abstinent"] = "Abstinent"; +$a->strings["Virgin"] = "Jungfrauen"; +$a->strings["Deviant"] = "Deviant"; +$a->strings["Fetish"] = "Fetish"; +$a->strings["Oodles"] = "Oodles"; +$a->strings["Nonsexual"] = "Nonsexual"; +$a->strings["Single"] = "Single"; +$a->strings["Lonely"] = "Einsam"; +$a->strings["Available"] = "Verfügbar"; +$a->strings["Unavailable"] = "Nicht verfügbar"; +$a->strings["Has crush"] = "verknallt"; +$a->strings["Infatuated"] = "verliebt"; +$a->strings["Dating"] = "Dating"; +$a->strings["Unfaithful"] = "Untreu"; +$a->strings["Sex Addict"] = "Sexbesessen"; +$a->strings["Friends"] = "Kontakte"; +$a->strings["Friends/Benefits"] = "Freunde/Zuwendungen"; +$a->strings["Casual"] = "Casual"; +$a->strings["Engaged"] = "Verlobt"; +$a->strings["Married"] = "Verheiratet"; +$a->strings["Imaginarily married"] = "imaginär verheiratet"; +$a->strings["Partners"] = "Partner"; +$a->strings["Cohabiting"] = "zusammenlebend"; +$a->strings["Common law"] = "wilde Ehe"; +$a->strings["Happy"] = "Glücklich"; +$a->strings["Not looking"] = "Nicht auf der Suche"; +$a->strings["Swinger"] = "Swinger"; +$a->strings["Betrayed"] = "Betrogen"; +$a->strings["Separated"] = "Getrennt"; +$a->strings["Unstable"] = "Unstabil"; +$a->strings["Divorced"] = "Geschieden"; +$a->strings["Imaginarily divorced"] = "Imaginär geschieden"; +$a->strings["Widowed"] = "Verwitwet"; +$a->strings["Uncertain"] = "Unsicher"; +$a->strings["It's complicated"] = "Ist kompliziert"; +$a->strings["Don't care"] = "Ist mir nicht wichtig"; +$a->strings["Ask me"] = "Frag mich"; +$a->strings["General Features"] = "Allgemeine Features"; +$a->strings["Multiple Profiles"] = "Mehrere Profile"; +$a->strings["Ability to create multiple profiles"] = "Möglichkeit, mehrere Profile zu erstellen"; +$a->strings["Photo Location"] = "Aufnahmeort"; +$a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden."; +$a->strings["Export Public Calendar"] = "Öffentlichen Kalender exportieren"; +$a->strings["Ability for visitors to download the public calendar"] = "Möglichkeit für Besucher, den öffentlichen Kalender herunter zu laden"; +$a->strings["Post Composition Features"] = "Beitragserstellung-Features"; +$a->strings["Auto-mention Forums"] = "Foren automatisch erwähnen"; +$a->strings["Add/remove mention when a forum page is selected/deselected in ACL window."] = "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde."; +$a->strings["Explicit Mentions"] = "Explizite Erwähnungen"; +$a->strings["Add explicit mentions to comment box for manual control over who gets mentioned in replies."] = "Füge Erwähnungen zum Kommentarfeld hinzu, um manuell über die explizite Erwähnung von Gesprächsteilnehmern zu entscheiden."; +$a->strings["Network Sidebar"] = "Netzwerk-Seitenleiste"; +$a->strings["Ability to select posts by date ranges"] = "Möglichkeit, die Beiträge nach Datumsbereichen zu sortieren"; +$a->strings["Protocol Filter"] = "Protokoll-Filter"; +$a->strings["Enable widget to display Network posts only from selected protocols"] = "Aktiviere Widget, um Netzwerkbeiträge nur von ausgesuchten Protokollen anzuzeigen"; +$a->strings["Network Tabs"] = "Netzwerk-Reiter"; +$a->strings["Network New Tab"] = "Netzwerk-Reiter: Neue"; +$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = "Aktiviert einen Netzwerk-Reiter, in dem ausschließlich neue Beiträge (der letzten 12 Stunden) angezeigt werden"; +$a->strings["Network Shared Links Tab"] = "Netzwerk-Reiter: Geteilte Links"; +$a->strings["Enable tab to display only Network posts with links in them"] = "Aktiviert einen Netzwerk-Reiter, der ausschließlich Nachrichten mit Links enthält"; +$a->strings["Post/Comment Tools"] = "Werkzeuge für Beiträge und Kommentare"; +$a->strings["Post Categories"] = "Beitragskategorien"; +$a->strings["Add categories to your posts"] = "Eigene Beiträge mit Kategorien versehen"; +$a->strings["Advanced Profile Settings"] = "Erweiterte Profil-Einstellungen"; +$a->strings["List Forums"] = "Zeige Foren"; +$a->strings["Show visitors public community forums at the Advanced Profile Page"] = "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite"; +$a->strings["Tag Cloud"] = "Schlagwortwolke"; +$a->strings["Provide a personal tag cloud on your profile page"] = "Wortwolke aus den von dir verwendeten Schlagwörtern im Profil anzeigen"; +$a->strings["Display Membership Date"] = "Mitgliedschaftsdatum anzeigen"; +$a->strings["Display membership date in profile"] = "Das Datum der Registrierung deines Accounts im Profil anzeigen"; +$a->strings["Forums"] = "Foren"; +$a->strings["External link to forum"] = "Externer Link zum Forum"; +$a->strings["Nothing new here"] = "Keine Neuigkeiten"; +$a->strings["Clear notifications"] = "Bereinige Benachrichtigungen"; +$a->strings["@name, !forum, #tags, content"] = "@name, !forum, #tags, content"; $a->strings["Logout"] = "Abmelden"; $a->strings["End this session"] = "Diese Sitzung beenden"; $a->strings["Status"] = "Status"; @@ -1451,71 +1120,109 @@ $a->strings["Your photos"] = "Deine Fotos"; $a->strings["Videos"] = "Videos"; $a->strings["Your videos"] = "Deine Videos"; $a->strings["Your events"] = "Deine Ereignisse"; +$a->strings["Personal notes"] = "Persönliche Notizen"; +$a->strings["Your personal notes"] = "Deine persönlichen Notizen"; +$a->strings["Login"] = "Anmeldung"; +$a->strings["Sign in"] = "Anmelden"; +$a->strings["Home"] = "Pinnwand"; +$a->strings["Home Page"] = "Homepage"; +$a->strings["Register"] = "Registrieren"; +$a->strings["Create an account"] = "Nutzerkonto erstellen"; +$a->strings["Help"] = "Hilfe"; +$a->strings["Help and documentation"] = "Hilfe und Dokumentation"; +$a->strings["Apps"] = "Apps"; +$a->strings["Addon applications, utilities, games"] = "Zusätzliche Anwendungen, Dienstprogramme, Spiele"; +$a->strings["Search site content"] = "Inhalt der Seite durchsuchen"; +$a->strings["Full Text"] = "Volltext"; +$a->strings["Tags"] = "Tags"; +$a->strings["Community"] = "Gemeinschaft"; +$a->strings["Conversations on this and other servers"] = "Unterhaltungen auf diesem und anderen Servern"; +$a->strings["Events and Calendar"] = "Ereignisse und Kalender"; +$a->strings["Directory"] = "Verzeichnis"; +$a->strings["People directory"] = "Nutzerverzeichnis"; +$a->strings["Information"] = "Information"; +$a->strings["Information about this friendica instance"] = "Informationen zu dieser Friendica-Instanz"; +$a->strings["Terms of Service"] = "Nutzungsbedingungen"; +$a->strings["Terms of Service of this Friendica instance"] = "Die Nutzungsbedingungen dieser Friendica-Instanz"; $a->strings["Network"] = "Netzwerk"; $a->strings["Conversations from your friends"] = "Unterhaltungen Deiner Kontakte"; -$a->strings["Events and Calendar"] = "Ereignisse und Kalender"; +$a->strings["Network Reset"] = "Netzwerk zurücksetzen"; +$a->strings["Load Network page with no filters"] = "Netzwerk-Seite ohne Filter laden"; +$a->strings["Introductions"] = "Kontaktanfragen"; +$a->strings["Friend Requests"] = "Kontaktanfragen"; +$a->strings["See all notifications"] = "Alle Benachrichtigungen anzeigen"; +$a->strings["Mark all system notifications seen"] = "Markiere alle Systembenachrichtigungen als gelesen"; $a->strings["Private mail"] = "Private E-Mail"; +$a->strings["Inbox"] = "Eingang"; +$a->strings["Outbox"] = "Ausgang"; +$a->strings["Manage"] = "Verwalten"; +$a->strings["Manage other pages"] = "Andere Seiten verwalten"; $a->strings["Account settings"] = "Kontoeinstellungen"; +$a->strings["Manage/Edit Profiles"] = "Profile verwalten/editieren"; $a->strings["Manage/edit friends and contacts"] = "Freunde und Kontakte verwalten/bearbeiten"; -$a->strings["Custom"] = "Benutzerdefiniert"; -$a->strings["Note"] = "Hinweis"; -$a->strings["Check image permissions if all users are allowed to see the image"] = "Überprüfe, dass alle Benutzer die Berechtigung haben dieses Bild anzusehen"; -$a->strings["Select color scheme"] = "Farbschema auswählen"; -$a->strings["Copy or paste schemestring"] = "Farbschema kopieren oder einfügen"; -$a->strings["You can copy this string to share your theme with others. Pasting here applies the schemestring"] = "Du kannst den String mit den Farbschema Informationen mit anderen Teilen. Wenn du einen neuen Farbschema-String hier einfügst wird er für deine Einstellungen übernommen."; -$a->strings["Navigation bar background color"] = "Hintergrundfarbe der Navigationsleiste"; -$a->strings["Navigation bar icon color "] = "Icon Farbe in der Navigationsleiste"; -$a->strings["Link color"] = "Linkfarbe"; -$a->strings["Set the background color"] = "Hintergrundfarbe festlegen"; -$a->strings["Content background opacity"] = "Opazität des Hintergrunds von Beiträgen"; -$a->strings["Set the background image"] = "Hintergrundbild festlegen"; -$a->strings["Background image style"] = "Stil des Hintergrundbildes"; -$a->strings["Login page background image"] = "Hintergrundbild der Login-Seite"; -$a->strings["Login page background color"] = "Hintergrundfarbe der Login-Seite"; -$a->strings["Leave background image and color empty for theme defaults"] = "Wenn die Theme-Vorgaben verwendet werden sollen, lass bitte die Felder für die Hintergrundfarbe und das Hintergrundbild leer."; -$a->strings["Alignment"] = "Ausrichtung"; -$a->strings["Left"] = "Links"; -$a->strings["Center"] = "Mitte"; -$a->strings["Color scheme"] = "Farbschema"; -$a->strings["Posts font size"] = "Schriftgröße in Beiträgen"; -$a->strings["Textareas font size"] = "Schriftgröße in Eingabefeldern"; -$a->strings["Comma separated list of helper forums"] = "Komma-separierte Liste der Helfer-Foren"; -$a->strings["don't show"] = "nicht zeigen"; -$a->strings["show"] = "zeigen"; -$a->strings["Set style"] = "Stil auswählen"; -$a->strings["Community Pages"] = "Foren"; -$a->strings["Community Profiles"] = "Community-Profile"; -$a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere"; -$a->strings["Connect Services"] = "Verbinde Dienste"; -$a->strings["Find Friends"] = "Kontakte finden"; -$a->strings["Last users"] = "Letzte Nutzer"; +$a->strings["Admin"] = "Administration"; +$a->strings["Site setup and configuration"] = "Einstellungen der Seite und Konfiguration"; +$a->strings["Navigation"] = "Navigation"; +$a->strings["Site map"] = "Sitemap"; +$a->strings["Embedding disabled"] = "Einbettungen deaktiviert"; +$a->strings["Embedded content"] = "Eingebetteter Inhalt"; +$a->strings["newer"] = "neuer"; +$a->strings["older"] = "älter"; +$a->strings["prev"] = "vorige"; +$a->strings["last"] = "letzte"; +$a->strings["view full size"] = "Volle Größe anzeigen"; +$a->strings["Image/photo"] = "Bild/Foto"; +$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; +$a->strings["$1 wrote:"] = "$1 hat geschrieben:"; +$a->strings["Encrypted content"] = "Verschlüsselter Inhalt"; +$a->strings["Invalid source protocol"] = "Ungültiges Quell-Protokoll"; +$a->strings["Invalid link protocol"] = "Ungültiges Link-Protokoll"; +$a->strings["Loading more entries..."] = "lade weitere Einträge..."; +$a->strings["The end"] = "Das Ende"; +$a->strings["Follow"] = "Folge"; +$a->strings["Click to open/close"] = "Zum Öffnen/Schließen klicken"; +$a->strings["Export"] = "Exportieren"; +$a->strings["Export calendar as ical"] = "Kalender als ical exportieren"; +$a->strings["Export calendar as csv"] = "Kalender als csv exportieren"; +$a->strings["No contacts"] = "Keine Kontakte"; +$a->strings["%d Contact"] = [ + 0 => "%d Kontakt", + 1 => "%d Kontakte", +]; +$a->strings["View Contacts"] = "Kontakte anzeigen"; +$a->strings["Add New Contact"] = "Neuen Kontakt hinzufügen"; +$a->strings["Enter address or web location"] = "Adresse oder Web-Link eingeben"; +$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Beispiel: bob@example.com, http://example.com/barbara"; +$a->strings["%d invitation available"] = [ + 0 => "%d Einladung verfügbar", + 1 => "%d Einladungen verfügbar", +]; $a->strings["Find People"] = "Leute finden"; $a->strings["Enter name or interest"] = "Name oder Interessen eingeben"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Beispiel: Robert Morgenstein, Angeln"; +$a->strings["Find"] = "Finde"; $a->strings["Similar Interests"] = "Ähnliche Interessen"; $a->strings["Random Profile"] = "Zufälliges Profil"; $a->strings["Invite Friends"] = "Freunde einladen"; +$a->strings["Global Directory"] = "Weltweites Verzeichnis"; $a->strings["Local Directory"] = "Lokales Verzeichnis"; -$a->strings["Forums"] = "Foren"; -$a->strings["External link to forum"] = "Externer Link zum Forum"; -$a->strings["Quick Start"] = "Schnell-Start"; -$a->strings["Enter new password: "] = "Neues Passwort eingeben:"; -$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Für die URL (%s) konnte kein nicht-archivierter Kontakt gefunden werden"; -$a->strings["The contact entries have been archived"] = "Die Kontakteinträge wurden archiviert."; -$a->strings["Post update version number has been set to %s."] = "Die Post-Update-Versionsnummer wurde auf %s gesetzt."; -$a->strings["Check for pending update actions."] = "Überprüfe ausstehende Update-Aktionen"; -$a->strings["Done."] = "Erledigt."; -$a->strings["Execute pending post updates."] = "Ausstehende Post-Updates ausführen"; -$a->strings["All pending post updates are done."] = "Alle ausstehenden Post-Updates wurden ausgeführt."; +$a->strings["Protocols"] = "Protokolle"; +$a->strings["All Protocols"] = "Alle Protokolle"; +$a->strings["Saved Folders"] = "Gespeicherte Ordner"; +$a->strings["Everything"] = "Alles"; +$a->strings["Categories"] = "Kategorien"; +$a->strings["%d contact in common"] = [ + 0 => "%d gemeinsamer Kontakt", + 1 => "%d gemeinsame Kontakte", +]; $a->strings["Post to Email"] = "An E-Mail senden"; $a->strings["Visible to everybody"] = "Für jeden sichtbar"; +$a->strings["show"] = "zeigen"; +$a->strings["don't show"] = "nicht zeigen"; $a->strings["Connectors"] = "Connectoren"; $a->strings["Hide your profile details from unknown viewers?"] = "Profil-Details vor unbekannten Betrachtern verbergen?"; $a->strings["Connectors disabled, since \"%s\" is enabled."] = "Konnektoren sind nicht verfügbar, da \"%s\" aktiv ist."; $a->strings["Close"] = "Schließen"; -$a->strings["Welcome "] = "Willkommen "; -$a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch."; -$a->strings["Welcome back "] = "Willkommen zurück "; $a->strings["The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "Die Datenbankkonfigurationsdatei \"config/local.config.php\" konnte nicht erstellt werden. Um eine Konfigurationsdatei in Ihrem Webserver-Verzeichnis zu erstellen, gehe wie folgt vor."; $a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Möglicherweise musst du die Datei \"database.sql\" manuell mit phpmyadmin oder mysql importieren."; $a->strings["Please see the file \"INSTALL.txt\"."] = "Lies bitte die \"INSTALL.txt\"."; @@ -1621,8 +1328,6 @@ $a->strings["fingered"] = "befummelte"; $a->strings["rebuff"] = "eine Abfuhr erteilen"; $a->strings["rebuffed"] = "abfuhrerteilte"; $a->strings["System"] = "System"; -$a->strings["Home"] = "Pinnwand"; -$a->strings["Introductions"] = "Kontaktanfragen"; $a->strings["%s commented on %s's post"] = "%s hat %ss Beitrag kommentiert"; $a->strings["%s created a new post"] = "%s hat einen neuen Beitrag erstellt"; $a->strings["%s liked %s's post"] = "%s mag %ss Beitrag"; @@ -1634,18 +1339,9 @@ $a->strings["%s is now friends with %s"] = "%s ist jetzt mit %s befreundet"; $a->strings["Friend Suggestion"] = "Kontaktvorschlag"; $a->strings["Friend/Connect Request"] = "Kontakt-/Freundschaftsanfrage"; $a->strings["New Follower"] = "Neuer Bewunderer"; -$a->strings["Error 400 - Bad Request"] = "Error 400 - Bad Request"; -$a->strings["Error 401 - Unauthorized"] = "Error 401 - Unauthorized"; -$a->strings["Error 403 - Forbidden"] = "Error 403 - Forbidden"; -$a->strings["Error 404 - Not Found"] = "Error 404 - Not Found"; -$a->strings["Error 500 - Internal Server Error"] = "Error 500 - Internal Server Error"; -$a->strings["Error 503 - Service Unavailable"] = "Error 503 - Service Unavailable"; -$a->strings["The server cannot or will not process the request due to an apparent client error."] = "Aufgrund eines offensichtlichen Fehlers auf der Seite des Clients kann oder wird der Server die Anfrage nicht bearbeiten."; -$a->strings["Authentication is required and has failed or has not yet been provided."] = "Die erforderliche Authentifizierung ist fehlgeschlagen oder noch nicht erfolgt."; -$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "Die Anfrage war gültig, aber der Server verweigert die Ausführung. Der Benutzer verfügt möglicherweise nicht über die erforderlichen Berechtigungen oder benötigt ein Nutzerkonto."; -$a->strings["The requested resource could not be found but may be available in the future."] = "Die angeforderte Ressource konnte nicht gefunden werden, sie könnte allerdings zu einem späteren Zeitpunkt verfügbar sein."; -$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "Eine unerwartete Situation ist eingetreten, zu der keine detailliertere Nachricht vorliegt."; -$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "Der Server ist derzeit nicht verfügbar (wegen Überlastung oder Wartungsarbeiten). Bitte versuche es später noch einmal."; +$a->strings["Welcome %s"] = "Willkommen %s"; +$a->strings["Please upload a profile photo."] = "Bitte lade ein Profilbild hoch."; +$a->strings["Welcome back %s"] = "Willkommen zurück %s"; $a->strings["Update %s failed. See error logs."] = "Update %s fehlgeschlagen. Bitte Fehlerprotokoll überprüfen."; $a->strings["\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\nDie Friendica-Entwickler haben vor kurzem das Update %s veröffentlicht, aber bei der Installation ging etwas schrecklich schief.\n\nDas Problem sollte so schnell wie möglich gelöst werden, aber ich schaffe es nicht alleine. Bitte kontaktiere einen Friendica-Entwickler, falls du mir nicht alleine helfen kannst. Meine Datenbank könnte ungültig sein."; $a->strings["The error message is\n[pre]%s[/pre]"] = "Die Fehlermeldung lautet\n[pre]%s[/pre]"; @@ -1661,222 +1357,12 @@ $a->strings["%d contact not imported"] = [ 1 => "%d Kontakte nicht importiert", ]; $a->strings["Done. You can now login with your username and password"] = "Erledigt. Du kannst dich jetzt mit deinem Nutzernamen und Passwort anmelden"; -$a->strings["Birthday:"] = "Geburtstag:"; -$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD oder MM-DD"; -$a->strings["never"] = "nie"; -$a->strings["less than a second ago"] = "vor weniger als einer Sekunde"; -$a->strings["year"] = "Jahr"; -$a->strings["years"] = "Jahre"; -$a->strings["months"] = "Monate"; -$a->strings["weeks"] = "Wochen"; -$a->strings["days"] = "Tage"; -$a->strings["hour"] = "Stunde"; -$a->strings["hours"] = "Stunden"; -$a->strings["minute"] = "Minute"; -$a->strings["minutes"] = "Minuten"; -$a->strings["second"] = "Sekunde"; -$a->strings["seconds"] = "Sekunden"; -$a->strings["in %1\$d %2\$s"] = "in %1\$d %2\$s"; -$a->strings["%1\$d %2\$s ago"] = "vor %1\$d %2\$s"; -$a->strings["Loading more entries..."] = "lade weitere Einträge..."; -$a->strings["The end"] = "Das Ende"; -$a->strings["Follow"] = "Folge"; -$a->strings["@name, !forum, #tags, content"] = "@name, !forum, #tags, content"; -$a->strings["Full Text"] = "Volltext"; -$a->strings["Tags"] = "Tags"; -$a->strings["Click to open/close"] = "Zum Öffnen/Schließen klicken"; -$a->strings["view full size"] = "Volle Größe anzeigen"; -$a->strings["Image/photo"] = "Bild/Foto"; -$a->strings["%2\$s %3\$s"] = "%2\$s %3\$s"; -$a->strings["$1 wrote:"] = "$1 hat geschrieben:"; -$a->strings["Encrypted content"] = "Verschlüsselter Inhalt"; -$a->strings["Invalid source protocol"] = "Ungültiges Quell-Protokoll"; -$a->strings["Invalid link protocol"] = "Ungültiges Link-Protokoll"; -$a->strings["Export"] = "Exportieren"; -$a->strings["Export calendar as ical"] = "Kalender als ical exportieren"; -$a->strings["Export calendar as csv"] = "Kalender als csv exportieren"; -$a->strings["No contacts"] = "Keine Kontakte"; -$a->strings["%d Contact"] = [ - 0 => "%d Kontakt", - 1 => "%d Kontakte", -]; -$a->strings["View Contacts"] = "Kontakte anzeigen"; -$a->strings["General Features"] = "Allgemeine Features"; -$a->strings["Multiple Profiles"] = "Mehrere Profile"; -$a->strings["Ability to create multiple profiles"] = "Möglichkeit, mehrere Profile zu erstellen"; -$a->strings["Photo Location"] = "Aufnahmeort"; -$a->strings["Photo metadata is normally stripped. This extracts the location (if present) prior to stripping metadata and links it to a map."] = "Die Foto-Metadaten werden ausgelesen. Dadurch kann der Aufnahmeort (wenn vorhanden) in einer Karte angezeigt werden."; -$a->strings["Export Public Calendar"] = "Öffentlichen Kalender exportieren"; -$a->strings["Ability for visitors to download the public calendar"] = "Möglichkeit für Besucher, den öffentlichen Kalender herunter zu laden"; -$a->strings["Post Composition Features"] = "Beitragserstellung-Features"; -$a->strings["Auto-mention Forums"] = "Foren automatisch erwähnen"; -$a->strings["Add/remove mention when a forum page is selected/deselected in ACL window."] = "Automatisch eine @-Erwähnung eines Forums einfügen/entfehrnen, wenn dieses im ACL Fenster de-/markiert wurde."; -$a->strings["Explicit Mentions"] = "Explizite Erwähnungen"; -$a->strings["Add explicit mentions to comment box for manual control over who gets mentioned in replies."] = "Füge Erwähnungen zum Kommentarfeld hinzu, um manuell über die explizite Erwähnung von Gesprächsteilnehmern zu entscheiden."; -$a->strings["Network Sidebar"] = "Netzwerk-Seitenleiste"; -$a->strings["Ability to select posts by date ranges"] = "Möglichkeit, die Beiträge nach Datumsbereichen zu sortieren"; -$a->strings["Protocol Filter"] = "Protokoll-Filter"; -$a->strings["Enable widget to display Network posts only from selected protocols"] = "Aktiviere Widget, um Netzwerkbeiträge nur von ausgesuchten Protokollen anzuzeigen"; -$a->strings["Network Tabs"] = "Netzwerk-Reiter"; -$a->strings["Network New Tab"] = "Netzwerk-Reiter: Neue"; -$a->strings["Enable tab to display only new Network posts (from the last 12 hours)"] = "Aktiviert einen Netzwerk-Reiter, in dem ausschließlich neue Beiträge (der letzten 12 Stunden) angezeigt werden"; -$a->strings["Network Shared Links Tab"] = "Netzwerk-Reiter: Geteilte Links"; -$a->strings["Enable tab to display only Network posts with links in them"] = "Aktiviert einen Netzwerk-Reiter, der ausschließlich Nachrichten mit Links enthält"; -$a->strings["Post/Comment Tools"] = "Werkzeuge für Beiträge und Kommentare"; -$a->strings["Post Categories"] = "Beitragskategorien"; -$a->strings["Add categories to your posts"] = "Eigene Beiträge mit Kategorien versehen"; -$a->strings["Advanced Profile Settings"] = "Erweiterte Profil-Einstellungen"; -$a->strings["List Forums"] = "Zeige Foren"; -$a->strings["Show visitors public community forums at the Advanced Profile Page"] = "Zeige Besuchern öffentliche Gemeinschafts-Foren auf der Erweiterten Profil-Seite"; -$a->strings["Tag Cloud"] = "Schlagwortwolke"; -$a->strings["Provide a personal tag cloud on your profile page"] = "Wortwolke aus den von dir verwendeten Schlagwörtern im Profil anzeigen"; -$a->strings["Display Membership Date"] = "Mitgliedschaftsdatum anzeigen"; -$a->strings["Display membership date in profile"] = "Das Datum der Registrierung deines Accounts im Profil anzeigen"; -$a->strings["Nothing new here"] = "Keine Neuigkeiten"; -$a->strings["Clear notifications"] = "Bereinige Benachrichtigungen"; -$a->strings["Personal notes"] = "Persönliche Notizen"; -$a->strings["Your personal notes"] = "Deine persönlichen Notizen"; -$a->strings["Sign in"] = "Anmelden"; -$a->strings["Home Page"] = "Homepage"; -$a->strings["Register"] = "Registrieren"; -$a->strings["Create an account"] = "Nutzerkonto erstellen"; -$a->strings["Help and documentation"] = "Hilfe und Dokumentation"; -$a->strings["Apps"] = "Apps"; -$a->strings["Addon applications, utilities, games"] = "Zusätzliche Anwendungen, Dienstprogramme, Spiele"; -$a->strings["Search site content"] = "Inhalt der Seite durchsuchen"; -$a->strings["Community"] = "Gemeinschaft"; -$a->strings["Conversations on this and other servers"] = "Unterhaltungen auf diesem und anderen Servern"; -$a->strings["Directory"] = "Verzeichnis"; -$a->strings["People directory"] = "Nutzerverzeichnis"; -$a->strings["Information about this friendica instance"] = "Informationen zu dieser Friendica-Instanz"; -$a->strings["Terms of Service of this Friendica instance"] = "Die Nutzungsbedingungen dieser Friendica-Instanz"; -$a->strings["Network Reset"] = "Netzwerk zurücksetzen"; -$a->strings["Load Network page with no filters"] = "Netzwerk-Seite ohne Filter laden"; -$a->strings["Friend Requests"] = "Kontaktanfragen"; -$a->strings["See all notifications"] = "Alle Benachrichtigungen anzeigen"; -$a->strings["Mark all system notifications seen"] = "Markiere alle Systembenachrichtigungen als gelesen"; -$a->strings["Inbox"] = "Eingang"; -$a->strings["Outbox"] = "Ausgang"; -$a->strings["Manage"] = "Verwalten"; -$a->strings["Manage other pages"] = "Andere Seiten verwalten"; -$a->strings["Manage/Edit Profiles"] = "Profile verwalten/editieren"; -$a->strings["Site setup and configuration"] = "Einstellungen der Seite und Konfiguration"; -$a->strings["Navigation"] = "Navigation"; -$a->strings["Site map"] = "Sitemap"; -$a->strings["Embedding disabled"] = "Einbettungen deaktiviert"; -$a->strings["Embedded content"] = "Eingebetteter Inhalt"; -$a->strings["newer"] = "neuer"; -$a->strings["older"] = "älter"; -$a->strings["prev"] = "vorige"; -$a->strings["last"] = "letzte"; -$a->strings["Add New Contact"] = "Neuen Kontakt hinzufügen"; -$a->strings["Enter address or web location"] = "Adresse oder Web-Link eingeben"; -$a->strings["Example: bob@example.com, http://example.com/barbara"] = "Beispiel: bob@example.com, http://example.com/barbara"; -$a->strings["%d invitation available"] = [ - 0 => "%d Einladung verfügbar", - 1 => "%d Einladungen verfügbar", -]; -$a->strings["Protocols"] = "Protokolle"; -$a->strings["All Protocols"] = "Alle Protokolle"; -$a->strings["Saved Folders"] = "Gespeicherte Ordner"; -$a->strings["Everything"] = "Alles"; -$a->strings["Categories"] = "Kategorien"; -$a->strings["%d contact in common"] = [ - 0 => "%d gemeinsamer Kontakt", - 1 => "%d gemeinsame Kontakte", -]; -$a->strings["Frequently"] = "immer wieder"; -$a->strings["Hourly"] = "Stündlich"; -$a->strings["Twice daily"] = "Zweimal täglich"; -$a->strings["Daily"] = "Täglich"; -$a->strings["Weekly"] = "Wöchentlich"; -$a->strings["Monthly"] = "Monatlich"; -$a->strings["DFRN"] = "DFRN"; -$a->strings["OStatus"] = "OStatus"; -$a->strings["RSS/Atom"] = "RSS/Atom"; -$a->strings["Zot!"] = "Zott"; -$a->strings["LinkedIn"] = "LinkedIn"; -$a->strings["XMPP/IM"] = "XMPP/Chat"; -$a->strings["MySpace"] = "MySpace"; -$a->strings["Google+"] = "Google+"; -$a->strings["pump.io"] = "pump.io"; -$a->strings["Twitter"] = "Twitter"; -$a->strings["Diaspora Connector"] = "Diaspora Connector"; -$a->strings["GNU Social Connector"] = "GNU Social Connector"; -$a->strings["ActivityPub"] = "ActivityPub"; -$a->strings["pnut"] = "pnut"; -$a->strings["No answer"] = "Keine Antwort"; -$a->strings["Male"] = "Männlich"; -$a->strings["Female"] = "Weiblich"; -$a->strings["Currently Male"] = "Momentan männlich"; -$a->strings["Currently Female"] = "Momentan weiblich"; -$a->strings["Mostly Male"] = "Hauptsächlich männlich"; -$a->strings["Mostly Female"] = "Hauptsächlich weiblich"; -$a->strings["Transgender"] = "Transgender"; -$a->strings["Intersex"] = "Intersex"; -$a->strings["Transsexual"] = "Transsexuell"; -$a->strings["Hermaphrodite"] = "Hermaphrodit"; -$a->strings["Neuter"] = "Neuter"; -$a->strings["Non-specific"] = "Nicht spezifiziert"; -$a->strings["Other"] = "Andere"; -$a->strings["Males"] = "Männer"; -$a->strings["Females"] = "Frauen"; -$a->strings["Gay"] = "Schwul"; -$a->strings["Lesbian"] = "Lesbisch"; -$a->strings["No Preference"] = "Keine Vorlieben"; -$a->strings["Bisexual"] = "Bisexuell"; -$a->strings["Autosexual"] = "Autosexuell"; -$a->strings["Abstinent"] = "Abstinent"; -$a->strings["Virgin"] = "Jungfrauen"; -$a->strings["Deviant"] = "Deviant"; -$a->strings["Fetish"] = "Fetish"; -$a->strings["Oodles"] = "Oodles"; -$a->strings["Nonsexual"] = "Nonsexual"; -$a->strings["Single"] = "Single"; -$a->strings["Lonely"] = "Einsam"; -$a->strings["Available"] = "Verfügbar"; -$a->strings["Unavailable"] = "Nicht verfügbar"; -$a->strings["Has crush"] = "verknallt"; -$a->strings["Infatuated"] = "verliebt"; -$a->strings["Dating"] = "Dating"; -$a->strings["Unfaithful"] = "Untreu"; -$a->strings["Sex Addict"] = "Sexbesessen"; -$a->strings["Friends"] = "Kontakte"; -$a->strings["Friends/Benefits"] = "Freunde/Zuwendungen"; -$a->strings["Casual"] = "Casual"; -$a->strings["Engaged"] = "Verlobt"; -$a->strings["Married"] = "Verheiratet"; -$a->strings["Imaginarily married"] = "imaginär verheiratet"; -$a->strings["Partners"] = "Partner"; -$a->strings["Cohabiting"] = "zusammenlebend"; -$a->strings["Common law"] = "wilde Ehe"; -$a->strings["Happy"] = "Glücklich"; -$a->strings["Not looking"] = "Nicht auf der Suche"; -$a->strings["Swinger"] = "Swinger"; -$a->strings["Betrayed"] = "Betrogen"; -$a->strings["Separated"] = "Getrennt"; -$a->strings["Unstable"] = "Unstabil"; -$a->strings["Divorced"] = "Geschieden"; -$a->strings["Imaginarily divorced"] = "Imaginär geschieden"; -$a->strings["Widowed"] = "Verwitwet"; -$a->strings["Uncertain"] = "Unsicher"; -$a->strings["It's complicated"] = "Ist kompliziert"; -$a->strings["Don't care"] = "Ist mir nicht wichtig"; -$a->strings["Ask me"] = "Frag mich"; $a->strings["There are no tables on MyISAM."] = "Es gibt keine MyISAM-Tabellen."; $a->strings["\nError %d occurred during database update:\n%s\n"] = "\nFehler %d beim Update der Datenbank aufgetreten\n%s\n"; $a->strings["Errors encountered performing database changes: "] = "Fehler beim Ändern der Datenbank aufgetreten"; $a->strings["%s: Database update"] = "%s: Datenbank Aktualisierung"; $a->strings["%s: updating %s table."] = "%s: aktualisiere Tabelle %s"; -$a->strings["Item filed"] = "Beitrag abgelegt"; -$a->strings["[no subject]"] = "[kein Betreff]"; -$a->strings["Filesystem storage failed to create \"%s\". Check you write permissions."] = "Dateisystemspeicher konnte nicht erstellt werden \"%s\". Überprüfe, ob du Schreibberechtigungen hast."; -$a->strings["Filesystem storage failed to save data to \"%s\". Check your write permissions"] = "Der Dateisystemspeicher konnte die Daten nicht in \"%s\" speichern. Überprüfe Deine Schreibberechtigungen"; -$a->strings["Storage base path"] = "Dateipfad zum Speicher"; -$a->strings["Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree"] = "Verzeichnis, in das Dateien hochgeladen werden. Für maximale Sicherheit sollte dies ein Pfad außerhalb der Webserver-Verzeichnisstruktur sein"; -$a->strings["Enter a valid existing folder"] = "Gib einen gültigen, existierenden Ordner ein"; -$a->strings["Database storage failed to update %s"] = "Datenbankspeicher konnte nicht aktualisiert werden %s"; -$a->strings["Database storage failed to insert data"] = "Der Datenbankspeicher konnte keine Daten einfügen"; +$a->strings["Legacy module file not found: %s"] = "Legacy-Moduldatei nicht gefunden: %s"; $a->strings["Drop Contact"] = "Kontakt löschen"; $a->strings["Organisation"] = "Organisation"; $a->strings["News"] = "Nachrichten"; @@ -1911,6 +1397,7 @@ $a->strings["Show map"] = "Karte anzeigen"; $a->strings["Hide map"] = "Karte verbergen"; $a->strings["%s's birthday"] = "%ss Geburtstag"; $a->strings["Happy Birthday %s"] = "Herzlichen Glückwunsch, %s"; +$a->strings["Item filed"] = "Beitrag abgelegt"; $a->strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Eine gelöschte Gruppe mit diesem Namen wurde wiederbelebt. Bestehende Berechtigungseinstellungen könnten auf diese Gruppe oder zukünftige Mitglieder angewandt werden. Falls du dies nicht möchtest, erstelle bitte eine andere Gruppe mit einem anderen Namen."; $a->strings["Default privacy group for new contacts"] = "Voreingestellte Gruppe für neue Kontakte"; $a->strings["Everybody"] = "Alle Kontakte"; @@ -1930,11 +1417,12 @@ $a->strings["Content warning: %s"] = "Inhaltswarnung: %s"; $a->strings["bytes"] = "Byte"; $a->strings["View on separate page"] = "Auf separater Seite ansehen"; $a->strings["view on separate page"] = "auf separater Seite ansehen"; -$a->strings["Requested account is not available."] = "Das angefragte Profil ist nicht vorhanden."; -$a->strings["Requested profile is not available."] = "Das angefragte Profil ist nicht vorhanden."; +$a->strings["[no subject]"] = "[kein Betreff]"; $a->strings["Edit profile"] = "Profil bearbeiten"; $a->strings["Atom feed"] = "Atom-Feed"; $a->strings["Manage/edit profiles"] = "Profile verwalten/editieren"; +$a->strings["Status:"] = "Status:"; +$a->strings["Homepage:"] = "Homepage:"; $a->strings["XMPP:"] = "XMPP:"; $a->strings["g A l F d"] = "l, d. F G \\U\\h\\r"; $a->strings["F d"] = "d. F"; @@ -1947,6 +1435,7 @@ $a->strings["Upcoming events the next 7 days:"] = "Veranstaltungen der nächsten $a->strings["Member since:"] = "Mitglied seit:"; $a->strings["j F, Y"] = "j F, Y"; $a->strings["j F"] = "j F"; +$a->strings["Birthday:"] = "Geburtstag:"; $a->strings["Age:"] = "Alter:"; $a->strings["for %1\$d %2\$s"] = "für %1\$d %2\$s"; $a->strings["Religion:"] = "Religion:"; @@ -1964,6 +1453,13 @@ $a->strings["Profile Details"] = "Profildetails"; $a->strings["Only You Can See This"] = "Nur du kannst das sehen"; $a->strings["Tips for New Members"] = "Tipps für neue Nutzer"; $a->strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s heißt %2\$s herzlich willkommen"; +$a->strings["Database storage failed to update %s"] = "Datenbankspeicher konnte nicht aktualisiert werden %s"; +$a->strings["Database storage failed to insert data"] = "Der Datenbankspeicher konnte keine Daten einfügen"; +$a->strings["Filesystem storage failed to create \"%s\". Check you write permissions."] = "Dateisystemspeicher konnte nicht erstellt werden \"%s\". Überprüfe, ob du Schreibberechtigungen hast."; +$a->strings["Filesystem storage failed to save data to \"%s\". Check your write permissions"] = "Der Dateisystemspeicher konnte die Daten nicht in \"%s\" speichern. Überprüfe Deine Schreibberechtigungen"; +$a->strings["Storage base path"] = "Dateipfad zum Speicher"; +$a->strings["Folder where uploaded files are saved. For maximum security, This should be a path outside web server folder tree"] = "Verzeichnis, in das Dateien hochgeladen werden. Für maximale Sicherheit sollte dies ein Pfad außerhalb der Webserver-Verzeichnisstruktur sein"; +$a->strings["Enter a valid existing folder"] = "Gib einen gültigen, existierenden Ordner ein"; $a->strings["Login failed"] = "Anmeldung fehlgeschlagen"; $a->strings["Not enough information to authenticate"] = "Nicht genügend Informationen für die Authentifizierung"; $a->strings["Password can't be empty"] = "Das Passwort kann nicht leer sein"; @@ -1995,6 +1491,7 @@ $a->strings["Your nickname can only contain a-z, 0-9 and _."] = "Dein Spitzname $a->strings["Nickname is already registered. Please choose another."] = "Dieser Spitzname ist bereits vergeben. Bitte wähle einen anderen."; $a->strings["SERIOUS ERROR: Generation of security keys failed."] = "FATALER FEHLER: Sicherheitsschlüssel konnten nicht erzeugt werden."; $a->strings["An error occurred during registration. Please try again."] = "Während der Anmeldung ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; +$a->strings["default"] = "Standard"; $a->strings["An error occurred creating your default profile. Please try again."] = "Bei der Erstellung des Standardprofils ist ein Fehler aufgetreten. Bitte versuche es noch einmal."; $a->strings["An error occurred creating your self contact. Please try again."] = "Bei der Erstellung deines self-Kontakts ist ein Fehler aufgetreten. Bitte versuche es erneut."; $a->strings["An error occurred creating your default contact group. Please try again."] = "Bei der Erstellung deiner Standardgruppe für Kontakte ist ein Fehler aufgetreten. Bitte versuche es erneut."; @@ -2002,17 +1499,446 @@ $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Yo $a->strings["Registration at %s"] = "Registrierung als %s"; $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"] = "\nHallo %1\$s,\n\ndanke für deine Registrierung auf %2\$s. Dein Account wurde eingerichtet."; $a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."] = "\nDie Anmelde-Details sind die folgenden:\n\tAdresse der Seite:\t%3\$s\n\tBenutzernamename:\t%1\$s\n\tPasswort:\t%5\$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich\nangemeldet hast.\n\nBitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst du ja auch einige Informationen über dich in deinem\nProfil veröffentlichen, damit andere Leute dich einfacher finden können.\nBearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir\npassendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.\nAußerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.\n\nWir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nSolltest du dein Nutzerkonto löschen wollen, kannst du dies unter %3\$s/removeme jederzeit tun.\n\nDanke für deine Aufmerksamkeit und willkommen auf %2\$s."; -$a->strings["Sharing notification from Diaspora network"] = "Freigabe-Benachrichtigung von Diaspora"; -$a->strings["Attachments:"] = "Anhänge:"; -$a->strings["%s's timeline"] = "Timeline von %s"; -$a->strings["%s's posts"] = "Beiträge von %s"; -$a->strings["%s's comments"] = "Kommentare von %s"; -$a->strings["%s is now following %s."] = "%s folgt nun %s"; -$a->strings["following"] = "folgen"; -$a->strings["%s stopped following %s."] = "%s hat aufgehört %s, zu folgen"; -$a->strings["stopped following"] = "wird nicht mehr gefolgt"; -$a->strings["(no subject)"] = "(kein Betreff)"; +$a->strings["Registration details for %s"] = "Details der Registration von %s"; +$a->strings["Addon not found."] = "Addon nicht gefunden."; +$a->strings["Addon %s disabled."] = "Addon %s ausgeschaltet."; +$a->strings["Addon %s enabled."] = "Addon %s eingeschaltet."; +$a->strings["Disable"] = "Ausschalten"; +$a->strings["Enable"] = "Einschalten"; +$a->strings["Administration"] = "Administration"; +$a->strings["Toggle"] = "Umschalten"; +$a->strings["Author: "] = "Autor:"; +$a->strings["Maintainer: "] = "Betreuer:"; +$a->strings["Addon %s failed to install."] = "Addon %s konnte nicht installiert werden"; +$a->strings["Reload active addons"] = "Aktivierte Addons neu laden"; +$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "Es sind derzeit keine Addons auf diesem Knoten verfügbar. Du findest das offizielle Addon-Repository unter %1\$s und weitere eventuell interessante Addons im offenen Addon-Verzeichnis auf %2\$s."; +$a->strings["%s contact unblocked"] = [ + 0 => "%sKontakt wieder freigegeben", + 1 => "%sKontakte wieder freigegeben", +]; +$a->strings["Remote Contact Blocklist"] = "Sperrliste entfernter Kontakte"; +$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "Auf dieser Seite kannst du Accounts von anderen Knoten blockieren und damit verhindern, dass ihre Beiträge von deinem Knoten angenommen werden."; +$a->strings["Block Remote Contact"] = "Blockiere entfernten Kontakt"; +$a->strings["select all"] = "Alle auswählen"; +$a->strings["select none"] = "Auswahl aufheben"; +$a->strings["Unblock"] = "Entsperren"; +$a->strings["No remote contact is blocked from this node."] = "Derzeit werden keine Kontakte auf diesem Knoten blockiert."; +$a->strings["Blocked Remote Contacts"] = "Blockierte Kontakte von anderen Knoten"; +$a->strings["Block New Remote Contact"] = "Blockieren von weiteren Kontakten"; +$a->strings["Photo"] = "Foto:"; +$a->strings["%s total blocked contact"] = [ + 0 => "Insgesamt %s blockierter Kontakt", + 1 => "Insgesamt %s blockierte Kontakte", +]; +$a->strings["URL of the remote contact to block."] = "Die URL des entfernten Kontakts, der blockiert werden soll."; +$a->strings["Server added to blocklist."] = "Server zur Blockliste hinzugefügt."; +$a->strings["Site blocklist updated."] = "Blockliste aktualisiert."; +$a->strings["The blocked domain"] = "Die blockierte Domain"; +$a->strings["Reason for the block"] = "Begründung für die Blockierung"; +$a->strings["The reason why you blocked this domain."] = "Die Begründung, warum du diese Domain blockiert hast."; +$a->strings["Delete domain"] = "Domain löschen"; +$a->strings["Check to delete this entry from the blocklist"] = "Markieren, um diesen Eintrag von der Blocklist zu entfernen"; +$a->strings["Server Blocklist"] = "Server Blockliste"; +$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "Auf dieser Seite kannst du die Liste der blockierten Domains aus dem föderalen Netzwerk verwalten, denen es untersagt ist, mit deinem Knoten zu interagieren. Für jede der blockierten Domains musst du außerdem einen Grund für die Sperrung angeben."; +$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "Die Liste der blockierten Domains wird auf der /friendica Seite öffentlich einsehbar gemacht, damit deine Nutzer und Personen, die Kommunikationsprobleme erkunden, die Ursachen einfach finden können."; +$a->strings["Add new entry to block list"] = "Neuen Eintrag in die Blockliste"; +$a->strings["Server Domain"] = "Domain des Servers"; +$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "Der Domain-Name des Servers, der geblockt werden soll. Gib das Protokoll nicht mit an!"; +$a->strings["Block reason"] = "Begründung der Blockierung"; +$a->strings["Add Entry"] = "Eintrag hinzufügen"; +$a->strings["Save changes to the blocklist"] = "Änderungen der Blockliste speichern"; +$a->strings["Current Entries in the Blocklist"] = "Aktuelle Einträge der Blockliste"; +$a->strings["Delete entry from blocklist"] = "Eintrag von der Blockliste entfernen"; +$a->strings["Delete entry from blocklist?"] = "Eintrag von der Blockliste entfernen?"; +$a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert"; +$a->strings["Database structure update %s was successfully applied."] = "Das Update %s der Struktur der Datenbank wurde erfolgreich angewandt."; +$a->strings["Executing of database structure update %s failed with error: %s"] = "Das Update %s der Struktur der Datenbank schlug mit folgender Fehlermeldung fehl: %s"; +$a->strings["Executing %s failed with error: %s"] = "Die Ausführung von %s schlug fehl. Fehlermeldung: %s"; +$a->strings["Update %s was successfully applied."] = "Update %s war erfolgreich."; +$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s hat keinen Status zurückgegeben. Unbekannter Status."; +$a->strings["There was no additional update function %s that needed to be called."] = "Es gab keine weitere Update-Funktion, die von %s ausgeführt werden musste."; +$a->strings["No failed updates."] = "Keine fehlgeschlagenen Updates."; +$a->strings["Check database structure"] = "Datenbankstruktur überprüfen"; +$a->strings["Failed Updates"] = "Fehlgeschlagene Updates"; +$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Ohne Updates vor 1139, da diese keinen Status zurückgegeben haben."; +$a->strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (falls das Update manuell installiert wurde)"; +$a->strings["Attempt to execute this update step automatically"] = "Versuchen, diesen Schritt automatisch auszuführen"; +$a->strings["Lock feature %s"] = "Feature festlegen: %s"; +$a->strings["Manage Additional Features"] = "Zusätzliche Features Verwalten"; +$a->strings["unknown"] = "Unbekannt"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Diese Seite präsentiert einige Zahlen zu dem bekannten Teil des föderalen sozialen Netzwerks, von dem deine Friendica Installation ein Teil ist. Diese Zahlen sind nicht absolut und reflektieren nur den Teil des Netzwerks, den dein Knoten kennt."; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "Die Funktion \"Regelmäßig globale Kontakte überprüfen\" ist nicht aktiv. Sie wird die hier angezeigten Daten verbessern."; +$a->strings["Federation Statistics"] = "Föderation Statistik"; +$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Momentan kennt dieser Knoten %d Knoten mit insgesamt %d registrierten Nutzern, die die folgenden Plattformen verwenden:"; +$a->strings["Item marked for deletion."] = "Eintrag wurden zur Löschung markiert"; +$a->strings["Delete Item"] = "Eintrag löschen"; +$a->strings["Delete this Item"] = "Diesen Eintrag löschen"; +$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Auf dieser Seite kannst du Einträge von deinem Knoten löschen. Wenn der Eintrag der Anfang einer Diskussion ist, wird der gesamte Diskussionsverlauf gelöscht."; +$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "Zur Löschung musst du die GUID des Eintrags kennen. Diese findest du z.B. durch die /display URL des Eintrags. Der letzte Teil der URL ist die GUID. Lautet die URL beispielsweise http://example.com/display/123456, ist die GUID 123456."; +$a->strings["GUID"] = "GUID"; +$a->strings["The GUID of the item you want to delete."] = "Die GUID des zu löschenden Eintrags"; +$a->strings["Item Guid"] = "Beitrags-Guid"; +$a->strings["Log settings updated."] = "Protokolleinstellungen aktualisiert."; +$a->strings["PHP log currently enabled."] = "PHP Protokollierung ist derzeit aktiviert."; +$a->strings["PHP log currently disabled."] = "PHP Protokollierung ist derzeit nicht aktiviert."; +$a->strings["Logs"] = "Protokolle"; +$a->strings["Clear"] = "löschen"; +$a->strings["Enable Debugging"] = "Protokoll führen"; +$a->strings["Log file"] = "Protokolldatei"; +$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Webserver muss Schreibrechte besitzen. Abhängig vom Friendica-Installationsverzeichnis."; +$a->strings["Log level"] = "Protokoll-Level"; +$a->strings["PHP logging"] = "PHP Protokollieren"; +$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Um die Protokollierung von PHP-Fehlern und Warnungen vorübergehend zu aktivieren, kannst du der Datei index.php deiner Installation Folgendes voranstellen. Der in der Datei 'error_log' angegebene Dateiname ist relativ zum obersten Verzeichnis von Friendica und muss vom Webserver beschreibbar sein. Die Option '1' für 'log_errors' und 'display_errors' aktiviert diese Optionen, ersetze die '1' durch eine '0', um sie zu deaktivieren."; +$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Fehler beim Öffnen der Logdatei %1\$s.\\r\\n
    Bitte überprüfe ob die Datei %1\$s existiert und gelesen werden kann."; +$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Konnte die Logdatei %1\$s nicht öffnen.\\r\\n
    Bitte stelle sicher, dass die Datei %1\$s lesbar ist."; +$a->strings["View Logs"] = "Protokolle anzeigen"; +$a->strings["Inspect Deferred Worker Queue"] = "Verzögerte Worker-Warteschlange inspizieren"; +$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "Auf dieser Seite werden die aufgeschobenen Worker-Jobs aufgelistet. Dies sind Jobs, die beim ersten Mal nicht ausgeführt werden konnten."; +$a->strings["Inspect Worker Queue"] = "Worker-Warteschlange inspizieren"; +$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "Auf dieser Seite werden die derzeit in der Warteschlange befindlichen Worker-Jobs aufgelistet. Diese Jobs werden vom Cronjob verarbeitet, den du während der Installation eingerichtet hast."; +$a->strings["ID"] = "ID"; +$a->strings["Job Parameters"] = "Parameter der Aufgabe"; +$a->strings["Created"] = "Erstellt"; +$a->strings["Priority"] = "Priorität"; +$a->strings["Can not parse base url. Must have at least ://"] = "Die Basis-URL konnte nicht analysiert werden. Sie muss mindestens aus :// bestehen"; +$a->strings["Invalid storage backend setting value."] = "Ungültige Einstellung für das Datenspeicher-Backend"; +$a->strings["Site settings updated."] = "Seiteneinstellungen aktualisiert."; +$a->strings["No community page for local users"] = "Keine Gemeinschaftsseite für lokale Nutzer"; +$a->strings["No community page"] = "Keine Gemeinschaftsseite"; +$a->strings["Public postings from users of this site"] = "Öffentliche Beiträge von NutzerInnen dieser Seite"; +$a->strings["Public postings from the federated network"] = "Öffentliche Beiträge aus dem föderalen Netzwerk"; +$a->strings["Public postings from local users and the federated network"] = "Öffentliche Beiträge von lokalen Nutzern und aus dem föderalen Netzwerk"; +$a->strings["Disabled"] = "Deaktiviert"; +$a->strings["Users"] = "Nutzer"; +$a->strings["Users, Global Contacts"] = "Nutzer, globale Kontakte"; +$a->strings["Users, Global Contacts/fallback"] = "Nutzer, globale Kontakte / Fallback"; +$a->strings["One month"] = "ein Monat"; +$a->strings["Three months"] = "drei Monate"; +$a->strings["Half a year"] = "ein halbes Jahr"; +$a->strings["One year"] = "ein Jahr"; +$a->strings["Multi user instance"] = "Mehrbenutzer-Instanz"; +$a->strings["Closed"] = "Geschlossen"; +$a->strings["Requires approval"] = "Bedarf der Zustimmung"; +$a->strings["Open"] = "Offen"; +$a->strings["No SSL policy, links will track page SSL state"] = "Keine SSL-Richtlinie, Links werden das verwendete Protokoll beibehalten"; +$a->strings["Force all links to use SSL"] = "SSL für alle Links erzwingen"; +$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Selbst-unterzeichnetes Zertifikat, SSL nur für lokale Links verwenden (nicht empfohlen)"; +$a->strings["Don't check"] = "Nicht überprüfen"; +$a->strings["check the stable version"] = "überprüfe die stabile Version"; +$a->strings["check the development version"] = "überprüfe die Entwicklungsversion"; +$a->strings["Database (legacy)"] = "Datenbank (legacy)"; +$a->strings["Site"] = "Seite"; +$a->strings["Republish users to directory"] = "Nutzer erneut im globalen Verzeichnis veröffentlichen."; +$a->strings["Registration"] = "Registrierung"; +$a->strings["File upload"] = "Datei hochladen"; +$a->strings["Policies"] = "Regeln"; +$a->strings["Auto Discovered Contact Directory"] = "Automatisch ein Kontaktverzeichnis erstellen"; +$a->strings["Performance"] = "Performance"; +$a->strings["Worker"] = "Worker"; +$a->strings["Message Relay"] = "Nachrichten-Relais"; +$a->strings["Relocate Instance"] = "Instanz Umziehen"; +$a->strings["Warning! Advanced function. Could make this server unreachable."] = "WARNUNG: Funktion für Fortgeschrittene. Könnte diesen Server unerreichbar machen."; +$a->strings["Site name"] = "Seitenname"; +$a->strings["Sender Email"] = "Absender für Emails"; +$a->strings["The email address your server shall use to send notification emails from."] = "Die E-Mail Adresse, die dein Server zum Versenden von Benachrichtigungen verwenden soll."; +$a->strings["Banner/Logo"] = "Banner/Logo"; +$a->strings["Shortcut icon"] = "Shortcut Icon"; +$a->strings["Link to an icon that will be used for browsers."] = "Link zu einem Icon, das Browser verwenden werden."; +$a->strings["Touch icon"] = "Touch Icon"; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link zu einem Icon, das Tablets und Mobiltelefone verwenden sollen."; +$a->strings["Additional Info"] = "Zusätzliche Informationen"; +$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "Für öffentliche Server kannst du hier zusätzliche Informationen angeben, die dann auf %s/servers angezeigt werden."; +$a->strings["System language"] = "Systemsprache"; +$a->strings["System theme"] = "Systemweites Theme"; +$a->strings["Default system theme - may be over-ridden by user profiles - Change default theme settings"] = "Standard-Theme des Systems - kann von Benutzerprofilen überschrieben werden - Ändere Einstellung des Standard-Themes"; +$a->strings["Mobile system theme"] = "Systemweites mobiles Theme"; +$a->strings["Theme for mobile devices"] = "Theme für mobile Geräte"; +$a->strings["SSL link policy"] = "Regeln für SSL Links"; +$a->strings["Determines whether generated links should be forced to use SSL"] = "Bestimmt, ob generierte Links SSL verwenden müssen"; +$a->strings["Force SSL"] = "Erzwinge SSL"; +$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Erzwinge SSL für alle Nicht-SSL-Anfragen - Achtung: auf manchen Systemen verursacht dies eine Endlosschleife."; +$a->strings["Hide help entry from navigation menu"] = "Verberge den Hilfe-Eintrag im Navigationsmenü"; +$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Verbirgt den Menüeintrag für die Hilfe-Seiten im Navigationsmenü. Die Seiten können weiterhin über /help aufgerufen werden."; +$a->strings["Single user instance"] = "Ein-Nutzer Instanz"; +$a->strings["Make this instance multi-user or single-user for the named user"] = "Bestimmt, ob es sich bei dieser Instanz um eine Installation mit nur einen Nutzer oder mit mehreren Nutzern handelt."; +$a->strings["File storage backend"] = "Datenspeicher-Backend"; +$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "Das zu verwendende Datenspeicher-Backend, wenn Dateien hochgeladen werden. Wenn du das Datenspeicher-Backend änderst, kannst du die bestehenden Dateien zum neuen Backend verschieben. Machst du dies nicht, verbleiben sie im alten Backend und werden weiterhin von dort geladen. Für weitere Informationen zu den verfügbaren Alternativen und der Prozedur zum Verschieben der Daten schaue bitte in die Dokumentation zu den Einstellungen."; +$a->strings["Maximum image size"] = "Maximale Bildgröße"; +$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximale Uploadgröße von Bildern in Bytes. Standard ist 0, d.h. ohne Limit."; +$a->strings["Maximum image length"] = "Maximale Bildlänge"; +$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximale Länge in Pixeln der längsten Seite eines hochgeladenen Bildes. Grundeinstellung ist -1, was keine Einschränkung bedeutet."; +$a->strings["JPEG image quality"] = "Qualität des JPEG Bildes"; +$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Hochgeladene JPEG-Bilder werden mit dieser Qualität [0-100] gespeichert. Grundeinstellung ist 100, kein Qualitätsverlust."; +$a->strings["Register policy"] = "Registrierungsmethode"; +$a->strings["Maximum Daily Registrations"] = "Maximum täglicher Registrierungen"; +$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "Wenn die Registrierung weiter oben erlaubt ist, regelt dies die maximale Anzahl von Neuanmeldungen pro Tag. Wenn die Registrierung geschlossen ist, hat diese Einstellung keinen Effekt."; +$a->strings["Register text"] = "Registrierungstext"; +$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Wird gut sichtbar auf der Registrierungsseite angezeigt. BBCode kann verwendet werden."; +$a->strings["Forbidden Nicknames"] = "Verbotene Spitznamen"; +$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Durch Kommas getrennte Liste von Spitznamen, die von der Registrierung ausgeschlossen sind. Die Vorgabe ist eine Liste von Rollennamen nach RFC 2142."; +$a->strings["Accounts abandoned after x days"] = "Nutzerkonten gelten nach x Tagen als unbenutzt"; +$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Verschwende keine System-Ressourcen auf das Pollen externer Seiten, wenn Konten nicht mehr benutzt werden. 0 eingeben für kein Limit."; +$a->strings["Allowed friend domains"] = "Erlaubte Domains für Kontakte"; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für Kontakte erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; +$a->strings["Allowed email domains"] = "Erlaubte Domains für E-Mails"; +$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste der Domains, die für E-Mail-Adressen bei der Registrierung erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."; +$a->strings["No OEmbed rich content"] = "OEmbed nicht verwenden"; +$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Verhindert das Einbetten von reichhaltigen Inhalten (z.B. eingebettete PDF Dateien). Ausgenommen von dieser Regel werden Domänen, die unten aufgeführt werden."; +$a->strings["Allowed OEmbed domains"] = "Erlaubte OEmbed-Domänen"; +$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Durch Kommas getrennte Liste von Domänen, für die das Einbetten reichhaltiger Inhalte erlaubt ist. Platzhalter können verwendet werden."; +$a->strings["Block public"] = "Öffentlichen Zugriff blockieren"; +$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Klicken, um öffentlichen Zugriff auf sonst öffentliche Profile zu blockieren, wenn man nicht eingeloggt ist."; +$a->strings["Force publish"] = "Erzwinge Veröffentlichung"; +$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Klicken, um Anzeige aller Profile dieses Servers im Verzeichnis zu erzwingen."; +$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Wenn du diese Option aktivierst, verstößt das unter Umständen gegen Gesetze wie die EU-DSGVO."; +$a->strings["Global directory URL"] = "URL des weltweiten Verzeichnisses"; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL des weltweiten Verzeichnisses. Wenn diese nicht gesetzt ist, ist das Verzeichnis für die Applikation nicht erreichbar."; +$a->strings["Private posts by default for new users"] = "Private Beiträge als Standard für neue Nutzer"; +$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Die Standard-Zugriffsrechte für neue Nutzer werden so gesetzt, dass als Voreinstellung in die private Gruppe gepostet wird anstelle von öffentlichen Beiträgen."; +$a->strings["Don't include post content in email notifications"] = "Inhalte von Beiträgen nicht in E-Mail-Benachrichtigungen versenden"; +$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Inhalte von Beiträgen/Kommentaren/privaten Nachrichten/usw. zum Datenschutz nicht in E-Mail-Benachrichtigungen einbinden."; +$a->strings["Disallow public access to addons listed in the apps menu."] = "Öffentlichen Zugriff auf Addons im Apps Menü verbieten."; +$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Wenn ausgewählt, werden die im Apps Menü aufgeführten Addons nur angemeldeten Nutzern der Seite zur Verfügung gestellt."; +$a->strings["Don't embed private images in posts"] = "Private Bilder nicht in Beiträgen einbetten."; +$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Ersetze lokal gehostete, private Fotos in Beiträgen nicht mit einer eingebetteten Kopie des Bildes. Dies bedeutet, dass Kontakte, die Beiträge mit privaten Fotos erhalten, sich zunächst auf den jeweiligen Servern authentifizieren müssen, bevor die Bilder geladen und angezeigt werden, was eine gewisse Zeit dauert."; +$a->strings["Explicit Content"] = "Sensibler Inhalt"; +$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Wähle dies, um anzuzeigen, dass dein Knoten hauptsächlich für explizite Inhalte verwendet wird, die möglicherweise nicht für Minderjährige geeignet sind. Diese Info wird in der Knoteninformation veröffentlicht und kann durch das Globale Verzeichnis genutzt werden, um deinen Knoten von den Auflistungen auszuschließen. Zusätzlich wird auf der Registrierungsseite ein Hinweis darüber angezeigt."; +$a->strings["Allow Users to set remote_self"] = "Nutzern erlauben, das remote_self Flag zu setzen"; +$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Ist dies ausgewählt, kann jeder Nutzer jeden seiner Kontakte als remote_self (entferntes Konto) im \"Erweitert\"-Reiter der Kontaktansicht markieren. Nach dem Setzen dieses Flags werden alle Top-Level-Beiträge dieser Kontakte automatisch in den Stream dieses Nutzers gepostet (gespiegelt)."; +$a->strings["Block multiple registrations"] = "Unterbinde Mehrfachregistrierung"; +$a->strings["Disallow users to register additional accounts for use as pages."] = "Benutzern nicht erlauben, weitere Konten für Organisationsseiten o. ä. mit der gleichen E-Mail-Adresse anzulegen."; +$a->strings["Disable OpenID"] = "OpenID deaktivieren"; +$a->strings["Disable OpenID support for registration and logins."] = "OpenID-Unterstützung für Registrierung und Login."; +$a->strings["No Fullname check"] = "Namen nicht auf Vollständigkeit überprüfen"; +$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Erlaubt Nutzern, Konten zu registrieren, bei denen im Namensfeld kein Leerzeichen zur Trennung von Vor- und Nachnamen verwendet wird."; +$a->strings["Community pages for visitors"] = "Für Besucher verfügbare Gemeinschaftsseite"; +$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Welche Gemeinschaftsseiten sollen für Besucher dieses Knotens verfügbar sein? Lokale Nutzer können grundsätzlich beide Seiten verwenden."; +$a->strings["Posts per user on community page"] = "Anzahl der Beiträge pro Benutzer auf der Gemeinschaftsseite"; +$a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = "Maximale Anzahl der Beiträge, die von jedem Nutzer auf der Gemeinschaftsseite angezeigt werden. (Gilt nicht für die 'Globale Gemeinschaftsseite')"; +$a->strings["Disable OStatus support"] = "OStatus-Unterstützung deaktivieren"; +$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Die eingebaute OStatus-Unterstützung (StatusNet, GNU Social, etc.) deaktivieren. Jede Kommunikation in OStatus ist öffentlich, Privatsphäre-Warnungen werden nur bei Bedarf angezeigt."; +$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Nur OStatus/ActivityPub-Konversationen unserer Kontakte importieren"; +$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normalerweise werden alle Inhalte von OStatus- und ActivityPub-Kontakten importiert. Mit dieser Option werden nur solche Konversationen gespeichert, die von Kontakten der Nutzer dieses Knotens gestartet wurden."; +$a->strings["OStatus support can only be enabled if threading is enabled."] = "OStatus Unterstützung kann nur aktiviert werden, wenn \"Threading\" aktiviert ist. "; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Diaspora Unterstützung kann nicht aktiviert werden, da Friendica in ein Unterverzeichnis installiert ist."; +$a->strings["Enable Diaspora support"] = "Diaspora-Unterstützung aktivieren"; +$a->strings["Provide built-in Diaspora network compatibility."] = "Verwende die eingebaute Diaspora-Verknüpfung."; +$a->strings["Only allow Friendica contacts"] = "Nur Friendica-Kontakte erlauben"; +$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Alle Kontakte müssen das Friendica-Protokoll nutzen. Alle anderen Kommunikationsprotokolle werden deaktiviert."; +$a->strings["Verify SSL"] = "SSL Überprüfen"; +$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Wenn gewollt, kann man hier eine strenge Zertifikatskontrolle einstellen. Das bedeutet, dass man zu keinen Seiten mit selbst unterzeichnetem SSL-Zertifikat eine Verbindung herstellen kann."; +$a->strings["Proxy user"] = "Proxy-Nutzer"; +$a->strings["Proxy URL"] = "Proxy-URL"; +$a->strings["Network timeout"] = "Netzwerk-Wartezeit"; +$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)."; +$a->strings["Maximum Load Average"] = "Maximum Load Average"; +$a->strings["Maximum system load before delivery and poll processes are deferred - default %d."] = "Maximale System-LOAD bevor Verteil- und Empfangsprozesse verschoben werden - Standard %d"; +$a->strings["Maximum Load Average (Frontend)"] = "Maximum Load Average (Frontend)"; +$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maximale Systemlast, bevor Vordergrundprozesse pausiert werden - Standard 50."; +$a->strings["Minimal Memory"] = "Minimaler Speicher"; +$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimal freier Speicher in MB für den Worker Prozess. Benötigt Zugriff auf /proc/meminfo - Standardwert ist 0 (deaktiviert)"; +$a->strings["Maximum table size for optimization"] = "Maximale Tabellengröße zur Optimierung"; +$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maximale Tabellengröße (in MB) für die automatische Optimierung - Gib -1 für Deaktivierung ein."; +$a->strings["Minimum level of fragmentation"] = "Minimaler Fragmentationsgrad"; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimaler Fragmentationsgrad von Datenbanktabellen, um die automatische Optimierung einzuleiten - Standardwert ist 30%"; +$a->strings["Periodical check of global contacts"] = "Regelmäßig globale Kontakte überprüfen"; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Wenn diese Option aktiviert ist, werden die globalen Kontakte regelmäßig auf fehlende oder veraltete Daten sowie auf Erreichbarkeit des Kontakts und des Servers überprüft."; +$a->strings["Days between requery"] = "Tage zwischen erneuten Abfragen"; +$a->strings["Number of days after which a server is requeried for his contacts."] = "Legt das Abfrageintervall fest, nach dem ein Server erneut nach Kontakten abgefragt werden soll."; +$a->strings["Discover contacts from other servers"] = "Neue Kontakte auf anderen Servern entdecken"; +$a->strings["Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."] = "Regelmäßig andere Server nach potentiellen Kontakten absuchen. Du kannst zwischen 'Nutzern', also den tatsächlichen Nutzern des anderen Systems, und 'globalen Kontakten', also aktiven Kontakten, die auf dem System bekannt sind, wählen. Der Fallback-Mechanismus ist für ältere Friendica- und Redmatrix-Server gedacht, bei denen globale Kontakte noch nicht verfügbar sind. Durch den Fallback-Modus entsteht auf deinem Server eine wesentlich höhere Last, empfohlen wird der Modus 'Nutzer, globale Kontakte'."; +$a->strings["Timeframe for fetching global contacts"] = "Zeitfenster für globale Kontakte"; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Wenn die Entdeckung neuer Kontakte aktiv ist, definiert dieses Zeitfenster den Zeitraum, in dem globale Kontakte als aktiv gelten und von anderen Servern importiert werden."; +$a->strings["Search the local directory"] = "Lokales Verzeichnis durchsuchen"; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Suche im lokalen Verzeichnis anstelle des globalen Verzeichnisses durchführen. Jede Suche wird im Hintergrund auch im globalen Verzeichnis durchgeführt, um die Suchresultate zu verbessern, wenn die Suche wiederholt wird."; +$a->strings["Publish server information"] = "Server-Informationen veröffentlichen"; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "Wenn aktiviert, werden allgemeine Informationen über den Server und Nutzungsdaten veröffentlicht. Die Daten beinhalten den Namen sowie die Version des Servers, die Anzahl der Personen mit öffentlichen Profilen, die Anzahl der Beiträge sowie aktivierte Protokolle und Konnektoren. Für Details bitte the-federation.info aufrufen."; +$a->strings["Check upstream version"] = "Suche nach Updates"; +$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Wenn diese Option aktiviert ist, wird regelmäßig nach neuen Friendica-Versionen auf github gesucht. Wenn es eine neue Version gibt, wird dies auf der Übersichtsseite im Admin-Panel angezeigt."; +$a->strings["Suppress Tags"] = "Tags unterdrücken"; +$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Unterdrückt die Anzeige von Tags am Ende eines Beitrags."; +$a->strings["Clean database"] = "Datenbank aufräumen"; +$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Entferne alte Beiträge von anderen Knoten, verwaiste Einträge und alten Inhalt einiger Hilfstabellen."; +$a->strings["Lifespan of remote items"] = "Lebensdauer von Beiträgen anderer Knoten"; +$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl in Tagen, nach der Beiträge, die auf anderen Knoten des Netzwerks verfasst wurden, gelöscht werden sollen. Eigene Beiträge sowie markierte oder abgespeicherte Beiträge werden nicht gelöscht. Ein Wert von 0 deaktiviert das automatische Löschen von Beiträgen."; +$a->strings["Lifespan of unclaimed items"] = "Lebensdauer nicht angeforderter Beiträge"; +$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "Wenn das Aufräumen der Datenbank aktiviert ist, definiert dies die Anzahl von Tagen, nach denen nicht angeforderte Beiträge (hauptsächlich solche, die über das Relais eintreffen) gelöscht werden. Der Standardwert beträgt 90 Tage. Wird dieser Wert auf 0 gesetzt, wird die Lebensdauer von Beiträgen anderer Knoten verwendet."; +$a->strings["Lifespan of raw conversation data"] = "Lebensdauer der Beiträge"; +$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "Die Konversationsdaten werden für ActivityPub und OStatus sowie für Debug-Zwecke verwendet. Sie sollten gefahrlos nach 14 Tagen entfernt werden können, der Standardwert beträgt 90 Tage."; +$a->strings["Path to item cache"] = "Pfad zum Item-Cache"; +$a->strings["The item caches buffers generated bbcode and external images."] = "Im Item-Cache werden externe Bilder und geparster BBCode zwischen gespeichert."; +$a->strings["Cache duration in seconds"] = "Cache-Dauer in Sekunden"; +$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Wie lange sollen die zwischengespeicherten Dateien vorgehalten werden? Grundeinstellung sind 86400 Sekunden (ein Tag). Um den Item-Cache zu deaktivieren, setze diesen Wert auf -1."; +$a->strings["Maximum numbers of comments per post"] = "Maximale Anzahl von Kommentaren pro Beitrag"; +$a->strings["How much comments should be shown for each post? Default value is 100."] = "Wie viele Kommentare sollen pro Beitrag angezeigt werden? Standardwert sind 100."; +$a->strings["Temp path"] = "Temp-Pfad"; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Solltest du ein eingeschränktes System haben, auf dem der Webserver nicht auf das temp-Verzeichnis des Systems zugreifen kann, setze hier einen anderen Pfad."; +$a->strings["Disable picture proxy"] = "Bilder-Proxy deaktivieren"; +$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "Der Proxy für Bilder verbessert die Leistung und Privatsphäre der Nutzer. Er sollte nicht auf Systemen verwendet werden, die nur über begrenzte Bandbreite verfügen."; +$a->strings["Only search in tags"] = "Nur in Tags suchen"; +$a->strings["On large systems the text search can slow down the system extremely."] = "Auf großen Knoten kann die Volltext-Suche das System ausbremsen."; +$a->strings["New base url"] = "Neue Basis-URL"; +$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Ändert die Basis-URL dieses Servers und sendet eine Umzugsmitteilung an alle Friendica- und Diaspora*-Kontakte deiner NutzerInnen."; +$a->strings["RINO Encryption"] = "RINO-Verschlüsselung"; +$a->strings["Encryption layer between nodes."] = "Verschlüsselung zwischen Friendica-Instanzen"; +$a->strings["Enabled"] = "Aktiv"; +$a->strings["Maximum number of parallel workers"] = "Maximale Anzahl parallel laufender Worker"; +$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Wenn dein Knoten bei einem Shared Hoster ist, setze diesen Wert auf %d. Auf größeren Systemen funktioniert ein Wert von %d recht gut. Standardeinstellung sind %d."; +$a->strings["Don't use \"proc_open\" with the worker"] = "\"proc_open\" nicht für die Worker verwenden"; +$a->strings["Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Aktiviere diese Option, wenn dein System die Verwendung von 'proc_open' verhindert. Dies könnte auf Shared Hostern der Fall sein. Wenn du diese Option aktivierst, solltest du die Frequenz der worker-Aufrufe in deiner crontab erhöhen."; +$a->strings["Enable fastlane"] = "Aktiviere Fastlane"; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "Wenn aktiviert, wird der Fastlane-Mechanismus einen weiteren Worker-Prozeß starten, wenn Prozesse mit höherer Priorität von Prozessen mit niedrigerer Priorität blockiert werden."; +$a->strings["Enable frontend worker"] = "Aktiviere den Frontend-Worker"; +$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "Ist diese Option aktiv, wird der Worker Prozess durch Aktionen am Frontend gestartet (z.B. wenn Nachrichten zugestellt werden). Auf kleineren Seiten sollte %s/worker regelmäßig, beispielsweise durch einen externen Cron Anbieter, aufgerufen werden. Du solltest diese Option nur dann aktivieren, wenn du keinen Cron Job auf deinem eigenen Server starten kannst."; +$a->strings["Subscribe to relay"] = "Relais abonnieren"; +$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Aktiviert den Empfang von öffentlichen Beiträgen vom Relais-Server. Diese Beiträge werden in der Suche, den abonnierten Hashtags sowie der globalen Gemeinschaftsseite verfügbar sein."; +$a->strings["Relay server"] = "Relais-Server"; +$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Adresse des Relais-Servers, an den die öffentlichen Beiträge gesendet werden sollen. Zum Beispiel https://relay.diasp.org"; +$a->strings["Direct relay transfer"] = "Direkte Relais-Übertragung"; +$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Aktiviert das direkte Verteilen an andere Server, ohne dass ein Relais-Server verwendet wird."; +$a->strings["Relay scope"] = "Geltungsbereich des Relais"; +$a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = "Der Wert kann entweder 'Alle' oder 'Schlagwörter' sein. 'Alle' bedeutet, dass alle öffentliche Beiträge empfangen werden sollen. 'Schlagwörter' schränkt dem Empfang auf Beiträge ein, die bestimmte Schlagwörter beinhalten."; +$a->strings["all"] = "Alle"; +$a->strings["tags"] = "Schlagwörter"; +$a->strings["Server tags"] = "Server-Schlagworte"; +$a->strings["Comma separated list of tags for the \"tags\" subscription."] = "Liste von Schlagworten, die abonniert werden sollen, mit Komma getrennt."; +$a->strings["Allow user tags"] = "Verwende Schlagworte der Nutzer"; +$a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = "Ist dies aktiviert, werden die Schlagwörter der gespeicherten Suchen zusätzlich zu den oben definierten Server-Schlagworten abonniert."; +$a->strings["Start Relocation"] = "Umsiedlung starten"; +$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Deine DB verwendet derzeit noch MyISAM Tabellen. Du solltest die Datenbank Engine auf InnoDB umstellen, da Friendica in Zukunft InnoDB-Features verwenden wird. Eine Anleitung zur Umstellung der Datenbank kannst du hier finden. Du kannst außerdem mit dem Befehl php bin/console.php dbstructure toinnodb auf der Kommandozeile die Umstellung automatisch vornehmen lassen."; +$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "Es gibt eine neue Version von Friendica. Du verwendest derzeit die Version %1\$s, die aktuelle Version ist %2\$s."; +$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "Das Update der Datenbank ist fehlgeschlagen. Bitte führe 'php bin/console.php dbstructure update' in der Kommandozeile aus und achte auf eventuell auftretende Fehlermeldungen."; +$a->strings["The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)"] = "Das letzte Update ist fehlgeschlagen. Bitte führe \"php bin/console.php dbstructure update\" auf der Kommandozeile aus und werfe einen Blick auf eventuell auftretende Fehler. (Zusätzliche Informationen zu Fehlern könnten in den Logdateien stehen.)"; +$a->strings["The worker was never executed. Please check your database structure!"] = "Der Hintergrundprozess (worker) wurde noch nie gestartet. Bitte überprüfe deine Datenbankstruktur."; +$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "Der Hintergrundprozess (worker) wurde zuletzt um %s UTC ausgeführt. Das war vor mehr als einer Stunde. Bitte überprüfe deine crontab-Einstellungen."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.ini.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten .htconfig.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "Die Konfiguration von Friendica befindet sich ab jetzt in der 'config/local.config.php' Datei. Kopiere bitte die Datei 'config/local-sample.config.php' nach 'config/local.config.php' und setze die Konfigurationvariablen so wie in der alten config/local.ini.php. Wie die Übertragung der Werte aussehen muss, kannst du der Konfiguration Hilfeseite entnehmen."; +$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s konnte von deinem System nicht aufgerufen werden. Dies deutet auf ein schwerwiegendes Problem deiner Konfiguration hin. Bitte konsultiere die Installations-Dokumentation zum Beheben des Problems."; +$a->strings["Friendica's system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."] = "Friendica's system.basepath würde aktualisiert '%s' von '%s'. Bitte entfernen Sie system.basepath aus der Datenbank um Unterschiede zu vermeiden."; +$a->strings["Friendica's current system.basepath '%s' is wrong and the config file '%s' isn't used."] = "Friendica's aktueller system.basepath '%s' ist verkehrt und die config file '%s' wird nicht benutzt."; +$a->strings["Friendica's current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."] = "Friendica's aktueller system.basepath '%s' ist nicht gleich wie die config file '%s'. Bitte korrigieren Sie Ihre Konfiguration."; +$a->strings["Normal Account"] = "Normales Konto"; +$a->strings["Automatic Follower Account"] = "Automatisch folgendes Konto (Marktschreier)"; +$a->strings["Public Forum Account"] = "Öffentliches Forum-Konto"; +$a->strings["Automatic Friend Account"] = "Automatische Freunde-Seite"; +$a->strings["Blog Account"] = "Blog-Konto"; +$a->strings["Private Forum Account"] = "Privates Forum-Konto"; +$a->strings["Message queues"] = "Nachrichten-Warteschlangen"; +$a->strings["Server Settings"] = "Servereinstellungen"; +$a->strings["Summary"] = "Zusammenfassung"; +$a->strings["Registered users"] = "Registrierte Personen"; +$a->strings["Pending registrations"] = "Anstehende Anmeldungen"; +$a->strings["Version"] = "Version"; +$a->strings["Active addons"] = "Aktivierte Addons"; +$a->strings["Theme settings updated."] = "Themeneinstellungen aktualisiert."; +$a->strings["Theme %s disabled."] = "Theme %s deaktiviert."; +$a->strings["Theme %s successfully enabled."] = "Theme %s erfolgreich aktiviert."; +$a->strings["Theme %s failed to install."] = "Theme %s konnte nicht aktiviert werden."; +$a->strings["Screenshot"] = "Bildschirmfoto"; +$a->strings["Themes"] = "Themen"; +$a->strings["Unknown theme."] = "Unbekanntes Theme"; +$a->strings["Reload active themes"] = "Aktives Theme neu laden"; +$a->strings["No themes found on the system. They should be placed in %1\$s"] = "Es wurden keine Themes auf dem System gefunden. Diese sollten in %1\$s platziert werden."; +$a->strings["[Experimental]"] = "[Experimentell]"; +$a->strings["[Unsupported]"] = "[Nicht unterstützt]"; +$a->strings["The Terms of Service settings have been updated."] = "Die Einstellungen zur Nutzungsbedingung wurden aktualisiert"; +$a->strings["Display Terms of Service"] = "Nutzungsbedingungen anzeigen"; +$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Aktiviert die Seite für die Nutzungsbedingungen. Ist dies der Fall, werden sie auch von der Registrierungsseite und der allgemeinen Informationsseite verlinkt."; +$a->strings["Display Privacy Statement"] = "Datenschutzerklärung anzeigen"; +$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Zeige Informationen über die zum Betrieb der Seite notwendigen, personenbezogenen Daten an, wie es z.B. die EU-DSGVO verlangt."; +$a->strings["Privacy Statement Preview"] = "Vorschau: Datenschutzerklärung"; +$a->strings["The Terms of Service"] = "Die Nutzungsbedingungen"; +$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Füge hier die Nutzungsbedingungen deines Knotens ein. Du kannst BBCode zur Formatierung verwenden. Überschriften sollten [h2] oder darunter sein."; +$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\nHallo %1\$s,\n\nauf %2\$s wurde ein Account für dich angelegt."; +$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\nNachfolgend die Anmelde-Details:\n\tAdresse der Seite:\t%1\$s\n\tBenutzername:\t%2\$s\n\tPasswort:\t%3\$s\n\nDu kannst dein Passwort unter \"Einstellungen\" ändern, sobald du dich\nangemeldet hast.\n\nBitte nimm dir ein paar Minuten, um die anderen Einstellungen auf dieser\nSeite zu kontrollieren.\n\nEventuell magst du ja auch einige Informationen über dich in deinem\nProfil veröffentlichen, damit andere Leute dich einfacher finden können.\nBearbeite hierfür einfach dein Standard-Profil (über die Profil-Seite).\n\nWir empfehlen dir, deinen kompletten Namen anzugeben und ein zu dir\npassendes Profilbild zu wählen, damit dich alte Bekannte wiederfinden.\nAußerdem ist es nützlich, wenn du auf deinem Profil Schlüsselwörter\nangibst. Das erleichtert es, Leute zu finden, die deine Interessen teilen.\n\nWir respektieren deine Privatsphäre - keine dieser Angaben ist nötig.\nWenn du neu im Netzwerk bist und noch niemanden kennst, dann können sie\nallerdings dabei helfen, neue und interessante Kontakte zu knüpfen.\n\nSolltest du dein Nutzerkonto löschen wollen, kannst du dies unter %1\$s/removeme jederzeit tun.\n\nNun viel Spaß, gute Begegnungen und willkommen auf %4\$s."; +$a->strings["%s user blocked"] = [ + 0 => "%s Nutzer blockiert", + 1 => "%s Nutzer blockiert", +]; +$a->strings["%s user unblocked"] = [ + 0 => "%s Nutzer freigeschaltet", + 1 => "%s Nutzer freigeschaltet", +]; +$a->strings["You can't remove yourself"] = "Du kannst dich nicht selbst löschen!"; +$a->strings["%s user deleted"] = [ + 0 => "%s Nutzer gelöscht", + 1 => "%s Nutzer gelöscht", +]; +$a->strings["User \"%s\" deleted"] = "Nutzer \"%s\" gelöscht"; +$a->strings["User \"%s\" blocked"] = "Nutzer \"%s\" blockiert"; +$a->strings["User \"%s\" unblocked"] = "Nutzer \"%s\" frei geschaltet"; +$a->strings["Private Forum"] = "Privates Forum"; +$a->strings["Relay"] = "Relais"; +$a->strings["Register date"] = "Anmeldedatum"; +$a->strings["Last login"] = "Letzte Anmeldung"; +$a->strings["Last item"] = "Letzter Beitrag"; +$a->strings["Type"] = "Typ"; +$a->strings["Add User"] = "Nutzer hinzufügen"; +$a->strings["User registrations waiting for confirm"] = "Neuanmeldungen, die auf Deine Bestätigung warten"; +$a->strings["User waiting for permanent deletion"] = "Nutzer wartet auf permanente Löschung"; +$a->strings["Request date"] = "Anfragedatum"; +$a->strings["No registrations."] = "Keine Neuanmeldungen."; +$a->strings["Note from the user"] = "Hinweis vom Nutzer"; +$a->strings["Deny"] = "Verwehren"; +$a->strings["User blocked"] = "Nutzer blockiert."; +$a->strings["Site admin"] = "Seitenadministrator"; +$a->strings["Account expired"] = "Account ist abgelaufen"; +$a->strings["New User"] = "Neuer Nutzer"; +$a->strings["Permanent deletion"] = "Permanent löschen"; +$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Die markierten Nutzer werden gelöscht!\\n\\nAlle Beiträge, die diese Nutzer auf dieser Seite veröffentlicht haben, werden permanent gelöscht!\\n\\nBist du sicher?"; +$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Der Nutzer {0} wird gelöscht!\\n\\nAlles, was dieser Nutzer auf dieser Seite veröffentlicht hat, wird permanent gelöscht!\\n\\nBist du sicher?"; +$a->strings["Name of the new user."] = "Name des neuen Nutzers"; +$a->strings["Nickname"] = "Spitzname"; +$a->strings["Nickname of the new user."] = "Spitznamen für den neuen Nutzer"; +$a->strings["Email address of the new user."] = "Email Adresse des neuen Nutzers"; +$a->strings["No friends to display."] = "Keine Kontakte zum Anzeigen."; +$a->strings["No installed applications."] = "Keine Applikationen installiert."; +$a->strings["Applications"] = "Anwendungen"; $a->strings["Item was not found."] = "Beitrag konnte nicht gefunden werden."; +$a->strings["Source input"] = "Originaltext:"; +$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; +$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (pures HTML)"; +$a->strings["BBCode::convert"] = "BBCode::convert"; +$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; +$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; +$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; +$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; +$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; +$a->strings["Item Body"] = "Beitragskörper"; +$a->strings["Item Tags"] = "Tags des Beitrags"; +$a->strings["Source input (Diaspora format)"] = "Originaltext (Diaspora Format): "; +$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (pures HTML)"; +$a->strings["Markdown::convert"] = "Markdown::convert"; +$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; +$a->strings["Raw HTML input"] = "Reine HTML Eingabe"; +$a->strings["HTML Input"] = "HTML Eingabe"; +$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; +$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; +$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (pures HTML)"; +$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; +$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; +$a->strings["Source text"] = "Quelltext"; +$a->strings["BBCode"] = "BBCode"; +$a->strings["Markdown"] = "Markdown"; +$a->strings["HTML"] = "HTML"; +$a->strings["Overview"] = "Übersicht"; +$a->strings["Configuration"] = "Konfiguration"; +$a->strings["Database"] = "Datenbank"; +$a->strings["DB updates"] = "DB Updates"; +$a->strings["Inspect Deferred Workers"] = "Verzögerte Worker inspizieren"; +$a->strings["Inspect worker Queue"] = "Worker Warteschlange inspizieren"; +$a->strings["Tools"] = "Werkzeuge"; +$a->strings["Contact Blocklist"] = "Kontakt Sperrliste"; +$a->strings["Diagnostics"] = "Diagnostik"; +$a->strings["PHP Info"] = "PHP-Info"; +$a->strings["probe address"] = "Adresse untersuchen"; +$a->strings["check webfinger"] = "Webfinger überprüfen"; +$a->strings["Item Source"] = "Eintrags Quelle"; +$a->strings["Babel"] = "Babel"; +$a->strings["Addon Features"] = "Addon Features"; +$a->strings["User registrations waiting for confirmation"] = "Nutzeranmeldungen, die auf Bestätigung warten"; +$a->strings["This page is missing a url parameter."] = "Der Seite fehlt ein URL Parameter."; +$a->strings["The post was created"] = "Der Beitrag wurde angelegt"; $a->strings["%d contact edited."] = [ 0 => "%d Kontakt bearbeitet.", 1 => "%d Kontakte bearbeitet.", @@ -2101,74 +2027,26 @@ $a->strings["Toggle Blocked status"] = "Geblockt-Status ein-/ausschalten"; $a->strings["Toggle Ignored status"] = "Ignoriert-Status ein-/ausschalten"; $a->strings["Toggle Archive status"] = "Archiviert-Status ein-/ausschalten"; $a->strings["Delete contact"] = "Lösche den Kontakt"; -$a->strings["Create a New Account"] = "Neues Konto erstellen"; -$a->strings["Password: "] = "Passwort: "; -$a->strings["Remember me"] = "Anmeldedaten merken"; -$a->strings["Or login using OpenID: "] = "Oder melde dich mit deiner OpenID an: "; -$a->strings["Forgot your password?"] = "Passwort vergessen?"; -$a->strings["Website Terms of Service"] = "Website-Nutzungsbedingungen"; -$a->strings["terms of service"] = "Nutzungsbedingungen"; -$a->strings["Website Privacy Policy"] = "Website-Datenschutzerklärung"; -$a->strings["privacy policy"] = "Datenschutzerklärung"; -$a->strings["Logged out."] = "Abgemeldet."; -$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."] = "Du kannst dieses Formular auch (optional) mit deiner OpenID ausfüllen, indem du deine OpenID angibst und 'Registrieren' klickst."; -$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Wenn du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus."; -$a->strings["Your OpenID (optional): "] = "Deine OpenID (optional): "; -$a->strings["Include your profile in member directory?"] = "Soll dein Profil im Nutzerverzeichnis angezeigt werden?"; -$a->strings["Note for the admin"] = "Hinweis für den Admin"; -$a->strings["Leave a message for the admin, why you want to join this node"] = "Hinterlasse eine Nachricht an den Admin, warum du einen Account auf dieser Instanz haben möchtest."; -$a->strings["Membership on this site is by invitation only."] = "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."; -$a->strings["Your invitation code: "] = "Dein Ein­la­dungs­code"; -$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):"; -$a->strings["Your Email Address: (Initial information will be send there, so this has to be an existing address.)"] = "Deine E-Mail Adresse (Informationen zur Registrierung werden an diese Adresse gesendet, darum muss sie existieren.)"; -$a->strings["Leave empty for an auto generated password."] = "Leer lassen, um das Passwort automatisch zu generieren."; -$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \"nickname@%s\"."] = "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse deines Profils auf dieser Seite wird 'spitzname@%s' sein."; -$a->strings["Choose a nickname: "] = "Spitznamen wählen: "; -$a->strings["Import your profile to this friendica instance"] = "Importiere dein Profil auf diese Friendica-Instanz"; -$a->strings["Note: This node explicitly contains adult content"] = "Hinweis: Dieser Knoten enthält explizit Inhalte für Erwachsene"; -$a->strings["Registration successful. Please check your email for further instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet."; -$a->strings["Failed to send email message. Here your accout details:
    login: %s
    password: %s

    You can change your password after login."] = "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account-Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern."; -$a->strings["Registration successful."] = "Registrierung erfolgreich."; -$a->strings["Your registration can not be processed."] = "Deine Registrierung konnte nicht verarbeitet werden."; -$a->strings["Your registration is pending approval by the site owner."] = "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden."; -$a->strings["At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."] = "Zum Zwecke der Registrierung und um die Kommunikation zwischen dem Nutzer und seinen Kontakten zu gewährleisten, muß der Nutzer einen Namen (auch Pseudonym) und einen Nutzernamen (Spitzname) sowie eine funktionierende E-Mail-Adresse angeben. Der Name ist auf der Profilseite für alle Nutzer sichtbar, auch wenn die Profildetails nicht angezeigt werden.\nDie E-Mail-Adresse wird nur zur Benachrichtigung des Nutzers verwendet, sie wird nirgends angezeigt. Die Anzeige des Nutzerkontos im Server-Verzeichnis bzw. dem weltweiten Verzeichnis erfolgt gemäß den Einstellungen des Nutzers, sie ist zur Kommunikation nicht zwingend notwendig."; -$a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = "Diese Daten sind für die Kommunikation notwendig und werden an die Knoten der Kommunikationspartner übermittelt und dort gespeichert. Nutzer können weitere, private Angaben machen, die ebenfalls an die verwendeten Server der Kommunikationspartner übermittelt werden können."; -$a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = "Angemeldete Nutzer können ihre Nutzerdaten jederzeit von den Kontoeinstellungen aus exportieren. Wenn ein Nutzer wünscht das Nutzerkonto zu löschen, so ist dies jederzeit unter %1\$s/removeme möglich. Die Löschung des Nutzerkontos ist permanent. Die Löschung der Daten wird auch von den Knoten der Kommunikationspartner angefordert."; -$a->strings["Privacy Statement"] = "Datenschutzerklärung"; -$a->strings["No installed applications."] = "Keine Applikationen installiert."; -$a->strings["Applications"] = "Anwendungen"; -$a->strings["Source input"] = "Originaltext:"; -$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; -$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (pures HTML)"; -$a->strings["BBCode::convert"] = "BBCode::convert"; -$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; -$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; -$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; -$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; -$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; -$a->strings["Item Body"] = "Beitragskörper"; -$a->strings["Item Tags"] = "Tags des Beitrags"; -$a->strings["Source input (Diaspora format)"] = "Originaltext (Diaspora Format): "; -$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (pures HTML)"; -$a->strings["Markdown::convert"] = "Markdown::convert"; -$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; -$a->strings["Raw HTML input"] = "Reine HTML Eingabe"; -$a->strings["HTML Input"] = "HTML Eingabe"; -$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; -$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; -$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (pures HTML)"; -$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; -$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; -$a->strings["Source text"] = "Quelltext"; -$a->strings["BBCode"] = "BBCode"; -$a->strings["Markdown"] = "Markdown"; -$a->strings["HTML"] = "HTML"; $a->strings["Credits"] = "Credits"; $a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica ist ein Gemeinschaftsprojekt, das nicht ohne die Hilfe vieler Personen möglich wäre. Hier ist eine Aufzählung der Personen, die zum Code oder der Übersetzung beigetragen haben. Dank an alle !"; +$a->strings["No entries (some entries may be hidden)."] = "Keine Einträge (einige Einträge könnten versteckt sein)."; +$a->strings["Find on this site"] = "Auf diesem Server suchen"; +$a->strings["Results for:"] = "Ergebnisse für:"; +$a->strings["Site Directory"] = "Verzeichnis"; $a->strings["You must be logged in to use this module"] = "Du musst eingeloggt sein, um dieses Modul benutzen zu können."; $a->strings["Source URL"] = "URL der Quelle"; $a->strings["Filetag %s saved to item"] = "Tag %s für den Eintrag gespeichert"; $a->strings["- select -"] = "- auswählen -"; +$a->strings["No given contact."] = "Keine Kontakte vorgegeben."; +$a->strings["Installed addons/apps:"] = "Installierte Apps und Addons"; +$a->strings["No installed addons/apps"] = "Es sind keine Addons oder Apps installiert"; +$a->strings["Read about the Terms of Service of this node."] = "Erfahre mehr über die Nutzungsbedingungen dieses Knotens."; +$a->strings["On this server the following remote servers are blocked."] = "Auf diesem Server werden die folgenden, entfernten Server blockiert."; +$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "Diese Friendica-Instanz verwendet die Version %s, sie ist unter der folgenden Adresse im Web zu finden %s. Die Datenbankversion ist %s und die Post-Update-Version %s."; +$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Bitte besuche Friendi.ca, um mehr über das Friendica-Projekt zu erfahren."; +$a->strings["Bug reports and issues: please visit"] = "Probleme oder Fehler gefunden? Bitte besuche"; +$a->strings["the bugtracker at github"] = "den Bugtracker auf github"; +$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Vorschläge, Lob usw.: E-Mail an \"Info\" at \"Friendi - dot ca\""; $a->strings["Group created."] = "Gruppe erstellt."; $a->strings["Could not create group."] = "Konnte die Gruppe nicht erstellen."; $a->strings["Group not found."] = "Gruppe nicht gefunden."; @@ -2193,6 +2071,8 @@ $a->strings["Edit Group Name"] = "Gruppen Name bearbeiten"; $a->strings["Members"] = "Mitglieder"; $a->strings["Remove contact from group"] = "Entferne den Kontakt aus der Gruppe"; $a->strings["Add contact to group"] = "Füge den Kontakt zur Gruppe hinzu"; +$a->strings["Help:"] = "Hilfe:"; +$a->strings["Welcome to %s"] = "Willkommen zu %s"; $a->strings["Friendica Communications Server - Setup"] = "Friendica Komunikationsserver - Installation"; $a->strings["System check"] = "Systemtest"; $a->strings["Check again"] = "Noch einmal testen"; @@ -2223,15 +2103,128 @@ $a->strings["Installation finished"] = "Installation abgeschlossen"; $a->strings["

    What next

    "] = "

    Wie geht es weiter?

    "; $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the worker."] = "Wichtig: du musst [manuell] einen Cronjob (o.ä.) für den Worker einrichten."; $a->strings["Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."] = "Du solltest nun die Seite zur Nutzerregistrierung deiner neuen Friendica Instanz besuchen und einen neuen Nutzer einrichten. Bitte denke daran, dieselbe E-Mail Adresse anzugeben, die du auch als Administrator-E-Mail angegeben hast, damit du das Admin-Panel verwenden kannst."; -$a->strings["Item Guid"] = "Beitrags-Guid"; +$a->strings["Total invitation limit exceeded."] = "Limit für Einladungen erreicht."; +$a->strings["%s : Not a valid email address."] = "%s: Keine gültige Email Adresse."; +$a->strings["Please join us on Friendica"] = "Ich lade dich zu unserem sozialen Netzwerk Friendica ein"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limit für Einladungen erreicht. Bitte kontaktiere des Administrator der Seite."; +$a->strings["%s : Message delivery failed."] = "%s: Zustellung der Nachricht fehlgeschlagen."; +$a->strings["%d message sent."] = [ + 0 => "%d Nachricht gesendet.", + 1 => "%d Nachrichten gesendet.", +]; +$a->strings["You have no more invitations available"] = "Du hast keine weiteren Einladungen"; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Besuche %s für eine Liste der öffentlichen Server, denen du beitreten kannst. Friendica-Mitglieder unterschiedlicher Server können sich sowohl alle miteinander verbinden, als auch mit Mitgliedern anderer sozialer Netzwerke."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s oder einer anderen öffentlichen Friendica-Website."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden. Besuche %s für eine Liste alternativer Friendica-Server, denen du beitreten kannst."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Es tut uns leid. Dieses System ist zurzeit nicht dafür konfiguriert, sich mit anderen öffentlichen Seiten zu verbinden oder Mitglieder einzuladen."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Friendica Server verbinden sich alle untereinander, um ein großes, datenschutzorientiertes Soziales Netzwerk zu bilden, das von seinen Mitgliedern betrieben und kontrolliert wird. Sie können sich auch mit vielen üblichen Sozialen Netzwerken verbinden."; +$a->strings["To accept this invitation, please visit and register at %s."] = "Um diese Kontaktanfrage zu akzeptieren, besuche und registriere dich bitte bei %s."; +$a->strings["Send invitations"] = "Einladungen senden"; +$a->strings["Enter email addresses, one per line:"] = "E-Mail-Adressen eingeben, eine pro Zeile:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Du bist herzlich dazu eingeladen, dich mir und anderen guten Freunden auf Friendica anzuschließen - und ein besseres, soziales Netz aufzubauen."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Du benötigst den folgenden Einladungscode: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Sobald du registriert bist, kontaktiere mich bitte auf meiner Profilseite:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "Für weitere Informationen über das Friendica-Projekt und warum wir es für ein wichtiges Projekt halten, besuche bitte http://friendi.ca."; $a->strings["Time Conversion"] = "Zeitumrechnung"; $a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica bietet diese Funktion an, um das Teilen von Events mit Kontakten zu vereinfachen, deren Zeitzone nicht ermittelt werden kann."; $a->strings["UTC time: %s"] = "UTC Zeit: %s"; $a->strings["Current timezone: %s"] = "Aktuelle Zeitzone: %s"; $a->strings["Converted localtime: %s"] = "Umgerechnete lokale Zeit: %s"; $a->strings["Please select your timezone:"] = "Bitte wähle Deine Zeitzone:"; -$a->strings["Bad Request."] = "Ungültige Anfrage."; +$a->strings["Create a New Account"] = "Neues Konto erstellen"; +$a->strings["Password: "] = "Passwort: "; +$a->strings["Remember me"] = "Anmeldedaten merken"; +$a->strings["Or login using OpenID: "] = "Oder melde dich mit deiner OpenID an: "; +$a->strings["Forgot your password?"] = "Passwort vergessen?"; +$a->strings["Website Terms of Service"] = "Website-Nutzungsbedingungen"; +$a->strings["terms of service"] = "Nutzungsbedingungen"; +$a->strings["Website Privacy Policy"] = "Website-Datenschutzerklärung"; +$a->strings["privacy policy"] = "Datenschutzerklärung"; +$a->strings["Logged out."] = "Abgemeldet."; +$a->strings["System down for maintenance"] = "System zur Wartung abgeschaltet"; +$a->strings["Page not found."] = "Seite nicht gefunden."; +$a->strings["Invalid photo with id %s."] = "Fehlerhaftes Foto mit der ID %s."; +$a->strings["%s's timeline"] = "Timeline von %s"; +$a->strings["%s's posts"] = "Beiträge von %s"; +$a->strings["%s's comments"] = "Kommentare von %s"; +$a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."] = "Du kannst dieses Formular auch (optional) mit deiner OpenID ausfüllen, indem du deine OpenID angibst und 'Registrieren' klickst."; +$a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Wenn du nicht mit OpenID vertraut bist, lass dieses Feld bitte leer und fülle die restlichen Felder aus."; +$a->strings["Your OpenID (optional): "] = "Deine OpenID (optional): "; +$a->strings["Include your profile in member directory?"] = "Soll dein Profil im Nutzerverzeichnis angezeigt werden?"; +$a->strings["Note for the admin"] = "Hinweis für den Admin"; +$a->strings["Leave a message for the admin, why you want to join this node"] = "Hinterlasse eine Nachricht an den Admin, warum du einen Account auf dieser Instanz haben möchtest."; +$a->strings["Membership on this site is by invitation only."] = "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."; +$a->strings["Your invitation code: "] = "Dein Ein­la­dungs­code"; +$a->strings["Your Full Name (e.g. Joe Smith, real or real-looking): "] = "Dein vollständiger Name (z.B. Hans Mustermann, echt oder echt erscheinend):"; +$a->strings["Your Email Address: (Initial information will be send there, so this has to be an existing address.)"] = "Deine E-Mail Adresse (Informationen zur Registrierung werden an diese Adresse gesendet, darum muss sie existieren.)"; +$a->strings["Leave empty for an auto generated password."] = "Leer lassen, um das Passwort automatisch zu generieren."; +$a->strings["Choose a profile nickname. This must begin with a text character. Your profile address on this site will then be \"nickname@%s\"."] = "Wähle einen Spitznamen für dein Profil. Dieser muss mit einem Buchstaben beginnen. Die Adresse deines Profils auf dieser Seite wird 'spitzname@%s' sein."; +$a->strings["Choose a nickname: "] = "Spitznamen wählen: "; +$a->strings["Import your profile to this friendica instance"] = "Importiere dein Profil auf diese Friendica-Instanz"; +$a->strings["Note: This node explicitly contains adult content"] = "Hinweis: Dieser Knoten enthält explizit Inhalte für Erwachsene"; +$a->strings["Registration successful. Please check your email for further instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an dich gesendet."; +$a->strings["Failed to send email message. Here your accout details:
    login: %s
    password: %s

    You can change your password after login."] = "Versenden der E-Mail fehlgeschlagen. Hier sind Deine Account-Details:\n\nLogin: %s\nPasswort: %s\n\nDu kannst das Passwort nach dem Anmelden ändern."; +$a->strings["Registration successful."] = "Registrierung erfolgreich."; +$a->strings["Your registration can not be processed."] = "Deine Registrierung konnte nicht verarbeitet werden."; +$a->strings["Your registration is pending approval by the site owner."] = "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden."; +$a->strings["Two-factor authentication successfully disabled."] = "Zwei-Faktor Authentifizierung erfolgreich deaktiviert."; +$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = "

    Benutze eine App auf dein Smartphone um einen Zwei-Faktor identifikations Code zu bekommen wenn beim Loggin das verlagt wird.

    "; +$a->strings["Authenticator app"] = "Zwei-Faktor Authentifizierungsapp"; +$a->strings["Configured"] = "Konfiguriert"; +$a->strings["Not Configured"] = "Nicht konfiguriert"; +$a->strings["

    You haven't finished configuring your authenticator app.

    "] = "

    Die Konfiguration deiner Zwei-Faktor Authentifizierungsapp ist nicht abgeschlossen.

    "; +$a->strings["

    Your authenticator app is correctly configured.

    "] = "

    Deine Zwei-Faktor Authentifizierungsapp ist nicht korrekt konfiguriert.

    "; +$a->strings["Recovery codes"] = "Wiederherstellungsschlüssel"; +$a->strings["Remaining valid codes"] = "Verbleibende Wiederherstellungsschlüssel"; +$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = "

    Diese Einmalcodes können einen Authentifikator-App-Code ersetzen, falls Sie den Zugriff darauf verloren haben.

    "; +$a->strings["Current password:"] = "Aktuelles Passwort:"; +$a->strings["You need to provide your current password to change two-factor authentication settings."] = "Du musst dein aktuelles Passwort eingeben um die Einstellungen der Zwei-Faktor-Authentifizierung zu ändern"; +$a->strings["Enable two-factor authentication"] = "Aktiviere die Zwei-Faktor-Authentifizierung"; +$a->strings["Disable two-factor authentication"] = "Deaktiviere die Zwei-Faktor-Authentifizierung"; +$a->strings["Show recovery codes"] = "Wiederherstellungscodes anzeigen"; +$a->strings["Finish app configuration"] = "Beenden Sie die App-Konfiguration"; +$a->strings["Please enter your password to access this page."] = "Bitte geben Sie Ihr Passwort ein, um auf diese Seite zuzugreifen."; +$a->strings["New recovery codes successfully generated."] = "Neue Wiederherstellungscodes erfolgreich generiert."; +$a->strings["Two-factor recovery codes"] = "Zwei-Faktor-Wiederherstellungscodes"; +$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = "

    Wiederherstellungscodes können verwendet werden, um auf Ihr Konto zuzugreifen, falls Sie den Zugriff auf Ihr Gerät verlieren und keine Zwei-Faktor-Authentifizierungscodes erhalten können.

    Bewahren Sie diese an einem sicheren Ort auf! Wenn Sie Ihr Gerät verlieren und nicht über die Wiederherstellungscodes verfügen, verlieren Sie den Zugriff auf Ihr Konto.

    "; +$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = "Wenn Sie neue Wiederherstellungscodes generieren, müssen Sie die neuen Codes kopieren. Ihre alten Codes funktionieren nicht mehr."; +$a->strings["Generate new recovery codes"] = "Generieren Sie neue Wiederherstellungscodes"; +$a->strings["Next: Verification"] = "Weiter: Überprüfung"; +$a->strings["Two-factor authentication successfully activated."] = "Zwei-Faktor-Authentifizierung erfolgreich aktiviert."; +$a->strings["Invalid code, please retry."] = "Ungültiger Code, bitte erneut versuchen."; +$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = "

    Oder Sie können die Authentifizierungseinstellungen manuell übermitteln:

    \n
    \n\tVerursacher\n\t
    %s
    \n\t
    Kontoname
    \n\t
    %s
    \n\t
    Geheimer Schlüssel
    \n\t
    %s
    \n\t
    Typ
    \n\t
    Zeitbasiert
    \n\t
    Anzahl an Ziffern
    \n\t
    6
    \n\t
    Hashing-Algorithmus
    \n\t
    SHA-1
    \n
    "; +$a->strings["Two-factor code verification"] = "Überprüfung des Zwei-Faktor-Codes"; +$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = "

    Bitte scannen Sie diesen QR-Code mit Ihrer Authentifikator-App und übermitteln Sie den bereitgestellten Code.

    "; +$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = "

    Oder Sie können die folgende URL in Ihrem Mobilgerät öffnen:

    %s

    "; +$a->strings["Please enter a code from your authentication app"] = "Bitte geben Sie einen Code aus Ihrer Authentifizierungs-App ein"; +$a->strings["Verify code and enable two-factor authentication"] = "Überprüfen Sie den Code und aktivieren Sie die Zwei-Faktor-Authentifizierung"; +$a->strings["Bad Request"] = "Ungültige Anfrage"; +$a->strings["Unauthorized"] = "Nicht autorisiert"; +$a->strings["Forbidden"] = "Verboten"; +$a->strings["Not Found"] = "Nicht gefunden"; +$a->strings["Internal Server Error"] = "Interner Serverfehler"; +$a->strings["Service Unavailable"] = "Dienst nicht verfügbar"; +$a->strings["The server cannot or will not process the request due to an apparent client error."] = "Aufgrund eines offensichtlichen Fehlers auf der Seite des Clients kann oder wird der Server die Anfrage nicht bearbeiten."; +$a->strings["Authentication is required and has failed or has not yet been provided."] = "Die erforderliche Authentifizierung ist fehlgeschlagen oder noch nicht erfolgt."; +$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "Die Anfrage war gültig, aber der Server verweigert die Ausführung. Der Benutzer verfügt möglicherweise nicht über die erforderlichen Berechtigungen oder benötigt ein Nutzerkonto."; +$a->strings["The requested resource could not be found but may be available in the future."] = "Die angeforderte Ressource konnte nicht gefunden werden, sie könnte allerdings zu einem späteren Zeitpunkt verfügbar sein."; +$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "Eine unerwartete Situation ist eingetreten, zu der keine detailliertere Nachricht vorliegt."; +$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "Der Server ist derzeit nicht verfügbar (wegen Überlastung oder Wartungsarbeiten). Bitte versuche es später noch einmal."; +$a->strings["Go back"] = "Geh zurück"; +$a->strings["At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."] = "Zum Zwecke der Registrierung und um die Kommunikation zwischen dem Nutzer und seinen Kontakten zu gewährleisten, muß der Nutzer einen Namen (auch Pseudonym) und einen Nutzernamen (Spitzname) sowie eine funktionierende E-Mail-Adresse angeben. Der Name ist auf der Profilseite für alle Nutzer sichtbar, auch wenn die Profildetails nicht angezeigt werden.\nDie E-Mail-Adresse wird nur zur Benachrichtigung des Nutzers verwendet, sie wird nirgends angezeigt. Die Anzeige des Nutzerkontos im Server-Verzeichnis bzw. dem weltweiten Verzeichnis erfolgt gemäß den Einstellungen des Nutzers, sie ist zur Kommunikation nicht zwingend notwendig."; +$a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = "Diese Daten sind für die Kommunikation notwendig und werden an die Knoten der Kommunikationspartner übermittelt und dort gespeichert. Nutzer können weitere, private Angaben machen, die ebenfalls an die verwendeten Server der Kommunikationspartner übermittelt werden können."; +$a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = "Angemeldete Nutzer können ihre Nutzerdaten jederzeit von den Kontoeinstellungen aus exportieren. Wenn ein Nutzer wünscht das Nutzerkonto zu löschen, so ist dies jederzeit unter %1\$s/removeme möglich. Die Löschung des Nutzerkontos ist permanent. Die Löschung der Daten wird auch von den Knoten der Kommunikationspartner angefordert."; +$a->strings["Privacy Statement"] = "Datenschutzerklärung"; +$a->strings["Remaining recovery codes: %d"] = "Verbleibende Wiederherstellungscodes: %d"; +$a->strings["Two-factor recovery"] = "Zwei-Faktor-Wiederherstellung"; +$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = "

    Sie können einen Ihrer einmaligen Wiederherstellungscodes eingeben, falls Sie den Zugriff auf Ihr Mobilgerät verloren haben.

    "; +$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = "Hast du dein Handy nicht? Geben Sie einen Zwei-Faktor-Wiederherstellungscode ein"; +$a->strings["Please enter a recovery code"] = "Bitte geben Sie einen Wiederherstellungscode ein"; +$a->strings["Submit recovery code and complete login"] = "Senden Sie den Wiederherstellungscode und schließen Sie die Anmeldung ab"; +$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = "

    Öffnen Sie die Zwei-Faktor-Authentifizierungs-App auf Ihrem Gerät, um einen Authentifizierungscode abzurufen und Ihre Identität zu überprüfen.

    "; +$a->strings["Verify code and complete login"] = "Code überprüfen und Anmeldung abschließen"; $a->strings["This entry was edited"] = "Dieser Beitrag wurde bearbeitet."; +$a->strings["Private Message"] = "Private Nachricht"; $a->strings["Delete locally"] = "Lokal löschen"; $a->strings["Delete globally"] = "Global löschen"; $a->strings["Remove locally"] = "Lokal entfernen"; @@ -2267,11 +2260,76 @@ $a->strings["%d comment"] = [ ]; $a->strings["Show more"] = "Zeige mehr"; $a->strings["Show fewer"] = "Zeige weniger"; -$a->strings["Legacy module file not found: %s"] = "Legacy-Moduldatei nicht gefunden: %s"; -$a->strings["Delete this item?"] = "Diesen Beitrag löschen?"; -$a->strings["toggle mobile"] = "mobile Ansicht umschalten"; -$a->strings["No system theme config value set."] = "Es wurde kein Konfigurationswert für das systemweite Theme gesetzt."; -$a->strings["You must be logged in to use addons. "] = "Du musst angemeldet sein, um Addons benutzen zu können."; -$a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Das Sicherheitsmerkmal war nicht korrekt. Das passiert meistens, wenn das Formular vor dem Absenden zu lange geöffnet war (länger als 3 Stunden)."; +$a->strings["Sharing notification from Diaspora network"] = "Freigabe-Benachrichtigung von Diaspora"; +$a->strings["Attachments:"] = "Anhänge:"; +$a->strings["%s is now following %s."] = "%s folgt nun %s"; +$a->strings["following"] = "folgen"; +$a->strings["%s stopped following %s."] = "%s hat aufgehört %s, zu folgen"; +$a->strings["stopped following"] = "wird nicht mehr gefolgt"; +$a->strings["YYYY-MM-DD or MM-DD"] = "YYYY-MM-DD oder MM-DD"; +$a->strings["never"] = "nie"; +$a->strings["less than a second ago"] = "vor weniger als einer Sekunde"; +$a->strings["year"] = "Jahr"; +$a->strings["years"] = "Jahre"; +$a->strings["months"] = "Monate"; +$a->strings["weeks"] = "Wochen"; +$a->strings["days"] = "Tage"; +$a->strings["hour"] = "Stunde"; +$a->strings["hours"] = "Stunden"; +$a->strings["minute"] = "Minute"; +$a->strings["minutes"] = "Minuten"; +$a->strings["second"] = "Sekunde"; +$a->strings["seconds"] = "Sekunden"; +$a->strings["in %1\$d %2\$s"] = "in %1\$d %2\$s"; +$a->strings["%1\$d %2\$s ago"] = "vor %1\$d %2\$s"; +$a->strings["(no subject)"] = "(kein Betreff)"; $a->strings["%s: Updating author-id and owner-id in item and thread table. "] = "%s: Aktualisiere die author-id und owner-id in der Thread Tabelle"; $a->strings["%s: Updating post-type."] = "%s: Aktualisiere Beitrags-Typ"; +$a->strings["greenzero"] = "greenzero"; +$a->strings["purplezero"] = "purplezero"; +$a->strings["easterbunny"] = "easterbunny"; +$a->strings["darkzero"] = "darkzero"; +$a->strings["comix"] = "comix"; +$a->strings["slackr"] = "slackr"; +$a->strings["Variations"] = "Variationen"; +$a->strings["Custom"] = "Benutzerdefiniert"; +$a->strings["Note"] = "Hinweis"; +$a->strings["Check image permissions if all users are allowed to see the image"] = "Überprüfe, dass alle Benutzer die Berechtigung haben dieses Bild anzusehen"; +$a->strings["Select color scheme"] = "Farbschema auswählen"; +$a->strings["Copy or paste schemestring"] = "Farbschema kopieren oder einfügen"; +$a->strings["You can copy this string to share your theme with others. Pasting here applies the schemestring"] = "Du kannst den String mit den Farbschema Informationen mit anderen Teilen. Wenn du einen neuen Farbschema-String hier einfügst wird er für deine Einstellungen übernommen."; +$a->strings["Navigation bar background color"] = "Hintergrundfarbe der Navigationsleiste"; +$a->strings["Navigation bar icon color "] = "Icon Farbe in der Navigationsleiste"; +$a->strings["Link color"] = "Linkfarbe"; +$a->strings["Set the background color"] = "Hintergrundfarbe festlegen"; +$a->strings["Content background opacity"] = "Opazität des Hintergrunds von Beiträgen"; +$a->strings["Set the background image"] = "Hintergrundbild festlegen"; +$a->strings["Background image style"] = "Stil des Hintergrundbildes"; +$a->strings["Login page background image"] = "Hintergrundbild der Login-Seite"; +$a->strings["Login page background color"] = "Hintergrundfarbe der Login-Seite"; +$a->strings["Leave background image and color empty for theme defaults"] = "Wenn die Theme-Vorgaben verwendet werden sollen, lass bitte die Felder für die Hintergrundfarbe und das Hintergrundbild leer."; +$a->strings["Top Banner"] = "Top Banner"; +$a->strings["Resize image to the width of the screen and show background color below on long pages."] = "Skaliere das Hintergrundbild so, dass es die Breite der Seite einnimmt, und fülle den Rest der Seite mit der Hintergrundfarbe bei langen Seiten."; +$a->strings["Full screen"] = "Vollbildmodus"; +$a->strings["Resize image to fill entire screen, clipping either the right or the bottom."] = "Skaliere das Bild so, dass es den gesamten Bildschirm füllt. Hierfür wird entweder die Breite oder die Höhe des Bildes automatisch abgeschnitten."; +$a->strings["Single row mosaic"] = "Mosaik in einer Zeile"; +$a->strings["Resize image to repeat it on a single row, either vertical or horizontal."] = "Skaliere das Bild so, dass es in einer einzelnen Reihe, entweder horizontal oder vertikal, wiederholt wird."; +$a->strings["Mosaic"] = "Mosaik"; +$a->strings["Repeat image to fill the screen."] = "Wiederhole das Bild, um den Bildschirm zu füllen."; +$a->strings["Guest"] = "Gast"; +$a->strings["Visitor"] = "Besucher"; +$a->strings["Alignment"] = "Ausrichtung"; +$a->strings["Left"] = "Links"; +$a->strings["Center"] = "Mitte"; +$a->strings["Color scheme"] = "Farbschema"; +$a->strings["Posts font size"] = "Schriftgröße in Beiträgen"; +$a->strings["Textareas font size"] = "Schriftgröße in Eingabefeldern"; +$a->strings["Comma separated list of helper forums"] = "Komma-separierte Liste der Helfer-Foren"; +$a->strings["Set style"] = "Stil auswählen"; +$a->strings["Community Pages"] = "Foren"; +$a->strings["Community Profiles"] = "Community-Profile"; +$a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere"; +$a->strings["Connect Services"] = "Verbinde Dienste"; +$a->strings["Find Friends"] = "Kontakte finden"; +$a->strings["Last users"] = "Letzte Nutzer"; +$a->strings["Quick Start"] = "Schnell-Start"; From ed1f96bf76beee74214d84c40d387c5e023f56a9 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 22 Jun 2019 07:40:10 +0200 Subject: [PATCH 638/653] update FR translations THX Valvin A. --- view/lang/fr/messages.po | 7973 ++++++++++++++++++++------------------ view/lang/fr/strings.php | 1308 ++++--- 2 files changed, 4898 insertions(+), 4383 deletions(-) diff --git a/view/lang/fr/messages.po b/view/lang/fr/messages.po index 8a4a4b7f7..683361a0a 100644 --- a/view/lang/fr/messages.po +++ b/view/lang/fr/messages.po @@ -22,15 +22,16 @@ # Thecross, 2017 # tomamplius , 2014 # Tubuntu , 2013-2015 +# Valvin A , 2019 # Vincent Vindarel , 2018 # Vladimir Núñez , 2018 msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-15 09:33-0500\n" -"PO-Revision-Date: 2019-02-20 15:30+0000\n" -"Last-Translator: Hypolite Petovan \n" +"POT-Creation-Date: 2019-05-15 08:55-0400\n" +"PO-Revision-Date: 2019-05-27 20:26+0000\n" +"Last-Translator: Valvin A \n" "Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -38,14 +39,14 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: include/api.php:1179 +#: include/api.php:1116 #, php-format msgid "Daily posting limit of %d post reached. The post was rejected." msgid_plural "Daily posting limit of %d posts reached. The post was rejected." msgstr[0] "Limite quotidienne d'%d publication atteinte. La publication a été rejetée." msgstr[1] "Limite quotidienne de %d publications atteinte. La publication a été rejetée." -#: include/api.php:1193 +#: include/api.php:1130 #, php-format msgid "Weekly posting limit of %d post reached. The post was rejected." msgid_plural "" @@ -53,33 +54,33 @@ msgid_plural "" msgstr[0] "Limite hebdomadaire d'%d unique publication atteinte, votre soumission a été rejetée." msgstr[1] "Limite hebdomadaire de %d publications atteinte, votre soumission a été rejetée." -#: include/api.php:1207 +#: include/api.php:1144 #, php-format msgid "Monthly posting limit of %d post reached. The post was rejected." msgstr "La limite mensuelle de%d publication est atteinte. Votre publication a été rejetée." -#: include/api.php:4578 mod/photos.php:93 mod/photos.php:201 -#: mod/photos.php:695 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1636 mod/profile_photo.php:85 mod/profile_photo.php:94 +#: include/api.php:4511 mod/photos.php:91 mod/photos.php:193 +#: mod/photos.php:636 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1601 mod/profile_photo.php:85 mod/profile_photo.php:94 #: mod/profile_photo.php:103 mod/profile_photo.php:217 -#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:736 -#: src/Model/User.php:744 src/Model/User.php:752 +#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:763 +#: src/Model/User.php:771 src/Model/User.php:779 msgid "Profile Photos" msgstr "Photos du profil" #: include/conversation.php:160 include/conversation.php:297 -#: src/Model/Item.php:3283 +#: src/Model/Item.php:3253 msgid "event" msgstr "événement" #: include/conversation.php:163 include/conversation.php:173 #: include/conversation.php:300 include/conversation.php:309 -#: mod/subthread.php:88 mod/tagger.php:70 +#: mod/subthread.php:88 mod/tagger.php:68 msgid "status" msgstr "le statut" #: include/conversation.php:168 include/conversation.php:305 -#: mod/subthread.php:88 mod/tagger.php:70 src/Model/Item.php:3285 +#: mod/subthread.php:88 mod/tagger.php:68 src/Model/Item.php:3255 msgid "photo" msgstr "photo" @@ -118,7 +119,7 @@ msgstr "%1$s est désormais lié à %2$s" msgid "%1$s poked %2$s" msgstr "%1$s a sollicité %2$s" -#: include/conversation.php:319 mod/tagger.php:108 +#: include/conversation.php:319 mod/tagger.php:101 #, php-format msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s a étiqueté %3$s de %2$s avec %4$s" @@ -132,379 +133,408 @@ msgstr "publication/élément" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s a marqué le %3$s de %2$s comme favori" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:352 +#: include/conversation.php:568 mod/photos.php:1433 mod/profiles.php:352 msgid "Likes" msgstr "Derniers \"J'aime\"" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:355 +#: include/conversation.php:569 mod/photos.php:1433 mod/profiles.php:355 msgid "Dislikes" msgstr "Derniers \"Je n'aime pas\"" -#: include/conversation.php:569 include/conversation.php:1505 -#: mod/photos.php:1468 +#: include/conversation.php:570 include/conversation.php:1564 +#: mod/photos.php:1434 msgid "Attending" msgid_plural "Attending" msgstr[0] "Participe" msgstr[1] "Participent" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:571 mod/photos.php:1434 msgid "Not attending" msgstr "Ne participe pas" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:572 mod/photos.php:1434 msgid "Might attend" msgstr "Participera peut-être" -#: include/conversation.php:649 mod/photos.php:1524 src/Object/Post.php:207 +#: include/conversation.php:573 +msgid "Reshares" +msgstr "Partages" + +#: include/conversation.php:653 mod/photos.php:1490 src/Object/Post.php:208 msgid "Select" msgstr "Sélectionner" -#: include/conversation.php:650 mod/admin.php:2072 mod/photos.php:1525 -#: mod/settings.php:726 src/Module/Contact.php:827 src/Module/Contact.php:1102 +#: include/conversation.php:654 mod/photos.php:1491 mod/settings.php:735 +#: src/Module/Admin/Users.php:288 src/Module/Contact.php:830 +#: src/Module/Contact.php:1105 msgid "Delete" msgstr "Supprimer" -#: include/conversation.php:684 src/Object/Post.php:380 -#: src/Object/Post.php:381 +#: include/conversation.php:679 src/Object/Post.php:382 +#: src/Object/Post.php:383 #, php-format msgid "View %s's profile @ %s" msgstr "Voir le profil de %s @ %s" -#: include/conversation.php:696 src/Object/Post.php:368 +#: include/conversation.php:692 src/Object/Post.php:370 msgid "Categories:" msgstr "Catégories :" -#: include/conversation.php:697 src/Object/Post.php:369 +#: include/conversation.php:693 src/Object/Post.php:371 msgid "Filed under:" msgstr "Rangé sous :" -#: include/conversation.php:704 src/Object/Post.php:394 +#: include/conversation.php:700 src/Object/Post.php:396 #, php-format msgid "%s from %s" msgstr "%s de %s" -#: include/conversation.php:719 +#: include/conversation.php:715 msgid "View in context" msgstr "Voir dans le contexte" -#: include/conversation.php:721 include/conversation.php:1171 -#: mod/editpost.php:88 mod/message.php:260 mod/message.php:442 -#: mod/photos.php:1440 mod/wallmessage.php:141 src/Object/Post.php:421 +#: include/conversation.php:717 include/conversation.php:1230 +#: mod/editpost.php:86 mod/message.php:260 mod/message.php:442 +#: mod/photos.php:1406 mod/wallmessage.php:141 src/Object/Post.php:423 msgid "Please wait" msgstr "Patientez" -#: include/conversation.php:785 +#: include/conversation.php:781 msgid "remove" msgstr "enlever" -#: include/conversation.php:789 +#: include/conversation.php:785 msgid "Delete Selected Items" msgstr "Supprimer les éléments sélectionnés" -#: include/conversation.php:893 view/theme/frio/theme.php:358 +#: include/conversation.php:940 view/theme/frio/theme.php:358 msgid "Follow Thread" msgstr "Suivre le fil" -#: include/conversation.php:894 src/Model/Contact.php:1049 +#: include/conversation.php:941 src/Model/Contact.php:1111 msgid "View Status" msgstr "Voir les statuts" -#: include/conversation.php:895 include/conversation.php:911 -#: mod/allfriends.php:72 mod/directory.php:167 mod/dirfind.php:226 -#: mod/match.php:87 mod/suggest.php:87 src/Model/Contact.php:989 -#: src/Model/Contact.php:1042 src/Model/Contact.php:1050 +#: include/conversation.php:942 include/conversation.php:960 +#: mod/dirfind.php:226 mod/match.php:87 mod/suggest.php:87 +#: src/Model/Contact.php:1051 src/Model/Contact.php:1104 +#: src/Model/Contact.php:1112 src/Module/AllFriends.php:74 +#: src/Module/Directory.php:155 msgid "View Profile" msgstr "Voir le profil" -#: include/conversation.php:896 src/Model/Contact.php:1051 +#: include/conversation.php:943 src/Model/Contact.php:1113 msgid "View Photos" msgstr "Voir les photos" -#: include/conversation.php:897 src/Model/Contact.php:1043 -#: src/Model/Contact.php:1052 +#: include/conversation.php:944 src/Model/Contact.php:1105 +#: src/Model/Contact.php:1114 msgid "Network Posts" msgstr "Publications du réseau" -#: include/conversation.php:898 src/Model/Contact.php:1044 -#: src/Model/Contact.php:1053 +#: include/conversation.php:945 src/Model/Contact.php:1106 +#: src/Model/Contact.php:1115 msgid "View Contact" msgstr "Voir Contact" -#: include/conversation.php:899 src/Model/Contact.php:1055 +#: include/conversation.php:946 src/Model/Contact.php:1117 msgid "Send PM" msgstr "Message privé" -#: include/conversation.php:903 src/Model/Contact.php:1056 +#: include/conversation.php:947 src/Module/Admin/Blocklist/Contact.php:66 +#: src/Module/Admin/Users.php:289 src/Module/Contact.php:624 +#: src/Module/Contact.php:827 src/Module/Contact.php:1080 +msgid "Block" +msgstr "Bloquer" + +#: include/conversation.php:948 mod/notifications.php:60 +#: mod/notifications.php:186 mod/notifications.php:279 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 +msgid "Ignore" +msgstr "Ignorer" + +#: include/conversation.php:952 src/Model/Contact.php:1118 msgid "Poke" msgstr "Sollicitations (pokes)" -#: include/conversation.php:908 mod/allfriends.php:73 mod/dirfind.php:227 -#: mod/follow.php:147 mod/match.php:88 mod/suggest.php:88 -#: src/Content/Widget.php:63 src/Model/Contact.php:1045 -#: src/Module/Contact.php:574 view/theme/vier/theme.php:201 +#: include/conversation.php:957 mod/dirfind.php:227 mod/follow.php:158 +#: mod/match.php:88 mod/suggest.php:88 src/Content/Widget.php:63 +#: src/Model/Contact.php:1107 src/Module/AllFriends.php:75 +#: src/Module/Contact.php:577 view/theme/vier/theme.php:201 msgid "Connect/Follow" msgstr "Se connecter/Suivre" -#: include/conversation.php:1030 +#: include/conversation.php:1082 #, php-format msgid "%s likes this." msgstr "%s aime ça." -#: include/conversation.php:1033 +#: include/conversation.php:1085 #, php-format msgid "%s doesn't like this." msgstr "%s n'aime pas ça." -#: include/conversation.php:1036 +#: include/conversation.php:1088 #, php-format msgid "%s attends." msgstr "%s participe" -#: include/conversation.php:1039 +#: include/conversation.php:1091 #, php-format msgid "%s doesn't attend." msgstr "%s ne participe pas" -#: include/conversation.php:1042 +#: include/conversation.php:1094 #, php-format msgid "%s attends maybe." msgstr "%s participe peut-être" -#: include/conversation.php:1050 +#: include/conversation.php:1097 include/conversation.php:1140 +#, php-format +msgid "%s reshared this." +msgstr "%sa partagé ceci." + +#: include/conversation.php:1105 msgid "and" msgstr "et" -#: include/conversation.php:1056 +#: include/conversation.php:1111 #, php-format msgid "and %d other people" msgstr "et %dautres personnes" -#: include/conversation.php:1064 +#: include/conversation.php:1119 #, php-format msgid "%2$d people like this" msgstr "%2$d personnes aiment ça" -#: include/conversation.php:1065 +#: include/conversation.php:1120 #, php-format msgid "%s like this." msgstr "%s aime ça." -#: include/conversation.php:1068 +#: include/conversation.php:1123 #, php-format msgid "%2$d people don't like this" msgstr "%2$d personnes n'aiment pas ça" -#: include/conversation.php:1069 +#: include/conversation.php:1124 #, php-format msgid "%s don't like this." msgstr "%s n'aiment pas ça." -#: include/conversation.php:1072 +#: include/conversation.php:1127 #, php-format msgid "%2$d people attend" msgstr "%2$d personnes participent" -#: include/conversation.php:1073 +#: include/conversation.php:1128 #, php-format msgid "%s attend." msgstr "%s participent." -#: include/conversation.php:1076 +#: include/conversation.php:1131 #, php-format msgid "%2$d people don't attend" msgstr "%2$d personnes ne participent pas" -#: include/conversation.php:1077 +#: include/conversation.php:1132 #, php-format msgid "%s don't attend." msgstr "%s ne participent pas." -#: include/conversation.php:1080 +#: include/conversation.php:1135 #, php-format msgid "%2$d people attend maybe" msgstr "%2$d personnes vont peut-être participer" -#: include/conversation.php:1081 +#: include/conversation.php:1136 #, php-format msgid "%s attend maybe." msgstr "%sparticipent peut-être" -#: include/conversation.php:1110 +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people reshared this" +msgstr "%2$dpersonnesont partagé ceci" + +#: include/conversation.php:1169 msgid "Visible to everybody" msgstr "Visible par tout le monde" -#: include/conversation.php:1111 src/Object/Post.php:883 +#: include/conversation.php:1170 src/Object/Post.php:886 msgid "Please enter a image/video/audio/webpage URL:" msgstr "Veuillez entrer une URL d'image/vidéo/page web." -#: include/conversation.php:1112 +#: include/conversation.php:1171 msgid "Tag term:" msgstr "Étiquette :" -#: include/conversation.php:1113 mod/filer.php:35 +#: include/conversation.php:1172 src/Module/Filer/SaveTag.php:49 msgid "Save to Folder:" msgstr "Sauver dans le Dossier :" -#: include/conversation.php:1114 +#: include/conversation.php:1173 msgid "Where are you right now?" msgstr "Où êtes-vous actuellement ?" -#: include/conversation.php:1115 +#: include/conversation.php:1174 msgid "Delete item(s)?" msgstr "Supprimer les élément(s) ?" -#: include/conversation.php:1147 +#: include/conversation.php:1206 msgid "New Post" msgstr "Nouvelle publication" -#: include/conversation.php:1150 +#: include/conversation.php:1209 msgid "Share" msgstr "Partager" -#: include/conversation.php:1151 mod/editpost.php:74 mod/message.php:258 +#: include/conversation.php:1210 mod/editpost.php:72 mod/message.php:258 #: mod/message.php:439 mod/wallmessage.php:139 msgid "Upload photo" msgstr "Joindre photo" -#: include/conversation.php:1152 mod/editpost.php:75 +#: include/conversation.php:1211 mod/editpost.php:73 msgid "upload photo" msgstr "envoi image" -#: include/conversation.php:1153 mod/editpost.php:76 +#: include/conversation.php:1212 mod/editpost.php:74 msgid "Attach file" msgstr "Joindre fichier" -#: include/conversation.php:1154 mod/editpost.php:77 +#: include/conversation.php:1213 mod/editpost.php:75 msgid "attach file" msgstr "ajout fichier" -#: include/conversation.php:1155 src/Object/Post.php:875 +#: include/conversation.php:1214 src/Object/Post.php:878 msgid "Bold" msgstr "Gras" -#: include/conversation.php:1156 src/Object/Post.php:876 +#: include/conversation.php:1215 src/Object/Post.php:879 msgid "Italic" msgstr "Italique" -#: include/conversation.php:1157 src/Object/Post.php:877 +#: include/conversation.php:1216 src/Object/Post.php:880 msgid "Underline" msgstr "Souligné" -#: include/conversation.php:1158 src/Object/Post.php:878 +#: include/conversation.php:1217 src/Object/Post.php:881 msgid "Quote" msgstr "Citation" -#: include/conversation.php:1159 src/Object/Post.php:879 +#: include/conversation.php:1218 src/Object/Post.php:882 msgid "Code" msgstr "Code" -#: include/conversation.php:1160 src/Object/Post.php:880 +#: include/conversation.php:1219 src/Object/Post.php:883 msgid "Image" msgstr "Image" -#: include/conversation.php:1161 src/Object/Post.php:881 +#: include/conversation.php:1220 src/Object/Post.php:884 msgid "Link" msgstr "Lien" -#: include/conversation.php:1162 src/Object/Post.php:882 +#: include/conversation.php:1221 src/Object/Post.php:885 msgid "Link or Media" msgstr "Lien ou média" -#: include/conversation.php:1163 mod/editpost.php:84 +#: include/conversation.php:1222 mod/editpost.php:82 msgid "Set your location" msgstr "Définir votre localisation" -#: include/conversation.php:1164 mod/editpost.php:85 +#: include/conversation.php:1223 mod/editpost.php:83 msgid "set location" msgstr "spéc. localisation" -#: include/conversation.php:1165 mod/editpost.php:86 +#: include/conversation.php:1224 mod/editpost.php:84 msgid "Clear browser location" msgstr "Effacer la localisation du navigateur" -#: include/conversation.php:1166 mod/editpost.php:87 +#: include/conversation.php:1225 mod/editpost.php:85 msgid "clear location" msgstr "supp. localisation" -#: include/conversation.php:1168 mod/editpost.php:102 +#: include/conversation.php:1227 mod/editpost.php:99 msgid "Set title" msgstr "Définir un titre" -#: include/conversation.php:1170 mod/editpost.php:104 +#: include/conversation.php:1229 mod/editpost.php:101 msgid "Categories (comma-separated list)" msgstr "Catégories (séparées par des virgules)" -#: include/conversation.php:1172 mod/editpost.php:89 +#: include/conversation.php:1231 mod/editpost.php:87 msgid "Permission settings" msgstr "Réglages des permissions" -#: include/conversation.php:1173 mod/editpost.php:119 +#: include/conversation.php:1232 mod/editpost.php:116 msgid "permissions" msgstr "permissions" -#: include/conversation.php:1182 mod/editpost.php:99 +#: include/conversation.php:1241 mod/editpost.php:96 msgid "Public post" msgstr "Publication publique" -#: include/conversation.php:1186 mod/editpost.php:110 mod/events.php:551 -#: mod/photos.php:1458 mod/photos.php:1497 mod/photos.php:1557 -#: src/Object/Post.php:884 +#: include/conversation.php:1245 mod/editpost.php:107 mod/events.php:549 +#: mod/photos.php:1424 mod/photos.php:1463 mod/photos.php:1523 +#: src/Object/Post.php:887 msgid "Preview" msgstr "Aperçu" -#: include/conversation.php:1190 include/items.php:396 -#: mod/dfrn_request.php:650 mod/editpost.php:113 mod/fbrowser.php:104 -#: mod/fbrowser.php:134 mod/follow.php:161 mod/message.php:153 -#: mod/photos.php:257 mod/photos.php:325 mod/settings.php:666 -#: mod/settings.php:692 mod/suggest.php:44 mod/tagrm.php:20 mod/tagrm.php:115 -#: mod/unfollow.php:132 mod/videos.php:105 src/Module/Contact.php:447 +#: include/conversation.php:1249 include/items.php:397 +#: mod/dfrn_request.php:650 mod/editpost.php:110 mod/fbrowser.php:110 +#: mod/fbrowser.php:139 mod/follow.php:172 mod/message.php:153 +#: mod/photos.php:1076 mod/photos.php:1183 mod/settings.php:675 +#: mod/settings.php:701 mod/suggest.php:76 mod/tagrm.php:20 mod/tagrm.php:115 +#: mod/unfollow.php:132 src/Module/Contact.php:450 msgid "Cancel" msgstr "Annuler" -#: include/conversation.php:1195 +#: include/conversation.php:1254 msgid "Post to Groups" msgstr "Publier aux groupes" -#: include/conversation.php:1196 +#: include/conversation.php:1255 msgid "Post to Contacts" msgstr "Publier aux contacts" -#: include/conversation.php:1197 +#: include/conversation.php:1256 msgid "Private post" msgstr "Message privé" -#: include/conversation.php:1202 mod/editpost.php:117 -#: src/Model/Profile.php:370 +#: include/conversation.php:1261 mod/editpost.php:114 +#: src/Model/Profile.php:366 msgid "Message" msgstr "Message" -#: include/conversation.php:1203 mod/editpost.php:118 +#: include/conversation.php:1262 mod/editpost.php:115 msgid "Browser" msgstr "Navigateur" -#: include/conversation.php:1475 +#: include/conversation.php:1534 msgid "View all" msgstr "Voir tout" -#: include/conversation.php:1499 +#: include/conversation.php:1558 msgid "Like" msgid_plural "Likes" msgstr[0] "Like" msgstr[1] "Likes" -#: include/conversation.php:1502 +#: include/conversation.php:1561 msgid "Dislike" msgid_plural "Dislikes" msgstr[0] "Dislike" msgstr[1] "Dislikes" -#: include/conversation.php:1508 +#: include/conversation.php:1567 msgid "Not Attending" msgid_plural "Not Attending" msgstr[0] "Ne participe pas" msgstr[1] "Ne participent pas" -#: include/conversation.php:1511 src/Content/ContactSelector.php:167 +#: include/conversation.php:1570 src/Content/ContactSelector.php:167 msgid "Undecided" msgid_plural "Undecided" msgstr[0] "Indécis" @@ -825,2048 +855,58 @@ msgstr "Nom complet :\t%s\nAdresse du site :\t%s\nIdentifiant :\t%s (%s)" msgid "Please visit %s to approve or reject the request." msgstr "Veuillez visiter %s pour approuver ou rejeter la demande." -#: include/items.php:353 mod/admin.php:302 mod/admin.php:2131 -#: mod/admin.php:2378 mod/notice.php:20 mod/viewsrc.php:22 +#: include/items.php:354 mod/notice.php:19 +#: src/Module/Admin/Themes/Details.php:53 src/Module/Admin/Themes/Index.php:41 +#: src/Module/ItemBody.php:27 src/Module/ItemBody.php:40 msgid "Item not found." msgstr "Élément introuvable." -#: include/items.php:391 +#: include/items.php:392 msgid "Do you really want to delete this item?" msgstr "Voulez-vous vraiment supprimer cet élément ?" -#: include/items.php:393 mod/api.php:109 mod/dfrn_request.php:640 -#: mod/follow.php:150 mod/message.php:150 mod/profiles.php:526 -#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1085 -#: mod/settings.php:1091 mod/settings.php:1098 mod/settings.php:1102 -#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1114 -#: mod/settings.php:1118 mod/settings.php:1138 mod/settings.php:1139 -#: mod/settings.php:1140 mod/settings.php:1141 mod/settings.php:1142 -#: mod/suggest.php:41 src/Module/Contact.php:444 src/Module/Register.php:97 +#: include/items.php:394 mod/api.php:109 mod/dfrn_request.php:640 +#: mod/follow.php:161 mod/message.php:150 mod/profiles.php:526 +#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1084 +#: mod/settings.php:1090 mod/settings.php:1097 mod/settings.php:1101 +#: mod/settings.php:1105 mod/settings.php:1109 mod/settings.php:1113 +#: mod/settings.php:1117 mod/settings.php:1137 mod/settings.php:1138 +#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 +#: mod/suggest.php:73 src/Module/Contact.php:447 src/Module/Register.php:97 msgid "Yes" msgstr "Oui" -#: include/items.php:443 mod/allfriends.php:22 mod/api.php:34 mod/api.php:39 -#: mod/cal.php:303 mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 -#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:66 -#: mod/dirfind.php:29 mod/editpost.php:22 mod/events.php:207 mod/follow.php:57 -#: mod/follow.php:121 mod/fsuggest.php:77 mod/group.php:28 mod/invite.php:23 -#: mod/invite.php:111 mod/item.php:167 mod/manage.php:129 mod/message.php:56 -#: mod/message.php:101 mod/network.php:35 mod/nogroup.php:18 mod/notes.php:27 -#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:186 -#: mod/photos.php:1020 mod/poke.php:141 mod/profiles.php:182 +#: include/items.php:444 mod/api.php:34 mod/api.php:39 mod/cal.php:301 +#: mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 +#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:64 +#: mod/dirfind.php:29 mod/editpost.php:21 mod/events.php:207 mod/follow.php:57 +#: mod/follow.php:132 mod/fsuggest.php:77 mod/item.php:169 mod/manage.php:130 +#: mod/message.php:56 mod/message.php:101 mod/network.php:36 mod/notes.php:27 +#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:178 +#: mod/photos.php:958 mod/poke.php:141 mod/profiles.php:182 #: mod/profiles.php:499 mod/profile_photo.php:32 mod/profile_photo.php:177 #: mod/profile_photo.php:204 mod/regmod.php:89 mod/repair_ostatus.php:16 -#: mod/settings.php:48 mod/settings.php:154 mod/settings.php:655 -#: mod/suggest.php:62 mod/uimport.php:17 mod/unfollow.php:22 +#: mod/settings.php:50 mod/settings.php:163 mod/settings.php:664 +#: mod/suggest.php:39 mod/uimport.php:17 mod/unfollow.php:22 #: mod/unfollow.php:77 mod/unfollow.php:109 mod/viewcontacts.php:56 #: mod/wallmessage.php:19 mod/wallmessage.php:43 mod/wallmessage.php:82 #: mod/wallmessage.php:106 mod/wall_attach.php:76 mod/wall_attach.php:79 -#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/App.php:1480 -#: src/Module/Attach.php:42 src/Module/Contact.php:360 -#: src/Module/Register.php:193 +#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/Module/Attach.php:42 +#: src/Module/Contact.php:362 src/Module/FollowConfirm.php:27 +#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22 +#: src/Module/Invite.php:110 src/Module/Register.php:192 msgid "Permission denied." msgstr "Permission refusée." -#: include/items.php:514 src/Content/Feature.php:99 +#: include/items.php:515 src/Content/Feature.php:99 msgid "Archives" msgstr "Archives" -#: include/items.php:520 src/Content/ForumManager.php:135 +#: include/items.php:521 src/Content/ForumManager.php:135 #: src/Content/Widget.php:329 view/theme/vier/theme.php:255 msgid "show more" msgstr "montrer plus" -#: mod/admin.php:122 -msgid "Theme settings updated." -msgstr "Réglages du thème sauvés." - -#: mod/admin.php:196 src/Content/Nav.php:231 -msgid "Information" -msgstr "Information" - -#: mod/admin.php:197 -msgid "Overview" -msgstr "Synthèse" - -#: mod/admin.php:198 mod/admin.php:779 -msgid "Federation Statistics" -msgstr "Statistiques Federation" - -#: mod/admin.php:199 -msgid "Configuration" -msgstr "Configuration" - -#: mod/admin.php:200 mod/admin.php:1581 -msgid "Site" -msgstr "Site" - -#: mod/admin.php:201 mod/admin.php:1482 mod/admin.php:2062 mod/admin.php:2079 -msgid "Users" -msgstr "Utilisateurs" - -#: mod/admin.php:202 mod/admin.php:2179 mod/admin.php:2239 mod/settings.php:99 -msgid "Addons" -msgstr "Extensions" - -#: mod/admin.php:203 mod/admin.php:2436 mod/admin.php:2480 -msgid "Themes" -msgstr "Thèmes" - -#: mod/admin.php:204 mod/settings.php:77 -msgid "Additional features" -msgstr "Fonctions supplémentaires" - -#: mod/admin.php:205 mod/admin.php:329 src/Content/Nav.php:234 -#: src/Module/Register.php:144 src/Module/Tos.php:73 -msgid "Terms of Service" -msgstr "Conditions de service" - -#: mod/admin.php:206 -msgid "Database" -msgstr "Base de données" - -#: mod/admin.php:207 -msgid "DB updates" -msgstr "Mise-à-jour de la base" - -#: mod/admin.php:208 mod/admin.php:823 -msgid "Inspect Queue" -msgstr "Inspecter la file d'attente" - -#: mod/admin.php:209 -msgid "Inspect Deferred Workers" -msgstr "Tâches de fond reportées" - -#: mod/admin.php:210 -msgid "Inspect worker Queue" -msgstr "Tâches de fond en attente" - -#: mod/admin.php:211 -msgid "Tools" -msgstr "Outils" - -#: mod/admin.php:212 -msgid "Contact Blocklist" -msgstr "Liste de contacts bloqués" - -#: mod/admin.php:213 mod/admin.php:395 -msgid "Server Blocklist" -msgstr "Serveurs bloqués" - -#: mod/admin.php:214 mod/admin.php:558 -msgid "Delete Item" -msgstr "Supprimer un élément" - -#: mod/admin.php:215 mod/admin.php:216 mod/admin.php:2556 -msgid "Logs" -msgstr "Journaux" - -#: mod/admin.php:217 mod/admin.php:2624 -msgid "View Logs" -msgstr "Voir les logs" - -#: mod/admin.php:219 -msgid "Diagnostics" -msgstr "Diagnostics" - -#: mod/admin.php:220 -msgid "PHP Info" -msgstr "PHP Info" - -#: mod/admin.php:221 -msgid "probe address" -msgstr "Tester une adresse" - -#: mod/admin.php:222 -msgid "check webfinger" -msgstr "vérification de webfinger" - -#: mod/admin.php:242 src/Content/Nav.php:274 -msgid "Admin" -msgstr "Admin" - -#: mod/admin.php:243 -msgid "Addon Features" -msgstr "Fonctionnalités des addons" - -#: mod/admin.php:244 -msgid "User registrations waiting for confirmation" -msgstr "Inscriptions en attente de confirmation" - -#: mod/admin.php:328 mod/admin.php:394 mod/admin.php:514 mod/admin.php:557 -#: mod/admin.php:778 mod/admin.php:822 mod/admin.php:875 mod/admin.php:998 -#: mod/admin.php:1580 mod/admin.php:2061 mod/admin.php:2178 mod/admin.php:2238 -#: mod/admin.php:2435 mod/admin.php:2479 mod/admin.php:2555 mod/admin.php:2623 -msgid "Administration" -msgstr "Administration" - -#: mod/admin.php:330 -msgid "Display Terms of Service" -msgstr "Afficher les Conditions d'Utilisation" - -#: mod/admin.php:330 -msgid "" -"Enable the Terms of Service page. If this is enabled a link to the terms " -"will be added to the registration form and the general information page." -msgstr "Active la page de Conditions d'Utilisation. Un lien vers cette page est ajouté dans le formulaire d'inscription et la page A Propos." - -#: mod/admin.php:331 -msgid "Display Privacy Statement" -msgstr "Afficher la Politique de Confidentialité" - -#: mod/admin.php:331 -#, php-format -msgid "" -"Show some informations regarding the needed information to operate the node " -"according e.g. to EU-GDPR." -msgstr "Affiche les informations légales nécessaires pour publier un site Friendica en accord avec le RGPD européen par exemple." - -#: mod/admin.php:332 -msgid "Privacy Statement Preview" -msgstr "Aperçu de la Politique de Confidentialité" - -#: mod/admin.php:334 -msgid "The Terms of Service" -msgstr "Conditions d'Utilisation" - -#: mod/admin.php:334 -msgid "" -"Enter the Terms of Service for your node here. You can use BBCode. Headers " -"of sections should be [h2] and below." -msgstr "Saisissez les Conditions d'Utilisations de votre site. Les BBCodes sont disponibles, les titres commencent à [h2]." - -#: mod/admin.php:336 mod/admin.php:1582 mod/admin.php:2240 mod/admin.php:2481 -#: mod/admin.php:2557 mod/admin.php:2707 mod/delegate.php:175 -#: mod/settings.php:665 mod/settings.php:772 mod/settings.php:860 -#: mod/settings.php:949 mod/settings.php:1174 -msgid "Save Settings" -msgstr "Sauvegarder les paramètres" - -#: mod/admin.php:386 mod/admin.php:404 mod/dfrn_request.php:346 -#: mod/friendica.php:131 src/Model/Contact.php:1719 -msgid "Blocked domain" -msgstr "Domaine bloqué" - -#: mod/admin.php:386 -msgid "The blocked domain" -msgstr "Domaine bloqué" - -#: mod/admin.php:387 mod/admin.php:405 mod/friendica.php:131 -msgid "Reason for the block" -msgstr "Raison du blocage." - -#: mod/admin.php:387 mod/admin.php:400 -msgid "The reason why you blocked this domain." -msgstr "Raison pour laquelle vous souhaitez bloquer ce domaine." - -#: mod/admin.php:388 -msgid "Delete domain" -msgstr "Supprimer le domaine." - -#: mod/admin.php:388 -msgid "Check to delete this entry from the blocklist" -msgstr "Cochez la case pour retirer cette entrée de la liste noire" - -#: mod/admin.php:396 -msgid "" -"This page can be used to define a black list of servers from the federated " -"network that are not allowed to interact with your node. For all entered " -"domains you should also give a reason why you have blocked the remote " -"server." -msgstr "Cette page permet de créer une liste noire des serveurs de la fédération qui ne sont pas autorisés à interagir avec votre serveur. Pour chaque serveur bloqué, vous devez fournir la raison du blocage." - -#: mod/admin.php:397 -msgid "" -"The list of blocked servers will be made publically available on the " -"/friendica page so that your users and people investigating communication " -"problems can find the reason easily." -msgstr "La liste des serveurs bloqués sera publiée sur la page /friendica pour que les utilisateurs rencontrant des problèmes de communication puissent en comprendre la raison." - -#: mod/admin.php:398 -msgid "Add new entry to block list" -msgstr "Ajouter une nouvelle entrée à la liste noire" - -#: mod/admin.php:399 -msgid "Server Domain" -msgstr "Adresse du serveur" - -#: mod/admin.php:399 -msgid "" -"The domain of the new server to add to the block list. Do not include the " -"protocol." -msgstr "Adresse du serveur à ajouter à la liste noire. Ne pas mettre le protocole." - -#: mod/admin.php:400 -msgid "Block reason" -msgstr "Raison du blocage." - -#: mod/admin.php:401 -msgid "Add Entry" -msgstr "Ajouter" - -#: mod/admin.php:402 -msgid "Save changes to the blocklist" -msgstr "Sauvegarder la liste noire" - -#: mod/admin.php:403 -msgid "Current Entries in the Blocklist" -msgstr "Entrées de la liste noire" - -#: mod/admin.php:406 -msgid "Delete entry from blocklist" -msgstr "Supprimer l'entrée de la liste noire" - -#: mod/admin.php:409 -msgid "Delete entry from blocklist?" -msgstr "Supprimer l'entrée de la liste noire ?" - -#: mod/admin.php:436 -msgid "Server added to blocklist." -msgstr "Serveur ajouté à la liste noire." - -#: mod/admin.php:452 -msgid "Site blocklist updated." -msgstr "Liste noire mise à jour." - -#: mod/admin.php:477 src/Core/Console/GlobalCommunityBlock.php:68 -msgid "The contact has been blocked from the node" -msgstr "Le profile distant a été bloqué" - -#: mod/admin.php:479 src/Core/Console/GlobalCommunityBlock.php:65 -#, php-format -msgid "Could not find any contact entry for this URL (%s)" -msgstr "Aucun profil distant n'a été trouvé à cette URL (%s)" - -#: mod/admin.php:486 -#, php-format -msgid "%s contact unblocked" -msgid_plural "%s contacts unblocked" -msgstr[0] "%s contact débloqué" -msgstr[1] "%s profiles distants débloqués" - -#: mod/admin.php:515 -msgid "Remote Contact Blocklist" -msgstr "Liste des profiles distants bloqués" - -#: mod/admin.php:516 -msgid "" -"This page allows you to prevent any message from a remote contact to reach " -"your node." -msgstr "Cette page vous permet de refuser toutes les publications d'un profile distant sur votre site." - -#: mod/admin.php:517 -msgid "Block Remote Contact" -msgstr "Bloquer le profile distant" - -#: mod/admin.php:518 mod/admin.php:2064 -msgid "select all" -msgstr "tout sélectionner" - -#: mod/admin.php:519 -msgid "select none" -msgstr "Sélectionner tous" - -#: mod/admin.php:520 mod/admin.php:2073 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Block" -msgstr "Bloquer" - -#: mod/admin.php:521 mod/admin.php:2075 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Unblock" -msgstr "Débloquer" - -#: mod/admin.php:522 -msgid "No remote contact is blocked from this node." -msgstr "Aucun profil distant n'est bloqué" - -#: mod/admin.php:524 -msgid "Blocked Remote Contacts" -msgstr "Profils distants bloqués" - -#: mod/admin.php:525 -msgid "Block New Remote Contact" -msgstr "Bloquer un nouveau profil distant" - -#: mod/admin.php:526 -msgid "Photo" -msgstr "Photo" - -#: mod/admin.php:526 mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 -#: mod/admin.php:2097 mod/crepair.php:159 mod/settings.php:667 -#: mod/settings.php:693 -msgid "Name" -msgstr "Nom" - -#: mod/admin.php:526 mod/profiles.php:382 -msgid "Address" -msgstr "Adresse" - -#: mod/admin.php:526 mod/admin.php:536 mod/follow.php:166 -#: mod/notifications.php:179 mod/notifications.php:263 mod/unfollow.php:137 -#: src/Module/Contact.php:639 -msgid "Profile URL" -msgstr "URL du Profil" - -#: mod/admin.php:534 -#, php-format -msgid "%s total blocked contact" -msgid_plural "%s total blocked contacts" -msgstr[0] "%s profil distant bloqué" -msgstr[1] "%s profils distans bloqués" - -#: mod/admin.php:536 -msgid "URL of the remote contact to block." -msgstr "URL du profil distant à bloquer." - -#: mod/admin.php:559 -msgid "Delete this Item" -msgstr "Supprimer l'élément" - -#: mod/admin.php:560 -msgid "" -"On this page you can delete an item from your node. If the item is a top " -"level posting, the entire thread will be deleted." -msgstr "Sur cette page, vous pouvez supprimer un élément de votre noeud. Si cet élément est le premier post d'un fil de discussion, le fil de discussion entier sera supprimé." - -#: mod/admin.php:561 -msgid "" -"You need to know the GUID of the item. You can find it e.g. by looking at " -"the display URL. The last part of http://example.com/display/123456 is the " -"GUID, here 123456." -msgstr "Vous devez connaître le GUID de l'élément. Vous pouvez le trouver en sélectionnant l'élément puis en lisant l'URL. La dernière partie de l'URL est le GUID. Exemple: http://example.com/display/123456 a pour GUID: 123456." - -#: mod/admin.php:562 -msgid "GUID" -msgstr "GUID" - -#: mod/admin.php:562 -msgid "The GUID of the item you want to delete." -msgstr "GUID de l'élément à supprimer." - -#: mod/admin.php:597 -msgid "Item marked for deletion." -msgstr "L'élément va être supprimé." - -#: mod/admin.php:669 -msgid "unknown" -msgstr "inconnu" - -#: mod/admin.php:772 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "Cette page montre quelques statistiques de la partie connue du réseau social fédéré dont votre instance Friendica fait partie. Ces chiffres sont partiels et ne reflètent que la portion du réseau dont votre instance a connaissance." - -#: mod/admin.php:773 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "En activant la fonctionnalité Répertoire de Contacts Découverts Automatiquement, cela améliorera la qualité des chiffres présentés ici." - -#: mod/admin.php:785 -#, php-format -msgid "" -"Currently this node is aware of %d nodes with %d registered users from the " -"following platforms:" -msgstr "Ce site a connaissance de %d sites distants totalisant %d utilisateurs répartis entre les plate-formes suivantes :" - -#: mod/admin.php:825 mod/admin.php:878 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:826 -msgid "Recipient Name" -msgstr "Nom du destinataire" - -#: mod/admin.php:827 -msgid "Recipient Profile" -msgstr "Profil du destinataire" - -#: mod/admin.php:828 src/Content/Nav.php:239 -#: src/Core/NotificationsManager.php:182 view/theme/frio/theme.php:269 -msgid "Network" -msgstr "Réseau" - -#: mod/admin.php:829 mod/admin.php:880 -msgid "Created" -msgstr "Créé" - -#: mod/admin.php:830 -msgid "Last Tried" -msgstr "Dernier essai" - -#: mod/admin.php:831 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "Cette page présente le contenu de la file d'attente pour les publications sortantes. Ce sont des messages dont la première livraison a échoué. Ils seront réenvoyés plus tard et éventuellement supprimés si l'envoi échoue de façon permanente." - -#: mod/admin.php:854 -msgid "Inspect Deferred Worker Queue" -msgstr "Détail des tâches de fond reportées" - -#: mod/admin.php:855 -msgid "" -"This page lists the deferred worker jobs. This are jobs that couldn't be " -"executed at the first time." -msgstr "Cette page détaille les tâches de fond reportées après avoir échoué une première fois." - -#: mod/admin.php:858 -msgid "Inspect Worker Queue" -msgstr "Détail des tâches de fond en attente" - -#: mod/admin.php:859 -msgid "" -"This page lists the currently queued worker jobs. These jobs are handled by " -"the worker cronjob you've set up during install." -msgstr "Cette page détaille les tâches de fond en attente. Elles seront traitées lors de la prochaine exécution de la tâche planifiée que vous avez définie lors de l'installation." - -#: mod/admin.php:879 -msgid "Job Parameters" -msgstr "Paramètres de la tâche" - -#: mod/admin.php:881 -msgid "Priority" -msgstr "Priorité" - -#: mod/admin.php:907 -#, php-format -msgid "" -"Your DB still runs with MyISAM tables. You should change the engine type to " -"InnoDB. As Friendica will use InnoDB only features in the future, you should" -" change this! See here for a guide that may be helpful " -"converting the table engines. You may also use the command php " -"bin/console.php dbstructure toinnodb of your Friendica installation for" -" an automatic conversion.
    " -msgstr "
    Votre base de donnée comporte des tables MYISAM. Vous devriez changer pour InnoDB car il est prévu d'utiliser des fonctionnalités spécifiques à InnoDB à l'avenir. Veuillez consulter ce guide de conversion pour mettre à jour votre base de donnée. Vous pouvez également exécuter la commande php bin/console.php dbstructure toinnodb à la racine de votre répertoire Friendica pour une conversion automatique." - -#: mod/admin.php:914 -#, php-format -msgid "" -"There is a new version of Friendica available for download. Your current " -"version is %1$s, upstream version is %2$s" -msgstr "Une nouvelle version de Friendica est disponible. Votre version est %1$s, la nouvelle version est %2$s" - -#: mod/admin.php:924 -msgid "" -"The database update failed. Please run \"php bin/console.php dbstructure " -"update\" from the command line and have a look at the errors that might " -"appear." -msgstr "La mise à jour automatique de la base de donnée a échoué. Veuillez exécuter la commande php bin/console.php dbstructure update depuis votre répertoire Friendica et noter les erreurs potentielles." - -#: mod/admin.php:930 -msgid "The worker was never executed. Please check your database structure!" -msgstr "Le 'worker' n'a pas encore été exécuté. Vérifiez la structure de votre base de données." - -#: mod/admin.php:933 -#, php-format -msgid "" -"The last worker execution was on %s UTC. This is older than one hour. Please" -" check your crontab settings." -msgstr "La dernière exécution du 'worker' s'est déroulée à %s, c'est-à-dire il y a plus d'une heure. Vérifiez les réglages de crontab." - -#: mod/admin.php:939 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -".htconfig.php. See the Config help page for " -"help with the transition." -msgstr "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier .htconfig.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition." - -#: mod/admin.php:943 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -"config/local.ini.php. See the Config help " -"page for help with the transition." -msgstr "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier config/local.ini.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition." - -#: mod/admin.php:950 -#, php-format -msgid "" -"%s is not reachable on your system. This is a severe " -"configuration issue that prevents server to server communication. See the installation page for help." -msgstr "%s n'est pas accessible sur votre site. C'est un problème de configuration sévère qui empêche toute communication avec les serveurs distants. Veuillez consulter la page d'aide à l'installation (en anglais) pour plus d'information." - -#: mod/admin.php:956 -msgid "Normal Account" -msgstr "Compte normal" - -#: mod/admin.php:957 -msgid "Automatic Follower Account" -msgstr "Profile Resuivant" - -#: mod/admin.php:958 -msgid "Public Forum Account" -msgstr "Forum public" - -#: mod/admin.php:959 -msgid "Automatic Friend Account" -msgstr "Compte auto-amical" - -#: mod/admin.php:960 -msgid "Blog Account" -msgstr "Compte de blog" - -#: mod/admin.php:961 -msgid "Private Forum Account" -msgstr "Forum privé" - -#: mod/admin.php:984 -msgid "Message queues" -msgstr "Files d'attente des messages" - -#: mod/admin.php:990 -msgid "Server Settings" -msgstr "Paramètres du site" - -#: mod/admin.php:999 -msgid "Summary" -msgstr "Résumé" - -#: mod/admin.php:1001 -msgid "Registered users" -msgstr "Utilisateurs inscrits" - -#: mod/admin.php:1003 -msgid "Pending registrations" -msgstr "Inscriptions en attente" - -#: mod/admin.php:1004 -msgid "Version" -msgstr "Version" - -#: mod/admin.php:1009 -msgid "Active addons" -msgstr "Add-ons actifs" - -#: mod/admin.php:1042 -msgid "Can not parse base url. Must have at least ://" -msgstr "Impossible d'analyser l'URL de base. Doit contenir au moins ://" - -#: mod/admin.php:1415 -msgid "Site settings updated." -msgstr "Réglages du site mis-à-jour." - -#: mod/admin.php:1444 mod/settings.php:893 -msgid "No special theme for mobile devices" -msgstr "Pas de thème particulier pour les terminaux mobiles" - -#: mod/admin.php:1473 -msgid "No community page for local users" -msgstr "Pas de page communauté pour les utilisateurs enregistrés" - -#: mod/admin.php:1474 -msgid "No community page" -msgstr "Aucune page de communauté" - -#: mod/admin.php:1475 -msgid "Public postings from users of this site" -msgstr "Publications publiques des utilisateurs de ce site" - -#: mod/admin.php:1476 -msgid "Public postings from the federated network" -msgstr "Publications publiques du réseau fédéré" - -#: mod/admin.php:1477 -msgid "Public postings from local users and the federated network" -msgstr "Publications publiques des utilisateurs du site et du réseau fédéré" - -#: mod/admin.php:1481 mod/admin.php:1682 mod/admin.php:1692 -#: src/Module/Contact.php:546 -msgid "Disabled" -msgstr "Désactivé" - -#: mod/admin.php:1483 -msgid "Users, Global Contacts" -msgstr "Utilisateurs, Contacts Globaux" - -#: mod/admin.php:1484 -msgid "Users, Global Contacts/fallback" -msgstr "Utilisateurs, Contacts Globaux/alternative" - -#: mod/admin.php:1488 -msgid "One month" -msgstr "Un mois" - -#: mod/admin.php:1489 -msgid "Three months" -msgstr "Trois mois" - -#: mod/admin.php:1490 -msgid "Half a year" -msgstr "Six mois" - -#: mod/admin.php:1491 -msgid "One year" -msgstr "Un an" - -#: mod/admin.php:1496 -msgid "Multi user instance" -msgstr "Instance multi-utilisateurs" - -#: mod/admin.php:1520 -msgid "Closed" -msgstr "Fermé" - -#: mod/admin.php:1521 -msgid "Requires approval" -msgstr "Demande une apptrobation" - -#: mod/admin.php:1522 -msgid "Open" -msgstr "Ouvert" - -#: mod/admin.php:1526 -msgid "No SSL policy, links will track page SSL state" -msgstr "Pas de politique SSL, le liens conserveront l'état SSL de la page" - -#: mod/admin.php:1527 -msgid "Force all links to use SSL" -msgstr "Forcer tous les liens à utiliser SSL" - -#: mod/admin.php:1528 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)" - -#: mod/admin.php:1532 -msgid "Don't check" -msgstr "Ne pas rechercher" - -#: mod/admin.php:1533 -msgid "check the stable version" -msgstr "Rechercher les versions stables" - -#: mod/admin.php:1534 -msgid "check the development version" -msgstr "Rechercher les versions de développement" - -#: mod/admin.php:1556 -msgid "Database (legacy)" -msgstr "Base de donnée (historique)" - -#: mod/admin.php:1583 -msgid "Republish users to directory" -msgstr "Republier les utilisateurs sur le répertoire" - -#: mod/admin.php:1584 src/Module/Register.php:121 -msgid "Registration" -msgstr "Inscription" - -#: mod/admin.php:1585 -msgid "File upload" -msgstr "Téléversement de fichier" - -#: mod/admin.php:1586 -msgid "Policies" -msgstr "Politiques" - -#: mod/admin.php:1587 mod/events.php:555 src/Model/Profile.php:878 -#: src/Module/Contact.php:902 -msgid "Advanced" -msgstr "Avancé" - -#: mod/admin.php:1588 -msgid "Auto Discovered Contact Directory" -msgstr "Répertoire de Contacts Découverts Automatiquement" - -#: mod/admin.php:1589 -msgid "Performance" -msgstr "Performance" - -#: mod/admin.php:1590 -msgid "Worker" -msgstr "Worker" - -#: mod/admin.php:1591 -msgid "Message Relay" -msgstr "Relai de publication" - -#: mod/admin.php:1592 -msgid "Relocate Instance" -msgstr "Déménager le site" - -#: mod/admin.php:1593 -msgid "Warning! Advanced function. Could make this server unreachable." -msgstr "Attention! Cette fonctionnalité avancée peut rendre votre site inaccessible." - -#: mod/admin.php:1597 -msgid "Site name" -msgstr "Nom du site" - -#: mod/admin.php:1598 -msgid "Host name" -msgstr "Nom de la machine hôte" - -#: mod/admin.php:1599 -msgid "Sender Email" -msgstr "Courriel de l'émetteur" - -#: mod/admin.php:1599 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "L'adresse courriel à partir de laquelle votre serveur enverra des courriels." - -#: mod/admin.php:1600 -msgid "Banner/Logo" -msgstr "Bannière/Logo" - -#: mod/admin.php:1601 -msgid "Shortcut icon" -msgstr "Icône de raccourci" - -#: mod/admin.php:1601 -msgid "Link to an icon that will be used for browsers." -msgstr "Lien vers une icône qui sera utilisée pour les navigateurs." - -#: mod/admin.php:1602 -msgid "Touch icon" -msgstr "Icône pour systèmes tactiles" - -#: mod/admin.php:1602 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Lien vers une icône qui sera utilisée pour les tablettes et les mobiles." - -#: mod/admin.php:1603 -msgid "Additional Info" -msgstr "Informations supplémentaires" - -#: mod/admin.php:1603 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/servers." -msgstr "Description publique destinée au répertoire global de sites Friendica." - -#: mod/admin.php:1604 -msgid "System language" -msgstr "Langue du système" - -#: mod/admin.php:1605 -msgid "System theme" -msgstr "Thème du système" - -#: mod/admin.php:1605 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Thème par défaut sur ce site - peut être changé au niveau du profile utilisateur - changer les réglages du thème" - -#: mod/admin.php:1606 -msgid "Mobile system theme" -msgstr "Thème mobile" - -#: mod/admin.php:1606 -msgid "Theme for mobile devices" -msgstr "Thème pour les terminaux mobiles" - -#: mod/admin.php:1607 -msgid "SSL link policy" -msgstr "Politique SSL pour les liens" - -#: mod/admin.php:1607 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Détermine si les liens générés doivent forcer l'utilisation de SSL" - -#: mod/admin.php:1608 -msgid "Force SSL" -msgstr "SSL obligatoire" - -#: mod/admin.php:1608 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Redirige toutes les requêtes en clair vers des requêtes SSL. Attention : sur certains systèmes cela peut conduire à des boucles de redirection infinies." - -#: mod/admin.php:1609 -msgid "Hide help entry from navigation menu" -msgstr "Cacher l'aide du menu de navigation" - -#: mod/admin.php:1609 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Cacher du menu de navigation l'entrée vers les pages d'aide. Vous pouvez toujours y accéder en tapant directement /help." - -#: mod/admin.php:1610 -msgid "Single user instance" -msgstr "Instance mono-utilisateur" - -#: mod/admin.php:1610 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Transformer cette en instance en multi-utilisateur ou mono-utilisateur pour cet l'utilisateur." - -#: mod/admin.php:1612 -msgid "File storage backend" -msgstr "Destination du stockage de fichier" - -#: mod/admin.php:1612 -msgid "" -"The backend used to store uploaded data. If you change the storage backend, " -"you can manually move the existing files. If you do not do so, the files " -"uploaded before the change will still be available at the old backend. " -"Please see the settings documentation" -" for more information about the choices and the moving procedure." -msgstr "La destination du stockage des fichiers. Si vous changez cette destination, vous pouvez migrer les fichiers existants. Si vous ne le faites pas, ils resteront accessibles à leur emplacement actuel. Veuillez consulter la page d'aide à la Configuration (en anglais) pour plus d'information sur les choix possibles et la procédure de migration." - -#: mod/admin.php:1614 -msgid "Maximum image size" -msgstr "Taille maximale des images" - -#: mod/admin.php:1614 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Taille maximale des images envoyées (en octets). 0 par défaut, c'est à dire \"aucune limite\"." - -#: mod/admin.php:1615 -msgid "Maximum image length" -msgstr "Longueur maximale des images" - -#: mod/admin.php:1615 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Longueur maximale en pixels du plus long côté des images téléversées. La valeur par défaut est -1 : absence de limite." - -#: mod/admin.php:1616 -msgid "JPEG image quality" -msgstr "Qualité JPEG des images" - -#: mod/admin.php:1616 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Les JPEGs téléversés seront sauvegardés avec ce niveau de qualité [0-100]. La valeur par défaut est 100, soit la qualité maximale." - -#: mod/admin.php:1618 -msgid "Register policy" -msgstr "Politique d'inscription" - -#: mod/admin.php:1619 -msgid "Maximum Daily Registrations" -msgstr "Inscriptions maximum par jour" - -#: mod/admin.php:1619 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "Si les inscriptions sont permises ci-dessus, ceci fixe le nombre maximum d'inscriptions de nouveaux utilisateurs acceptées par jour. Si les inscriptions ne sont pas ouvertes, ce paramètre n'a aucun effet." - -#: mod/admin.php:1620 -msgid "Register text" -msgstr "Texte d'inscription" - -#: mod/admin.php:1620 -msgid "" -"Will be displayed prominently on the registration page. You can use BBCode " -"here." -msgstr "Ce texte est affiché sur la page d'inscription. Les BBCodes sont autorisés." - -#: mod/admin.php:1621 -msgid "Forbidden Nicknames" -msgstr "Identifiants réservés" - -#: mod/admin.php:1621 -msgid "" -"Comma separated list of nicknames that are forbidden from registration. " -"Preset is a list of role names according RFC 2142." -msgstr "Liste d'identifiants réservés séparés par des virgules. Ces identifiants ne peuvent pas être utilisés pour s'enregistrer. La liste de base provient de la RFC 2142." - -#: mod/admin.php:1622 -msgid "Accounts abandoned after x days" -msgstr "Les comptes sont abandonnés après x jours" - -#: mod/admin.php:1622 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction." - -#: mod/admin.php:1623 -msgid "Allowed friend domains" -msgstr "Domaines autorisés" - -#: mod/admin.php:1623 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Une liste de domaines, séparés par des virgules, autorisés à établir des relations avec les utilisateurs de ce site. Les '*' sont acceptés. Laissez vide pour autoriser tous les domaines" - -#: mod/admin.php:1624 -msgid "Allowed email domains" -msgstr "Domaines courriel autorisés" - -#: mod/admin.php:1624 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Liste de domaines - séparés par des virgules - dont les adresses e-mail sont autorisées à s'inscrire sur ce site. Les '*' sont acceptées. Laissez vide pour autoriser tous les domaines" - -#: mod/admin.php:1625 -msgid "No OEmbed rich content" -msgstr "Désactiver le texte riche avec OEmbed" - -#: mod/admin.php:1625 -msgid "" -"Don't show the rich content (e.g. embedded PDF), except from the domains " -"listed below." -msgstr "Evite le contenu riche avec OEmbed (comme un document PDF incrusté), sauf provenant des domaines autorisés listés ci-après." - -#: mod/admin.php:1626 -msgid "Allowed OEmbed domains" -msgstr "Domaines autorisés pour OEmbed" - -#: mod/admin.php:1626 -msgid "" -"Comma separated list of domains which oembed content is allowed to be " -"displayed. Wildcards are accepted." -msgstr "Liste de noms de domaine séparés par des virgules. Ces domaines peuvent afficher du contenu riche avec OEmbed." - -#: mod/admin.php:1627 -msgid "Block public" -msgstr "Interdire la publication globale" - -#: mod/admin.php:1627 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Cocher pour bloquer les accès anonymes (non-connectés) à tout sauf aux pages personnelles publiques." - -#: mod/admin.php:1628 -msgid "Force publish" -msgstr "Forcer la publication globale" - -#: mod/admin.php:1628 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Cocher pour publier obligatoirement tous les profils locaux dans l'annuaire du site." - -#: mod/admin.php:1628 -msgid "Enabling this may violate privacy laws like the GDPR" -msgstr "Activer cette option peut potentiellement enfreindre les lois sur la protection de la vie privée comme le RGPD." - -#: mod/admin.php:1629 -msgid "Global directory URL" -msgstr "URL de l'annuaire global" - -#: mod/admin.php:1629 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "URL de l'annuaire global. Si ce champ n'est pas défini, l'annuaire global sera complètement indisponible pour l'application." - -#: mod/admin.php:1630 -msgid "Private posts by default for new users" -msgstr "Publications privées par défaut pour les nouveaux utilisateurs" - -#: mod/admin.php:1630 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Rendre les publications de tous les nouveaux utilisateurs accessibles seulement par le groupe de contacts par défaut, et non par tout le monde." - -#: mod/admin.php:1631 -msgid "Don't include post content in email notifications" -msgstr "Ne pas inclure le contenu posté dans l'e-mail de notification" - -#: mod/admin.php:1631 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "Ne pas inclure le contenu de publication/commentaire/message privé/etc dans l'e-mail de notification qui est envoyé à partir du site, par mesure de confidentialité." - -#: mod/admin.php:1632 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Interdire l’accès public pour les greffons listées dans le menu apps." - -#: mod/admin.php:1632 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Cocher cette case restreint la liste des greffons dans le menu des applications seulement aux membres." - -#: mod/admin.php:1633 -msgid "Don't embed private images in posts" -msgstr "Ne pas miniaturiser les images privées dans les publications" - -#: mod/admin.php:1633 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Ne remplacez pas les images privées hébergées localement dans les publications avec une image attaché en copie, car cela signifie que le contact qui reçoit les publications contenant ces photos privées devra s’authentifier pour charger chaque image, ce qui peut prendre du temps." - -#: mod/admin.php:1634 -msgid "Explicit Content" -msgstr "Contenu adulte" - -#: mod/admin.php:1634 -msgid "" -"Set this to announce that your node is used mostly for explicit content that" -" might not be suited for minors. This information will be published in the " -"node information and might be used, e.g. by the global directory, to filter " -"your node from listings of nodes to join. Additionally a note about this " -"will be shown at the user registration page." -msgstr "Activez cette option si votre site est principalement utilisé pour publier du contenu adulte. Cette information est publique et peut être utilisée pour filtrer votre site dans le répertoire de site global. Elle est également affichée sur la page d'inscription." - -#: mod/admin.php:1635 -msgid "Allow Users to set remote_self" -msgstr "Autoriser les utilisateurs à définir remote_self" - -#: mod/admin.php:1635 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "Cocher cette case, permet à chaque utilisateur de marquer chaque contact comme un remote_self dans la boîte de dialogue de réparation des contacts. Activer cette fonction à un contact engendre la réplique de toutes les publications d'un contact dans le flux d'activités des utilisateurs." - -#: mod/admin.php:1636 -msgid "Block multiple registrations" -msgstr "Interdire les inscriptions multiples" - -#: mod/admin.php:1636 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Ne pas permettre l'inscription de comptes multiples comme des pages." - -#: mod/admin.php:1637 -msgid "Disable OpenID" -msgstr "Désactiver OpenID" - -#: mod/admin.php:1637 -msgid "Disable OpenID support for registration and logins." -msgstr "Désactive OpenID pour l'inscription et l'identification." - -#: mod/admin.php:1638 -msgid "No Fullname check" -msgstr "Désactiver l'obligation de nom complet" - -#: mod/admin.php:1638 -msgid "" -"Allow users to register without a space between the first name and the last " -"name in their full name." -msgstr "Supprime l'obligation d'avoir au moins un espace dans le nom complet des utilisateurs pour séparer leur prénom et nom de famille." - -#: mod/admin.php:1639 -msgid "Community pages for visitors" -msgstr "Affichage de la page communauté pour les utilisateurs anonymes" - -#: mod/admin.php:1639 -msgid "" -"Which community pages should be available for visitors. Local users always " -"see both pages." -msgstr "Quelles pages communauté sont disponibles pour les utilisateurs anonymes." - -#: mod/admin.php:1640 -msgid "Posts per user on community page" -msgstr "Nombre de publications par utilisateur sur la page de la communauté (n'est pas valide pour " - -#: mod/admin.php:1640 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Nombre maximal de publications par utilisateurs sur la page de la communauté (ne s'applique pas pour « Communauté globale »)." - -#: mod/admin.php:1641 -msgid "Disable OStatus support" -msgstr "Désactiver OStatus" - -#: mod/admin.php:1641 -msgid "" -"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Désactive le support natif d'OStatus (StatusNet, GNU Social, etc...). Toutes les communications via OStatus sont publiques, donc des avertissements de protection de vie privée sont régulièrement affichés." - -#: mod/admin.php:1642 -msgid "Only import OStatus/ActivityPub threads from our contacts" -msgstr "Importer seulement les conversations OStatus/ActivityPub provenant de profils distants connus." - -#: mod/admin.php:1642 -msgid "" -"Normally we import every content from our OStatus and ActivityPub contacts. " -"With this option we only store threads that are started by a contact that is" -" known on our system." -msgstr "Normalement toutes les conversations auxquelles les contacts suivis participent sont importées en entier peu importe l'auteur original. Avec cette option, seules les conversations démarrées par un contact suivi sont importées." - -#: mod/admin.php:1643 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée." - -#: mod/admin.php:1645 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire." - -#: mod/admin.php:1646 -msgid "Enable Diaspora support" -msgstr "Activer le support de Diaspora" - -#: mod/admin.php:1646 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Fournir une compatibilité Diaspora intégrée." - -#: mod/admin.php:1647 -msgid "Only allow Friendica contacts" -msgstr "N'autoriser que les contacts Friendica" - -#: mod/admin.php:1647 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "Tous les contacts doivent utiliser les protocoles de Friendica. Tous les autres protocoles de communication intégrés sont désactivés." - -#: mod/admin.php:1648 -msgid "Verify SSL" -msgstr "Vérifier SSL" - -#: mod/admin.php:1648 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "Si vous le souhaitez, vous pouvez activier la vérification stricte des certificats. Cela signifie que vous ne pourrez pas vous connecter (du tout) aux sites SSL munis d'un certificat auto-signé." - -#: mod/admin.php:1649 -msgid "Proxy user" -msgstr "Utilisateur du proxy" - -#: mod/admin.php:1650 -msgid "Proxy URL" -msgstr "URL du proxy" - -#: mod/admin.php:1651 -msgid "Network timeout" -msgstr "Dépassement du délai d'attente du réseau" - -#: mod/admin.php:1651 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Valeur en secondes. Mettre à 0 pour 'illimité' (pas recommandé)." - -#: mod/admin.php:1652 -msgid "Maximum Load Average" -msgstr "Plafond de la charge moyenne" - -#: mod/admin.php:1652 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Charge système maximale à partir de laquelle l'émission et la réception seront soumises à un délai supplémentaire. Par défaut, 50." - -#: mod/admin.php:1653 -msgid "Maximum Load Average (Frontend)" -msgstr "Plafond de la charge moyenne (frontale)" - -#: mod/admin.php:1653 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "Limite de charge système pour le rendu des pages - défaut 50." - -#: mod/admin.php:1654 -msgid "Minimal Memory" -msgstr "Mémoire minimum" - -#: mod/admin.php:1654 -msgid "" -"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " -"default 0 (deactivated)." -msgstr "Mémoire libre minimale pour les tâches de fond (en Mo). Requiert l'accès à /proc/meminfo. La valeur par défaut est 0 (désactivé)." - -#: mod/admin.php:1655 -msgid "Maximum table size for optimization" -msgstr "Limite de taille de table pour l'optimisation" - -#: mod/admin.php:1655 -msgid "" -"Maximum table size (in MB) for the automatic optimization. Enter -1 to " -"disable it." -msgstr "Limite de taille de table (en Mo) pour l'optimisation automatique. -1 pour désactiver cette limite." - -#: mod/admin.php:1656 -msgid "Minimum level of fragmentation" -msgstr "Seuil de fragmentation" - -#: mod/admin.php:1656 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "Seuil de fragmentation pour que l'optimisation automatique se déclenche - défaut 30%." - -#: mod/admin.php:1658 -msgid "Periodical check of global contacts" -msgstr "Vérification périodique des contacts globaux" - -#: mod/admin.php:1658 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux." - -#: mod/admin.php:1659 -msgid "Days between requery" -msgstr "Nombre de jours entre les requêtes" - -#: mod/admin.php:1659 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur." - -#: mod/admin.php:1660 -msgid "Discover contacts from other servers" -msgstr "Découvrir des contacts des autres serveurs" - -#: mod/admin.php:1660 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommended setting is 'Users, " -"Global Contacts'." -msgstr "Demande régulièrement les serveurs distants connus une liste de profils distants. \"Utilisateurs\" concerne les utilisateurs locaux du serveur distant, \"Contacts Globaux\" concerne tous les profils dont le serveur distant a connaissance. \"Alternative\" est prévu pour les serveurs RedMatrix et les versions obsolètes de Friendica. Ce choix augmente significativement la charge serveur, donc le choix recommendé est \"Utilisateurs, Contacts Globaux\"." - -#: mod/admin.php:1661 -msgid "Timeframe for fetching global contacts" -msgstr "Fréquence de récupération des contacts globaux" - -#: mod/admin.php:1661 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "Quand la découverte de contacts est activée, cette valeur détermine la fréquence de récupération des données des contacts globaux présents sur d'autres serveurs." - -#: mod/admin.php:1662 -msgid "Search the local directory" -msgstr "Chercher dans le répertoire local" - -#: mod/admin.php:1662 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "Cherche dans le répertoire local au lieu du répertoire local. Quand une recherche locale est effectuée, la même recherche est effectuée dans le répertoire global en tâche de fond. Cela améliore les résultats de la recherche si elle est réitérée." - -#: mod/admin.php:1664 -msgid "Publish server information" -msgstr "Publier les informations du serveur" - -#: mod/admin.php:1664 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "Si cette option est activée, des informations sur le serveur et son utilisation seront publiées. Ces informations incluent le nom et la version du serveur, le nombre d’utilisateurs avec des profils publics, le nombre de messages, les protocoles supportés et les connecteurs disponibles. Plus de détails sur the-federation.info." - -#: mod/admin.php:1666 -msgid "Check upstream version" -msgstr "Mises à jour" - -#: mod/admin.php:1666 -msgid "" -"Enables checking for new Friendica versions at github. If there is a new " -"version, you will be informed in the admin panel overview." -msgstr "Permet de vérifier la présence de nouvelles versions de Friendica sur github. Si une nouvelle version est disponible, vous recevrez une notification dans l'interface d'administration." - -#: mod/admin.php:1667 -msgid "Suppress Tags" -msgstr "Masquer les tags" - -#: mod/admin.php:1667 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Ne pas afficher la liste des hashtags à la fin d’un message." - -#: mod/admin.php:1668 -msgid "Clean database" -msgstr "Nettoyer la base de données" - -#: mod/admin.php:1668 -msgid "" -"Remove old remote items, orphaned database records and old content from some" -" other helper tables." -msgstr "Supprime les conversations distantes anciennes, les enregistrements orphelins et le contenu obsolète de certaines tables de débogage." - -#: mod/admin.php:1669 -msgid "Lifespan of remote items" -msgstr "Durée de vie des conversations distantes" - -#: mod/admin.php:1669 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"remote items will be deleted. Own items, and marked or filed items are " -"always kept. 0 disables this behaviour." -msgstr "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations distantes sont supprimées. Les conversations démarrées par un utilisateur local, étoilées ou archivées sont toujours conservées. 0 pour désactiver." - -#: mod/admin.php:1670 -msgid "Lifespan of unclaimed items" -msgstr "Durée de vie des conversations relayées" - -#: mod/admin.php:1670 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"unclaimed remote items (mostly content from the relay) will be deleted. " -"Default value is 90 days. Defaults to the general lifespan value of remote " -"items if set to 0." -msgstr "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations relayées qui n'ont pas reçu d'interactions locales sont supprimées. La valeur par défaut est 90 jours. 0 pour aligner cette valeur sur la durée de vie des conversations distantes." - -#: mod/admin.php:1671 -msgid "Lifespan of raw conversation data" -msgstr "Durée de vie des méta-données de conversation" - -#: mod/admin.php:1671 -msgid "" -"The conversation data is used for ActivityPub and OStatus, as well as for " -"debug purposes. It should be safe to remove it after 14 days, default is 90 " -"days." -msgstr "Cette valeur représente le délai en jours après lequel les méta-données de conversations sont supprimées. Ces méta-données sont utilisées par les protocoles ActivityPub et OStatus, et pour le débogage. Il est prudent de conserver ces meta-données pendant au moins 14 jours. La valeur par défaut est 90 jours." - -#: mod/admin.php:1672 -msgid "Path to item cache" -msgstr "Chemin vers le cache des objets." - -#: mod/admin.php:1672 -msgid "The item caches buffers generated bbcode and external images." -msgstr "Le cache de publications contient des textes HTML de BBCode compil's et une copie de chaque image distante." - -#: mod/admin.php:1673 -msgid "Cache duration in seconds" -msgstr "Durée du cache en secondes" - -#: mod/admin.php:1673 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "Combien de temps les fichiers de cache doivent être maintenu? La valeur par défaut est 86400 secondes (une journée). Pour désactiver le cache de l'item, définissez la valeur à -1." - -#: mod/admin.php:1674 -msgid "Maximum numbers of comments per post" -msgstr "Nombre maximum de commentaires par publication" - -#: mod/admin.php:1674 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "Combien de commentaires doivent être affichés pour chaque publication? Valeur par défaut: 100." - -#: mod/admin.php:1675 -msgid "Temp path" -msgstr "Chemin des fichiers temporaires" - -#: mod/admin.php:1675 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "Si vous n'avez pas la possibilité d'avoir accès au répertoire temp, entrez un autre répertoire ici." - -#: mod/admin.php:1676 -msgid "Base path to installation" -msgstr "Chemin de base de l'installation" - -#: mod/admin.php:1676 -msgid "" -"If the system cannot detect the correct path to your installation, enter the" -" correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "Si le système ne peut pas détecter le chemin de l'installation, entrez le bon chemin ici. Ce paramètre doit être utilisé uniquement si vous avez des accès restreints à votre système et que vous n'avez qu'un lien symbolique vers le répertoire web." - -#: mod/admin.php:1677 -msgid "Disable picture proxy" -msgstr "Désactiver le proxy image " - -#: mod/admin.php:1677 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwidth." -msgstr "Le proxy d'image améliore les performances d'affichage et protège la vie privée des utilisateurs locaux. Il n'est pas recommandé de l'activer sur un serveur avec une bande passante limitée." - -#: mod/admin.php:1678 -msgid "Only search in tags" -msgstr "Rechercher seulement dans les étiquettes" - -#: mod/admin.php:1678 -msgid "On large systems the text search can slow down the system extremely." -msgstr "La recherche textuelle peut ralentir considérablement les systèmes de grande taille." - -#: mod/admin.php:1680 -msgid "New base url" -msgstr "Nouvelle URL de base" - -#: mod/admin.php:1680 -msgid "" -"Change base url for this server. Sends relocate message to all Friendica and" -" Diaspora* contacts of all users." -msgstr "Changer l'URL de base de ce serveur. Envoie un message de déménagement à tous les contacts Friendica et Diaspora des utilisateurs locaux." - -#: mod/admin.php:1682 -msgid "RINO Encryption" -msgstr "Chiffrement RINO" - -#: mod/admin.php:1682 -msgid "Encryption layer between nodes." -msgstr "Couche de chiffrement entre les nœuds du réseau." - -#: mod/admin.php:1682 -msgid "Enabled" -msgstr "Activé" - -#: mod/admin.php:1684 -msgid "Maximum number of parallel workers" -msgstr "Nombre maximum de processus simultanés" - -#: mod/admin.php:1684 -#, php-format -msgid "" -"On shared hosters set this to %d. On larger systems, values of %d are great." -" Default value is %d." -msgstr "Sur un hébergement partagé, mettez %d. Sur des serveurs plus puissants, %d est optimal. La valeur par défaut est %d." - -#: mod/admin.php:1685 -msgid "Don't use 'proc_open' with the worker" -msgstr "Ne pas utiliser 'proc_open' pour les tâches de fond" - -#: mod/admin.php:1685 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of worker calls in your crontab." -msgstr "Activez cette option si votre système ne permet pas d'utiliser 'proc_open'. Cela peut être le cas sur les hébergements partagés. Si vous activez cette option, vous devriez augmenter la fréquence d'appel du \"worker\" dans crontab." - -#: mod/admin.php:1686 -msgid "Enable fastlane" -msgstr "Activer la file prioritaire" - -#: mod/admin.php:1686 -msgid "" -"When enabed, the fastlane mechanism starts an additional worker if processes" -" with higher priority are blocked by processes of lower priority." -msgstr "La file prioritaire est un ouvrier additionel démarré quand des tâches de fondde grande importance sont bloquées par des tâches de moindre importance dans la file d'attente." - -#: mod/admin.php:1687 -msgid "Enable frontend worker" -msgstr "Activer l'ouvrier manuel" - -#: mod/admin.php:1687 -#, php-format -msgid "" -"When enabled the Worker process is triggered when backend access is " -"performed \\x28e.g. messages being delivered\\x29. On smaller sites you " -"might want to call %s/worker on a regular basis via an external cron job. " -"You should only enable this option if you cannot utilize cron/scheduled jobs" -" on your server." -msgstr "L'ouvrier manuel est lancé à la réception de messages distants. Sur un petit serveur il est conseillé d'ouvrir %s/worker régulièrement via une tâche planifée. Vous ne devriez activer cette option que si vous ne pouvez pas définir de tâches récurrentes sur votre serveur," - -#: mod/admin.php:1689 -msgid "Subscribe to relay" -msgstr "S'abonner au relai" - -#: mod/admin.php:1689 -msgid "" -"Enables the receiving of public posts from the relay. They will be included " -"in the search, subscribed tags and on the global community page." -msgstr "Active la réception de conversations publiques relayées. Elles sont affichées dans la page de recherche, les recherches enregistrées et dans la page de communauté globale." - -#: mod/admin.php:1690 -msgid "Relay server" -msgstr "Serveur relai" - -#: mod/admin.php:1690 -msgid "" -"Address of the relay server where public posts should be send to. For " -"example https://relay.diasp.org" -msgstr "URL du serveur relai auquel les conversations publique locales doivent être soumises." - -#: mod/admin.php:1691 -msgid "Direct relay transfer" -msgstr "Relai direct" - -#: mod/admin.php:1691 -msgid "" -"Enables the direct transfer to other servers without using the relay servers" -msgstr "Soumet les conversations publiques aux serveurs distants sans passer par le serveur relai." - -#: mod/admin.php:1692 -msgid "Relay scope" -msgstr "Filtre du relai" - -#: mod/admin.php:1692 -msgid "" -"Can be 'all' or 'tags'. 'all' means that every public post should be " -"received. 'tags' means that only posts with selected tags should be " -"received." -msgstr "\"Tous\" signifie que toutes les conversations publiques en provenance du relai sont acceptées. \"Tags\" signifie que seules les conversations comportant les tags suivants sont acceptées." - -#: mod/admin.php:1692 -msgid "all" -msgstr "Tous" - -#: mod/admin.php:1692 -msgid "tags" -msgstr "Tags" - -#: mod/admin.php:1693 -msgid "Server tags" -msgstr "Tags de filtre du relai" - -#: mod/admin.php:1693 -msgid "Comma separated list of tags for the 'tags' subscription." -msgstr "Liste de tags séparés par des virgules pour le filtre de relai." - -#: mod/admin.php:1694 -msgid "Allow user tags" -msgstr "Inclure les tags des utilisateurs" - -#: mod/admin.php:1694 -msgid "" -"If enabled, the tags from the saved searches will used for the 'tags' " -"subscription in addition to the 'relay_server_tags'." -msgstr "Inclut les tags des recherches enregistrées des utilisateurs au filtre de relai." - -#: mod/admin.php:1697 -msgid "Start Relocation" -msgstr "Démarrer le déménagement" - -#: mod/admin.php:1724 -msgid "Update has been marked successful" -msgstr "Mise-à-jour validée comme 'réussie'" - -#: mod/admin.php:1731 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "La structure de base de données pour la mise à jour %s a été appliquée avec succès." - -#: mod/admin.php:1735 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s" - -#: mod/admin.php:1751 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "L'exécution %s a échoué avec l'erreur: %s" - -#: mod/admin.php:1753 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Mise-à-jour %s appliquée avec succès." - -#: mod/admin.php:1756 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "La mise-à-jour %s n'a pas retourné de détails. Impossible de savoir si elle a réussi." - -#: mod/admin.php:1759 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "Il n'y avait aucune fonction supplémentaire de mise à jour %s qui devait être appelé" - -#: mod/admin.php:1782 -msgid "No failed updates." -msgstr "Pas de mises-à-jour échouées." - -#: mod/admin.php:1783 -msgid "Check database structure" -msgstr "Vérifier la structure de la base de données" - -#: mod/admin.php:1788 -msgid "Failed Updates" -msgstr "Mises-à-jour échouées" - -#: mod/admin.php:1789 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "Ceci n'inclut pas les versions antérieures à la 1139, qui ne retournaient jamais de détails." - -#: mod/admin.php:1790 -msgid "Mark success (if update was manually applied)" -msgstr "Marquer comme 'réussie' (dans le cas d'une mise-à-jour manuelle)" - -#: mod/admin.php:1791 -msgid "Attempt to execute this update step automatically" -msgstr "Tenter d'éxecuter cette étape automatiquement" - -#: mod/admin.php:1831 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\n\t\t\tChère/Cher %1$s,\n\t\t\t\tL’administrateur de %2$s vous a ouvert un compte." - -#: mod/admin.php:1834 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "" - -#: mod/admin.php:1871 src/Model/User.php:859 -#, php-format -msgid "Registration details for %s" -msgstr "Détails d'inscription pour %s" - -#: mod/admin.php:1881 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "%s utilisateur a (dé)bloqué" -msgstr[1] "%s utilisateurs ont (dé)bloqué" - -#: mod/admin.php:1888 mod/admin.php:1942 -msgid "You can't remove yourself" -msgstr "Vous ne pouvez pas supprimer votre propre compte" - -#: mod/admin.php:1891 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s utilisateur supprimé" -msgstr[1] "%s utilisateurs supprimés" - -#: mod/admin.php:1940 -#, php-format -msgid "User '%s' deleted" -msgstr "Utilisateur '%s' supprimé" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' unblocked" -msgstr "Utilisateur '%s' débloqué" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' blocked" -msgstr "Utilisateur '%s' bloqué" - -#: mod/admin.php:1999 mod/settings.php:1049 -msgid "Normal Account Page" -msgstr "Compte normal" - -#: mod/admin.php:2000 mod/settings.php:1053 -msgid "Soapbox Page" -msgstr "Compte \"boîte à savon\"" - -#: mod/admin.php:2001 mod/settings.php:1057 -msgid "Public Forum" -msgstr "Forum public" - -#: mod/admin.php:2002 mod/settings.php:1061 -msgid "Automatic Friend Page" -msgstr "Compte d' \"amitié automatique\"" - -#: mod/admin.php:2003 -msgid "Private Forum" -msgstr "Forum Privé" - -#: mod/admin.php:2006 mod/settings.php:1033 -msgid "Personal Page" -msgstr "Page personnelle" - -#: mod/admin.php:2007 mod/settings.php:1037 -msgid "Organisation Page" -msgstr "Page Associative" - -#: mod/admin.php:2008 mod/settings.php:1041 -msgid "News Page" -msgstr "Page d'informations" - -#: mod/admin.php:2009 mod/settings.php:1045 -msgid "Community Forum" -msgstr "Forum Communautaire" - -#: mod/admin.php:2010 -msgid "Relay" -msgstr "Relai" - -#: mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 mod/admin.php:2099 -#: src/Content/ContactSelector.php:86 -msgid "Email" -msgstr "Courriel" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Register date" -msgstr "Date d'inscription" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last login" -msgstr "Dernière connexion" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last item" -msgstr "Dernier élément" - -#: mod/admin.php:2056 -msgid "Type" -msgstr "Type" - -#: mod/admin.php:2063 -msgid "Add User" -msgstr "Ajouter l'utilisateur" - -#: mod/admin.php:2065 -msgid "User registrations waiting for confirm" -msgstr "Inscriptions d'utilisateurs en attente de confirmation" - -#: mod/admin.php:2066 -msgid "User waiting for permanent deletion" -msgstr "Utilisateur en attente de suppression définitive" - -#: mod/admin.php:2067 -msgid "Request date" -msgstr "Date de la demande" - -#: mod/admin.php:2068 -msgid "No registrations." -msgstr "Pas d'inscriptions." - -#: mod/admin.php:2069 -msgid "Note from the user" -msgstr "Message personnel" - -#: mod/admin.php:2070 mod/notifications.php:183 mod/notifications.php:269 -msgid "Approve" -msgstr "Approuver" - -#: mod/admin.php:2071 -msgid "Deny" -msgstr "Rejetter" - -#: mod/admin.php:2074 -msgid "User blocked" -msgstr "Utilisateur bloqué" - -#: mod/admin.php:2076 -msgid "Site admin" -msgstr "Administration du Site" - -#: mod/admin.php:2077 -msgid "Account expired" -msgstr "Compte expiré" - -#: mod/admin.php:2080 -msgid "New User" -msgstr "Nouvel utilisateur" - -#: mod/admin.php:2081 -msgid "Permanent deletion" -msgstr "Suppression définitive" - -#: mod/admin.php:2086 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?" - -#: mod/admin.php:2087 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?" - -#: mod/admin.php:2097 -msgid "Name of the new user." -msgstr "Nom du nouvel utilisateur." - -#: mod/admin.php:2098 -msgid "Nickname" -msgstr "Pseudo" - -#: mod/admin.php:2098 -msgid "Nickname of the new user." -msgstr "Pseudo du nouvel utilisateur." - -#: mod/admin.php:2099 -msgid "Email address of the new user." -msgstr "Adresse mail du nouvel utilisateur." - -#: mod/admin.php:2141 -#, php-format -msgid "Addon %s disabled." -msgstr "Add-on %s désactivé." - -#: mod/admin.php:2144 -#, php-format -msgid "Addon %s enabled." -msgstr "Add-on %s activé." - -#: mod/admin.php:2155 mod/admin.php:2405 -msgid "Disable" -msgstr "Désactiver" - -#: mod/admin.php:2158 mod/admin.php:2408 -msgid "Enable" -msgstr "Activer" - -#: mod/admin.php:2180 mod/admin.php:2437 -msgid "Toggle" -msgstr "Activer/Désactiver" - -#: mod/admin.php:2181 mod/admin.php:2438 mod/newmember.php:20 -#: mod/settings.php:136 src/Content/Nav.php:263 view/theme/frio/theme.php:272 -msgid "Settings" -msgstr "Réglages" - -#: mod/admin.php:2188 mod/admin.php:2446 -msgid "Author: " -msgstr "Auteur : " - -#: mod/admin.php:2189 mod/admin.php:2447 -msgid "Maintainer: " -msgstr "Mainteneur : " - -#: mod/admin.php:2241 -msgid "Reload active addons" -msgstr "Recharger les add-ons activés." - -#: mod/admin.php:2246 -#, php-format -msgid "" -"There are currently no addons available on your node. You can find the " -"official addon repository at %1$s and might find other interesting addons in" -" the open addon registry at %2$s" -msgstr "Il n'y a pas d'add-on disponible sur votre serveur. Vous pouvez trouver le dépôt officiel d'add-ons sur %1$s et des add-ons non-officiel dans le répertoire d'add-ons ouvert sur %2$s." - -#: mod/admin.php:2367 -msgid "No themes found." -msgstr "Aucun thème trouvé." - -#: mod/admin.php:2428 -msgid "Screenshot" -msgstr "Capture d'écran" - -#: mod/admin.php:2482 -msgid "Reload active themes" -msgstr "Recharger les thèmes actifs" - -#: mod/admin.php:2487 -#, php-format -msgid "No themes found on the system. They should be placed in %1$s" -msgstr "Aucun thème trouvé. Leur emplacement d'installation est%1$s." - -#: mod/admin.php:2488 -msgid "[Experimental]" -msgstr "[Expérimental]" - -#: mod/admin.php:2489 -msgid "[Unsupported]" -msgstr "[Non supporté]" - -#: mod/admin.php:2514 -msgid "Log settings updated." -msgstr "Réglages des journaux mis-à-jour." - -#: mod/admin.php:2547 -msgid "PHP log currently enabled." -msgstr "Log PHP actuellement activé." - -#: mod/admin.php:2549 -msgid "PHP log currently disabled." -msgstr "Log PHP actuellement desactivé." - -#: mod/admin.php:2558 -msgid "Clear" -msgstr "Effacer" - -#: mod/admin.php:2562 -msgid "Enable Debugging" -msgstr "Activer le déboggage" - -#: mod/admin.php:2563 -msgid "Log file" -msgstr "Fichier de journaux" - -#: mod/admin.php:2563 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica." - -#: mod/admin.php:2564 -msgid "Log level" -msgstr "Niveau de journalisaton" - -#: mod/admin.php:2566 -msgid "PHP logging" -msgstr "Log PHP" - -#: mod/admin.php:2567 -msgid "" -"To temporarily enable logging of PHP errors and warnings you can prepend the" -" following to the index.php file of your installation. The filename set in " -"the 'error_log' line is relative to the friendica top-level directory and " -"must be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "Pour activer temporairement la journalisation de PHP vous pouvez insérez les lignes suivantes au début du fichier index.php dans votre répertoire Friendica. The nom de fichier défini dans la ligne 'error_log' est relatif au répertoire d'installation de Friendica et le serveur web doit avoir le droit d'écriture sur ce fichier. Les lignes log_errors et display_errors prennent les valeurs 0 et 1 respectivement pour les activer ou désactiver." - -#: mod/admin.php:2599 -#, php-format -msgid "" -"Error trying to open %1$s log file.\\r\\n
    Check to see " -"if file %1$s exist and is readable." -msgstr "Erreur lors de l'ouverture du fichier de journal %1$s.\\r\\n
    Veuillez vérifier que le fichier %1$s existe et que le serveur web a le droit de lecture dessus." - -#: mod/admin.php:2603 -#, php-format -msgid "" -"Couldn't open %1$s log file.\\r\\n
    Check to see if file" -" %1$s is readable." -msgstr "Erreur lors de l'ouverture du fichier de journal %1$s.\\r\\n
    Veuillez vérifier que le fichier %1$s existe et que le serveur web a le droit de lecture dessus." - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "Off" -msgstr "Éteint" - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "On" -msgstr "Allumé" - -#: mod/admin.php:2697 -#, php-format -msgid "Lock feature %s" -msgstr "Verouiller la fonctionnalité %s" - -#: mod/admin.php:2705 -msgid "Manage Additional Features" -msgstr "Gérer les fonctionnalités avancées" - -#: mod/allfriends.php:52 -msgid "No friends to display." -msgstr "Pas d'amis à afficher." - -#: mod/allfriends.php:89 mod/dirfind.php:217 mod/match.php:102 -#: mod/suggest.php:106 src/Content/Widget.php:39 src/Model/Profile.php:313 -msgid "Connect" -msgstr "Se connecter" - #: mod/api.php:84 mod/api.php:106 msgid "Authorize application connection" msgstr "Autoriser l'application à se connecter" @@ -2885,212 +925,79 @@ msgid "" " and/or create new posts for you?" msgstr "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à créer des billets à votre place?" -#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:161 #: mod/profiles.php:526 mod/profiles.php:530 mod/profiles.php:551 -#: mod/settings.php:1085 mod/settings.php:1091 mod/settings.php:1098 -#: mod/settings.php:1102 mod/settings.php:1106 mod/settings.php:1110 -#: mod/settings.php:1114 mod/settings.php:1118 mod/settings.php:1138 -#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 -#: mod/settings.php:1142 src/Module/Register.php:98 +#: mod/settings.php:1084 mod/settings.php:1090 mod/settings.php:1097 +#: mod/settings.php:1101 mod/settings.php:1105 mod/settings.php:1109 +#: mod/settings.php:1113 mod/settings.php:1117 mod/settings.php:1137 +#: mod/settings.php:1138 mod/settings.php:1139 mod/settings.php:1140 +#: mod/settings.php:1141 src/Module/Register.php:98 msgid "No" msgstr "Non" -#: mod/apps.php:15 src/App.php:1349 -msgid "You must be logged in to use addons. " -msgstr "Vous devez être connecté pour utiliser les greffons." - -#: mod/apps.php:20 -msgid "Applications" -msgstr "Applications" - -#: mod/apps.php:25 -msgid "No installed applications." -msgstr "Pas d'application installée." - -#: mod/babel.php:25 -msgid "Source input" -msgstr "Saisie source" - -#: mod/babel.php:31 -msgid "BBCode::toPlaintext" -msgstr "BBCode::toPlaintext" - -#: mod/babel.php:37 -msgid "BBCode::convert (raw HTML)" -msgstr "BBCode::convert (code HTML)" - -#: mod/babel.php:42 -msgid "BBCode::convert" -msgstr "BBCode::convert" - -#: mod/babel.php:48 -msgid "BBCode::convert => HTML::toBBCode" -msgstr "BBCode::convert => HTML::toBBCode" - -#: mod/babel.php:54 -msgid "BBCode::toMarkdown" -msgstr "BBCode::toMarkdown" - -#: mod/babel.php:60 -msgid "BBCode::toMarkdown => Markdown::convert" -msgstr "BBCode::toMarkdown => Markdown::convert" - -#: mod/babel.php:66 -msgid "BBCode::toMarkdown => Markdown::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::toBBCode" - -#: mod/babel.php:72 -msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" - -#: mod/babel.php:83 -msgid "Item Body" -msgstr "Corps du message" - -#: mod/babel.php:87 -msgid "Item Tags" -msgstr "Tags du messages" - -#: mod/babel.php:94 -msgid "Source input (Diaspora format)" -msgstr "Saisie source (format Diaspora)" - -#: mod/babel.php:100 -msgid "Markdown::convert (raw HTML)" -msgstr "Markdown::convert (code HTML)" - -#: mod/babel.php:105 -msgid "Markdown::convert" -msgstr "Markdown::convert" - -#: mod/babel.php:111 -msgid "Markdown::toBBCode" -msgstr "Markdown::toBBCode" - -#: mod/babel.php:118 -msgid "Raw HTML input" -msgstr "Saisie code HTML" - -#: mod/babel.php:123 -msgid "HTML Input" -msgstr "Code HTML" - -#: mod/babel.php:129 -msgid "HTML::toBBCode" -msgstr "HTML::toBBCode" - -#: mod/babel.php:135 -msgid "HTML::toBBCode => BBCode::convert" -msgstr "HTML::toBBCode => BBCode::convert" - -#: mod/babel.php:140 -msgid "HTML::toBBCode => BBCode::convert (raw HTML)" -msgstr "HTML::toBBCode => BBCode::convert (code HTML)" - -#: mod/babel.php:146 -msgid "HTML::toMarkdown" -msgstr "HTML::toMarkdown" - -#: mod/babel.php:152 -msgid "HTML::toPlaintext" -msgstr "HTML::toPlaintext" - -#: mod/babel.php:160 -msgid "Source text" -msgstr "Texte source" - -#: mod/babel.php:161 -msgid "BBCode" -msgstr "BBCode" - -#: mod/babel.php:162 -msgid "Markdown" -msgstr "Markdown" - -#: mod/babel.php:163 -msgid "HTML" -msgstr "HTML" - -#: mod/bookmarklet.php:22 src/Content/Nav.php:170 src/Module/Login.php:322 -msgid "Login" -msgstr "Connexion" - -#: mod/bookmarklet.php:32 -msgid "Bad Request" -msgstr "Requête erronée" - -#: mod/bookmarklet.php:54 -msgid "The post was created" -msgstr "La publication a été créée" - #: mod/cal.php:34 mod/cal.php:38 mod/community.php:39 mod/follow.php:20 -#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 mod/viewsrc.php:13 +#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 src/Module/ItemBody.php:18 msgid "Access denied." msgstr "Accès refusé." -#: mod/cal.php:46 mod/dfrn_poll.php:486 mod/help.php:68 -#: mod/viewcontacts.php:34 src/App.php:1400 -msgid "Page not found." -msgstr "Page introuvable." - -#: mod/cal.php:141 mod/display.php:309 src/Module/Profile.php:168 +#: mod/cal.php:140 mod/display.php:306 src/Module/Profile.php:176 msgid "Access to this profile has been restricted." msgstr "L'accès au profil a été restreint." -#: mod/cal.php:273 mod/events.php:384 src/Content/Nav.php:160 -#: src/Content/Nav.php:226 src/Model/Profile.php:937 src/Model/Profile.php:948 +#: mod/cal.php:271 mod/events.php:382 src/Content/Nav.php:159 +#: src/Content/Nav.php:225 src/Model/Profile.php:931 src/Model/Profile.php:942 #: view/theme/frio/theme.php:266 view/theme/frio/theme.php:270 msgid "Events" msgstr "Événements" -#: mod/cal.php:274 mod/events.php:385 +#: mod/cal.php:272 mod/events.php:383 msgid "View" msgstr "Vue" -#: mod/cal.php:275 mod/events.php:387 +#: mod/cal.php:273 mod/events.php:385 msgid "Previous" msgstr "Précédent" -#: mod/cal.php:276 mod/events.php:388 src/Module/Install.php:133 +#: mod/cal.php:274 mod/events.php:386 src/Module/Install.php:173 msgid "Next" msgstr "Suivant" -#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:428 +#: mod/cal.php:277 mod/events.php:391 src/Model/Event.php:428 msgid "today" msgstr "aujourd'hui" -#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:429 +#: mod/cal.php:278 mod/events.php:392 src/Model/Event.php:429 #: src/Util/Temporal.php:314 msgid "month" msgstr "mois" -#: mod/cal.php:281 mod/events.php:395 src/Model/Event.php:430 +#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:430 #: src/Util/Temporal.php:315 msgid "week" msgstr "semaine" -#: mod/cal.php:282 mod/events.php:396 src/Model/Event.php:431 +#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:431 #: src/Util/Temporal.php:316 msgid "day" msgstr "jour" -#: mod/cal.php:283 mod/events.php:397 +#: mod/cal.php:281 mod/events.php:395 msgid "list" msgstr "liste" -#: mod/cal.php:296 src/Core/Console/NewPassword.php:67 src/Model/User.php:324 +#: mod/cal.php:294 src/Console/NewPassword.php:67 src/Model/User.php:351 msgid "User not found" msgstr "Utilisateur introuvable" -#: mod/cal.php:312 +#: mod/cal.php:310 msgid "This calendar format is not supported" msgstr "Format de calendrier inconnu" -#: mod/cal.php:314 +#: mod/cal.php:312 msgid "No exportable data found" msgstr "Rien à exporter" -#: mod/cal.php:331 +#: mod/cal.php:329 msgid "calendar" msgstr "calendrier" @@ -3098,14 +1005,14 @@ msgstr "calendrier" msgid "No contacts in common." msgstr "Pas de contacts en commun." -#: mod/common.php:141 src/Module/Contact.php:892 +#: mod/common.php:141 src/Module/Contact.php:895 msgid "Common Friends" msgstr "Amis communs" -#: mod/community.php:32 mod/dfrn_request.php:597 mod/directory.php:43 -#: mod/display.php:209 mod/photos.php:903 mod/probe.php:13 mod/search.php:96 -#: mod/search.php:102 mod/videos.php:147 mod/viewcontacts.php:46 -#: mod/webfinger.php:16 +#: mod/community.php:32 mod/dfrn_request.php:597 mod/display.php:204 +#: mod/photos.php:846 mod/probe.php:14 mod/search.php:96 mod/search.php:102 +#: mod/videos.php:118 mod/viewcontacts.php:46 src/Module/Directory.php:43 +#: src/Module/WebFinger.php:19 msgid "Public access denied." msgstr "Accès public refusé." @@ -3133,7 +1040,7 @@ msgstr "Communauté globale" msgid "Posts from users of the whole federated network" msgstr "Conversations publiques provenant du réseau fédéré global" -#: mod/community.php:162 mod/search.php:229 +#: mod/community.php:162 mod/search.php:223 msgid "No results." msgstr "Aucun résultat." @@ -3143,17 +1050,6 @@ msgid "" " not reflect the opinions of this node’s users." msgstr "Ce fil communautaire liste toutes les conversations publiques reçues par ce serveur. Elles ne reflètent pas nécessairement les opinions personelles des utilisateurs locaux." -#: mod/credits.php:19 -msgid "Credits" -msgstr "Remerciements" - -#: mod/credits.php:20 -msgid "" -"Friendica is a community project, that would not be possible without the " -"help of many people. Here is a list of those who have contributed to the " -"code or the translation of Friendica. Thank you all!" -msgstr "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!" - #: mod/crepair.php:79 msgid "Contact settings applied." msgstr "Réglages du contact appliqués." @@ -3162,8 +1058,9 @@ msgstr "Réglages du contact appliqués." msgid "Contact update failed." msgstr "Impossible d'appliquer les réglages." -#: mod/crepair.php:102 mod/dfrn_confirm.php:127 mod/fsuggest.php:28 +#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/fsuggest.php:28 #: mod/fsuggest.php:89 mod/redir.php:31 mod/redir.php:137 +#: src/Module/FollowConfirm.php:46 src/Module/Group.php:92 msgid "Contact not found." msgstr "Contact introuvable." @@ -3199,14 +1096,15 @@ msgstr "Retour à l'éditeur de contact" msgid "Refetch contact data" msgstr "Récupérer à nouveau les données de contact" -#: mod/crepair.php:149 mod/events.php:553 mod/fsuggest.php:106 -#: mod/invite.php:154 mod/localtime.php:56 mod/manage.php:182 -#: mod/message.php:261 mod/message.php:441 mod/photos.php:1049 -#: mod/photos.php:1137 mod/photos.php:1412 mod/photos.php:1457 -#: mod/photos.php:1496 mod/photos.php:1556 mod/poke.php:188 -#: mod/profiles.php:562 src/Module/Contact.php:594 src/Module/Install.php:187 -#: src/Module/Install.php:222 src/Object/Post.php:874 -#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:119 +#: mod/crepair.php:149 mod/events.php:551 mod/fsuggest.php:106 +#: mod/manage.php:183 mod/message.php:261 mod/message.php:441 +#: mod/photos.php:987 mod/photos.php:1093 mod/photos.php:1378 +#: mod/photos.php:1423 mod/photos.php:1462 mod/photos.php:1522 +#: mod/poke.php:184 mod/profiles.php:562 src/Module/Contact.php:597 +#: src/Module/Install.php:211 src/Module/Install.php:251 +#: src/Module/Install.php:287 src/Module/Invite.php:157 +#: src/Module/Localtime.php:45 src/Object/Post.php:877 +#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:121 #: view/theme/quattro/config.php:74 view/theme/vier/config.php:120 msgid "Submit" msgstr "Envoyer" @@ -3225,6 +1123,13 @@ msgid "" "entries from this contact." msgstr "Marquer ce contact comme étant remote_self, friendica republiera alors les nouvelles entrées de ce contact." +#: mod/crepair.php:159 mod/settings.php:676 mod/settings.php:702 +#: src/Module/Admin/Blocklist/Contact.php:72 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:313 +msgid "Name" +msgstr "Nom" + #: mod/crepair.php:160 msgid "Account Nickname" msgstr "Pseudo du compte" @@ -3288,7 +1193,15 @@ msgid "" "settings. Please double check whom you give this access." msgstr "Le compte parent a un contrôle total sur ce compte, incluant les paramètres de compte. Veuillez vérifier à qui vous donnez cet accès." -#: mod/delegate.php:176 src/Content/Nav.php:261 +#: mod/delegate.php:175 mod/settings.php:674 mod/settings.php:781 +#: mod/settings.php:869 mod/settings.php:948 mod/settings.php:1173 +#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69 +#: src/Module/Admin/Logs/Settings.php:59 src/Module/Admin/Site.php:570 +#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Tos.php:50 +msgid "Save Settings" +msgstr "Sauvegarder les paramètres" + +#: mod/delegate.php:176 src/Content/Nav.php:260 msgid "Delegate Page Management" msgstr "Déléguer la gestion de la page" @@ -3323,83 +1236,79 @@ msgstr "Ajouter" msgid "No entries." msgstr "Aucune entrée." -#: mod/dfrn_confirm.php:72 mod/profiles.php:43 mod/profiles.php:152 +#: mod/dfrn_confirm.php:70 mod/profiles.php:43 mod/profiles.php:152 #: mod/profiles.php:196 mod/profiles.php:511 msgid "Profile not found." msgstr "Profil introuvable." -#: mod/dfrn_confirm.php:128 +#: mod/dfrn_confirm.php:126 msgid "" "This may occasionally happen if contact was requested by both persons and it" " has already been approved." msgstr "Ceci peut se produire lorsque le contact a été requis par les deux personnes et a déjà été approuvé." -#: mod/dfrn_confirm.php:238 +#: mod/dfrn_confirm.php:227 msgid "Response from remote site was not understood." msgstr "Réponse du site distant incomprise." -#: mod/dfrn_confirm.php:245 mod/dfrn_confirm.php:251 +#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240 msgid "Unexpected response from remote site: " msgstr "Réponse inattendue du site distant : " -#: mod/dfrn_confirm.php:260 +#: mod/dfrn_confirm.php:249 msgid "Confirmation completed successfully." msgstr "Confirmation achevée avec succès." -#: mod/dfrn_confirm.php:272 +#: mod/dfrn_confirm.php:261 msgid "Temporary failure. Please wait and try again." msgstr "Échec temporaire. Merci de recommencer ultérieurement." -#: mod/dfrn_confirm.php:275 +#: mod/dfrn_confirm.php:264 msgid "Introduction failed or was revoked." msgstr "Introduction échouée ou annulée." -#: mod/dfrn_confirm.php:280 +#: mod/dfrn_confirm.php:269 msgid "Remote site reported: " msgstr "Alerte du site distant : " -#: mod/dfrn_confirm.php:386 -msgid "Unable to set contact photo." -msgstr "Impossible de définir la photo du contact." - -#: mod/dfrn_confirm.php:448 +#: mod/dfrn_confirm.php:374 #, php-format msgid "No user record found for '%s' " msgstr "Pas d'utilisateur trouvé pour '%s' " -#: mod/dfrn_confirm.php:458 +#: mod/dfrn_confirm.php:384 msgid "Our site encryption key is apparently messed up." msgstr "Notre clé de chiffrement de site est apparemment corrompue." -#: mod/dfrn_confirm.php:469 +#: mod/dfrn_confirm.php:395 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "URL de site absente ou indéchiffrable." -#: mod/dfrn_confirm.php:485 +#: mod/dfrn_confirm.php:411 msgid "Contact record was not found for you on our site." msgstr "Pas d'entrée pour ce contact sur notre site." -#: mod/dfrn_confirm.php:499 +#: mod/dfrn_confirm.php:425 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "La clé publique du site ne se trouve pas dans l'enregistrement du contact pour l'URL %s." -#: mod/dfrn_confirm.php:515 +#: mod/dfrn_confirm.php:441 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "L'identifiant fourni par votre système fait doublon sur le notre. Cela peut fonctionner si vous réessayez." -#: mod/dfrn_confirm.php:526 +#: mod/dfrn_confirm.php:452 msgid "Unable to set your contact credentials on our system." msgstr "Impossible de vous définir des permissions sur notre système." -#: mod/dfrn_confirm.php:582 +#: mod/dfrn_confirm.php:508 msgid "Unable to update your contact profile details on our system" msgstr "Impossible de mettre les détails de votre profil à jour sur notre système" -#: mod/dfrn_confirm.php:612 mod/dfrn_request.php:560 -#: src/Model/Contact.php:2043 +#: mod/dfrn_confirm.php:538 mod/dfrn_request.php:560 +#: src/Model/Contact.php:2217 msgid "[Name Withheld]" msgstr "[Nom non-publié]" @@ -3473,11 +1382,17 @@ msgstr "Il semblerait que vous soyez déjà ami avec %s." msgid "Invalid profile URL." msgstr "URL de profil invalide." -#: mod/dfrn_request.php:340 src/Model/Contact.php:1714 +#: mod/dfrn_request.php:340 src/Model/Contact.php:1878 msgid "Disallowed profile URL." msgstr "URL de profil interdite." -#: mod/dfrn_request.php:413 src/Module/Contact.php:235 +#: mod/dfrn_request.php:346 src/Model/Contact.php:1883 +#: src/Module/Admin/Blocklist/Server.php:64 +#: src/Module/Admin/Blocklist/Server.php:83 src/Module/Friendica.php:59 +msgid "Blocked domain" +msgstr "Domaine bloqué" + +#: mod/dfrn_request.php:413 src/Module/Contact.php:237 msgid "Failed to update contact record." msgstr "Échec de mise à jour du contact." @@ -3489,7 +1404,7 @@ msgstr "Votre introduction a été envoyée." msgid "" "Remote subscription can't be done for your network. Please subscribe " "directly on your system." -msgstr "" +msgstr "L'abonnement à distance ne peut pas être fait pour votre réseau. Merci de vous abonner directement sur votre système." #: mod/dfrn_request.php:487 msgid "Please login to confirm introduction." @@ -3530,7 +1445,7 @@ msgstr "Merci d'entrer votre \"adresse d'identité\" de l'un des réseaux de com msgid "" "If you are not yet a member of the free social web, follow " "this link to find a public Friendica site and join us today." -msgstr "" +msgstr "Si vous n'êtes pas encore un membre du réseau sociale Libre, Suivez ce lien pour trouver une instance publique Friendica et nous rejoindre aujourd'hui." #: mod/dfrn_request.php:637 msgid "Friend/Connection Request" @@ -3540,18 +1455,18 @@ msgstr "Requête de relation/amitié" msgid "" "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " "testuser@gnusocial.de" -msgstr "" +msgstr "Exemples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de" -#: mod/dfrn_request.php:639 mod/follow.php:149 +#: mod/dfrn_request.php:639 mod/follow.php:160 msgid "Please answer the following:" msgstr "Merci de répondre à ce qui suit :" -#: mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/dfrn_request.php:640 mod/follow.php:161 #, php-format msgid "Does %s know you?" msgstr "Est-ce que %s vous connaît?" -#: mod/dfrn_request.php:641 mod/follow.php:151 +#: mod/dfrn_request.php:641 mod/follow.php:162 msgid "Add a personal note:" msgstr "Ajouter une note personnelle :" @@ -3574,65 +1489,14 @@ msgid "" " bar." msgstr " - merci de ne pas utiliser ce formulaire. Entrez plutôt %s dans votre barre de recherche Diaspora." -#: mod/dfrn_request.php:647 mod/follow.php:157 mod/unfollow.php:128 +#: mod/dfrn_request.php:647 mod/follow.php:168 mod/unfollow.php:128 msgid "Your Identity Address:" msgstr "Votre adresse d'identité :" -#: mod/dfrn_request.php:649 mod/follow.php:65 mod/unfollow.php:131 +#: mod/dfrn_request.php:649 mod/follow.php:74 mod/unfollow.php:131 msgid "Submit Request" msgstr "Envoyer la requête" -#: mod/directory.php:154 mod/events.php:541 mod/notifications.php:253 -#: src/Model/Event.php:68 src/Model/Event.php:95 src/Model/Event.php:437 -#: src/Model/Event.php:933 src/Model/Profile.php:443 -#: src/Module/Contact.php:643 -msgid "Location:" -msgstr "Localisation :" - -#: mod/directory.php:159 mod/notifications.php:259 src/Model/Profile.php:446 -#: src/Model/Profile.php:758 -msgid "Gender:" -msgstr "Genre :" - -#: mod/directory.php:160 src/Model/Profile.php:447 src/Model/Profile.php:782 -msgid "Status:" -msgstr "Statut :" - -#: mod/directory.php:161 src/Model/Profile.php:448 src/Model/Profile.php:799 -msgid "Homepage:" -msgstr "Page personnelle :" - -#: mod/directory.php:162 mod/notifications.php:255 src/Model/Profile.php:449 -#: src/Model/Profile.php:819 src/Module/Contact.php:647 -msgid "About:" -msgstr "À propos :" - -#: mod/directory.php:210 src/Content/Widget.php:70 -#: view/theme/vier/theme.php:208 -msgid "Global Directory" -msgstr "Annuaire global" - -#: mod/directory.php:212 -msgid "Find on this site" -msgstr "Trouver sur ce site" - -#: mod/directory.php:214 -msgid "Results for:" -msgstr "Résultats pour :" - -#: mod/directory.php:216 -msgid "Site Directory" -msgstr "Annuaire local" - -#: mod/directory.php:217 src/Content/Widget.php:65 src/Module/Contact.php:817 -#: view/theme/vier/theme.php:203 -msgid "Find" -msgstr "Trouver" - -#: mod/directory.php:221 -msgid "No entries (some entries may be hidden)." -msgstr "Aucune entrée (certaines peuvent être cachées)." - #: mod/dirfind.php:55 #, php-format msgid "People Search - %s" @@ -3643,53 +1507,67 @@ msgstr "Recherche de personne - %s" msgid "Forum Search - %s" msgstr "Recherche de Forum - %s" +#: mod/dirfind.php:217 mod/match.php:102 mod/suggest.php:106 +#: src/Content/Widget.php:39 src/Model/Profile.php:309 +#: src/Module/AllFriends.php:91 +msgid "Connect" +msgstr "Se connecter" + #: mod/dirfind.php:259 mod/match.php:130 msgid "No matches" msgstr "Aucune correspondance" -#: mod/editpost.php:29 mod/editpost.php:39 +#: mod/display.php:257 mod/display.php:342 +msgid "The requested item doesn't exist or has been deleted." +msgstr "L'objet recherché n'existe pas ou a été supprimé." + +#: mod/display.php:417 +msgid "The feed for this item is unavailable." +msgstr "Le flux pour cet objet n'est pas disponible." + +#: mod/editpost.php:28 mod/editpost.php:38 msgid "Item not found" msgstr "Élément introuvable" -#: mod/editpost.php:46 +#: mod/editpost.php:45 msgid "Edit post" msgstr "Éditer la publication" -#: mod/editpost.php:73 mod/filer.php:36 mod/notes.php:46 -#: src/Content/Text/HTML.php:894 +#: mod/editpost.php:71 mod/notes.php:46 src/Content/Text/HTML.php:894 +#: src/Module/Filer/SaveTag.php:50 msgid "Save" msgstr "Sauver" -#: mod/editpost.php:78 mod/message.php:259 mod/message.php:440 +#: mod/editpost.php:76 mod/message.php:259 mod/message.php:440 #: mod/wallmessage.php:140 msgid "Insert web link" msgstr "Insérer lien web" -#: mod/editpost.php:79 +#: mod/editpost.php:77 msgid "web link" msgstr "lien web" -#: mod/editpost.php:80 +#: mod/editpost.php:78 msgid "Insert video link" msgstr "Insérer un lien video" -#: mod/editpost.php:81 +#: mod/editpost.php:79 msgid "video link" msgstr "lien vidéo" -#: mod/editpost.php:82 +#: mod/editpost.php:80 msgid "Insert audio link" msgstr "Insérer un lien audio" -#: mod/editpost.php:83 +#: mod/editpost.php:81 msgid "audio link" msgstr "lien audio" -#: mod/editpost.php:98 src/Core/ACL.php:307 +#: mod/editpost.php:95 src/Core/ACL.php:308 msgid "CC: email addresses" msgstr "CC: adresses de courriel" -#: mod/editpost.php:105 src/Core/ACL.php:308 +#: mod/editpost.php:102 src/Core/ACL.php:309 msgid "Example: bob@example.com, mary@example.com" msgstr "Exemple : bob@exemple.com, mary@exemple.com" @@ -3701,171 +1579,135 @@ msgstr "L'événement ne peut pas se terminer avant d'avoir commencé." msgid "Event title and start time are required." msgstr "Vous devez donner un nom et un horaire de début à l'événement." -#: mod/events.php:386 +#: mod/events.php:384 msgid "Create New Event" msgstr "Créer un nouvel événement" -#: mod/events.php:509 +#: mod/events.php:507 msgid "Event details" msgstr "Détails de l'événement" -#: mod/events.php:510 +#: mod/events.php:508 msgid "Starting date and Title are required." msgstr "La date de début et le titre sont requis." -#: mod/events.php:511 mod/events.php:516 +#: mod/events.php:509 mod/events.php:514 msgid "Event Starts:" msgstr "Début de l'événement :" -#: mod/events.php:511 mod/events.php:543 mod/profiles.php:592 +#: mod/events.php:509 mod/events.php:541 mod/profiles.php:592 msgid "Required" msgstr "Requis" -#: mod/events.php:524 mod/events.php:549 +#: mod/events.php:522 mod/events.php:547 msgid "Finish date/time is not known or not relevant" msgstr "Date / heure de fin inconnue ou sans objet" -#: mod/events.php:526 mod/events.php:531 +#: mod/events.php:524 mod/events.php:529 msgid "Event Finishes:" msgstr "Fin de l'événement :" -#: mod/events.php:537 mod/events.php:550 +#: mod/events.php:535 mod/events.php:548 msgid "Adjust for viewer timezone" msgstr "Ajuster à la zone horaire du visiteur" -#: mod/events.php:539 +#: mod/events.php:537 msgid "Description:" msgstr "Description :" -#: mod/events.php:543 mod/events.php:545 +#: mod/events.php:539 mod/notifications.php:261 src/Model/Event.php:68 +#: src/Model/Event.php:95 src/Model/Event.php:437 src/Model/Event.php:933 +#: src/Model/Profile.php:439 src/Module/Contact.php:646 +#: src/Module/Directory.php:142 +msgid "Location:" +msgstr "Localisation :" + +#: mod/events.php:541 mod/events.php:543 msgid "Title:" msgstr "Titre :" -#: mod/events.php:546 mod/events.php:547 +#: mod/events.php:544 mod/events.php:545 msgid "Share this event" msgstr "Partager cet événement" -#: mod/events.php:554 src/Model/Profile.php:877 +#: mod/events.php:552 src/Model/Profile.php:871 msgid "Basic" msgstr "Simple" -#: mod/events.php:556 mod/photos.php:1067 mod/photos.php:1408 -#: src/Core/ACL.php:310 +#: mod/events.php:553 src/Model/Profile.php:872 src/Module/Admin/Site.php:575 +#: src/Module/Contact.php:905 +msgid "Advanced" +msgstr "Avancé" + +#: mod/events.php:554 mod/photos.php:1005 mod/photos.php:1374 +#: src/Core/ACL.php:314 msgid "Permissions" msgstr "Permissions" -#: mod/events.php:572 +#: mod/events.php:570 msgid "Failed to remove event" msgstr "La suppression de l'événement a échoué." -#: mod/events.php:574 +#: mod/events.php:572 msgid "Event removed" msgstr "Événement supprimé." -#: mod/fbrowser.php:36 src/Content/Nav.php:158 src/Model/Profile.php:917 +#: mod/fbrowser.php:43 src/Content/Nav.php:157 src/Model/Profile.php:911 #: view/theme/frio/theme.php:264 msgid "Photos" msgstr "Photos" -#: mod/fbrowser.php:45 mod/fbrowser.php:69 mod/photos.php:201 -#: mod/photos.php:1031 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1610 mod/photos.php:1625 src/Model/Photo.php:547 -#: src/Model/Photo.php:556 +#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:193 +#: mod/photos.php:969 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1575 mod/photos.php:1590 src/Model/Photo.php:552 +#: src/Model/Photo.php:561 msgid "Contact Photos" msgstr "Photos du contact" -#: mod/fbrowser.php:106 mod/fbrowser.php:136 mod/profile_photo.php:254 +#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:254 msgid "Upload" msgstr "Téléverser" -#: mod/fbrowser.php:131 +#: mod/fbrowser.php:136 msgid "Files" msgstr "Fichiers" -#: mod/feedtest.php:18 -msgid "You must be logged in to use this module" -msgstr "Vous devez être identifié pour accéder à cette fonctionnalité" - -#: mod/feedtest.php:45 -msgid "Source URL" -msgstr "URL Source" - -#: mod/filer.php:35 -msgid "- select -" -msgstr "- choisir -" - #: mod/follow.php:46 msgid "The contact could not be added." msgstr "Le contact n'a pas pu être ajouté." -#: mod/follow.php:76 +#: mod/follow.php:85 msgid "You already added this contact." msgstr "Vous avez déjà ajouté ce contact." -#: mod/follow.php:86 +#: mod/follow.php:97 msgid "Diaspora support isn't enabled. Contact can't be added." msgstr "Le support de Diaspora est désactivé. Le contact ne peut pas être ajouté." -#: mod/follow.php:93 +#: mod/follow.php:104 msgid "OStatus support is disabled. Contact can't be added." msgstr "Le support d'OStatus est désactivé. Le contact ne peut pas être ajouté." -#: mod/follow.php:100 +#: mod/follow.php:111 msgid "The network type couldn't be detected. Contact can't be added." msgstr "Impossible de détecter le type de réseau. Le contact ne peut pas être ajouté." -#: mod/follow.php:170 mod/notifications.php:257 src/Model/Profile.php:807 -#: src/Module/Contact.php:649 +#: mod/follow.php:177 mod/notifications.php:179 mod/notifications.php:271 +#: mod/unfollow.php:137 src/Module/Admin/Blocklist/Contact.php:72 +#: src/Module/Admin/Blocklist/Contact.php:82 src/Module/Contact.php:642 +msgid "Profile URL" +msgstr "URL du Profil" + +#: mod/follow.php:181 mod/notifications.php:265 src/Model/Profile.php:801 +#: src/Module/Contact.php:652 msgid "Tags:" msgstr "Étiquette :" -#: mod/follow.php:182 mod/unfollow.php:147 src/Model/Profile.php:904 -#: src/Module/Contact.php:864 +#: mod/follow.php:193 mod/unfollow.php:147 src/Model/Profile.php:898 +#: src/Module/Contact.php:867 msgid "Status Messages and Posts" msgstr "Messages d'état et publications" -#: mod/friendica.php:88 -#, php-format -msgid "" -"This is Friendica, version %s that is running at the web location %s. The " -"database version is %s, the post update version is %s." -msgstr "" - -#: mod/friendica.php:94 -msgid "" -"Please visit Friendi.ca to learn more " -"about the Friendica project." -msgstr "Rendez-vous sur Friendi.ca pour en savoir plus sur le projet Friendica." - -#: mod/friendica.php:98 -msgid "Bug reports and issues: please visit" -msgstr "Pour les rapports de bugs : rendez vous sur" - -#: mod/friendica.php:98 -msgid "the bugtracker at github" -msgstr "le bugtracker sur GitHub" - -#: mod/friendica.php:101 -msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" -msgstr "" - -#: mod/friendica.php:106 -msgid "Installed addons/apps:" -msgstr "Add-ons/Applications installés :" - -#: mod/friendica.php:120 -msgid "No installed addons/apps" -msgstr "Aucun add-on/application n'est installé" - -#: mod/friendica.php:125 -#, php-format -msgid "Read about the Terms of Service of this node." -msgstr "" - -#: mod/friendica.php:130 -msgid "On this server the following remote servers are blocked." -msgstr "Sur ce serveur, les serveurs suivants sont sur liste noire." - #: mod/fsuggest.php:69 msgid "Friend suggestion sent." msgstr "Suggestion d'amitié/contact envoyée." @@ -3879,281 +1721,41 @@ msgstr "Suggérer des amis/contacts" msgid "Suggest a friend for %s" msgstr "Suggérer un ami/contact pour %s" -#: mod/group.php:38 -msgid "Group created." -msgstr "Groupe créé." - -#: mod/group.php:44 -msgid "Could not create group." -msgstr "Impossible de créer le groupe." - -#: mod/group.php:58 mod/group.php:184 -msgid "Group not found." -msgstr "Groupe introuvable." - -#: mod/group.php:72 -msgid "Group name changed." -msgstr "Groupe renommé." - -#: mod/group.php:85 mod/profperm.php:30 src/App.php:1479 -msgid "Permission denied" -msgstr "Permission refusée" - -#: mod/group.php:103 -msgid "Save Group" -msgstr "Sauvegarder le groupe" - -#: mod/group.php:104 -msgid "Filter" -msgstr "Filtre" - -#: mod/group.php:109 -msgid "Create a group of contacts/friends." -msgstr "Créez un groupe de contacts/amis." - -#: mod/group.php:110 mod/group.php:133 mod/group.php:224 -#: src/Model/Group.php:423 -msgid "Group Name: " -msgstr "Nom du groupe : " - -#: mod/group.php:125 src/Model/Group.php:420 -msgid "Contacts not in any group" -msgstr "Contacts n'appartenant à aucun groupe" - -#: mod/group.php:156 -msgid "Group removed." -msgstr "Groupe enlevé." - -#: mod/group.php:158 -msgid "Unable to remove group." -msgstr "Impossible d'enlever le groupe." - -#: mod/group.php:217 -msgid "Delete Group" -msgstr "Supprimer le groupe" - -#: mod/group.php:228 -msgid "Edit Group Name" -msgstr "Éditer le nom du groupe" - -#: mod/group.php:239 -msgid "Members" -msgstr "Membres" - -#: mod/group.php:241 src/Module/Contact.php:704 -msgid "All Contacts" -msgstr "Tous les contacts" - -#: mod/group.php:242 mod/network.php:654 -msgid "Group is empty" -msgstr "Groupe vide" - -#: mod/group.php:255 -msgid "Remove contact from group" -msgstr "Retirer ce contact du groupe" - -#: mod/group.php:273 mod/profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Cliquez sur un contact pour l'ajouter ou le supprimer." - -#: mod/group.php:287 -msgid "Add contact to group" -msgstr "Ajouter ce contact au groupe" - #: mod/hcard.php:20 msgid "No profile" msgstr "Aucun profil" -#: mod/help.php:52 -msgid "Help:" -msgstr "Aide :" - -#: mod/help.php:59 src/Content/Nav.php:190 view/theme/vier/theme.php:294 -msgid "Help" -msgstr "Aide" - -#: mod/help.php:65 src/App.php:1397 -msgid "Not Found" -msgstr "Non trouvé" - -#: mod/home.php:40 -#, php-format -msgid "Welcome to %s" -msgstr "Bienvenue sur %s" - -#: mod/invite.php:36 -msgid "Total invitation limit exceeded." -msgstr "La limite d'invitation totale est éxédée." - -#: mod/invite.php:60 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Adresse de courriel invalide." - -#: mod/invite.php:87 -msgid "Please join us on Friendica" -msgstr "Rejoignez-nous sur Friendica" - -#: mod/invite.php:96 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site." - -#: mod/invite.php:100 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : L'envoi du message a échoué." - -#: mod/invite.php:104 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d message envoyé." -msgstr[1] "%d messages envoyés." - -#: mod/invite.php:122 -msgid "You have no more invitations available" -msgstr "Vous n'avez plus d'invitations disponibles" - -#: mod/invite.php:130 -#, php-format -msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux." - -#: mod/invite.php:132 -#, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public." - -#: mod/invite.php:133 -#, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre." - -#: mod/invite.php:137 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres." - -#: mod/invite.php:141 -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks." -msgstr "Les instances Friendica sont interconnectées pour créer un immense réseau social possédé et contrôlé par ses membres, et qui respecte leur vie privée. Ils peuvent aussi s'interconnecter avec d'autres réseaux sociaux traditionnels." - -#: mod/invite.php:140 -#, php-format -msgid "To accept this invitation, please visit and register at %s." -msgstr "Pour accepter cette invitation, rendez-vous sur %s et inscrivez-vous." - -#: mod/invite.php:147 -msgid "Send invitations" -msgstr "Envoyer des invitations" - -#: mod/invite.php:148 -msgid "Enter email addresses, one per line:" -msgstr "Entrez les adresses email, une par ligne :" - -#: mod/invite.php:149 mod/message.php:255 mod/message.php:435 -#: mod/wallmessage.php:137 -msgid "Your message:" -msgstr "Votre message :" - -#: mod/invite.php:149 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social." - -#: mod/invite.php:151 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "Vous devrez fournir ce code d'invitation : $invite_code" - -#: mod/invite.php:151 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Une fois inscrit, connectez-vous à la page de mon profil sur :" - -#: mod/invite.php:153 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendi.ca" -msgstr "" - -#: mod/item.php:120 +#: mod/item.php:122 msgid "Unable to locate original post." msgstr "Impossible de localiser la publication originale." -#: mod/item.php:320 +#: mod/item.php:322 msgid "Empty post discarded." msgstr "Publication vide rejetée." -#: mod/item.php:841 +#: mod/item.php:839 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "Ce message vous a été envoyé par %s, membre du réseau social Friendica." -#: mod/item.php:843 +#: mod/item.php:841 #, php-format msgid "You may visit them online at %s" msgstr "Vous pouvez leur rendre visite sur %s" -#: mod/item.php:844 +#: mod/item.php:842 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Merci de contacter l’émetteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages." -#: mod/item.php:848 +#: mod/item.php:846 #, php-format msgid "%s posted an update." msgstr "%s a publié une mise à jour." -#: mod/localtime.php:19 src/Model/Event.php:34 src/Model/Event.php:847 -msgid "l F d, Y \\@ g:i A" -msgstr "l F d, Y \\@ g:i A" - -#: mod/localtime.php:33 -msgid "Time Conversion" -msgstr "Conversion temporelle" - -#: mod/localtime.php:35 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire." - -#: mod/localtime.php:39 -#, php-format -msgid "UTC time: %s" -msgstr "Temps UTC : %s" - -#: mod/localtime.php:42 -#, php-format -msgid "Current timezone: %s" -msgstr "Zone de temps courante : %s" - -#: mod/localtime.php:46 -#, php-format -msgid "Converted localtime: %s" -msgstr "Temps local converti : %s" - -#: mod/localtime.php:52 -msgid "Please select your timezone:" -msgstr "Sélectionner votre zone :" - #: mod/lockview.php:46 mod/lockview.php:57 msgid "Remote privacy information not available." msgstr "Informations de confidentialité indisponibles." @@ -4184,7 +1786,7 @@ msgid "" "\n" "\t\tYour password will not be changed unless we can verify that you\n" "\t\tissued this request." -msgstr "" +msgstr "\n\t\tCher(e) %1$s,\n\t\t\tUne demande vient d'être faite à \"%2$s\" pour réinitialiser votre mot de passe. \n\t\tAfin de confirmer cette demande, merci de sélectionner le lien ci-dessous \n\t\tet de le coller dans la barre d'adresse de votre navigateur.\n\n\t\tSi vous n'avez PAS fait cette demande de changement, merci de NE PAS suivre le lien\n\t\tfourni et d'ignorer et/ou supprimer ce message. La demande expirera rapidement.\n\n\t\tVotre mot de passe ne changera pas tant que nous n'avons pas vérifier que vous êtes à l'origine de la demande." #: mod/lostpass.php:55 #, php-format @@ -4228,7 +1830,7 @@ msgid "" "your email for further instructions." msgstr "Entrez votre adresse de courriel et validez pour réinitialiser votre mot de passe. Vous recevrez la suite des instructions par courriel." -#: mod/lostpass.php:119 src/Module/Login.php:324 +#: mod/lostpass.php:119 src/Module/Login.php:327 msgid "Nickname or Email: " msgstr "Pseudo ou eMail : " @@ -4236,7 +1838,7 @@ msgstr "Pseudo ou eMail : " msgid "Reset" msgstr "Réinitialiser" -#: mod/lostpass.php:135 src/Module/Login.php:336 +#: mod/lostpass.php:135 src/Module/Login.php:339 msgid "Password Reset" msgstr "Réinitialiser le mot de passe" @@ -4262,7 +1864,7 @@ msgid "" "successful login." msgstr "Votre mot de passe peut être changé depuis la page <em>Réglages</em>, une fois que vous serez connecté." -#: mod/lostpass.php:148 +#: mod/lostpass.php:147 #, php-format msgid "" "\n" @@ -4273,7 +1875,7 @@ msgid "" "\t\t" msgstr "" -#: mod/lostpass.php:154 +#: mod/lostpass.php:153 #, php-format msgid "" "\n" @@ -4287,26 +1889,22 @@ msgid "" "\t\t" msgstr "" -#: mod/lostpass.php:170 +#: mod/lostpass.php:169 #, php-format msgid "Your password has been changed at %s" msgstr "Votre mot de passe a été modifié à %s" -#: mod/maintenance.php:26 -msgid "System down for maintenance" -msgstr "Système indisponible pour cause de maintenance" - -#: mod/manage.php:178 +#: mod/manage.php:179 msgid "Manage Identities and/or Pages" msgstr "Gérer les identités et/ou les pages" -#: mod/manage.php:179 +#: mod/manage.php:180 msgid "" "Toggle between different identities or community/group pages which share " "your account details or which you have been granted \"manage\" permissions" msgstr "Basculez entre les différentes identités ou pages (groupes/communautés) qui se partagent votre compte ou que vous avez été autorisé à gérer." -#: mod/manage.php:180 +#: mod/manage.php:181 msgid "Select an identity to manage: " msgstr "Choisir une identité à gérer: " @@ -4326,7 +1924,7 @@ msgstr "suivant" msgid "Profile Match" msgstr "Correpondance de profils" -#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:255 +#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:254 msgid "New Message" msgstr "Nouveau message" @@ -4351,11 +1949,11 @@ msgid "Message sent." msgstr "Message envoyé." #: mod/message.php:110 mod/notifications.php:47 mod/notifications.php:187 -#: mod/notifications.php:235 +#: mod/notifications.php:243 msgid "Discard" msgstr "Rejeter" -#: mod/message.php:123 src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: mod/message.php:123 src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Messages" msgstr "Messages" @@ -4391,6 +1989,11 @@ msgstr "À:" msgid "Subject:" msgstr "Sujet:" +#: mod/message.php:255 mod/message.php:435 mod/wallmessage.php:137 +#: src/Module/Invite.php:150 +msgid "Your message:" +msgstr "Votre message :" + #: mod/message.php:289 msgid "No messages." msgstr "Aucun message." @@ -4443,19 +2046,19 @@ msgid_plural "%d messages" msgstr[0] "%d message" msgstr[1] "%d messages" -#: mod/network.php:183 mod/search.php:38 +#: mod/network.php:184 mod/search.php:38 msgid "Remove term" msgstr "Retirer le terme" -#: mod/network.php:190 mod/search.php:47 +#: mod/network.php:191 mod/search.php:47 msgid "Saved Searches" msgstr "Recherches" -#: mod/network.php:191 src/Model/Group.php:414 +#: mod/network.php:192 src/Model/Group.php:434 msgid "add" msgstr "ajouter" -#: mod/network.php:563 +#: mod/network.php:572 #, php-format msgid "" "Warning: This group contains %s member from a network that doesn't allow non" @@ -4466,73 +2069,78 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: mod/network.php:566 +#: mod/network.php:575 msgid "Messages in this group won't be send to these receivers." msgstr "Les messages dans ce groupe ne seront pas envoyés à ces destinataires." -#: mod/network.php:633 +#: mod/network.php:642 msgid "No such group" msgstr "Groupe inexistant" -#: mod/network.php:658 +#: mod/network.php:663 src/Module/Group.php:288 +msgid "Group is empty" +msgstr "Groupe vide" + +#: mod/network.php:667 #, php-format msgid "Group: %s" msgstr "Group : %s" -#: mod/network.php:684 +#: mod/network.php:693 msgid "Private messages to this person are at risk of public disclosure." msgstr "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée." -#: mod/network.php:687 +#: mod/network.php:696 src/Module/AllFriends.php:35 +#: src/Module/AllFriends.php:43 msgid "Invalid contact." msgstr "Contact invalide." -#: mod/network.php:966 +#: mod/network.php:975 msgid "Commented Order" msgstr "Tri par commentaires" -#: mod/network.php:969 +#: mod/network.php:978 msgid "Sort by Comment Date" msgstr "Trier par date de commentaire" -#: mod/network.php:974 +#: mod/network.php:983 msgid "Posted Order" msgstr "Tri des publications" -#: mod/network.php:977 +#: mod/network.php:986 msgid "Sort by Post Date" msgstr "Trier par date de publication" -#: mod/network.php:984 mod/profiles.php:579 -#: src/Core/NotificationsManager.php:189 +#: mod/network.php:993 mod/profiles.php:579 +#: src/Core/NotificationsManager.php:158 msgid "Personal" msgstr "Personnel" -#: mod/network.php:987 +#: mod/network.php:996 msgid "Posts that mention or involve you" msgstr "Publications qui vous concernent" -#: mod/network.php:994 +#: mod/network.php:1003 msgid "New" msgstr "Nouveau" -#: mod/network.php:997 +#: mod/network.php:1006 msgid "Activity Stream - by date" msgstr "Flux d'activités - par date" -#: mod/network.php:1005 +#: mod/network.php:1014 msgid "Shared Links" msgstr "Liens partagés" -#: mod/network.php:1008 +#: mod/network.php:1017 msgid "Interesting Links" msgstr "Liens intéressants" -#: mod/network.php:1015 +#: mod/network.php:1024 msgid "Starred" msgstr "Mis en avant" -#: mod/network.php:1018 +#: mod/network.php:1027 msgid "Favourite Posts" msgstr "Publications favorites" @@ -4567,6 +2175,13 @@ msgid "" " join." msgstr "Sur votre page d'accueil, dans Conseils aux nouveaux venus - vous trouverez une rapide introduction aux onglets Profil et Réseau, pourrez vous connecter à Facebook, établir de nouvelles relations, et choisir des groupes à rejoindre." +#: mod/newmember.php:20 mod/settings.php:145 src/Content/Nav.php:262 +#: src/Module/Admin/Addons/Details.php:102 +#: src/Module/Admin/Themes/Details.php:107 +#: src/Module/BaseSettingsModule.php:105 view/theme/frio/theme.php:272 +msgid "Settings" +msgstr "Réglages" + #: mod/newmember.php:22 msgid "Go to Your Settings" msgstr "Éditer vos Réglages" @@ -4586,9 +2201,9 @@ msgid "" "potential friends know exactly how to find you." msgstr "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver." -#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:157 -#: src/Model/Profile.php:876 src/Model/Profile.php:909 -#: src/Module/Contact.php:654 src/Module/Contact.php:869 +#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:156 +#: src/Model/Profile.php:870 src/Model/Profile.php:903 +#: src/Module/Contact.php:657 src/Module/Contact.php:872 #: view/theme/frio/theme.php:263 msgid "Profile" msgstr "Profil" @@ -4676,7 +2291,7 @@ msgid "" "hours." msgstr "Sur le panneau latéral de la page Contacts, il y a plusieurs moyens de trouver de nouveaux amis. Nous pouvons mettre les gens en relation selon leurs intérêts, rechercher des amis par nom ou intérêt, et fournir des suggestions en fonction de la topologie du réseau. Sur un site tout neuf, les suggestions d'amitié devraient commencer à apparaître au bout de 24 heures." -#: mod/newmember.php:44 src/Model/Group.php:415 src/Module/Contact.php:752 +#: mod/newmember.php:44 src/Model/Group.php:435 src/Module/Contact.php:756 msgid "Groups" msgstr "Groupes" @@ -4716,7 +2331,7 @@ msgid "" " features and resources." msgstr "Nos pages d'aide peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources." -#: mod/notes.php:34 src/Model/Profile.php:959 +#: mod/notes.php:34 src/Model/Profile.php:953 msgid "Personal Notes" msgstr "Notes personnelles" @@ -4724,13 +2339,7 @@ msgstr "Notes personnelles" msgid "Invalid request identifier." msgstr "Identifiant de demande invalide." -#: mod/notifications.php:60 mod/notifications.php:186 -#: mod/notifications.php:271 src/Module/Contact.php:622 -#: src/Module/Contact.php:825 src/Module/Contact.php:1085 -msgid "Ignore" -msgstr "Ignorer" - -#: mod/notifications.php:93 src/Content/Nav.php:247 +#: mod/notifications.php:93 src/Content/Nav.php:246 msgid "Notifications" msgstr "Notifications" @@ -4738,7 +2347,7 @@ msgstr "Notifications" msgid "Network Notifications" msgstr "Notifications du réseau" -#: mod/notifications.php:112 mod/notify.php:84 +#: mod/notifications.php:112 mod/notify.php:72 msgid "System Notifications" msgstr "Notifications du système" @@ -4766,7 +2375,7 @@ msgstr "Voir les demandes ignorées" msgid "Hide Ignored Requests" msgstr "Cacher les demandes ignorées" -#: mod/notifications.php:166 mod/notifications.php:243 +#: mod/notifications.php:166 mod/notifications.php:251 msgid "Notification type:" msgstr "Type de notification :" @@ -4774,11 +2383,16 @@ msgstr "Type de notification :" msgid "Suggested by:" msgstr "Suggéré par :" -#: mod/notifications.php:181 mod/notifications.php:260 -#: src/Module/Contact.php:630 +#: mod/notifications.php:181 mod/notifications.php:268 +#: src/Module/Contact.php:633 msgid "Hide this contact from others" msgstr "Cacher ce contact aux autres" +#: mod/notifications.php:183 mod/notifications.php:277 +#: src/Module/Admin/Users.php:286 +msgid "Approve" +msgstr "Approuver" + #: mod/notifications.php:203 msgid "Claims to be known to you: " msgstr "Prétend que vous le connaissez : " @@ -4828,21 +2442,32 @@ msgstr "Initiateur du partage" msgid "Subscriber" msgstr "Abonné∙e" -#: mod/notifications.php:266 src/Model/Profile.php:543 -#: src/Module/Contact.php:88 +#: mod/notifications.php:263 src/Model/Profile.php:445 +#: src/Model/Profile.php:813 src/Module/Contact.php:650 +#: src/Module/Directory.php:150 +msgid "About:" +msgstr "À propos :" + +#: mod/notifications.php:267 src/Model/Profile.php:442 +#: src/Model/Profile.php:752 src/Module/Directory.php:147 +msgid "Gender:" +msgstr "Genre :" + +#: mod/notifications.php:274 src/Model/Profile.php:539 +#: src/Module/Contact.php:90 msgid "Network:" msgstr "Réseau" -#: mod/notifications.php:279 +#: mod/notifications.php:288 msgid "No introductions." msgstr "Aucune demande d'introduction." -#: mod/notifications.php:313 +#: mod/notifications.php:322 #, php-format msgid "No more %s notifications." msgstr "Aucune notification de %s" -#: mod/notify.php:80 +#: mod/notify.php:68 msgid "No more system notifications." msgstr "Pas plus de notifications système." @@ -4859,7 +2484,7 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Compte introuvable, et l'inscription OpenID n'est pas autorisée sur ce site." -#: mod/openid.php:117 src/Module/Login.php:92 src/Module/Login.php:143 +#: mod/openid.php:117 src/Module/Login.php:93 src/Module/Login.php:144 msgid "Login failed." msgstr "Échec de connexion." @@ -4891,7 +2516,7 @@ msgstr "réussite" msgid "failed" msgstr "échec" -#: mod/ostatus_subscribe.php:89 src/Object/Post.php:283 +#: mod/ostatus_subscribe.php:89 src/Object/Post.php:284 msgid "ignored" msgstr "ignoré" @@ -4899,223 +2524,239 @@ msgstr "ignoré" msgid "Keep this window open until done." msgstr "Veuillez garder cette fenêtre ouverte jusqu'à la fin." -#: mod/photos.php:115 src/Model/Profile.php:920 +#: mod/photos.php:113 src/Model/Profile.php:914 msgid "Photo Albums" msgstr "Albums photo" -#: mod/photos.php:116 mod/photos.php:1665 +#: mod/photos.php:114 mod/photos.php:1630 msgid "Recent Photos" msgstr "Photos récentes" -#: mod/photos.php:119 mod/photos.php:1187 mod/photos.php:1667 +#: mod/photos.php:116 mod/photos.php:1144 mod/photos.php:1632 msgid "Upload New Photos" msgstr "Téléverser de nouvelles photos" -#: mod/photos.php:137 mod/settings.php:56 +#: mod/photos.php:134 mod/settings.php:58 src/Module/BaseSettingsModule.php:18 msgid "everybody" msgstr "tout le monde" -#: mod/photos.php:193 +#: mod/photos.php:185 msgid "Contact information unavailable" msgstr "Informations de contact indisponibles" -#: mod/photos.php:212 +#: mod/photos.php:204 msgid "Album not found." msgstr "Album introuvable." -#: mod/photos.php:241 mod/photos.php:254 mod/photos.php:1138 -msgid "Delete Album" -msgstr "Effacer l'album" +#: mod/photos.php:262 +msgid "Album successfully deleted" +msgstr "" -#: mod/photos.php:252 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?" +#: mod/photos.php:264 +msgid "Album was empty." +msgstr "" -#: mod/photos.php:310 mod/photos.php:322 mod/photos.php:1413 -msgid "Delete Photo" -msgstr "Effacer la photo" - -#: mod/photos.php:320 -msgid "Do you really want to delete this photo?" -msgstr "Voulez-vous vraiment supprimer cette photo ?" - -#: mod/photos.php:645 +#: mod/photos.php:586 msgid "a photo" msgstr "une photo" -#: mod/photos.php:645 +#: mod/photos.php:586 #, php-format msgid "%1$s was tagged in %2$s by %3$s" msgstr "%1$s a été étiqueté dans %2$s par %3$s" -#: mod/photos.php:738 mod/photos.php:741 mod/photos.php:770 +#: mod/photos.php:679 mod/photos.php:682 mod/photos.php:711 #: mod/profile_photo.php:152 mod/wall_upload.php:198 #, php-format msgid "Image exceeds size limit of %s" msgstr "L'image dépasse la taille limite de %s" -#: mod/photos.php:744 +#: mod/photos.php:685 msgid "Image upload didn't complete, please try again" msgstr "" -#: mod/photos.php:747 +#: mod/photos.php:688 msgid "Image file is missing" msgstr "" -#: mod/photos.php:752 +#: mod/photos.php:693 msgid "" "Server can't accept new file upload at this time, please contact your " "administrator" msgstr "" -#: mod/photos.php:778 +#: mod/photos.php:719 msgid "Image file is empty." msgstr "Fichier image vide." -#: mod/photos.php:793 mod/profile_photo.php:161 mod/wall_upload.php:212 +#: mod/photos.php:734 mod/profile_photo.php:161 mod/wall_upload.php:212 msgid "Unable to process image." msgstr "Impossible de traiter l'image." -#: mod/photos.php:822 mod/profile_photo.php:310 mod/wall_upload.php:251 +#: mod/photos.php:763 mod/profile_photo.php:310 mod/wall_upload.php:251 msgid "Image upload failed." msgstr "Le téléversement de l'image a échoué." -#: mod/photos.php:908 +#: mod/photos.php:851 msgid "No photos selected" msgstr "Aucune photo sélectionnée" -#: mod/photos.php:1005 mod/videos.php:239 +#: mod/photos.php:943 mod/videos.php:210 msgid "Access to this item is restricted." msgstr "Accès restreint à cet élément." -#: mod/photos.php:1059 +#: mod/photos.php:997 msgid "Upload Photos" msgstr "Téléverser des photos" -#: mod/photos.php:1063 mod/photos.php:1133 +#: mod/photos.php:1001 mod/photos.php:1089 msgid "New album name: " msgstr "Nom du nouvel album : " -#: mod/photos.php:1064 +#: mod/photos.php:1002 msgid "or select existing album:" msgstr "" -#: mod/photos.php:1065 +#: mod/photos.php:1003 msgid "Do not show a status post for this upload" msgstr "Ne pas publier de notice de statut pour cet envoi" -#: mod/photos.php:1081 mod/photos.php:1416 mod/settings.php:1209 +#: mod/photos.php:1019 mod/photos.php:1382 mod/settings.php:1208 msgid "Show to Groups" msgstr "Montrer aux groupes" -#: mod/photos.php:1082 mod/photos.php:1417 mod/settings.php:1210 +#: mod/photos.php:1020 mod/photos.php:1383 mod/settings.php:1209 msgid "Show to Contacts" msgstr "Montrer aux Contacts" -#: mod/photos.php:1144 +#: mod/photos.php:1071 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?" + +#: mod/photos.php:1073 mod/photos.php:1094 +msgid "Delete Album" +msgstr "Effacer l'album" + +#: mod/photos.php:1100 msgid "Edit Album" msgstr "Éditer l'album" -#: mod/photos.php:1149 +#: mod/photos.php:1101 +msgid "Drop Album" +msgstr "" + +#: mod/photos.php:1106 msgid "Show Newest First" msgstr "Plus récent d'abord" -#: mod/photos.php:1151 +#: mod/photos.php:1108 msgid "Show Oldest First" msgstr "Plus ancien d'abord" -#: mod/photos.php:1172 mod/photos.php:1650 +#: mod/photos.php:1129 mod/photos.php:1615 msgid "View Photo" msgstr "Voir la photo" -#: mod/photos.php:1213 +#: mod/photos.php:1166 msgid "Permission denied. Access to this item may be restricted." msgstr "Interdit. L'accès à cet élément peut avoir été restreint." -#: mod/photos.php:1215 +#: mod/photos.php:1168 msgid "Photo not available" msgstr "Photo indisponible" -#: mod/photos.php:1290 +#: mod/photos.php:1178 +msgid "Do you really want to delete this photo?" +msgstr "Voulez-vous vraiment supprimer cette photo ?" + +#: mod/photos.php:1180 mod/photos.php:1379 +msgid "Delete Photo" +msgstr "Effacer la photo" + +#: mod/photos.php:1271 msgid "View photo" msgstr "Voir photo" -#: mod/photos.php:1290 +#: mod/photos.php:1273 msgid "Edit photo" msgstr "Éditer la photo" -#: mod/photos.php:1291 +#: mod/photos.php:1274 +msgid "Delete photo" +msgstr "" + +#: mod/photos.php:1275 msgid "Use as profile photo" msgstr "Utiliser comme photo de profil" -#: mod/photos.php:1297 src/Object/Post.php:156 -msgid "Private Message" -msgstr "Message privé" +#: mod/photos.php:1282 +msgid "Private Photo" +msgstr "" -#: mod/photos.php:1317 +#: mod/photos.php:1288 msgid "View Full Size" msgstr "Voir en taille réelle" -#: mod/photos.php:1381 +#: mod/photos.php:1347 msgid "Tags: " msgstr "Étiquettes :" -#: mod/photos.php:1384 +#: mod/photos.php:1350 msgid "[Select tags to remove]" msgstr "" -#: mod/photos.php:1399 +#: mod/photos.php:1365 msgid "New album name" msgstr "Nom du nouvel album" -#: mod/photos.php:1400 +#: mod/photos.php:1366 msgid "Caption" msgstr "Titre" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "Add a Tag" msgstr "Ajouter une étiquette" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Exemples : @bob, @Barbara_Jensen, @jim@example.com, #Californie, #vacances" -#: mod/photos.php:1402 +#: mod/photos.php:1368 msgid "Do not rotate" msgstr "Pas de rotation" -#: mod/photos.php:1403 +#: mod/photos.php:1369 msgid "Rotate CW (right)" msgstr "Tourner dans le sens des aiguilles d'une montre (vers la droite)" -#: mod/photos.php:1404 +#: mod/photos.php:1370 msgid "Rotate CCW (left)" msgstr "Tourner dans le sens contraire des aiguilles d'une montre (vers la gauche)" -#: mod/photos.php:1438 src/Object/Post.php:311 +#: mod/photos.php:1404 src/Object/Post.php:312 msgid "I like this (toggle)" msgstr "J'aime" -#: mod/photos.php:1439 src/Object/Post.php:312 +#: mod/photos.php:1405 src/Object/Post.php:313 msgid "I don't like this (toggle)" msgstr "Je n'aime pas" -#: mod/photos.php:1454 mod/photos.php:1493 mod/photos.php:1553 -#: src/Module/Contact.php:1018 src/Object/Post.php:871 +#: mod/photos.php:1420 mod/photos.php:1459 mod/photos.php:1519 +#: src/Module/Contact.php:1021 src/Object/Post.php:874 msgid "This is you" msgstr "C'est vous" -#: mod/photos.php:1456 mod/photos.php:1495 mod/photos.php:1555 -#: src/Object/Post.php:417 src/Object/Post.php:873 +#: mod/photos.php:1422 mod/photos.php:1461 mod/photos.php:1521 +#: src/Object/Post.php:419 src/Object/Post.php:876 msgid "Comment" msgstr "Commenter" -#: mod/photos.php:1585 +#: mod/photos.php:1550 msgid "Map" msgstr "Carte" -#: mod/photos.php:1656 mod/videos.php:316 +#: mod/photos.php:1621 mod/videos.php:287 msgid "View Album" msgstr "Voir l'album" @@ -5127,27 +2768,27 @@ msgstr "{0} souhaite être votre ami(e)" msgid "{0} requested registration" msgstr "{0} a demandé à s'inscrire" -#: mod/poke.php:181 +#: mod/poke.php:177 msgid "Poke/Prod" msgstr "Solliciter" -#: mod/poke.php:182 +#: mod/poke.php:178 msgid "poke, prod or do other things to somebody" msgstr "solliciter (poke/...) quelqu'un" -#: mod/poke.php:183 +#: mod/poke.php:179 msgid "Recipient" msgstr "Destinataire" -#: mod/poke.php:184 +#: mod/poke.php:180 msgid "Choose what you wish to do to recipient" msgstr "Choisissez ce que vous voulez faire au destinataire" -#: mod/poke.php:187 +#: mod/poke.php:183 msgid "Make this post private" msgstr "Rendez ce message privé" -#: mod/probe.php:14 mod/webfinger.php:17 +#: mod/probe.php:13 src/Module/WebFinger.php:18 msgid "Only logged in users are permitted to perform a probing." msgstr "" @@ -5211,6 +2852,10 @@ msgstr "Site internet" msgid "Interests" msgstr "Centres d'intérêt" +#: mod/profiles.php:382 src/Module/Admin/Blocklist/Contact.php:72 +msgid "Address" +msgstr "Adresse" + #: mod/profiles.php:389 mod/profiles.php:574 msgid "Location" msgstr "Localisation" @@ -5251,7 +2896,7 @@ msgstr "Voir ce profil" msgid "View all profiles" msgstr "" -#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:419 +#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:415 msgid "Edit visibility" msgstr "Changer la visibilité" @@ -5303,7 +2948,7 @@ msgstr "Votre genre :" msgid " Marital Status:" msgstr " Statut marital :" -#: mod/profiles.php:586 src/Model/Profile.php:795 +#: mod/profiles.php:586 src/Model/Profile.php:789 msgid "Sexual Preference:" msgstr "Préférence sexuelle :" @@ -5383,11 +3028,11 @@ msgstr "Votre adresse XMPP sera transmise à vos contacts pour qu'ils puissent v msgid "Homepage URL:" msgstr "Page personnelle :" -#: mod/profiles.php:613 src/Model/Profile.php:803 +#: mod/profiles.php:613 src/Model/Profile.php:797 msgid "Hometown:" msgstr " Ville d'origine :" -#: mod/profiles.php:614 src/Model/Profile.php:811 +#: mod/profiles.php:614 src/Model/Profile.php:805 msgid "Political Views:" msgstr "Opinions politiques :" @@ -5411,11 +3056,11 @@ msgstr "Mots-clés privés :" msgid "(Used for searching profiles, never shown to others)" msgstr "(Utilisés pour rechercher des profils. Ils ne seront jamais montrés à autrui)" -#: mod/profiles.php:618 src/Model/Profile.php:827 +#: mod/profiles.php:618 src/Model/Profile.php:821 msgid "Likes:" msgstr "J'aime :" -#: mod/profiles.php:619 src/Model/Profile.php:831 +#: mod/profiles.php:619 src/Model/Profile.php:825 msgid "Dislikes:" msgstr "Je n'aime pas :" @@ -5455,11 +3100,11 @@ msgstr "Études / Formation" msgid "Contact information and Social Networks" msgstr "Coordonnées / Réseaux sociaux" -#: mod/profiles.php:659 src/Model/Profile.php:415 +#: mod/profiles.php:659 src/Model/Profile.php:411 msgid "Profile Image" msgstr "Image du profil" -#: mod/profiles.php:661 src/Model/Profile.php:418 +#: mod/profiles.php:661 src/Model/Profile.php:414 msgid "visible to everybody" msgstr "visible par tous" @@ -5467,11 +3112,11 @@ msgstr "visible par tous" msgid "Edit/Manage Profiles" msgstr "Editer / gérer les profils" -#: mod/profiles.php:669 src/Model/Profile.php:405 src/Model/Profile.php:427 +#: mod/profiles.php:669 src/Model/Profile.php:401 src/Model/Profile.php:423 msgid "Change profile photo" msgstr "Changer de photo de profil" -#: mod/profiles.php:670 src/Model/Profile.php:406 +#: mod/profiles.php:670 src/Model/Profile.php:402 msgid "Create New Profile" msgstr "Créer un nouveau profil" @@ -5531,6 +3176,10 @@ msgstr "Édition terminée" msgid "Image uploaded successfully." msgstr "Image téléversée avec succès." +#: mod/profperm.php:30 +msgid "Permission denied" +msgstr "Permission refusée" + #: mod/profperm.php:36 mod/profperm.php:69 msgid "Invalid profile identifier." msgstr "Identifiant de profil invalide." @@ -5539,6 +3188,10 @@ msgstr "Identifiant de profil invalide." msgid "Profile Visibility Editor" msgstr "Éditer la visibilité du profil" +#: mod/profperm.php:119 src/Module/Group.php:321 +msgid "Click on a contact to add or remove." +msgstr "Cliquez sur un contact pour l'ajouter ou le supprimer." + #: mod/profperm.php:128 msgid "Visible To" msgstr "Visible par" @@ -5573,7 +3226,7 @@ msgstr "" #: mod/removeme.php:48 #, php-format msgid "The user id is %d" -msgstr "" +msgstr "L'identifiant d'utilisateur est %d" #: mod/removeme.php:84 mod/removeme.php:87 msgid "Remove My Account" @@ -5597,858 +3250,921 @@ msgstr "Réinscription aux contacts OStatus" msgid "Error" msgstr "Erreur" -#: mod/search.php:103 +#: mod/search.php:101 msgid "Only logged in users are permitted to perform a search." msgstr "Seuls les utilisateurs inscrits sont autorisés à lancer une recherche." -#: mod/search.php:127 -msgid "Too Many Requests" -msgstr "Trop de requêtes" - -#: mod/search.php:128 +#: mod/search.php:123 msgid "Only one search per minute is permitted for not logged in users." msgstr "Une seule recherche par minute pour les utilisateurs qui ne sont pas connectés." -#: mod/search.php:149 src/Content/Nav.php:198 src/Content/Text/HTML.php:900 +#: mod/search.php:143 src/Content/Nav.php:197 src/Content/Text/HTML.php:900 msgid "Search" msgstr "Recherche" -#: mod/search.php:235 +#: mod/search.php:229 #, php-format msgid "Items tagged with: %s" msgstr "Éléments taggés %s" -#: mod/search.php:237 src/Module/Contact.php:816 +#: mod/search.php:231 src/Module/Contact.php:819 #, php-format msgid "Results for: %s" msgstr "Résultats pour : %s" -#: mod/settings.php:61 +#: mod/settings.php:63 src/Module/BaseSettingsModule.php:24 msgid "Account" msgstr "Compte" -#: mod/settings.php:69 src/Content/Nav.php:266 src/Model/Profile.php:398 +#: mod/settings.php:71 src/Module/BaseSettingsModule.php:31 +#: src/Module/Settings/TwoFactor/Index.php:83 +#: src/Module/TwoFactor/Verify.php:60 +msgid "Two-factor authentication" +msgstr "Authentification à double facteurs." + +#: mod/settings.php:78 src/Content/Nav.php:265 src/Model/Profile.php:394 +#: src/Module/BaseSettingsModule.php:38 msgid "Profiles" msgstr "Profils" -#: mod/settings.php:85 +#: mod/settings.php:86 src/Module/BaseAdminModule.php:84 +#: src/Module/BaseSettingsModule.php:46 +msgid "Additional features" +msgstr "Fonctions supplémentaires" + +#: mod/settings.php:94 src/Module/BaseSettingsModule.php:54 msgid "Display" msgstr "Afficher" -#: mod/settings.php:92 mod/settings.php:830 +#: mod/settings.php:101 mod/settings.php:839 +#: src/Module/BaseSettingsModule.php:61 msgid "Social Networks" msgstr "Réseaux sociaux" -#: mod/settings.php:106 src/Content/Nav.php:261 +#: mod/settings.php:108 src/Module/Admin/Addons/Details.php:100 +#: src/Module/Admin/Addons/Index.php:51 src/Module/BaseAdminModule.php:82 +#: src/Module/BaseSettingsModule.php:68 +msgid "Addons" +msgstr "Extensions" + +#: mod/settings.php:115 src/Content/Nav.php:260 +#: src/Module/BaseSettingsModule.php:75 msgid "Delegations" msgstr "Délégations" -#: mod/settings.php:113 +#: mod/settings.php:122 src/Module/BaseSettingsModule.php:82 msgid "Connected apps" msgstr "Applications connectées" -#: mod/settings.php:120 mod/uexport.php:53 +#: mod/settings.php:129 mod/uexport.php:52 +#: src/Module/BaseSettingsModule.php:89 msgid "Export personal data" msgstr "Exporter" -#: mod/settings.php:127 +#: mod/settings.php:136 src/Module/BaseSettingsModule.php:96 msgid "Remove account" msgstr "Supprimer le compte" -#: mod/settings.php:179 +#: mod/settings.php:188 msgid "Missing some important data!" msgstr "Il manque certaines informations importantes !" -#: mod/settings.php:181 mod/settings.php:691 src/Module/Contact.php:823 +#: mod/settings.php:190 mod/settings.php:700 src/Module/Contact.php:826 msgid "Update" msgstr "Mises à jour" -#: mod/settings.php:290 +#: mod/settings.php:299 msgid "Failed to connect with email account using the settings provided." msgstr "Impossible de se connecter au compte courriel configuré." -#: mod/settings.php:295 +#: mod/settings.php:304 msgid "Email settings updated." msgstr "Réglages de courriel mis à jour." -#: mod/settings.php:311 +#: mod/settings.php:320 msgid "Features updated" msgstr "Fonctionnalités mises à jour" -#: mod/settings.php:384 +#: mod/settings.php:393 msgid "Relocate message has been send to your contacts" msgstr "Un message de relocalisation a été envoyé à vos contacts." -#: mod/settings.php:396 +#: mod/settings.php:405 msgid "Passwords do not match." -msgstr "" +msgstr "Les mots de passe ne correspondent pas." -#: mod/settings.php:404 src/Core/Console/NewPassword.php:80 +#: mod/settings.php:413 src/Console/NewPassword.php:80 msgid "Password update failed. Please try again." msgstr "Le changement de mot de passe a échoué. Merci de recommencer." -#: mod/settings.php:407 src/Core/Console/NewPassword.php:83 +#: mod/settings.php:416 src/Console/NewPassword.php:83 msgid "Password changed." msgstr "Mot de passe changé." -#: mod/settings.php:410 +#: mod/settings.php:419 msgid "Password unchanged." -msgstr "" +msgstr "Mot de passe non changé." -#: mod/settings.php:491 +#: mod/settings.php:500 msgid " Please use a shorter name." msgstr " Merci d'utiliser un nom plus court." -#: mod/settings.php:494 +#: mod/settings.php:503 msgid " Name too short." msgstr " Nom trop court." -#: mod/settings.php:501 +#: mod/settings.php:510 src/Module/Settings/TwoFactor/Index.php:66 msgid "Wrong Password" msgstr "Mauvais mot de passe" -#: mod/settings.php:506 +#: mod/settings.php:515 msgid "Invalid email." -msgstr "" +msgstr "Courriel invalide." -#: mod/settings.php:512 +#: mod/settings.php:521 msgid "Cannot change to that email." -msgstr "" +msgstr "Ne peut pas changer vers ce courriel." -#: mod/settings.php:562 +#: mod/settings.php:571 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "Ce forum privé n'a pas de paramètres de vie privée. Utilisation des paramètres de confidentialité par défaut." -#: mod/settings.php:565 +#: mod/settings.php:574 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "Ce forum privé n'a pas de paramètres de vie privée ni de paramètres de confidentialité par défaut." -#: mod/settings.php:605 +#: mod/settings.php:614 msgid "Settings updated." msgstr "Réglages mis à jour." -#: mod/settings.php:664 mod/settings.php:690 mod/settings.php:724 +#: mod/settings.php:673 mod/settings.php:699 mod/settings.php:733 msgid "Add application" msgstr "Ajouter une application" -#: mod/settings.php:668 mod/settings.php:694 +#: mod/settings.php:677 mod/settings.php:703 msgid "Consumer Key" msgstr "Clé utilisateur" -#: mod/settings.php:669 mod/settings.php:695 +#: mod/settings.php:678 mod/settings.php:704 msgid "Consumer Secret" msgstr "Secret utilisateur" -#: mod/settings.php:670 mod/settings.php:696 +#: mod/settings.php:679 mod/settings.php:705 msgid "Redirect" msgstr "Rediriger" -#: mod/settings.php:671 mod/settings.php:697 +#: mod/settings.php:680 mod/settings.php:706 msgid "Icon url" msgstr "URL de l'icône" -#: mod/settings.php:682 +#: mod/settings.php:691 msgid "You can't edit this application." msgstr "Vous ne pouvez pas éditer cette application." -#: mod/settings.php:723 +#: mod/settings.php:732 msgid "Connected Apps" msgstr "Applications connectées" -#: mod/settings.php:725 src/Object/Post.php:166 src/Object/Post.php:168 +#: mod/settings.php:734 src/Object/Post.php:167 src/Object/Post.php:169 msgid "Edit" msgstr "Éditer" -#: mod/settings.php:727 +#: mod/settings.php:736 msgid "Client key starts with" msgstr "La clé cliente commence par" -#: mod/settings.php:728 +#: mod/settings.php:737 msgid "No name" msgstr "Sans nom" -#: mod/settings.php:729 +#: mod/settings.php:738 msgid "Remove authorization" msgstr "Révoquer l'autorisation" -#: mod/settings.php:740 -msgid "No Addon settings configured" -msgstr "" - #: mod/settings.php:749 -msgid "Addon Settings" -msgstr "" +msgid "No Addon settings configured" +msgstr "Aucuns paramètres d'Extension paramétré." -#: mod/settings.php:770 +#: mod/settings.php:758 +msgid "Addon Settings" +msgstr "Paramètres d'extension" + +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "Off" +msgstr "Éteint" + +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "On" +msgstr "Allumé" + +#: mod/settings.php:779 msgid "Additional Features" msgstr "Fonctions supplémentaires" -#: mod/settings.php:793 src/Content/ContactSelector.php:87 +#: mod/settings.php:802 src/Content/ContactSelector.php:87 msgid "Diaspora" msgstr "Diaspora" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "enabled" msgstr "activé" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "disabled" msgstr "désactivé" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Le support natif pour la connectivité %s est %s" -#: mod/settings.php:794 +#: mod/settings.php:803 msgid "GNU Social (OStatus)" msgstr "GNU Social (OStatus)" -#: mod/settings.php:825 +#: mod/settings.php:834 msgid "Email access is disabled on this site." msgstr "L'accès courriel est désactivé sur ce site." -#: mod/settings.php:835 +#: mod/settings.php:844 msgid "General Social Media Settings" msgstr "Paramètres généraux des réseaux sociaux" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "Disable Content Warning" -msgstr "" +msgstr "Désactiver les avertissements de contenus (CW)" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "" "Users on networks like Mastodon or Pleroma are able to set a content warning" " field which collapse their post by default. This disables the automatic " "collapsing and sets the content warning as the post title. Doesn't affect " "any other content filtering you eventually set up." -msgstr "" +msgstr "Les utilisateurs sur les réseaux comme Mastodon ou Pleroma sont en mesure de mettre un champs d'avertissement de contenu qui cache leur message par défaut. Cela désactive la fermeture automatique et met le message d'avertissement de contenu comme titre de la publication. " -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "Disable intelligent shortening" msgstr "Désactiver la réduction d'URL" -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the" " original friendica post." msgstr "Normalement, le système tente de trouver le meilleur lien à ajouter aux publications raccourcies. Si cette option est activée, les publications raccourcies dirigeront toujours vers leur publication d'origine sur Friendica." -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "Suivre automatiquement ceux qui me suivent ou me mentionnent sur GNU Social (OStatus)" -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "Si vous recevez un message d'un utilisateur OStatus inconnu, cette option détermine ce qui sera fait. Si elle est cochée, un nouveau contact sera créé pour chaque utilisateur inconnu." -#: mod/settings.php:839 +#: mod/settings.php:848 msgid "Default group for OStatus contacts" msgstr "Groupe par défaut pour les contacts OStatus" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "Your legacy GNU Social account" msgstr "Le compte GNU Social que vous avez déjà" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "Si vous entrez le nom de votre ancien compte GNU Social / StatusNet ici (utiliser le format utilisateur@domaine.tld), vos contacts seront ajoutés automatiquement. Le champ sera vidé lorsque ce sera terminé." -#: mod/settings.php:843 +#: mod/settings.php:852 msgid "Repair OStatus subscriptions" msgstr "Réparer les abonnements OStatus" -#: mod/settings.php:847 +#: mod/settings.php:856 msgid "Email/Mailbox Setup" msgstr "Réglages de courriel/boîte à lettre" -#: mod/settings.php:848 +#: mod/settings.php:857 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Si vous souhaitez communiquer avec vos contacts \"courriel\" (facultatif), merci de nous indiquer comment vous connecter à votre boîte." -#: mod/settings.php:849 +#: mod/settings.php:858 msgid "Last successful email check:" msgstr "Dernière vérification réussie des courriels :" -#: mod/settings.php:851 +#: mod/settings.php:860 msgid "IMAP server name:" msgstr "Nom du serveur IMAP :" -#: mod/settings.php:852 +#: mod/settings.php:861 msgid "IMAP port:" msgstr "Port IMAP :" -#: mod/settings.php:853 +#: mod/settings.php:862 msgid "Security:" msgstr "Sécurité :" -#: mod/settings.php:853 mod/settings.php:858 +#: mod/settings.php:862 mod/settings.php:867 msgid "None" msgstr "Aucun(e)" -#: mod/settings.php:854 +#: mod/settings.php:863 msgid "Email login name:" msgstr "Nom de connexion :" -#: mod/settings.php:855 +#: mod/settings.php:864 msgid "Email password:" msgstr "Mot de passe :" -#: mod/settings.php:856 +#: mod/settings.php:865 msgid "Reply-to address:" msgstr "Adresse de réponse :" -#: mod/settings.php:857 +#: mod/settings.php:866 msgid "Send public posts to all email contacts:" msgstr "Envoyer les publications publiques à tous les contacts courriels :" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Action after import:" msgstr "Action après import :" -#: mod/settings.php:858 src/Content/Nav.php:249 +#: mod/settings.php:867 src/Content/Nav.php:248 msgid "Mark as seen" msgstr "Marquer comme vu" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Move to folder" msgstr "Déplacer vers" -#: mod/settings.php:859 +#: mod/settings.php:868 msgid "Move to folder:" msgstr "Déplacer vers :" -#: mod/settings.php:902 +#: mod/settings.php:892 src/Module/Admin/Site.php:435 +msgid "No special theme for mobile devices" +msgstr "Pas de thème particulier pour les terminaux mobiles" + +#: mod/settings.php:900 #, php-format msgid "%s - (Unsupported)" -msgstr "" +msgstr "%s- (non supporté)" -#: mod/settings.php:904 +#: mod/settings.php:902 src/Module/Admin/Site.php:452 #, php-format msgid "%s - (Experimental)" -msgstr "" +msgstr "%s- (expérimental)" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:395 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:395 msgid "Sunday" msgstr "Dimanche" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:396 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:396 msgid "Monday" msgstr "Lundi" -#: mod/settings.php:947 +#: mod/settings.php:946 msgid "Display Settings" msgstr "Affichage" -#: mod/settings.php:953 +#: mod/settings.php:952 msgid "Display Theme:" msgstr "Thème d'affichage:" -#: mod/settings.php:954 +#: mod/settings.php:953 msgid "Mobile Theme:" msgstr "Thème mobile:" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "Suppress warning of insecure networks" -msgstr "" +msgstr "Retire l'avertissement des réseaux non sécurisés" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "" "Should the system suppress the warning that the current group contains " "members of networks that can't receive non public postings." -msgstr "" +msgstr "Est ce que le système doit supprimer l'avertissement que le groupe actuel contient des membres de réseaux qui ne pourront pas recevoir les publications non publiques." -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Update browser every xx seconds" msgstr "Mettre à jour l'affichage toutes les xx secondes" -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "Minimum de 10 secondes. Saisir -1 pour désactiver." -#: mod/settings.php:957 +#: mod/settings.php:956 msgid "Number of items to display per page:" msgstr "Nombre d’éléments par page :" -#: mod/settings.php:957 mod/settings.php:958 +#: mod/settings.php:956 mod/settings.php:957 msgid "Maximum of 100 items" msgstr "Maximum de 100 éléments" -#: mod/settings.php:958 +#: mod/settings.php:957 msgid "Number of items to display per page when viewed from mobile device:" msgstr "Nombre d'éléments à afficher par page pour un appareil mobile" -#: mod/settings.php:959 +#: mod/settings.php:958 msgid "Don't show emoticons" msgstr "Ne pas afficher les émoticônes" -#: mod/settings.php:960 +#: mod/settings.php:959 msgid "Calendar" msgstr "Calendrier" -#: mod/settings.php:961 +#: mod/settings.php:960 msgid "Beginning of week:" msgstr "Début de la semaine :" -#: mod/settings.php:962 +#: mod/settings.php:961 msgid "Don't show notices" msgstr "Ne plus afficher les avis" -#: mod/settings.php:963 +#: mod/settings.php:962 msgid "Infinite scroll" msgstr "Défilement infini" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "Automatic updates only at the top of the network page" msgstr "Mises à jour automatiques seulement en haut de la page Réseau" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "" "When disabled, the network page is updated all the time, which could be " "confusing while reading." msgstr "Si désactivé, la page Réseau est mise à jour en permanence, ce qui peut rendre la lecture difficile." -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "Bandwidth Saver Mode" -msgstr "" +msgstr "Mode économiseur de bande-passante." -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "" "When enabled, embedded content is not displayed on automatic updates, they " "only show on page reload." msgstr "Si activé, le contenu intégré aux pages est mis à jour uniquement lors du rafraîchissement manuel des pages : il n'est plus mis à jour lors des rafraîchissements automatiques." -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "Smart Threading" -msgstr "" +msgstr "Fil de discussion intelligent." -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "" "When enabled, suppress extraneous thread indentation while keeping it where " "it matters. Only works if threading is available and enabled." -msgstr "" +msgstr "Lorsqu'il est activé, il supprime les indentations supplémentaires du fil de discussion mais les conserve là où c'est important. Ne fonctionne que si le fil de discussion est disponible et activé. " -#: mod/settings.php:968 +#: mod/settings.php:967 msgid "General Theme Settings" msgstr "Paramètres généraux de thème" -#: mod/settings.php:969 +#: mod/settings.php:968 msgid "Custom Theme Settings" msgstr "Paramètres personnalisés de thème" -#: mod/settings.php:970 +#: mod/settings.php:969 msgid "Content Settings" msgstr "Paramètres de contenu" -#: mod/settings.php:971 view/theme/duepuntozero/config.php:74 -#: view/theme/frio/config.php:121 view/theme/quattro/config.php:76 -#: view/theme/vier/config.php:122 +#: mod/settings.php:970 view/theme/duepuntozero/config.php:73 +#: view/theme/frio/config.php:122 view/theme/quattro/config.php:75 +#: view/theme/vier/config.php:121 msgid "Theme settings" msgstr "Réglages du thème graphique" -#: mod/settings.php:985 +#: mod/settings.php:984 msgid "Unable to find your profile. Please contact your admin." -msgstr "" +msgstr "Impossible de trouver votre profile. Merci de contacter votre administrateur." -#: mod/settings.php:1024 +#: mod/settings.php:1023 msgid "Account Types" msgstr "Type de compte" -#: mod/settings.php:1025 +#: mod/settings.php:1024 msgid "Personal Page Subtypes" msgstr "Sous-catégories de page personnelle" -#: mod/settings.php:1026 +#: mod/settings.php:1025 msgid "Community Forum Subtypes" msgstr "Sous-catégories de forums communautaires" -#: mod/settings.php:1034 +#: mod/settings.php:1032 src/Module/Admin/Users.php:229 +msgid "Personal Page" +msgstr "Page personnelle" + +#: mod/settings.php:1033 msgid "Account for a personal profile." msgstr "Compte pour profil personnel." -#: mod/settings.php:1038 +#: mod/settings.php:1036 src/Module/Admin/Users.php:230 +msgid "Organisation Page" +msgstr "Page Associative" + +#: mod/settings.php:1037 msgid "" "Account for an organisation that automatically approves contact requests as " "\"Followers\"." -msgstr "" +msgstr "Compte pour une organisation qui accepte les demandes comme \"Abonnés\"." -#: mod/settings.php:1042 +#: mod/settings.php:1040 src/Module/Admin/Users.php:231 +msgid "News Page" +msgstr "Page d'informations" + +#: mod/settings.php:1041 msgid "" "Account for a news reflector that automatically approves contact requests as" " \"Followers\"." -msgstr "" +msgstr "Compte pour les miroirs de nouvelles qui accepte automatiquement les de contact comme \"Abonnés\"." -#: mod/settings.php:1046 +#: mod/settings.php:1044 src/Module/Admin/Users.php:232 +msgid "Community Forum" +msgstr "Forum Communautaire" + +#: mod/settings.php:1045 msgid "Account for community discussions." -msgstr "" +msgstr "Compte pour des discussions communautaires." -#: mod/settings.php:1050 +#: mod/settings.php:1048 src/Module/Admin/Users.php:222 +msgid "Normal Account Page" +msgstr "Compte normal" + +#: mod/settings.php:1049 msgid "" "Account for a regular personal profile that requires manual approval of " "\"Friends\" and \"Followers\"." -msgstr "" +msgstr "Compte pour un profil personnel qui nécessite une approbation manuelle des \"Amis\" et \"Abonnés\"." -#: mod/settings.php:1054 +#: mod/settings.php:1052 src/Module/Admin/Users.php:223 +msgid "Soapbox Page" +msgstr "Compte \"boîte à savon\"" + +#: mod/settings.php:1053 msgid "" "Account for a public profile that automatically approves contact requests as" " \"Followers\"." -msgstr "" +msgstr "Compte pour un profil public qui accepte les demandes de contact comme \"Abonnés\"." -#: mod/settings.php:1058 +#: mod/settings.php:1056 src/Module/Admin/Users.php:224 +msgid "Public Forum" +msgstr "Forum public" + +#: mod/settings.php:1057 msgid "Automatically approves all contact requests." msgstr "Les demandes de participation au forum sont automatiquement acceptées." -#: mod/settings.php:1062 +#: mod/settings.php:1060 src/Module/Admin/Users.php:225 +msgid "Automatic Friend Page" +msgstr "Compte d' \"amitié automatique\"" + +#: mod/settings.php:1061 msgid "" "Account for a popular profile that automatically approves contact requests " "as \"Friends\"." msgstr "Compte qui accepte automatiquement les demandes d'ajout en tant qu'ami." -#: mod/settings.php:1065 +#: mod/settings.php:1064 msgid "Private Forum [Experimental]" msgstr "Forum privé [expérimental]" -#: mod/settings.php:1066 +#: mod/settings.php:1065 msgid "Requires manual approval of contact requests." msgstr "Les demandes de participation au forum nécessitent une approbation." -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "OpenID:" msgstr "OpenID:" -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "(Optional) Allow this OpenID to login to this account." msgstr "&nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte." -#: mod/settings.php:1085 +#: mod/settings.php:1084 msgid "Publish your default profile in your local site directory?" msgstr "Publier votre profil par défaut sur l'annuaire local de ce site ?" -#: mod/settings.php:1085 +#: mod/settings.php:1084 #, php-format msgid "" "Your profile will be published in this node's local " "directory. Your profile details may be publicly visible depending on the" " system settings." -msgstr "" +msgstr "Votre profil sera public sur l'annuaire local de cette instance. Les détails de votre profil pourront être visible publiquement selon les paramètres de votre système." -#: mod/settings.php:1091 +#: mod/settings.php:1090 msgid "Publish your default profile in the global social directory?" msgstr "Publier votre profil par défaut sur l'annuaire global ?" -#: mod/settings.php:1091 +#: mod/settings.php:1090 #, php-format msgid "" "Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public." -msgstr "" +msgstr "Votre profil sera publié dans l'annuaire global de friendica (i.e. %s). Votre profil sera visible publiquement." -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?" -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "" "Your contact list won't be shown in your default profile page. You can " "decide to show your contact list separately for each additional profile you " "create" -msgstr "" +msgstr "Votre liste de contacts ne sera pas affiché sur la page de votre profil par défaut. Vous pouvez choisir d'afficher votre liste de contact séparément pour chaque profil que vous créez." -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "Hide your profile details from anonymous viewers?" -msgstr "" +msgstr "Cacher les détails de votre profil pour les lecteurs anonymes." -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "" "Anonymous visitors will only see your profile picture, your display name and" " the nickname you are using on your profile page. Your public posts and " "replies will still be accessible by other means." msgstr "" -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "Allow friends to post to your profile page?" msgstr "Autoriser vos amis à publier sur votre profil ?" -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "" "Your contacts may write posts on your profile wall. These posts will be " "distributed to your contacts" msgstr "" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Allow friends to tag your posts?" msgstr "Autoriser vos amis à étiqueter vos publications?" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Your contacts can add additional tags to your posts." msgstr "" -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Autoriser les suggestions d'amis potentiels aux nouveaux arrivants?" -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "" "If you like, Friendica may suggest new members to add you as a contact." msgstr "" -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "Permit unknown people to send you private mail?" msgstr "Autoriser les messages privés d'inconnus?" -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "" "Friendica network users may send you private messages even if they are not " "in your contact list." msgstr "" -#: mod/settings.php:1122 +#: mod/settings.php:1121 msgid "Profile is not published." msgstr "Ce profil n'est pas publié." -#: mod/settings.php:1128 +#: mod/settings.php:1127 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "L’adresse de votre profil est '%s' ou '%s'." -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "Automatically expire posts after this many days:" msgstr "Les publications expirent automatiquement après (en jours) :" -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Si ce champ est vide, les publications n'expireront pas. Les publications expirées seront supprimées" -#: mod/settings.php:1136 +#: mod/settings.php:1135 msgid "Advanced expiration settings" msgstr "Réglages avancés de l'expiration" -#: mod/settings.php:1137 +#: mod/settings.php:1136 msgid "Advanced Expiration" msgstr "Expiration (avancé)" -#: mod/settings.php:1138 +#: mod/settings.php:1137 msgid "Expire posts:" msgstr "Faire expirer les publications :" -#: mod/settings.php:1139 +#: mod/settings.php:1138 msgid "Expire personal notes:" msgstr "Faire expirer les notes personnelles :" -#: mod/settings.php:1140 +#: mod/settings.php:1139 msgid "Expire starred posts:" msgstr "Faire expirer les publications marqués :" -#: mod/settings.php:1141 +#: mod/settings.php:1140 msgid "Expire photos:" msgstr "Faire expirer les photos :" -#: mod/settings.php:1142 +#: mod/settings.php:1141 msgid "Only expire posts by others:" msgstr "Faire expirer seulement les publications des autres:" -#: mod/settings.php:1172 +#: mod/settings.php:1171 msgid "Account Settings" msgstr "Compte" -#: mod/settings.php:1180 +#: mod/settings.php:1179 msgid "Password Settings" msgstr "Réglages de mot de passe" -#: mod/settings.php:1181 src/Module/Register.php:130 +#: mod/settings.php:1180 src/Module/Register.php:130 msgid "New Password:" msgstr "Nouveau mot de passe :" -#: mod/settings.php:1181 +#: mod/settings.php:1180 msgid "" "Allowed characters are a-z, A-Z, 0-9 and special characters except white " "spaces, accentuated letters and colon (:)." msgstr "" -#: mod/settings.php:1182 src/Module/Register.php:131 +#: mod/settings.php:1181 src/Module/Register.php:131 msgid "Confirm:" msgstr "Confirmer :" -#: mod/settings.php:1182 +#: mod/settings.php:1181 msgid "Leave password fields blank unless changing" msgstr "Laissez les champs de mot de passe vierges, sauf si vous désirez les changer" -#: mod/settings.php:1183 +#: mod/settings.php:1182 msgid "Current Password:" msgstr "Mot de passe actuel :" -#: mod/settings.php:1183 mod/settings.php:1184 +#: mod/settings.php:1182 mod/settings.php:1183 msgid "Your current password to confirm the changes" msgstr "Votre mot de passe actuel pour confirmer les modifications" -#: mod/settings.php:1184 +#: mod/settings.php:1183 msgid "Password:" msgstr "Mot de passe :" -#: mod/settings.php:1188 +#: mod/settings.php:1187 msgid "Basic Settings" msgstr "Réglages de base" -#: mod/settings.php:1189 src/Model/Profile.php:751 +#: mod/settings.php:1188 src/Model/Profile.php:745 msgid "Full Name:" msgstr "Nom complet :" -#: mod/settings.php:1190 +#: mod/settings.php:1189 msgid "Email Address:" msgstr "Adresse courriel :" -#: mod/settings.php:1191 +#: mod/settings.php:1190 msgid "Your Timezone:" msgstr "Votre fuseau horaire :" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "Your Language:" msgstr "Votre langue :" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "Détermine la langue que nous utilisons pour afficher votre interface Friendica et pour vous envoyer des courriels" -#: mod/settings.php:1193 +#: mod/settings.php:1192 msgid "Default Post Location:" msgstr "Emplacement de publication par défaut:" -#: mod/settings.php:1194 +#: mod/settings.php:1193 msgid "Use Browser Location:" msgstr "Utiliser la localisation géographique du navigateur:" -#: mod/settings.php:1197 +#: mod/settings.php:1196 msgid "Security and Privacy Settings" msgstr "Réglages de sécurité et vie privée" -#: mod/settings.php:1199 +#: mod/settings.php:1198 msgid "Maximum Friend Requests/Day:" msgstr "Nombre maximal de requêtes d'amitié par jour :" -#: mod/settings.php:1199 mod/settings.php:1228 +#: mod/settings.php:1198 mod/settings.php:1227 msgid "(to prevent spam abuse)" msgstr "(pour limiter l'impact du spam)" -#: mod/settings.php:1200 +#: mod/settings.php:1199 msgid "Default Post Permissions" msgstr "Permissions de publication par défaut" -#: mod/settings.php:1201 +#: mod/settings.php:1200 msgid "(click to open/close)" msgstr "(cliquer pour ouvrir/fermer)" -#: mod/settings.php:1211 +#: mod/settings.php:1210 msgid "Default Private Post" msgstr "Message privé par défaut" -#: mod/settings.php:1212 +#: mod/settings.php:1211 msgid "Default Public Post" msgstr "Message publique par défaut" -#: mod/settings.php:1216 +#: mod/settings.php:1215 msgid "Default Permissions for New Posts" msgstr "Permissions par défaut pour les nouvelles publications" -#: mod/settings.php:1228 +#: mod/settings.php:1227 msgid "Maximum private messages per day from unknown people:" msgstr "Maximum de messages privés d'inconnus par jour :" -#: mod/settings.php:1231 +#: mod/settings.php:1230 msgid "Notification Settings" msgstr "Réglages de notification" -#: mod/settings.php:1232 +#: mod/settings.php:1231 msgid "Send a notification email when:" msgstr "Envoyer un courriel de notification quand:" -#: mod/settings.php:1233 +#: mod/settings.php:1232 msgid "You receive an introduction" msgstr "Vous recevez une introduction" -#: mod/settings.php:1234 +#: mod/settings.php:1233 msgid "Your introductions are confirmed" msgstr "Vos introductions sont confirmées" -#: mod/settings.php:1235 +#: mod/settings.php:1234 msgid "Someone writes on your profile wall" msgstr "Quelqu'un écrit sur votre mur" -#: mod/settings.php:1236 +#: mod/settings.php:1235 msgid "Someone writes a followup comment" msgstr "Quelqu'un vous commente" -#: mod/settings.php:1237 +#: mod/settings.php:1236 msgid "You receive a private message" msgstr "Vous recevez un message privé" -#: mod/settings.php:1238 +#: mod/settings.php:1237 msgid "You receive a friend suggestion" msgstr "Vous avez reçu une suggestion d'ami" -#: mod/settings.php:1239 +#: mod/settings.php:1238 msgid "You are tagged in a post" msgstr "Vous avez été étiqueté dans une publication" -#: mod/settings.php:1240 +#: mod/settings.php:1239 msgid "You are poked/prodded/etc. in a post" msgstr "Vous avez été sollicité dans une publication" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Activate desktop notifications" msgstr "Activer les notifications de bureau" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Show desktop popup on new notifications" msgstr "Afficher dans des pop-ups les nouvelles notifications" -#: mod/settings.php:1244 +#: mod/settings.php:1243 msgid "Text-only notification emails" msgstr "Courriels de notification en format texte" -#: mod/settings.php:1246 +#: mod/settings.php:1245 msgid "Send text only notification emails, without the html part" msgstr "Envoyer le texte des courriels de notification, sans la composante html" -#: mod/settings.php:1248 +#: mod/settings.php:1247 msgid "Show detailled notifications" msgstr "Notifications détaillées" -#: mod/settings.php:1250 +#: mod/settings.php:1249 msgid "" "Per default, notifications are condensed to a single notification per item. " "When enabled every notification is displayed." msgstr "" -#: mod/settings.php:1252 +#: mod/settings.php:1251 msgid "Advanced Account/Page Type Settings" msgstr "Paramètres avancés de compte/page" -#: mod/settings.php:1253 +#: mod/settings.php:1252 msgid "Change the behaviour of this account for special situations" msgstr "Modifier le comportement de ce compte dans certaines situations" -#: mod/settings.php:1256 +#: mod/settings.php:1255 msgid "Relocate" msgstr "Relocaliser" -#: mod/settings.php:1257 +#: mod/settings.php:1256 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "Si vous avez migré ce profil depuis un autre serveur et que vos contacts ne reçoivent plus vos mises à jour, essayez ce bouton." -#: mod/settings.php:1258 +#: mod/settings.php:1257 msgid "Resend relocate message to contacts" msgstr "Renvoyer un message de relocalisation aux contacts." @@ -6457,16 +4173,20 @@ msgstr "Renvoyer un message de relocalisation aux contacts." msgid "%1$s is following %2$s's %3$s" msgstr "%1$s suit les %3$s de %2$s" -#: mod/suggest.php:39 -msgid "Do you really want to delete this suggestion?" -msgstr "Voulez-vous vraiment supprimer cette suggestion ?" +#: mod/suggest.php:28 +msgid "Contact suggestion successfully ignored." +msgstr "" -#: mod/suggest.php:75 +#: mod/suggest.php:52 msgid "" "No suggestions available. If this is a new site, please try again in 24 " "hours." msgstr "Aucune suggestion. Si ce site est récent, merci de recommencer dans 24h." +#: mod/suggest.php:71 +msgid "Do you really want to delete this suggestion?" +msgstr "Voulez-vous vraiment supprimer cette suggestion ?" + #: mod/suggest.php:89 mod/suggest.php:109 msgid "Ignore/Hide" msgstr "Ignorer/cacher" @@ -6565,7 +4285,7 @@ msgstr "" msgid "Contact unfollowed" msgstr "" -#: mod/unfollow.php:118 src/Module/Contact.php:570 +#: mod/unfollow.php:118 src/Module/Contact.php:573 msgid "Disconnect/Unfollow" msgstr "Se déconnecter/Ne plus suivre" @@ -6575,27 +4295,19 @@ msgstr "Se déconnecter/Ne plus suivre" msgid "[Embedded content - reload page to view]" msgstr "[Ccontenu incorporé - rechargez la page pour le voir]" -#: mod/videos.php:97 -msgid "Do you really want to delete this video?" -msgstr "Voulez-vous vraiment supprimer cette vidéo?" - -#: mod/videos.php:102 -msgid "Delete Video" -msgstr "Supprimer la vidéo" - -#: mod/videos.php:152 +#: mod/videos.php:123 msgid "No videos selected" msgstr "Pas de vidéo sélectionné" -#: mod/videos.php:309 src/Model/Item.php:3453 +#: mod/videos.php:280 src/Model/Item.php:3421 msgid "View Video" msgstr "Regarder la vidéo" -#: mod/videos.php:324 +#: mod/videos.php:295 msgid "Recent Videos" msgstr "Vidéos récente" -#: mod/videos.php:326 +#: mod/videos.php:297 msgid "Upload New Videos" msgstr "Téléversé une nouvelle vidéo" @@ -6603,16 +4315,16 @@ msgstr "Téléversé une nouvelle vidéo" msgid "No contacts." msgstr "Aucun contact." -#: mod/viewcontacts.php:94 src/Module/Contact.php:603 -#: src/Module/Contact.php:1024 +#: mod/viewcontacts.php:94 src/Module/Contact.php:606 +#: src/Module/Contact.php:1027 #, php-format msgid "Visit %s's profile [%s]" msgstr "Visiter le profil de %s [%s]" -#: mod/viewcontacts.php:114 src/Content/Nav.php:203 src/Content/Nav.php:269 -#: src/Content/Text/HTML.php:911 src/Model/Profile.php:980 -#: src/Model/Profile.php:983 src/Module/Contact.php:811 -#: src/Module/Contact.php:881 view/theme/frio/theme.php:273 +#: mod/viewcontacts.php:114 src/Content/Nav.php:202 src/Content/Nav.php:268 +#: src/Content/Text/HTML.php:911 src/Model/Profile.php:974 +#: src/Model/Profile.php:977 src/Module/Contact.php:814 +#: src/Module/Contact.php:884 view/theme/frio/theme.php:273 msgid "Contacts" msgstr "Contacts" @@ -6659,29 +4371,77 @@ msgstr "La taille du fichier dépasse la limite de %s" msgid "File upload failed." msgstr "Le téléversement a échoué." -#: mod/wall_upload.php:243 src/Object/Image.php:967 src/Object/Image.php:983 -#: src/Object/Image.php:991 src/Object/Image.php:1016 +#: mod/wall_upload.php:243 msgid "Wall Photos" msgstr "Photos du mur" -#: src/App.php:665 +#: src/App.php:505 msgid "Delete this item?" msgstr "Effacer cet élément?" -#: src/App.php:707 +#: src/App.php:547 msgid "toggle mobile" msgstr "activ. mobile" -#: src/App.php:1075 +#: src/App.php:863 msgid "No system theme config value set." msgstr "" -#: src/BaseModule.php:133 +#: src/App.php:1163 +msgid "You must be logged in to use addons. " +msgstr "Vous devez être connecté pour utiliser les greffons." + +#: src/BaseModule.php:135 msgid "" "The form security token was not correct. This probably happened because the " "form has been opened for too long (>3 hours) before submitting it." msgstr "Le jeton de sécurité du formulaire n'est pas correct. Ceci veut probablement dire que le formulaire est resté ouvert trop longtemps (plus de 3 heures) avant d'être validé." +#: src/Console/ArchiveContact.php:65 +#, php-format +msgid "Could not find any unarchived contact entry for this URL (%s)" +msgstr "" + +#: src/Console/ArchiveContact.php:68 +msgid "The contact entries have been archived" +msgstr "" + +#: src/Console/GlobalCommunityBlock.php:65 +#: src/Module/Admin/Blocklist/Contact.php:29 +#, php-format +msgid "Could not find any contact entry for this URL (%s)" +msgstr "Aucun profil distant n'a été trouvé à cette URL (%s)" + +#: src/Console/GlobalCommunityBlock.php:68 +#: src/Module/Admin/Blocklist/Contact.php:27 +msgid "The contact has been blocked from the node" +msgstr "Le profile distant a été bloqué" + +#: src/Console/NewPassword.php:72 +msgid "Enter new password: " +msgstr "" + +#: src/Console/PostUpdate.php:50 +#, php-format +msgid "Post update version number has been set to %s." +msgstr "" + +#: src/Console/PostUpdate.php:58 +msgid "Check for pending update actions." +msgstr "" + +#: src/Console/PostUpdate.php:60 +msgid "Done." +msgstr "" + +#: src/Console/PostUpdate.php:62 +msgid "Execute pending post updates." +msgstr "" + +#: src/Console/PostUpdate.php:68 +msgid "All pending post updates are done." +msgstr "" + #: src/Content/ContactSelector.php:58 msgid "Frequently" msgstr "" @@ -6718,6 +4478,12 @@ msgstr "" msgid "RSS/Atom" msgstr "" +#: src/Content/ContactSelector.php:86 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:315 +msgid "Email" +msgstr "Courriel" + #: src/Content/ContactSelector.php:88 msgid "Zot!" msgstr "" @@ -6762,6 +4528,11 @@ msgstr "" msgid "pnut" msgstr "" +#: src/Content/ContactSelector.php:153 src/Content/ContactSelector.php:193 +#: src/Content/ContactSelector.php:231 +msgid "No answer" +msgstr "" + #: src/Content/ContactSelector.php:154 msgid "Male" msgstr "" @@ -6902,7 +4673,7 @@ msgstr "Infidèle" msgid "Sex Addict" msgstr "Accro au sexe" -#: src/Content/ContactSelector.php:241 src/Model/User.php:702 +#: src/Content/ContactSelector.php:241 src/Model/User.php:729 msgid "Friends" msgstr "Amis" @@ -7119,7 +4890,7 @@ msgstr "" msgid "Display membership date in profile" msgstr "" -#: src/Content/ForumManager.php:130 src/Content/Nav.php:207 +#: src/Content/ForumManager.php:130 src/Content/Nav.php:206 #: src/Content/Text/HTML.php:914 view/theme/vier/theme.php:250 msgid "Forums" msgstr "Forums" @@ -7128,220 +4899,251 @@ msgstr "Forums" msgid "External link to forum" msgstr "Lien sortant vers le forum" -#: src/Content/Nav.php:74 +#: src/Content/Nav.php:73 msgid "Nothing new here" msgstr "Rien de neuf ici" -#: src/Content/Nav.php:78 +#: src/Content/Nav.php:77 msgid "Clear notifications" msgstr "Effacer les notifications" -#: src/Content/Nav.php:79 src/Content/Text/HTML.php:903 +#: src/Content/Nav.php:78 src/Content/Text/HTML.php:903 msgid "@name, !forum, #tags, content" msgstr "@nom, !forum, #tags, contenu" -#: src/Content/Nav.php:153 src/Module/Login.php:321 +#: src/Content/Nav.php:152 src/Module/Login.php:324 #: view/theme/frio/theme.php:259 msgid "Logout" msgstr "Se déconnecter" -#: src/Content/Nav.php:153 view/theme/frio/theme.php:259 +#: src/Content/Nav.php:152 view/theme/frio/theme.php:259 msgid "End this session" msgstr "Mettre fin à cette session" -#: src/Content/Nav.php:156 src/Model/Profile.php:901 -#: src/Module/Contact.php:652 src/Module/Contact.php:853 -#: view/theme/frio/theme.php:262 +#: src/Content/Nav.php:155 src/Model/Profile.php:895 +#: src/Module/Contact.php:655 src/Module/Contact.php:856 +#: src/Module/Settings/TwoFactor/Index.php:85 view/theme/frio/theme.php:262 msgid "Status" msgstr "Statut" -#: src/Content/Nav.php:156 src/Content/Nav.php:242 +#: src/Content/Nav.php:155 src/Content/Nav.php:241 #: view/theme/frio/theme.php:262 msgid "Your posts and conversations" msgstr "Vos publications et conversations" -#: src/Content/Nav.php:157 view/theme/frio/theme.php:263 +#: src/Content/Nav.php:156 view/theme/frio/theme.php:263 msgid "Your profile page" msgstr "Votre page de profil" -#: src/Content/Nav.php:158 view/theme/frio/theme.php:264 +#: src/Content/Nav.php:157 view/theme/frio/theme.php:264 msgid "Your photos" msgstr "Vos photos" -#: src/Content/Nav.php:159 src/Model/Profile.php:925 src/Model/Profile.php:928 +#: src/Content/Nav.php:158 src/Model/Profile.php:919 src/Model/Profile.php:922 #: view/theme/frio/theme.php:265 msgid "Videos" msgstr "Vidéos" -#: src/Content/Nav.php:159 view/theme/frio/theme.php:265 +#: src/Content/Nav.php:158 view/theme/frio/theme.php:265 msgid "Your videos" msgstr "Vos vidéos" -#: src/Content/Nav.php:160 view/theme/frio/theme.php:266 +#: src/Content/Nav.php:159 view/theme/frio/theme.php:266 msgid "Your events" msgstr "Vos événements" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Personal notes" msgstr "Notes personnelles" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Your personal notes" msgstr "Vos notes personnelles" -#: src/Content/Nav.php:170 +#: src/Content/Nav.php:169 src/Module/Bookmarklet.php:25 +#: src/Module/Login.php:325 +msgid "Login" +msgstr "Connexion" + +#: src/Content/Nav.php:169 msgid "Sign in" msgstr "Se connecter" -#: src/Content/Nav.php:180 src/Content/Nav.php:242 -#: src/Core/NotificationsManager.php:196 +#: src/Content/Nav.php:179 src/Content/Nav.php:241 +#: src/Core/NotificationsManager.php:165 msgid "Home" msgstr "Profil" -#: src/Content/Nav.php:180 +#: src/Content/Nav.php:179 msgid "Home Page" msgstr "Page d'accueil" -#: src/Content/Nav.php:184 src/Module/Login.php:293 +#: src/Content/Nav.php:183 src/Module/Login.php:296 #: src/Module/Register.php:136 msgid "Register" msgstr "S'inscrire" -#: src/Content/Nav.php:184 +#: src/Content/Nav.php:183 msgid "Create an account" msgstr "Créer un compte" -#: src/Content/Nav.php:190 +#: src/Content/Nav.php:189 src/Module/Help.php:50 +#: src/Module/Settings/TwoFactor/Index.php:84 +#: src/Module/Settings/TwoFactor/Recovery.php:77 +#: src/Module/Settings/TwoFactor/Verify.php:117 view/theme/vier/theme.php:294 +msgid "Help" +msgstr "Aide" + +#: src/Content/Nav.php:189 msgid "Help and documentation" msgstr "Aide et documentation" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Apps" msgstr "Applications" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Addon applications, utilities, games" msgstr "Applications supplémentaires, utilitaires, jeux" -#: src/Content/Nav.php:198 +#: src/Content/Nav.php:197 msgid "Search site content" msgstr "Rechercher dans le contenu du site" -#: src/Content/Nav.php:201 src/Content/Text/HTML.php:909 +#: src/Content/Nav.php:200 src/Content/Text/HTML.php:909 msgid "Full Text" msgstr "Texte Entier" -#: src/Content/Nav.php:202 src/Content/Text/HTML.php:910 +#: src/Content/Nav.php:201 src/Content/Text/HTML.php:910 #: src/Content/Widget/TagCloud.php:54 msgid "Tags" msgstr "Tags" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Community" msgstr "Communauté" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Conversations on this and other servers" msgstr "" -#: src/Content/Nav.php:226 src/Model/Profile.php:940 src/Model/Profile.php:951 +#: src/Content/Nav.php:225 src/Model/Profile.php:934 src/Model/Profile.php:945 #: view/theme/frio/theme.php:270 msgid "Events and Calendar" msgstr "Événements et agenda" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "Directory" msgstr "Annuaire" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "People directory" msgstr "Annuaire des utilisateurs" -#: src/Content/Nav.php:231 +#: src/Content/Nav.php:230 src/Module/BaseAdminModule.php:75 +msgid "Information" +msgstr "Information" + +#: src/Content/Nav.php:230 msgid "Information about this friendica instance" msgstr "Information au sujet de cette instance de friendica" -#: src/Content/Nav.php:234 +#: src/Content/Nav.php:233 src/Module/Admin/Tos.php:43 +#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:144 +#: src/Module/Tos.php:73 +msgid "Terms of Service" +msgstr "Conditions de service" + +#: src/Content/Nav.php:233 msgid "Terms of Service of this Friendica instance" msgstr "" -#: src/Content/Nav.php:239 view/theme/frio/theme.php:269 +#: src/Content/Nav.php:238 src/Core/NotificationsManager.php:151 +#: view/theme/frio/theme.php:269 +msgid "Network" +msgstr "Réseau" + +#: src/Content/Nav.php:238 view/theme/frio/theme.php:269 msgid "Conversations from your friends" msgstr "Conversations de vos amis" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Network Reset" msgstr "Réinitialiser le réseau" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Load Network page with no filters" msgstr "Chargement des pages du réseau sans filtre" -#: src/Content/Nav.php:246 src/Core/NotificationsManager.php:203 +#: src/Content/Nav.php:245 src/Core/NotificationsManager.php:172 msgid "Introductions" msgstr "Introductions" -#: src/Content/Nav.php:246 +#: src/Content/Nav.php:245 msgid "Friend Requests" msgstr "Demande d'amitié" -#: src/Content/Nav.php:248 +#: src/Content/Nav.php:247 msgid "See all notifications" msgstr "Voir toutes les notifications" -#: src/Content/Nav.php:249 +#: src/Content/Nav.php:248 msgid "Mark all system notifications seen" msgstr "Marquer toutes les notifications système comme 'vues'" -#: src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Private mail" msgstr "Messages privés" -#: src/Content/Nav.php:253 +#: src/Content/Nav.php:252 msgid "Inbox" msgstr "Messages entrants" -#: src/Content/Nav.php:254 +#: src/Content/Nav.php:253 msgid "Outbox" msgstr "Messages sortants" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage" msgstr "Gérer" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage other pages" msgstr "Gérer les autres pages" -#: src/Content/Nav.php:263 view/theme/frio/theme.php:272 +#: src/Content/Nav.php:262 view/theme/frio/theme.php:272 msgid "Account settings" msgstr "Compte" -#: src/Content/Nav.php:266 +#: src/Content/Nav.php:265 msgid "Manage/Edit Profiles" msgstr "Gérer/Éditer les profiles" -#: src/Content/Nav.php:269 view/theme/frio/theme.php:273 +#: src/Content/Nav.php:268 view/theme/frio/theme.php:273 msgid "Manage/edit friends and contacts" msgstr "Gérer/éditer les amitiés et contacts" -#: src/Content/Nav.php:274 +#: src/Content/Nav.php:273 src/Module/BaseAdminModule.php:114 +msgid "Admin" +msgstr "Admin" + +#: src/Content/Nav.php:273 msgid "Site setup and configuration" msgstr "Démarrage et configuration du site" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Navigation" msgstr "Navigation" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Site map" msgstr "Carte du site" -#: src/Content/OEmbed.php:256 +#: src/Content/OEmbed.php:255 msgid "Embedding disabled" msgstr "Incorporation désactivée" -#: src/Content/OEmbed.php:379 +#: src/Content/OEmbed.php:378 msgid "Embedded content" msgstr "Contenu incorporé" @@ -7361,33 +5163,33 @@ msgstr "précédent" msgid "last" msgstr "dernier" -#: src/Content/Text/BBCode.php:429 +#: src/Content/Text/BBCode.php:430 msgid "view full size" msgstr "voir en pleine taille" -#: src/Content/Text/BBCode.php:863 src/Content/Text/BBCode.php:1596 -#: src/Content/Text/BBCode.php:1597 +#: src/Content/Text/BBCode.php:864 src/Content/Text/BBCode.php:1591 +#: src/Content/Text/BBCode.php:1592 msgid "Image/photo" msgstr "Image/photo" -#: src/Content/Text/BBCode.php:967 +#: src/Content/Text/BBCode.php:972 #, php-format msgid "%2$s %3$s" msgstr "%2$s %3$s" -#: src/Content/Text/BBCode.php:1523 src/Content/Text/BBCode.php:1545 +#: src/Content/Text/BBCode.php:1518 src/Content/Text/BBCode.php:1540 msgid "$1 wrote:" msgstr "$1 a écrit :" -#: src/Content/Text/BBCode.php:1607 src/Content/Text/BBCode.php:1608 +#: src/Content/Text/BBCode.php:1602 src/Content/Text/BBCode.php:1603 msgid "Encrypted content" msgstr "Contenu chiffré" -#: src/Content/Text/BBCode.php:1715 +#: src/Content/Text/BBCode.php:1710 msgid "Invalid source protocol" msgstr "" -#: src/Content/Text/BBCode.php:1726 +#: src/Content/Text/BBCode.php:1721 msgid "Invalid link protocol" msgstr "" @@ -7403,8 +5205,8 @@ msgstr "Fin" msgid "Follow" msgstr "S'abonner" -#: src/Content/Text/HTML.php:951 src/Model/Item.php:3503 -#: src/Model/Item.php:3514 +#: src/Content/Text/HTML.php:951 src/Model/Item.php:3471 +#: src/Model/Item.php:3482 msgid "Click to open/close" msgstr "Cliquer pour ouvrir/fermer" @@ -7466,6 +5268,11 @@ msgstr "Entrez un nom ou un centre d'intérêt" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Exemples : Robert Morgenstein, Pêche" +#: src/Content/Widget.php:65 src/Module/Contact.php:820 +#: src/Module/Directory.php:91 view/theme/vier/theme.php:203 +msgid "Find" +msgstr "Trouver" + #: src/Content/Widget.php:67 view/theme/vier/theme.php:205 msgid "Similar Interests" msgstr "Intérêts similaires" @@ -7478,6 +5285,11 @@ msgstr "Profil au hasard" msgid "Invite Friends" msgstr "Inviter des amis" +#: src/Content/Widget.php:70 src/Module/Directory.php:83 +#: view/theme/vier/theme.php:208 +msgid "Global Directory" +msgstr "Annuaire global" + #: src/Content/Widget.php:72 view/theme/vier/theme.php:210 msgid "Local Directory" msgstr "Annuaire local" @@ -7509,104 +5321,62 @@ msgid_plural "%d contacts in common" msgstr[0] "%d contact en commun" msgstr[1] "%d contacts en commun" -#: src/Core/ACL.php:287 +#: src/Core/ACL.php:288 msgid "Post to Email" msgstr "Publier aux courriels" -#: src/Core/ACL.php:293 -msgid "Hide your profile details from unknown viewers?" -msgstr "Cacher les détails du profil aux visiteurs inconnus?" - -#: src/Core/ACL.php:292 -#, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Les connecteurs sont désactivés parce que \"%s\" est activé." - -#: src/Core/ACL.php:299 +#: src/Core/ACL.php:300 msgid "Visible to everybody" msgstr "Visible par tout le monde" -#: src/Core/ACL.php:300 view/theme/vier/config.php:116 +#: src/Core/ACL.php:301 view/theme/vier/config.php:116 msgid "show" msgstr "montrer" -#: src/Core/ACL.php:301 view/theme/vier/config.php:116 +#: src/Core/ACL.php:302 view/theme/vier/config.php:116 msgid "don't show" msgstr "cacher" #: src/Core/ACL.php:311 +msgid "Connectors" +msgstr "" + +#: src/Core/ACL.php:313 +msgid "Hide your profile details from unknown viewers?" +msgstr "Cacher les détails du profil aux visiteurs inconnus?" + +#: src/Core/ACL.php:313 +#, php-format +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Les connecteurs sont désactivés parce que \"%s\" est activé." + +#: src/Core/ACL.php:315 msgid "Close" msgstr "Fermer" -#: src/Core/Authentication.php:87 -msgid "Welcome " -msgstr "Bienvenue " - -#: src/Core/Authentication.php:88 -msgid "Please upload a profile photo." -msgstr "Merci d'illustrer votre profil d'une image." - -#: src/Core/Authentication.php:90 -msgid "Welcome back " -msgstr "Bienvenue à nouveau, " - -#: src/Core/Console/ArchiveContact.php:65 -#, php-format -msgid "Could not find any unarchived contact entry for this URL (%s)" -msgstr "" - -#: src/Core/Console/ArchiveContact.php:70 -msgid "The contact entries have been archived" -msgstr "" - -#: src/Core/Console/NewPassword.php:72 -msgid "Enter new password: " -msgstr "" - -#: src/Core/Console/PostUpdate.php:50 -#, php-format -msgid "Post update version number has been set to %s." -msgstr "" - -#: src/Core/Console/PostUpdate.php:58 -msgid "Check for pending update actions." -msgstr "" - -#: src/Core/Console/PostUpdate.php:60 -msgid "Done." -msgstr "" - -#: src/Core/Console/PostUpdate.php:62 -msgid "Execute pending post updates." -msgstr "" - -#: src/Core/Console/PostUpdate.php:68 -msgid "All pending post updates are done." -msgstr "" - -#: src/Core/Installer.php:163 +#: src/Core/Installer.php:164 msgid "" "The database configuration file \"config/local.config.php\" could not be " "written. Please use the enclosed text to create a configuration file in your" " web server root." msgstr "" -#: src/Core/Installer.php:182 +#: src/Core/Installer.php:183 msgid "" "You may need to import the file \"database.sql\" manually using phpmyadmin " "or mysql." msgstr "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql." -#: src/Core/Installer.php:183 src/Module/Install.php:132 -#: src/Module/Install.php:263 +#: src/Core/Installer.php:184 src/Module/Install.php:172 +#: src/Module/Install.php:328 msgid "Please see the file \"INSTALL.txt\"." msgstr "Référez-vous au fichier \"INSTALL.txt\"." -#: src/Core/Installer.php:244 +#: src/Core/Installer.php:245 msgid "Could not find a command line version of PHP in the web server PATH." msgstr "Impossible de trouver la version \"ligne de commande\" de PHP dans le PATH du serveur web." -#: src/Core/Installer.php:245 +#: src/Core/Installer.php:246 msgid "" "If you don't have a command line version of PHP installed on your server, " "you will not be able to run the background processing. See 'Setup the worker'" msgstr "" -#: src/Core/Installer.php:249 +#: src/Core/Installer.php:251 msgid "PHP executable path" msgstr "Chemin vers l'exécutable de PHP" -#: src/Core/Installer.php:249 +#: src/Core/Installer.php:251 msgid "" "Enter full path to php executable. You can leave this blank to continue the " "installation." msgstr "Entrez le chemin (absolu) vers l'exécutable 'php'. Vous pouvez laisser cette ligne vide pour continuer l'installation." -#: src/Core/Installer.php:254 +#: src/Core/Installer.php:256 msgid "Command line PHP" msgstr "Version \"ligne de commande\" de PHP" -#: src/Core/Installer.php:263 +#: src/Core/Installer.php:265 msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" msgstr "L'executable PHP n'est pas le binaire php client (c'est peut être la version cgi-fcgi)" -#: src/Core/Installer.php:264 +#: src/Core/Installer.php:266 msgid "Found PHP version: " msgstr "Version de PHP :" -#: src/Core/Installer.php:266 +#: src/Core/Installer.php:268 msgid "PHP cli binary" msgstr "PHP cli binary" -#: src/Core/Installer.php:279 +#: src/Core/Installer.php:281 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "La version \"ligne de commande\" de PHP de votre système n'a pas \"register_argc_argv\" d'activé." -#: src/Core/Installer.php:280 +#: src/Core/Installer.php:282 msgid "This is required for message delivery to work." msgstr "Ceci est requis pour que la livraison des messages fonctionne." -#: src/Core/Installer.php:285 +#: src/Core/Installer.php:287 msgid "PHP register_argc_argv" msgstr "PHP register_argc_argv" -#: src/Core/Installer.php:317 +#: src/Core/Installer.php:319 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "Erreur: la fonction \"openssl_pkey_new\" de ce système ne permet pas de générer des clés de chiffrement" -#: src/Core/Installer.php:318 +#: src/Core/Installer.php:320 msgid "" "If running under Windows, please see " "\"http://www.php.net/manual/en/openssl.installation.php\"." msgstr "Si vous utilisez Windows, merci de vous réferer à \"http://www.php.net/manual/en/openssl.installation.php\"." -#: src/Core/Installer.php:321 +#: src/Core/Installer.php:323 msgid "Generate encryption keys" msgstr "Générer les clés de chiffrement" -#: src/Core/Installer.php:372 +#: src/Core/Installer.php:375 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "Erreur : Le module \"rewrite\" du serveur web Apache est requis mais pas installé." -#: src/Core/Installer.php:377 +#: src/Core/Installer.php:380 msgid "Apache mod_rewrite module" msgstr "Module mod_rewrite Apache" -#: src/Core/Installer.php:383 +#: src/Core/Installer.php:386 msgid "Error: PDO or MySQLi PHP module required but not installed." msgstr "" -#: src/Core/Installer.php:388 +#: src/Core/Installer.php:391 msgid "Error: The MySQL driver for PDO is not installed." msgstr "" -#: src/Core/Installer.php:392 +#: src/Core/Installer.php:395 msgid "PDO or MySQLi PHP module" msgstr "" -#: src/Core/Installer.php:400 +#: src/Core/Installer.php:403 msgid "Error, XML PHP module required but not installed." msgstr "Erreur : le module PHP XML requis est absent." -#: src/Core/Installer.php:404 +#: src/Core/Installer.php:407 msgid "XML PHP module" msgstr "Module PHP XML" -#: src/Core/Installer.php:407 +#: src/Core/Installer.php:410 msgid "libCurl PHP module" msgstr "Module libCurl de PHP" -#: src/Core/Installer.php:408 +#: src/Core/Installer.php:411 msgid "Error: libCURL PHP module required but not installed." msgstr "Erreur : Le module PHP \"libCURL\" est requis mais pas installé." -#: src/Core/Installer.php:414 +#: src/Core/Installer.php:417 msgid "GD graphics PHP module" msgstr "Module GD (graphiques) de PHP" -#: src/Core/Installer.php:415 +#: src/Core/Installer.php:418 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "Erreur : Le module PHP \"GD\" disposant du support JPEG est requis mais pas installé." -#: src/Core/Installer.php:421 +#: src/Core/Installer.php:424 msgid "OpenSSL PHP module" msgstr "Module OpenSSL de PHP" -#: src/Core/Installer.php:422 +#: src/Core/Installer.php:425 msgid "Error: openssl PHP module required but not installed." msgstr "Erreur : Le module PHP \"openssl\" est requis mais pas installé." -#: src/Core/Installer.php:428 +#: src/Core/Installer.php:431 msgid "mb_string PHP module" msgstr "Module mb_string de PHP" -#: src/Core/Installer.php:429 +#: src/Core/Installer.php:432 msgid "Error: mb_string PHP module required but not installed." msgstr "Erreur : le module PHP mb_string est requis mais pas installé." -#: src/Core/Installer.php:435 +#: src/Core/Installer.php:438 msgid "iconv PHP module" msgstr "" -#: src/Core/Installer.php:436 +#: src/Core/Installer.php:439 msgid "Error: iconv PHP module required but not installed." msgstr "Erreur : Le module PHP iconv requis est absent." -#: src/Core/Installer.php:442 +#: src/Core/Installer.php:445 msgid "POSIX PHP module" msgstr "" -#: src/Core/Installer.php:443 +#: src/Core/Installer.php:446 msgid "Error: POSIX PHP module required but not installed." msgstr "" -#: src/Core/Installer.php:449 +#: src/Core/Installer.php:452 msgid "JSON PHP module" msgstr "" -#: src/Core/Installer.php:450 +#: src/Core/Installer.php:453 msgid "Error: JSON PHP module required but not installed." msgstr "" -#: src/Core/Installer.php:473 +#: src/Core/Installer.php:459 +msgid "File Information PHP module" +msgstr "" + +#: src/Core/Installer.php:460 +msgid "Error: File Information PHP module required but not installed." +msgstr "" + +#: src/Core/Installer.php:483 msgid "" "The web installer needs to be able to create a file called " "\"local.config.php\" in the \"config\" folder of your web server and it is " "unable to do so." msgstr "" -#: src/Core/Installer.php:474 +#: src/Core/Installer.php:484 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez." -#: src/Core/Installer.php:475 +#: src/Core/Installer.php:485 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named local.config.php in your Friendica \"config\" folder." msgstr "" -#: src/Core/Installer.php:476 +#: src/Core/Installer.php:486 msgid "" "You can alternatively skip this procedure and perform a manual installation." " Please see the file \"INSTALL.txt\" for instructions." msgstr "Vous pouvez également sauter cette étape et procéder à une installation manuelle. Pour cela, merci de lire le fichier \"INSTALL.txt\"." -#: src/Core/Installer.php:479 +#: src/Core/Installer.php:489 msgid "config/local.config.php is writable" msgstr "" -#: src/Core/Installer.php:499 +#: src/Core/Installer.php:509 msgid "" "Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "Friendica utilise le moteur de modèles Smarty3 pour le rendu d'affichage web. Smarty3 compile les modèles en PHP pour accélérer le rendu." -#: src/Core/Installer.php:500 +#: src/Core/Installer.php:510 msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory view/smarty3/ under the Friendica top level " "folder." msgstr "Pour pouvoir stocker ces modèles compilés, le serveur internet doit avoir accès au droit d'écriture pour le répertoire view/smarty3/ sous le dossier racine de Friendica." -#: src/Core/Installer.php:501 +#: src/Core/Installer.php:511 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has" " write access to this folder." msgstr "Veuillez vous assurer que l'utilisateur qui exécute votre serveur internet (p. ex. www-data) détient le droit d'accès en écriture sur ce dossier." -#: src/Core/Installer.php:502 +#: src/Core/Installer.php:512 msgid "" "Note: as a security measure, you should give the web server write access to " "view/smarty3/ only--not the template files (.tpl) that it contains." msgstr "Note: pour plus de sécurité, vous devriez ne donner le droit d'accès en écriture qu'à view/smarty3/ et pas aux fichiers modèles (.tpl) qu'il contient." -#: src/Core/Installer.php:505 +#: src/Core/Installer.php:515 msgid "view/smarty3 is writable" msgstr "view/smarty3 est autorisé à l écriture" -#: src/Core/Installer.php:534 +#: src/Core/Installer.php:544 msgid "" "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist" " to .htaccess." msgstr "" -#: src/Core/Installer.php:536 +#: src/Core/Installer.php:546 msgid "Error message from Curl when fetching" msgstr "" -#: src/Core/Installer.php:541 +#: src/Core/Installer.php:551 msgid "Url rewrite is working" msgstr "La réécriture d'URL fonctionne." -#: src/Core/Installer.php:570 +#: src/Core/Installer.php:580 msgid "ImageMagick PHP extension is not installed" msgstr "L'extension PHP ImageMagick n'est pas installée" -#: src/Core/Installer.php:572 +#: src/Core/Installer.php:582 msgid "ImageMagick PHP extension is installed" msgstr "L’extension PHP ImageMagick est installée" -#: src/Core/Installer.php:574 tests/src/Core/InstallerTest.php:329 -#: tests/src/Core/InstallerTest.php:355 +#: src/Core/Installer.php:584 tests/src/Core/InstallerTest.php:347 +#: tests/src/Core/InstallerTest.php:373 msgid "ImageMagick supports GIF" msgstr "ImageMagick supporte le format GIF" -#: src/Core/Installer.php:597 +#: src/Core/Installer.php:609 msgid "Could not connect to database." msgstr "Impossible de se connecter à la base." -#: src/Core/Installer.php:604 +#: src/Core/Installer.php:616 msgid "Database already in use." msgstr "Base de données déjà en cours d'utilisation." -#: src/Core/L10n.php:368 src/Model/Event.php:397 +#: src/Core/L10n.php:371 src/Model/Event.php:397 msgid "Tuesday" msgstr "Mardi" -#: src/Core/L10n.php:368 src/Model/Event.php:398 +#: src/Core/L10n.php:371 src/Model/Event.php:398 msgid "Wednesday" msgstr "Mercredi" -#: src/Core/L10n.php:368 src/Model/Event.php:399 +#: src/Core/L10n.php:371 src/Model/Event.php:399 msgid "Thursday" msgstr "Jeudi" -#: src/Core/L10n.php:368 src/Model/Event.php:400 +#: src/Core/L10n.php:371 src/Model/Event.php:400 msgid "Friday" msgstr "Vendredi" -#: src/Core/L10n.php:368 src/Model/Event.php:401 +#: src/Core/L10n.php:371 src/Model/Event.php:401 msgid "Saturday" msgstr "Samedi" -#: src/Core/L10n.php:372 src/Model/Event.php:416 +#: src/Core/L10n.php:375 src/Model/Event.php:416 msgid "January" msgstr "Janvier" -#: src/Core/L10n.php:372 src/Model/Event.php:417 +#: src/Core/L10n.php:375 src/Model/Event.php:417 msgid "February" msgstr "Février" -#: src/Core/L10n.php:372 src/Model/Event.php:418 +#: src/Core/L10n.php:375 src/Model/Event.php:418 msgid "March" msgstr "Mars" -#: src/Core/L10n.php:372 src/Model/Event.php:419 +#: src/Core/L10n.php:375 src/Model/Event.php:419 msgid "April" msgstr "Avril" -#: src/Core/L10n.php:372 src/Core/L10n.php:391 src/Model/Event.php:407 +#: src/Core/L10n.php:375 src/Core/L10n.php:394 src/Model/Event.php:407 msgid "May" msgstr "Mai" -#: src/Core/L10n.php:372 src/Model/Event.php:420 +#: src/Core/L10n.php:375 src/Model/Event.php:420 msgid "June" msgstr "Juin" -#: src/Core/L10n.php:372 src/Model/Event.php:421 +#: src/Core/L10n.php:375 src/Model/Event.php:421 msgid "July" msgstr "Juillet" -#: src/Core/L10n.php:372 src/Model/Event.php:422 +#: src/Core/L10n.php:375 src/Model/Event.php:422 msgid "August" msgstr "Août" -#: src/Core/L10n.php:372 src/Model/Event.php:423 +#: src/Core/L10n.php:375 src/Model/Event.php:423 msgid "September" msgstr "Septembre" -#: src/Core/L10n.php:372 src/Model/Event.php:424 +#: src/Core/L10n.php:375 src/Model/Event.php:424 msgid "October" msgstr "Octobre" -#: src/Core/L10n.php:372 src/Model/Event.php:425 +#: src/Core/L10n.php:375 src/Model/Event.php:425 msgid "November" msgstr "Novembre" -#: src/Core/L10n.php:372 src/Model/Event.php:426 +#: src/Core/L10n.php:375 src/Model/Event.php:426 msgid "December" msgstr "Décembre" -#: src/Core/L10n.php:387 src/Model/Event.php:388 +#: src/Core/L10n.php:390 src/Model/Event.php:388 msgid "Mon" msgstr "Lun" -#: src/Core/L10n.php:387 src/Model/Event.php:389 +#: src/Core/L10n.php:390 src/Model/Event.php:389 msgid "Tue" msgstr "Mar" -#: src/Core/L10n.php:387 src/Model/Event.php:390 +#: src/Core/L10n.php:390 src/Model/Event.php:390 msgid "Wed" msgstr "Mer" -#: src/Core/L10n.php:387 src/Model/Event.php:391 +#: src/Core/L10n.php:390 src/Model/Event.php:391 msgid "Thu" msgstr "Jeu" -#: src/Core/L10n.php:387 src/Model/Event.php:392 +#: src/Core/L10n.php:390 src/Model/Event.php:392 msgid "Fri" msgstr "Ven" -#: src/Core/L10n.php:387 src/Model/Event.php:393 +#: src/Core/L10n.php:390 src/Model/Event.php:393 msgid "Sat" msgstr "Sam" -#: src/Core/L10n.php:387 src/Model/Event.php:387 +#: src/Core/L10n.php:390 src/Model/Event.php:387 msgid "Sun" msgstr "Dim" -#: src/Core/L10n.php:391 src/Model/Event.php:403 +#: src/Core/L10n.php:394 src/Model/Event.php:403 msgid "Jan" msgstr "Jan" -#: src/Core/L10n.php:391 src/Model/Event.php:404 +#: src/Core/L10n.php:394 src/Model/Event.php:404 msgid "Feb" msgstr "Fév" -#: src/Core/L10n.php:391 src/Model/Event.php:405 +#: src/Core/L10n.php:394 src/Model/Event.php:405 msgid "Mar" msgstr "Mar" -#: src/Core/L10n.php:391 src/Model/Event.php:406 +#: src/Core/L10n.php:394 src/Model/Event.php:406 msgid "Apr" msgstr "Avr" -#: src/Core/L10n.php:391 src/Model/Event.php:409 +#: src/Core/L10n.php:394 src/Model/Event.php:409 msgid "Jul" msgstr "Jul" -#: src/Core/L10n.php:391 src/Model/Event.php:410 +#: src/Core/L10n.php:394 src/Model/Event.php:410 msgid "Aug" msgstr "Aoû" -#: src/Core/L10n.php:391 +#: src/Core/L10n.php:394 msgid "Sep" msgstr "" -#: src/Core/L10n.php:391 src/Model/Event.php:412 +#: src/Core/L10n.php:394 src/Model/Event.php:412 msgid "Oct" msgstr "Oct" -#: src/Core/L10n.php:391 src/Model/Event.php:413 +#: src/Core/L10n.php:394 src/Model/Event.php:413 msgid "Nov" msgstr "Nov" -#: src/Core/L10n.php:391 src/Model/Event.php:414 +#: src/Core/L10n.php:394 src/Model/Event.php:414 msgid "Dec" msgstr "Déc" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poke" msgstr "titiller" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poked" msgstr "a titillé" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "ping" msgstr "attirer l'attention" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "pinged" msgstr "a attiré l'attention de" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prod" msgstr "aiguillonner" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prodded" msgstr "a aiguillonné" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slap" msgstr "gifler" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slapped" msgstr "a giflé" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "finger" msgstr "tripoter" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "fingered" msgstr "a tripoté" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuff" msgstr "rabrouer" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuffed" msgstr "a rabroué" -#: src/Core/NotificationsManager.php:175 +#: src/Core/NotificationsManager.php:144 msgid "System" msgstr "Système" -#: src/Core/NotificationsManager.php:265 src/Core/NotificationsManager.php:277 +#: src/Core/NotificationsManager.php:234 src/Core/NotificationsManager.php:246 #, php-format msgid "%s commented on %s's post" msgstr "%s a commenté la publication de %s" -#: src/Core/NotificationsManager.php:276 +#: src/Core/NotificationsManager.php:245 #, php-format msgid "%s created a new post" msgstr "%s a créé une nouvelle publication" -#: src/Core/NotificationsManager.php:290 +#: src/Core/NotificationsManager.php:259 #, php-format msgid "%s liked %s's post" msgstr "%s a aimé la publication de %s" -#: src/Core/NotificationsManager.php:303 +#: src/Core/NotificationsManager.php:272 #, php-format msgid "%s disliked %s's post" msgstr "%s n'a pas aimé la publication de %s" -#: src/Core/NotificationsManager.php:316 +#: src/Core/NotificationsManager.php:285 #, php-format msgid "%s is attending %s's event" msgstr "%s participe à l'événement de %s" -#: src/Core/NotificationsManager.php:329 +#: src/Core/NotificationsManager.php:298 #, php-format msgid "%s is not attending %s's event" msgstr "%s ne participe pas à l'événement de %s" -#: src/Core/NotificationsManager.php:342 +#: src/Core/NotificationsManager.php:311 #, php-format msgid "%s may attend %s's event" msgstr "%s participera peut-être à l'événement de %s" -#: src/Core/NotificationsManager.php:375 +#: src/Core/NotificationsManager.php:344 #, php-format msgid "%s is now friends with %s" msgstr "%s est désormais ami(e) avec %s" -#: src/Core/NotificationsManager.php:651 +#: src/Core/NotificationsManager.php:622 msgid "Friend Suggestion" msgstr "Suggestion d'amitié/contact" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "Friend/Connect Request" msgstr "Demande de connexion/relation" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "New Follower" msgstr "Nouvel abonné" -#: src/Core/System.php:137 -msgid "Error 400 - Bad Request" +#: src/Core/Session.php:194 +#, php-format +msgid "Welcome %s" msgstr "" -#: src/Core/System.php:138 -msgid "Error 401 - Unauthorized" +#: src/Core/Session.php:195 +msgid "Please upload a profile photo." +msgstr "Merci d'illustrer votre profil d'une image." + +#: src/Core/Session.php:198 +#, php-format +msgid "Welcome back %s" msgstr "" -#: src/Core/System.php:139 -msgid "Error 403 - Forbidden" -msgstr "" - -#: src/Core/System.php:140 -msgid "Error 404 - Not Found" -msgstr "" - -#: src/Core/System.php:141 -msgid "Error 500 - Internal Server Error" -msgstr "" - -#: src/Core/System.php:142 -msgid "Error 503 - Service Unavailable" -msgstr "" - -#: src/Core/System.php:150 -msgid "" -"The server cannot or will not process the request due to an apparent client " -"error." -msgstr "" - -#: src/Core/System.php:151 -msgid "" -"Authentication is required and has failed or has not yet been provided." -msgstr "" - -#: src/Core/System.php:152 -msgid "" -"The request was valid, but the server is refusing action. The user might not" -" have the necessary permissions for a resource, or may need an account." -msgstr "" - -#: src/Core/System.php:153 -msgid "" -"The requested resource could not be found but may be available in the " -"future." -msgstr "" - -#: src/Core/System.php:154 -msgid "" -"An unexpected condition was encountered and no more specific message is " -"suitable." -msgstr "" - -#: src/Core/System.php:155 -msgid "" -"The server is currently unavailable (because it is overloaded or down for " -"maintenance). Please try again later." -msgstr "" - -#: src/Core/Update.php:168 +#: src/Core/Update.php:193 #, php-format msgid "Update %s failed. See error logs." msgstr "Mise-à-jour %s échouée. Voir les journaux d'erreur." -#: src/Core/Update.php:225 +#: src/Core/Update.php:257 #, php-format msgid "" "\n" @@ -8163,49 +5896,53 @@ msgid "" "\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." msgstr "" -#: src/Core/Update.php:231 +#: src/Core/Update.php:263 #, php-format msgid "" "The error message is\n" "[pre]%s[/pre]" msgstr "Le message d’erreur est\n[pre]%s[/pre]" -#: src/Core/Update.php:260 +#: src/Core/Update.php:269 src/Core/Update.php:308 +msgid "[Friendica Notify] Database update" +msgstr "" + +#: src/Core/Update.php:300 #, php-format msgid "" "\n" "\t\t\t\t\tThe friendica database was successfully updated from %s to %s." msgstr "" -#: src/Core/UserImport.php:103 +#: src/Core/UserImport.php:99 msgid "Error decoding account file" msgstr "Une erreur a été détecté en décodant un fichier utilisateur" -#: src/Core/UserImport.php:109 +#: src/Core/UserImport.php:105 msgid "Error! No version data in file! This is not a Friendica account file?" msgstr "Erreur ! Pas de ficher de version existant ! Êtes vous sur un compte Friendica ?" -#: src/Core/UserImport.php:117 +#: src/Core/UserImport.php:113 #, php-format msgid "User '%s' already exists on this server!" msgstr "L'utilisateur '%s' existe déjà sur ce serveur!" -#: src/Core/UserImport.php:153 +#: src/Core/UserImport.php:149 msgid "User creation error" msgstr "Erreur de création d'utilisateur" -#: src/Core/UserImport.php:171 +#: src/Core/UserImport.php:167 msgid "User profile creation error" msgstr "Erreur de création du profil utilisateur" -#: src/Core/UserImport.php:215 +#: src/Core/UserImport.php:211 #, php-format msgid "%d contact not imported" msgid_plural "%d contacts not imported" msgstr[0] "%d contacts non importés" msgstr[1] "%d contacts non importés" -#: src/Core/UserImport.php:280 +#: src/Core/UserImport.php:276 msgid "Done. You can now login with your username and password" msgstr "Action réalisée. Vous pouvez désormais vous connecter avec votre nom d'utilisateur et votre mot de passe" @@ -8240,79 +5977,83 @@ msgstr "" msgid "Legacy module file not found: %s" msgstr "" -#: src/Model/Contact.php:1054 +#: src/Model/Contact.php:1116 msgid "Drop Contact" msgstr "Supprimer le contact" -#: src/Model/Contact.php:1526 +#: src/Model/Contact.php:1651 msgid "Organisation" msgstr "" -#: src/Model/Contact.php:1530 +#: src/Model/Contact.php:1655 msgid "News" msgstr "Nouvelles" -#: src/Model/Contact.php:1534 +#: src/Model/Contact.php:1659 msgid "Forum" msgstr "Forum" -#: src/Model/Contact.php:1724 +#: src/Model/Contact.php:1888 msgid "Connect URL missing." msgstr "URL de connexion manquante." -#: src/Model/Contact.php:1733 +#: src/Model/Contact.php:1897 msgid "" "The contact could not be added. Please check the relevant network " "credentials in your Settings -> Social Networks page." msgstr "" -#: src/Model/Contact.php:1772 +#: src/Model/Contact.php:1938 msgid "" "This site is not configured to allow communications with other networks." msgstr "Ce site n'est pas configuré pour dialoguer avec d'autres réseaux." -#: src/Model/Contact.php:1773 src/Model/Contact.php:1786 +#: src/Model/Contact.php:1939 src/Model/Contact.php:1952 msgid "No compatible communication protocols or feeds were discovered." msgstr "Aucun protocole de communication ni aucun flux n'a pu être découvert." -#: src/Model/Contact.php:1784 +#: src/Model/Contact.php:1950 msgid "The profile address specified does not provide adequate information." msgstr "L'adresse de profil indiquée ne fournit par les informations adéquates." -#: src/Model/Contact.php:1789 +#: src/Model/Contact.php:1955 msgid "An author or name was not found." msgstr "Aucun auteur ou nom d'auteur n'a pu être trouvé." -#: src/Model/Contact.php:1792 +#: src/Model/Contact.php:1958 msgid "No browser URL could be matched to this address." msgstr "Aucune URL de navigation ne correspond à cette adresse." -#: src/Model/Contact.php:1795 +#: src/Model/Contact.php:1961 msgid "" "Unable to match @-style Identity Address with a known protocol or email " "contact." msgstr "Impossible de faire correspondre l'adresse d'identité en \"@\" avec un protocole connu ou un contact courriel." -#: src/Model/Contact.php:1796 +#: src/Model/Contact.php:1962 msgid "Use mailto: in front of address to force email check." msgstr "Utilisez mailto: en face d'une adresse pour l'obliger à être reconnue comme courriel." -#: src/Model/Contact.php:1802 +#: src/Model/Contact.php:1968 msgid "" "The profile address specified belongs to a network which has been disabled " "on this site." msgstr "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site." -#: src/Model/Contact.php:1807 +#: src/Model/Contact.php:1973 msgid "" "Limited profile. This person will be unable to receive direct/personal " "notifications from you." msgstr "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part." -#: src/Model/Contact.php:1860 +#: src/Model/Contact.php:2027 msgid "Unable to retrieve contact information." msgstr "Impossible de récupérer les informations du contact." +#: src/Model/Event.php:34 src/Model/Event.php:847 src/Module/Localtime.php:17 +msgid "l F d, Y \\@ g:i A" +msgstr "l F d, Y \\@ g:i A" + #: src/Model/Event.php:61 src/Model/Event.php:78 src/Model/Event.php:435 #: src/Model/Event.php:915 msgid "Starts:" @@ -8355,7 +6096,7 @@ msgstr "Dupliquer l'événement" msgid "Delete event" msgstr "Supprimer l'événement" -#: src/Model/Event.php:626 src/Model/Item.php:3554 src/Model/Item.php:3561 +#: src/Model/Event.php:626 src/Model/Item.php:3522 src/Model/Item.php:3529 msgid "link to source" msgstr "lien original" @@ -8389,211 +6130,222 @@ msgstr "Joyeux anniversaire, %s !" msgid "Item filed" msgstr "Élément classé" -#: src/Model/Group.php:43 +#: src/Model/Group.php:63 msgid "" "A deleted group with this name was revived. Existing item permissions " "may apply to this group and any future members. If this is " "not what you intended, please create another group with a different name." msgstr "Un groupe supprimé a été recréé. Les permissions existantes pourraient s'appliquer à ce groupe et aux futurs membres. Si ce n'est pas le comportement attendu, merci de re-créer un autre groupe sous un autre nom." -#: src/Model/Group.php:338 +#: src/Model/Group.php:358 msgid "Default privacy group for new contacts" msgstr "Paramètres de confidentialité par défaut pour les nouveaux contacts" -#: src/Model/Group.php:370 +#: src/Model/Group.php:390 msgid "Everybody" msgstr "Tout le monde" -#: src/Model/Group.php:390 +#: src/Model/Group.php:410 msgid "edit" msgstr "éditer" -#: src/Model/Group.php:419 +#: src/Model/Group.php:439 msgid "Edit group" msgstr "Editer groupe" -#: src/Model/Group.php:422 +#: src/Model/Group.php:440 src/Module/Group.php:186 +msgid "Contacts not in any group" +msgstr "Contacts n'appartenant à aucun groupe" + +#: src/Model/Group.php:442 msgid "Create a new group" msgstr "Créer un nouveau groupe" -#: src/Model/Group.php:424 +#: src/Model/Group.php:443 src/Module/Group.php:171 src/Module/Group.php:194 +#: src/Module/Group.php:271 +msgid "Group Name: " +msgstr "Nom du groupe : " + +#: src/Model/Group.php:444 msgid "Edit groups" msgstr "Modifier les groupes" -#: src/Model/Item.php:3287 +#: src/Model/Item.php:3257 msgid "activity" msgstr "activité" -#: src/Model/Item.php:3289 src/Object/Post.php:470 +#: src/Model/Item.php:3259 src/Object/Post.php:472 msgid "comment" msgid_plural "comments" msgstr[0] "" msgstr[1] "commentaire" -#: src/Model/Item.php:3292 +#: src/Model/Item.php:3262 msgid "post" msgstr "publication" -#: src/Model/Item.php:3391 +#: src/Model/Item.php:3361 #, php-format msgid "Content warning: %s" msgstr "Avertissement de contenu: %s" -#: src/Model/Item.php:3470 +#: src/Model/Item.php:3438 msgid "bytes" msgstr "octets" -#: src/Model/Item.php:3548 +#: src/Model/Item.php:3516 msgid "View on separate page" msgstr "Voir dans une nouvelle page" -#: src/Model/Item.php:3549 +#: src/Model/Item.php:3517 msgid "view on separate page" msgstr "voir dans une nouvelle page" -#: src/Model/Mail.php:40 src/Model/Mail.php:175 +#: src/Model/Mail.php:109 src/Model/Mail.php:244 msgid "[no subject]" msgstr "[pas de sujet]" -#: src/Model/Profile.php:115 -msgid "Requested account is not available." -msgstr "Le compte demandé n'est pas disponible." - -#: src/Model/Profile.php:133 -msgid "Requested profile is not available." -msgstr "Le profil demandé n'est pas disponible." - -#: src/Model/Profile.php:181 src/Model/Profile.php:425 -#: src/Model/Profile.php:872 +#: src/Model/Profile.php:177 src/Model/Profile.php:421 +#: src/Model/Profile.php:866 msgid "Edit profile" msgstr "Editer le profil" -#: src/Model/Profile.php:359 +#: src/Model/Profile.php:355 msgid "Atom feed" msgstr "Flux Atom" -#: src/Model/Profile.php:398 +#: src/Model/Profile.php:394 msgid "Manage/edit profiles" msgstr "Gérer/éditer les profils" -#: src/Model/Profile.php:450 src/Module/Contact.php:645 +#: src/Model/Profile.php:443 src/Model/Profile.php:776 +#: src/Module/Directory.php:148 +msgid "Status:" +msgstr "Statut :" + +#: src/Model/Profile.php:444 src/Model/Profile.php:793 +#: src/Module/Directory.php:149 +msgid "Homepage:" +msgstr "Page personnelle :" + +#: src/Model/Profile.php:446 src/Module/Contact.php:648 msgid "XMPP:" msgstr "XMPP" -#: src/Model/Profile.php:573 src/Model/Profile.php:671 +#: src/Model/Profile.php:569 src/Model/Profile.php:666 msgid "g A l F d" msgstr "g A | F d" -#: src/Model/Profile.php:574 +#: src/Model/Profile.php:570 msgid "F d" msgstr "F d" -#: src/Model/Profile.php:636 src/Model/Profile.php:722 +#: src/Model/Profile.php:632 src/Model/Profile.php:717 msgid "[today]" msgstr "[aujourd'hui]" -#: src/Model/Profile.php:647 +#: src/Model/Profile.php:642 msgid "Birthday Reminders" msgstr "Rappels d'anniversaires" -#: src/Model/Profile.php:648 +#: src/Model/Profile.php:643 msgid "Birthdays this week:" msgstr "Anniversaires cette semaine :" -#: src/Model/Profile.php:709 +#: src/Model/Profile.php:704 msgid "[No description]" msgstr "[Sans description]" -#: src/Model/Profile.php:736 +#: src/Model/Profile.php:730 msgid "Event Reminders" msgstr "Rappels d'événements" -#: src/Model/Profile.php:737 +#: src/Model/Profile.php:731 msgid "Upcoming events the next 7 days:" msgstr "" -#: src/Model/Profile.php:754 +#: src/Model/Profile.php:748 msgid "Member since:" msgstr "" -#: src/Model/Profile.php:762 +#: src/Model/Profile.php:756 msgid "j F, Y" msgstr "j F, Y" -#: src/Model/Profile.php:763 +#: src/Model/Profile.php:757 msgid "j F" msgstr "j F" -#: src/Model/Profile.php:771 src/Util/Temporal.php:147 +#: src/Model/Profile.php:765 src/Util/Temporal.php:147 msgid "Birthday:" msgstr "Anniversaire :" -#: src/Model/Profile.php:778 +#: src/Model/Profile.php:772 msgid "Age:" msgstr "Age :" -#: src/Model/Profile.php:791 +#: src/Model/Profile.php:785 #, php-format msgid "for %1$d %2$s" msgstr "depuis %1$d %2$s" -#: src/Model/Profile.php:815 +#: src/Model/Profile.php:809 msgid "Religion:" msgstr "Religion :" -#: src/Model/Profile.php:823 +#: src/Model/Profile.php:817 msgid "Hobbies/Interests:" msgstr "Passe-temps/Centres d'intérêt :" -#: src/Model/Profile.php:835 +#: src/Model/Profile.php:829 msgid "Contact information and Social Networks:" msgstr "Coordonnées/Réseaux sociaux :" -#: src/Model/Profile.php:839 +#: src/Model/Profile.php:833 msgid "Musical interests:" msgstr "Goûts musicaux :" -#: src/Model/Profile.php:843 +#: src/Model/Profile.php:837 msgid "Books, literature:" msgstr "Lectures :" -#: src/Model/Profile.php:847 +#: src/Model/Profile.php:841 msgid "Television:" msgstr "Télévision :" -#: src/Model/Profile.php:851 +#: src/Model/Profile.php:845 msgid "Film/dance/culture/entertainment:" msgstr "Cinéma/Danse/Culture/Divertissement :" -#: src/Model/Profile.php:855 +#: src/Model/Profile.php:849 msgid "Love/Romance:" msgstr "Amour/Romance :" -#: src/Model/Profile.php:859 +#: src/Model/Profile.php:853 msgid "Work/employment:" msgstr "Activité professionnelle/Occupation :" -#: src/Model/Profile.php:863 +#: src/Model/Profile.php:857 msgid "School/education:" msgstr "Études/Formation :" -#: src/Model/Profile.php:868 +#: src/Model/Profile.php:862 msgid "Forums:" msgstr "Forums :" -#: src/Model/Profile.php:912 src/Module/Contact.php:872 +#: src/Model/Profile.php:906 src/Module/Contact.php:875 msgid "Profile Details" msgstr "Détails du profil" -#: src/Model/Profile.php:962 +#: src/Model/Profile.php:956 msgid "Only You Can See This" msgstr "Vous seul pouvez voir ça" -#: src/Model/Profile.php:970 src/Model/Profile.php:973 +#: src/Model/Profile.php:964 src/Model/Profile.php:967 msgid "Tips for New Members" msgstr "Conseils aux nouveaux venus" -#: src/Model/Profile.php:1150 +#: src/Model/Profile.php:1167 #, php-format msgid "OpenWebAuth: %1$s welcomes %2$s" msgstr "" @@ -8633,138 +6385,138 @@ msgstr "" msgid "Enter a valid existing folder" msgstr "" -#: src/Model/User.php:271 +#: src/Model/User.php:298 msgid "Login failed" msgstr "" -#: src/Model/User.php:302 +#: src/Model/User.php:329 msgid "Not enough information to authenticate" msgstr "" -#: src/Model/User.php:380 +#: src/Model/User.php:407 msgid "Password can't be empty" msgstr "" -#: src/Model/User.php:399 +#: src/Model/User.php:426 msgid "Empty passwords are not allowed." msgstr "" -#: src/Model/User.php:403 +#: src/Model/User.php:430 msgid "" "The new password has been exposed in a public data dump, please choose " "another." msgstr "" -#: src/Model/User.php:409 +#: src/Model/User.php:436 msgid "" "The password can't contain accentuated letters, white spaces or colons (:)" msgstr "" -#: src/Model/User.php:509 +#: src/Model/User.php:536 msgid "Passwords do not match. Password unchanged." msgstr "Les mots de passe ne correspondent pas. Aucun changement appliqué." -#: src/Model/User.php:516 +#: src/Model/User.php:543 msgid "An invitation is required." msgstr "Une invitation est requise." -#: src/Model/User.php:520 +#: src/Model/User.php:547 msgid "Invitation could not be verified." msgstr "L'invitation fournie n'a pu être validée." -#: src/Model/User.php:527 +#: src/Model/User.php:554 msgid "Invalid OpenID url" msgstr "Adresse OpenID invalide" -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "Nous avons eu un souci avec l'OpenID que vous avez fourni. Merci de vérifier qu'il est correctement écrit." -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "The error message was:" msgstr "Le message d'erreur était :" -#: src/Model/User.php:546 +#: src/Model/User.php:573 msgid "Please enter the required information." msgstr "Entrez les informations requises." -#: src/Model/User.php:560 +#: src/Model/User.php:587 #, php-format msgid "" "system.username_min_length (%s) and system.username_max_length (%s) are " "excluding each other, swapping values." msgstr "" -#: src/Model/User.php:567 +#: src/Model/User.php:594 #, php-format msgid "Username should be at least %s character." msgid_plural "Username should be at least %s characters." msgstr[0] "" msgstr[1] "" -#: src/Model/User.php:571 +#: src/Model/User.php:598 #, php-format msgid "Username should be at most %s character." msgid_plural "Username should be at most %s characters." msgstr[0] "" msgstr[1] "" -#: src/Model/User.php:579 +#: src/Model/User.php:606 msgid "That doesn't appear to be your full (First Last) name." msgstr "Ceci ne semble pas être votre nom complet (Prénom Nom)." -#: src/Model/User.php:584 +#: src/Model/User.php:611 msgid "Your email domain is not among those allowed on this site." msgstr "Votre domaine de courriel n'est pas autorisé sur ce site." -#: src/Model/User.php:588 +#: src/Model/User.php:615 msgid "Not a valid email address." msgstr "Ceci n'est pas une adresse courriel valide." -#: src/Model/User.php:591 +#: src/Model/User.php:618 msgid "The nickname was blocked from registration by the nodes admin." msgstr "" -#: src/Model/User.php:595 src/Model/User.php:603 +#: src/Model/User.php:622 src/Model/User.php:630 msgid "Cannot use that email." msgstr "Impossible d'utiliser ce courriel." -#: src/Model/User.php:610 +#: src/Model/User.php:637 msgid "Your nickname can only contain a-z, 0-9 and _." msgstr "" -#: src/Model/User.php:617 src/Model/User.php:674 +#: src/Model/User.php:644 src/Model/User.php:701 msgid "Nickname is already registered. Please choose another." msgstr "Pseudo déjà utilisé. Merci d'en choisir un autre." -#: src/Model/User.php:627 +#: src/Model/User.php:654 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "ERREUR FATALE : La génération des clés de sécurité a échoué." -#: src/Model/User.php:661 src/Model/User.php:665 +#: src/Model/User.php:688 src/Model/User.php:692 msgid "An error occurred during registration. Please try again." msgstr "Une erreur est survenue lors de l'inscription. Merci de recommencer." -#: src/Model/User.php:685 view/theme/duepuntozero/config.php:55 +#: src/Model/User.php:712 view/theme/duepuntozero/config.php:55 msgid "default" msgstr "défaut" -#: src/Model/User.php:690 +#: src/Model/User.php:717 msgid "An error occurred creating your default profile. Please try again." msgstr "Une erreur est survenue lors de la création de votre profil par défaut. Merci de recommencer." -#: src/Model/User.php:697 +#: src/Model/User.php:724 msgid "An error occurred creating your self contact. Please try again." msgstr "" -#: src/Model/User.php:706 +#: src/Model/User.php:733 msgid "" "An error occurred creating your default contact group. Please try again." msgstr "" -#: src/Model/User.php:782 +#: src/Model/User.php:809 #, php-format msgid "" "\n" @@ -8779,12 +6531,12 @@ msgid "" "\t\t" msgstr "" -#: src/Model/User.php:799 +#: src/Model/User.php:826 #, php-format msgid "Registration at %s" msgstr "" -#: src/Model/User.php:818 +#: src/Model/User.php:845 #, php-format msgid "" "\n" @@ -8793,7 +6545,7 @@ msgid "" "\t\t" msgstr "" -#: src/Model/User.php:824 +#: src/Model/User.php:851 #, php-format msgid "" "\n" @@ -8825,10 +6577,2044 @@ msgid "" "\t\t\tThank you and welcome to %2$s." msgstr "" +#: src/Model/User.php:886 src/Module/Admin/Users.php:88 +#, php-format +msgid "Registration details for %s" +msgstr "Détails d'inscription pour %s" + +#: src/Module/Admin/Addons/Details.php:51 +msgid "Addon not found." +msgstr "" + +#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:32 +#, php-format +msgid "Addon %s disabled." +msgstr "Add-on %s désactivé." + +#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:34 +#, php-format +msgid "Addon %s enabled." +msgstr "Add-on %s activé." + +#: src/Module/Admin/Addons/Details.php:76 +#: src/Module/Admin/Themes/Details.php:60 +msgid "Disable" +msgstr "Désactiver" + +#: src/Module/Admin/Addons/Details.php:79 +#: src/Module/Admin/Themes/Details.php:63 +msgid "Enable" +msgstr "Activer" + +#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50 +#: src/Module/Admin/Blocklist/Contact.php:60 +#: src/Module/Admin/Blocklist/Server.php:73 +#: src/Module/Admin/Federation.php:185 src/Module/Admin/Item/Delete.php:46 +#: src/Module/Admin/Logs/Settings.php:57 src/Module/Admin/Logs/View.php:46 +#: src/Module/Admin/Queue.php:56 src/Module/Admin/Site.php:568 +#: src/Module/Admin/Summary.php:160 src/Module/Admin/Themes/Details.php:104 +#: src/Module/Admin/Themes/Index.php:93 src/Module/Admin/Tos.php:42 +#: src/Module/Admin/Users.php:277 +msgid "Administration" +msgstr "Administration" + +#: src/Module/Admin/Addons/Details.php:101 +#: src/Module/Admin/Themes/Details.php:106 +msgid "Toggle" +msgstr "Activer/Désactiver" + +#: src/Module/Admin/Addons/Details.php:109 +#: src/Module/Admin/Themes/Details.php:115 +msgid "Author: " +msgstr "Auteur : " + +#: src/Module/Admin/Addons/Details.php:110 +#: src/Module/Admin/Themes/Details.php:116 +msgid "Maintainer: " +msgstr "Mainteneur : " + +#: src/Module/Admin/Addons/Index.php:36 +#, php-format +msgid "Addon %s failed to install." +msgstr "" + +#: src/Module/Admin/Addons/Index.php:53 +msgid "Reload active addons" +msgstr "Recharger les add-ons activés." + +#: src/Module/Admin/Addons/Index.php:58 +#, php-format +msgid "" +"There are currently no addons available on your node. You can find the " +"official addon repository at %1$s and might find other interesting addons in" +" the open addon registry at %2$s" +msgstr "Il n'y a pas d'add-on disponible sur votre serveur. Vous pouvez trouver le dépôt officiel d'add-ons sur %1$s et des add-ons non-officiel dans le répertoire d'add-ons ouvert sur %2$s." + +#: src/Module/Admin/Blocklist/Contact.php:37 +#, php-format +msgid "%s contact unblocked" +msgid_plural "%s contacts unblocked" +msgstr[0] "%s contact débloqué" +msgstr[1] "%s profiles distants débloqués" + +#: src/Module/Admin/Blocklist/Contact.php:61 +msgid "Remote Contact Blocklist" +msgstr "Liste des profiles distants bloqués" + +#: src/Module/Admin/Blocklist/Contact.php:62 +msgid "" +"This page allows you to prevent any message from a remote contact to reach " +"your node." +msgstr "Cette page vous permet de refuser toutes les publications d'un profile distant sur votre site." + +#: src/Module/Admin/Blocklist/Contact.php:63 +msgid "Block Remote Contact" +msgstr "Bloquer le profile distant" + +#: src/Module/Admin/Blocklist/Contact.php:64 src/Module/Admin/Users.php:280 +msgid "select all" +msgstr "tout sélectionner" + +#: src/Module/Admin/Blocklist/Contact.php:65 +msgid "select none" +msgstr "Sélectionner tous" + +#: src/Module/Admin/Blocklist/Contact.php:67 src/Module/Admin/Users.php:291 +#: src/Module/Contact.php:624 src/Module/Contact.php:827 +#: src/Module/Contact.php:1080 +msgid "Unblock" +msgstr "Débloquer" + +#: src/Module/Admin/Blocklist/Contact.php:68 +msgid "No remote contact is blocked from this node." +msgstr "Aucun profil distant n'est bloqué" + +#: src/Module/Admin/Blocklist/Contact.php:70 +msgid "Blocked Remote Contacts" +msgstr "Profils distants bloqués" + +#: src/Module/Admin/Blocklist/Contact.php:71 +msgid "Block New Remote Contact" +msgstr "Bloquer un nouveau profil distant" + +#: src/Module/Admin/Blocklist/Contact.php:72 +msgid "Photo" +msgstr "Photo" + +#: src/Module/Admin/Blocklist/Contact.php:80 +#, php-format +msgid "%s total blocked contact" +msgid_plural "%s total blocked contacts" +msgstr[0] "%s profil distant bloqué" +msgstr[1] "%s profils distans bloqués" + +#: src/Module/Admin/Blocklist/Contact.php:82 +msgid "URL of the remote contact to block." +msgstr "URL du profil distant à bloquer." + +#: src/Module/Admin/Blocklist/Server.php:31 +msgid "Server added to blocklist." +msgstr "Serveur ajouté à la liste noire." + +#: src/Module/Admin/Blocklist/Server.php:47 +msgid "Site blocklist updated." +msgstr "Liste noire mise à jour." + +#: src/Module/Admin/Blocklist/Server.php:64 +msgid "The blocked domain" +msgstr "Domaine bloqué" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:84 src/Module/Friendica.php:60 +msgid "Reason for the block" +msgstr "Raison du blocage." + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "The reason why you blocked this domain." +msgstr "Raison pour laquelle vous souhaitez bloquer ce domaine." + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Delete domain" +msgstr "Supprimer le domaine." + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Check to delete this entry from the blocklist" +msgstr "Cochez la case pour retirer cette entrée de la liste noire" + +#: src/Module/Admin/Blocklist/Server.php:74 src/Module/BaseAdminModule.php:94 +msgid "Server Blocklist" +msgstr "Serveurs bloqués" + +#: src/Module/Admin/Blocklist/Server.php:75 +msgid "" +"This page can be used to define a black list of servers from the federated " +"network that are not allowed to interact with your node. For all entered " +"domains you should also give a reason why you have blocked the remote " +"server." +msgstr "Cette page permet de créer une liste noire des serveurs de la fédération qui ne sont pas autorisés à interagir avec votre serveur. Pour chaque serveur bloqué, vous devez fournir la raison du blocage." + +#: src/Module/Admin/Blocklist/Server.php:76 +msgid "" +"The list of blocked servers will be made publically available on the " +"/friendica page so that your users and people investigating communication " +"problems can find the reason easily." +msgstr "La liste des serveurs bloqués sera publiée sur la page /friendica pour que les utilisateurs rencontrant des problèmes de communication puissent en comprendre la raison." + +#: src/Module/Admin/Blocklist/Server.php:77 +msgid "Add new entry to block list" +msgstr "Ajouter une nouvelle entrée à la liste noire" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "Server Domain" +msgstr "Adresse du serveur" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "" +"The domain of the new server to add to the block list. Do not include the " +"protocol." +msgstr "Adresse du serveur à ajouter à la liste noire. Ne pas mettre le protocole." + +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "Block reason" +msgstr "Raison du blocage." + +#: src/Module/Admin/Blocklist/Server.php:80 +msgid "Add Entry" +msgstr "Ajouter" + +#: src/Module/Admin/Blocklist/Server.php:81 +msgid "Save changes to the blocklist" +msgstr "Sauvegarder la liste noire" + +#: src/Module/Admin/Blocklist/Server.php:82 +msgid "Current Entries in the Blocklist" +msgstr "Entrées de la liste noire" + +#: src/Module/Admin/Blocklist/Server.php:85 +msgid "Delete entry from blocklist" +msgstr "Supprimer l'entrée de la liste noire" + +#: src/Module/Admin/Blocklist/Server.php:88 +msgid "Delete entry from blocklist?" +msgstr "Supprimer l'entrée de la liste noire ?" + +#: src/Module/Admin/DBSync.php:32 +msgid "Update has been marked successful" +msgstr "Mise-à-jour validée comme 'réussie'" + +#: src/Module/Admin/DBSync.php:42 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "La structure de base de données pour la mise à jour %s a été appliquée avec succès." + +#: src/Module/Admin/DBSync.php:46 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s" + +#: src/Module/Admin/DBSync.php:63 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "L'exécution %s a échoué avec l'erreur: %s" + +#: src/Module/Admin/DBSync.php:65 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Mise-à-jour %s appliquée avec succès." + +#: src/Module/Admin/DBSync.php:68 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "La mise-à-jour %s n'a pas retourné de détails. Impossible de savoir si elle a réussi." + +#: src/Module/Admin/DBSync.php:71 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "Il n'y avait aucune fonction supplémentaire de mise à jour %s qui devait être appelé" + +#: src/Module/Admin/DBSync.php:91 +msgid "No failed updates." +msgstr "Pas de mises-à-jour échouées." + +#: src/Module/Admin/DBSync.php:92 +msgid "Check database structure" +msgstr "Vérifier la structure de la base de données" + +#: src/Module/Admin/DBSync.php:97 +msgid "Failed Updates" +msgstr "Mises-à-jour échouées" + +#: src/Module/Admin/DBSync.php:98 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "Ceci n'inclut pas les versions antérieures à la 1139, qui ne retournaient jamais de détails." + +#: src/Module/Admin/DBSync.php:99 +msgid "Mark success (if update was manually applied)" +msgstr "Marquer comme 'réussie' (dans le cas d'une mise-à-jour manuelle)" + +#: src/Module/Admin/DBSync.php:100 +msgid "Attempt to execute this update step automatically" +msgstr "Tenter d'éxecuter cette étape automatiquement" + +#: src/Module/Admin/Features.php:59 +#, php-format +msgid "Lock feature %s" +msgstr "Verouiller la fonctionnalité %s" + +#: src/Module/Admin/Features.php:67 +msgid "Manage Additional Features" +msgstr "Gérer les fonctionnalités avancées" + +#: src/Module/Admin/Federation.php:76 +msgid "unknown" +msgstr "inconnu" + +#: src/Module/Admin/Federation.php:179 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "Cette page montre quelques statistiques de la partie connue du réseau social fédéré dont votre instance Friendica fait partie. Ces chiffres sont partiels et ne reflètent que la portion du réseau dont votre instance a connaissance." + +#: src/Module/Admin/Federation.php:180 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "En activant la fonctionnalité Répertoire de Contacts Découverts Automatiquement, cela améliorera la qualité des chiffres présentés ici." + +#: src/Module/Admin/Federation.php:186 src/Module/BaseAdminModule.php:77 +msgid "Federation Statistics" +msgstr "Statistiques Federation" + +#: src/Module/Admin/Federation.php:192 +#, php-format +msgid "" +"Currently this node is aware of %d nodes with %d registered users from the " +"following platforms:" +msgstr "Ce site a connaissance de %d sites distants totalisant %d utilisateurs répartis entre les plate-formes suivantes :" + +#: src/Module/Admin/Item/Delete.php:35 +msgid "Item marked for deletion." +msgstr "L'élément va être supprimé." + +#: src/Module/Admin/Item/Delete.php:47 src/Module/BaseAdminModule.php:95 +msgid "Delete Item" +msgstr "Supprimer un élément" + +#: src/Module/Admin/Item/Delete.php:48 +msgid "Delete this Item" +msgstr "Supprimer l'élément" + +#: src/Module/Admin/Item/Delete.php:49 +msgid "" +"On this page you can delete an item from your node. If the item is a top " +"level posting, the entire thread will be deleted." +msgstr "Sur cette page, vous pouvez supprimer un élément de votre noeud. Si cet élément est le premier post d'un fil de discussion, le fil de discussion entier sera supprimé." + +#: src/Module/Admin/Item/Delete.php:50 +msgid "" +"You need to know the GUID of the item. You can find it e.g. by looking at " +"the display URL. The last part of http://example.com/display/123456 is the " +"GUID, here 123456." +msgstr "Vous devez connaître le GUID de l'élément. Vous pouvez le trouver en sélectionnant l'élément puis en lisant l'URL. La dernière partie de l'URL est le GUID. Exemple: http://example.com/display/123456 a pour GUID: 123456." + +#: src/Module/Admin/Item/Delete.php:51 +msgid "GUID" +msgstr "GUID" + +#: src/Module/Admin/Item/Delete.php:51 +msgid "The GUID of the item you want to delete." +msgstr "GUID de l'élément à supprimer." + +#: src/Module/Admin/Item/Source.php:46 src/Module/Itemsource.php:46 +msgid "Item Guid" +msgstr "" + +#: src/Module/Admin/Logs/Settings.php:30 +msgid "Log settings updated." +msgstr "Réglages des journaux mis-à-jour." + +#: src/Module/Admin/Logs/Settings.php:49 +msgid "PHP log currently enabled." +msgstr "Log PHP actuellement activé." + +#: src/Module/Admin/Logs/Settings.php:51 +msgid "PHP log currently disabled." +msgstr "Log PHP actuellement desactivé." + +#: src/Module/Admin/Logs/Settings.php:58 src/Module/BaseAdminModule.php:97 +#: src/Module/BaseAdminModule.php:98 +msgid "Logs" +msgstr "Journaux" + +#: src/Module/Admin/Logs/Settings.php:60 +msgid "Clear" +msgstr "Effacer" + +#: src/Module/Admin/Logs/Settings.php:64 +msgid "Enable Debugging" +msgstr "Activer le déboggage" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "Log file" +msgstr "Fichier de journaux" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica." + +#: src/Module/Admin/Logs/Settings.php:66 +msgid "Log level" +msgstr "Niveau de journalisaton" + +#: src/Module/Admin/Logs/Settings.php:68 +msgid "PHP logging" +msgstr "Log PHP" + +#: src/Module/Admin/Logs/Settings.php:69 +msgid "" +"To temporarily enable logging of PHP errors and warnings you can prepend the" +" following to the index.php file of your installation. The filename set in " +"the 'error_log' line is relative to the friendica top-level directory and " +"must be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "Pour activer temporairement la journalisation de PHP vous pouvez insérez les lignes suivantes au début du fichier index.php dans votre répertoire Friendica. The nom de fichier défini dans la ligne 'error_log' est relatif au répertoire d'installation de Friendica et le serveur web doit avoir le droit d'écriture sur ce fichier. Les lignes log_errors et display_errors prennent les valeurs 0 et 1 respectivement pour les activer ou désactiver." + +#: src/Module/Admin/Logs/View.php:22 +#, php-format +msgid "" +"Error trying to open %1$s log file.\\r\\n
    Check to see " +"if file %1$s exist and is readable." +msgstr "Erreur lors de l'ouverture du fichier de journal %1$s.\\r\\n
    Veuillez vérifier que le fichier %1$s existe et que le serveur web a le droit de lecture dessus." + +#: src/Module/Admin/Logs/View.php:26 +#, php-format +msgid "" +"Couldn't open %1$s log file.\\r\\n
    Check to see if file" +" %1$s is readable." +msgstr "Erreur lors de l'ouverture du fichier de journal %1$s.\\r\\n
    Veuillez vérifier que le fichier %1$s existe et que le serveur web a le droit de lecture dessus." + +#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99 +msgid "View Logs" +msgstr "Voir les logs" + +#: src/Module/Admin/Queue.php:34 +msgid "Inspect Deferred Worker Queue" +msgstr "Détail des tâches de fond reportées" + +#: src/Module/Admin/Queue.php:35 +msgid "" +"This page lists the deferred worker jobs. This are jobs that couldn't be " +"executed at the first time." +msgstr "Cette page détaille les tâches de fond reportées après avoir échoué une première fois." + +#: src/Module/Admin/Queue.php:38 +msgid "Inspect Worker Queue" +msgstr "Détail des tâches de fond en attente" + +#: src/Module/Admin/Queue.php:39 +msgid "" +"This page lists the currently queued worker jobs. These jobs are handled by " +"the worker cronjob you've set up during install." +msgstr "Cette page détaille les tâches de fond en attente. Elles seront traitées lors de la prochaine exécution de la tâche planifiée que vous avez définie lors de l'installation." + +#: src/Module/Admin/Queue.php:59 +msgid "ID" +msgstr "ID" + +#: src/Module/Admin/Queue.php:60 +msgid "Job Parameters" +msgstr "Paramètres de la tâche" + +#: src/Module/Admin/Queue.php:61 +msgid "Created" +msgstr "Créé" + +#: src/Module/Admin/Queue.php:62 +msgid "Priority" +msgstr "Priorité" + +#: src/Module/Admin/Site.php:49 +msgid "Can not parse base url. Must have at least ://" +msgstr "Impossible d'analyser l'URL de base. Doit contenir au moins ://" + +#: src/Module/Admin/Site.php:235 +msgid "Invalid storage backend setting value." +msgstr "" + +#: src/Module/Admin/Site.php:412 +msgid "Site settings updated." +msgstr "Réglages du site mis-à-jour." + +#: src/Module/Admin/Site.php:464 +msgid "No community page for local users" +msgstr "Pas de page communauté pour les utilisateurs enregistrés" + +#: src/Module/Admin/Site.php:465 +msgid "No community page" +msgstr "Aucune page de communauté" + +#: src/Module/Admin/Site.php:466 +msgid "Public postings from users of this site" +msgstr "Publications publiques des utilisateurs de ce site" + +#: src/Module/Admin/Site.php:467 +msgid "Public postings from the federated network" +msgstr "Publications publiques du réseau fédéré" + +#: src/Module/Admin/Site.php:468 +msgid "Public postings from local users and the federated network" +msgstr "Publications publiques des utilisateurs du site et du réseau fédéré" + +#: src/Module/Admin/Site.php:472 src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:678 src/Module/Contact.php:549 +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Disabled" +msgstr "Désactivé" + +#: src/Module/Admin/Site.php:473 src/Module/Admin/Users.php:278 +#: src/Module/Admin/Users.php:295 src/Module/BaseAdminModule.php:81 +msgid "Users" +msgstr "Utilisateurs" + +#: src/Module/Admin/Site.php:474 +msgid "Users, Global Contacts" +msgstr "Utilisateurs, Contacts Globaux" + +#: src/Module/Admin/Site.php:475 +msgid "Users, Global Contacts/fallback" +msgstr "Utilisateurs, Contacts Globaux/alternative" + +#: src/Module/Admin/Site.php:479 +msgid "One month" +msgstr "Un mois" + +#: src/Module/Admin/Site.php:480 +msgid "Three months" +msgstr "Trois mois" + +#: src/Module/Admin/Site.php:481 +msgid "Half a year" +msgstr "Six mois" + +#: src/Module/Admin/Site.php:482 +msgid "One year" +msgstr "Un an" + +#: src/Module/Admin/Site.php:488 +msgid "Multi user instance" +msgstr "Instance multi-utilisateurs" + +#: src/Module/Admin/Site.php:510 +msgid "Closed" +msgstr "Fermé" + +#: src/Module/Admin/Site.php:511 +msgid "Requires approval" +msgstr "Demande une apptrobation" + +#: src/Module/Admin/Site.php:512 +msgid "Open" +msgstr "Ouvert" + +#: src/Module/Admin/Site.php:516 src/Module/Install.php:181 +msgid "No SSL policy, links will track page SSL state" +msgstr "Pas de politique SSL, le liens conserveront l'état SSL de la page" + +#: src/Module/Admin/Site.php:517 src/Module/Install.php:182 +msgid "Force all links to use SSL" +msgstr "Forcer tous les liens à utiliser SSL" + +#: src/Module/Admin/Site.php:518 src/Module/Install.php:183 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)" + +#: src/Module/Admin/Site.php:522 +msgid "Don't check" +msgstr "Ne pas rechercher" + +#: src/Module/Admin/Site.php:523 +msgid "check the stable version" +msgstr "Rechercher les versions stables" + +#: src/Module/Admin/Site.php:524 +msgid "check the development version" +msgstr "Rechercher les versions de développement" + +#: src/Module/Admin/Site.php:544 +msgid "Database (legacy)" +msgstr "Base de donnée (historique)" + +#: src/Module/Admin/Site.php:569 src/Module/BaseAdminModule.php:80 +msgid "Site" +msgstr "Site" + +#: src/Module/Admin/Site.php:571 +msgid "Republish users to directory" +msgstr "Republier les utilisateurs sur le répertoire" + +#: src/Module/Admin/Site.php:572 src/Module/Register.php:121 +msgid "Registration" +msgstr "Inscription" + +#: src/Module/Admin/Site.php:573 +msgid "File upload" +msgstr "Téléversement de fichier" + +#: src/Module/Admin/Site.php:574 +msgid "Policies" +msgstr "Politiques" + +#: src/Module/Admin/Site.php:576 +msgid "Auto Discovered Contact Directory" +msgstr "Répertoire de Contacts Découverts Automatiquement" + +#: src/Module/Admin/Site.php:577 +msgid "Performance" +msgstr "Performance" + +#: src/Module/Admin/Site.php:578 +msgid "Worker" +msgstr "Worker" + +#: src/Module/Admin/Site.php:579 +msgid "Message Relay" +msgstr "Relai de publication" + +#: src/Module/Admin/Site.php:580 +msgid "Relocate Instance" +msgstr "Déménager le site" + +#: src/Module/Admin/Site.php:581 +msgid "Warning! Advanced function. Could make this server unreachable." +msgstr "Attention! Cette fonctionnalité avancée peut rendre votre site inaccessible." + +#: src/Module/Admin/Site.php:585 +msgid "Site name" +msgstr "Nom du site" + +#: src/Module/Admin/Site.php:586 +msgid "Sender Email" +msgstr "Courriel de l'émetteur" + +#: src/Module/Admin/Site.php:586 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "L'adresse courriel à partir de laquelle votre serveur enverra des courriels." + +#: src/Module/Admin/Site.php:587 +msgid "Banner/Logo" +msgstr "Bannière/Logo" + +#: src/Module/Admin/Site.php:588 +msgid "Shortcut icon" +msgstr "Icône de raccourci" + +#: src/Module/Admin/Site.php:588 +msgid "Link to an icon that will be used for browsers." +msgstr "Lien vers une icône qui sera utilisée pour les navigateurs." + +#: src/Module/Admin/Site.php:589 +msgid "Touch icon" +msgstr "Icône pour systèmes tactiles" + +#: src/Module/Admin/Site.php:589 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Lien vers une icône qui sera utilisée pour les tablettes et les mobiles." + +#: src/Module/Admin/Site.php:590 +msgid "Additional Info" +msgstr "Informations supplémentaires" + +#: src/Module/Admin/Site.php:590 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/servers." +msgstr "Description publique destinée au répertoire global de sites Friendica." + +#: src/Module/Admin/Site.php:591 +msgid "System language" +msgstr "Langue du système" + +#: src/Module/Admin/Site.php:592 +msgid "System theme" +msgstr "Thème du système" + +#: src/Module/Admin/Site.php:592 +msgid "" +"Default system theme - may be over-ridden by user profiles - Change default theme settings" +msgstr "" + +#: src/Module/Admin/Site.php:593 +msgid "Mobile system theme" +msgstr "Thème mobile" + +#: src/Module/Admin/Site.php:593 +msgid "Theme for mobile devices" +msgstr "Thème pour les terminaux mobiles" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:191 +msgid "SSL link policy" +msgstr "Politique SSL pour les liens" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:193 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Détermine si les liens générés doivent forcer l'utilisation de SSL" + +#: src/Module/Admin/Site.php:595 +msgid "Force SSL" +msgstr "SSL obligatoire" + +#: src/Module/Admin/Site.php:595 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Redirige toutes les requêtes en clair vers des requêtes SSL. Attention : sur certains systèmes cela peut conduire à des boucles de redirection infinies." + +#: src/Module/Admin/Site.php:596 +msgid "Hide help entry from navigation menu" +msgstr "Cacher l'aide du menu de navigation" + +#: src/Module/Admin/Site.php:596 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Cacher du menu de navigation l'entrée vers les pages d'aide. Vous pouvez toujours y accéder en tapant directement /help." + +#: src/Module/Admin/Site.php:597 +msgid "Single user instance" +msgstr "Instance mono-utilisateur" + +#: src/Module/Admin/Site.php:597 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Transformer cette en instance en multi-utilisateur ou mono-utilisateur pour cet l'utilisateur." + +#: src/Module/Admin/Site.php:599 +msgid "File storage backend" +msgstr "Destination du stockage de fichier" + +#: src/Module/Admin/Site.php:599 +msgid "" +"The backend used to store uploaded data. If you change the storage backend, " +"you can manually move the existing files. If you do not do so, the files " +"uploaded before the change will still be available at the old backend. " +"Please see the settings documentation" +" for more information about the choices and the moving procedure." +msgstr "La destination du stockage des fichiers. Si vous changez cette destination, vous pouvez migrer les fichiers existants. Si vous ne le faites pas, ils resteront accessibles à leur emplacement actuel. Veuillez consulter la page d'aide à la Configuration (en anglais) pour plus d'information sur les choix possibles et la procédure de migration." + +#: src/Module/Admin/Site.php:601 +msgid "Maximum image size" +msgstr "Taille maximale des images" + +#: src/Module/Admin/Site.php:601 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Taille maximale des images envoyées (en octets). 0 par défaut, c'est à dire \"aucune limite\"." + +#: src/Module/Admin/Site.php:602 +msgid "Maximum image length" +msgstr "Longueur maximale des images" + +#: src/Module/Admin/Site.php:602 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Longueur maximale en pixels du plus long côté des images téléversées. La valeur par défaut est -1 : absence de limite." + +#: src/Module/Admin/Site.php:603 +msgid "JPEG image quality" +msgstr "Qualité JPEG des images" + +#: src/Module/Admin/Site.php:603 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Les JPEGs téléversés seront sauvegardés avec ce niveau de qualité [0-100]. La valeur par défaut est 100, soit la qualité maximale." + +#: src/Module/Admin/Site.php:605 +msgid "Register policy" +msgstr "Politique d'inscription" + +#: src/Module/Admin/Site.php:606 +msgid "Maximum Daily Registrations" +msgstr "Inscriptions maximum par jour" + +#: src/Module/Admin/Site.php:606 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "Si les inscriptions sont permises ci-dessus, ceci fixe le nombre maximum d'inscriptions de nouveaux utilisateurs acceptées par jour. Si les inscriptions ne sont pas ouvertes, ce paramètre n'a aucun effet." + +#: src/Module/Admin/Site.php:607 +msgid "Register text" +msgstr "Texte d'inscription" + +#: src/Module/Admin/Site.php:607 +msgid "" +"Will be displayed prominently on the registration page. You can use BBCode " +"here." +msgstr "Ce texte est affiché sur la page d'inscription. Les BBCodes sont autorisés." + +#: src/Module/Admin/Site.php:608 +msgid "Forbidden Nicknames" +msgstr "Identifiants réservés" + +#: src/Module/Admin/Site.php:608 +msgid "" +"Comma separated list of nicknames that are forbidden from registration. " +"Preset is a list of role names according RFC 2142." +msgstr "Liste d'identifiants réservés séparés par des virgules. Ces identifiants ne peuvent pas être utilisés pour s'enregistrer. La liste de base provient de la RFC 2142." + +#: src/Module/Admin/Site.php:609 +msgid "Accounts abandoned after x days" +msgstr "Les comptes sont abandonnés après x jours" + +#: src/Module/Admin/Site.php:609 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction." + +#: src/Module/Admin/Site.php:610 +msgid "Allowed friend domains" +msgstr "Domaines autorisés" + +#: src/Module/Admin/Site.php:610 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Une liste de domaines, séparés par des virgules, autorisés à établir des relations avec les utilisateurs de ce site. Les '*' sont acceptés. Laissez vide pour autoriser tous les domaines" + +#: src/Module/Admin/Site.php:611 +msgid "Allowed email domains" +msgstr "Domaines courriel autorisés" + +#: src/Module/Admin/Site.php:611 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Liste de domaines - séparés par des virgules - dont les adresses e-mail sont autorisées à s'inscrire sur ce site. Les '*' sont acceptées. Laissez vide pour autoriser tous les domaines" + +#: src/Module/Admin/Site.php:612 +msgid "No OEmbed rich content" +msgstr "Désactiver le texte riche avec OEmbed" + +#: src/Module/Admin/Site.php:612 +msgid "" +"Don't show the rich content (e.g. embedded PDF), except from the domains " +"listed below." +msgstr "Evite le contenu riche avec OEmbed (comme un document PDF incrusté), sauf provenant des domaines autorisés listés ci-après." + +#: src/Module/Admin/Site.php:613 +msgid "Allowed OEmbed domains" +msgstr "Domaines autorisés pour OEmbed" + +#: src/Module/Admin/Site.php:613 +msgid "" +"Comma separated list of domains which oembed content is allowed to be " +"displayed. Wildcards are accepted." +msgstr "Liste de noms de domaine séparés par des virgules. Ces domaines peuvent afficher du contenu riche avec OEmbed." + +#: src/Module/Admin/Site.php:614 +msgid "Block public" +msgstr "Interdire la publication globale" + +#: src/Module/Admin/Site.php:614 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Cocher pour bloquer les accès anonymes (non-connectés) à tout sauf aux pages personnelles publiques." + +#: src/Module/Admin/Site.php:615 +msgid "Force publish" +msgstr "Forcer la publication globale" + +#: src/Module/Admin/Site.php:615 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Cocher pour publier obligatoirement tous les profils locaux dans l'annuaire du site." + +#: src/Module/Admin/Site.php:615 +msgid "Enabling this may violate privacy laws like the GDPR" +msgstr "Activer cette option peut potentiellement enfreindre les lois sur la protection de la vie privée comme le RGPD." + +#: src/Module/Admin/Site.php:616 +msgid "Global directory URL" +msgstr "URL de l'annuaire global" + +#: src/Module/Admin/Site.php:616 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "URL de l'annuaire global. Si ce champ n'est pas défini, l'annuaire global sera complètement indisponible pour l'application." + +#: src/Module/Admin/Site.php:617 +msgid "Private posts by default for new users" +msgstr "Publications privées par défaut pour les nouveaux utilisateurs" + +#: src/Module/Admin/Site.php:617 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Rendre les publications de tous les nouveaux utilisateurs accessibles seulement par le groupe de contacts par défaut, et non par tout le monde." + +#: src/Module/Admin/Site.php:618 +msgid "Don't include post content in email notifications" +msgstr "Ne pas inclure le contenu posté dans l'e-mail de notification" + +#: src/Module/Admin/Site.php:618 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "Ne pas inclure le contenu de publication/commentaire/message privé/etc dans l'e-mail de notification qui est envoyé à partir du site, par mesure de confidentialité." + +#: src/Module/Admin/Site.php:619 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Interdire l’accès public pour les greffons listées dans le menu apps." + +#: src/Module/Admin/Site.php:619 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Cocher cette case restreint la liste des greffons dans le menu des applications seulement aux membres." + +#: src/Module/Admin/Site.php:620 +msgid "Don't embed private images in posts" +msgstr "Ne pas miniaturiser les images privées dans les publications" + +#: src/Module/Admin/Site.php:620 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Ne remplacez pas les images privées hébergées localement dans les publications avec une image attaché en copie, car cela signifie que le contact qui reçoit les publications contenant ces photos privées devra s’authentifier pour charger chaque image, ce qui peut prendre du temps." + +#: src/Module/Admin/Site.php:621 +msgid "Explicit Content" +msgstr "Contenu adulte" + +#: src/Module/Admin/Site.php:621 +msgid "" +"Set this to announce that your node is used mostly for explicit content that" +" might not be suited for minors. This information will be published in the " +"node information and might be used, e.g. by the global directory, to filter " +"your node from listings of nodes to join. Additionally a note about this " +"will be shown at the user registration page." +msgstr "Activez cette option si votre site est principalement utilisé pour publier du contenu adulte. Cette information est publique et peut être utilisée pour filtrer votre site dans le répertoire de site global. Elle est également affichée sur la page d'inscription." + +#: src/Module/Admin/Site.php:622 +msgid "Allow Users to set remote_self" +msgstr "Autoriser les utilisateurs à définir remote_self" + +#: src/Module/Admin/Site.php:622 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "Cocher cette case, permet à chaque utilisateur de marquer chaque contact comme un remote_self dans la boîte de dialogue de réparation des contacts. Activer cette fonction à un contact engendre la réplique de toutes les publications d'un contact dans le flux d'activités des utilisateurs." + +#: src/Module/Admin/Site.php:623 +msgid "Block multiple registrations" +msgstr "Interdire les inscriptions multiples" + +#: src/Module/Admin/Site.php:623 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Ne pas permettre l'inscription de comptes multiples comme des pages." + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID" +msgstr "Désactiver OpenID" + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID support for registration and logins." +msgstr "Désactive OpenID pour l'inscription et l'identification." + +#: src/Module/Admin/Site.php:625 +msgid "No Fullname check" +msgstr "Désactiver l'obligation de nom complet" + +#: src/Module/Admin/Site.php:625 +msgid "" +"Allow users to register without a space between the first name and the last " +"name in their full name." +msgstr "Supprime l'obligation d'avoir au moins un espace dans le nom complet des utilisateurs pour séparer leur prénom et nom de famille." + +#: src/Module/Admin/Site.php:626 +msgid "Community pages for visitors" +msgstr "Affichage de la page communauté pour les utilisateurs anonymes" + +#: src/Module/Admin/Site.php:626 +msgid "" +"Which community pages should be available for visitors. Local users always " +"see both pages." +msgstr "Quelles pages communauté sont disponibles pour les utilisateurs anonymes." + +#: src/Module/Admin/Site.php:627 +msgid "Posts per user on community page" +msgstr "Nombre de publications par utilisateur sur la page de la communauté (n'est pas valide pour " + +#: src/Module/Admin/Site.php:627 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"\"Global Community\")" +msgstr "" + +#: src/Module/Admin/Site.php:628 +msgid "Disable OStatus support" +msgstr "Désactiver OStatus" + +#: src/Module/Admin/Site.php:628 +msgid "" +"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Désactive le support natif d'OStatus (StatusNet, GNU Social, etc...). Toutes les communications via OStatus sont publiques, donc des avertissements de protection de vie privée sont régulièrement affichés." + +#: src/Module/Admin/Site.php:629 +msgid "Only import OStatus/ActivityPub threads from our contacts" +msgstr "Importer seulement les conversations OStatus/ActivityPub provenant de profils distants connus." + +#: src/Module/Admin/Site.php:629 +msgid "" +"Normally we import every content from our OStatus and ActivityPub contacts. " +"With this option we only store threads that are started by a contact that is" +" known on our system." +msgstr "Normalement toutes les conversations auxquelles les contacts suivis participent sont importées en entier peu importe l'auteur original. Avec cette option, seules les conversations démarrées par un contact suivi sont importées." + +#: src/Module/Admin/Site.php:630 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée." + +#: src/Module/Admin/Site.php:632 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire." + +#: src/Module/Admin/Site.php:633 +msgid "Enable Diaspora support" +msgstr "Activer le support de Diaspora" + +#: src/Module/Admin/Site.php:633 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Fournir une compatibilité Diaspora intégrée." + +#: src/Module/Admin/Site.php:634 +msgid "Only allow Friendica contacts" +msgstr "N'autoriser que les contacts Friendica" + +#: src/Module/Admin/Site.php:634 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "Tous les contacts doivent utiliser les protocoles de Friendica. Tous les autres protocoles de communication intégrés sont désactivés." + +#: src/Module/Admin/Site.php:635 +msgid "Verify SSL" +msgstr "Vérifier SSL" + +#: src/Module/Admin/Site.php:635 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "Si vous le souhaitez, vous pouvez activier la vérification stricte des certificats. Cela signifie que vous ne pourrez pas vous connecter (du tout) aux sites SSL munis d'un certificat auto-signé." + +#: src/Module/Admin/Site.php:636 +msgid "Proxy user" +msgstr "Utilisateur du proxy" + +#: src/Module/Admin/Site.php:637 +msgid "Proxy URL" +msgstr "URL du proxy" + +#: src/Module/Admin/Site.php:638 +msgid "Network timeout" +msgstr "Dépassement du délai d'attente du réseau" + +#: src/Module/Admin/Site.php:638 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Valeur en secondes. Mettre à 0 pour 'illimité' (pas recommandé)." + +#: src/Module/Admin/Site.php:639 +msgid "Maximum Load Average" +msgstr "Plafond de la charge moyenne" + +#: src/Module/Admin/Site.php:639 +#, php-format +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default %d." +msgstr "" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum Load Average (Frontend)" +msgstr "Plafond de la charge moyenne (frontale)" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Limite de charge système pour le rendu des pages - défaut 50." + +#: src/Module/Admin/Site.php:641 +msgid "Minimal Memory" +msgstr "Mémoire minimum" + +#: src/Module/Admin/Site.php:641 +msgid "" +"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " +"default 0 (deactivated)." +msgstr "Mémoire libre minimale pour les tâches de fond (en Mo). Requiert l'accès à /proc/meminfo. La valeur par défaut est 0 (désactivé)." + +#: src/Module/Admin/Site.php:642 +msgid "Maximum table size for optimization" +msgstr "Limite de taille de table pour l'optimisation" + +#: src/Module/Admin/Site.php:642 +msgid "" +"Maximum table size (in MB) for the automatic optimization. Enter -1 to " +"disable it." +msgstr "Limite de taille de table (en Mo) pour l'optimisation automatique. -1 pour désactiver cette limite." + +#: src/Module/Admin/Site.php:643 +msgid "Minimum level of fragmentation" +msgstr "Seuil de fragmentation" + +#: src/Module/Admin/Site.php:643 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Seuil de fragmentation pour que l'optimisation automatique se déclenche - défaut 30%." + +#: src/Module/Admin/Site.php:645 +msgid "Periodical check of global contacts" +msgstr "Vérification périodique des contacts globaux" + +#: src/Module/Admin/Site.php:645 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux." + +#: src/Module/Admin/Site.php:646 +msgid "Days between requery" +msgstr "Nombre de jours entre les requêtes" + +#: src/Module/Admin/Site.php:646 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur." + +#: src/Module/Admin/Site.php:647 +msgid "Discover contacts from other servers" +msgstr "Découvrir des contacts des autres serveurs" + +#: src/Module/Admin/Site.php:647 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"\"Users\": the users on the remote system, \"Global Contacts\": active " +"contacts that are known on the system. The fallback is meant for Redmatrix " +"servers and older friendica servers, where global contacts weren't " +"available. The fallback increases the server load, so the recommended " +"setting is \"Users, Global Contacts\"." +msgstr "" + +#: src/Module/Admin/Site.php:648 +msgid "Timeframe for fetching global contacts" +msgstr "Fréquence de récupération des contacts globaux" + +#: src/Module/Admin/Site.php:648 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "Quand la découverte de contacts est activée, cette valeur détermine la fréquence de récupération des données des contacts globaux présents sur d'autres serveurs." + +#: src/Module/Admin/Site.php:649 +msgid "Search the local directory" +msgstr "Chercher dans le répertoire local" + +#: src/Module/Admin/Site.php:649 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Cherche dans le répertoire local au lieu du répertoire local. Quand une recherche locale est effectuée, la même recherche est effectuée dans le répertoire global en tâche de fond. Cela améliore les résultats de la recherche si elle est réitérée." + +#: src/Module/Admin/Site.php:651 +msgid "Publish server information" +msgstr "Publier les informations du serveur" + +#: src/Module/Admin/Site.php:651 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "" + +#: src/Module/Admin/Site.php:653 +msgid "Check upstream version" +msgstr "Mises à jour" + +#: src/Module/Admin/Site.php:653 +msgid "" +"Enables checking for new Friendica versions at github. If there is a new " +"version, you will be informed in the admin panel overview." +msgstr "Permet de vérifier la présence de nouvelles versions de Friendica sur github. Si une nouvelle version est disponible, vous recevrez une notification dans l'interface d'administration." + +#: src/Module/Admin/Site.php:654 +msgid "Suppress Tags" +msgstr "Masquer les tags" + +#: src/Module/Admin/Site.php:654 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Ne pas afficher la liste des hashtags à la fin d’un message." + +#: src/Module/Admin/Site.php:655 +msgid "Clean database" +msgstr "Nettoyer la base de données" + +#: src/Module/Admin/Site.php:655 +msgid "" +"Remove old remote items, orphaned database records and old content from some" +" other helper tables." +msgstr "Supprime les conversations distantes anciennes, les enregistrements orphelins et le contenu obsolète de certaines tables de débogage." + +#: src/Module/Admin/Site.php:656 +msgid "Lifespan of remote items" +msgstr "Durée de vie des conversations distantes" + +#: src/Module/Admin/Site.php:656 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"remote items will be deleted. Own items, and marked or filed items are " +"always kept. 0 disables this behaviour." +msgstr "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations distantes sont supprimées. Les conversations démarrées par un utilisateur local, étoilées ou archivées sont toujours conservées. 0 pour désactiver." + +#: src/Module/Admin/Site.php:657 +msgid "Lifespan of unclaimed items" +msgstr "Durée de vie des conversations relayées" + +#: src/Module/Admin/Site.php:657 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"unclaimed remote items (mostly content from the relay) will be deleted. " +"Default value is 90 days. Defaults to the general lifespan value of remote " +"items if set to 0." +msgstr "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations relayées qui n'ont pas reçu d'interactions locales sont supprimées. La valeur par défaut est 90 jours. 0 pour aligner cette valeur sur la durée de vie des conversations distantes." + +#: src/Module/Admin/Site.php:658 +msgid "Lifespan of raw conversation data" +msgstr "Durée de vie des méta-données de conversation" + +#: src/Module/Admin/Site.php:658 +msgid "" +"The conversation data is used for ActivityPub and OStatus, as well as for " +"debug purposes. It should be safe to remove it after 14 days, default is 90 " +"days." +msgstr "Cette valeur représente le délai en jours après lequel les méta-données de conversations sont supprimées. Ces méta-données sont utilisées par les protocoles ActivityPub et OStatus, et pour le débogage. Il est prudent de conserver ces meta-données pendant au moins 14 jours. La valeur par défaut est 90 jours." + +#: src/Module/Admin/Site.php:659 +msgid "Path to item cache" +msgstr "Chemin vers le cache des objets." + +#: src/Module/Admin/Site.php:659 +msgid "The item caches buffers generated bbcode and external images." +msgstr "Le cache de publications contient des textes HTML de BBCode compil's et une copie de chaque image distante." + +#: src/Module/Admin/Site.php:660 +msgid "Cache duration in seconds" +msgstr "Durée du cache en secondes" + +#: src/Module/Admin/Site.php:660 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "Combien de temps les fichiers de cache doivent être maintenu? La valeur par défaut est 86400 secondes (une journée). Pour désactiver le cache de l'item, définissez la valeur à -1." + +#: src/Module/Admin/Site.php:661 +msgid "Maximum numbers of comments per post" +msgstr "Nombre maximum de commentaires par publication" + +#: src/Module/Admin/Site.php:661 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "Combien de commentaires doivent être affichés pour chaque publication? Valeur par défaut: 100." + +#: src/Module/Admin/Site.php:662 +msgid "Temp path" +msgstr "Chemin des fichiers temporaires" + +#: src/Module/Admin/Site.php:662 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "Si vous n'avez pas la possibilité d'avoir accès au répertoire temp, entrez un autre répertoire ici." + +#: src/Module/Admin/Site.php:663 +msgid "Disable picture proxy" +msgstr "Désactiver le proxy image " + +#: src/Module/Admin/Site.php:663 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwidth." +msgstr "Le proxy d'image améliore les performances d'affichage et protège la vie privée des utilisateurs locaux. Il n'est pas recommandé de l'activer sur un serveur avec une bande passante limitée." + +#: src/Module/Admin/Site.php:664 +msgid "Only search in tags" +msgstr "Rechercher seulement dans les étiquettes" + +#: src/Module/Admin/Site.php:664 +msgid "On large systems the text search can slow down the system extremely." +msgstr "La recherche textuelle peut ralentir considérablement les systèmes de grande taille." + +#: src/Module/Admin/Site.php:666 +msgid "New base url" +msgstr "Nouvelle URL de base" + +#: src/Module/Admin/Site.php:666 +msgid "" +"Change base url for this server. Sends relocate message to all Friendica and" +" Diaspora* contacts of all users." +msgstr "Changer l'URL de base de ce serveur. Envoie un message de déménagement à tous les contacts Friendica et Diaspora des utilisateurs locaux." + +#: src/Module/Admin/Site.php:668 +msgid "RINO Encryption" +msgstr "Chiffrement RINO" + +#: src/Module/Admin/Site.php:668 +msgid "Encryption layer between nodes." +msgstr "Couche de chiffrement entre les nœuds du réseau." + +#: src/Module/Admin/Site.php:668 +msgid "Enabled" +msgstr "Activé" + +#: src/Module/Admin/Site.php:670 +msgid "Maximum number of parallel workers" +msgstr "Nombre maximum de processus simultanés" + +#: src/Module/Admin/Site.php:670 +#, php-format +msgid "" +"On shared hosters set this to %d. On larger systems, values of %d are great." +" Default value is %d." +msgstr "Sur un hébergement partagé, mettez %d. Sur des serveurs plus puissants, %d est optimal. La valeur par défaut est %d." + +#: src/Module/Admin/Site.php:671 +msgid "Don't use \"proc_open\" with the worker" +msgstr "" + +#: src/Module/Admin/Site.php:671 +msgid "" +"Enable this if your system doesn't allow the use of \"proc_open\". This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of worker calls in your crontab." +msgstr "" + +#: src/Module/Admin/Site.php:672 +msgid "Enable fastlane" +msgstr "Activer la file prioritaire" + +#: src/Module/Admin/Site.php:672 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "La file prioritaire est un ouvrier additionel démarré quand des tâches de fondde grande importance sont bloquées par des tâches de moindre importance dans la file d'attente." + +#: src/Module/Admin/Site.php:673 +msgid "Enable frontend worker" +msgstr "Activer l'ouvrier manuel" + +#: src/Module/Admin/Site.php:673 +#, php-format +msgid "" +"When enabled the Worker process is triggered when backend access is " +"performed (e.g. messages being delivered). On smaller sites you might want " +"to call %s/worker on a regular basis via an external cron job. You should " +"only enable this option if you cannot utilize cron/scheduled jobs on your " +"server." +msgstr "" + +#: src/Module/Admin/Site.php:675 +msgid "Subscribe to relay" +msgstr "S'abonner au relai" + +#: src/Module/Admin/Site.php:675 +msgid "" +"Enables the receiving of public posts from the relay. They will be included " +"in the search, subscribed tags and on the global community page." +msgstr "Active la réception de conversations publiques relayées. Elles sont affichées dans la page de recherche, les recherches enregistrées et dans la page de communauté globale." + +#: src/Module/Admin/Site.php:676 +msgid "Relay server" +msgstr "Serveur relai" + +#: src/Module/Admin/Site.php:676 +msgid "" +"Address of the relay server where public posts should be send to. For " +"example https://relay.diasp.org" +msgstr "URL du serveur relai auquel les conversations publique locales doivent être soumises." + +#: src/Module/Admin/Site.php:677 +msgid "Direct relay transfer" +msgstr "Relai direct" + +#: src/Module/Admin/Site.php:677 +msgid "" +"Enables the direct transfer to other servers without using the relay servers" +msgstr "Soumet les conversations publiques aux serveurs distants sans passer par le serveur relai." + +#: src/Module/Admin/Site.php:678 +msgid "Relay scope" +msgstr "Filtre du relai" + +#: src/Module/Admin/Site.php:678 +msgid "" +"Can be \"all\" or \"tags\". \"all\" means that every public post should be " +"received. \"tags\" means that only posts with selected tags should be " +"received." +msgstr "" + +#: src/Module/Admin/Site.php:678 +msgid "all" +msgstr "Tous" + +#: src/Module/Admin/Site.php:678 +msgid "tags" +msgstr "Tags" + +#: src/Module/Admin/Site.php:679 +msgid "Server tags" +msgstr "Tags de filtre du relai" + +#: src/Module/Admin/Site.php:679 +msgid "Comma separated list of tags for the \"tags\" subscription." +msgstr "" + +#: src/Module/Admin/Site.php:680 +msgid "Allow user tags" +msgstr "Inclure les tags des utilisateurs" + +#: src/Module/Admin/Site.php:680 +msgid "" +"If enabled, the tags from the saved searches will used for the \"tags\" " +"subscription in addition to the \"relay_server_tags\"." +msgstr "" + +#: src/Module/Admin/Site.php:683 +msgid "Start Relocation" +msgstr "Démarrer le déménagement" + +#: src/Module/Admin/Summary.php:30 +#, php-format +msgid "" +"Your DB still runs with MyISAM tables. You should change the engine type to " +"InnoDB. As Friendica will use InnoDB only features in the future, you should" +" change this! See here for a guide that may be helpful " +"converting the table engines. You may also use the command php " +"bin/console.php dbstructure toinnodb of your Friendica installation for" +" an automatic conversion.
    " +msgstr "
    Votre base de donnée comporte des tables MYISAM. Vous devriez changer pour InnoDB car il est prévu d'utiliser des fonctionnalités spécifiques à InnoDB à l'avenir. Veuillez consulter ce guide de conversion pour mettre à jour votre base de donnée. Vous pouvez également exécuter la commande php bin/console.php dbstructure toinnodb à la racine de votre répertoire Friendica pour une conversion automatique." + +#: src/Module/Admin/Summary.php:38 +#, php-format +msgid "" +"There is a new version of Friendica available for download. Your current " +"version is %1$s, upstream version is %2$s" +msgstr "Une nouvelle version de Friendica est disponible. Votre version est %1$s, la nouvelle version est %2$s" + +#: src/Module/Admin/Summary.php:47 +msgid "" +"The database update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear." +msgstr "La mise à jour automatique de la base de donnée a échoué. Veuillez exécuter la commande php bin/console.php dbstructure update depuis votre répertoire Friendica et noter les erreurs potentielles." + +#: src/Module/Admin/Summary.php:51 +msgid "" +"The last update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear. (Some of the errors are possibly inside the logfile.)" +msgstr "" + +#: src/Module/Admin/Summary.php:56 +msgid "The worker was never executed. Please check your database structure!" +msgstr "Le 'worker' n'a pas encore été exécuté. Vérifiez la structure de votre base de données." + +#: src/Module/Admin/Summary.php:58 +#, php-format +msgid "" +"The last worker execution was on %s UTC. This is older than one hour. Please" +" check your crontab settings." +msgstr "La dernière exécution du 'worker' s'est déroulée à %s, c'est-à-dire il y a plus d'une heure. Vérifiez les réglages de crontab." + +#: src/Module/Admin/Summary.php:63 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +".htconfig.php. See the Config help page for " +"help with the transition." +msgstr "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier .htconfig.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition." + +#: src/Module/Admin/Summary.php:67 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +"config/local.ini.php. See the Config help " +"page for help with the transition." +msgstr "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier config/local.ini.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition." + +#: src/Module/Admin/Summary.php:73 +#, php-format +msgid "" +"%s is not reachable on your system. This is a severe " +"configuration issue that prevents server to server communication. See the installation page for help." +msgstr "%s n'est pas accessible sur votre site. C'est un problème de configuration sévère qui empêche toute communication avec les serveurs distants. Veuillez consulter la page d'aide à l'installation (en anglais) pour plus d'information." + +#: src/Module/Admin/Summary.php:89 +#, php-format +msgid "" +"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the" +" system.basepath from your db to avoid differences." +msgstr "" + +#: src/Module/Admin/Summary.php:97 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is wrong and the config file '%s' " +"isn't used." +msgstr "" + +#: src/Module/Admin/Summary.php:105 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is not equal to the config file " +"'%s'. Please fix your configuration." +msgstr "" + +#: src/Module/Admin/Summary.php:112 +msgid "Normal Account" +msgstr "Compte normal" + +#: src/Module/Admin/Summary.php:113 +msgid "Automatic Follower Account" +msgstr "Profile Resuivant" + +#: src/Module/Admin/Summary.php:114 +msgid "Public Forum Account" +msgstr "Forum public" + +#: src/Module/Admin/Summary.php:115 +msgid "Automatic Friend Account" +msgstr "Compte auto-amical" + +#: src/Module/Admin/Summary.php:116 +msgid "Blog Account" +msgstr "Compte de blog" + +#: src/Module/Admin/Summary.php:117 +msgid "Private Forum Account" +msgstr "Forum privé" + +#: src/Module/Admin/Summary.php:141 +msgid "Message queues" +msgstr "Files d'attente des messages" + +#: src/Module/Admin/Summary.php:147 +msgid "Server Settings" +msgstr "Paramètres du site" + +#: src/Module/Admin/Summary.php:161 +msgid "Summary" +msgstr "Résumé" + +#: src/Module/Admin/Summary.php:163 +msgid "Registered users" +msgstr "Utilisateurs inscrits" + +#: src/Module/Admin/Summary.php:165 +msgid "Pending registrations" +msgstr "Inscriptions en attente" + +#: src/Module/Admin/Summary.php:166 +msgid "Version" +msgstr "Version" + +#: src/Module/Admin/Summary.php:170 +msgid "Active addons" +msgstr "Add-ons actifs" + +#: src/Module/Admin/Themes/Details.php:32 src/Module/Admin/Themes/Embed.php:46 +msgid "Theme settings updated." +msgstr "Réglages du thème sauvés." + +#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:47 +#, php-format +msgid "Theme %s disabled." +msgstr "" + +#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:49 +#, php-format +msgid "Theme %s successfully enabled." +msgstr "" + +#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:51 +#, php-format +msgid "Theme %s failed to install." +msgstr "" + +#: src/Module/Admin/Themes/Details.php:97 +msgid "Screenshot" +msgstr "Capture d'écran" + +#: src/Module/Admin/Themes/Details.php:105 +#: src/Module/Admin/Themes/Index.php:94 src/Module/BaseAdminModule.php:83 +msgid "Themes" +msgstr "Thèmes" + +#: src/Module/Admin/Themes/Embed.php:67 +msgid "Unknown theme." +msgstr "" + +#: src/Module/Admin/Themes/Index.php:96 +msgid "Reload active themes" +msgstr "Recharger les thèmes actifs" + +#: src/Module/Admin/Themes/Index.php:101 +#, php-format +msgid "No themes found on the system. They should be placed in %1$s" +msgstr "Aucun thème trouvé. Leur emplacement d'installation est%1$s." + +#: src/Module/Admin/Themes/Index.php:102 +msgid "[Experimental]" +msgstr "[Expérimental]" + +#: src/Module/Admin/Themes/Index.php:103 +msgid "[Unsupported]" +msgstr "[Non supporté]" + +#: src/Module/Admin/Tos.php:30 +msgid "The Terms of Service settings have been updated." +msgstr "" + +#: src/Module/Admin/Tos.php:44 +msgid "Display Terms of Service" +msgstr "Afficher les Conditions d'Utilisation" + +#: src/Module/Admin/Tos.php:44 +msgid "" +"Enable the Terms of Service page. If this is enabled a link to the terms " +"will be added to the registration form and the general information page." +msgstr "Active la page de Conditions d'Utilisation. Un lien vers cette page est ajouté dans le formulaire d'inscription et la page A Propos." + +#: src/Module/Admin/Tos.php:45 +msgid "Display Privacy Statement" +msgstr "Afficher la Politique de Confidentialité" + +#: src/Module/Admin/Tos.php:45 +#, php-format +msgid "" +"Show some informations regarding the needed information to operate the node " +"according e.g. to EU-GDPR." +msgstr "Affiche les informations légales nécessaires pour publier un site Friendica en accord avec le RGPD européen par exemple." + +#: src/Module/Admin/Tos.php:46 +msgid "Privacy Statement Preview" +msgstr "Aperçu de la Politique de Confidentialité" + +#: src/Module/Admin/Tos.php:48 +msgid "The Terms of Service" +msgstr "Conditions d'Utilisation" + +#: src/Module/Admin/Tos.php:48 +msgid "" +"Enter the Terms of Service for your node here. You can use BBCode. Headers " +"of sections should be [h2] and below." +msgstr "Saisissez les Conditions d'Utilisations de votre site. Les BBCodes sont disponibles, les titres commencent à [h2]." + +#: src/Module/Admin/Users.php:48 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\n\t\t\tChère/Cher %1$s,\n\t\t\t\tL’administrateur de %2$s vous a ouvert un compte." + +#: src/Module/Admin/Users.php:51 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "" + +#: src/Module/Admin/Users.php:96 +#, php-format +msgid "%s user blocked" +msgid_plural "%s users blocked" +msgstr[0] "" +msgstr[1] "" + +#: src/Module/Admin/Users.php:102 +#, php-format +msgid "%s user unblocked" +msgid_plural "%s users unblocked" +msgstr[0] "" +msgstr[1] "" + +#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160 +msgid "You can't remove yourself" +msgstr "Vous ne pouvez pas supprimer votre propre compte" + +#: src/Module/Admin/Users.php:114 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s utilisateur supprimé" +msgstr[1] "%s utilisateurs supprimés" + +#: src/Module/Admin/Users.php:158 +#, php-format +msgid "User \"%s\" deleted" +msgstr "" + +#: src/Module/Admin/Users.php:167 +#, php-format +msgid "User \"%s\" blocked" +msgstr "" + +#: src/Module/Admin/Users.php:173 +#, php-format +msgid "User \"%s\" unblocked" +msgstr "" + +#: src/Module/Admin/Users.php:226 +msgid "Private Forum" +msgstr "Forum Privé" + +#: src/Module/Admin/Users.php:233 +msgid "Relay" +msgstr "Relai" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Register date" +msgstr "Date d'inscription" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last login" +msgstr "Dernière connexion" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last item" +msgstr "Dernier élément" + +#: src/Module/Admin/Users.php:272 +msgid "Type" +msgstr "Type" + +#: src/Module/Admin/Users.php:279 +msgid "Add User" +msgstr "Ajouter l'utilisateur" + +#: src/Module/Admin/Users.php:281 +msgid "User registrations waiting for confirm" +msgstr "Inscriptions d'utilisateurs en attente de confirmation" + +#: src/Module/Admin/Users.php:282 +msgid "User waiting for permanent deletion" +msgstr "Utilisateur en attente de suppression définitive" + +#: src/Module/Admin/Users.php:283 +msgid "Request date" +msgstr "Date de la demande" + +#: src/Module/Admin/Users.php:284 +msgid "No registrations." +msgstr "Pas d'inscriptions." + +#: src/Module/Admin/Users.php:285 +msgid "Note from the user" +msgstr "Message personnel" + +#: src/Module/Admin/Users.php:287 +msgid "Deny" +msgstr "Rejetter" + +#: src/Module/Admin/Users.php:290 +msgid "User blocked" +msgstr "Utilisateur bloqué" + +#: src/Module/Admin/Users.php:292 +msgid "Site admin" +msgstr "Administration du Site" + +#: src/Module/Admin/Users.php:293 +msgid "Account expired" +msgstr "Compte expiré" + +#: src/Module/Admin/Users.php:296 +msgid "New User" +msgstr "Nouvel utilisateur" + +#: src/Module/Admin/Users.php:297 +msgid "Permanent deletion" +msgstr "Suppression définitive" + +#: src/Module/Admin/Users.php:302 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?" + +#: src/Module/Admin/Users.php:303 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?" + +#: src/Module/Admin/Users.php:313 +msgid "Name of the new user." +msgstr "Nom du nouvel utilisateur." + +#: src/Module/Admin/Users.php:314 +msgid "Nickname" +msgstr "Pseudo" + +#: src/Module/Admin/Users.php:314 +msgid "Nickname of the new user." +msgstr "Pseudo du nouvel utilisateur." + +#: src/Module/Admin/Users.php:315 +msgid "Email address of the new user." +msgstr "Adresse mail du nouvel utilisateur." + +#: src/Module/AllFriends.php:55 +msgid "No friends to display." +msgstr "Pas d'amis à afficher." + +#: src/Module/Apps.php:29 +msgid "No installed applications." +msgstr "Pas d'application installée." + +#: src/Module/Apps.php:34 +msgid "Applications" +msgstr "Applications" + #: src/Module/Attach.php:36 src/Module/Attach.php:48 msgid "Item was not found." msgstr "Element introuvable." +#: src/Module/Babel.php:31 +msgid "Source input" +msgstr "Saisie source" + +#: src/Module/Babel.php:37 +msgid "BBCode::toPlaintext" +msgstr "BBCode::toPlaintext" + +#: src/Module/Babel.php:43 +msgid "BBCode::convert (raw HTML)" +msgstr "BBCode::convert (code HTML)" + +#: src/Module/Babel.php:48 +msgid "BBCode::convert" +msgstr "BBCode::convert" + +#: src/Module/Babel.php:54 +msgid "BBCode::convert => HTML::toBBCode" +msgstr "BBCode::convert => HTML::toBBCode" + +#: src/Module/Babel.php:60 +msgid "BBCode::toMarkdown" +msgstr "BBCode::toMarkdown" + +#: src/Module/Babel.php:66 +msgid "BBCode::toMarkdown => Markdown::convert" +msgstr "BBCode::toMarkdown => Markdown::convert" + +#: src/Module/Babel.php:72 +msgid "BBCode::toMarkdown => Markdown::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::toBBCode" + +#: src/Module/Babel.php:78 +msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" + +#: src/Module/Babel.php:89 +msgid "Item Body" +msgstr "Corps du message" + +#: src/Module/Babel.php:93 +msgid "Item Tags" +msgstr "Tags du messages" + +#: src/Module/Babel.php:100 +msgid "Source input (Diaspora format)" +msgstr "Saisie source (format Diaspora)" + +#: src/Module/Babel.php:106 +msgid "Markdown::convert (raw HTML)" +msgstr "Markdown::convert (code HTML)" + +#: src/Module/Babel.php:111 +msgid "Markdown::convert" +msgstr "Markdown::convert" + +#: src/Module/Babel.php:117 +msgid "Markdown::toBBCode" +msgstr "Markdown::toBBCode" + +#: src/Module/Babel.php:124 +msgid "Raw HTML input" +msgstr "Saisie code HTML" + +#: src/Module/Babel.php:129 +msgid "HTML Input" +msgstr "Code HTML" + +#: src/Module/Babel.php:135 +msgid "HTML::toBBCode" +msgstr "HTML::toBBCode" + +#: src/Module/Babel.php:141 +msgid "HTML::toBBCode => BBCode::convert" +msgstr "HTML::toBBCode => BBCode::convert" + +#: src/Module/Babel.php:146 +msgid "HTML::toBBCode => BBCode::convert (raw HTML)" +msgstr "HTML::toBBCode => BBCode::convert (code HTML)" + +#: src/Module/Babel.php:152 +msgid "HTML::toMarkdown" +msgstr "HTML::toMarkdown" + +#: src/Module/Babel.php:158 +msgid "HTML::toPlaintext" +msgstr "HTML::toPlaintext" + +#: src/Module/Babel.php:166 +msgid "Source text" +msgstr "Texte source" + +#: src/Module/Babel.php:167 +msgid "BBCode" +msgstr "BBCode" + +#: src/Module/Babel.php:168 +msgid "Markdown" +msgstr "Markdown" + +#: src/Module/Babel.php:169 +msgid "HTML" +msgstr "HTML" + +#: src/Module/BaseAdminModule.php:76 +msgid "Overview" +msgstr "Synthèse" + +#: src/Module/BaseAdminModule.php:79 +msgid "Configuration" +msgstr "Configuration" + +#: src/Module/BaseAdminModule.php:87 +msgid "Database" +msgstr "Base de données" + +#: src/Module/BaseAdminModule.php:88 +msgid "DB updates" +msgstr "Mise-à-jour de la base" + +#: src/Module/BaseAdminModule.php:89 +msgid "Inspect Deferred Workers" +msgstr "Tâches de fond reportées" + +#: src/Module/BaseAdminModule.php:90 +msgid "Inspect worker Queue" +msgstr "Tâches de fond en attente" + +#: src/Module/BaseAdminModule.php:92 +msgid "Tools" +msgstr "Outils" + +#: src/Module/BaseAdminModule.php:93 +msgid "Contact Blocklist" +msgstr "Liste de contacts bloqués" + +#: src/Module/BaseAdminModule.php:101 +msgid "Diagnostics" +msgstr "Diagnostics" + +#: src/Module/BaseAdminModule.php:102 +msgid "PHP Info" +msgstr "PHP Info" + +#: src/Module/BaseAdminModule.php:103 +msgid "probe address" +msgstr "Tester une adresse" + +#: src/Module/BaseAdminModule.php:104 +msgid "check webfinger" +msgstr "vérification de webfinger" + +#: src/Module/BaseAdminModule.php:105 +msgid "Item Source" +msgstr "" + +#: src/Module/BaseAdminModule.php:106 +msgid "Babel" +msgstr "" + +#: src/Module/BaseAdminModule.php:115 +msgid "Addon Features" +msgstr "Fonctionnalités des addons" + +#: src/Module/BaseAdminModule.php:116 +msgid "User registrations waiting for confirmation" +msgstr "Inscriptions en attente de confirmation" + +#: src/Module/Bookmarklet.php:35 +msgid "This page is missing a url parameter." +msgstr "" + +#: src/Module/Bookmarklet.php:57 +msgid "The post was created" +msgstr "La publication a été créée" + #: src/Module/Contact.php:166 #, php-format msgid "%d contact edited." @@ -8836,453 +8622,688 @@ msgid_plural "%d contacts edited." msgstr[0] "%d contact mis à jour." msgstr[1] "%d contacts mis à jour." -#: src/Module/Contact.php:191 src/Module/Contact.php:374 +#: src/Module/Contact.php:193 src/Module/Contact.php:377 msgid "Could not access contact record." msgstr "Impossible d'accéder à l'enregistrement du contact." -#: src/Module/Contact.php:201 +#: src/Module/Contact.php:203 msgid "Could not locate selected profile." msgstr "Impossible de localiser le profil séléctionné." -#: src/Module/Contact.php:233 +#: src/Module/Contact.php:235 msgid "Contact updated." msgstr "Contact mis à jour." -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been blocked" msgstr "Le contact a été bloqué" -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been unblocked" msgstr "Le contact n'est plus bloqué" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been ignored" msgstr "Le contact a été ignoré" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been unignored" msgstr "Le contact n'est plus ignoré" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been archived" msgstr "Contact archivé" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been unarchived" msgstr "Contact désarchivé" -#: src/Module/Contact.php:439 +#: src/Module/Contact.php:442 msgid "Drop contact" msgstr "Supprimer contact" -#: src/Module/Contact.php:442 src/Module/Contact.php:820 +#: src/Module/Contact.php:445 src/Module/Contact.php:823 msgid "Do you really want to delete this contact?" msgstr "Voulez-vous vraiment supprimer ce contact?" -#: src/Module/Contact.php:456 +#: src/Module/Contact.php:459 msgid "Contact has been removed." msgstr "Ce contact a été retiré." -#: src/Module/Contact.php:486 +#: src/Module/Contact.php:489 #, php-format msgid "You are mutual friends with %s" msgstr "Vous êtes ami (et réciproquement) avec %s" -#: src/Module/Contact.php:491 +#: src/Module/Contact.php:494 #, php-format msgid "You are sharing with %s" msgstr "Vous partagez avec %s" -#: src/Module/Contact.php:496 +#: src/Module/Contact.php:499 #, php-format msgid "%s is sharing with you" msgstr "%s partage avec vous" -#: src/Module/Contact.php:520 +#: src/Module/Contact.php:523 msgid "Private communications are not available for this contact." msgstr "Les communications privées ne sont pas disponibles pour ce contact." -#: src/Module/Contact.php:522 +#: src/Module/Contact.php:525 msgid "Never" msgstr "Jamais" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was successful)" msgstr "(Mise à jour effectuée avec succès)" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was not successful)" msgstr "(Échec de la mise à jour)" -#: src/Module/Contact.php:527 src/Module/Contact.php:1058 +#: src/Module/Contact.php:530 src/Module/Contact.php:1061 msgid "Suggest friends" msgstr "Suggérer amitié/contact" -#: src/Module/Contact.php:531 +#: src/Module/Contact.php:534 #, php-format msgid "Network type: %s" msgstr "Type de réseau %s" -#: src/Module/Contact.php:536 +#: src/Module/Contact.php:539 msgid "Communications lost with this contact!" msgstr "Communications perdues avec ce contact !" -#: src/Module/Contact.php:542 +#: src/Module/Contact.php:545 msgid "Fetch further information for feeds" msgstr "Chercher plus d'informations pour les flux" -#: src/Module/Contact.php:544 +#: src/Module/Contact.php:547 msgid "" "Fetch information like preview pictures, title and teaser from the feed " "item. You can activate this if the feed doesn't contain much text. Keywords " "are taken from the meta header in the feed item and are posted as hash tags." msgstr "" -#: src/Module/Contact.php:547 +#: src/Module/Contact.php:550 msgid "Fetch information" msgstr "Récupérer informations" -#: src/Module/Contact.php:548 +#: src/Module/Contact.php:551 msgid "Fetch keywords" msgstr "" -#: src/Module/Contact.php:549 +#: src/Module/Contact.php:552 msgid "Fetch information and keywords" msgstr "Récupérer informations" -#: src/Module/Contact.php:581 +#: src/Module/Contact.php:584 msgid "Profile Visibility" msgstr "Visibilité du profil" -#: src/Module/Contact.php:582 +#: src/Module/Contact.php:585 msgid "Contact Information / Notes" msgstr "Informations de contact / Notes" -#: src/Module/Contact.php:583 +#: src/Module/Contact.php:586 msgid "Contact Settings" msgstr "Paramètres du Contact" -#: src/Module/Contact.php:592 +#: src/Module/Contact.php:595 msgid "Contact" msgstr "Contact" -#: src/Module/Contact.php:596 +#: src/Module/Contact.php:599 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Merci de choisir le profil que vous souhaitez montrer à %s lorsqu'il vous rend visite de manière sécurisée." -#: src/Module/Contact.php:598 +#: src/Module/Contact.php:601 msgid "Their personal note" msgstr "" -#: src/Module/Contact.php:600 +#: src/Module/Contact.php:603 msgid "Edit contact notes" msgstr "Éditer les notes des contacts" -#: src/Module/Contact.php:604 +#: src/Module/Contact.php:607 msgid "Block/Unblock contact" msgstr "Bloquer/débloquer ce contact" -#: src/Module/Contact.php:605 +#: src/Module/Contact.php:608 msgid "Ignore contact" msgstr "Ignorer ce contact" -#: src/Module/Contact.php:606 +#: src/Module/Contact.php:609 msgid "Repair URL settings" msgstr "Réglages de réparation des URL" -#: src/Module/Contact.php:607 +#: src/Module/Contact.php:610 msgid "View conversations" msgstr "Voir les conversations" -#: src/Module/Contact.php:612 +#: src/Module/Contact.php:615 msgid "Last update:" msgstr "Dernière mise-à-jour :" -#: src/Module/Contact.php:614 +#: src/Module/Contact.php:617 msgid "Update public posts" msgstr "Mettre à jour les publications publiques:" -#: src/Module/Contact.php:616 src/Module/Contact.php:1068 +#: src/Module/Contact.php:619 src/Module/Contact.php:1071 msgid "Update now" msgstr "Mettre à jour" -#: src/Module/Contact.php:622 src/Module/Contact.php:825 -#: src/Module/Contact.php:1085 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 msgid "Unignore" msgstr "Ne plus ignorer" -#: src/Module/Contact.php:626 +#: src/Module/Contact.php:629 msgid "Currently blocked" msgstr "Actuellement bloqué" -#: src/Module/Contact.php:627 +#: src/Module/Contact.php:630 msgid "Currently ignored" msgstr "Actuellement ignoré" -#: src/Module/Contact.php:628 +#: src/Module/Contact.php:631 msgid "Currently archived" msgstr "Actuellement archivé" -#: src/Module/Contact.php:629 +#: src/Module/Contact.php:632 msgid "Awaiting connection acknowledge" msgstr "" -#: src/Module/Contact.php:630 +#: src/Module/Contact.php:633 msgid "" "Replies/likes to your public posts may still be visible" msgstr "Les réponses et \"j'aime\" à vos publications publiques peuvent être toujours visibles" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Notification for new posts" msgstr "Notification des nouvelles publications" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Send a notification of every new post of this contact" msgstr "Envoyer une notification de chaque nouveau message en provenance de ce contact" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "Blacklisted keywords" msgstr "Mots-clés sur la liste noire" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "" "Comma separated list of keywords that should not be converted to hashtags, " "when \"Fetch information and keywords\" is selected" msgstr "Liste de mots-clés separés par des virgules qui ne doivent pas être converti en mots-dièse quand « Récupérer informations et mots-clés » est sélectionné." -#: src/Module/Contact.php:650 +#: src/Module/Contact.php:653 src/Module/Settings/TwoFactor/Index.php:100 msgid "Actions" msgstr "Actions" -#: src/Module/Contact.php:696 +#: src/Module/Contact.php:700 msgid "Suggestions" msgstr "Suggestions" -#: src/Module/Contact.php:699 +#: src/Module/Contact.php:703 msgid "Suggest potential friends" msgstr "Suggérer des amis potentiels" -#: src/Module/Contact.php:707 +#: src/Module/Contact.php:708 src/Module/Group.php:287 +msgid "All Contacts" +msgstr "Tous les contacts" + +#: src/Module/Contact.php:711 msgid "Show all contacts" msgstr "Montrer tous les contacts" -#: src/Module/Contact.php:712 +#: src/Module/Contact.php:716 msgid "Unblocked" msgstr "Non-bloqués" -#: src/Module/Contact.php:715 +#: src/Module/Contact.php:719 msgid "Only show unblocked contacts" msgstr "Ne montrer que les contacts non-bloqués" -#: src/Module/Contact.php:720 +#: src/Module/Contact.php:724 msgid "Blocked" msgstr "Bloqués" -#: src/Module/Contact.php:723 +#: src/Module/Contact.php:727 msgid "Only show blocked contacts" msgstr "Ne montrer que les contacts bloqués" -#: src/Module/Contact.php:728 +#: src/Module/Contact.php:732 msgid "Ignored" msgstr "Ignorés" -#: src/Module/Contact.php:731 +#: src/Module/Contact.php:735 msgid "Only show ignored contacts" msgstr "Ne montrer que les contacts ignorés" -#: src/Module/Contact.php:736 +#: src/Module/Contact.php:740 msgid "Archived" msgstr "Archivés" -#: src/Module/Contact.php:739 +#: src/Module/Contact.php:743 msgid "Only show archived contacts" msgstr "Ne montrer que les contacts archivés" -#: src/Module/Contact.php:744 +#: src/Module/Contact.php:748 msgid "Hidden" msgstr "Cachés" -#: src/Module/Contact.php:747 +#: src/Module/Contact.php:751 msgid "Only show hidden contacts" msgstr "Ne montrer que les contacts masqués" -#: src/Module/Contact.php:755 +#: src/Module/Contact.php:759 msgid "Organize your contact groups" msgstr "" -#: src/Module/Contact.php:815 +#: src/Module/Contact.php:818 msgid "Search your contacts" msgstr "Rechercher dans vos contacts" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Archive" msgstr "Archiver" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Unarchive" msgstr "Désarchiver" -#: src/Module/Contact.php:829 +#: src/Module/Contact.php:832 msgid "Batch Actions" msgstr "Actions multiples" -#: src/Module/Contact.php:856 +#: src/Module/Contact.php:859 msgid "Conversations started by this contact" msgstr "" -#: src/Module/Contact.php:861 +#: src/Module/Contact.php:864 msgid "Posts and Comments" msgstr "" -#: src/Module/Contact.php:884 +#: src/Module/Contact.php:887 msgid "View all contacts" msgstr "Voir tous les contacts" -#: src/Module/Contact.php:895 +#: src/Module/Contact.php:898 msgid "View all common friends" msgstr "Voir tous les amis communs" -#: src/Module/Contact.php:905 +#: src/Module/Contact.php:908 msgid "Advanced Contact Settings" msgstr "Réglages avancés du contact" -#: src/Module/Contact.php:991 +#: src/Module/Contact.php:994 msgid "Mutual Friendship" msgstr "Relation réciproque" -#: src/Module/Contact.php:996 +#: src/Module/Contact.php:999 msgid "is a fan of yours" msgstr "Vous suit" -#: src/Module/Contact.php:1001 +#: src/Module/Contact.php:1004 msgid "you are a fan of" msgstr "Vous le/la suivez" -#: src/Module/Contact.php:1025 +#: src/Module/Contact.php:1028 msgid "Edit contact" msgstr "Éditer le contact" -#: src/Module/Contact.php:1079 +#: src/Module/Contact.php:1082 msgid "Toggle Blocked status" msgstr "(dés)activer l'état \"bloqué\"" -#: src/Module/Contact.php:1087 +#: src/Module/Contact.php:1090 msgid "Toggle Ignored status" msgstr "(dés)activer l'état \"ignoré\"" -#: src/Module/Contact.php:1096 +#: src/Module/Contact.php:1099 msgid "Toggle Archive status" msgstr "(dés)activer l'état \"archivé\"" -#: src/Module/Contact.php:1104 +#: src/Module/Contact.php:1107 msgid "Delete contact" msgstr "Effacer ce contact" -#: src/Module/Install.php:118 +#: src/Module/Credits.php:25 +msgid "Credits" +msgstr "Remerciements" + +#: src/Module/Credits.php:26 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!" + +#: src/Module/Directory.php:66 +msgid "No entries (some entries may be hidden)." +msgstr "Aucune entrée (certaines peuvent être cachées)." + +#: src/Module/Directory.php:85 +msgid "Find on this site" +msgstr "Trouver sur ce site" + +#: src/Module/Directory.php:87 +msgid "Results for:" +msgstr "Résultats pour :" + +#: src/Module/Directory.php:89 +msgid "Site Directory" +msgstr "Annuaire local" + +#: src/Module/Feedtest.php:20 src/Module/Filer/SaveTag.php:20 +msgid "You must be logged in to use this module" +msgstr "Vous devez être identifié pour accéder à cette fonctionnalité" + +#: src/Module/Feedtest.php:49 +msgid "Source URL" +msgstr "URL Source" + +#: src/Module/Filer/SaveTag.php:39 +#, php-format +msgid "Filetag %s saved to item" +msgstr "" + +#: src/Module/Filer/SaveTag.php:49 +msgid "- select -" +msgstr "- choisir -" + +#: src/Module/FollowConfirm.php:37 +msgid "No given contact." +msgstr "" + +#: src/Module/Friendica.php:40 +msgid "Installed addons/apps:" +msgstr "Add-ons/Applications installés :" + +#: src/Module/Friendica.php:45 +msgid "No installed addons/apps" +msgstr "Aucun add-on/application n'est installé" + +#: src/Module/Friendica.php:50 +#, php-format +msgid "Read about the Terms of Service of this node." +msgstr "" + +#: src/Module/Friendica.php:57 +msgid "On this server the following remote servers are blocked." +msgstr "Sur ce serveur, les serveurs suivants sont sur liste noire." + +#: src/Module/Friendica.php:75 +#, php-format +msgid "" +"This is Friendica, version %s that is running at the web location %s. The " +"database version is %s, the post update version is %s." +msgstr "" + +#: src/Module/Friendica.php:80 +msgid "" +"Please visit Friendi.ca to learn more " +"about the Friendica project." +msgstr "Rendez-vous sur Friendi.ca pour en savoir plus sur le projet Friendica." + +#: src/Module/Friendica.php:81 +msgid "Bug reports and issues: please visit" +msgstr "Pour les rapports de bugs : rendez vous sur" + +#: src/Module/Friendica.php:81 +msgid "the bugtracker at github" +msgstr "le bugtracker sur GitHub" + +#: src/Module/Friendica.php:82 +msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" +msgstr "" + +#: src/Module/Group.php:42 +msgid "Group created." +msgstr "Groupe créé." + +#: src/Module/Group.php:48 +msgid "Could not create group." +msgstr "Impossible de créer le groupe." + +#: src/Module/Group.php:59 src/Module/Group.php:207 src/Module/Group.php:233 +msgid "Group not found." +msgstr "Groupe introuvable." + +#: src/Module/Group.php:65 +msgid "Group name changed." +msgstr "Groupe renommé." + +#: src/Module/Group.php:87 +msgid "Unknown group." +msgstr "" + +#: src/Module/Group.php:96 +msgid "Contact is unavailable." +msgstr "" + +#: src/Module/Group.php:100 +msgid "Contact is deleted." +msgstr "" + +#: src/Module/Group.php:106 +msgid "Contact is blocked, unable to add it to a group." +msgstr "" + +#: src/Module/Group.php:110 +msgid "Unable to add the contact to the group." +msgstr "" + +#: src/Module/Group.php:112 +msgid "Contact successfully added to group." +msgstr "" + +#: src/Module/Group.php:116 +msgid "Unable to remove the contact from the group." +msgstr "" + +#: src/Module/Group.php:118 +msgid "Contact successfully removed from group." +msgstr "" + +#: src/Module/Group.php:121 +msgid "Unknown group command." +msgstr "" + +#: src/Module/Group.php:124 +msgid "Bad request." +msgstr "" + +#: src/Module/Group.php:163 +msgid "Save Group" +msgstr "Sauvegarder le groupe" + +#: src/Module/Group.php:164 +msgid "Filter" +msgstr "Filtre" + +#: src/Module/Group.php:170 +msgid "Create a group of contacts/friends." +msgstr "Créez un groupe de contacts/amis." + +#: src/Module/Group.php:212 +msgid "Group removed." +msgstr "Groupe enlevé." + +#: src/Module/Group.php:214 +msgid "Unable to remove group." +msgstr "Impossible d'enlever le groupe." + +#: src/Module/Group.php:265 +msgid "Delete Group" +msgstr "Supprimer le groupe" + +#: src/Module/Group.php:275 +msgid "Edit Group Name" +msgstr "Éditer le nom du groupe" + +#: src/Module/Group.php:285 +msgid "Members" +msgstr "Membres" + +#: src/Module/Group.php:301 +msgid "Remove contact from group" +msgstr "Retirer ce contact du groupe" + +#: src/Module/Group.php:335 +msgid "Add contact to group" +msgstr "Ajouter ce contact au groupe" + +#: src/Module/Help.php:43 +msgid "Help:" +msgstr "Aide :" + +#: src/Module/Home.php:42 +#, php-format +msgid "Welcome to %s" +msgstr "Bienvenue sur %s" + +#: src/Module/Install.php:158 msgid "Friendica Communications Server - Setup" msgstr "" -#: src/Module/Install.php:129 +#: src/Module/Install.php:169 msgid "System check" msgstr "Vérifications système" -#: src/Module/Install.php:134 +#: src/Module/Install.php:174 msgid "Check again" msgstr "Vérifier à nouveau" -#: src/Module/Install.php:151 +#: src/Module/Install.php:189 +msgid "Base settings" +msgstr "" + +#: src/Module/Install.php:196 +msgid "Host name" +msgstr "Nom de la machine hôte" + +#: src/Module/Install.php:198 +msgid "" +"Overwrite this field in case the determinated hostname isn't right, " +"otherweise leave it as is." +msgstr "" + +#: src/Module/Install.php:201 +msgid "Base path to installation" +msgstr "Chemin de base de l'installation" + +#: src/Module/Install.php:203 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "Si le système ne peut pas détecter le chemin de l'installation, entrez le bon chemin ici. Ce paramètre doit être utilisé uniquement si vous avez des accès restreints à votre système et que vous n'avez qu'un lien symbolique vers le répertoire web." + +#: src/Module/Install.php:206 +msgid "Sub path of the URL" +msgstr "" + +#: src/Module/Install.php:208 +msgid "" +"Overwrite this field in case the sub path determination isn't right, " +"otherwise leave it as is. Leaving this field blank means the installation is" +" at the base URL without sub path." +msgstr "" + +#: src/Module/Install.php:219 msgid "Database connection" msgstr "Connexion à la base de données" -#: src/Module/Install.php:152 +#: src/Module/Install.php:220 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "Pour installer Friendica, nous avons besoin de savoir comment contacter votre base de données." -#: src/Module/Install.php:153 +#: src/Module/Install.php:221 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages." -#: src/Module/Install.php:154 +#: src/Module/Install.php:222 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "La base de données que vous spécifierez doit exister. Si ce n'est pas encore le cas, merci de la créer avant de continuer." -#: src/Module/Install.php:157 +#: src/Module/Install.php:229 msgid "Database Server Name" msgstr "Serveur de base de données" -#: src/Module/Install.php:162 +#: src/Module/Install.php:234 msgid "Database Login Name" msgstr "Nom d'utilisateur de la base" -#: src/Module/Install.php:168 +#: src/Module/Install.php:240 msgid "Database Login Password" msgstr "Mot de passe de la base" -#: src/Module/Install.php:170 +#: src/Module/Install.php:242 msgid "For security reasons the password must not be empty" msgstr "Pour des raisons de sécurité, le mot de passe ne peut pas être vide." -#: src/Module/Install.php:173 +#: src/Module/Install.php:245 msgid "Database Name" msgstr "Nom de la base" -#: src/Module/Install.php:178 src/Module/Install.php:214 +#: src/Module/Install.php:249 src/Module/Install.php:278 +msgid "Please select a default timezone for your website" +msgstr "Sélectionner un fuseau horaire par défaut pour votre site" + +#: src/Module/Install.php:263 +msgid "Site settings" +msgstr "Réglages du site" + +#: src/Module/Install.php:273 msgid "Site administrator email address" msgstr "Adresse électronique de l'administrateur du site" -#: src/Module/Install.php:180 src/Module/Install.php:214 +#: src/Module/Install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration." -#: src/Module/Install.php:184 src/Module/Install.php:215 -msgid "Please select a default timezone for your website" -msgstr "Sélectionner un fuseau horaire par défaut pour votre site" - -#: src/Module/Install.php:208 -msgid "Site settings" -msgstr "Réglages du site" - -#: src/Module/Install.php:217 +#: src/Module/Install.php:282 msgid "System Language:" msgstr "Langue système :" -#: src/Module/Install.php:219 +#: src/Module/Install.php:284 msgid "" "Set the default language for your Friendica installation interface and to " "send emails." msgstr "Définit la langue par défaut pour l'interface de votre instance Friendica et les mails envoyés." -#: src/Module/Install.php:231 +#: src/Module/Install.php:296 msgid "Your Friendica site database has been installed." msgstr "La base de données de votre site Friendica a bien été installée." -#: src/Module/Install.php:239 +#: src/Module/Install.php:304 msgid "Installation finished" msgstr "" -#: src/Module/Install.php:261 +#: src/Module/Install.php:326 msgid "

    What next

    " msgstr "

    Ensuite

    " -#: src/Module/Install.php:262 +#: src/Module/Install.php:327 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "worker." msgstr "IMPORTANT: vous devrez ajouter [manuellement] une tâche planifiée pour le 'worker'." -#: src/Module/Install.php:265 +#: src/Module/Install.php:330 #, php-format msgid "" "Go to your new Friendica node registration page " @@ -9290,43 +9311,172 @@ msgid "" " administrator email. This will allow you to enter the site admin panel." msgstr "" -#: src/Module/Itemsource.php:41 -msgid "Item Guid" +#: src/Module/Invite.php:37 +msgid "Total invitation limit exceeded." +msgstr "La limite d'invitation totale est éxédée." + +#: src/Module/Invite.php:60 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Adresse de courriel invalide." + +#: src/Module/Invite.php:87 +msgid "Please join us on Friendica" +msgstr "Rejoignez-nous sur Friendica" + +#: src/Module/Invite.php:96 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site." + +#: src/Module/Invite.php:100 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : L'envoi du message a échoué." + +#: src/Module/Invite.php:104 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d message envoyé." +msgstr[1] "%d messages envoyés." + +#: src/Module/Invite.php:122 +msgid "You have no more invitations available" +msgstr "Vous n'avez plus d'invitations disponibles" + +#: src/Module/Invite.php:129 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux." + +#: src/Module/Invite.php:131 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public." + +#: src/Module/Invite.php:132 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre." + +#: src/Module/Invite.php:136 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres." + +#: src/Module/Invite.php:139 +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks." +msgstr "Les instances Friendica sont interconnectées pour créer un immense réseau social possédé et contrôlé par ses membres, et qui respecte leur vie privée. Ils peuvent aussi s'interconnecter avec d'autres réseaux sociaux traditionnels." + +#: src/Module/Invite.php:138 +#, php-format +msgid "To accept this invitation, please visit and register at %s." +msgstr "Pour accepter cette invitation, rendez-vous sur %s et inscrivez-vous." + +#: src/Module/Invite.php:146 +msgid "Send invitations" +msgstr "Envoyer des invitations" + +#: src/Module/Invite.php:147 +msgid "Enter email addresses, one per line:" +msgstr "Entrez les adresses email, une par ligne :" + +#: src/Module/Invite.php:151 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social." + +#: src/Module/Invite.php:153 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "Vous devrez fournir ce code d'invitation : $invite_code" + +#: src/Module/Invite.php:153 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Une fois inscrit, connectez-vous à la page de mon profil sur :" + +#: src/Module/Invite.php:155 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendi.ca" msgstr "" -#: src/Module/Login.php:292 +#: src/Module/Localtime.php:30 +msgid "Time Conversion" +msgstr "Conversion temporelle" + +#: src/Module/Localtime.php:31 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire." + +#: src/Module/Localtime.php:32 +#, php-format +msgid "UTC time: %s" +msgstr "Temps UTC : %s" + +#: src/Module/Localtime.php:35 +#, php-format +msgid "Current timezone: %s" +msgstr "Zone de temps courante : %s" + +#: src/Module/Localtime.php:39 +#, php-format +msgid "Converted localtime: %s" +msgstr "Temps local converti : %s" + +#: src/Module/Localtime.php:43 +msgid "Please select your timezone:" +msgstr "Sélectionner votre zone :" + +#: src/Module/Login.php:295 msgid "Create a New Account" msgstr "Créer un nouveau compte" -#: src/Module/Login.php:325 +#: src/Module/Login.php:328 msgid "Password: " msgstr "Mot de passe : " -#: src/Module/Login.php:326 +#: src/Module/Login.php:329 msgid "Remember me" msgstr "Se souvenir de moi" -#: src/Module/Login.php:329 +#: src/Module/Login.php:332 msgid "Or login using OpenID: " msgstr "Ou connectez-vous via OpenID : " -#: src/Module/Login.php:335 +#: src/Module/Login.php:338 msgid "Forgot your password?" msgstr "Mot de passe oublié?" -#: src/Module/Login.php:338 +#: src/Module/Login.php:341 msgid "Website Terms of Service" msgstr "Conditions d'utilisation du site internet" -#: src/Module/Login.php:339 +#: src/Module/Login.php:342 msgid "terms of service" msgstr "conditions d'utilisation" -#: src/Module/Login.php:341 +#: src/Module/Login.php:344 msgid "Website Privacy Policy" msgstr "Politique de confidentialité du site internet" -#: src/Module/Login.php:342 +#: src/Module/Login.php:345 msgid "privacy policy" msgstr "politique de confidentialité" @@ -9334,26 +9484,35 @@ msgstr "politique de confidentialité" msgid "Logged out." msgstr "Déconnecté." -#: src/Module/Profile.php:102 src/Module/Profile.php:105 +#: src/Module/Maintenance.php:29 +msgid "System down for maintenance" +msgstr "Système indisponible pour cause de maintenance" + +#: src/Module/PageNotFound.php:13 +msgid "Page not found." +msgstr "Page introuvable." + +#: src/Module/Photo.php:87 +#, php-format +msgid "Invalid photo with id %s." +msgstr "" + +#: src/Module/Profile.php:110 src/Module/Profile.php:113 #: src/Protocol/OStatus.php:1302 #, php-format msgid "%s's timeline" msgstr "" -#: src/Module/Profile.php:103 src/Protocol/OStatus.php:1306 +#: src/Module/Profile.php:111 src/Protocol/OStatus.php:1306 #, php-format msgid "%s's posts" msgstr "" -#: src/Module/Profile.php:104 src/Protocol/OStatus.php:1309 +#: src/Module/Profile.php:112 src/Protocol/OStatus.php:1309 #, php-format msgid "%s's comments" msgstr "" -#: src/Module/Proxy.php:73 -msgid "Bad Request." -msgstr "" - #: src/Module/Register.php:83 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " @@ -9419,34 +9578,258 @@ msgstr "Choisir un pseudo : " msgid "Import your profile to this friendica instance" msgstr "Importer votre profile dans cette instance de friendica" -#: src/Module/Register.php:150 +#: src/Module/Register.php:149 msgid "Note: This node explicitly contains adult content" msgstr "" -#: src/Module/Register.php:243 +#: src/Module/Register.php:242 msgid "" "Registration successful. Please check your email for further instructions." msgstr "Inscription réussie. Vérifiez vos emails pour la suite des instructions." -#: src/Module/Register.php:247 +#: src/Module/Register.php:246 #, php-format msgid "" "Failed to send email message. Here your accout details:
    login: %s
    " "password: %s

    You can change your password after login." msgstr "Impossible d’envoyer le courriel de confirmation. Voici vos informations de connexion:
    identifiant : %s
    mot de passe : %s

    Vous pourrez changer votre mot de passe une fois connecté." -#: src/Module/Register.php:254 +#: src/Module/Register.php:253 msgid "Registration successful." msgstr "Inscription réussie." -#: src/Module/Register.php:259 +#: src/Module/Register.php:258 msgid "Your registration can not be processed." msgstr "Votre inscription ne peut être traitée." -#: src/Module/Register.php:305 +#: src/Module/Register.php:304 msgid "Your registration is pending approval by the site owner." msgstr "Votre inscription attend une validation du propriétaire du site." +#: src/Module/Settings/TwoFactor/Index.php:50 +msgid "Two-factor authentication successfully disabled." +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:86 +msgid "" +"

    Use an application on a mobile device to get two-factor authentication " +"codes when prompted on login.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:90 +msgid "Authenticator app" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Configured" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Not Configured" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:92 +msgid "

    You haven't finished configuring your authenticator app.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:93 +msgid "

    Your authenticator app is correctly configured.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:95 +msgid "Recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:96 +msgid "Remaining valid codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:98 +msgid "" +"

    These one-use codes can replace an authenticator app code in case you " +"have lost access to it.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "Current password:" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "" +"You need to provide your current password to change two-factor " +"authentication settings." +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:102 +msgid "Enable two-factor authentication" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:103 +msgid "Disable two-factor authentication" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:104 +msgid "Show recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Index.php:105 +msgid "Finish app configuration" +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:34 +#: src/Module/Settings/TwoFactor/Verify.php:41 +msgid "Please enter your password to access this page." +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:50 +msgid "New recovery codes successfully generated." +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:76 +msgid "Two-factor recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:78 +msgid "" +"

    Recovery codes can be used to access your account in the event you lose " +"access to your device and cannot receive two-factor authentication " +"codes.

    Put these in a safe spot! If you lose your " +"device and don’t have the recovery codes you will lose access to your " +"account.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:80 +msgid "" +"When you generate new recovery codes, you must copy the new codes. Your old " +"codes won’t work anymore." +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:81 +msgid "Generate new recovery codes" +msgstr "" + +#: src/Module/Settings/TwoFactor/Recovery.php:83 +msgid "Next: Verification" +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:63 +msgid "Two-factor authentication successfully activated." +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:67 +#: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:41 +msgid "Invalid code, please retry." +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:96 +#, php-format +msgid "" +"

    Or you can submit the authentication settings manually:

    \n" +"
    \n" +"\t
    Issuer
    \n" +"\t
    %s
    \n" +"\t
    Account Name
    \n" +"\t
    %s
    \n" +"\t
    Secret Key
    \n" +"\t
    %s
    \n" +"\t
    Type
    \n" +"\t
    Time-based
    \n" +"\t
    Number of digits
    \n" +"\t
    6
    \n" +"\t
    Hashing algorithm
    \n" +"\t
    SHA-1
    \n" +"
    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:116 +msgid "Two-factor code verification" +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:118 +msgid "" +"

    Please scan this QR Code with your authenticator app and submit the " +"provided code.

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:120 +#, php-format +msgid "" +"

    Or you can open the following URL in your mobile devicde:

    %s

    " +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:126 +#: src/Module/TwoFactor/Verify.php:63 +msgid "Please enter a code from your authentication app" +msgstr "" + +#: src/Module/Settings/TwoFactor/Verify.php:127 +msgid "Verify code and enable two-factor authentication" +msgstr "" + +#: src/Module/Special/HTTPException.php:32 +msgid "Bad Request" +msgstr "Requête erronée" + +#: src/Module/Special/HTTPException.php:33 +msgid "Unauthorized" +msgstr "" + +#: src/Module/Special/HTTPException.php:34 +msgid "Forbidden" +msgstr "" + +#: src/Module/Special/HTTPException.php:35 +msgid "Not Found" +msgstr "Non trouvé" + +#: src/Module/Special/HTTPException.php:36 +msgid "Internal Server Error" +msgstr "" + +#: src/Module/Special/HTTPException.php:37 +msgid "Service Unavailable" +msgstr "" + +#: src/Module/Special/HTTPException.php:44 +msgid "" +"The server cannot or will not process the request due to an apparent client " +"error." +msgstr "" + +#: src/Module/Special/HTTPException.php:45 +msgid "" +"Authentication is required and has failed or has not yet been provided." +msgstr "" + +#: src/Module/Special/HTTPException.php:46 +msgid "" +"The request was valid, but the server is refusing action. The user might not" +" have the necessary permissions for a resource, or may need an account." +msgstr "" + +#: src/Module/Special/HTTPException.php:47 +msgid "" +"The requested resource could not be found but may be available in the " +"future." +msgstr "" + +#: src/Module/Special/HTTPException.php:48 +msgid "" +"An unexpected condition was encountered and no more specific message is " +"suitable." +msgstr "" + +#: src/Module/Special/HTTPException.php:49 +msgid "" +"The server is currently unavailable (because it is overloaded or down for " +"maintenance). Please try again later." +msgstr "" + +#: src/Module/Special/HTTPException.php:55 +msgid "Go back" +msgstr "" + #: src/Module/Tos.php:35 src/Module/Tos.php:77 msgid "" "At the time of registration, and for providing communications between the " @@ -9482,165 +9865,207 @@ msgstr "" msgid "Privacy Statement" msgstr "" -#: src/Object/Post.php:136 +#: src/Module/TwoFactor/Recovery.php:41 +#, php-format +msgid "Remaining recovery codes: %d" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:65 +msgid "Two-factor recovery" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:66 +msgid "" +"

    You can enter one of your one-time recovery codes in case you lost access" +" to your mobile device.

    " +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:62 +#, php-format +msgid "Don’t have your phone? Enter a two-factor recovery code" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:68 +msgid "Please enter a recovery code" +msgstr "" + +#: src/Module/TwoFactor/Recovery.php:69 +msgid "Submit recovery code and complete login" +msgstr "" + +#: src/Module/TwoFactor/Verify.php:61 +msgid "" +"

    Open the two-factor authentication app on your device to get an " +"authentication code and verify your identity.

    " +msgstr "" + +#: src/Module/TwoFactor/Verify.php:64 +msgid "Verify code and complete login" +msgstr "" + +#: src/Object/Post.php:137 msgid "This entry was edited" msgstr "Cette entrée a été éditée" -#: src/Object/Post.php:198 +#: src/Object/Post.php:157 +msgid "Private Message" +msgstr "Message privé" + +#: src/Object/Post.php:199 msgid "Delete locally" msgstr "" -#: src/Object/Post.php:201 +#: src/Object/Post.php:202 msgid "Delete globally" msgstr "" -#: src/Object/Post.php:201 +#: src/Object/Post.php:202 msgid "Remove locally" msgstr "" -#: src/Object/Post.php:215 +#: src/Object/Post.php:216 msgid "save to folder" msgstr "sauver vers dossier" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I will attend" msgstr "Je vais participer" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I will not attend" msgstr "Je ne vais pas participer" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I might attend" msgstr "Je vais peut-être participer" -#: src/Object/Post.php:278 +#: src/Object/Post.php:279 msgid "ignore thread" msgstr "ignorer le fil" -#: src/Object/Post.php:279 +#: src/Object/Post.php:280 msgid "unignore thread" msgstr "Ne plus ignorer le fil" -#: src/Object/Post.php:280 +#: src/Object/Post.php:281 msgid "toggle ignore status" msgstr "Ignorer le statut" -#: src/Object/Post.php:291 +#: src/Object/Post.php:292 msgid "add star" msgstr "mettre en avant" -#: src/Object/Post.php:292 +#: src/Object/Post.php:293 msgid "remove star" msgstr "ne plus mettre en avant" -#: src/Object/Post.php:293 +#: src/Object/Post.php:294 msgid "toggle star status" msgstr "mettre en avant" -#: src/Object/Post.php:296 +#: src/Object/Post.php:297 msgid "starred" msgstr "mis en avant" -#: src/Object/Post.php:300 +#: src/Object/Post.php:301 msgid "add tag" msgstr "ajouter une étiquette" -#: src/Object/Post.php:311 +#: src/Object/Post.php:312 msgid "like" msgstr "aime" -#: src/Object/Post.php:312 +#: src/Object/Post.php:313 msgid "dislike" msgstr "n'aime pas" -#: src/Object/Post.php:315 +#: src/Object/Post.php:316 msgid "Share this" msgstr "Partager" -#: src/Object/Post.php:315 +#: src/Object/Post.php:316 msgid "share" msgstr "partager" -#: src/Object/Post.php:382 +#: src/Object/Post.php:384 msgid "to" msgstr "à" -#: src/Object/Post.php:383 +#: src/Object/Post.php:385 msgid "via" msgstr "via" -#: src/Object/Post.php:384 +#: src/Object/Post.php:386 msgid "Wall-to-Wall" msgstr "Inter-mur" -#: src/Object/Post.php:385 +#: src/Object/Post.php:387 msgid "via Wall-To-Wall:" msgstr "en Inter-mur :" -#: src/Object/Post.php:418 +#: src/Object/Post.php:420 #, php-format msgid "Reply to %s" msgstr "" -#: src/Object/Post.php:433 +#: src/Object/Post.php:435 msgid "Notifier task is pending" msgstr "" -#: src/Object/Post.php:434 +#: src/Object/Post.php:436 msgid "Delivery to remote servers is pending" msgstr "" -#: src/Object/Post.php:435 +#: src/Object/Post.php:437 msgid "Delivery to remote servers is underway" msgstr "" -#: src/Object/Post.php:436 +#: src/Object/Post.php:438 msgid "Delivery to remote servers is mostly done" msgstr "" -#: src/Object/Post.php:437 +#: src/Object/Post.php:439 msgid "Delivery to remote servers is done" msgstr "" -#: src/Object/Post.php:457 +#: src/Object/Post.php:459 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d commentaire" msgstr[1] "%d commentaires" -#: src/Object/Post.php:458 +#: src/Object/Post.php:460 msgid "Show more" msgstr "" -#: src/Object/Post.php:459 +#: src/Object/Post.php:461 msgid "Show fewer" msgstr "" -#: src/Protocol/Diaspora.php:2496 +#: src/Protocol/Diaspora.php:2438 msgid "Sharing notification from Diaspora network" msgstr "Notification de partage du réseau Diaspora" -#: src/Protocol/Diaspora.php:3613 +#: src/Protocol/Diaspora.php:3598 msgid "Attachments:" msgstr "Pièces jointes : " -#: src/Protocol/OStatus.php:1866 +#: src/Protocol/OStatus.php:1863 #, php-format msgid "%s is now following %s." msgstr "%s suit désormais %s." -#: src/Protocol/OStatus.php:1867 +#: src/Protocol/OStatus.php:1864 msgid "following" msgstr "following" -#: src/Protocol/OStatus.php:1870 +#: src/Protocol/OStatus.php:1867 #, php-format msgid "%s stopped following %s." msgstr "%s ne suit plus %s." -#: src/Protocol/OStatus.php:1871 +#: src/Protocol/OStatus.php:1868 msgid "stopped following" msgstr "retiré de la liste de suivi" @@ -9710,16 +10135,16 @@ msgstr "" msgid "%1$d %2$s ago" msgstr "il y a %1$d %2$s " -#: src/Worker/Delivery.php:453 +#: src/Worker/Delivery.php:450 msgid "(no subject)" msgstr "(sans titre)" -#: update.php:217 +#: update.php:218 #, php-format msgid "%s: Updating author-id and owner-id in item and thread table. " msgstr "" -#: update.php:272 +#: update.php:273 #, php-format msgid "%s: Updating post-type." msgstr "" @@ -9748,63 +10173,73 @@ msgstr "comix" msgid "slackr" msgstr "slackr" -#: view/theme/duepuntozero/config.php:75 +#: view/theme/duepuntozero/config.php:74 msgid "Variations" msgstr "Variations" -#: view/theme/frio/config.php:103 +#: view/theme/frio/config.php:105 msgid "Custom" msgstr "Personnalisé" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Note" msgstr "Remarque" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Check image permissions if all users are allowed to see the image" msgstr "Vérifier que tous les utilisateurs du site sont autorisés à voir l'image." -#: view/theme/frio/config.php:122 +#: view/theme/frio/config.php:123 msgid "Select color scheme" msgstr "Choisir le schéma de couleurs" -#: view/theme/frio/config.php:123 +#: view/theme/frio/config.php:124 +msgid "Copy or paste schemestring" +msgstr "" + +#: view/theme/frio/config.php:124 +msgid "" +"You can copy this string to share your theme with others. Pasting here " +"applies the schemestring" +msgstr "" + +#: view/theme/frio/config.php:125 msgid "Navigation bar background color" msgstr "Couleur d'arrière-plan de la barre de navigation" -#: view/theme/frio/config.php:124 +#: view/theme/frio/config.php:126 msgid "Navigation bar icon color " msgstr "Couleur des icônes de la barre de navigation" -#: view/theme/frio/config.php:125 +#: view/theme/frio/config.php:127 msgid "Link color" msgstr "Couleur des liens" -#: view/theme/frio/config.php:126 +#: view/theme/frio/config.php:128 msgid "Set the background color" msgstr "Couleur d'arrière-plan" -#: view/theme/frio/config.php:127 +#: view/theme/frio/config.php:129 msgid "Content background opacity" msgstr "Opacité du contenu d'arrière-plan" -#: view/theme/frio/config.php:128 +#: view/theme/frio/config.php:130 msgid "Set the background image" msgstr "Image d'arrière-plan" -#: view/theme/frio/config.php:129 +#: view/theme/frio/config.php:131 msgid "Background image style" msgstr "Style de l'image de fond" -#: view/theme/frio/config.php:134 +#: view/theme/frio/config.php:136 msgid "Login page background image" msgstr "Image de fond de la page de login" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Login page background color" msgstr "Couleur d'arrière-plan de la page de login" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Leave background image and color empty for theme defaults" msgstr "Laisser l'image et la couleur de fond vides pour les paramètres par défaut du thème" @@ -9852,27 +10287,27 @@ msgstr "Invité" msgid "Visitor" msgstr "Visiteur" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Alignment" msgstr "Alignement" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Left" msgstr "Gauche" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Center" msgstr "Centre" -#: view/theme/quattro/config.php:78 +#: view/theme/quattro/config.php:77 msgid "Color scheme" msgstr "Palette de couleurs" -#: view/theme/quattro/config.php:79 +#: view/theme/quattro/config.php:78 msgid "Posts font size" msgstr "Taille de texte des publications" -#: view/theme/quattro/config.php:80 +#: view/theme/quattro/config.php:79 msgid "Textareas font size" msgstr "Taille de police des zones de texte" @@ -9880,31 +10315,31 @@ msgstr "Taille de police des zones de texte" msgid "Comma separated list of helper forums" msgstr "Liste de forums d'aide, séparés par des virgules" -#: view/theme/vier/config.php:123 +#: view/theme/vier/config.php:122 msgid "Set style" msgstr "Définir le style" -#: view/theme/vier/config.php:124 +#: view/theme/vier/config.php:123 msgid "Community Pages" msgstr "Pages de Communauté" -#: view/theme/vier/config.php:125 view/theme/vier/theme.php:151 +#: view/theme/vier/config.php:124 view/theme/vier/theme.php:151 msgid "Community Profiles" msgstr "Profils communautaires" -#: view/theme/vier/config.php:126 +#: view/theme/vier/config.php:125 msgid "Help or @NewHere ?" msgstr "Aide ou @NewHere?" -#: view/theme/vier/config.php:127 view/theme/vier/theme.php:373 +#: view/theme/vier/config.php:126 view/theme/vier/theme.php:373 msgid "Connect Services" msgstr "Connecter des services" -#: view/theme/vier/config.php:128 +#: view/theme/vier/config.php:127 msgid "Find Friends" msgstr "Trouver des amis" -#: view/theme/vier/config.php:129 view/theme/vier/theme.php:181 +#: view/theme/vier/config.php:128 view/theme/vier/theme.php:181 msgid "Last users" msgstr "Derniers utilisateurs" diff --git a/view/lang/fr/strings.php b/view/lang/fr/strings.php index b4efeaf13..128fdd04b 100644 --- a/view/lang/fr/strings.php +++ b/view/lang/fr/strings.php @@ -37,6 +37,7 @@ $a->strings["Attending"] = [ ]; $a->strings["Not attending"] = "Ne participe pas"; $a->strings["Might attend"] = "Participera peut-être"; +$a->strings["Reshares"] = "Partages"; $a->strings["Select"] = "Sélectionner"; $a->strings["Delete"] = "Supprimer"; $a->strings["View %s's profile @ %s"] = "Voir le profil de %s @ %s"; @@ -54,6 +55,8 @@ $a->strings["View Photos"] = "Voir les photos"; $a->strings["Network Posts"] = "Publications du réseau"; $a->strings["View Contact"] = "Voir Contact"; $a->strings["Send PM"] = "Message privé"; +$a->strings["Block"] = "Bloquer"; +$a->strings["Ignore"] = "Ignorer"; $a->strings["Poke"] = "Sollicitations (pokes)"; $a->strings["Connect/Follow"] = "Se connecter/Suivre"; $a->strings["%s likes this."] = "%s aime ça."; @@ -61,6 +64,7 @@ $a->strings["%s doesn't like this."] = "%s n'aime pas ça."; $a->strings["%s attends."] = "%s participe"; $a->strings["%s doesn't attend."] = "%s ne participe pas"; $a->strings["%s attends maybe."] = "%s participe peut-être"; +$a->strings["%s reshared this."] = "%sa partagé ceci."; $a->strings["and"] = "et"; $a->strings["and %d other people"] = "et %dautres personnes"; $a->strings["%2\$d people like this"] = "%2\$d personnes aiment ça"; @@ -73,6 +77,7 @@ $a->strings["%2\$d people don't attend"] = "%2\ $a->strings["%s don't attend."] = "%s ne participent pas."; $a->strings["%2\$d people attend maybe"] = "%2\$d personnes vont peut-être participer"; $a->strings["%s attend maybe."] = "%sparticipent peut-être"; +$a->strings["%2\$d people reshared this"] = "%2\$dpersonnesont partagé ceci"; $a->strings["Visible to everybody"] = "Visible par tout le monde"; $a->strings["Please enter a image/video/audio/webpage URL:"] = "Veuillez entrer une URL d'image/vidéo/page web."; $a->strings["Tag term:"] = "Étiquette :"; @@ -195,474 +200,12 @@ $a->strings["Yes"] = "Oui"; $a->strings["Permission denied."] = "Permission refusée."; $a->strings["Archives"] = "Archives"; $a->strings["show more"] = "montrer plus"; -$a->strings["Theme settings updated."] = "Réglages du thème sauvés."; -$a->strings["Information"] = "Information"; -$a->strings["Overview"] = "Synthèse"; -$a->strings["Federation Statistics"] = "Statistiques Federation"; -$a->strings["Configuration"] = "Configuration"; -$a->strings["Site"] = "Site"; -$a->strings["Users"] = "Utilisateurs"; -$a->strings["Addons"] = "Extensions"; -$a->strings["Themes"] = "Thèmes"; -$a->strings["Additional features"] = "Fonctions supplémentaires"; -$a->strings["Terms of Service"] = "Conditions de service"; -$a->strings["Database"] = "Base de données"; -$a->strings["DB updates"] = "Mise-à-jour de la base"; -$a->strings["Inspect Queue"] = "Inspecter la file d'attente"; -$a->strings["Inspect Deferred Workers"] = "Tâches de fond reportées"; -$a->strings["Inspect worker Queue"] = "Tâches de fond en attente"; -$a->strings["Tools"] = "Outils"; -$a->strings["Contact Blocklist"] = "Liste de contacts bloqués"; -$a->strings["Server Blocklist"] = "Serveurs bloqués"; -$a->strings["Delete Item"] = "Supprimer un élément"; -$a->strings["Logs"] = "Journaux"; -$a->strings["View Logs"] = "Voir les logs"; -$a->strings["Diagnostics"] = "Diagnostics"; -$a->strings["PHP Info"] = "PHP Info"; -$a->strings["probe address"] = "Tester une adresse"; -$a->strings["check webfinger"] = "vérification de webfinger"; -$a->strings["Admin"] = "Admin"; -$a->strings["Addon Features"] = "Fonctionnalités des addons"; -$a->strings["User registrations waiting for confirmation"] = "Inscriptions en attente de confirmation"; -$a->strings["Administration"] = "Administration"; -$a->strings["Display Terms of Service"] = "Afficher les Conditions d'Utilisation"; -$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Active la page de Conditions d'Utilisation. Un lien vers cette page est ajouté dans le formulaire d'inscription et la page A Propos."; -$a->strings["Display Privacy Statement"] = "Afficher la Politique de Confidentialité"; -$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Affiche les informations légales nécessaires pour publier un site Friendica en accord avec le RGPD européen par exemple."; -$a->strings["Privacy Statement Preview"] = "Aperçu de la Politique de Confidentialité"; -$a->strings["The Terms of Service"] = "Conditions d'Utilisation"; -$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Saisissez les Conditions d'Utilisations de votre site. Les BBCodes sont disponibles, les titres commencent à [h2]."; -$a->strings["Save Settings"] = "Sauvegarder les paramètres"; -$a->strings["Blocked domain"] = "Domaine bloqué"; -$a->strings["The blocked domain"] = "Domaine bloqué"; -$a->strings["Reason for the block"] = "Raison du blocage."; -$a->strings["The reason why you blocked this domain."] = "Raison pour laquelle vous souhaitez bloquer ce domaine."; -$a->strings["Delete domain"] = "Supprimer le domaine."; -$a->strings["Check to delete this entry from the blocklist"] = "Cochez la case pour retirer cette entrée de la liste noire"; -$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "Cette page permet de créer une liste noire des serveurs de la fédération qui ne sont pas autorisés à interagir avec votre serveur. Pour chaque serveur bloqué, vous devez fournir la raison du blocage."; -$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "La liste des serveurs bloqués sera publiée sur la page /friendica pour que les utilisateurs rencontrant des problèmes de communication puissent en comprendre la raison."; -$a->strings["Add new entry to block list"] = "Ajouter une nouvelle entrée à la liste noire"; -$a->strings["Server Domain"] = "Adresse du serveur"; -$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "Adresse du serveur à ajouter à la liste noire. Ne pas mettre le protocole."; -$a->strings["Block reason"] = "Raison du blocage."; -$a->strings["Add Entry"] = "Ajouter"; -$a->strings["Save changes to the blocklist"] = "Sauvegarder la liste noire"; -$a->strings["Current Entries in the Blocklist"] = "Entrées de la liste noire"; -$a->strings["Delete entry from blocklist"] = "Supprimer l'entrée de la liste noire"; -$a->strings["Delete entry from blocklist?"] = "Supprimer l'entrée de la liste noire ?"; -$a->strings["Server added to blocklist."] = "Serveur ajouté à la liste noire."; -$a->strings["Site blocklist updated."] = "Liste noire mise à jour."; -$a->strings["The contact has been blocked from the node"] = "Le profile distant a été bloqué"; -$a->strings["Could not find any contact entry for this URL (%s)"] = "Aucun profil distant n'a été trouvé à cette URL (%s)"; -$a->strings["%s contact unblocked"] = [ - 0 => "%s contact débloqué", - 1 => "%s profiles distants débloqués", -]; -$a->strings["Remote Contact Blocklist"] = "Liste des profiles distants bloqués"; -$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "Cette page vous permet de refuser toutes les publications d'un profile distant sur votre site."; -$a->strings["Block Remote Contact"] = "Bloquer le profile distant"; -$a->strings["select all"] = "tout sélectionner"; -$a->strings["select none"] = "Sélectionner tous"; -$a->strings["Block"] = "Bloquer"; -$a->strings["Unblock"] = "Débloquer"; -$a->strings["No remote contact is blocked from this node."] = "Aucun profil distant n'est bloqué"; -$a->strings["Blocked Remote Contacts"] = "Profils distants bloqués"; -$a->strings["Block New Remote Contact"] = "Bloquer un nouveau profil distant"; -$a->strings["Photo"] = "Photo"; -$a->strings["Name"] = "Nom"; -$a->strings["Address"] = "Adresse"; -$a->strings["Profile URL"] = "URL du Profil"; -$a->strings["%s total blocked contact"] = [ - 0 => "%s profil distant bloqué", - 1 => "%s profils distans bloqués", -]; -$a->strings["URL of the remote contact to block."] = "URL du profil distant à bloquer."; -$a->strings["Delete this Item"] = "Supprimer l'élément"; -$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Sur cette page, vous pouvez supprimer un élément de votre noeud. Si cet élément est le premier post d'un fil de discussion, le fil de discussion entier sera supprimé."; -$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "Vous devez connaître le GUID de l'élément. Vous pouvez le trouver en sélectionnant l'élément puis en lisant l'URL. La dernière partie de l'URL est le GUID. Exemple: http://example.com/display/123456 a pour GUID: 123456."; -$a->strings["GUID"] = "GUID"; -$a->strings["The GUID of the item you want to delete."] = "GUID de l'élément à supprimer."; -$a->strings["Item marked for deletion."] = "L'élément va être supprimé."; -$a->strings["unknown"] = "inconnu"; -$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Cette page montre quelques statistiques de la partie connue du réseau social fédéré dont votre instance Friendica fait partie. Ces chiffres sont partiels et ne reflètent que la portion du réseau dont votre instance a connaissance."; -$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "En activant la fonctionnalité Répertoire de Contacts Découverts Automatiquement, cela améliorera la qualité des chiffres présentés ici."; -$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Ce site a connaissance de %d sites distants totalisant %d utilisateurs répartis entre les plate-formes suivantes :"; -$a->strings["ID"] = "ID"; -$a->strings["Recipient Name"] = "Nom du destinataire"; -$a->strings["Recipient Profile"] = "Profil du destinataire"; -$a->strings["Network"] = "Réseau"; -$a->strings["Created"] = "Créé"; -$a->strings["Last Tried"] = "Dernier essai"; -$a->strings["This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."] = "Cette page présente le contenu de la file d'attente pour les publications sortantes. Ce sont des messages dont la première livraison a échoué. Ils seront réenvoyés plus tard et éventuellement supprimés si l'envoi échoue de façon permanente."; -$a->strings["Inspect Deferred Worker Queue"] = "Détail des tâches de fond reportées"; -$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "Cette page détaille les tâches de fond reportées après avoir échoué une première fois."; -$a->strings["Inspect Worker Queue"] = "Détail des tâches de fond en attente"; -$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "Cette page détaille les tâches de fond en attente. Elles seront traitées lors de la prochaine exécution de la tâche planifiée que vous avez définie lors de l'installation."; -$a->strings["Job Parameters"] = "Paramètres de la tâche"; -$a->strings["Priority"] = "Priorité"; -$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "
    Votre base de donnée comporte des tables MYISAM. Vous devriez changer pour InnoDB car il est prévu d'utiliser des fonctionnalités spécifiques à InnoDB à l'avenir. Veuillez consulter ce guide de conversion pour mettre à jour votre base de donnée. Vous pouvez également exécuter la commande php bin/console.php dbstructure toinnodb à la racine de votre répertoire Friendica pour une conversion automatique."; -$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "Une nouvelle version de Friendica est disponible. Votre version est %1\$s, la nouvelle version est %2\$s"; -$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "La mise à jour automatique de la base de donnée a échoué. Veuillez exécuter la commande php bin/console.php dbstructure update depuis votre répertoire Friendica et noter les erreurs potentielles."; -$a->strings["The worker was never executed. Please check your database structure!"] = "Le 'worker' n'a pas encore été exécuté. Vérifiez la structure de votre base de données."; -$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "La dernière exécution du 'worker' s'est déroulée à %s, c'est-à-dire il y a plus d'une heure. Vérifiez les réglages de crontab."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier .htconfig.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier config/local.ini.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition."; -$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s n'est pas accessible sur votre site. C'est un problème de configuration sévère qui empêche toute communication avec les serveurs distants. Veuillez consulter la page d'aide à l'installation (en anglais) pour plus d'information."; -$a->strings["Normal Account"] = "Compte normal"; -$a->strings["Automatic Follower Account"] = "Profile Resuivant"; -$a->strings["Public Forum Account"] = "Forum public"; -$a->strings["Automatic Friend Account"] = "Compte auto-amical"; -$a->strings["Blog Account"] = "Compte de blog"; -$a->strings["Private Forum Account"] = "Forum privé"; -$a->strings["Message queues"] = "Files d'attente des messages"; -$a->strings["Server Settings"] = "Paramètres du site"; -$a->strings["Summary"] = "Résumé"; -$a->strings["Registered users"] = "Utilisateurs inscrits"; -$a->strings["Pending registrations"] = "Inscriptions en attente"; -$a->strings["Version"] = "Version"; -$a->strings["Active addons"] = "Add-ons actifs"; -$a->strings["Can not parse base url. Must have at least ://"] = "Impossible d'analyser l'URL de base. Doit contenir au moins ://"; -$a->strings["Site settings updated."] = "Réglages du site mis-à-jour."; -$a->strings["No special theme for mobile devices"] = "Pas de thème particulier pour les terminaux mobiles"; -$a->strings["No community page for local users"] = "Pas de page communauté pour les utilisateurs enregistrés"; -$a->strings["No community page"] = "Aucune page de communauté"; -$a->strings["Public postings from users of this site"] = "Publications publiques des utilisateurs de ce site"; -$a->strings["Public postings from the federated network"] = "Publications publiques du réseau fédéré"; -$a->strings["Public postings from local users and the federated network"] = "Publications publiques des utilisateurs du site et du réseau fédéré"; -$a->strings["Disabled"] = "Désactivé"; -$a->strings["Users, Global Contacts"] = "Utilisateurs, Contacts Globaux"; -$a->strings["Users, Global Contacts/fallback"] = "Utilisateurs, Contacts Globaux/alternative"; -$a->strings["One month"] = "Un mois"; -$a->strings["Three months"] = "Trois mois"; -$a->strings["Half a year"] = "Six mois"; -$a->strings["One year"] = "Un an"; -$a->strings["Multi user instance"] = "Instance multi-utilisateurs"; -$a->strings["Closed"] = "Fermé"; -$a->strings["Requires approval"] = "Demande une apptrobation"; -$a->strings["Open"] = "Ouvert"; -$a->strings["No SSL policy, links will track page SSL state"] = "Pas de politique SSL, le liens conserveront l'état SSL de la page"; -$a->strings["Force all links to use SSL"] = "Forcer tous les liens à utiliser SSL"; -$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)"; -$a->strings["Don't check"] = "Ne pas rechercher"; -$a->strings["check the stable version"] = "Rechercher les versions stables"; -$a->strings["check the development version"] = "Rechercher les versions de développement"; -$a->strings["Database (legacy)"] = "Base de donnée (historique)"; -$a->strings["Republish users to directory"] = "Republier les utilisateurs sur le répertoire"; -$a->strings["Registration"] = "Inscription"; -$a->strings["File upload"] = "Téléversement de fichier"; -$a->strings["Policies"] = "Politiques"; -$a->strings["Advanced"] = "Avancé"; -$a->strings["Auto Discovered Contact Directory"] = "Répertoire de Contacts Découverts Automatiquement"; -$a->strings["Performance"] = "Performance"; -$a->strings["Worker"] = "Worker"; -$a->strings["Message Relay"] = "Relai de publication"; -$a->strings["Relocate Instance"] = "Déménager le site"; -$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Attention! Cette fonctionnalité avancée peut rendre votre site inaccessible."; -$a->strings["Site name"] = "Nom du site"; -$a->strings["Host name"] = "Nom de la machine hôte"; -$a->strings["Sender Email"] = "Courriel de l'émetteur"; -$a->strings["The email address your server shall use to send notification emails from."] = "L'adresse courriel à partir de laquelle votre serveur enverra des courriels."; -$a->strings["Banner/Logo"] = "Bannière/Logo"; -$a->strings["Shortcut icon"] = "Icône de raccourci"; -$a->strings["Link to an icon that will be used for browsers."] = "Lien vers une icône qui sera utilisée pour les navigateurs."; -$a->strings["Touch icon"] = "Icône pour systèmes tactiles"; -$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Lien vers une icône qui sera utilisée pour les tablettes et les mobiles."; -$a->strings["Additional Info"] = "Informations supplémentaires"; -$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "Description publique destinée au répertoire global de sites Friendica."; -$a->strings["System language"] = "Langue du système"; -$a->strings["System theme"] = "Thème du système"; -$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Thème par défaut sur ce site - peut être changé au niveau du profile utilisateur - changer les réglages du thème"; -$a->strings["Mobile system theme"] = "Thème mobile"; -$a->strings["Theme for mobile devices"] = "Thème pour les terminaux mobiles"; -$a->strings["SSL link policy"] = "Politique SSL pour les liens"; -$a->strings["Determines whether generated links should be forced to use SSL"] = "Détermine si les liens générés doivent forcer l'utilisation de SSL"; -$a->strings["Force SSL"] = "SSL obligatoire"; -$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Redirige toutes les requêtes en clair vers des requêtes SSL. Attention : sur certains systèmes cela peut conduire à des boucles de redirection infinies."; -$a->strings["Hide help entry from navigation menu"] = "Cacher l'aide du menu de navigation"; -$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Cacher du menu de navigation l'entrée vers les pages d'aide. Vous pouvez toujours y accéder en tapant directement /help."; -$a->strings["Single user instance"] = "Instance mono-utilisateur"; -$a->strings["Make this instance multi-user or single-user for the named user"] = "Transformer cette en instance en multi-utilisateur ou mono-utilisateur pour cet l'utilisateur."; -$a->strings["File storage backend"] = "Destination du stockage de fichier"; -$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "La destination du stockage des fichiers. Si vous changez cette destination, vous pouvez migrer les fichiers existants. Si vous ne le faites pas, ils resteront accessibles à leur emplacement actuel. Veuillez consulter la page d'aide à la Configuration (en anglais) pour plus d'information sur les choix possibles et la procédure de migration."; -$a->strings["Maximum image size"] = "Taille maximale des images"; -$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Taille maximale des images envoyées (en octets). 0 par défaut, c'est à dire \"aucune limite\"."; -$a->strings["Maximum image length"] = "Longueur maximale des images"; -$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Longueur maximale en pixels du plus long côté des images téléversées. La valeur par défaut est -1 : absence de limite."; -$a->strings["JPEG image quality"] = "Qualité JPEG des images"; -$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Les JPEGs téléversés seront sauvegardés avec ce niveau de qualité [0-100]. La valeur par défaut est 100, soit la qualité maximale."; -$a->strings["Register policy"] = "Politique d'inscription"; -$a->strings["Maximum Daily Registrations"] = "Inscriptions maximum par jour"; -$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "Si les inscriptions sont permises ci-dessus, ceci fixe le nombre maximum d'inscriptions de nouveaux utilisateurs acceptées par jour. Si les inscriptions ne sont pas ouvertes, ce paramètre n'a aucun effet."; -$a->strings["Register text"] = "Texte d'inscription"; -$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Ce texte est affiché sur la page d'inscription. Les BBCodes sont autorisés."; -$a->strings["Forbidden Nicknames"] = "Identifiants réservés"; -$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Liste d'identifiants réservés séparés par des virgules. Ces identifiants ne peuvent pas être utilisés pour s'enregistrer. La liste de base provient de la RFC 2142."; -$a->strings["Accounts abandoned after x days"] = "Les comptes sont abandonnés après x jours"; -$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction."; -$a->strings["Allowed friend domains"] = "Domaines autorisés"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Une liste de domaines, séparés par des virgules, autorisés à établir des relations avec les utilisateurs de ce site. Les '*' sont acceptés. Laissez vide pour autoriser tous les domaines"; -$a->strings["Allowed email domains"] = "Domaines courriel autorisés"; -$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste de domaines - séparés par des virgules - dont les adresses e-mail sont autorisées à s'inscrire sur ce site. Les '*' sont acceptées. Laissez vide pour autoriser tous les domaines"; -$a->strings["No OEmbed rich content"] = "Désactiver le texte riche avec OEmbed"; -$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Evite le contenu riche avec OEmbed (comme un document PDF incrusté), sauf provenant des domaines autorisés listés ci-après."; -$a->strings["Allowed OEmbed domains"] = "Domaines autorisés pour OEmbed"; -$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Liste de noms de domaine séparés par des virgules. Ces domaines peuvent afficher du contenu riche avec OEmbed."; -$a->strings["Block public"] = "Interdire la publication globale"; -$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Cocher pour bloquer les accès anonymes (non-connectés) à tout sauf aux pages personnelles publiques."; -$a->strings["Force publish"] = "Forcer la publication globale"; -$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Cocher pour publier obligatoirement tous les profils locaux dans l'annuaire du site."; -$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Activer cette option peut potentiellement enfreindre les lois sur la protection de la vie privée comme le RGPD."; -$a->strings["Global directory URL"] = "URL de l'annuaire global"; -$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL de l'annuaire global. Si ce champ n'est pas défini, l'annuaire global sera complètement indisponible pour l'application."; -$a->strings["Private posts by default for new users"] = "Publications privées par défaut pour les nouveaux utilisateurs"; -$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Rendre les publications de tous les nouveaux utilisateurs accessibles seulement par le groupe de contacts par défaut, et non par tout le monde."; -$a->strings["Don't include post content in email notifications"] = "Ne pas inclure le contenu posté dans l'e-mail de notification"; -$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Ne pas inclure le contenu de publication/commentaire/message privé/etc dans l'e-mail de notification qui est envoyé à partir du site, par mesure de confidentialité."; -$a->strings["Disallow public access to addons listed in the apps menu."] = "Interdire l’accès public pour les greffons listées dans le menu apps."; -$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Cocher cette case restreint la liste des greffons dans le menu des applications seulement aux membres."; -$a->strings["Don't embed private images in posts"] = "Ne pas miniaturiser les images privées dans les publications"; -$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Ne remplacez pas les images privées hébergées localement dans les publications avec une image attaché en copie, car cela signifie que le contact qui reçoit les publications contenant ces photos privées devra s’authentifier pour charger chaque image, ce qui peut prendre du temps."; -$a->strings["Explicit Content"] = "Contenu adulte"; -$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Activez cette option si votre site est principalement utilisé pour publier du contenu adulte. Cette information est publique et peut être utilisée pour filtrer votre site dans le répertoire de site global. Elle est également affichée sur la page d'inscription."; -$a->strings["Allow Users to set remote_self"] = "Autoriser les utilisateurs à définir remote_self"; -$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Cocher cette case, permet à chaque utilisateur de marquer chaque contact comme un remote_self dans la boîte de dialogue de réparation des contacts. Activer cette fonction à un contact engendre la réplique de toutes les publications d'un contact dans le flux d'activités des utilisateurs."; -$a->strings["Block multiple registrations"] = "Interdire les inscriptions multiples"; -$a->strings["Disallow users to register additional accounts for use as pages."] = "Ne pas permettre l'inscription de comptes multiples comme des pages."; -$a->strings["Disable OpenID"] = "Désactiver OpenID"; -$a->strings["Disable OpenID support for registration and logins."] = "Désactive OpenID pour l'inscription et l'identification."; -$a->strings["No Fullname check"] = "Désactiver l'obligation de nom complet"; -$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Supprime l'obligation d'avoir au moins un espace dans le nom complet des utilisateurs pour séparer leur prénom et nom de famille."; -$a->strings["Community pages for visitors"] = "Affichage de la page communauté pour les utilisateurs anonymes"; -$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Quelles pages communauté sont disponibles pour les utilisateurs anonymes."; -$a->strings["Posts per user on community page"] = "Nombre de publications par utilisateur sur la page de la communauté (n'est pas valide pour "; -$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = "Nombre maximal de publications par utilisateurs sur la page de la communauté (ne s'applique pas pour « Communauté globale »)."; -$a->strings["Disable OStatus support"] = "Désactiver OStatus"; -$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Désactive le support natif d'OStatus (StatusNet, GNU Social, etc...). Toutes les communications via OStatus sont publiques, donc des avertissements de protection de vie privée sont régulièrement affichés."; -$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Importer seulement les conversations OStatus/ActivityPub provenant de profils distants connus."; -$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normalement toutes les conversations auxquelles les contacts suivis participent sont importées en entier peu importe l'auteur original. Avec cette option, seules les conversations démarrées par un contact suivi sont importées."; -$a->strings["OStatus support can only be enabled if threading is enabled."] = "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée."; -$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire."; -$a->strings["Enable Diaspora support"] = "Activer le support de Diaspora"; -$a->strings["Provide built-in Diaspora network compatibility."] = "Fournir une compatibilité Diaspora intégrée."; -$a->strings["Only allow Friendica contacts"] = "N'autoriser que les contacts Friendica"; -$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Tous les contacts doivent utiliser les protocoles de Friendica. Tous les autres protocoles de communication intégrés sont désactivés."; -$a->strings["Verify SSL"] = "Vérifier SSL"; -$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Si vous le souhaitez, vous pouvez activier la vérification stricte des certificats. Cela signifie que vous ne pourrez pas vous connecter (du tout) aux sites SSL munis d'un certificat auto-signé."; -$a->strings["Proxy user"] = "Utilisateur du proxy"; -$a->strings["Proxy URL"] = "URL du proxy"; -$a->strings["Network timeout"] = "Dépassement du délai d'attente du réseau"; -$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valeur en secondes. Mettre à 0 pour 'illimité' (pas recommandé)."; -$a->strings["Maximum Load Average"] = "Plafond de la charge moyenne"; -$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Charge système maximale à partir de laquelle l'émission et la réception seront soumises à un délai supplémentaire. Par défaut, 50."; -$a->strings["Maximum Load Average (Frontend)"] = "Plafond de la charge moyenne (frontale)"; -$a->strings["Maximum system load before the frontend quits service - default 50."] = "Limite de charge système pour le rendu des pages - défaut 50."; -$a->strings["Minimal Memory"] = "Mémoire minimum"; -$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Mémoire libre minimale pour les tâches de fond (en Mo). Requiert l'accès à /proc/meminfo. La valeur par défaut est 0 (désactivé)."; -$a->strings["Maximum table size for optimization"] = "Limite de taille de table pour l'optimisation"; -$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Limite de taille de table (en Mo) pour l'optimisation automatique. -1 pour désactiver cette limite."; -$a->strings["Minimum level of fragmentation"] = "Seuil de fragmentation"; -$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Seuil de fragmentation pour que l'optimisation automatique se déclenche - défaut 30%."; -$a->strings["Periodical check of global contacts"] = "Vérification périodique des contacts globaux"; -$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux."; -$a->strings["Days between requery"] = "Nombre de jours entre les requêtes"; -$a->strings["Number of days after which a server is requeried for his contacts."] = "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur."; -$a->strings["Discover contacts from other servers"] = "Découvrir des contacts des autres serveurs"; -$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."] = "Demande régulièrement les serveurs distants connus une liste de profils distants. \"Utilisateurs\" concerne les utilisateurs locaux du serveur distant, \"Contacts Globaux\" concerne tous les profils dont le serveur distant a connaissance. \"Alternative\" est prévu pour les serveurs RedMatrix et les versions obsolètes de Friendica. Ce choix augmente significativement la charge serveur, donc le choix recommendé est \"Utilisateurs, Contacts Globaux\"."; -$a->strings["Timeframe for fetching global contacts"] = "Fréquence de récupération des contacts globaux"; -$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Quand la découverte de contacts est activée, cette valeur détermine la fréquence de récupération des données des contacts globaux présents sur d'autres serveurs."; -$a->strings["Search the local directory"] = "Chercher dans le répertoire local"; -$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Cherche dans le répertoire local au lieu du répertoire local. Quand une recherche locale est effectuée, la même recherche est effectuée dans le répertoire global en tâche de fond. Cela améliore les résultats de la recherche si elle est réitérée."; -$a->strings["Publish server information"] = "Publier les informations du serveur"; -$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "Si cette option est activée, des informations sur le serveur et son utilisation seront publiées. Ces informations incluent le nom et la version du serveur, le nombre d’utilisateurs avec des profils publics, le nombre de messages, les protocoles supportés et les connecteurs disponibles. Plus de détails sur the-federation.info."; -$a->strings["Check upstream version"] = "Mises à jour"; -$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Permet de vérifier la présence de nouvelles versions de Friendica sur github. Si une nouvelle version est disponible, vous recevrez une notification dans l'interface d'administration."; -$a->strings["Suppress Tags"] = "Masquer les tags"; -$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Ne pas afficher la liste des hashtags à la fin d’un message."; -$a->strings["Clean database"] = "Nettoyer la base de données"; -$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Supprime les conversations distantes anciennes, les enregistrements orphelins et le contenu obsolète de certaines tables de débogage."; -$a->strings["Lifespan of remote items"] = "Durée de vie des conversations distantes"; -$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations distantes sont supprimées. Les conversations démarrées par un utilisateur local, étoilées ou archivées sont toujours conservées. 0 pour désactiver."; -$a->strings["Lifespan of unclaimed items"] = "Durée de vie des conversations relayées"; -$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations relayées qui n'ont pas reçu d'interactions locales sont supprimées. La valeur par défaut est 90 jours. 0 pour aligner cette valeur sur la durée de vie des conversations distantes."; -$a->strings["Lifespan of raw conversation data"] = "Durée de vie des méta-données de conversation"; -$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "Cette valeur représente le délai en jours après lequel les méta-données de conversations sont supprimées. Ces méta-données sont utilisées par les protocoles ActivityPub et OStatus, et pour le débogage. Il est prudent de conserver ces meta-données pendant au moins 14 jours. La valeur par défaut est 90 jours."; -$a->strings["Path to item cache"] = "Chemin vers le cache des objets."; -$a->strings["The item caches buffers generated bbcode and external images."] = "Le cache de publications contient des textes HTML de BBCode compil's et une copie de chaque image distante."; -$a->strings["Cache duration in seconds"] = "Durée du cache en secondes"; -$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Combien de temps les fichiers de cache doivent être maintenu? La valeur par défaut est 86400 secondes (une journée). Pour désactiver le cache de l'item, définissez la valeur à -1."; -$a->strings["Maximum numbers of comments per post"] = "Nombre maximum de commentaires par publication"; -$a->strings["How much comments should be shown for each post? Default value is 100."] = "Combien de commentaires doivent être affichés pour chaque publication? Valeur par défaut: 100."; -$a->strings["Temp path"] = "Chemin des fichiers temporaires"; -$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Si vous n'avez pas la possibilité d'avoir accès au répertoire temp, entrez un autre répertoire ici."; -$a->strings["Base path to installation"] = "Chemin de base de l'installation"; -$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "Si le système ne peut pas détecter le chemin de l'installation, entrez le bon chemin ici. Ce paramètre doit être utilisé uniquement si vous avez des accès restreints à votre système et que vous n'avez qu'un lien symbolique vers le répertoire web."; -$a->strings["Disable picture proxy"] = "Désactiver le proxy image "; -$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "Le proxy d'image améliore les performances d'affichage et protège la vie privée des utilisateurs locaux. Il n'est pas recommandé de l'activer sur un serveur avec une bande passante limitée."; -$a->strings["Only search in tags"] = "Rechercher seulement dans les étiquettes"; -$a->strings["On large systems the text search can slow down the system extremely."] = "La recherche textuelle peut ralentir considérablement les systèmes de grande taille."; -$a->strings["New base url"] = "Nouvelle URL de base"; -$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Changer l'URL de base de ce serveur. Envoie un message de déménagement à tous les contacts Friendica et Diaspora des utilisateurs locaux."; -$a->strings["RINO Encryption"] = "Chiffrement RINO"; -$a->strings["Encryption layer between nodes."] = "Couche de chiffrement entre les nœuds du réseau."; -$a->strings["Enabled"] = "Activé"; -$a->strings["Maximum number of parallel workers"] = "Nombre maximum de processus simultanés"; -$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Sur un hébergement partagé, mettez %d. Sur des serveurs plus puissants, %d est optimal. La valeur par défaut est %d."; -$a->strings["Don't use 'proc_open' with the worker"] = "Ne pas utiliser 'proc_open' pour les tâches de fond"; -$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Activez cette option si votre système ne permet pas d'utiliser 'proc_open'. Cela peut être le cas sur les hébergements partagés. Si vous activez cette option, vous devriez augmenter la fréquence d'appel du \"worker\" dans crontab."; -$a->strings["Enable fastlane"] = "Activer la file prioritaire"; -$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "La file prioritaire est un ouvrier additionel démarré quand des tâches de fondde grande importance sont bloquées par des tâches de moindre importance dans la file d'attente."; -$a->strings["Enable frontend worker"] = "Activer l'ouvrier manuel"; -$a->strings["When enabled the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "L'ouvrier manuel est lancé à la réception de messages distants. Sur un petit serveur il est conseillé d'ouvrir %s/worker régulièrement via une tâche planifée. Vous ne devriez activer cette option que si vous ne pouvez pas définir de tâches récurrentes sur votre serveur,"; -$a->strings["Subscribe to relay"] = "S'abonner au relai"; -$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Active la réception de conversations publiques relayées. Elles sont affichées dans la page de recherche, les recherches enregistrées et dans la page de communauté globale."; -$a->strings["Relay server"] = "Serveur relai"; -$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "URL du serveur relai auquel les conversations publique locales doivent être soumises."; -$a->strings["Direct relay transfer"] = "Relai direct"; -$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Soumet les conversations publiques aux serveurs distants sans passer par le serveur relai."; -$a->strings["Relay scope"] = "Filtre du relai"; -$a->strings["Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."] = "\"Tous\" signifie que toutes les conversations publiques en provenance du relai sont acceptées. \"Tags\" signifie que seules les conversations comportant les tags suivants sont acceptées."; -$a->strings["all"] = "Tous"; -$a->strings["tags"] = "Tags"; -$a->strings["Server tags"] = "Tags de filtre du relai"; -$a->strings["Comma separated list of tags for the 'tags' subscription."] = "Liste de tags séparés par des virgules pour le filtre de relai."; -$a->strings["Allow user tags"] = "Inclure les tags des utilisateurs"; -$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "Inclut les tags des recherches enregistrées des utilisateurs au filtre de relai."; -$a->strings["Start Relocation"] = "Démarrer le déménagement"; -$a->strings["Update has been marked successful"] = "Mise-à-jour validée comme 'réussie'"; -$a->strings["Database structure update %s was successfully applied."] = "La structure de base de données pour la mise à jour %s a été appliquée avec succès."; -$a->strings["Executing of database structure update %s failed with error: %s"] = "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s"; -$a->strings["Executing %s failed with error: %s"] = "L'exécution %s a échoué avec l'erreur: %s"; -$a->strings["Update %s was successfully applied."] = "Mise-à-jour %s appliquée avec succès."; -$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "La mise-à-jour %s n'a pas retourné de détails. Impossible de savoir si elle a réussi."; -$a->strings["There was no additional update function %s that needed to be called."] = "Il n'y avait aucune fonction supplémentaire de mise à jour %s qui devait être appelé"; -$a->strings["No failed updates."] = "Pas de mises-à-jour échouées."; -$a->strings["Check database structure"] = "Vérifier la structure de la base de données"; -$a->strings["Failed Updates"] = "Mises-à-jour échouées"; -$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Ceci n'inclut pas les versions antérieures à la 1139, qui ne retournaient jamais de détails."; -$a->strings["Mark success (if update was manually applied)"] = "Marquer comme 'réussie' (dans le cas d'une mise-à-jour manuelle)"; -$a->strings["Attempt to execute this update step automatically"] = "Tenter d'éxecuter cette étape automatiquement"; -$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tChère/Cher %1\$s,\n\t\t\t\tL’administrateur de %2\$s vous a ouvert un compte."; -$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = ""; -$a->strings["Registration details for %s"] = "Détails d'inscription pour %s"; -$a->strings["%s user blocked/unblocked"] = [ - 0 => "%s utilisateur a (dé)bloqué", - 1 => "%s utilisateurs ont (dé)bloqué", -]; -$a->strings["You can't remove yourself"] = "Vous ne pouvez pas supprimer votre propre compte"; -$a->strings["%s user deleted"] = [ - 0 => "%s utilisateur supprimé", - 1 => "%s utilisateurs supprimés", -]; -$a->strings["User '%s' deleted"] = "Utilisateur '%s' supprimé"; -$a->strings["User '%s' unblocked"] = "Utilisateur '%s' débloqué"; -$a->strings["User '%s' blocked"] = "Utilisateur '%s' bloqué"; -$a->strings["Normal Account Page"] = "Compte normal"; -$a->strings["Soapbox Page"] = "Compte \"boîte à savon\""; -$a->strings["Public Forum"] = "Forum public"; -$a->strings["Automatic Friend Page"] = "Compte d' \"amitié automatique\""; -$a->strings["Private Forum"] = "Forum Privé"; -$a->strings["Personal Page"] = "Page personnelle"; -$a->strings["Organisation Page"] = "Page Associative"; -$a->strings["News Page"] = "Page d'informations"; -$a->strings["Community Forum"] = "Forum Communautaire"; -$a->strings["Relay"] = "Relai"; -$a->strings["Email"] = "Courriel"; -$a->strings["Register date"] = "Date d'inscription"; -$a->strings["Last login"] = "Dernière connexion"; -$a->strings["Last item"] = "Dernier élément"; -$a->strings["Type"] = "Type"; -$a->strings["Add User"] = "Ajouter l'utilisateur"; -$a->strings["User registrations waiting for confirm"] = "Inscriptions d'utilisateurs en attente de confirmation"; -$a->strings["User waiting for permanent deletion"] = "Utilisateur en attente de suppression définitive"; -$a->strings["Request date"] = "Date de la demande"; -$a->strings["No registrations."] = "Pas d'inscriptions."; -$a->strings["Note from the user"] = "Message personnel"; -$a->strings["Approve"] = "Approuver"; -$a->strings["Deny"] = "Rejetter"; -$a->strings["User blocked"] = "Utilisateur bloqué"; -$a->strings["Site admin"] = "Administration du Site"; -$a->strings["Account expired"] = "Compte expiré"; -$a->strings["New User"] = "Nouvel utilisateur"; -$a->strings["Permanent deletion"] = "Suppression définitive"; -$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?"; -$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?"; -$a->strings["Name of the new user."] = "Nom du nouvel utilisateur."; -$a->strings["Nickname"] = "Pseudo"; -$a->strings["Nickname of the new user."] = "Pseudo du nouvel utilisateur."; -$a->strings["Email address of the new user."] = "Adresse mail du nouvel utilisateur."; -$a->strings["Addon %s disabled."] = "Add-on %s désactivé."; -$a->strings["Addon %s enabled."] = "Add-on %s activé."; -$a->strings["Disable"] = "Désactiver"; -$a->strings["Enable"] = "Activer"; -$a->strings["Toggle"] = "Activer/Désactiver"; -$a->strings["Settings"] = "Réglages"; -$a->strings["Author: "] = "Auteur : "; -$a->strings["Maintainer: "] = "Mainteneur : "; -$a->strings["Reload active addons"] = "Recharger les add-ons activés."; -$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "Il n'y a pas d'add-on disponible sur votre serveur. Vous pouvez trouver le dépôt officiel d'add-ons sur %1\$s et des add-ons non-officiel dans le répertoire d'add-ons ouvert sur %2\$s."; -$a->strings["No themes found."] = "Aucun thème trouvé."; -$a->strings["Screenshot"] = "Capture d'écran"; -$a->strings["Reload active themes"] = "Recharger les thèmes actifs"; -$a->strings["No themes found on the system. They should be placed in %1\$s"] = "Aucun thème trouvé. Leur emplacement d'installation est%1\$s."; -$a->strings["[Experimental]"] = "[Expérimental]"; -$a->strings["[Unsupported]"] = "[Non supporté]"; -$a->strings["Log settings updated."] = "Réglages des journaux mis-à-jour."; -$a->strings["PHP log currently enabled."] = "Log PHP actuellement activé."; -$a->strings["PHP log currently disabled."] = "Log PHP actuellement desactivé."; -$a->strings["Clear"] = "Effacer"; -$a->strings["Enable Debugging"] = "Activer le déboggage"; -$a->strings["Log file"] = "Fichier de journaux"; -$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica."; -$a->strings["Log level"] = "Niveau de journalisaton"; -$a->strings["PHP logging"] = "Log PHP"; -$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Pour activer temporairement la journalisation de PHP vous pouvez insérez les lignes suivantes au début du fichier index.php dans votre répertoire Friendica. The nom de fichier défini dans la ligne 'error_log' est relatif au répertoire d'installation de Friendica et le serveur web doit avoir le droit d'écriture sur ce fichier. Les lignes log_errors et display_errors prennent les valeurs 0 et 1 respectivement pour les activer ou désactiver."; -$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Erreur lors de l'ouverture du fichier de journal %1\$s.\\r\\n
    Veuillez vérifier que le fichier %1\$s existe et que le serveur web a le droit de lecture dessus."; -$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Erreur lors de l'ouverture du fichier de journal %1\$s.\\r\\n
    Veuillez vérifier que le fichier %1\$s existe et que le serveur web a le droit de lecture dessus."; -$a->strings["Off"] = "Éteint"; -$a->strings["On"] = "Allumé"; -$a->strings["Lock feature %s"] = "Verouiller la fonctionnalité %s"; -$a->strings["Manage Additional Features"] = "Gérer les fonctionnalités avancées"; -$a->strings["No friends to display."] = "Pas d'amis à afficher."; -$a->strings["Connect"] = "Se connecter"; $a->strings["Authorize application connection"] = "Autoriser l'application à se connecter"; $a->strings["Return to your app and insert this Securty Code:"] = "Retournez à votre application et saisissez ce Code de Sécurité : "; $a->strings["Please login to continue."] = "Merci de vous connecter pour continuer."; $a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Voulez-vous autoriser cette application à accéder à vos publications et contacts, et/ou à créer des billets à votre place?"; $a->strings["No"] = "Non"; -$a->strings["You must be logged in to use addons. "] = "Vous devez être connecté pour utiliser les greffons."; -$a->strings["Applications"] = "Applications"; -$a->strings["No installed applications."] = "Pas d'application installée."; -$a->strings["Source input"] = "Saisie source"; -$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; -$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (code HTML)"; -$a->strings["BBCode::convert"] = "BBCode::convert"; -$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; -$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; -$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; -$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; -$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; -$a->strings["Item Body"] = "Corps du message"; -$a->strings["Item Tags"] = "Tags du messages"; -$a->strings["Source input (Diaspora format)"] = "Saisie source (format Diaspora)"; -$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (code HTML)"; -$a->strings["Markdown::convert"] = "Markdown::convert"; -$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; -$a->strings["Raw HTML input"] = "Saisie code HTML"; -$a->strings["HTML Input"] = "Code HTML"; -$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; -$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; -$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (code HTML)"; -$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; -$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; -$a->strings["Source text"] = "Texte source"; -$a->strings["BBCode"] = "BBCode"; -$a->strings["Markdown"] = "Markdown"; -$a->strings["HTML"] = "HTML"; -$a->strings["Login"] = "Connexion"; -$a->strings["Bad Request"] = "Requête erronée"; -$a->strings["The post was created"] = "La publication a été créée"; $a->strings["Access denied."] = "Accès refusé."; -$a->strings["Page not found."] = "Page introuvable."; $a->strings["Access to this profile has been restricted."] = "L'accès au profil a été restreint."; $a->strings["Events"] = "Événements"; $a->strings["View"] = "Vue"; @@ -688,8 +231,6 @@ $a->strings["Global Community"] = "Communauté globale"; $a->strings["Posts from users of the whole federated network"] = "Conversations publiques provenant du réseau fédéré global"; $a->strings["No results."] = "Aucun résultat."; $a->strings["This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users."] = "Ce fil communautaire liste toutes les conversations publiques reçues par ce serveur. Elles ne reflètent pas nécessairement les opinions personelles des utilisateurs locaux."; -$a->strings["Credits"] = "Remerciements"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!"; $a->strings["Contact settings applied."] = "Réglages du contact appliqués."; $a->strings["Contact update failed."] = "Impossible d'appliquer les réglages."; $a->strings["Contact not found."] = "Contact introuvable."; @@ -704,6 +245,7 @@ $a->strings["Submit"] = "Envoyer"; $a->strings["Remote Self"] = "Identité à distance"; $a->strings["Mirror postings from this contact"] = "Copier les publications de ce contact"; $a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "Marquer ce contact comme étant remote_self, friendica republiera alors les nouvelles entrées de ce contact."; +$a->strings["Name"] = "Nom"; $a->strings["Account Nickname"] = "Pseudo du compte"; $a->strings["@Tagname - overrides Name/Nickname"] = "@NomEtiquette - prend le pas sur Nom/Pseudo"; $a->strings["Account URL"] = "URL du compte"; @@ -719,6 +261,7 @@ $a->strings["Parent Password:"] = "Mot de passe du compte parent :"; $a->strings["Please enter the password of the parent account to legitimize your request."] = "Veuillez saisir le mot de passe du compte parent pour authentifier votre requête."; $a->strings["Parent User"] = "Compte parent"; $a->strings["Parent users have total control about this account, including the account settings. Please double check whom you give this access."] = "Le compte parent a un contrôle total sur ce compte, incluant les paramètres de compte. Veuillez vérifier à qui vous donnez cet accès."; +$a->strings["Save Settings"] = "Sauvegarder les paramètres"; $a->strings["Delegate Page Management"] = "Déléguer la gestion de la page"; $a->strings["Delegates"] = ""; $a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Les délégataires seront capables de gérer tous les aspects de ce compte ou de cette page, à l'exception des réglages de compte. Merci de ne pas déléguer votre compte principal à quelqu'un en qui vous n'avez pas une confiance absolue."; @@ -735,7 +278,6 @@ $a->strings["Confirmation completed successfully."] = "Confirmation achevée ave $a->strings["Temporary failure. Please wait and try again."] = "Échec temporaire. Merci de recommencer ultérieurement."; $a->strings["Introduction failed or was revoked."] = "Introduction échouée ou annulée."; $a->strings["Remote site reported: "] = "Alerte du site distant : "; -$a->strings["Unable to set contact photo."] = "Impossible de définir la photo du contact."; $a->strings["No user record found for '%s' "] = "Pas d'utilisateur trouvé pour '%s' "; $a->strings["Our site encryption key is apparently messed up."] = "Notre clé de chiffrement de site est apparemment corrompue."; $a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "URL de site absente ou indéchiffrable."; @@ -765,9 +307,10 @@ $a->strings["You have already introduced yourself here."] = "Vous vous êtes dé $a->strings["Apparently you are already friends with %s."] = "Il semblerait que vous soyez déjà ami avec %s."; $a->strings["Invalid profile URL."] = "URL de profil invalide."; $a->strings["Disallowed profile URL."] = "URL de profil interdite."; +$a->strings["Blocked domain"] = "Domaine bloqué"; $a->strings["Failed to update contact record."] = "Échec de mise à jour du contact."; $a->strings["Your introduction has been sent."] = "Votre introduction a été envoyée."; -$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = ""; +$a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "L'abonnement à distance ne peut pas être fait pour votre réseau. Merci de vous abonner directement sur votre système."; $a->strings["Please login to confirm introduction."] = "Connectez-vous pour confirmer l'introduction."; $a->strings["Incorrect identity currently logged in. Please login to this profile."] = "Identité incorrecte actuellement connectée. Merci de vous connecter à ce profil."; $a->strings["Confirm"] = "Confirmer"; @@ -775,9 +318,9 @@ $a->strings["Hide this contact"] = "Cacher ce contact"; $a->strings["Welcome home %s."] = "Bienvenue chez vous, %s."; $a->strings["Please confirm your introduction/connection request to %s."] = "Merci de confirmer votre demande d'introduction auprès de %s."; $a->strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Merci d'entrer votre \"adresse d'identité\" de l'un des réseaux de communication suivant:"; -$a->strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = ""; +$a->strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = "Si vous n'êtes pas encore un membre du réseau sociale Libre, Suivez ce lien pour trouver une instance publique Friendica et nous rejoindre aujourd'hui."; $a->strings["Friend/Connection Request"] = "Requête de relation/amitié"; -$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de"] = ""; +$a->strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de"] = "Exemples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@gnusocial.de"; $a->strings["Please answer the following:"] = "Merci de répondre à ce qui suit :"; $a->strings["Does %s know you?"] = "Est-ce que %s vous connaît?"; $a->strings["Add a personal note:"] = "Ajouter une note personnelle :"; @@ -787,20 +330,12 @@ $a->strings["Diaspora (Socialhome, Hubzilla)"] = "Diaspora (Socialhome, Hubzilla $a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - merci de ne pas utiliser ce formulaire. Entrez plutôt %s dans votre barre de recherche Diaspora."; $a->strings["Your Identity Address:"] = "Votre adresse d'identité :"; $a->strings["Submit Request"] = "Envoyer la requête"; -$a->strings["Location:"] = "Localisation :"; -$a->strings["Gender:"] = "Genre :"; -$a->strings["Status:"] = "Statut :"; -$a->strings["Homepage:"] = "Page personnelle :"; -$a->strings["About:"] = "À propos :"; -$a->strings["Global Directory"] = "Annuaire global"; -$a->strings["Find on this site"] = "Trouver sur ce site"; -$a->strings["Results for:"] = "Résultats pour :"; -$a->strings["Site Directory"] = "Annuaire local"; -$a->strings["Find"] = "Trouver"; -$a->strings["No entries (some entries may be hidden)."] = "Aucune entrée (certaines peuvent être cachées)."; $a->strings["People Search - %s"] = "Recherche de personne - %s"; $a->strings["Forum Search - %s"] = "Recherche de Forum - %s"; +$a->strings["Connect"] = "Se connecter"; $a->strings["No matches"] = "Aucune correspondance"; +$a->strings["The requested item doesn't exist or has been deleted."] = "L'objet recherché n'existe pas ou a été supprimé."; +$a->strings["The feed for this item is unavailable."] = "Le flux pour cet objet n'est pas disponible."; $a->strings["Item not found"] = "Élément introuvable"; $a->strings["Edit post"] = "Éditer la publication"; $a->strings["Save"] = "Sauver"; @@ -823,9 +358,11 @@ $a->strings["Finish date/time is not known or not relevant"] = "Date / heure de $a->strings["Event Finishes:"] = "Fin de l'événement :"; $a->strings["Adjust for viewer timezone"] = "Ajuster à la zone horaire du visiteur"; $a->strings["Description:"] = "Description :"; +$a->strings["Location:"] = "Localisation :"; $a->strings["Title:"] = "Titre :"; $a->strings["Share this event"] = "Partager cet événement"; $a->strings["Basic"] = "Simple"; +$a->strings["Advanced"] = "Avancé"; $a->strings["Permissions"] = "Permissions"; $a->strings["Failed to remove event"] = "La suppression de l'événement a échoué."; $a->strings["Event removed"] = "Événement supprimé."; @@ -833,94 +370,29 @@ $a->strings["Photos"] = "Photos"; $a->strings["Contact Photos"] = "Photos du contact"; $a->strings["Upload"] = "Téléverser"; $a->strings["Files"] = "Fichiers"; -$a->strings["You must be logged in to use this module"] = "Vous devez être identifié pour accéder à cette fonctionnalité"; -$a->strings["Source URL"] = "URL Source"; -$a->strings["- select -"] = "- choisir -"; $a->strings["The contact could not be added."] = "Le contact n'a pas pu être ajouté."; $a->strings["You already added this contact."] = "Vous avez déjà ajouté ce contact."; $a->strings["Diaspora support isn't enabled. Contact can't be added."] = "Le support de Diaspora est désactivé. Le contact ne peut pas être ajouté."; $a->strings["OStatus support is disabled. Contact can't be added."] = "Le support d'OStatus est désactivé. Le contact ne peut pas être ajouté."; $a->strings["The network type couldn't be detected. Contact can't be added."] = "Impossible de détecter le type de réseau. Le contact ne peut pas être ajouté."; +$a->strings["Profile URL"] = "URL du Profil"; $a->strings["Tags:"] = "Étiquette :"; $a->strings["Status Messages and Posts"] = "Messages d'état et publications"; -$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = ""; -$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Rendez-vous sur Friendi.ca pour en savoir plus sur le projet Friendica."; -$a->strings["Bug reports and issues: please visit"] = "Pour les rapports de bugs : rendez vous sur"; -$a->strings["the bugtracker at github"] = "le bugtracker sur GitHub"; -$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = ""; -$a->strings["Installed addons/apps:"] = "Add-ons/Applications installés :"; -$a->strings["No installed addons/apps"] = "Aucun add-on/application n'est installé"; -$a->strings["Read about the Terms of Service of this node."] = ""; -$a->strings["On this server the following remote servers are blocked."] = "Sur ce serveur, les serveurs suivants sont sur liste noire."; $a->strings["Friend suggestion sent."] = "Suggestion d'amitié/contact envoyée."; $a->strings["Suggest Friends"] = "Suggérer des amis/contacts"; $a->strings["Suggest a friend for %s"] = "Suggérer un ami/contact pour %s"; -$a->strings["Group created."] = "Groupe créé."; -$a->strings["Could not create group."] = "Impossible de créer le groupe."; -$a->strings["Group not found."] = "Groupe introuvable."; -$a->strings["Group name changed."] = "Groupe renommé."; -$a->strings["Permission denied"] = "Permission refusée"; -$a->strings["Save Group"] = "Sauvegarder le groupe"; -$a->strings["Filter"] = "Filtre"; -$a->strings["Create a group of contacts/friends."] = "Créez un groupe de contacts/amis."; -$a->strings["Group Name: "] = "Nom du groupe : "; -$a->strings["Contacts not in any group"] = "Contacts n'appartenant à aucun groupe"; -$a->strings["Group removed."] = "Groupe enlevé."; -$a->strings["Unable to remove group."] = "Impossible d'enlever le groupe."; -$a->strings["Delete Group"] = "Supprimer le groupe"; -$a->strings["Edit Group Name"] = "Éditer le nom du groupe"; -$a->strings["Members"] = "Membres"; -$a->strings["All Contacts"] = "Tous les contacts"; -$a->strings["Group is empty"] = "Groupe vide"; -$a->strings["Remove contact from group"] = "Retirer ce contact du groupe"; -$a->strings["Click on a contact to add or remove."] = "Cliquez sur un contact pour l'ajouter ou le supprimer."; -$a->strings["Add contact to group"] = "Ajouter ce contact au groupe"; $a->strings["No profile"] = "Aucun profil"; -$a->strings["Help:"] = "Aide :"; -$a->strings["Help"] = "Aide"; -$a->strings["Not Found"] = "Non trouvé"; -$a->strings["Welcome to %s"] = "Bienvenue sur %s"; -$a->strings["Total invitation limit exceeded."] = "La limite d'invitation totale est éxédée."; -$a->strings["%s : Not a valid email address."] = "%s : Adresse de courriel invalide."; -$a->strings["Please join us on Friendica"] = "Rejoignez-nous sur Friendica"; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site."; -$a->strings["%s : Message delivery failed."] = "%s : L'envoi du message a échoué."; -$a->strings["%d message sent."] = [ - 0 => "%d message envoyé.", - 1 => "%d messages envoyés.", -]; -$a->strings["You have no more invitations available"] = "Vous n'avez plus d'invitations disponibles"; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Les instances Friendica sont interconnectées pour créer un immense réseau social possédé et contrôlé par ses membres, et qui respecte leur vie privée. Ils peuvent aussi s'interconnecter avec d'autres réseaux sociaux traditionnels."; -$a->strings["To accept this invitation, please visit and register at %s."] = "Pour accepter cette invitation, rendez-vous sur %s et inscrivez-vous."; -$a->strings["Send invitations"] = "Envoyer des invitations"; -$a->strings["Enter email addresses, one per line:"] = "Entrez les adresses email, une par ligne :"; -$a->strings["Your message:"] = "Votre message :"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vous devrez fournir ce code d'invitation : \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Une fois inscrit, connectez-vous à la page de mon profil sur :"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = ""; $a->strings["Unable to locate original post."] = "Impossible de localiser la publication originale."; $a->strings["Empty post discarded."] = "Publication vide rejetée."; $a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "Ce message vous a été envoyé par %s, membre du réseau social Friendica."; $a->strings["You may visit them online at %s"] = "Vous pouvez leur rendre visite sur %s"; $a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Merci de contacter l’émetteur en répondant à cette publication si vous ne souhaitez pas recevoir ces messages."; $a->strings["%s posted an update."] = "%s a publié une mise à jour."; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; -$a->strings["Time Conversion"] = "Conversion temporelle"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire."; -$a->strings["UTC time: %s"] = "Temps UTC : %s"; -$a->strings["Current timezone: %s"] = "Zone de temps courante : %s"; -$a->strings["Converted localtime: %s"] = "Temps local converti : %s"; -$a->strings["Please select your timezone:"] = "Sélectionner votre zone :"; $a->strings["Remote privacy information not available."] = "Informations de confidentialité indisponibles."; $a->strings["Visible to:"] = "Visible par :"; $a->strings["No valid account found."] = "Impossible de trouver un compte valide."; $a->strings["Password reset request issued. Check your email."] = "Réinitialisation du mot de passe en cours. Vérifiez votre courriel."; -$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email, the request will expire shortly.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = ""; +$a->strings["\n\t\tDear %1\$s,\n\t\t\tA request was recently received at \"%2\$s\" to reset your account\n\t\tpassword. In order to confirm this request, please select the verification link\n\t\tbelow or paste it into your web browser address bar.\n\n\t\tIf you did NOT request this change, please DO NOT follow the link\n\t\tprovided and ignore and/or delete this email, the request will expire shortly.\n\n\t\tYour password will not be changed unless we can verify that you\n\t\tissued this request."] = "\n\t\tCher(e) %1\$s,\n\t\t\tUne demande vient d'être faite à \"%2\$s\" pour réinitialiser votre mot de passe. \n\t\tAfin de confirmer cette demande, merci de sélectionner le lien ci-dessous \n\t\tet de le coller dans la barre d'adresse de votre navigateur.\n\n\t\tSi vous n'avez PAS fait cette demande de changement, merci de NE PAS suivre le lien\n\t\tfourni et d'ignorer et/ou supprimer ce message. La demande expirera rapidement.\n\n\t\tVotre mot de passe ne changera pas tant que nous n'avons pas vérifier que vous êtes à l'origine de la demande."; $a->strings["\n\t\tFollow this link soon to verify your identity:\n\n\t\t%1\$s\n\n\t\tYou will then receive a follow-up message containing the new password.\n\t\tYou may change that password from your account settings page after logging in.\n\n\t\tThe login details are as follows:\n\n\t\tSite Location:\t%2\$s\n\t\tLogin Name:\t%3\$s"] = ""; $a->strings["Password reset requested at %s"] = "Requête de réinitialisation de mot de passe à %s"; $a->strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Impossible d'honorer cette demande. (Vous l'avez peut-être déjà utilisée par le passé.) La réinitialisation a échoué."; @@ -938,7 +410,6 @@ $a->strings["Your password may be changed from the Settings page after $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t"] = ""; $a->strings["\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t%2\$s\n\t\t\tPassword:\t%3\$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t"] = ""; $a->strings["Your password has been changed at %s"] = "Votre mot de passe a été modifié à %s"; -$a->strings["System down for maintenance"] = "Système indisponible pour cause de maintenance"; $a->strings["Manage Identities and/or Pages"] = "Gérer les identités et/ou les pages"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Basculez entre les différentes identités ou pages (groupes/communautés) qui se partagent votre compte ou que vous avez été autorisé à gérer."; $a->strings["Select an identity to manage: "] = "Choisir une identité à gérer: "; @@ -962,6 +433,7 @@ $a->strings["Please enter a link URL:"] = "Entrez un lien web :"; $a->strings["Send Private Message"] = "Envoyer un message privé"; $a->strings["To:"] = "À:"; $a->strings["Subject:"] = "Sujet:"; +$a->strings["Your message:"] = "Votre message :"; $a->strings["No messages."] = "Aucun message."; $a->strings["Message not available."] = "Message indisponible."; $a->strings["Delete message"] = "Effacer message"; @@ -985,6 +457,7 @@ $a->strings["Warning: This group contains %s member from a network that doesn't ]; $a->strings["Messages in this group won't be send to these receivers."] = "Les messages dans ce groupe ne seront pas envoyés à ces destinataires."; $a->strings["No such group"] = "Groupe inexistant"; +$a->strings["Group is empty"] = "Groupe vide"; $a->strings["Group: %s"] = "Group : %s"; $a->strings["Private messages to this person are at risk of public disclosure."] = "Les messages privés envoyés à ce contact s'exposent à une diffusion incontrôlée."; $a->strings["Invalid contact."] = "Contact invalide."; @@ -1006,6 +479,7 @@ $a->strings["We would like to offer some tips and links to help make your experi $a->strings["Getting Started"] = "Bien démarrer"; $a->strings["Friendica Walk-Through"] = "Friendica pas-à-pas"; $a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "Sur votre page d'accueil, dans Conseils aux nouveaux venus - vous trouverez une rapide introduction aux onglets Profil et Réseau, pourrez vous connecter à Facebook, établir de nouvelles relations, et choisir des groupes à rejoindre."; +$a->strings["Settings"] = "Réglages"; $a->strings["Go to Your Settings"] = "Éditer vos Réglages"; $a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "Sur la page des Réglages - changez votre mot de passe initial. Notez bien votre Identité. Elle ressemble à une adresse de courriel - et vous sera utile pour vous faire des amis dans le web social libre."; $a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Vérifiez les autres réglages, tout particulièrement ceux liés à la vie privée. Un profil non listé, c'est un peu comme un numéro sur liste rouge. En général, vous devriez probablement publier votre profil - à moins que tous vos amis (potentiels) sachent déjà comment vous trouver."; @@ -1035,7 +509,6 @@ $a->strings["Go to the Help Section"] = "Aller à la section Aide"; $a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Nos pages d'aide peuvent être consultées pour davantage de détails sur les fonctionnalités ou les ressources."; $a->strings["Personal Notes"] = "Notes personnelles"; $a->strings["Invalid request identifier."] = "Identifiant de demande invalide."; -$a->strings["Ignore"] = "Ignorer"; $a->strings["Notifications"] = "Notifications"; $a->strings["Network Notifications"] = "Notifications du réseau"; $a->strings["System Notifications"] = "Notifications du système"; @@ -1048,6 +521,7 @@ $a->strings["Hide Ignored Requests"] = "Cacher les demandes ignorées"; $a->strings["Notification type:"] = "Type de notification :"; $a->strings["Suggested by:"] = "Suggéré par :"; $a->strings["Hide this contact from others"] = "Cacher ce contact aux autres"; +$a->strings["Approve"] = "Approuver"; $a->strings["Claims to be known to you: "] = "Prétend que vous le connaissez : "; $a->strings["yes"] = "oui"; $a->strings["no"] = "non"; @@ -1058,6 +532,8 @@ $a->strings["Accepting %s as a sharer allows them to subscribe to your posts, bu $a->strings["Friend"] = "Ami"; $a->strings["Sharer"] = "Initiateur du partage"; $a->strings["Subscriber"] = "Abonné∙e"; +$a->strings["About:"] = "À propos :"; +$a->strings["Gender:"] = "Genre :"; $a->strings["Network:"] = "Réseau"; $a->strings["No introductions."] = "Aucune demande d'introduction."; $a->strings["No more %s notifications."] = "Aucune notification de %s"; @@ -1081,10 +557,8 @@ $a->strings["Upload New Photos"] = "Téléverser de nouvelles photos"; $a->strings["everybody"] = "tout le monde"; $a->strings["Contact information unavailable"] = "Informations de contact indisponibles"; $a->strings["Album not found."] = "Album introuvable."; -$a->strings["Delete Album"] = "Effacer l'album"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?"; -$a->strings["Delete Photo"] = "Effacer la photo"; -$a->strings["Do you really want to delete this photo?"] = "Voulez-vous vraiment supprimer cette photo ?"; +$a->strings["Album successfully deleted"] = ""; +$a->strings["Album was empty."] = ""; $a->strings["a photo"] = "une photo"; $a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s a été étiqueté dans %2\$s par %3\$s"; $a->strings["Image exceeds size limit of %s"] = "L'image dépasse la taille limite de %s"; @@ -1102,16 +576,22 @@ $a->strings["or select existing album:"] = ""; $a->strings["Do not show a status post for this upload"] = "Ne pas publier de notice de statut pour cet envoi"; $a->strings["Show to Groups"] = "Montrer aux groupes"; $a->strings["Show to Contacts"] = "Montrer aux Contacts"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Voulez-vous vraiment supprimer cet album photo et toutes ses photos ?"; +$a->strings["Delete Album"] = "Effacer l'album"; $a->strings["Edit Album"] = "Éditer l'album"; +$a->strings["Drop Album"] = ""; $a->strings["Show Newest First"] = "Plus récent d'abord"; $a->strings["Show Oldest First"] = "Plus ancien d'abord"; $a->strings["View Photo"] = "Voir la photo"; $a->strings["Permission denied. Access to this item may be restricted."] = "Interdit. L'accès à cet élément peut avoir été restreint."; $a->strings["Photo not available"] = "Photo indisponible"; +$a->strings["Do you really want to delete this photo?"] = "Voulez-vous vraiment supprimer cette photo ?"; +$a->strings["Delete Photo"] = "Effacer la photo"; $a->strings["View photo"] = "Voir photo"; $a->strings["Edit photo"] = "Éditer la photo"; +$a->strings["Delete photo"] = ""; $a->strings["Use as profile photo"] = "Utiliser comme photo de profil"; -$a->strings["Private Message"] = "Message privé"; +$a->strings["Private Photo"] = ""; $a->strings["View Full Size"] = "Voir en taille réelle"; $a->strings["Tags: "] = "Étiquettes :"; $a->strings["[Select tags to remove]"] = ""; @@ -1151,6 +631,7 @@ $a->strings["Sexual Preference"] = "Préférence sexuelle"; $a->strings["XMPP"] = "XMPP"; $a->strings["Homepage"] = "Site internet"; $a->strings["Interests"] = "Centres d'intérêt"; +$a->strings["Address"] = "Adresse"; $a->strings["Location"] = "Localisation"; $a->strings["Profile updated."] = "Profil mis à jour."; $a->strings["Hide contacts and friends:"] = "Cacher mes contacts et amis :"; @@ -1229,8 +710,10 @@ $a->strings["Crop Image"] = "(Re)cadrer l'image"; $a->strings["Please adjust the image cropping for optimum viewing."] = "Ajustez le cadre de l'image pour une visualisation optimale."; $a->strings["Done Editing"] = "Édition terminée"; $a->strings["Image uploaded successfully."] = "Image téléversée avec succès."; +$a->strings["Permission denied"] = "Permission refusée"; $a->strings["Invalid profile identifier."] = "Identifiant de profil invalide."; $a->strings["Profile Visibility Editor"] = "Éditer la visibilité du profil"; +$a->strings["Click on a contact to add or remove."] = "Cliquez sur un contact pour l'ajouter ou le supprimer."; $a->strings["Visible To"] = "Visible par"; $a->strings["All Contacts (with secure profile access)"] = "Tous les contacts (ayant un accès sécurisé)"; $a->strings["Account approved."] = "Inscription validée."; @@ -1238,22 +721,24 @@ $a->strings["Registration revoked for %s"] = "Inscription révoquée pour %s"; $a->strings["Please login."] = "Merci de vous connecter."; $a->strings["User deleted their account"] = ""; $a->strings["On your Friendica node an user deleted their account. Please ensure that their data is removed from the backups."] = ""; -$a->strings["The user id is %d"] = ""; +$a->strings["The user id is %d"] = "L'identifiant d'utilisateur est %d"; $a->strings["Remove My Account"] = "Supprimer mon compte"; $a->strings["This will completely remove your account. Once this has been done it is not recoverable."] = "Ceci supprimera totalement votre compte. Cette opération est irréversible."; $a->strings["Please enter your password for verification:"] = "Merci de saisir votre mot de passe pour vérification :"; $a->strings["Resubscribing to OStatus contacts"] = "Réinscription aux contacts OStatus"; $a->strings["Error"] = "Erreur"; $a->strings["Only logged in users are permitted to perform a search."] = "Seuls les utilisateurs inscrits sont autorisés à lancer une recherche."; -$a->strings["Too Many Requests"] = "Trop de requêtes"; $a->strings["Only one search per minute is permitted for not logged in users."] = "Une seule recherche par minute pour les utilisateurs qui ne sont pas connectés."; $a->strings["Search"] = "Recherche"; $a->strings["Items tagged with: %s"] = "Éléments taggés %s"; $a->strings["Results for: %s"] = "Résultats pour : %s"; $a->strings["Account"] = "Compte"; +$a->strings["Two-factor authentication"] = "Authentification à double facteurs."; $a->strings["Profiles"] = "Profils"; +$a->strings["Additional features"] = "Fonctions supplémentaires"; $a->strings["Display"] = "Afficher"; $a->strings["Social Networks"] = "Réseaux sociaux"; +$a->strings["Addons"] = "Extensions"; $a->strings["Delegations"] = "Délégations"; $a->strings["Connected apps"] = "Applications connectées"; $a->strings["Export personal data"] = "Exporter"; @@ -1264,15 +749,15 @@ $a->strings["Failed to connect with email account using the settings provided."] $a->strings["Email settings updated."] = "Réglages de courriel mis à jour."; $a->strings["Features updated"] = "Fonctionnalités mises à jour"; $a->strings["Relocate message has been send to your contacts"] = "Un message de relocalisation a été envoyé à vos contacts."; -$a->strings["Passwords do not match."] = ""; +$a->strings["Passwords do not match."] = "Les mots de passe ne correspondent pas."; $a->strings["Password update failed. Please try again."] = "Le changement de mot de passe a échoué. Merci de recommencer."; $a->strings["Password changed."] = "Mot de passe changé."; -$a->strings["Password unchanged."] = ""; +$a->strings["Password unchanged."] = "Mot de passe non changé."; $a->strings[" Please use a shorter name."] = " Merci d'utiliser un nom plus court."; $a->strings[" Name too short."] = " Nom trop court."; $a->strings["Wrong Password"] = "Mauvais mot de passe"; -$a->strings["Invalid email."] = ""; -$a->strings["Cannot change to that email."] = ""; +$a->strings["Invalid email."] = "Courriel invalide."; +$a->strings["Cannot change to that email."] = "Ne peut pas changer vers ce courriel."; $a->strings["Private forum has no privacy permissions. Using default privacy group."] = "Ce forum privé n'a pas de paramètres de vie privée. Utilisation des paramètres de confidentialité par défaut."; $a->strings["Private forum has no privacy permissions and no default privacy group."] = "Ce forum privé n'a pas de paramètres de vie privée ni de paramètres de confidentialité par défaut."; $a->strings["Settings updated."] = "Réglages mis à jour."; @@ -1287,8 +772,10 @@ $a->strings["Edit"] = "Éditer"; $a->strings["Client key starts with"] = "La clé cliente commence par"; $a->strings["No name"] = "Sans nom"; $a->strings["Remove authorization"] = "Révoquer l'autorisation"; -$a->strings["No Addon settings configured"] = ""; -$a->strings["Addon Settings"] = ""; +$a->strings["No Addon settings configured"] = "Aucuns paramètres d'Extension paramétré."; +$a->strings["Addon Settings"] = "Paramètres d'extension"; +$a->strings["Off"] = "Éteint"; +$a->strings["On"] = "Allumé"; $a->strings["Additional Features"] = "Fonctions supplémentaires"; $a->strings["Diaspora"] = "Diaspora"; $a->strings["enabled"] = "activé"; @@ -1297,8 +784,8 @@ $a->strings["Built-in support for %s connectivity is %s"] = "Le support natif po $a->strings["GNU Social (OStatus)"] = "GNU Social (OStatus)"; $a->strings["Email access is disabled on this site."] = "L'accès courriel est désactivé sur ce site."; $a->strings["General Social Media Settings"] = "Paramètres généraux des réseaux sociaux"; -$a->strings["Disable Content Warning"] = ""; -$a->strings["Users on networks like Mastodon or Pleroma are able to set a content warning field which collapse their post by default. This disables the automatic collapsing and sets the content warning as the post title. Doesn't affect any other content filtering you eventually set up."] = ""; +$a->strings["Disable Content Warning"] = "Désactiver les avertissements de contenus (CW)"; +$a->strings["Users on networks like Mastodon or Pleroma are able to set a content warning field which collapse their post by default. This disables the automatic collapsing and sets the content warning as the post title. Doesn't affect any other content filtering you eventually set up."] = "Les utilisateurs sur les réseaux comme Mastodon ou Pleroma sont en mesure de mettre un champs d'avertissement de contenu qui cache leur message par défaut. Cela désactive la fermeture automatique et met le message d'avertissement de contenu comme titre de la publication. "; $a->strings["Disable intelligent shortening"] = "Désactiver la réduction d'URL"; $a->strings["Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original friendica post."] = "Normalement, le système tente de trouver le meilleur lien à ajouter aux publications raccourcies. Si cette option est activée, les publications raccourcies dirigeront toujours vers leur publication d'origine sur Friendica."; $a->strings["Automatically follow any GNU Social (OStatus) followers/mentioners"] = "Suivre automatiquement ceux qui me suivent ou me mentionnent sur GNU Social (OStatus)"; @@ -1322,15 +809,16 @@ $a->strings["Action after import:"] = "Action après import :"; $a->strings["Mark as seen"] = "Marquer comme vu"; $a->strings["Move to folder"] = "Déplacer vers"; $a->strings["Move to folder:"] = "Déplacer vers :"; -$a->strings["%s - (Unsupported)"] = ""; -$a->strings["%s - (Experimental)"] = ""; +$a->strings["No special theme for mobile devices"] = "Pas de thème particulier pour les terminaux mobiles"; +$a->strings["%s - (Unsupported)"] = "%s- (non supporté)"; +$a->strings["%s - (Experimental)"] = "%s- (expérimental)"; $a->strings["Sunday"] = "Dimanche"; $a->strings["Monday"] = "Lundi"; $a->strings["Display Settings"] = "Affichage"; $a->strings["Display Theme:"] = "Thème d'affichage:"; $a->strings["Mobile Theme:"] = "Thème mobile:"; -$a->strings["Suppress warning of insecure networks"] = ""; -$a->strings["Should the system suppress the warning that the current group contains members of networks that can't receive non public postings."] = ""; +$a->strings["Suppress warning of insecure networks"] = "Retire l'avertissement des réseaux non sécurisés"; +$a->strings["Should the system suppress the warning that the current group contains members of networks that can't receive non public postings."] = "Est ce que le système doit supprimer l'avertissement que le groupe actuel contient des membres de réseaux qui ne pourront pas recevoir les publications non publiques."; $a->strings["Update browser every xx seconds"] = "Mettre à jour l'affichage toutes les xx secondes"; $a->strings["Minimum of 10 seconds. Enter -1 to disable it."] = "Minimum de 10 secondes. Saisir -1 pour désactiver."; $a->strings["Number of items to display per page:"] = "Nombre d’éléments par page :"; @@ -1343,37 +831,45 @@ $a->strings["Don't show notices"] = "Ne plus afficher les avis"; $a->strings["Infinite scroll"] = "Défilement infini"; $a->strings["Automatic updates only at the top of the network page"] = "Mises à jour automatiques seulement en haut de la page Réseau"; $a->strings["When disabled, the network page is updated all the time, which could be confusing while reading."] = "Si désactivé, la page Réseau est mise à jour en permanence, ce qui peut rendre la lecture difficile."; -$a->strings["Bandwidth Saver Mode"] = ""; +$a->strings["Bandwidth Saver Mode"] = "Mode économiseur de bande-passante."; $a->strings["When enabled, embedded content is not displayed on automatic updates, they only show on page reload."] = "Si activé, le contenu intégré aux pages est mis à jour uniquement lors du rafraîchissement manuel des pages : il n'est plus mis à jour lors des rafraîchissements automatiques."; -$a->strings["Smart Threading"] = ""; -$a->strings["When enabled, suppress extraneous thread indentation while keeping it where it matters. Only works if threading is available and enabled."] = ""; +$a->strings["Smart Threading"] = "Fil de discussion intelligent."; +$a->strings["When enabled, suppress extraneous thread indentation while keeping it where it matters. Only works if threading is available and enabled."] = "Lorsqu'il est activé, il supprime les indentations supplémentaires du fil de discussion mais les conserve là où c'est important. Ne fonctionne que si le fil de discussion est disponible et activé. "; $a->strings["General Theme Settings"] = "Paramètres généraux de thème"; $a->strings["Custom Theme Settings"] = "Paramètres personnalisés de thème"; $a->strings["Content Settings"] = "Paramètres de contenu"; $a->strings["Theme settings"] = "Réglages du thème graphique"; -$a->strings["Unable to find your profile. Please contact your admin."] = ""; +$a->strings["Unable to find your profile. Please contact your admin."] = "Impossible de trouver votre profile. Merci de contacter votre administrateur."; $a->strings["Account Types"] = "Type de compte"; $a->strings["Personal Page Subtypes"] = "Sous-catégories de page personnelle"; $a->strings["Community Forum Subtypes"] = "Sous-catégories de forums communautaires"; +$a->strings["Personal Page"] = "Page personnelle"; $a->strings["Account for a personal profile."] = "Compte pour profil personnel."; -$a->strings["Account for an organisation that automatically approves contact requests as \"Followers\"."] = ""; -$a->strings["Account for a news reflector that automatically approves contact requests as \"Followers\"."] = ""; -$a->strings["Account for community discussions."] = ""; -$a->strings["Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."] = ""; -$a->strings["Account for a public profile that automatically approves contact requests as \"Followers\"."] = ""; +$a->strings["Organisation Page"] = "Page Associative"; +$a->strings["Account for an organisation that automatically approves contact requests as \"Followers\"."] = "Compte pour une organisation qui accepte les demandes comme \"Abonnés\"."; +$a->strings["News Page"] = "Page d'informations"; +$a->strings["Account for a news reflector that automatically approves contact requests as \"Followers\"."] = "Compte pour les miroirs de nouvelles qui accepte automatiquement les de contact comme \"Abonnés\"."; +$a->strings["Community Forum"] = "Forum Communautaire"; +$a->strings["Account for community discussions."] = "Compte pour des discussions communautaires."; +$a->strings["Normal Account Page"] = "Compte normal"; +$a->strings["Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."] = "Compte pour un profil personnel qui nécessite une approbation manuelle des \"Amis\" et \"Abonnés\"."; +$a->strings["Soapbox Page"] = "Compte \"boîte à savon\""; +$a->strings["Account for a public profile that automatically approves contact requests as \"Followers\"."] = "Compte pour un profil public qui accepte les demandes de contact comme \"Abonnés\"."; +$a->strings["Public Forum"] = "Forum public"; $a->strings["Automatically approves all contact requests."] = "Les demandes de participation au forum sont automatiquement acceptées."; +$a->strings["Automatic Friend Page"] = "Compte d' \"amitié automatique\""; $a->strings["Account for a popular profile that automatically approves contact requests as \"Friends\"."] = "Compte qui accepte automatiquement les demandes d'ajout en tant qu'ami."; $a->strings["Private Forum [Experimental]"] = "Forum privé [expérimental]"; $a->strings["Requires manual approval of contact requests."] = "Les demandes de participation au forum nécessitent une approbation."; $a->strings["OpenID:"] = "OpenID:"; $a->strings["(Optional) Allow this OpenID to login to this account."] = "&nbsp;(Facultatif) Autoriser cet OpenID à se connecter à ce compte."; $a->strings["Publish your default profile in your local site directory?"] = "Publier votre profil par défaut sur l'annuaire local de ce site ?"; -$a->strings["Your profile will be published in this node's local directory. Your profile details may be publicly visible depending on the system settings."] = ""; +$a->strings["Your profile will be published in this node's local directory. Your profile details may be publicly visible depending on the system settings."] = "Votre profil sera public sur l'annuaire local de cette instance. Les détails de votre profil pourront être visible publiquement selon les paramètres de votre système."; $a->strings["Publish your default profile in the global social directory?"] = "Publier votre profil par défaut sur l'annuaire global ?"; -$a->strings["Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public."] = ""; +$a->strings["Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public."] = "Votre profil sera publié dans l'annuaire global de friendica (i.e. %s). Votre profil sera visible publiquement."; $a->strings["Hide your contact/friend list from viewers of your default profile?"] = "Cacher votre liste de contacts/amis des visiteurs de votre profil par défaut?"; -$a->strings["Your contact list won't be shown in your default profile page. You can decide to show your contact list separately for each additional profile you create"] = ""; -$a->strings["Hide your profile details from anonymous viewers?"] = ""; +$a->strings["Your contact list won't be shown in your default profile page. You can decide to show your contact list separately for each additional profile you create"] = "Votre liste de contacts ne sera pas affiché sur la page de votre profil par défaut. Vous pouvez choisir d'afficher votre liste de contact séparément pour chaque profil que vous créez."; +$a->strings["Hide your profile details from anonymous viewers?"] = "Cacher les détails de votre profil pour les lecteurs anonymes."; $a->strings["Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies will still be accessible by other means."] = ""; $a->strings["Allow friends to post to your profile page?"] = "Autoriser vos amis à publier sur votre profil ?"; $a->strings["Your contacts may write posts on your profile wall. These posts will be distributed to your contacts"] = ""; @@ -1442,8 +938,9 @@ $a->strings["Relocate"] = "Relocaliser"; $a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "Si vous avez migré ce profil depuis un autre serveur et que vos contacts ne reçoivent plus vos mises à jour, essayez ce bouton."; $a->strings["Resend relocate message to contacts"] = "Renvoyer un message de relocalisation aux contacts."; $a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s suit les %3\$s de %2\$s"; -$a->strings["Do you really want to delete this suggestion?"] = "Voulez-vous vraiment supprimer cette suggestion ?"; +$a->strings["Contact suggestion successfully ignored."] = ""; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "Aucune suggestion. Si ce site est récent, merci de recommencer dans 24h."; +$a->strings["Do you really want to delete this suggestion?"] = "Voulez-vous vraiment supprimer cette suggestion ?"; $a->strings["Ignore/Hide"] = "Ignorer/cacher"; $a->strings["Friend Suggestions"] = "Suggestions d'amitiés/contacts"; $a->strings["Tag(s) removed"] = ""; @@ -1467,8 +964,6 @@ $a->strings["Unfollowing is currently not supported by your network."] = ""; $a->strings["Contact unfollowed"] = ""; $a->strings["Disconnect/Unfollow"] = "Se déconnecter/Ne plus suivre"; $a->strings["[Embedded content - reload page to view]"] = "[Ccontenu incorporé - rechargez la page pour le voir]"; -$a->strings["Do you really want to delete this video?"] = "Voulez-vous vraiment supprimer cette vidéo?"; -$a->strings["Delete Video"] = "Supprimer la vidéo"; $a->strings["No videos selected"] = "Pas de vidéo sélectionné"; $a->strings["View Video"] = "Regarder la vidéo"; $a->strings["Recent Videos"] = "Vidéos récente"; @@ -1489,7 +984,18 @@ $a->strings["Wall Photos"] = "Photos du mur"; $a->strings["Delete this item?"] = "Effacer cet élément?"; $a->strings["toggle mobile"] = "activ. mobile"; $a->strings["No system theme config value set."] = ""; +$a->strings["You must be logged in to use addons. "] = "Vous devez être connecté pour utiliser les greffons."; $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "Le jeton de sécurité du formulaire n'est pas correct. Ceci veut probablement dire que le formulaire est resté ouvert trop longtemps (plus de 3 heures) avant d'être validé."; +$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = ""; +$a->strings["The contact entries have been archived"] = ""; +$a->strings["Could not find any contact entry for this URL (%s)"] = "Aucun profil distant n'a été trouvé à cette URL (%s)"; +$a->strings["The contact has been blocked from the node"] = "Le profile distant a été bloqué"; +$a->strings["Enter new password: "] = ""; +$a->strings["Post update version number has been set to %s."] = ""; +$a->strings["Check for pending update actions."] = ""; +$a->strings["Done."] = ""; +$a->strings["Execute pending post updates."] = ""; +$a->strings["All pending post updates are done."] = ""; $a->strings["Frequently"] = ""; $a->strings["Hourly"] = ""; $a->strings["Twice daily"] = ""; @@ -1499,6 +1005,7 @@ $a->strings["Monthly"] = ""; $a->strings["DFRN"] = ""; $a->strings["OStatus"] = ""; $a->strings["RSS/Atom"] = ""; +$a->strings["Email"] = "Courriel"; $a->strings["Zot!"] = ""; $a->strings["LinkedIn"] = ""; $a->strings["XMPP/IM"] = ""; @@ -1510,6 +1017,7 @@ $a->strings["Diaspora Connector"] = ""; $a->strings["GNU Social Connector"] = ""; $a->strings["ActivityPub"] = ""; $a->strings["pnut"] = ""; +$a->strings["No answer"] = ""; $a->strings["Male"] = ""; $a->strings["Female"] = ""; $a->strings["Currently Male"] = ""; @@ -1614,11 +1122,13 @@ $a->strings["Your videos"] = "Vos vidéos"; $a->strings["Your events"] = "Vos événements"; $a->strings["Personal notes"] = "Notes personnelles"; $a->strings["Your personal notes"] = "Vos notes personnelles"; +$a->strings["Login"] = "Connexion"; $a->strings["Sign in"] = "Se connecter"; $a->strings["Home"] = "Profil"; $a->strings["Home Page"] = "Page d'accueil"; $a->strings["Register"] = "S'inscrire"; $a->strings["Create an account"] = "Créer un compte"; +$a->strings["Help"] = "Aide"; $a->strings["Help and documentation"] = "Aide et documentation"; $a->strings["Apps"] = "Applications"; $a->strings["Addon applications, utilities, games"] = "Applications supplémentaires, utilitaires, jeux"; @@ -1630,8 +1140,11 @@ $a->strings["Conversations on this and other servers"] = ""; $a->strings["Events and Calendar"] = "Événements et agenda"; $a->strings["Directory"] = "Annuaire"; $a->strings["People directory"] = "Annuaire des utilisateurs"; +$a->strings["Information"] = "Information"; $a->strings["Information about this friendica instance"] = "Information au sujet de cette instance de friendica"; +$a->strings["Terms of Service"] = "Conditions de service"; $a->strings["Terms of Service of this Friendica instance"] = ""; +$a->strings["Network"] = "Réseau"; $a->strings["Conversations from your friends"] = "Conversations de vos amis"; $a->strings["Network Reset"] = "Réinitialiser le réseau"; $a->strings["Load Network page with no filters"] = "Chargement des pages du réseau sans filtre"; @@ -1647,6 +1160,7 @@ $a->strings["Manage other pages"] = "Gérer les autres pages"; $a->strings["Account settings"] = "Compte"; $a->strings["Manage/Edit Profiles"] = "Gérer/Éditer les profiles"; $a->strings["Manage/edit friends and contacts"] = "Gérer/éditer les amitiés et contacts"; +$a->strings["Admin"] = "Admin"; $a->strings["Site setup and configuration"] = "Démarrage et configuration du site"; $a->strings["Navigation"] = "Navigation"; $a->strings["Site map"] = "Carte du site"; @@ -1686,9 +1200,11 @@ $a->strings["%d invitation available"] = [ $a->strings["Find People"] = "Trouver des personnes"; $a->strings["Enter name or interest"] = "Entrez un nom ou un centre d'intérêt"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Exemples : Robert Morgenstein, Pêche"; +$a->strings["Find"] = "Trouver"; $a->strings["Similar Interests"] = "Intérêts similaires"; $a->strings["Random Profile"] = "Profil au hasard"; $a->strings["Invite Friends"] = "Inviter des amis"; +$a->strings["Global Directory"] = "Annuaire global"; $a->strings["Local Directory"] = "Annuaire local"; $a->strings["Protocols"] = ""; $a->strings["All Protocols"] = ""; @@ -1700,23 +1216,13 @@ $a->strings["%d contact in common"] = [ 1 => "%d contacts en commun", ]; $a->strings["Post to Email"] = "Publier aux courriels"; -$a->strings["Hide your profile details from unknown viewers?"] = "Cacher les détails du profil aux visiteurs inconnus?"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Les connecteurs sont désactivés parce que \"%s\" est activé."; $a->strings["Visible to everybody"] = "Visible par tout le monde"; $a->strings["show"] = "montrer"; $a->strings["don't show"] = "cacher"; +$a->strings["Connectors"] = ""; +$a->strings["Hide your profile details from unknown viewers?"] = "Cacher les détails du profil aux visiteurs inconnus?"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Les connecteurs sont désactivés parce que \"%s\" est activé."; $a->strings["Close"] = "Fermer"; -$a->strings["Welcome "] = "Bienvenue "; -$a->strings["Please upload a profile photo."] = "Merci d'illustrer votre profil d'une image."; -$a->strings["Welcome back "] = "Bienvenue à nouveau, "; -$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = ""; -$a->strings["The contact entries have been archived"] = ""; -$a->strings["Enter new password: "] = ""; -$a->strings["Post update version number has been set to %s."] = ""; -$a->strings["Check for pending update actions."] = ""; -$a->strings["Done."] = ""; -$a->strings["Execute pending post updates."] = ""; -$a->strings["All pending post updates are done."] = ""; $a->strings["The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = ""; $a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "Vous pourriez avoir besoin d'importer le fichier \"database.sql\" manuellement au moyen de phpmyadmin ou de la commande mysql."; $a->strings["Please see the file \"INSTALL.txt\"."] = "Référez-vous au fichier \"INSTALL.txt\"."; @@ -1755,6 +1261,8 @@ $a->strings["POSIX PHP module"] = ""; $a->strings["Error: POSIX PHP module required but not installed."] = ""; $a->strings["JSON PHP module"] = ""; $a->strings["Error: JSON PHP module required but not installed."] = ""; +$a->strings["File Information PHP module"] = ""; +$a->strings["Error: File Information PHP module required but not installed."] = ""; $a->strings["The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server and it is unable to do so."] = ""; $a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Le plus souvent, il s'agit d'un problème de permission. Le serveur web peut ne pas être capable d'écrire dans votre répertoire - alors que vous-même le pouvez."; $a->strings["At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder."] = ""; @@ -1831,21 +1339,13 @@ $a->strings["%s is now friends with %s"] = "%s est désormais ami(e) avec %s"; $a->strings["Friend Suggestion"] = "Suggestion d'amitié/contact"; $a->strings["Friend/Connect Request"] = "Demande de connexion/relation"; $a->strings["New Follower"] = "Nouvel abonné"; -$a->strings["Error 400 - Bad Request"] = ""; -$a->strings["Error 401 - Unauthorized"] = ""; -$a->strings["Error 403 - Forbidden"] = ""; -$a->strings["Error 404 - Not Found"] = ""; -$a->strings["Error 500 - Internal Server Error"] = ""; -$a->strings["Error 503 - Service Unavailable"] = ""; -$a->strings["The server cannot or will not process the request due to an apparent client error."] = ""; -$a->strings["Authentication is required and has failed or has not yet been provided."] = ""; -$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = ""; -$a->strings["The requested resource could not be found but may be available in the future."] = ""; -$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = ""; -$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = ""; +$a->strings["Welcome %s"] = ""; +$a->strings["Please upload a profile photo."] = "Merci d'illustrer votre profil d'une image."; +$a->strings["Welcome back %s"] = ""; $a->strings["Update %s failed. See error logs."] = "Mise-à-jour %s échouée. Voir les journaux d'erreur."; $a->strings["\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = ""; $a->strings["The error message is\n[pre]%s[/pre]"] = "Le message d’erreur est\n[pre]%s[/pre]"; +$a->strings["[Friendica Notify] Database update"] = ""; $a->strings["\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s."] = ""; $a->strings["Error decoding account file"] = "Une erreur a été détecté en décodant un fichier utilisateur"; $a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Erreur ! Pas de ficher de version existant ! Êtes vous sur un compte Friendica ?"; @@ -1879,6 +1379,7 @@ $a->strings["Use mailto: in front of address to force email check."] = "Utilisez $a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "L'adresse de profil spécifiée correspond à un réseau qui a été désactivé sur ce site."; $a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Profil limité. Cette personne ne sera pas capable de recevoir des notifications directes/personnelles de votre part."; $a->strings["Unable to retrieve contact information."] = "Impossible de récupérer les informations du contact."; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; $a->strings["Starts:"] = "Débute :"; $a->strings["Finishes:"] = "Finit :"; $a->strings["all-day"] = "toute la journée"; @@ -1902,7 +1403,9 @@ $a->strings["Default privacy group for new contacts"] = "Paramètres de confiden $a->strings["Everybody"] = "Tout le monde"; $a->strings["edit"] = "éditer"; $a->strings["Edit group"] = "Editer groupe"; +$a->strings["Contacts not in any group"] = "Contacts n'appartenant à aucun groupe"; $a->strings["Create a new group"] = "Créer un nouveau groupe"; +$a->strings["Group Name: "] = "Nom du groupe : "; $a->strings["Edit groups"] = "Modifier les groupes"; $a->strings["activity"] = "activité"; $a->strings["comment"] = [ @@ -1915,11 +1418,11 @@ $a->strings["bytes"] = "octets"; $a->strings["View on separate page"] = "Voir dans une nouvelle page"; $a->strings["view on separate page"] = "voir dans une nouvelle page"; $a->strings["[no subject]"] = "[pas de sujet]"; -$a->strings["Requested account is not available."] = "Le compte demandé n'est pas disponible."; -$a->strings["Requested profile is not available."] = "Le profil demandé n'est pas disponible."; $a->strings["Edit profile"] = "Editer le profil"; $a->strings["Atom feed"] = "Flux Atom"; $a->strings["Manage/edit profiles"] = "Gérer/éditer les profils"; +$a->strings["Status:"] = "Statut :"; +$a->strings["Homepage:"] = "Page personnelle :"; $a->strings["XMPP:"] = "XMPP"; $a->strings["g A l F d"] = "g A | F d"; $a->strings["F d"] = "F d"; @@ -1996,7 +1499,446 @@ $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Yo $a->strings["Registration at %s"] = ""; $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"] = ""; $a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."] = ""; +$a->strings["Registration details for %s"] = "Détails d'inscription pour %s"; +$a->strings["Addon not found."] = ""; +$a->strings["Addon %s disabled."] = "Add-on %s désactivé."; +$a->strings["Addon %s enabled."] = "Add-on %s activé."; +$a->strings["Disable"] = "Désactiver"; +$a->strings["Enable"] = "Activer"; +$a->strings["Administration"] = "Administration"; +$a->strings["Toggle"] = "Activer/Désactiver"; +$a->strings["Author: "] = "Auteur : "; +$a->strings["Maintainer: "] = "Mainteneur : "; +$a->strings["Addon %s failed to install."] = ""; +$a->strings["Reload active addons"] = "Recharger les add-ons activés."; +$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "Il n'y a pas d'add-on disponible sur votre serveur. Vous pouvez trouver le dépôt officiel d'add-ons sur %1\$s et des add-ons non-officiel dans le répertoire d'add-ons ouvert sur %2\$s."; +$a->strings["%s contact unblocked"] = [ + 0 => "%s contact débloqué", + 1 => "%s profiles distants débloqués", +]; +$a->strings["Remote Contact Blocklist"] = "Liste des profiles distants bloqués"; +$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "Cette page vous permet de refuser toutes les publications d'un profile distant sur votre site."; +$a->strings["Block Remote Contact"] = "Bloquer le profile distant"; +$a->strings["select all"] = "tout sélectionner"; +$a->strings["select none"] = "Sélectionner tous"; +$a->strings["Unblock"] = "Débloquer"; +$a->strings["No remote contact is blocked from this node."] = "Aucun profil distant n'est bloqué"; +$a->strings["Blocked Remote Contacts"] = "Profils distants bloqués"; +$a->strings["Block New Remote Contact"] = "Bloquer un nouveau profil distant"; +$a->strings["Photo"] = "Photo"; +$a->strings["%s total blocked contact"] = [ + 0 => "%s profil distant bloqué", + 1 => "%s profils distans bloqués", +]; +$a->strings["URL of the remote contact to block."] = "URL du profil distant à bloquer."; +$a->strings["Server added to blocklist."] = "Serveur ajouté à la liste noire."; +$a->strings["Site blocklist updated."] = "Liste noire mise à jour."; +$a->strings["The blocked domain"] = "Domaine bloqué"; +$a->strings["Reason for the block"] = "Raison du blocage."; +$a->strings["The reason why you blocked this domain."] = "Raison pour laquelle vous souhaitez bloquer ce domaine."; +$a->strings["Delete domain"] = "Supprimer le domaine."; +$a->strings["Check to delete this entry from the blocklist"] = "Cochez la case pour retirer cette entrée de la liste noire"; +$a->strings["Server Blocklist"] = "Serveurs bloqués"; +$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "Cette page permet de créer une liste noire des serveurs de la fédération qui ne sont pas autorisés à interagir avec votre serveur. Pour chaque serveur bloqué, vous devez fournir la raison du blocage."; +$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "La liste des serveurs bloqués sera publiée sur la page /friendica pour que les utilisateurs rencontrant des problèmes de communication puissent en comprendre la raison."; +$a->strings["Add new entry to block list"] = "Ajouter une nouvelle entrée à la liste noire"; +$a->strings["Server Domain"] = "Adresse du serveur"; +$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "Adresse du serveur à ajouter à la liste noire. Ne pas mettre le protocole."; +$a->strings["Block reason"] = "Raison du blocage."; +$a->strings["Add Entry"] = "Ajouter"; +$a->strings["Save changes to the blocklist"] = "Sauvegarder la liste noire"; +$a->strings["Current Entries in the Blocklist"] = "Entrées de la liste noire"; +$a->strings["Delete entry from blocklist"] = "Supprimer l'entrée de la liste noire"; +$a->strings["Delete entry from blocklist?"] = "Supprimer l'entrée de la liste noire ?"; +$a->strings["Update has been marked successful"] = "Mise-à-jour validée comme 'réussie'"; +$a->strings["Database structure update %s was successfully applied."] = "La structure de base de données pour la mise à jour %s a été appliquée avec succès."; +$a->strings["Executing of database structure update %s failed with error: %s"] = "L'exécution de la mise à jour %s pour la structure de base de données a échoué avec l'erreur: %s"; +$a->strings["Executing %s failed with error: %s"] = "L'exécution %s a échoué avec l'erreur: %s"; +$a->strings["Update %s was successfully applied."] = "Mise-à-jour %s appliquée avec succès."; +$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "La mise-à-jour %s n'a pas retourné de détails. Impossible de savoir si elle a réussi."; +$a->strings["There was no additional update function %s that needed to be called."] = "Il n'y avait aucune fonction supplémentaire de mise à jour %s qui devait être appelé"; +$a->strings["No failed updates."] = "Pas de mises-à-jour échouées."; +$a->strings["Check database structure"] = "Vérifier la structure de la base de données"; +$a->strings["Failed Updates"] = "Mises-à-jour échouées"; +$a->strings["This does not include updates prior to 1139, which did not return a status."] = "Ceci n'inclut pas les versions antérieures à la 1139, qui ne retournaient jamais de détails."; +$a->strings["Mark success (if update was manually applied)"] = "Marquer comme 'réussie' (dans le cas d'une mise-à-jour manuelle)"; +$a->strings["Attempt to execute this update step automatically"] = "Tenter d'éxecuter cette étape automatiquement"; +$a->strings["Lock feature %s"] = "Verouiller la fonctionnalité %s"; +$a->strings["Manage Additional Features"] = "Gérer les fonctionnalités avancées"; +$a->strings["unknown"] = "inconnu"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "Cette page montre quelques statistiques de la partie connue du réseau social fédéré dont votre instance Friendica fait partie. Ces chiffres sont partiels et ne reflètent que la portion du réseau dont votre instance a connaissance."; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "En activant la fonctionnalité Répertoire de Contacts Découverts Automatiquement, cela améliorera la qualité des chiffres présentés ici."; +$a->strings["Federation Statistics"] = "Statistiques Federation"; +$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Ce site a connaissance de %d sites distants totalisant %d utilisateurs répartis entre les plate-formes suivantes :"; +$a->strings["Item marked for deletion."] = "L'élément va être supprimé."; +$a->strings["Delete Item"] = "Supprimer un élément"; +$a->strings["Delete this Item"] = "Supprimer l'élément"; +$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Sur cette page, vous pouvez supprimer un élément de votre noeud. Si cet élément est le premier post d'un fil de discussion, le fil de discussion entier sera supprimé."; +$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "Vous devez connaître le GUID de l'élément. Vous pouvez le trouver en sélectionnant l'élément puis en lisant l'URL. La dernière partie de l'URL est le GUID. Exemple: http://example.com/display/123456 a pour GUID: 123456."; +$a->strings["GUID"] = "GUID"; +$a->strings["The GUID of the item you want to delete."] = "GUID de l'élément à supprimer."; +$a->strings["Item Guid"] = ""; +$a->strings["Log settings updated."] = "Réglages des journaux mis-à-jour."; +$a->strings["PHP log currently enabled."] = "Log PHP actuellement activé."; +$a->strings["PHP log currently disabled."] = "Log PHP actuellement desactivé."; +$a->strings["Logs"] = "Journaux"; +$a->strings["Clear"] = "Effacer"; +$a->strings["Enable Debugging"] = "Activer le déboggage"; +$a->strings["Log file"] = "Fichier de journaux"; +$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Accès en écriture par le serveur web requis. Relatif à la racine de votre installation de Friendica."; +$a->strings["Log level"] = "Niveau de journalisaton"; +$a->strings["PHP logging"] = "Log PHP"; +$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "Pour activer temporairement la journalisation de PHP vous pouvez insérez les lignes suivantes au début du fichier index.php dans votre répertoire Friendica. The nom de fichier défini dans la ligne 'error_log' est relatif au répertoire d'installation de Friendica et le serveur web doit avoir le droit d'écriture sur ce fichier. Les lignes log_errors et display_errors prennent les valeurs 0 et 1 respectivement pour les activer ou désactiver."; +$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Erreur lors de l'ouverture du fichier de journal %1\$s.\\r\\n
    Veuillez vérifier que le fichier %1\$s existe et que le serveur web a le droit de lecture dessus."; +$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Erreur lors de l'ouverture du fichier de journal %1\$s.\\r\\n
    Veuillez vérifier que le fichier %1\$s existe et que le serveur web a le droit de lecture dessus."; +$a->strings["View Logs"] = "Voir les logs"; +$a->strings["Inspect Deferred Worker Queue"] = "Détail des tâches de fond reportées"; +$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "Cette page détaille les tâches de fond reportées après avoir échoué une première fois."; +$a->strings["Inspect Worker Queue"] = "Détail des tâches de fond en attente"; +$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "Cette page détaille les tâches de fond en attente. Elles seront traitées lors de la prochaine exécution de la tâche planifiée que vous avez définie lors de l'installation."; +$a->strings["ID"] = "ID"; +$a->strings["Job Parameters"] = "Paramètres de la tâche"; +$a->strings["Created"] = "Créé"; +$a->strings["Priority"] = "Priorité"; +$a->strings["Can not parse base url. Must have at least ://"] = "Impossible d'analyser l'URL de base. Doit contenir au moins ://"; +$a->strings["Invalid storage backend setting value."] = ""; +$a->strings["Site settings updated."] = "Réglages du site mis-à-jour."; +$a->strings["No community page for local users"] = "Pas de page communauté pour les utilisateurs enregistrés"; +$a->strings["No community page"] = "Aucune page de communauté"; +$a->strings["Public postings from users of this site"] = "Publications publiques des utilisateurs de ce site"; +$a->strings["Public postings from the federated network"] = "Publications publiques du réseau fédéré"; +$a->strings["Public postings from local users and the federated network"] = "Publications publiques des utilisateurs du site et du réseau fédéré"; +$a->strings["Disabled"] = "Désactivé"; +$a->strings["Users"] = "Utilisateurs"; +$a->strings["Users, Global Contacts"] = "Utilisateurs, Contacts Globaux"; +$a->strings["Users, Global Contacts/fallback"] = "Utilisateurs, Contacts Globaux/alternative"; +$a->strings["One month"] = "Un mois"; +$a->strings["Three months"] = "Trois mois"; +$a->strings["Half a year"] = "Six mois"; +$a->strings["One year"] = "Un an"; +$a->strings["Multi user instance"] = "Instance multi-utilisateurs"; +$a->strings["Closed"] = "Fermé"; +$a->strings["Requires approval"] = "Demande une apptrobation"; +$a->strings["Open"] = "Ouvert"; +$a->strings["No SSL policy, links will track page SSL state"] = "Pas de politique SSL, le liens conserveront l'état SSL de la page"; +$a->strings["Force all links to use SSL"] = "Forcer tous les liens à utiliser SSL"; +$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Certificat auto-signé, n'utiliser SSL que pour les liens locaux (non recommandé)"; +$a->strings["Don't check"] = "Ne pas rechercher"; +$a->strings["check the stable version"] = "Rechercher les versions stables"; +$a->strings["check the development version"] = "Rechercher les versions de développement"; +$a->strings["Database (legacy)"] = "Base de donnée (historique)"; +$a->strings["Site"] = "Site"; +$a->strings["Republish users to directory"] = "Republier les utilisateurs sur le répertoire"; +$a->strings["Registration"] = "Inscription"; +$a->strings["File upload"] = "Téléversement de fichier"; +$a->strings["Policies"] = "Politiques"; +$a->strings["Auto Discovered Contact Directory"] = "Répertoire de Contacts Découverts Automatiquement"; +$a->strings["Performance"] = "Performance"; +$a->strings["Worker"] = "Worker"; +$a->strings["Message Relay"] = "Relai de publication"; +$a->strings["Relocate Instance"] = "Déménager le site"; +$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Attention! Cette fonctionnalité avancée peut rendre votre site inaccessible."; +$a->strings["Site name"] = "Nom du site"; +$a->strings["Sender Email"] = "Courriel de l'émetteur"; +$a->strings["The email address your server shall use to send notification emails from."] = "L'adresse courriel à partir de laquelle votre serveur enverra des courriels."; +$a->strings["Banner/Logo"] = "Bannière/Logo"; +$a->strings["Shortcut icon"] = "Icône de raccourci"; +$a->strings["Link to an icon that will be used for browsers."] = "Lien vers une icône qui sera utilisée pour les navigateurs."; +$a->strings["Touch icon"] = "Icône pour systèmes tactiles"; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Lien vers une icône qui sera utilisée pour les tablettes et les mobiles."; +$a->strings["Additional Info"] = "Informations supplémentaires"; +$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "Description publique destinée au répertoire global de sites Friendica."; +$a->strings["System language"] = "Langue du système"; +$a->strings["System theme"] = "Thème du système"; +$a->strings["Default system theme - may be over-ridden by user profiles - Change default theme settings"] = ""; +$a->strings["Mobile system theme"] = "Thème mobile"; +$a->strings["Theme for mobile devices"] = "Thème pour les terminaux mobiles"; +$a->strings["SSL link policy"] = "Politique SSL pour les liens"; +$a->strings["Determines whether generated links should be forced to use SSL"] = "Détermine si les liens générés doivent forcer l'utilisation de SSL"; +$a->strings["Force SSL"] = "SSL obligatoire"; +$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Redirige toutes les requêtes en clair vers des requêtes SSL. Attention : sur certains systèmes cela peut conduire à des boucles de redirection infinies."; +$a->strings["Hide help entry from navigation menu"] = "Cacher l'aide du menu de navigation"; +$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Cacher du menu de navigation l'entrée vers les pages d'aide. Vous pouvez toujours y accéder en tapant directement /help."; +$a->strings["Single user instance"] = "Instance mono-utilisateur"; +$a->strings["Make this instance multi-user or single-user for the named user"] = "Transformer cette en instance en multi-utilisateur ou mono-utilisateur pour cet l'utilisateur."; +$a->strings["File storage backend"] = "Destination du stockage de fichier"; +$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "La destination du stockage des fichiers. Si vous changez cette destination, vous pouvez migrer les fichiers existants. Si vous ne le faites pas, ils resteront accessibles à leur emplacement actuel. Veuillez consulter la page d'aide à la Configuration (en anglais) pour plus d'information sur les choix possibles et la procédure de migration."; +$a->strings["Maximum image size"] = "Taille maximale des images"; +$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Taille maximale des images envoyées (en octets). 0 par défaut, c'est à dire \"aucune limite\"."; +$a->strings["Maximum image length"] = "Longueur maximale des images"; +$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Longueur maximale en pixels du plus long côté des images téléversées. La valeur par défaut est -1 : absence de limite."; +$a->strings["JPEG image quality"] = "Qualité JPEG des images"; +$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Les JPEGs téléversés seront sauvegardés avec ce niveau de qualité [0-100]. La valeur par défaut est 100, soit la qualité maximale."; +$a->strings["Register policy"] = "Politique d'inscription"; +$a->strings["Maximum Daily Registrations"] = "Inscriptions maximum par jour"; +$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "Si les inscriptions sont permises ci-dessus, ceci fixe le nombre maximum d'inscriptions de nouveaux utilisateurs acceptées par jour. Si les inscriptions ne sont pas ouvertes, ce paramètre n'a aucun effet."; +$a->strings["Register text"] = "Texte d'inscription"; +$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Ce texte est affiché sur la page d'inscription. Les BBCodes sont autorisés."; +$a->strings["Forbidden Nicknames"] = "Identifiants réservés"; +$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Liste d'identifiants réservés séparés par des virgules. Ces identifiants ne peuvent pas être utilisés pour s'enregistrer. La liste de base provient de la RFC 2142."; +$a->strings["Accounts abandoned after x days"] = "Les comptes sont abandonnés après x jours"; +$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Pour ne pas gaspiller les ressources système, on cesse d'interroger les sites distants pour les comptes abandonnés. Mettre 0 pour désactiver cette fonction."; +$a->strings["Allowed friend domains"] = "Domaines autorisés"; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Une liste de domaines, séparés par des virgules, autorisés à établir des relations avec les utilisateurs de ce site. Les '*' sont acceptés. Laissez vide pour autoriser tous les domaines"; +$a->strings["Allowed email domains"] = "Domaines courriel autorisés"; +$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Liste de domaines - séparés par des virgules - dont les adresses e-mail sont autorisées à s'inscrire sur ce site. Les '*' sont acceptées. Laissez vide pour autoriser tous les domaines"; +$a->strings["No OEmbed rich content"] = "Désactiver le texte riche avec OEmbed"; +$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Evite le contenu riche avec OEmbed (comme un document PDF incrusté), sauf provenant des domaines autorisés listés ci-après."; +$a->strings["Allowed OEmbed domains"] = "Domaines autorisés pour OEmbed"; +$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Liste de noms de domaine séparés par des virgules. Ces domaines peuvent afficher du contenu riche avec OEmbed."; +$a->strings["Block public"] = "Interdire la publication globale"; +$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Cocher pour bloquer les accès anonymes (non-connectés) à tout sauf aux pages personnelles publiques."; +$a->strings["Force publish"] = "Forcer la publication globale"; +$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Cocher pour publier obligatoirement tous les profils locaux dans l'annuaire du site."; +$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Activer cette option peut potentiellement enfreindre les lois sur la protection de la vie privée comme le RGPD."; +$a->strings["Global directory URL"] = "URL de l'annuaire global"; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL de l'annuaire global. Si ce champ n'est pas défini, l'annuaire global sera complètement indisponible pour l'application."; +$a->strings["Private posts by default for new users"] = "Publications privées par défaut pour les nouveaux utilisateurs"; +$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Rendre les publications de tous les nouveaux utilisateurs accessibles seulement par le groupe de contacts par défaut, et non par tout le monde."; +$a->strings["Don't include post content in email notifications"] = "Ne pas inclure le contenu posté dans l'e-mail de notification"; +$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Ne pas inclure le contenu de publication/commentaire/message privé/etc dans l'e-mail de notification qui est envoyé à partir du site, par mesure de confidentialité."; +$a->strings["Disallow public access to addons listed in the apps menu."] = "Interdire l’accès public pour les greffons listées dans le menu apps."; +$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Cocher cette case restreint la liste des greffons dans le menu des applications seulement aux membres."; +$a->strings["Don't embed private images in posts"] = "Ne pas miniaturiser les images privées dans les publications"; +$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Ne remplacez pas les images privées hébergées localement dans les publications avec une image attaché en copie, car cela signifie que le contact qui reçoit les publications contenant ces photos privées devra s’authentifier pour charger chaque image, ce qui peut prendre du temps."; +$a->strings["Explicit Content"] = "Contenu adulte"; +$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Activez cette option si votre site est principalement utilisé pour publier du contenu adulte. Cette information est publique et peut être utilisée pour filtrer votre site dans le répertoire de site global. Elle est également affichée sur la page d'inscription."; +$a->strings["Allow Users to set remote_self"] = "Autoriser les utilisateurs à définir remote_self"; +$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "Cocher cette case, permet à chaque utilisateur de marquer chaque contact comme un remote_self dans la boîte de dialogue de réparation des contacts. Activer cette fonction à un contact engendre la réplique de toutes les publications d'un contact dans le flux d'activités des utilisateurs."; +$a->strings["Block multiple registrations"] = "Interdire les inscriptions multiples"; +$a->strings["Disallow users to register additional accounts for use as pages."] = "Ne pas permettre l'inscription de comptes multiples comme des pages."; +$a->strings["Disable OpenID"] = "Désactiver OpenID"; +$a->strings["Disable OpenID support for registration and logins."] = "Désactive OpenID pour l'inscription et l'identification."; +$a->strings["No Fullname check"] = "Désactiver l'obligation de nom complet"; +$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Supprime l'obligation d'avoir au moins un espace dans le nom complet des utilisateurs pour séparer leur prénom et nom de famille."; +$a->strings["Community pages for visitors"] = "Affichage de la page communauté pour les utilisateurs anonymes"; +$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Quelles pages communauté sont disponibles pour les utilisateurs anonymes."; +$a->strings["Posts per user on community page"] = "Nombre de publications par utilisateur sur la page de la communauté (n'est pas valide pour "; +$a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = ""; +$a->strings["Disable OStatus support"] = "Désactiver OStatus"; +$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Désactive le support natif d'OStatus (StatusNet, GNU Social, etc...). Toutes les communications via OStatus sont publiques, donc des avertissements de protection de vie privée sont régulièrement affichés."; +$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Importer seulement les conversations OStatus/ActivityPub provenant de profils distants connus."; +$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normalement toutes les conversations auxquelles les contacts suivis participent sont importées en entier peu importe l'auteur original. Avec cette option, seules les conversations démarrées par un contact suivi sont importées."; +$a->strings["OStatus support can only be enabled if threading is enabled."] = "Le support OStatus ne peut être activé que si l'imbrication des commentaires est activée."; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "Le support de Diaspora ne peut pas être activé parce que Friendica a été installé dans un sous-répertoire."; +$a->strings["Enable Diaspora support"] = "Activer le support de Diaspora"; +$a->strings["Provide built-in Diaspora network compatibility."] = "Fournir une compatibilité Diaspora intégrée."; +$a->strings["Only allow Friendica contacts"] = "N'autoriser que les contacts Friendica"; +$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "Tous les contacts doivent utiliser les protocoles de Friendica. Tous les autres protocoles de communication intégrés sont désactivés."; +$a->strings["Verify SSL"] = "Vérifier SSL"; +$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "Si vous le souhaitez, vous pouvez activier la vérification stricte des certificats. Cela signifie que vous ne pourrez pas vous connecter (du tout) aux sites SSL munis d'un certificat auto-signé."; +$a->strings["Proxy user"] = "Utilisateur du proxy"; +$a->strings["Proxy URL"] = "URL du proxy"; +$a->strings["Network timeout"] = "Dépassement du délai d'attente du réseau"; +$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Valeur en secondes. Mettre à 0 pour 'illimité' (pas recommandé)."; +$a->strings["Maximum Load Average"] = "Plafond de la charge moyenne"; +$a->strings["Maximum system load before delivery and poll processes are deferred - default %d."] = ""; +$a->strings["Maximum Load Average (Frontend)"] = "Plafond de la charge moyenne (frontale)"; +$a->strings["Maximum system load before the frontend quits service - default 50."] = "Limite de charge système pour le rendu des pages - défaut 50."; +$a->strings["Minimal Memory"] = "Mémoire minimum"; +$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Mémoire libre minimale pour les tâches de fond (en Mo). Requiert l'accès à /proc/meminfo. La valeur par défaut est 0 (désactivé)."; +$a->strings["Maximum table size for optimization"] = "Limite de taille de table pour l'optimisation"; +$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Limite de taille de table (en Mo) pour l'optimisation automatique. -1 pour désactiver cette limite."; +$a->strings["Minimum level of fragmentation"] = "Seuil de fragmentation"; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Seuil de fragmentation pour que l'optimisation automatique se déclenche - défaut 30%."; +$a->strings["Periodical check of global contacts"] = "Vérification périodique des contacts globaux"; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "Si activé, les données manquantes et obsolètes et la vitalité des contacts et des serveurs seront vérifiées périodiquement dans les contacts globaux."; +$a->strings["Days between requery"] = "Nombre de jours entre les requêtes"; +$a->strings["Number of days after which a server is requeried for his contacts."] = "Nombre de jours avant qu'une requête de contacts soient envoyée à nouveau à un serveur."; +$a->strings["Discover contacts from other servers"] = "Découvrir des contacts des autres serveurs"; +$a->strings["Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."] = ""; +$a->strings["Timeframe for fetching global contacts"] = "Fréquence de récupération des contacts globaux"; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "Quand la découverte de contacts est activée, cette valeur détermine la fréquence de récupération des données des contacts globaux présents sur d'autres serveurs."; +$a->strings["Search the local directory"] = "Chercher dans le répertoire local"; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Cherche dans le répertoire local au lieu du répertoire local. Quand une recherche locale est effectuée, la même recherche est effectuée dans le répertoire global en tâche de fond. Cela améliore les résultats de la recherche si elle est réitérée."; +$a->strings["Publish server information"] = "Publier les informations du serveur"; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = ""; +$a->strings["Check upstream version"] = "Mises à jour"; +$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Permet de vérifier la présence de nouvelles versions de Friendica sur github. Si une nouvelle version est disponible, vous recevrez une notification dans l'interface d'administration."; +$a->strings["Suppress Tags"] = "Masquer les tags"; +$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Ne pas afficher la liste des hashtags à la fin d’un message."; +$a->strings["Clean database"] = "Nettoyer la base de données"; +$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Supprime les conversations distantes anciennes, les enregistrements orphelins et le contenu obsolète de certaines tables de débogage."; +$a->strings["Lifespan of remote items"] = "Durée de vie des conversations distantes"; +$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations distantes sont supprimées. Les conversations démarrées par un utilisateur local, étoilées ou archivées sont toujours conservées. 0 pour désactiver."; +$a->strings["Lifespan of unclaimed items"] = "Durée de vie des conversations relayées"; +$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "Si le nettoyage de la base de donnée est actif, cette valeur représente le délai en jours après lequel les conversations relayées qui n'ont pas reçu d'interactions locales sont supprimées. La valeur par défaut est 90 jours. 0 pour aligner cette valeur sur la durée de vie des conversations distantes."; +$a->strings["Lifespan of raw conversation data"] = "Durée de vie des méta-données de conversation"; +$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "Cette valeur représente le délai en jours après lequel les méta-données de conversations sont supprimées. Ces méta-données sont utilisées par les protocoles ActivityPub et OStatus, et pour le débogage. Il est prudent de conserver ces meta-données pendant au moins 14 jours. La valeur par défaut est 90 jours."; +$a->strings["Path to item cache"] = "Chemin vers le cache des objets."; +$a->strings["The item caches buffers generated bbcode and external images."] = "Le cache de publications contient des textes HTML de BBCode compil's et une copie de chaque image distante."; +$a->strings["Cache duration in seconds"] = "Durée du cache en secondes"; +$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "Combien de temps les fichiers de cache doivent être maintenu? La valeur par défaut est 86400 secondes (une journée). Pour désactiver le cache de l'item, définissez la valeur à -1."; +$a->strings["Maximum numbers of comments per post"] = "Nombre maximum de commentaires par publication"; +$a->strings["How much comments should be shown for each post? Default value is 100."] = "Combien de commentaires doivent être affichés pour chaque publication? Valeur par défaut: 100."; +$a->strings["Temp path"] = "Chemin des fichiers temporaires"; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Si vous n'avez pas la possibilité d'avoir accès au répertoire temp, entrez un autre répertoire ici."; +$a->strings["Disable picture proxy"] = "Désactiver le proxy image "; +$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "Le proxy d'image améliore les performances d'affichage et protège la vie privée des utilisateurs locaux. Il n'est pas recommandé de l'activer sur un serveur avec une bande passante limitée."; +$a->strings["Only search in tags"] = "Rechercher seulement dans les étiquettes"; +$a->strings["On large systems the text search can slow down the system extremely."] = "La recherche textuelle peut ralentir considérablement les systèmes de grande taille."; +$a->strings["New base url"] = "Nouvelle URL de base"; +$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Changer l'URL de base de ce serveur. Envoie un message de déménagement à tous les contacts Friendica et Diaspora des utilisateurs locaux."; +$a->strings["RINO Encryption"] = "Chiffrement RINO"; +$a->strings["Encryption layer between nodes."] = "Couche de chiffrement entre les nœuds du réseau."; +$a->strings["Enabled"] = "Activé"; +$a->strings["Maximum number of parallel workers"] = "Nombre maximum de processus simultanés"; +$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "Sur un hébergement partagé, mettez %d. Sur des serveurs plus puissants, %d est optimal. La valeur par défaut est %d."; +$a->strings["Don't use \"proc_open\" with the worker"] = ""; +$a->strings["Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = ""; +$a->strings["Enable fastlane"] = "Activer la file prioritaire"; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "La file prioritaire est un ouvrier additionel démarré quand des tâches de fondde grande importance sont bloquées par des tâches de moindre importance dans la file d'attente."; +$a->strings["Enable frontend worker"] = "Activer l'ouvrier manuel"; +$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = ""; +$a->strings["Subscribe to relay"] = "S'abonner au relai"; +$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Active la réception de conversations publiques relayées. Elles sont affichées dans la page de recherche, les recherches enregistrées et dans la page de communauté globale."; +$a->strings["Relay server"] = "Serveur relai"; +$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "URL du serveur relai auquel les conversations publique locales doivent être soumises."; +$a->strings["Direct relay transfer"] = "Relai direct"; +$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Soumet les conversations publiques aux serveurs distants sans passer par le serveur relai."; +$a->strings["Relay scope"] = "Filtre du relai"; +$a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = ""; +$a->strings["all"] = "Tous"; +$a->strings["tags"] = "Tags"; +$a->strings["Server tags"] = "Tags de filtre du relai"; +$a->strings["Comma separated list of tags for the \"tags\" subscription."] = ""; +$a->strings["Allow user tags"] = "Inclure les tags des utilisateurs"; +$a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = ""; +$a->strings["Start Relocation"] = "Démarrer le déménagement"; +$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "
    Votre base de donnée comporte des tables MYISAM. Vous devriez changer pour InnoDB car il est prévu d'utiliser des fonctionnalités spécifiques à InnoDB à l'avenir. Veuillez consulter ce guide de conversion pour mettre à jour votre base de donnée. Vous pouvez également exécuter la commande php bin/console.php dbstructure toinnodb à la racine de votre répertoire Friendica pour une conversion automatique."; +$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "Une nouvelle version de Friendica est disponible. Votre version est %1\$s, la nouvelle version est %2\$s"; +$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "La mise à jour automatique de la base de donnée a échoué. Veuillez exécuter la commande php bin/console.php dbstructure update depuis votre répertoire Friendica et noter les erreurs potentielles."; +$a->strings["The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)"] = ""; +$a->strings["The worker was never executed. Please check your database structure!"] = "Le 'worker' n'a pas encore été exécuté. Vérifiez la structure de votre base de données."; +$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "La dernière exécution du 'worker' s'est déroulée à %s, c'est-à-dire il y a plus d'une heure. Vérifiez les réglages de crontab."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier .htconfig.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "La configuration de votre site Friendica est maintenant stockée dans le fichier config/local.config.php, veuillez copier le fichier config/local-sample.config.php et transférer votre configuration depuis le fichier config/local.ini.php. Veuillez consulter la page d'aide de configuration (en anglais) pour vous aider dans la transition."; +$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s n'est pas accessible sur votre site. C'est un problème de configuration sévère qui empêche toute communication avec les serveurs distants. Veuillez consulter la page d'aide à l'installation (en anglais) pour plus d'information."; +$a->strings["Friendica's system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."] = ""; +$a->strings["Friendica's current system.basepath '%s' is wrong and the config file '%s' isn't used."] = ""; +$a->strings["Friendica's current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."] = ""; +$a->strings["Normal Account"] = "Compte normal"; +$a->strings["Automatic Follower Account"] = "Profile Resuivant"; +$a->strings["Public Forum Account"] = "Forum public"; +$a->strings["Automatic Friend Account"] = "Compte auto-amical"; +$a->strings["Blog Account"] = "Compte de blog"; +$a->strings["Private Forum Account"] = "Forum privé"; +$a->strings["Message queues"] = "Files d'attente des messages"; +$a->strings["Server Settings"] = "Paramètres du site"; +$a->strings["Summary"] = "Résumé"; +$a->strings["Registered users"] = "Utilisateurs inscrits"; +$a->strings["Pending registrations"] = "Inscriptions en attente"; +$a->strings["Version"] = "Version"; +$a->strings["Active addons"] = "Add-ons actifs"; +$a->strings["Theme settings updated."] = "Réglages du thème sauvés."; +$a->strings["Theme %s disabled."] = ""; +$a->strings["Theme %s successfully enabled."] = ""; +$a->strings["Theme %s failed to install."] = ""; +$a->strings["Screenshot"] = "Capture d'écran"; +$a->strings["Themes"] = "Thèmes"; +$a->strings["Unknown theme."] = ""; +$a->strings["Reload active themes"] = "Recharger les thèmes actifs"; +$a->strings["No themes found on the system. They should be placed in %1\$s"] = "Aucun thème trouvé. Leur emplacement d'installation est%1\$s."; +$a->strings["[Experimental]"] = "[Expérimental]"; +$a->strings["[Unsupported]"] = "[Non supporté]"; +$a->strings["The Terms of Service settings have been updated."] = ""; +$a->strings["Display Terms of Service"] = "Afficher les Conditions d'Utilisation"; +$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Active la page de Conditions d'Utilisation. Un lien vers cette page est ajouté dans le formulaire d'inscription et la page A Propos."; +$a->strings["Display Privacy Statement"] = "Afficher la Politique de Confidentialité"; +$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Affiche les informations légales nécessaires pour publier un site Friendica en accord avec le RGPD européen par exemple."; +$a->strings["Privacy Statement Preview"] = "Aperçu de la Politique de Confidentialité"; +$a->strings["The Terms of Service"] = "Conditions d'Utilisation"; +$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Saisissez les Conditions d'Utilisations de votre site. Les BBCodes sont disponibles, les titres commencent à [h2]."; +$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tChère/Cher %1\$s,\n\t\t\t\tL’administrateur de %2\$s vous a ouvert un compte."; +$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = ""; +$a->strings["%s user blocked"] = [ + 0 => "", + 1 => "", +]; +$a->strings["%s user unblocked"] = [ + 0 => "", + 1 => "", +]; +$a->strings["You can't remove yourself"] = "Vous ne pouvez pas supprimer votre propre compte"; +$a->strings["%s user deleted"] = [ + 0 => "%s utilisateur supprimé", + 1 => "%s utilisateurs supprimés", +]; +$a->strings["User \"%s\" deleted"] = ""; +$a->strings["User \"%s\" blocked"] = ""; +$a->strings["User \"%s\" unblocked"] = ""; +$a->strings["Private Forum"] = "Forum Privé"; +$a->strings["Relay"] = "Relai"; +$a->strings["Register date"] = "Date d'inscription"; +$a->strings["Last login"] = "Dernière connexion"; +$a->strings["Last item"] = "Dernier élément"; +$a->strings["Type"] = "Type"; +$a->strings["Add User"] = "Ajouter l'utilisateur"; +$a->strings["User registrations waiting for confirm"] = "Inscriptions d'utilisateurs en attente de confirmation"; +$a->strings["User waiting for permanent deletion"] = "Utilisateur en attente de suppression définitive"; +$a->strings["Request date"] = "Date de la demande"; +$a->strings["No registrations."] = "Pas d'inscriptions."; +$a->strings["Note from the user"] = "Message personnel"; +$a->strings["Deny"] = "Rejetter"; +$a->strings["User blocked"] = "Utilisateur bloqué"; +$a->strings["Site admin"] = "Administration du Site"; +$a->strings["Account expired"] = "Compte expiré"; +$a->strings["New User"] = "Nouvel utilisateur"; +$a->strings["Permanent deletion"] = "Suppression définitive"; +$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Les utilisateurs sélectionnés vont être supprimés!\\n\\nTout ce qu'ils ont posté sur ce site sera définitivement effacé!\\n\\nÊtes-vous certain?"; +$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "L'utilisateur {0} va être supprimé!\\n\\nTout ce qu'il a posté sur ce site sera définitivement perdu!\\n\\nÊtes-vous certain?"; +$a->strings["Name of the new user."] = "Nom du nouvel utilisateur."; +$a->strings["Nickname"] = "Pseudo"; +$a->strings["Nickname of the new user."] = "Pseudo du nouvel utilisateur."; +$a->strings["Email address of the new user."] = "Adresse mail du nouvel utilisateur."; +$a->strings["No friends to display."] = "Pas d'amis à afficher."; +$a->strings["No installed applications."] = "Pas d'application installée."; +$a->strings["Applications"] = "Applications"; $a->strings["Item was not found."] = "Element introuvable."; +$a->strings["Source input"] = "Saisie source"; +$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; +$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (code HTML)"; +$a->strings["BBCode::convert"] = "BBCode::convert"; +$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; +$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; +$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; +$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; +$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; +$a->strings["Item Body"] = "Corps du message"; +$a->strings["Item Tags"] = "Tags du messages"; +$a->strings["Source input (Diaspora format)"] = "Saisie source (format Diaspora)"; +$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (code HTML)"; +$a->strings["Markdown::convert"] = "Markdown::convert"; +$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; +$a->strings["Raw HTML input"] = "Saisie code HTML"; +$a->strings["HTML Input"] = "Code HTML"; +$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; +$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; +$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (code HTML)"; +$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; +$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; +$a->strings["Source text"] = "Texte source"; +$a->strings["BBCode"] = "BBCode"; +$a->strings["Markdown"] = "Markdown"; +$a->strings["HTML"] = "HTML"; +$a->strings["Overview"] = "Synthèse"; +$a->strings["Configuration"] = "Configuration"; +$a->strings["Database"] = "Base de données"; +$a->strings["DB updates"] = "Mise-à-jour de la base"; +$a->strings["Inspect Deferred Workers"] = "Tâches de fond reportées"; +$a->strings["Inspect worker Queue"] = "Tâches de fond en attente"; +$a->strings["Tools"] = "Outils"; +$a->strings["Contact Blocklist"] = "Liste de contacts bloqués"; +$a->strings["Diagnostics"] = "Diagnostics"; +$a->strings["PHP Info"] = "PHP Info"; +$a->strings["probe address"] = "Tester une adresse"; +$a->strings["check webfinger"] = "vérification de webfinger"; +$a->strings["Item Source"] = ""; +$a->strings["Babel"] = ""; +$a->strings["Addon Features"] = "Fonctionnalités des addons"; +$a->strings["User registrations waiting for confirmation"] = "Inscriptions en attente de confirmation"; +$a->strings["This page is missing a url parameter."] = ""; +$a->strings["The post was created"] = "La publication a été créée"; $a->strings["%d contact edited."] = [ 0 => "%d contact mis à jour.", 1 => "%d contacts mis à jour.", @@ -2055,6 +1997,7 @@ $a->strings["Comma separated list of keywords that should not be converted to ha $a->strings["Actions"] = "Actions"; $a->strings["Suggestions"] = "Suggestions"; $a->strings["Suggest potential friends"] = "Suggérer des amis potentiels"; +$a->strings["All Contacts"] = "Tous les contacts"; $a->strings["Show all contacts"] = "Montrer tous les contacts"; $a->strings["Unblocked"] = "Non-bloqués"; $a->strings["Only show unblocked contacts"] = "Ne montrer que les contacts non-bloqués"; @@ -2084,9 +2027,62 @@ $a->strings["Toggle Blocked status"] = "(dés)activer l'état \"bloqué\""; $a->strings["Toggle Ignored status"] = "(dés)activer l'état \"ignoré\""; $a->strings["Toggle Archive status"] = "(dés)activer l'état \"archivé\""; $a->strings["Delete contact"] = "Effacer ce contact"; +$a->strings["Credits"] = "Remerciements"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica est un projet communautaire, qui ne serait pas possible sans l'aide de beaucoup de gens. Voici une liste de ceux qui ont contribué au code ou à la traduction de Friendica. Merci à tous!"; +$a->strings["No entries (some entries may be hidden)."] = "Aucune entrée (certaines peuvent être cachées)."; +$a->strings["Find on this site"] = "Trouver sur ce site"; +$a->strings["Results for:"] = "Résultats pour :"; +$a->strings["Site Directory"] = "Annuaire local"; +$a->strings["You must be logged in to use this module"] = "Vous devez être identifié pour accéder à cette fonctionnalité"; +$a->strings["Source URL"] = "URL Source"; +$a->strings["Filetag %s saved to item"] = ""; +$a->strings["- select -"] = "- choisir -"; +$a->strings["No given contact."] = ""; +$a->strings["Installed addons/apps:"] = "Add-ons/Applications installés :"; +$a->strings["No installed addons/apps"] = "Aucun add-on/application n'est installé"; +$a->strings["Read about the Terms of Service of this node."] = ""; +$a->strings["On this server the following remote servers are blocked."] = "Sur ce serveur, les serveurs suivants sont sur liste noire."; +$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = ""; +$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Rendez-vous sur Friendi.ca pour en savoir plus sur le projet Friendica."; +$a->strings["Bug reports and issues: please visit"] = "Pour les rapports de bugs : rendez vous sur"; +$a->strings["the bugtracker at github"] = "le bugtracker sur GitHub"; +$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = ""; +$a->strings["Group created."] = "Groupe créé."; +$a->strings["Could not create group."] = "Impossible de créer le groupe."; +$a->strings["Group not found."] = "Groupe introuvable."; +$a->strings["Group name changed."] = "Groupe renommé."; +$a->strings["Unknown group."] = ""; +$a->strings["Contact is unavailable."] = ""; +$a->strings["Contact is deleted."] = ""; +$a->strings["Contact is blocked, unable to add it to a group."] = ""; +$a->strings["Unable to add the contact to the group."] = ""; +$a->strings["Contact successfully added to group."] = ""; +$a->strings["Unable to remove the contact from the group."] = ""; +$a->strings["Contact successfully removed from group."] = ""; +$a->strings["Unknown group command."] = ""; +$a->strings["Bad request."] = ""; +$a->strings["Save Group"] = "Sauvegarder le groupe"; +$a->strings["Filter"] = "Filtre"; +$a->strings["Create a group of contacts/friends."] = "Créez un groupe de contacts/amis."; +$a->strings["Group removed."] = "Groupe enlevé."; +$a->strings["Unable to remove group."] = "Impossible d'enlever le groupe."; +$a->strings["Delete Group"] = "Supprimer le groupe"; +$a->strings["Edit Group Name"] = "Éditer le nom du groupe"; +$a->strings["Members"] = "Membres"; +$a->strings["Remove contact from group"] = "Retirer ce contact du groupe"; +$a->strings["Add contact to group"] = "Ajouter ce contact au groupe"; +$a->strings["Help:"] = "Aide :"; +$a->strings["Welcome to %s"] = "Bienvenue sur %s"; $a->strings["Friendica Communications Server - Setup"] = ""; $a->strings["System check"] = "Vérifications système"; $a->strings["Check again"] = "Vérifier à nouveau"; +$a->strings["Base settings"] = ""; +$a->strings["Host name"] = "Nom de la machine hôte"; +$a->strings["Overwrite this field in case the determinated hostname isn't right, otherweise leave it as is."] = ""; +$a->strings["Base path to installation"] = "Chemin de base de l'installation"; +$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "Si le système ne peut pas détecter le chemin de l'installation, entrez le bon chemin ici. Ce paramètre doit être utilisé uniquement si vous avez des accès restreints à votre système et que vous n'avez qu'un lien symbolique vers le répertoire web."; +$a->strings["Sub path of the URL"] = ""; +$a->strings["Overwrite this field in case the sub path determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path."] = ""; $a->strings["Database connection"] = "Connexion à la base de données"; $a->strings["In order to install Friendica we need to know how to connect to your database."] = "Pour installer Friendica, nous avons besoin de savoir comment contacter votre base de données."; $a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Merci de vous tourner vers votre hébergeur et/ou administrateur pour toute question concernant ces réglages."; @@ -2096,10 +2092,10 @@ $a->strings["Database Login Name"] = "Nom d'utilisateur de la base"; $a->strings["Database Login Password"] = "Mot de passe de la base"; $a->strings["For security reasons the password must not be empty"] = "Pour des raisons de sécurité, le mot de passe ne peut pas être vide."; $a->strings["Database Name"] = "Nom de la base"; -$a->strings["Site administrator email address"] = "Adresse électronique de l'administrateur du site"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration."; $a->strings["Please select a default timezone for your website"] = "Sélectionner un fuseau horaire par défaut pour votre site"; $a->strings["Site settings"] = "Réglages du site"; +$a->strings["Site administrator email address"] = "Adresse électronique de l'administrateur du site"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Votre adresse électronique doit correspondre à celle-ci pour pouvoir utiliser l'interface d'administration."; $a->strings["System Language:"] = "Langue système :"; $a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Définit la langue par défaut pour l'interface de votre instance Friendica et les mails envoyés."; $a->strings["Your Friendica site database has been installed."] = "La base de données de votre site Friendica a bien été installée."; @@ -2107,7 +2103,34 @@ $a->strings["Installation finished"] = ""; $a->strings["

    What next

    "] = "

    Ensuite

    "; $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the worker."] = "IMPORTANT: vous devrez ajouter [manuellement] une tâche planifiée pour le 'worker'."; $a->strings["Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."] = ""; -$a->strings["Item Guid"] = ""; +$a->strings["Total invitation limit exceeded."] = "La limite d'invitation totale est éxédée."; +$a->strings["%s : Not a valid email address."] = "%s : Adresse de courriel invalide."; +$a->strings["Please join us on Friendica"] = "Rejoignez-nous sur Friendica"; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Limite d'invitation exédée. Veuillez contacter l'administrateur de votre site."; +$a->strings["%s : Message delivery failed."] = "%s : L'envoi du message a échoué."; +$a->strings["%d message sent."] = [ + 0 => "%d message envoyé.", + 1 => "%d messages envoyés.", +]; +$a->strings["You have no more invitations available"] = "Vous n'avez plus d'invitations disponibles"; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visitez %s pour une liste des sites publics que vous pouvez rejoindre. Les membres de Friendica appartenant à d'autres sites peuvent s'interconnecter, ainsi qu'avec les membres de plusieurs autres réseaux sociaux."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "Pour accepter cette invitation, merci d'aller vous inscrire sur %s, ou n'importe quel autre site Friendica public."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Les sites Friendica sont tous interconnectés pour créer un immense réseau social respectueux de la vie privée, possédé et contrôllé par ses membres. Ils peuvent également interagir avec plusieurs réseaux sociaux traditionnels. Voir %s pour une liste d'autres sites Friendica que vous pourriez rejoindre."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Toutes nos excuses. Ce système n'est pas configuré pour se connecter à d'autres sites publics ou inviter de nouveaux membres."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Les instances Friendica sont interconnectées pour créer un immense réseau social possédé et contrôlé par ses membres, et qui respecte leur vie privée. Ils peuvent aussi s'interconnecter avec d'autres réseaux sociaux traditionnels."; +$a->strings["To accept this invitation, please visit and register at %s."] = "Pour accepter cette invitation, rendez-vous sur %s et inscrivez-vous."; +$a->strings["Send invitations"] = "Envoyer des invitations"; +$a->strings["Enter email addresses, one per line:"] = "Entrez les adresses email, une par ligne :"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "Vous êtes cordialement invité à me rejoindre sur Friendica, et nous aider ainsi à créer un meilleur web social."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "Vous devrez fournir ce code d'invitation : \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Une fois inscrit, connectez-vous à la page de mon profil sur :"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = ""; +$a->strings["Time Conversion"] = "Conversion temporelle"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica fournit ce service pour partager des événements avec d'autres réseaux et amis indépendament de leur fuseau horaire."; +$a->strings["UTC time: %s"] = "Temps UTC : %s"; +$a->strings["Current timezone: %s"] = "Zone de temps courante : %s"; +$a->strings["Converted localtime: %s"] = "Temps local converti : %s"; +$a->strings["Please select your timezone:"] = "Sélectionner votre zone :"; $a->strings["Create a New Account"] = "Créer un nouveau compte"; $a->strings["Password: "] = "Mot de passe : "; $a->strings["Remember me"] = "Se souvenir de moi"; @@ -2118,10 +2141,12 @@ $a->strings["terms of service"] = "conditions d'utilisation"; $a->strings["Website Privacy Policy"] = "Politique de confidentialité du site internet"; $a->strings["privacy policy"] = "politique de confidentialité"; $a->strings["Logged out."] = "Déconnecté."; +$a->strings["System down for maintenance"] = "Système indisponible pour cause de maintenance"; +$a->strings["Page not found."] = "Page introuvable."; +$a->strings["Invalid photo with id %s."] = ""; $a->strings["%s's timeline"] = ""; $a->strings["%s's posts"] = ""; $a->strings["%s's comments"] = ""; -$a->strings["Bad Request."] = ""; $a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."] = ""; $a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "Si vous n'êtes pas familier avec OpenID, laissez ce champ vide et remplissez le reste."; $a->strings["Your OpenID (optional): "] = "Votre OpenID (facultatif): "; @@ -2142,11 +2167,64 @@ $a->strings["Failed to send email message. Here your accout details:
    login: $a->strings["Registration successful."] = "Inscription réussie."; $a->strings["Your registration can not be processed."] = "Votre inscription ne peut être traitée."; $a->strings["Your registration is pending approval by the site owner."] = "Votre inscription attend une validation du propriétaire du site."; +$a->strings["Two-factor authentication successfully disabled."] = ""; +$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = ""; +$a->strings["Authenticator app"] = ""; +$a->strings["Configured"] = ""; +$a->strings["Not Configured"] = ""; +$a->strings["

    You haven't finished configuring your authenticator app.

    "] = ""; +$a->strings["

    Your authenticator app is correctly configured.

    "] = ""; +$a->strings["Recovery codes"] = ""; +$a->strings["Remaining valid codes"] = ""; +$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = ""; +$a->strings["Current password:"] = ""; +$a->strings["You need to provide your current password to change two-factor authentication settings."] = ""; +$a->strings["Enable two-factor authentication"] = ""; +$a->strings["Disable two-factor authentication"] = ""; +$a->strings["Show recovery codes"] = ""; +$a->strings["Finish app configuration"] = ""; +$a->strings["Please enter your password to access this page."] = ""; +$a->strings["New recovery codes successfully generated."] = ""; +$a->strings["Two-factor recovery codes"] = ""; +$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = ""; +$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = ""; +$a->strings["Generate new recovery codes"] = ""; +$a->strings["Next: Verification"] = ""; +$a->strings["Two-factor authentication successfully activated."] = ""; +$a->strings["Invalid code, please retry."] = ""; +$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = ""; +$a->strings["Two-factor code verification"] = ""; +$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = ""; +$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = ""; +$a->strings["Please enter a code from your authentication app"] = ""; +$a->strings["Verify code and enable two-factor authentication"] = ""; +$a->strings["Bad Request"] = "Requête erronée"; +$a->strings["Unauthorized"] = ""; +$a->strings["Forbidden"] = ""; +$a->strings["Not Found"] = "Non trouvé"; +$a->strings["Internal Server Error"] = ""; +$a->strings["Service Unavailable"] = ""; +$a->strings["The server cannot or will not process the request due to an apparent client error."] = ""; +$a->strings["Authentication is required and has failed or has not yet been provided."] = ""; +$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = ""; +$a->strings["The requested resource could not be found but may be available in the future."] = ""; +$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = ""; +$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = ""; +$a->strings["Go back"] = ""; $a->strings["At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."] = ""; $a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = ""; $a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = ""; $a->strings["Privacy Statement"] = ""; +$a->strings["Remaining recovery codes: %d"] = ""; +$a->strings["Two-factor recovery"] = ""; +$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = ""; +$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = ""; +$a->strings["Please enter a recovery code"] = ""; +$a->strings["Submit recovery code and complete login"] = ""; +$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = ""; +$a->strings["Verify code and complete login"] = ""; $a->strings["This entry was edited"] = "Cette entrée a été éditée"; +$a->strings["Private Message"] = "Message privé"; $a->strings["Delete locally"] = ""; $a->strings["Delete globally"] = ""; $a->strings["Remove locally"] = ""; @@ -2218,6 +2296,8 @@ $a->strings["Custom"] = "Personnalisé"; $a->strings["Note"] = "Remarque"; $a->strings["Check image permissions if all users are allowed to see the image"] = "Vérifier que tous les utilisateurs du site sont autorisés à voir l'image."; $a->strings["Select color scheme"] = "Choisir le schéma de couleurs"; +$a->strings["Copy or paste schemestring"] = ""; +$a->strings["You can copy this string to share your theme with others. Pasting here applies the schemestring"] = ""; $a->strings["Navigation bar background color"] = "Couleur d'arrière-plan de la barre de navigation"; $a->strings["Navigation bar icon color "] = "Couleur des icônes de la barre de navigation"; $a->strings["Link color"] = "Couleur des liens"; From 4b4f121b7233c6f062574b2d74f9b42b820bc716 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 22 Jun 2019 07:43:24 +0200 Subject: [PATCH 639/653] EN GB translation update THX AndyH3 --- view/lang/en-gb/messages.po | 7912 ++++++++++++++++++----------------- view/lang/en-gb/strings.php | 1250 +++--- 2 files changed, 4838 insertions(+), 4324 deletions(-) diff --git a/view/lang/en-gb/messages.po b/view/lang/en-gb/messages.po index 89c245e58..8a0db1b84 100644 --- a/view/lang/en-gb/messages.po +++ b/view/lang/en-gb/messages.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-15 09:33-0500\n" -"PO-Revision-Date: 2019-03-11 16:11+0000\n" +"POT-Creation-Date: 2019-05-15 08:55-0400\n" +"PO-Revision-Date: 2019-06-16 06:56+0000\n" "Last-Translator: Andy H3 \n" "Language-Team: English (United Kingdom) (http://www.transifex.com/Friendica/friendica/language/en_GB/)\n" "MIME-Version: 1.0\n" @@ -19,14 +19,14 @@ msgstr "" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: include/api.php:1179 +#: include/api.php:1116 #, php-format msgid "Daily posting limit of %d post reached. The post was rejected." msgid_plural "Daily posting limit of %d posts reached. The post was rejected." msgstr[0] "Daily posting limit of %d post reached. The post was rejected." msgstr[1] "Daily posting limit of %d posts are reached. This post was rejected." -#: include/api.php:1193 +#: include/api.php:1130 #, php-format msgid "Weekly posting limit of %d post reached. The post was rejected." msgid_plural "" @@ -34,33 +34,33 @@ msgid_plural "" msgstr[0] "Weekly posting limit of %d post reached. The post was rejected." msgstr[1] "Weekly posting limit of %d posts are reached. This post was rejected." -#: include/api.php:1207 +#: include/api.php:1144 #, php-format msgid "Monthly posting limit of %d post reached. The post was rejected." msgstr "Monthly posting limit of %d posts are reached. The post was rejected." -#: include/api.php:4578 mod/photos.php:93 mod/photos.php:201 -#: mod/photos.php:695 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1636 mod/profile_photo.php:85 mod/profile_photo.php:94 +#: include/api.php:4511 mod/photos.php:91 mod/photos.php:193 +#: mod/photos.php:636 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1601 mod/profile_photo.php:85 mod/profile_photo.php:94 #: mod/profile_photo.php:103 mod/profile_photo.php:217 -#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:736 -#: src/Model/User.php:744 src/Model/User.php:752 +#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:763 +#: src/Model/User.php:771 src/Model/User.php:779 msgid "Profile Photos" msgstr "Profile photos" #: include/conversation.php:160 include/conversation.php:297 -#: src/Model/Item.php:3283 +#: src/Model/Item.php:3253 msgid "event" msgstr "event" #: include/conversation.php:163 include/conversation.php:173 #: include/conversation.php:300 include/conversation.php:309 -#: mod/subthread.php:88 mod/tagger.php:70 +#: mod/subthread.php:88 mod/tagger.php:68 msgid "status" msgstr "status" #: include/conversation.php:168 include/conversation.php:305 -#: mod/subthread.php:88 mod/tagger.php:70 src/Model/Item.php:3285 +#: mod/subthread.php:88 mod/tagger.php:68 src/Model/Item.php:3255 msgid "photo" msgstr "photo" @@ -99,7 +99,7 @@ msgstr "%1$s is now friends with %2$s" msgid "%1$s poked %2$s" msgstr "%1$s poked %2$s" -#: include/conversation.php:319 mod/tagger.php:108 +#: include/conversation.php:319 mod/tagger.php:101 #, php-format msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s tagged %2$s's %3$s with %4$s" @@ -113,379 +113,408 @@ msgstr "Post/Item" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s marked %2$s's %3$s as favourite" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:352 +#: include/conversation.php:568 mod/photos.php:1433 mod/profiles.php:352 msgid "Likes" msgstr "Likes" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:355 +#: include/conversation.php:569 mod/photos.php:1433 mod/profiles.php:355 msgid "Dislikes" msgstr "Dislikes" -#: include/conversation.php:569 include/conversation.php:1505 -#: mod/photos.php:1468 +#: include/conversation.php:570 include/conversation.php:1564 +#: mod/photos.php:1434 msgid "Attending" msgid_plural "Attending" msgstr[0] "Attending" msgstr[1] "Attending" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:571 mod/photos.php:1434 msgid "Not attending" msgstr "Not attending" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:572 mod/photos.php:1434 msgid "Might attend" msgstr "Might attend" -#: include/conversation.php:649 mod/photos.php:1524 src/Object/Post.php:207 +#: include/conversation.php:573 +msgid "Reshares" +msgstr "Reshares" + +#: include/conversation.php:653 mod/photos.php:1490 src/Object/Post.php:208 msgid "Select" msgstr "Select" -#: include/conversation.php:650 mod/admin.php:2072 mod/photos.php:1525 -#: mod/settings.php:726 src/Module/Contact.php:827 src/Module/Contact.php:1102 +#: include/conversation.php:654 mod/photos.php:1491 mod/settings.php:735 +#: src/Module/Admin/Users.php:288 src/Module/Contact.php:830 +#: src/Module/Contact.php:1105 msgid "Delete" msgstr "Delete" -#: include/conversation.php:684 src/Object/Post.php:380 -#: src/Object/Post.php:381 +#: include/conversation.php:679 src/Object/Post.php:382 +#: src/Object/Post.php:383 #, php-format msgid "View %s's profile @ %s" msgstr "View %s's profile @ %s" -#: include/conversation.php:696 src/Object/Post.php:368 +#: include/conversation.php:692 src/Object/Post.php:370 msgid "Categories:" msgstr "Categories:" -#: include/conversation.php:697 src/Object/Post.php:369 +#: include/conversation.php:693 src/Object/Post.php:371 msgid "Filed under:" msgstr "Filed under:" -#: include/conversation.php:704 src/Object/Post.php:394 +#: include/conversation.php:700 src/Object/Post.php:396 #, php-format msgid "%s from %s" msgstr "%s from %s" -#: include/conversation.php:719 +#: include/conversation.php:715 msgid "View in context" msgstr "View in context" -#: include/conversation.php:721 include/conversation.php:1171 -#: mod/editpost.php:88 mod/message.php:260 mod/message.php:442 -#: mod/photos.php:1440 mod/wallmessage.php:141 src/Object/Post.php:421 +#: include/conversation.php:717 include/conversation.php:1230 +#: mod/editpost.php:86 mod/message.php:260 mod/message.php:442 +#: mod/photos.php:1406 mod/wallmessage.php:141 src/Object/Post.php:423 msgid "Please wait" msgstr "Please wait" -#: include/conversation.php:785 +#: include/conversation.php:781 msgid "remove" msgstr "Remove" -#: include/conversation.php:789 +#: include/conversation.php:785 msgid "Delete Selected Items" msgstr "Delete selected items" -#: include/conversation.php:893 view/theme/frio/theme.php:358 +#: include/conversation.php:940 view/theme/frio/theme.php:358 msgid "Follow Thread" msgstr "Follow thread" -#: include/conversation.php:894 src/Model/Contact.php:1049 +#: include/conversation.php:941 src/Model/Contact.php:1111 msgid "View Status" msgstr "View status" -#: include/conversation.php:895 include/conversation.php:911 -#: mod/allfriends.php:72 mod/directory.php:167 mod/dirfind.php:226 -#: mod/match.php:87 mod/suggest.php:87 src/Model/Contact.php:989 -#: src/Model/Contact.php:1042 src/Model/Contact.php:1050 +#: include/conversation.php:942 include/conversation.php:960 +#: mod/dirfind.php:226 mod/match.php:87 mod/suggest.php:87 +#: src/Model/Contact.php:1051 src/Model/Contact.php:1104 +#: src/Model/Contact.php:1112 src/Module/AllFriends.php:74 +#: src/Module/Directory.php:155 msgid "View Profile" msgstr "View profile" -#: include/conversation.php:896 src/Model/Contact.php:1051 +#: include/conversation.php:943 src/Model/Contact.php:1113 msgid "View Photos" msgstr "View photos" -#: include/conversation.php:897 src/Model/Contact.php:1043 -#: src/Model/Contact.php:1052 +#: include/conversation.php:944 src/Model/Contact.php:1105 +#: src/Model/Contact.php:1114 msgid "Network Posts" msgstr "Network posts" -#: include/conversation.php:898 src/Model/Contact.php:1044 -#: src/Model/Contact.php:1053 +#: include/conversation.php:945 src/Model/Contact.php:1106 +#: src/Model/Contact.php:1115 msgid "View Contact" msgstr "View contact" -#: include/conversation.php:899 src/Model/Contact.php:1055 +#: include/conversation.php:946 src/Model/Contact.php:1117 msgid "Send PM" msgstr "Send PM" -#: include/conversation.php:903 src/Model/Contact.php:1056 +#: include/conversation.php:947 src/Module/Admin/Blocklist/Contact.php:66 +#: src/Module/Admin/Users.php:289 src/Module/Contact.php:624 +#: src/Module/Contact.php:827 src/Module/Contact.php:1080 +msgid "Block" +msgstr "Block" + +#: include/conversation.php:948 mod/notifications.php:60 +#: mod/notifications.php:186 mod/notifications.php:279 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 +msgid "Ignore" +msgstr "Ignore" + +#: include/conversation.php:952 src/Model/Contact.php:1118 msgid "Poke" msgstr "Poke" -#: include/conversation.php:908 mod/allfriends.php:73 mod/dirfind.php:227 -#: mod/follow.php:147 mod/match.php:88 mod/suggest.php:88 -#: src/Content/Widget.php:63 src/Model/Contact.php:1045 -#: src/Module/Contact.php:574 view/theme/vier/theme.php:201 +#: include/conversation.php:957 mod/dirfind.php:227 mod/follow.php:158 +#: mod/match.php:88 mod/suggest.php:88 src/Content/Widget.php:63 +#: src/Model/Contact.php:1107 src/Module/AllFriends.php:75 +#: src/Module/Contact.php:577 view/theme/vier/theme.php:201 msgid "Connect/Follow" msgstr "Connect/Follow" -#: include/conversation.php:1030 +#: include/conversation.php:1082 #, php-format msgid "%s likes this." msgstr "%s likes this." -#: include/conversation.php:1033 +#: include/conversation.php:1085 #, php-format msgid "%s doesn't like this." msgstr "%s doesn't like this." -#: include/conversation.php:1036 +#: include/conversation.php:1088 #, php-format msgid "%s attends." msgstr "%s attends." -#: include/conversation.php:1039 +#: include/conversation.php:1091 #, php-format msgid "%s doesn't attend." msgstr "%s doesn't attend." -#: include/conversation.php:1042 +#: include/conversation.php:1094 #, php-format msgid "%s attends maybe." msgstr "%s may attend." -#: include/conversation.php:1050 +#: include/conversation.php:1097 include/conversation.php:1140 +#, php-format +msgid "%s reshared this." +msgstr "%s reshared this." + +#: include/conversation.php:1105 msgid "and" msgstr "and" -#: include/conversation.php:1056 +#: include/conversation.php:1111 #, php-format msgid "and %d other people" msgstr "and %d other people" -#: include/conversation.php:1064 +#: include/conversation.php:1119 #, php-format msgid "%2$d people like this" msgstr "%2$d people like this" -#: include/conversation.php:1065 +#: include/conversation.php:1120 #, php-format msgid "%s like this." msgstr "%s like this." -#: include/conversation.php:1068 +#: include/conversation.php:1123 #, php-format msgid "%2$d people don't like this" msgstr "%2$d people don't like this" -#: include/conversation.php:1069 +#: include/conversation.php:1124 #, php-format msgid "%s don't like this." msgstr "%s don't like this." -#: include/conversation.php:1072 +#: include/conversation.php:1127 #, php-format msgid "%2$d people attend" msgstr "%2$d people attend" -#: include/conversation.php:1073 +#: include/conversation.php:1128 #, php-format msgid "%s attend." msgstr "%s attend." -#: include/conversation.php:1076 +#: include/conversation.php:1131 #, php-format msgid "%2$d people don't attend" msgstr "%2$d people don't attend" -#: include/conversation.php:1077 +#: include/conversation.php:1132 #, php-format msgid "%s don't attend." msgstr "%s don't attend." -#: include/conversation.php:1080 +#: include/conversation.php:1135 #, php-format msgid "%2$d people attend maybe" msgstr "%2$d people attend maybe" -#: include/conversation.php:1081 +#: include/conversation.php:1136 #, php-format msgid "%s attend maybe." msgstr "%s may be attending." -#: include/conversation.php:1110 +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people reshared this" +msgstr "%2$d people reshared this" + +#: include/conversation.php:1169 msgid "Visible to everybody" msgstr "Visible to everybody" -#: include/conversation.php:1111 src/Object/Post.php:883 +#: include/conversation.php:1170 src/Object/Post.php:886 msgid "Please enter a image/video/audio/webpage URL:" msgstr "Please enter an image/video/audio/webpage URL:" -#: include/conversation.php:1112 +#: include/conversation.php:1171 msgid "Tag term:" msgstr "Tag term:" -#: include/conversation.php:1113 mod/filer.php:35 +#: include/conversation.php:1172 src/Module/Filer/SaveTag.php:49 msgid "Save to Folder:" msgstr "Save to folder:" -#: include/conversation.php:1114 +#: include/conversation.php:1173 msgid "Where are you right now?" msgstr "Where are you right now?" -#: include/conversation.php:1115 +#: include/conversation.php:1174 msgid "Delete item(s)?" msgstr "Delete item(s)?" -#: include/conversation.php:1147 +#: include/conversation.php:1206 msgid "New Post" msgstr "New post" -#: include/conversation.php:1150 +#: include/conversation.php:1209 msgid "Share" msgstr "Share" -#: include/conversation.php:1151 mod/editpost.php:74 mod/message.php:258 +#: include/conversation.php:1210 mod/editpost.php:72 mod/message.php:258 #: mod/message.php:439 mod/wallmessage.php:139 msgid "Upload photo" msgstr "Upload photo" -#: include/conversation.php:1152 mod/editpost.php:75 +#: include/conversation.php:1211 mod/editpost.php:73 msgid "upload photo" msgstr "upload photo" -#: include/conversation.php:1153 mod/editpost.php:76 +#: include/conversation.php:1212 mod/editpost.php:74 msgid "Attach file" msgstr "Attach file" -#: include/conversation.php:1154 mod/editpost.php:77 +#: include/conversation.php:1213 mod/editpost.php:75 msgid "attach file" msgstr "attach file" -#: include/conversation.php:1155 src/Object/Post.php:875 +#: include/conversation.php:1214 src/Object/Post.php:878 msgid "Bold" msgstr "Bold" -#: include/conversation.php:1156 src/Object/Post.php:876 +#: include/conversation.php:1215 src/Object/Post.php:879 msgid "Italic" msgstr "Italic" -#: include/conversation.php:1157 src/Object/Post.php:877 +#: include/conversation.php:1216 src/Object/Post.php:880 msgid "Underline" msgstr "Underline" -#: include/conversation.php:1158 src/Object/Post.php:878 +#: include/conversation.php:1217 src/Object/Post.php:881 msgid "Quote" msgstr "Quote" -#: include/conversation.php:1159 src/Object/Post.php:879 +#: include/conversation.php:1218 src/Object/Post.php:882 msgid "Code" msgstr "Code" -#: include/conversation.php:1160 src/Object/Post.php:880 +#: include/conversation.php:1219 src/Object/Post.php:883 msgid "Image" msgstr "Image" -#: include/conversation.php:1161 src/Object/Post.php:881 +#: include/conversation.php:1220 src/Object/Post.php:884 msgid "Link" msgstr "Link" -#: include/conversation.php:1162 src/Object/Post.php:882 +#: include/conversation.php:1221 src/Object/Post.php:885 msgid "Link or Media" msgstr "Link or media" -#: include/conversation.php:1163 mod/editpost.php:84 +#: include/conversation.php:1222 mod/editpost.php:82 msgid "Set your location" msgstr "Set your location" -#: include/conversation.php:1164 mod/editpost.php:85 +#: include/conversation.php:1223 mod/editpost.php:83 msgid "set location" msgstr "set location" -#: include/conversation.php:1165 mod/editpost.php:86 +#: include/conversation.php:1224 mod/editpost.php:84 msgid "Clear browser location" msgstr "Clear browser location" -#: include/conversation.php:1166 mod/editpost.php:87 +#: include/conversation.php:1225 mod/editpost.php:85 msgid "clear location" msgstr "clear location" -#: include/conversation.php:1168 mod/editpost.php:102 +#: include/conversation.php:1227 mod/editpost.php:99 msgid "Set title" msgstr "Set title" -#: include/conversation.php:1170 mod/editpost.php:104 +#: include/conversation.php:1229 mod/editpost.php:101 msgid "Categories (comma-separated list)" msgstr "Categories (comma-separated list)" -#: include/conversation.php:1172 mod/editpost.php:89 +#: include/conversation.php:1231 mod/editpost.php:87 msgid "Permission settings" msgstr "Permission settings" -#: include/conversation.php:1173 mod/editpost.php:119 +#: include/conversation.php:1232 mod/editpost.php:116 msgid "permissions" msgstr "permissions" -#: include/conversation.php:1182 mod/editpost.php:99 +#: include/conversation.php:1241 mod/editpost.php:96 msgid "Public post" msgstr "Public post" -#: include/conversation.php:1186 mod/editpost.php:110 mod/events.php:551 -#: mod/photos.php:1458 mod/photos.php:1497 mod/photos.php:1557 -#: src/Object/Post.php:884 +#: include/conversation.php:1245 mod/editpost.php:107 mod/events.php:549 +#: mod/photos.php:1424 mod/photos.php:1463 mod/photos.php:1523 +#: src/Object/Post.php:887 msgid "Preview" msgstr "Preview" -#: include/conversation.php:1190 include/items.php:396 -#: mod/dfrn_request.php:650 mod/editpost.php:113 mod/fbrowser.php:104 -#: mod/fbrowser.php:134 mod/follow.php:161 mod/message.php:153 -#: mod/photos.php:257 mod/photos.php:325 mod/settings.php:666 -#: mod/settings.php:692 mod/suggest.php:44 mod/tagrm.php:20 mod/tagrm.php:115 -#: mod/unfollow.php:132 mod/videos.php:105 src/Module/Contact.php:447 +#: include/conversation.php:1249 include/items.php:397 +#: mod/dfrn_request.php:650 mod/editpost.php:110 mod/fbrowser.php:110 +#: mod/fbrowser.php:139 mod/follow.php:172 mod/message.php:153 +#: mod/photos.php:1076 mod/photos.php:1183 mod/settings.php:675 +#: mod/settings.php:701 mod/suggest.php:76 mod/tagrm.php:20 mod/tagrm.php:115 +#: mod/unfollow.php:132 src/Module/Contact.php:450 msgid "Cancel" msgstr "Cancel" -#: include/conversation.php:1195 +#: include/conversation.php:1254 msgid "Post to Groups" msgstr "Post to groups" -#: include/conversation.php:1196 +#: include/conversation.php:1255 msgid "Post to Contacts" msgstr "Post to contacts" -#: include/conversation.php:1197 +#: include/conversation.php:1256 msgid "Private post" msgstr "Private post" -#: include/conversation.php:1202 mod/editpost.php:117 -#: src/Model/Profile.php:370 +#: include/conversation.php:1261 mod/editpost.php:114 +#: src/Model/Profile.php:366 msgid "Message" msgstr "Message" -#: include/conversation.php:1203 mod/editpost.php:118 +#: include/conversation.php:1262 mod/editpost.php:115 msgid "Browser" msgstr "Browser" -#: include/conversation.php:1475 +#: include/conversation.php:1534 msgid "View all" msgstr "View all" -#: include/conversation.php:1499 +#: include/conversation.php:1558 msgid "Like" msgid_plural "Likes" msgstr[0] "Like" msgstr[1] "Likes" -#: include/conversation.php:1502 +#: include/conversation.php:1561 msgid "Dislike" msgid_plural "Dislikes" msgstr[0] "Dislike" msgstr[1] "Dislikes" -#: include/conversation.php:1508 +#: include/conversation.php:1567 msgid "Not Attending" msgid_plural "Not Attending" msgstr[0] "Not attending" msgstr[1] "Not attending" -#: include/conversation.php:1511 src/Content/ContactSelector.php:167 +#: include/conversation.php:1570 src/Content/ContactSelector.php:167 msgid "Undecided" msgid_plural "Undecided" msgstr[0] "Undecided" @@ -806,2048 +835,58 @@ msgstr "Full Name:\t%s\nSite Location:\t%s\nLogin Name:\t%s (%s)" msgid "Please visit %s to approve or reject the request." msgstr "Please visit %s to approve or reject the request." -#: include/items.php:353 mod/admin.php:302 mod/admin.php:2131 -#: mod/admin.php:2378 mod/notice.php:20 mod/viewsrc.php:22 +#: include/items.php:354 mod/notice.php:19 +#: src/Module/Admin/Themes/Details.php:53 src/Module/Admin/Themes/Index.php:41 +#: src/Module/ItemBody.php:27 src/Module/ItemBody.php:40 msgid "Item not found." msgstr "Item not found." -#: include/items.php:391 +#: include/items.php:392 msgid "Do you really want to delete this item?" msgstr "Do you really want to delete this item?" -#: include/items.php:393 mod/api.php:109 mod/dfrn_request.php:640 -#: mod/follow.php:150 mod/message.php:150 mod/profiles.php:526 -#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1085 -#: mod/settings.php:1091 mod/settings.php:1098 mod/settings.php:1102 -#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1114 -#: mod/settings.php:1118 mod/settings.php:1138 mod/settings.php:1139 -#: mod/settings.php:1140 mod/settings.php:1141 mod/settings.php:1142 -#: mod/suggest.php:41 src/Module/Contact.php:444 src/Module/Register.php:97 +#: include/items.php:394 mod/api.php:109 mod/dfrn_request.php:640 +#: mod/follow.php:161 mod/message.php:150 mod/profiles.php:526 +#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1084 +#: mod/settings.php:1090 mod/settings.php:1097 mod/settings.php:1101 +#: mod/settings.php:1105 mod/settings.php:1109 mod/settings.php:1113 +#: mod/settings.php:1117 mod/settings.php:1137 mod/settings.php:1138 +#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 +#: mod/suggest.php:73 src/Module/Contact.php:447 src/Module/Register.php:97 msgid "Yes" msgstr "Yes" -#: include/items.php:443 mod/allfriends.php:22 mod/api.php:34 mod/api.php:39 -#: mod/cal.php:303 mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 -#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:66 -#: mod/dirfind.php:29 mod/editpost.php:22 mod/events.php:207 mod/follow.php:57 -#: mod/follow.php:121 mod/fsuggest.php:77 mod/group.php:28 mod/invite.php:23 -#: mod/invite.php:111 mod/item.php:167 mod/manage.php:129 mod/message.php:56 -#: mod/message.php:101 mod/network.php:35 mod/nogroup.php:18 mod/notes.php:27 -#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:186 -#: mod/photos.php:1020 mod/poke.php:141 mod/profiles.php:182 +#: include/items.php:444 mod/api.php:34 mod/api.php:39 mod/cal.php:301 +#: mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 +#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:64 +#: mod/dirfind.php:29 mod/editpost.php:21 mod/events.php:207 mod/follow.php:57 +#: mod/follow.php:132 mod/fsuggest.php:77 mod/item.php:169 mod/manage.php:130 +#: mod/message.php:56 mod/message.php:101 mod/network.php:36 mod/notes.php:27 +#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:178 +#: mod/photos.php:958 mod/poke.php:141 mod/profiles.php:182 #: mod/profiles.php:499 mod/profile_photo.php:32 mod/profile_photo.php:177 #: mod/profile_photo.php:204 mod/regmod.php:89 mod/repair_ostatus.php:16 -#: mod/settings.php:48 mod/settings.php:154 mod/settings.php:655 -#: mod/suggest.php:62 mod/uimport.php:17 mod/unfollow.php:22 +#: mod/settings.php:50 mod/settings.php:163 mod/settings.php:664 +#: mod/suggest.php:39 mod/uimport.php:17 mod/unfollow.php:22 #: mod/unfollow.php:77 mod/unfollow.php:109 mod/viewcontacts.php:56 #: mod/wallmessage.php:19 mod/wallmessage.php:43 mod/wallmessage.php:82 #: mod/wallmessage.php:106 mod/wall_attach.php:76 mod/wall_attach.php:79 -#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/App.php:1480 -#: src/Module/Attach.php:42 src/Module/Contact.php:360 -#: src/Module/Register.php:193 +#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/Module/Attach.php:42 +#: src/Module/Contact.php:362 src/Module/FollowConfirm.php:27 +#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22 +#: src/Module/Invite.php:110 src/Module/Register.php:192 msgid "Permission denied." msgstr "Permission denied." -#: include/items.php:514 src/Content/Feature.php:99 +#: include/items.php:515 src/Content/Feature.php:99 msgid "Archives" msgstr "Archives" -#: include/items.php:520 src/Content/ForumManager.php:135 +#: include/items.php:521 src/Content/ForumManager.php:135 #: src/Content/Widget.php:329 view/theme/vier/theme.php:255 msgid "show more" msgstr "Show more..." -#: mod/admin.php:122 -msgid "Theme settings updated." -msgstr "Theme settings updated." - -#: mod/admin.php:196 src/Content/Nav.php:231 -msgid "Information" -msgstr "Information" - -#: mod/admin.php:197 -msgid "Overview" -msgstr "Overview" - -#: mod/admin.php:198 mod/admin.php:779 -msgid "Federation Statistics" -msgstr "Federation statistics" - -#: mod/admin.php:199 -msgid "Configuration" -msgstr "Configuration" - -#: mod/admin.php:200 mod/admin.php:1581 -msgid "Site" -msgstr "Site" - -#: mod/admin.php:201 mod/admin.php:1482 mod/admin.php:2062 mod/admin.php:2079 -msgid "Users" -msgstr "Users" - -#: mod/admin.php:202 mod/admin.php:2179 mod/admin.php:2239 mod/settings.php:99 -msgid "Addons" -msgstr "Addons" - -#: mod/admin.php:203 mod/admin.php:2436 mod/admin.php:2480 -msgid "Themes" -msgstr "Theme selection" - -#: mod/admin.php:204 mod/settings.php:77 -msgid "Additional features" -msgstr "Additional features" - -#: mod/admin.php:205 mod/admin.php:329 src/Content/Nav.php:234 -#: src/Module/Register.php:144 src/Module/Tos.php:73 -msgid "Terms of Service" -msgstr "Terms of Service" - -#: mod/admin.php:206 -msgid "Database" -msgstr "Database" - -#: mod/admin.php:207 -msgid "DB updates" -msgstr "DB updates" - -#: mod/admin.php:208 mod/admin.php:823 -msgid "Inspect Queue" -msgstr "Inspect queue" - -#: mod/admin.php:209 -msgid "Inspect Deferred Workers" -msgstr "Inspect deferred workers" - -#: mod/admin.php:210 -msgid "Inspect worker Queue" -msgstr "Inspect worker queue" - -#: mod/admin.php:211 -msgid "Tools" -msgstr "Tools" - -#: mod/admin.php:212 -msgid "Contact Blocklist" -msgstr "Contact blocklist" - -#: mod/admin.php:213 mod/admin.php:395 -msgid "Server Blocklist" -msgstr "Server blocklist" - -#: mod/admin.php:214 mod/admin.php:558 -msgid "Delete Item" -msgstr "Delete item" - -#: mod/admin.php:215 mod/admin.php:216 mod/admin.php:2556 -msgid "Logs" -msgstr "Logs" - -#: mod/admin.php:217 mod/admin.php:2624 -msgid "View Logs" -msgstr "View logs" - -#: mod/admin.php:219 -msgid "Diagnostics" -msgstr "Diagnostics" - -#: mod/admin.php:220 -msgid "PHP Info" -msgstr "PHP info" - -#: mod/admin.php:221 -msgid "probe address" -msgstr "Probe address" - -#: mod/admin.php:222 -msgid "check webfinger" -msgstr "Check webfinger" - -#: mod/admin.php:242 src/Content/Nav.php:274 -msgid "Admin" -msgstr "Admin" - -#: mod/admin.php:243 -msgid "Addon Features" -msgstr "Addon features" - -#: mod/admin.php:244 -msgid "User registrations waiting for confirmation" -msgstr "User registrations awaiting confirmation" - -#: mod/admin.php:328 mod/admin.php:394 mod/admin.php:514 mod/admin.php:557 -#: mod/admin.php:778 mod/admin.php:822 mod/admin.php:875 mod/admin.php:998 -#: mod/admin.php:1580 mod/admin.php:2061 mod/admin.php:2178 mod/admin.php:2238 -#: mod/admin.php:2435 mod/admin.php:2479 mod/admin.php:2555 mod/admin.php:2623 -msgid "Administration" -msgstr "Administration" - -#: mod/admin.php:330 -msgid "Display Terms of Service" -msgstr "Display Terms of Service" - -#: mod/admin.php:330 -msgid "" -"Enable the Terms of Service page. If this is enabled a link to the terms " -"will be added to the registration form and the general information page." -msgstr "Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page." - -#: mod/admin.php:331 -msgid "Display Privacy Statement" -msgstr "Display Privacy Statement" - -#: mod/admin.php:331 -#, php-format -msgid "" -"Show some informations regarding the needed information to operate the node " -"according e.g. to EU-GDPR." -msgstr "Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR." - -#: mod/admin.php:332 -msgid "Privacy Statement Preview" -msgstr "Privacy Statement Preview" - -#: mod/admin.php:334 -msgid "The Terms of Service" -msgstr "Terms of Service" - -#: mod/admin.php:334 -msgid "" -"Enter the Terms of Service for your node here. You can use BBCode. Headers " -"of sections should be [h2] and below." -msgstr "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or lower." - -#: mod/admin.php:336 mod/admin.php:1582 mod/admin.php:2240 mod/admin.php:2481 -#: mod/admin.php:2557 mod/admin.php:2707 mod/delegate.php:175 -#: mod/settings.php:665 mod/settings.php:772 mod/settings.php:860 -#: mod/settings.php:949 mod/settings.php:1174 -msgid "Save Settings" -msgstr "Save settings" - -#: mod/admin.php:386 mod/admin.php:404 mod/dfrn_request.php:346 -#: mod/friendica.php:131 src/Model/Contact.php:1719 -msgid "Blocked domain" -msgstr "Blocked domain" - -#: mod/admin.php:386 -msgid "The blocked domain" -msgstr "Blocked domain" - -#: mod/admin.php:387 mod/admin.php:405 mod/friendica.php:131 -msgid "Reason for the block" -msgstr "Reason for the block" - -#: mod/admin.php:387 mod/admin.php:400 -msgid "The reason why you blocked this domain." -msgstr "Reason why you blocked this domain." - -#: mod/admin.php:388 -msgid "Delete domain" -msgstr "Delete domain" - -#: mod/admin.php:388 -msgid "Check to delete this entry from the blocklist" -msgstr "Check to delete this entry from the blocklist" - -#: mod/admin.php:396 -msgid "" -"This page can be used to define a black list of servers from the federated " -"network that are not allowed to interact with your node. For all entered " -"domains you should also give a reason why you have blocked the remote " -"server." -msgstr "This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server." - -#: mod/admin.php:397 -msgid "" -"The list of blocked servers will be made publically available on the " -"/friendica page so that your users and people investigating communication " -"problems can find the reason easily." -msgstr "The list of blocked servers will publicly available on the Friendica page so that your users and people investigating communication problems can readily find the reason." - -#: mod/admin.php:398 -msgid "Add new entry to block list" -msgstr "Add new entry to block list" - -#: mod/admin.php:399 -msgid "Server Domain" -msgstr "Server domain" - -#: mod/admin.php:399 -msgid "" -"The domain of the new server to add to the block list. Do not include the " -"protocol." -msgstr "The domain of the new server to add to the block list. Do not include the protocol." - -#: mod/admin.php:400 -msgid "Block reason" -msgstr "Block reason" - -#: mod/admin.php:401 -msgid "Add Entry" -msgstr "Add entry" - -#: mod/admin.php:402 -msgid "Save changes to the blocklist" -msgstr "Save changes to the blocklist" - -#: mod/admin.php:403 -msgid "Current Entries in the Blocklist" -msgstr "Current entries in the blocklist" - -#: mod/admin.php:406 -msgid "Delete entry from blocklist" -msgstr "Delete entry from blocklist" - -#: mod/admin.php:409 -msgid "Delete entry from blocklist?" -msgstr "Delete entry from blocklist?" - -#: mod/admin.php:436 -msgid "Server added to blocklist." -msgstr "Server added to blocklist." - -#: mod/admin.php:452 -msgid "Site blocklist updated." -msgstr "Site blocklist updated." - -#: mod/admin.php:477 src/Core/Console/GlobalCommunityBlock.php:68 -msgid "The contact has been blocked from the node" -msgstr "The contact has been blocked from the node" - -#: mod/admin.php:479 src/Core/Console/GlobalCommunityBlock.php:65 -#, php-format -msgid "Could not find any contact entry for this URL (%s)" -msgstr "Could not find any contact entry for this URL (%s)" - -#: mod/admin.php:486 -#, php-format -msgid "%s contact unblocked" -msgid_plural "%s contacts unblocked" -msgstr[0] "%s contact unblocked" -msgstr[1] "%s contacts unblocked" - -#: mod/admin.php:515 -msgid "Remote Contact Blocklist" -msgstr "Remote contact blocklist" - -#: mod/admin.php:516 -msgid "" -"This page allows you to prevent any message from a remote contact to reach " -"your node." -msgstr "This page allows you to prevent any message from a remote contact to reach your node." - -#: mod/admin.php:517 -msgid "Block Remote Contact" -msgstr "Block Remote Contact" - -#: mod/admin.php:518 mod/admin.php:2064 -msgid "select all" -msgstr "select all" - -#: mod/admin.php:519 -msgid "select none" -msgstr "select none" - -#: mod/admin.php:520 mod/admin.php:2073 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Block" -msgstr "Block" - -#: mod/admin.php:521 mod/admin.php:2075 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Unblock" -msgstr "Unblock" - -#: mod/admin.php:522 -msgid "No remote contact is blocked from this node." -msgstr "No remote contact is blocked from this node." - -#: mod/admin.php:524 -msgid "Blocked Remote Contacts" -msgstr "Blocked remote contacts" - -#: mod/admin.php:525 -msgid "Block New Remote Contact" -msgstr "Block new remote contact" - -#: mod/admin.php:526 -msgid "Photo" -msgstr "Photo" - -#: mod/admin.php:526 mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 -#: mod/admin.php:2097 mod/crepair.php:159 mod/settings.php:667 -#: mod/settings.php:693 -msgid "Name" -msgstr "Name:" - -#: mod/admin.php:526 mod/profiles.php:382 -msgid "Address" -msgstr "Address" - -#: mod/admin.php:526 mod/admin.php:536 mod/follow.php:166 -#: mod/notifications.php:179 mod/notifications.php:263 mod/unfollow.php:137 -#: src/Module/Contact.php:639 -msgid "Profile URL" -msgstr "Profile URL:" - -#: mod/admin.php:534 -#, php-format -msgid "%s total blocked contact" -msgid_plural "%s total blocked contacts" -msgstr[0] "%s total blocked contact" -msgstr[1] "%s total blocked contacts" - -#: mod/admin.php:536 -msgid "URL of the remote contact to block." -msgstr "URL of the remote contact to block." - -#: mod/admin.php:559 -msgid "Delete this Item" -msgstr "Delete" - -#: mod/admin.php:560 -msgid "" -"On this page you can delete an item from your node. If the item is a top " -"level posting, the entire thread will be deleted." -msgstr "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted." - -#: mod/admin.php:561 -msgid "" -"You need to know the GUID of the item. You can find it e.g. by looking at " -"the display URL. The last part of http://example.com/display/123456 is the " -"GUID, here 123456." -msgstr "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456." - -#: mod/admin.php:562 -msgid "GUID" -msgstr "GUID" - -#: mod/admin.php:562 -msgid "The GUID of the item you want to delete." -msgstr "GUID of item to be deleted." - -#: mod/admin.php:597 -msgid "Item marked for deletion." -msgstr "Item marked for deletion." - -#: mod/admin.php:669 -msgid "unknown" -msgstr "unknown" - -#: mod/admin.php:772 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "This page offers you the amount of known part of the federated social network your Friendica node is part of. These numbers are not complete and only reflect the part of the network your node is aware of." - -#: mod/admin.php:773 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here." - -#: mod/admin.php:785 -#, php-format -msgid "" -"Currently this node is aware of %d nodes with %d registered users from the " -"following platforms:" -msgstr "Currently this node is aware of %d nodes with %d registered users from the following platforms:" - -#: mod/admin.php:825 mod/admin.php:878 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:826 -msgid "Recipient Name" -msgstr "Recipient name" - -#: mod/admin.php:827 -msgid "Recipient Profile" -msgstr "Recipient profile" - -#: mod/admin.php:828 src/Content/Nav.php:239 -#: src/Core/NotificationsManager.php:182 view/theme/frio/theme.php:269 -msgid "Network" -msgstr "Network" - -#: mod/admin.php:829 mod/admin.php:880 -msgid "Created" -msgstr "Created" - -#: mod/admin.php:830 -msgid "Last Tried" -msgstr "Last Tried" - -#: mod/admin.php:831 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently." - -#: mod/admin.php:854 -msgid "Inspect Deferred Worker Queue" -msgstr "Inspect Deferred Worker Queue" - -#: mod/admin.php:855 -msgid "" -"This page lists the deferred worker jobs. This are jobs that couldn't be " -"executed at the first time." -msgstr "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed." - -#: mod/admin.php:858 -msgid "Inspect Worker Queue" -msgstr "Inspect Worker Queue" - -#: mod/admin.php:859 -msgid "" -"This page lists the currently queued worker jobs. These jobs are handled by " -"the worker cronjob you've set up during install." -msgstr "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install." - -#: mod/admin.php:879 -msgid "Job Parameters" -msgstr "Job Parameters" - -#: mod/admin.php:881 -msgid "Priority" -msgstr "Priority" - -#: mod/admin.php:907 -#, php-format -msgid "" -"Your DB still runs with MyISAM tables. You should change the engine type to " -"InnoDB. As Friendica will use InnoDB only features in the future, you should" -" change this! See here for a guide that may be helpful " -"converting the table engines. You may also use the command php " -"bin/console.php dbstructure toinnodb of your Friendica installation for" -" an automatic conversion.
    " -msgstr "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    " - -#: mod/admin.php:914 -#, php-format -msgid "" -"There is a new version of Friendica available for download. Your current " -"version is %1$s, upstream version is %2$s" -msgstr "A new Friendica version is available now. Your current version is %1$s, upstream version is %2$s" - -#: mod/admin.php:924 -msgid "" -"The database update failed. Please run \"php bin/console.php dbstructure " -"update\" from the command line and have a look at the errors that might " -"appear." -msgstr "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear." - -#: mod/admin.php:930 -msgid "The worker was never executed. Please check your database structure!" -msgstr "The worker process has never been executed. Please check your database structure!" - -#: mod/admin.php:933 -#, php-format -msgid "" -"The last worker execution was on %s UTC. This is older than one hour. Please" -" check your crontab settings." -msgstr "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings." - -#: mod/admin.php:939 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -".htconfig.php. See the Config help page for " -"help with the transition." -msgstr "Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your configuration from .htconfig.php. See the configuration help page for help with the transition." - -#: mod/admin.php:943 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -"config/local.ini.php. See the Config help " -"page for help with the transition." -msgstr "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition." - -#: mod/admin.php:950 -#, php-format -msgid "" -"%s is not reachable on your system. This is a severe " -"configuration issue that prevents server to server communication. See the installation page for help." -msgstr "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help." - -#: mod/admin.php:956 -msgid "Normal Account" -msgstr "Standard account" - -#: mod/admin.php:957 -msgid "Automatic Follower Account" -msgstr "Automatic follower account" - -#: mod/admin.php:958 -msgid "Public Forum Account" -msgstr "Public forum account" - -#: mod/admin.php:959 -msgid "Automatic Friend Account" -msgstr "Automatic friend account" - -#: mod/admin.php:960 -msgid "Blog Account" -msgstr "Blog account" - -#: mod/admin.php:961 -msgid "Private Forum Account" -msgstr "Private forum account" - -#: mod/admin.php:984 -msgid "Message queues" -msgstr "Message queues" - -#: mod/admin.php:990 -msgid "Server Settings" -msgstr "Server Settings" - -#: mod/admin.php:999 -msgid "Summary" -msgstr "Summary" - -#: mod/admin.php:1001 -msgid "Registered users" -msgstr "Registered users" - -#: mod/admin.php:1003 -msgid "Pending registrations" -msgstr "Pending registrations" - -#: mod/admin.php:1004 -msgid "Version" -msgstr "Version" - -#: mod/admin.php:1009 -msgid "Active addons" -msgstr "Active addons" - -#: mod/admin.php:1042 -msgid "Can not parse base url. Must have at least ://" -msgstr "Can not parse base URL. Must have at least ://" - -#: mod/admin.php:1415 -msgid "Site settings updated." -msgstr "Site settings updated." - -#: mod/admin.php:1444 mod/settings.php:893 -msgid "No special theme for mobile devices" -msgstr "No special theme for mobile devices" - -#: mod/admin.php:1473 -msgid "No community page for local users" -msgstr "No community page for local users" - -#: mod/admin.php:1474 -msgid "No community page" -msgstr "No community page" - -#: mod/admin.php:1475 -msgid "Public postings from users of this site" -msgstr "Public postings from users of this site" - -#: mod/admin.php:1476 -msgid "Public postings from the federated network" -msgstr "Public postings from the federated network" - -#: mod/admin.php:1477 -msgid "Public postings from local users and the federated network" -msgstr "Public postings from local users and the federated network" - -#: mod/admin.php:1481 mod/admin.php:1682 mod/admin.php:1692 -#: src/Module/Contact.php:546 -msgid "Disabled" -msgstr "Disabled" - -#: mod/admin.php:1483 -msgid "Users, Global Contacts" -msgstr "Users, Global Contacts" - -#: mod/admin.php:1484 -msgid "Users, Global Contacts/fallback" -msgstr "Users, Global Contacts/fallback" - -#: mod/admin.php:1488 -msgid "One month" -msgstr "One month" - -#: mod/admin.php:1489 -msgid "Three months" -msgstr "Three months" - -#: mod/admin.php:1490 -msgid "Half a year" -msgstr "Half a year" - -#: mod/admin.php:1491 -msgid "One year" -msgstr "One a year" - -#: mod/admin.php:1496 -msgid "Multi user instance" -msgstr "Multi user instance" - -#: mod/admin.php:1520 -msgid "Closed" -msgstr "Closed" - -#: mod/admin.php:1521 -msgid "Requires approval" -msgstr "Requires approval" - -#: mod/admin.php:1522 -msgid "Open" -msgstr "Open" - -#: mod/admin.php:1526 -msgid "No SSL policy, links will track page SSL state" -msgstr "No SSL policy, links will track page SSL state" - -#: mod/admin.php:1527 -msgid "Force all links to use SSL" -msgstr "Force all links to use SSL" - -#: mod/admin.php:1528 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Self-signed certificate, use SSL for local links only (discouraged)" - -#: mod/admin.php:1532 -msgid "Don't check" -msgstr "Don't check" - -#: mod/admin.php:1533 -msgid "check the stable version" -msgstr "check for stable version updates" - -#: mod/admin.php:1534 -msgid "check the development version" -msgstr "check for development version updates" - -#: mod/admin.php:1556 -msgid "Database (legacy)" -msgstr "Database (legacy)" - -#: mod/admin.php:1583 -msgid "Republish users to directory" -msgstr "Republish users to directory" - -#: mod/admin.php:1584 src/Module/Register.php:121 -msgid "Registration" -msgstr "Join this Friendica Node Today" - -#: mod/admin.php:1585 -msgid "File upload" -msgstr "File upload" - -#: mod/admin.php:1586 -msgid "Policies" -msgstr "Policies" - -#: mod/admin.php:1587 mod/events.php:555 src/Model/Profile.php:878 -#: src/Module/Contact.php:902 -msgid "Advanced" -msgstr "Advanced" - -#: mod/admin.php:1588 -msgid "Auto Discovered Contact Directory" -msgstr "Auto-discovered contact directory" - -#: mod/admin.php:1589 -msgid "Performance" -msgstr "Performance" - -#: mod/admin.php:1590 -msgid "Worker" -msgstr "Worker" - -#: mod/admin.php:1591 -msgid "Message Relay" -msgstr "Message relay" - -#: mod/admin.php:1592 -msgid "Relocate Instance" -msgstr "Relocate Instance" - -#: mod/admin.php:1593 -msgid "Warning! Advanced function. Could make this server unreachable." -msgstr "Warning! Advanced function that could make this server unreachable." - -#: mod/admin.php:1597 -msgid "Site name" -msgstr "Site name" - -#: mod/admin.php:1598 -msgid "Host name" -msgstr "Host name" - -#: mod/admin.php:1599 -msgid "Sender Email" -msgstr "Sender email" - -#: mod/admin.php:1599 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "The email address your server shall use to send notification emails from." - -#: mod/admin.php:1600 -msgid "Banner/Logo" -msgstr "Banner/Logo" - -#: mod/admin.php:1601 -msgid "Shortcut icon" -msgstr "Shortcut icon" - -#: mod/admin.php:1601 -msgid "Link to an icon that will be used for browsers." -msgstr "Link to an icon that will be used for browsers." - -#: mod/admin.php:1602 -msgid "Touch icon" -msgstr "Touch icon" - -#: mod/admin.php:1602 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Link to an icon that will be used for tablets and mobiles." - -#: mod/admin.php:1603 -msgid "Additional Info" -msgstr "Additional Info" - -#: mod/admin.php:1603 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/servers." -msgstr "For public servers: You can add additional information here that will be listed at %s/servers." - -#: mod/admin.php:1604 -msgid "System language" -msgstr "System language" - -#: mod/admin.php:1605 -msgid "System theme" -msgstr "System theme" - -#: mod/admin.php:1605 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Default system theme - may be overridden by user profiles - change theme settings" - -#: mod/admin.php:1606 -msgid "Mobile system theme" -msgstr "Mobile system theme" - -#: mod/admin.php:1606 -msgid "Theme for mobile devices" -msgstr "Theme for mobile devices" - -#: mod/admin.php:1607 -msgid "SSL link policy" -msgstr "SSL link policy" - -#: mod/admin.php:1607 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Determines whether generated links should be forced to use SSL" - -#: mod/admin.php:1608 -msgid "Force SSL" -msgstr "Force SSL" - -#: mod/admin.php:1608 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops." - -#: mod/admin.php:1609 -msgid "Hide help entry from navigation menu" -msgstr "Hide help entry from navigation menu" - -#: mod/admin.php:1609 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL." - -#: mod/admin.php:1610 -msgid "Single user instance" -msgstr "Single user instance" - -#: mod/admin.php:1610 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Make this instance multi-user or single-user for the named user" - -#: mod/admin.php:1612 -msgid "File storage backend" -msgstr "File storage backend" - -#: mod/admin.php:1612 -msgid "" -"The backend used to store uploaded data. If you change the storage backend, " -"you can manually move the existing files. If you do not do so, the files " -"uploaded before the change will still be available at the old backend. " -"Please see the settings documentation" -" for more information about the choices and the moving procedure." -msgstr "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you don't do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure." - -#: mod/admin.php:1614 -msgid "Maximum image size" -msgstr "Maximum image size" - -#: mod/admin.php:1614 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Maximum size in bytes of uploaded images. Default is 0, which means no limits." - -#: mod/admin.php:1615 -msgid "Maximum image length" -msgstr "Maximum image length" - -#: mod/admin.php:1615 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits." - -#: mod/admin.php:1616 -msgid "JPEG image quality" -msgstr "JPEG image quality" - -#: mod/admin.php:1616 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is the original quality level." - -#: mod/admin.php:1618 -msgid "Register policy" -msgstr "Registration policy" - -#: mod/admin.php:1619 -msgid "Maximum Daily Registrations" -msgstr "Maximum daily registrations" - -#: mod/admin.php:1619 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval." - -#: mod/admin.php:1620 -msgid "Register text" -msgstr "Registration text" - -#: mod/admin.php:1620 -msgid "" -"Will be displayed prominently on the registration page. You can use BBCode " -"here." -msgstr "Will be displayed prominently on the registration page. You may use BBCode here." - -#: mod/admin.php:1621 -msgid "Forbidden Nicknames" -msgstr "Forbidden Nicknames" - -#: mod/admin.php:1621 -msgid "" -"Comma separated list of nicknames that are forbidden from registration. " -"Preset is a list of role names according RFC 2142." -msgstr "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142." - -#: mod/admin.php:1622 -msgid "Accounts abandoned after x days" -msgstr "Accounts abandoned after so many days" - -#: mod/admin.php:1622 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit." - -#: mod/admin.php:1623 -msgid "Allowed friend domains" -msgstr "Allowed friend domains" - -#: mod/admin.php:1623 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains" - -#: mod/admin.php:1624 -msgid "Allowed email domains" -msgstr "Allowed email domains" - -#: mod/admin.php:1624 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains" - -#: mod/admin.php:1625 -msgid "No OEmbed rich content" -msgstr "No OEmbed rich content" - -#: mod/admin.php:1625 -msgid "" -"Don't show the rich content (e.g. embedded PDF), except from the domains " -"listed below." -msgstr "Don't show rich content (e.g. embedded PDF), except from the domains listed below." - -#: mod/admin.php:1626 -msgid "Allowed OEmbed domains" -msgstr "Allowed OEmbed domains" - -#: mod/admin.php:1626 -msgid "" -"Comma separated list of domains which oembed content is allowed to be " -"displayed. Wildcards are accepted." -msgstr "Comma separated list of domains from where OEmbed content is allowed. Wildcards are possible." - -#: mod/admin.php:1627 -msgid "Block public" -msgstr "Block public" - -#: mod/admin.php:1627 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Block public access to all otherwise public personal pages on this site, except for local users when logged in." - -#: mod/admin.php:1628 -msgid "Force publish" -msgstr "Mandatory directory listing" - -#: mod/admin.php:1628 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Force all profiles on this site to be listed in the site directory." - -#: mod/admin.php:1628 -msgid "Enabling this may violate privacy laws like the GDPR" -msgstr "Enabling this may violate privacy laws like the GDPR" - -#: mod/admin.php:1629 -msgid "Global directory URL" -msgstr "Global directory URL" - -#: mod/admin.php:1629 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "URL to the global directory: If this is not set, the global directory is completely unavailable to the application." - -#: mod/admin.php:1630 -msgid "Private posts by default for new users" -msgstr "Private posts by default for new users" - -#: mod/admin.php:1630 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Set default post permissions for all new members to the default privacy group rather than public." - -#: mod/admin.php:1631 -msgid "Don't include post content in email notifications" -msgstr "Don't include post content in email notifications" - -#: mod/admin.php:1631 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure." - -#: mod/admin.php:1632 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Disallow public access to addons listed in the apps menu." - -#: mod/admin.php:1632 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Checking this box will restrict addons listed in the apps menu to members only." - -#: mod/admin.php:1633 -msgid "Don't embed private images in posts" -msgstr "Don't embed private images in posts" - -#: mod/admin.php:1633 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while." - -#: mod/admin.php:1634 -msgid "Explicit Content" -msgstr "Explicit Content" - -#: mod/admin.php:1634 -msgid "" -"Set this to announce that your node is used mostly for explicit content that" -" might not be suited for minors. This information will be published in the " -"node information and might be used, e.g. by the global directory, to filter " -"your node from listings of nodes to join. Additionally a note about this " -"will be shown at the user registration page." -msgstr "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page." - -#: mod/admin.php:1635 -msgid "Allow Users to set remote_self" -msgstr "Allow users to set \"Remote self\"" - -#: mod/admin.php:1635 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream." - -#: mod/admin.php:1636 -msgid "Block multiple registrations" -msgstr "Block multiple registrations" - -#: mod/admin.php:1636 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Disallow users to sign up for additional accounts." - -#: mod/admin.php:1637 -msgid "Disable OpenID" -msgstr "Disable OpenID" - -#: mod/admin.php:1637 -msgid "Disable OpenID support for registration and logins." -msgstr "Disable OpenID support for registration and logins." - -#: mod/admin.php:1638 -msgid "No Fullname check" -msgstr "No full name check" - -#: mod/admin.php:1638 -msgid "" -"Allow users to register without a space between the first name and the last " -"name in their full name." -msgstr "Allow users to register without a space between the first name and the last name in their full name." - -#: mod/admin.php:1639 -msgid "Community pages for visitors" -msgstr "Community pages for visitors" - -#: mod/admin.php:1639 -msgid "" -"Which community pages should be available for visitors. Local users always " -"see both pages." -msgstr "Community pages that should be available for visitors. Local users always see both pages." - -#: mod/admin.php:1640 -msgid "Posts per user on community page" -msgstr "Posts per user on community page" - -#: mod/admin.php:1640 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Maximum number of posts per user on the community page (not valid for 'Global Community')." - -#: mod/admin.php:1641 -msgid "Disable OStatus support" -msgstr "Disable OStatus support" - -#: mod/admin.php:1641 -msgid "" -"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed." - -#: mod/admin.php:1642 -msgid "Only import OStatus/ActivityPub threads from our contacts" -msgstr "Only import OStatus/ActivityPub threads from our contacts" - -#: mod/admin.php:1642 -msgid "" -"Normally we import every content from our OStatus and ActivityPub contacts. " -"With this option we only store threads that are started by a contact that is" -" known on our system." -msgstr "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system." - -#: mod/admin.php:1643 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "OStatus support can only be enabled if threading is enabled." - -#: mod/admin.php:1645 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "diaspora* support can't be enabled because Friendica was installed into a sub directory." - -#: mod/admin.php:1646 -msgid "Enable Diaspora support" -msgstr "Enable diaspora* support" - -#: mod/admin.php:1646 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Provide built-in diaspora* network compatibility." - -#: mod/admin.php:1647 -msgid "Only allow Friendica contacts" -msgstr "Only allow Friendica contacts" - -#: mod/admin.php:1647 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled." - -#: mod/admin.php:1648 -msgid "Verify SSL" -msgstr "Verify SSL" - -#: mod/admin.php:1648 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites." - -#: mod/admin.php:1649 -msgid "Proxy user" -msgstr "Proxy user" - -#: mod/admin.php:1650 -msgid "Proxy URL" -msgstr "Proxy URL" - -#: mod/admin.php:1651 -msgid "Network timeout" -msgstr "Network timeout" - -#: mod/admin.php:1651 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Value is in seconds. Set to 0 for unlimited (not recommended)." - -#: mod/admin.php:1652 -msgid "Maximum Load Average" -msgstr "Maximum load average" - -#: mod/admin.php:1652 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Maximum system load before delivery and poll processes are deferred (default 50)." - -#: mod/admin.php:1653 -msgid "Maximum Load Average (Frontend)" -msgstr "Maximum load average (frontend)" - -#: mod/admin.php:1653 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "Maximum system load before the frontend quits service (default 50)." - -#: mod/admin.php:1654 -msgid "Minimal Memory" -msgstr "Minimal memory" - -#: mod/admin.php:1654 -msgid "" -"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " -"default 0 (deactivated)." -msgstr "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)." - -#: mod/admin.php:1655 -msgid "Maximum table size for optimization" -msgstr "Maximum table size for optimization" - -#: mod/admin.php:1655 -msgid "" -"Maximum table size (in MB) for the automatic optimization. Enter -1 to " -"disable it." -msgstr "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it." - -#: mod/admin.php:1656 -msgid "Minimum level of fragmentation" -msgstr "Minimum level of fragmentation" - -#: mod/admin.php:1656 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "Minimum fragmentation level to start the automatic optimization (default 30%)." - -#: mod/admin.php:1658 -msgid "Periodical check of global contacts" -msgstr "Periodical check of global contacts" - -#: mod/admin.php:1658 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers." - -#: mod/admin.php:1659 -msgid "Days between requery" -msgstr "Days between enquiry" - -#: mod/admin.php:1659 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Number of days after which a server is required check contacts." - -#: mod/admin.php:1660 -msgid "Discover contacts from other servers" -msgstr "Discover contacts from other servers" - -#: mod/admin.php:1660 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommended setting is 'Users, " -"Global Contacts'." -msgstr "Periodically query other servers for contacts. You can choose between 'users': the users on the remote system and 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'." - -#: mod/admin.php:1661 -msgid "Timeframe for fetching global contacts" -msgstr "Time-frame for fetching global contacts" - -#: mod/admin.php:1661 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers." - -#: mod/admin.php:1662 -msgid "Search the local directory" -msgstr "Search the local directory" - -#: mod/admin.php:1662 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated." - -#: mod/admin.php:1664 -msgid "Publish server information" -msgstr "Publish server information" - -#: mod/admin.php:1664 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "This publishes generic data about the server and its usage. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." - -#: mod/admin.php:1666 -msgid "Check upstream version" -msgstr "Check upstream version" - -#: mod/admin.php:1666 -msgid "" -"Enables checking for new Friendica versions at github. If there is a new " -"version, you will be informed in the admin panel overview." -msgstr "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview." - -#: mod/admin.php:1667 -msgid "Suppress Tags" -msgstr "Suppress tags" - -#: mod/admin.php:1667 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Suppress listed hashtags at the end of posts." - -#: mod/admin.php:1668 -msgid "Clean database" -msgstr "Clean database" - -#: mod/admin.php:1668 -msgid "" -"Remove old remote items, orphaned database records and old content from some" -" other helper tables." -msgstr "Remove old remote items, orphaned database records and old content from some other helper tables." - -#: mod/admin.php:1669 -msgid "Lifespan of remote items" -msgstr "Lifespan of remote items" - -#: mod/admin.php:1669 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"remote items will be deleted. Own items, and marked or filed items are " -"always kept. 0 disables this behaviour." -msgstr "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour." - -#: mod/admin.php:1670 -msgid "Lifespan of unclaimed items" -msgstr "Lifespan of unclaimed items" - -#: mod/admin.php:1670 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"unclaimed remote items (mostly content from the relay) will be deleted. " -"Default value is 90 days. Defaults to the general lifespan value of remote " -"items if set to 0." -msgstr "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0." - -#: mod/admin.php:1671 -msgid "Lifespan of raw conversation data" -msgstr "Lifespan of raw conversation data" - -#: mod/admin.php:1671 -msgid "" -"The conversation data is used for ActivityPub and OStatus, as well as for " -"debug purposes. It should be safe to remove it after 14 days, default is 90 " -"days." -msgstr "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days." - -#: mod/admin.php:1672 -msgid "Path to item cache" -msgstr "Path to item cache" - -#: mod/admin.php:1672 -msgid "The item caches buffers generated bbcode and external images." -msgstr "The item caches buffers generated bbcode and external images." - -#: mod/admin.php:1673 -msgid "Cache duration in seconds" -msgstr "Cache duration in seconds" - -#: mod/admin.php:1673 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)" - -#: mod/admin.php:1674 -msgid "Maximum numbers of comments per post" -msgstr "Maximum numbers of comments per post" - -#: mod/admin.php:1674 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "How many comments should be shown for each post? (Default 100)" - -#: mod/admin.php:1675 -msgid "Temp path" -msgstr "Temp path" - -#: mod/admin.php:1675 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "Enter a different tmp path, if your system restricts the webserver's access to the system temp path." - -#: mod/admin.php:1676 -msgid "Base path to installation" -msgstr "Base path to installation" - -#: mod/admin.php:1676 -msgid "" -"If the system cannot detect the correct path to your installation, enter the" -" correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot." - -#: mod/admin.php:1677 -msgid "Disable picture proxy" -msgstr "Disable picture proxy" - -#: mod/admin.php:1677 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwidth." -msgstr "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth." - -#: mod/admin.php:1678 -msgid "Only search in tags" -msgstr "Only search in tags" - -#: mod/admin.php:1678 -msgid "On large systems the text search can slow down the system extremely." -msgstr "On large systems the text search can slow down the system significantly." - -#: mod/admin.php:1680 -msgid "New base url" -msgstr "New base URL" - -#: mod/admin.php:1680 -msgid "" -"Change base url for this server. Sends relocate message to all Friendica and" -" Diaspora* contacts of all users." -msgstr "Change base url for this server. Sends relocate message to all Friendica and diaspora* contacts of all users." - -#: mod/admin.php:1682 -msgid "RINO Encryption" -msgstr "RINO Encryption" - -#: mod/admin.php:1682 -msgid "Encryption layer between nodes." -msgstr "Encryption layer between nodes." - -#: mod/admin.php:1682 -msgid "Enabled" -msgstr "Enabled" - -#: mod/admin.php:1684 -msgid "Maximum number of parallel workers" -msgstr "Maximum number of parallel workers" - -#: mod/admin.php:1684 -#, php-format -msgid "" -"On shared hosters set this to %d. On larger systems, values of %d are great." -" Default value is %d." -msgstr "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d." - -#: mod/admin.php:1685 -msgid "Don't use 'proc_open' with the worker" -msgstr "Don't use 'proc_open' with the worker" - -#: mod/admin.php:1685 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of worker calls in your crontab." -msgstr "Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab." - -#: mod/admin.php:1686 -msgid "Enable fastlane" -msgstr "Enable fast-lane" - -#: mod/admin.php:1686 -msgid "" -"When enabed, the fastlane mechanism starts an additional worker if processes" -" with higher priority are blocked by processes of lower priority." -msgstr "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority." - -#: mod/admin.php:1687 -msgid "Enable frontend worker" -msgstr "Enable frontend worker" - -#: mod/admin.php:1687 -#, php-format -msgid "" -"When enabled the Worker process is triggered when backend access is " -"performed \\x28e.g. messages being delivered\\x29. On smaller sites you " -"might want to call %s/worker on a regular basis via an external cron job. " -"You should only enable this option if you cannot utilize cron/scheduled jobs" -" on your server." -msgstr "Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilise cron/scheduled jobs on your server." - -#: mod/admin.php:1689 -msgid "Subscribe to relay" -msgstr "Subscribe to relay" - -#: mod/admin.php:1689 -msgid "" -"Enables the receiving of public posts from the relay. They will be included " -"in the search, subscribed tags and on the global community page." -msgstr "Receive public posts from the specified relay. Post will be included in searches, subscribed tags and on the global community page." - -#: mod/admin.php:1690 -msgid "Relay server" -msgstr "Relay server" - -#: mod/admin.php:1690 -msgid "" -"Address of the relay server where public posts should be send to. For " -"example https://relay.diasp.org" -msgstr "Address of the relay server where public posts should be send to. For example https://relay.diasp.org" - -#: mod/admin.php:1691 -msgid "Direct relay transfer" -msgstr "Direct relay transfer" - -#: mod/admin.php:1691 -msgid "" -"Enables the direct transfer to other servers without using the relay servers" -msgstr "Enables direct transfer to other servers without using a relay server." - -#: mod/admin.php:1692 -msgid "Relay scope" -msgstr "Relay scope" - -#: mod/admin.php:1692 -msgid "" -"Can be 'all' or 'tags'. 'all' means that every public post should be " -"received. 'tags' means that only posts with selected tags should be " -"received." -msgstr "Set to 'all' or 'tags'. 'all' means receive every public post; 'tags' receive public posts only with specified tags." - -#: mod/admin.php:1692 -msgid "all" -msgstr "all" - -#: mod/admin.php:1692 -msgid "tags" -msgstr "tags" - -#: mod/admin.php:1693 -msgid "Server tags" -msgstr "Server tags" - -#: mod/admin.php:1693 -msgid "Comma separated list of tags for the 'tags' subscription." -msgstr "Comma separated tags for subscription." - -#: mod/admin.php:1694 -msgid "Allow user tags" -msgstr "Allow user tags" - -#: mod/admin.php:1694 -msgid "" -"If enabled, the tags from the saved searches will used for the 'tags' " -"subscription in addition to the 'relay_server_tags'." -msgstr "Use user-generated tags from saved searches for 'tags' subscription in addition to 'relay_server_tags'." - -#: mod/admin.php:1697 -msgid "Start Relocation" -msgstr "Start Relocation" - -#: mod/admin.php:1724 -msgid "Update has been marked successful" -msgstr "Update has been marked successful" - -#: mod/admin.php:1731 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "Database structure update %s was successfully applied." - -#: mod/admin.php:1735 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "Executing of database structure update %s failed with error: %s" - -#: mod/admin.php:1751 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "Executing %s failed with error: %s" - -#: mod/admin.php:1753 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Update %s was successfully applied." - -#: mod/admin.php:1756 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Update %s did not return a status. Unknown if it succeeded." - -#: mod/admin.php:1759 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "There was no additional update function %s that needed to be called." - -#: mod/admin.php:1782 -msgid "No failed updates." -msgstr "No failed updates." - -#: mod/admin.php:1783 -msgid "Check database structure" -msgstr "Check database structure" - -#: mod/admin.php:1788 -msgid "Failed Updates" -msgstr "Failed updates" - -#: mod/admin.php:1789 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "This does not include updates prior to 1139, which did not return a status." - -#: mod/admin.php:1790 -msgid "Mark success (if update was manually applied)" -msgstr "Mark success (if update was manually applied)" - -#: mod/admin.php:1791 -msgid "Attempt to execute this update step automatically" -msgstr "Attempt to execute this update step automatically" - -#: mod/admin.php:1831 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThe administrator of %2$s has set up an account for you." - -#: mod/admin.php:1834 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1$s\n\t\t\tLogin Name:\t\t%2$s\n\t\t\tPassword:\t\t%3$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n\n\t\t\tThank you and welcome to %4$s." - -#: mod/admin.php:1871 src/Model/User.php:859 -#, php-format -msgid "Registration details for %s" -msgstr "Registration details for %s" - -#: mod/admin.php:1881 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "%s user blocked/unblocked" -msgstr[1] "%s users blocked/unblocked" - -#: mod/admin.php:1888 mod/admin.php:1942 -msgid "You can't remove yourself" -msgstr "You can't remove yourself" - -#: mod/admin.php:1891 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s user deleted" -msgstr[1] "%s users deleted" - -#: mod/admin.php:1940 -#, php-format -msgid "User '%s' deleted" -msgstr "User '%s' deleted" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' unblocked" -msgstr "User '%s' unblocked" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' blocked" -msgstr "User '%s' blocked" - -#: mod/admin.php:1999 mod/settings.php:1049 -msgid "Normal Account Page" -msgstr "Standard" - -#: mod/admin.php:2000 mod/settings.php:1053 -msgid "Soapbox Page" -msgstr "Soapbox" - -#: mod/admin.php:2001 mod/settings.php:1057 -msgid "Public Forum" -msgstr "Public forum" - -#: mod/admin.php:2002 mod/settings.php:1061 -msgid "Automatic Friend Page" -msgstr "Love-all" - -#: mod/admin.php:2003 -msgid "Private Forum" -msgstr "Private Forum" - -#: mod/admin.php:2006 mod/settings.php:1033 -msgid "Personal Page" -msgstr "Personal Page" - -#: mod/admin.php:2007 mod/settings.php:1037 -msgid "Organisation Page" -msgstr "Organisation Page" - -#: mod/admin.php:2008 mod/settings.php:1041 -msgid "News Page" -msgstr "News Page" - -#: mod/admin.php:2009 mod/settings.php:1045 -msgid "Community Forum" -msgstr "Community Forum" - -#: mod/admin.php:2010 -msgid "Relay" -msgstr "Relay" - -#: mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 mod/admin.php:2099 -#: src/Content/ContactSelector.php:86 -msgid "Email" -msgstr "Email" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Register date" -msgstr "Registration date" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last login" -msgstr "Last login" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last item" -msgstr "Last item" - -#: mod/admin.php:2056 -msgid "Type" -msgstr "Type" - -#: mod/admin.php:2063 -msgid "Add User" -msgstr "Add user" - -#: mod/admin.php:2065 -msgid "User registrations waiting for confirm" -msgstr "User registrations awaiting confirmation" - -#: mod/admin.php:2066 -msgid "User waiting for permanent deletion" -msgstr "User awaiting permanent deletion" - -#: mod/admin.php:2067 -msgid "Request date" -msgstr "Request date" - -#: mod/admin.php:2068 -msgid "No registrations." -msgstr "No registrations." - -#: mod/admin.php:2069 -msgid "Note from the user" -msgstr "Note from the user" - -#: mod/admin.php:2070 mod/notifications.php:183 mod/notifications.php:269 -msgid "Approve" -msgstr "Approve" - -#: mod/admin.php:2071 -msgid "Deny" -msgstr "Deny" - -#: mod/admin.php:2074 -msgid "User blocked" -msgstr "User blocked" - -#: mod/admin.php:2076 -msgid "Site admin" -msgstr "Site admin" - -#: mod/admin.php:2077 -msgid "Account expired" -msgstr "Account expired" - -#: mod/admin.php:2080 -msgid "New User" -msgstr "New user" - -#: mod/admin.php:2081 -msgid "Permanent deletion" -msgstr "Permanent deletion" - -#: mod/admin.php:2086 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Selected users will be deleted!\\n\\nEverything these users has posted on this site will be permanently deleted!\\n\\nAre you sure?" - -#: mod/admin.php:2087 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?" - -#: mod/admin.php:2097 -msgid "Name of the new user." -msgstr "Name of the new user." - -#: mod/admin.php:2098 -msgid "Nickname" -msgstr "Nickname" - -#: mod/admin.php:2098 -msgid "Nickname of the new user." -msgstr "Nickname of the new user." - -#: mod/admin.php:2099 -msgid "Email address of the new user." -msgstr "Email address of the new user." - -#: mod/admin.php:2141 -#, php-format -msgid "Addon %s disabled." -msgstr "Addon %s disabled." - -#: mod/admin.php:2144 -#, php-format -msgid "Addon %s enabled." -msgstr "Addon %s enabled." - -#: mod/admin.php:2155 mod/admin.php:2405 -msgid "Disable" -msgstr "Disable" - -#: mod/admin.php:2158 mod/admin.php:2408 -msgid "Enable" -msgstr "Enable" - -#: mod/admin.php:2180 mod/admin.php:2437 -msgid "Toggle" -msgstr "Toggle" - -#: mod/admin.php:2181 mod/admin.php:2438 mod/newmember.php:20 -#: mod/settings.php:136 src/Content/Nav.php:263 view/theme/frio/theme.php:272 -msgid "Settings" -msgstr "Settings" - -#: mod/admin.php:2188 mod/admin.php:2446 -msgid "Author: " -msgstr "Author: " - -#: mod/admin.php:2189 mod/admin.php:2447 -msgid "Maintainer: " -msgstr "Maintainer: " - -#: mod/admin.php:2241 -msgid "Reload active addons" -msgstr "Reload active addons" - -#: mod/admin.php:2246 -#, php-format -msgid "" -"There are currently no addons available on your node. You can find the " -"official addon repository at %1$s and might find other interesting addons in" -" the open addon registry at %2$s" -msgstr "There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s" - -#: mod/admin.php:2367 -msgid "No themes found." -msgstr "No themes found." - -#: mod/admin.php:2428 -msgid "Screenshot" -msgstr "Screenshot" - -#: mod/admin.php:2482 -msgid "Reload active themes" -msgstr "Reload active themes" - -#: mod/admin.php:2487 -#, php-format -msgid "No themes found on the system. They should be placed in %1$s" -msgstr "No themes found on the system. They should be placed in %1$s" - -#: mod/admin.php:2488 -msgid "[Experimental]" -msgstr "[Experimental]" - -#: mod/admin.php:2489 -msgid "[Unsupported]" -msgstr "[Unsupported]" - -#: mod/admin.php:2514 -msgid "Log settings updated." -msgstr "Log settings updated." - -#: mod/admin.php:2547 -msgid "PHP log currently enabled." -msgstr "PHP log currently enabled." - -#: mod/admin.php:2549 -msgid "PHP log currently disabled." -msgstr "PHP log currently disabled." - -#: mod/admin.php:2558 -msgid "Clear" -msgstr "Clear" - -#: mod/admin.php:2562 -msgid "Enable Debugging" -msgstr "Enable debugging" - -#: mod/admin.php:2563 -msgid "Log file" -msgstr "Log file" - -#: mod/admin.php:2563 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Must be writable by web server and relative to your Friendica top-level directory." - -#: mod/admin.php:2564 -msgid "Log level" -msgstr "Log level" - -#: mod/admin.php:2566 -msgid "PHP logging" -msgstr "PHP logging" - -#: mod/admin.php:2567 -msgid "" -"To temporarily enable logging of PHP errors and warnings you can prepend the" -" following to the index.php file of your installation. The filename set in " -"the 'error_log' line is relative to the friendica top-level directory and " -"must be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them." - -#: mod/admin.php:2599 -#, php-format -msgid "" -"Error trying to open %1$s log file.\\r\\n
    Check to see " -"if file %1$s exist and is readable." -msgstr "Error trying to open %1$s log file.\\r\\n
    Check to see if file %1$s exist and is readable." - -#: mod/admin.php:2603 -#, php-format -msgid "" -"Couldn't open %1$s log file.\\r\\n
    Check to see if file" -" %1$s is readable." -msgstr "Couldn't open %1$s log file.\\r\\n
    Check if file %1$s is readable." - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "Off" -msgstr "Off" - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "On" -msgstr "On" - -#: mod/admin.php:2697 -#, php-format -msgid "Lock feature %s" -msgstr "Lock feature %s" - -#: mod/admin.php:2705 -msgid "Manage Additional Features" -msgstr "Manage additional features" - -#: mod/allfriends.php:52 -msgid "No friends to display." -msgstr "No friends to display." - -#: mod/allfriends.php:89 mod/dirfind.php:217 mod/match.php:102 -#: mod/suggest.php:106 src/Content/Widget.php:39 src/Model/Profile.php:313 -msgid "Connect" -msgstr "Connect" - #: mod/api.php:84 mod/api.php:106 msgid "Authorize application connection" msgstr "Authorise application connection" @@ -2866,212 +905,79 @@ msgid "" " and/or create new posts for you?" msgstr "Do you want to authorise this application to access your posts and contacts and create new posts for you?" -#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:161 #: mod/profiles.php:526 mod/profiles.php:530 mod/profiles.php:551 -#: mod/settings.php:1085 mod/settings.php:1091 mod/settings.php:1098 -#: mod/settings.php:1102 mod/settings.php:1106 mod/settings.php:1110 -#: mod/settings.php:1114 mod/settings.php:1118 mod/settings.php:1138 -#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 -#: mod/settings.php:1142 src/Module/Register.php:98 +#: mod/settings.php:1084 mod/settings.php:1090 mod/settings.php:1097 +#: mod/settings.php:1101 mod/settings.php:1105 mod/settings.php:1109 +#: mod/settings.php:1113 mod/settings.php:1117 mod/settings.php:1137 +#: mod/settings.php:1138 mod/settings.php:1139 mod/settings.php:1140 +#: mod/settings.php:1141 src/Module/Register.php:98 msgid "No" msgstr "No" -#: mod/apps.php:15 src/App.php:1349 -msgid "You must be logged in to use addons. " -msgstr "You must be logged in to use addons. " - -#: mod/apps.php:20 -msgid "Applications" -msgstr "Applications" - -#: mod/apps.php:25 -msgid "No installed applications." -msgstr "No installed applications." - -#: mod/babel.php:25 -msgid "Source input" -msgstr "Source input" - -#: mod/babel.php:31 -msgid "BBCode::toPlaintext" -msgstr "BBCode::toPlaintext" - -#: mod/babel.php:37 -msgid "BBCode::convert (raw HTML)" -msgstr "BBCode::convert (raw HTML)" - -#: mod/babel.php:42 -msgid "BBCode::convert" -msgstr "BBCode::convert" - -#: mod/babel.php:48 -msgid "BBCode::convert => HTML::toBBCode" -msgstr "BBCode::convert => HTML::toBBCode" - -#: mod/babel.php:54 -msgid "BBCode::toMarkdown" -msgstr "BBCode::toMarkdown" - -#: mod/babel.php:60 -msgid "BBCode::toMarkdown => Markdown::convert" -msgstr "BBCode::toMarkdown => Markdown::convert" - -#: mod/babel.php:66 -msgid "BBCode::toMarkdown => Markdown::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::toBBCode" - -#: mod/babel.php:72 -msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" - -#: mod/babel.php:83 -msgid "Item Body" -msgstr "Item Body" - -#: mod/babel.php:87 -msgid "Item Tags" -msgstr "Item Tags" - -#: mod/babel.php:94 -msgid "Source input (Diaspora format)" -msgstr "Source input (diaspora* format)" - -#: mod/babel.php:100 -msgid "Markdown::convert (raw HTML)" -msgstr "Markdown::convert (raw HTML)" - -#: mod/babel.php:105 -msgid "Markdown::convert" -msgstr "Markdown::convert" - -#: mod/babel.php:111 -msgid "Markdown::toBBCode" -msgstr "Markdown::toBBCode" - -#: mod/babel.php:118 -msgid "Raw HTML input" -msgstr "Raw HTML input" - -#: mod/babel.php:123 -msgid "HTML Input" -msgstr "HTML input" - -#: mod/babel.php:129 -msgid "HTML::toBBCode" -msgstr "HTML::toBBCode" - -#: mod/babel.php:135 -msgid "HTML::toBBCode => BBCode::convert" -msgstr "HTML::toBBCode => BBCode::convert" - -#: mod/babel.php:140 -msgid "HTML::toBBCode => BBCode::convert (raw HTML)" -msgstr "HTML::toBBCode => BBCode::convert (raw HTML)" - -#: mod/babel.php:146 -msgid "HTML::toMarkdown" -msgstr "HTML::toMarkdown" - -#: mod/babel.php:152 -msgid "HTML::toPlaintext" -msgstr "HTML::toPlaintext" - -#: mod/babel.php:160 -msgid "Source text" -msgstr "Source text" - -#: mod/babel.php:161 -msgid "BBCode" -msgstr "BBCode" - -#: mod/babel.php:162 -msgid "Markdown" -msgstr "Markdown" - -#: mod/babel.php:163 -msgid "HTML" -msgstr "HTML" - -#: mod/bookmarklet.php:22 src/Content/Nav.php:170 src/Module/Login.php:322 -msgid "Login" -msgstr "Login" - -#: mod/bookmarklet.php:32 -msgid "Bad Request" -msgstr "Bad Request" - -#: mod/bookmarklet.php:54 -msgid "The post was created" -msgstr "The post was created" - #: mod/cal.php:34 mod/cal.php:38 mod/community.php:39 mod/follow.php:20 -#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 mod/viewsrc.php:13 +#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 src/Module/ItemBody.php:18 msgid "Access denied." msgstr "Access denied." -#: mod/cal.php:46 mod/dfrn_poll.php:486 mod/help.php:68 -#: mod/viewcontacts.php:34 src/App.php:1400 -msgid "Page not found." -msgstr "Page not found" - -#: mod/cal.php:141 mod/display.php:309 src/Module/Profile.php:168 +#: mod/cal.php:140 mod/display.php:306 src/Module/Profile.php:176 msgid "Access to this profile has been restricted." msgstr "Access to this profile has been restricted." -#: mod/cal.php:273 mod/events.php:384 src/Content/Nav.php:160 -#: src/Content/Nav.php:226 src/Model/Profile.php:937 src/Model/Profile.php:948 +#: mod/cal.php:271 mod/events.php:382 src/Content/Nav.php:159 +#: src/Content/Nav.php:225 src/Model/Profile.php:931 src/Model/Profile.php:942 #: view/theme/frio/theme.php:266 view/theme/frio/theme.php:270 msgid "Events" msgstr "Events" -#: mod/cal.php:274 mod/events.php:385 +#: mod/cal.php:272 mod/events.php:383 msgid "View" msgstr "View" -#: mod/cal.php:275 mod/events.php:387 +#: mod/cal.php:273 mod/events.php:385 msgid "Previous" msgstr "Previous" -#: mod/cal.php:276 mod/events.php:388 src/Module/Install.php:133 +#: mod/cal.php:274 mod/events.php:386 src/Module/Install.php:173 msgid "Next" msgstr "Next" -#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:428 +#: mod/cal.php:277 mod/events.php:391 src/Model/Event.php:428 msgid "today" msgstr "today" -#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:429 +#: mod/cal.php:278 mod/events.php:392 src/Model/Event.php:429 #: src/Util/Temporal.php:314 msgid "month" msgstr "month" -#: mod/cal.php:281 mod/events.php:395 src/Model/Event.php:430 +#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:430 #: src/Util/Temporal.php:315 msgid "week" msgstr "week" -#: mod/cal.php:282 mod/events.php:396 src/Model/Event.php:431 +#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:431 #: src/Util/Temporal.php:316 msgid "day" msgstr "day" -#: mod/cal.php:283 mod/events.php:397 +#: mod/cal.php:281 mod/events.php:395 msgid "list" msgstr "List" -#: mod/cal.php:296 src/Core/Console/NewPassword.php:67 src/Model/User.php:324 +#: mod/cal.php:294 src/Console/NewPassword.php:67 src/Model/User.php:351 msgid "User not found" msgstr "User not found" -#: mod/cal.php:312 +#: mod/cal.php:310 msgid "This calendar format is not supported" msgstr "This calendar format is not supported" -#: mod/cal.php:314 +#: mod/cal.php:312 msgid "No exportable data found" msgstr "No exportable data found" -#: mod/cal.php:331 +#: mod/cal.php:329 msgid "calendar" msgstr "calendar" @@ -3079,14 +985,14 @@ msgstr "calendar" msgid "No contacts in common." msgstr "No contacts in common." -#: mod/common.php:141 src/Module/Contact.php:892 +#: mod/common.php:141 src/Module/Contact.php:895 msgid "Common Friends" msgstr "Common friends" -#: mod/community.php:32 mod/dfrn_request.php:597 mod/directory.php:43 -#: mod/display.php:209 mod/photos.php:903 mod/probe.php:13 mod/search.php:96 -#: mod/search.php:102 mod/videos.php:147 mod/viewcontacts.php:46 -#: mod/webfinger.php:16 +#: mod/community.php:32 mod/dfrn_request.php:597 mod/display.php:204 +#: mod/photos.php:846 mod/probe.php:14 mod/search.php:96 mod/search.php:102 +#: mod/videos.php:118 mod/viewcontacts.php:46 src/Module/Directory.php:43 +#: src/Module/WebFinger.php:19 msgid "Public access denied." msgstr "Public access denied." @@ -3114,7 +1020,7 @@ msgstr "Global Community" msgid "Posts from users of the whole federated network" msgstr "Posts from users of the whole federated network" -#: mod/community.php:162 mod/search.php:229 +#: mod/community.php:162 mod/search.php:223 msgid "No results." msgstr "No results." @@ -3124,17 +1030,6 @@ msgid "" " not reflect the opinions of this node’s users." msgstr "This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users." -#: mod/credits.php:19 -msgid "Credits" -msgstr "Credits" - -#: mod/credits.php:20 -msgid "" -"Friendica is a community project, that would not be possible without the " -"help of many people. Here is a list of those who have contributed to the " -"code or the translation of Friendica. Thank you all!" -msgstr "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!" - #: mod/crepair.php:79 msgid "Contact settings applied." msgstr "Contact settings applied." @@ -3143,8 +1038,9 @@ msgstr "Contact settings applied." msgid "Contact update failed." msgstr "Contact update failed." -#: mod/crepair.php:102 mod/dfrn_confirm.php:127 mod/fsuggest.php:28 +#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/fsuggest.php:28 #: mod/fsuggest.php:89 mod/redir.php:31 mod/redir.php:137 +#: src/Module/FollowConfirm.php:46 src/Module/Group.php:92 msgid "Contact not found." msgstr "Contact not found." @@ -3180,14 +1076,15 @@ msgstr "Return to contact editor" msgid "Refetch contact data" msgstr "Re-fetch contact data." -#: mod/crepair.php:149 mod/events.php:553 mod/fsuggest.php:106 -#: mod/invite.php:154 mod/localtime.php:56 mod/manage.php:182 -#: mod/message.php:261 mod/message.php:441 mod/photos.php:1049 -#: mod/photos.php:1137 mod/photos.php:1412 mod/photos.php:1457 -#: mod/photos.php:1496 mod/photos.php:1556 mod/poke.php:188 -#: mod/profiles.php:562 src/Module/Contact.php:594 src/Module/Install.php:187 -#: src/Module/Install.php:222 src/Object/Post.php:874 -#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:119 +#: mod/crepair.php:149 mod/events.php:551 mod/fsuggest.php:106 +#: mod/manage.php:183 mod/message.php:261 mod/message.php:441 +#: mod/photos.php:987 mod/photos.php:1093 mod/photos.php:1378 +#: mod/photos.php:1423 mod/photos.php:1462 mod/photos.php:1522 +#: mod/poke.php:184 mod/profiles.php:562 src/Module/Contact.php:597 +#: src/Module/Install.php:211 src/Module/Install.php:251 +#: src/Module/Install.php:287 src/Module/Invite.php:157 +#: src/Module/Localtime.php:45 src/Object/Post.php:877 +#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:121 #: view/theme/quattro/config.php:74 view/theme/vier/config.php:120 msgid "Submit" msgstr "Submit" @@ -3206,6 +1103,13 @@ msgid "" "entries from this contact." msgstr "This will cause Friendica to repost new entries from this contact." +#: mod/crepair.php:159 mod/settings.php:676 mod/settings.php:702 +#: src/Module/Admin/Blocklist/Contact.php:72 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:313 +msgid "Name" +msgstr "Name:" + #: mod/crepair.php:160 msgid "Account Nickname" msgstr "Account nickname:" @@ -3269,7 +1173,15 @@ msgid "" "settings. Please double check whom you give this access." msgstr "Parent users have total control of this account, including core settings. Please double-check whom you grant such access." -#: mod/delegate.php:176 src/Content/Nav.php:261 +#: mod/delegate.php:175 mod/settings.php:674 mod/settings.php:781 +#: mod/settings.php:869 mod/settings.php:948 mod/settings.php:1173 +#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69 +#: src/Module/Admin/Logs/Settings.php:59 src/Module/Admin/Site.php:570 +#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Tos.php:50 +msgid "Save Settings" +msgstr "Save settings" + +#: mod/delegate.php:176 src/Content/Nav.php:260 msgid "Delegate Page Management" msgstr "Delegate Page Management" @@ -3304,83 +1216,79 @@ msgstr "Add" msgid "No entries." msgstr "No entries." -#: mod/dfrn_confirm.php:72 mod/profiles.php:43 mod/profiles.php:152 +#: mod/dfrn_confirm.php:70 mod/profiles.php:43 mod/profiles.php:152 #: mod/profiles.php:196 mod/profiles.php:511 msgid "Profile not found." msgstr "Profile not found." -#: mod/dfrn_confirm.php:128 +#: mod/dfrn_confirm.php:126 msgid "" "This may occasionally happen if contact was requested by both persons and it" " has already been approved." msgstr "This may occasionally happen if contact was requested by both persons and it has already been approved." -#: mod/dfrn_confirm.php:238 +#: mod/dfrn_confirm.php:227 msgid "Response from remote site was not understood." msgstr "Response from remote site was not understood." -#: mod/dfrn_confirm.php:245 mod/dfrn_confirm.php:251 +#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240 msgid "Unexpected response from remote site: " msgstr "Unexpected response from remote site: " -#: mod/dfrn_confirm.php:260 +#: mod/dfrn_confirm.php:249 msgid "Confirmation completed successfully." msgstr "Confirmation completed successfully." -#: mod/dfrn_confirm.php:272 +#: mod/dfrn_confirm.php:261 msgid "Temporary failure. Please wait and try again." msgstr "Temporary failure. Please wait and try again." -#: mod/dfrn_confirm.php:275 +#: mod/dfrn_confirm.php:264 msgid "Introduction failed or was revoked." msgstr "Introduction failed or was revoked." -#: mod/dfrn_confirm.php:280 +#: mod/dfrn_confirm.php:269 msgid "Remote site reported: " msgstr "Remote site reported: " -#: mod/dfrn_confirm.php:386 -msgid "Unable to set contact photo." -msgstr "Unable to set contact photo." - -#: mod/dfrn_confirm.php:448 +#: mod/dfrn_confirm.php:374 #, php-format msgid "No user record found for '%s' " msgstr "No user record found for '%s' " -#: mod/dfrn_confirm.php:458 +#: mod/dfrn_confirm.php:384 msgid "Our site encryption key is apparently messed up." msgstr "Our site encryption key is apparently messed up." -#: mod/dfrn_confirm.php:469 +#: mod/dfrn_confirm.php:395 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "An empty URL was provided or the URL could not be decrypted by us." -#: mod/dfrn_confirm.php:485 +#: mod/dfrn_confirm.php:411 msgid "Contact record was not found for you on our site." msgstr "Contact record was not found for you on our site." -#: mod/dfrn_confirm.php:499 +#: mod/dfrn_confirm.php:425 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "Site public key not available in contact record for URL %s." -#: mod/dfrn_confirm.php:515 +#: mod/dfrn_confirm.php:441 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "The ID provided by your system is a duplicate on our system. It should work if you try again." -#: mod/dfrn_confirm.php:526 +#: mod/dfrn_confirm.php:452 msgid "Unable to set your contact credentials on our system." msgstr "Unable to set your contact credentials on our system." -#: mod/dfrn_confirm.php:582 +#: mod/dfrn_confirm.php:508 msgid "Unable to update your contact profile details on our system" msgstr "Unable to update your contact profile details on our system" -#: mod/dfrn_confirm.php:612 mod/dfrn_request.php:560 -#: src/Model/Contact.php:2043 +#: mod/dfrn_confirm.php:538 mod/dfrn_request.php:560 +#: src/Model/Contact.php:2217 msgid "[Name Withheld]" msgstr "[Name Withheld]" @@ -3454,11 +1362,17 @@ msgstr "Apparently you are already friends with %s." msgid "Invalid profile URL." msgstr "Invalid profile URL." -#: mod/dfrn_request.php:340 src/Model/Contact.php:1714 +#: mod/dfrn_request.php:340 src/Model/Contact.php:1878 msgid "Disallowed profile URL." msgstr "Disallowed profile URL." -#: mod/dfrn_request.php:413 src/Module/Contact.php:235 +#: mod/dfrn_request.php:346 src/Model/Contact.php:1883 +#: src/Module/Admin/Blocklist/Server.php:64 +#: src/Module/Admin/Blocklist/Server.php:83 src/Module/Friendica.php:59 +msgid "Blocked domain" +msgstr "Blocked domain" + +#: mod/dfrn_request.php:413 src/Module/Contact.php:237 msgid "Failed to update contact record." msgstr "Failed to update contact record." @@ -3523,16 +1437,16 @@ msgid "" "testuser@gnusocial.de" msgstr "Examples: jojo@demo.friendi.ca, http://demo.friendi.ca/profile/jojo, user@gnusocial.de" -#: mod/dfrn_request.php:639 mod/follow.php:149 +#: mod/dfrn_request.php:639 mod/follow.php:160 msgid "Please answer the following:" msgstr "Please answer the following:" -#: mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/dfrn_request.php:640 mod/follow.php:161 #, php-format msgid "Does %s know you?" msgstr "Does %s know you?" -#: mod/dfrn_request.php:641 mod/follow.php:151 +#: mod/dfrn_request.php:641 mod/follow.php:162 msgid "Add a personal note:" msgstr "Add a personal note:" @@ -3555,65 +1469,14 @@ msgid "" " bar." msgstr " - please do not use this form. Instead, enter %s into your diaspora* search bar." -#: mod/dfrn_request.php:647 mod/follow.php:157 mod/unfollow.php:128 +#: mod/dfrn_request.php:647 mod/follow.php:168 mod/unfollow.php:128 msgid "Your Identity Address:" msgstr "My identity address:" -#: mod/dfrn_request.php:649 mod/follow.php:65 mod/unfollow.php:131 +#: mod/dfrn_request.php:649 mod/follow.php:74 mod/unfollow.php:131 msgid "Submit Request" msgstr "Submit request" -#: mod/directory.php:154 mod/events.php:541 mod/notifications.php:253 -#: src/Model/Event.php:68 src/Model/Event.php:95 src/Model/Event.php:437 -#: src/Model/Event.php:933 src/Model/Profile.php:443 -#: src/Module/Contact.php:643 -msgid "Location:" -msgstr "Location:" - -#: mod/directory.php:159 mod/notifications.php:259 src/Model/Profile.php:446 -#: src/Model/Profile.php:758 -msgid "Gender:" -msgstr "Gender:" - -#: mod/directory.php:160 src/Model/Profile.php:447 src/Model/Profile.php:782 -msgid "Status:" -msgstr "Status:" - -#: mod/directory.php:161 src/Model/Profile.php:448 src/Model/Profile.php:799 -msgid "Homepage:" -msgstr "Homepage:" - -#: mod/directory.php:162 mod/notifications.php:255 src/Model/Profile.php:449 -#: src/Model/Profile.php:819 src/Module/Contact.php:647 -msgid "About:" -msgstr "About:" - -#: mod/directory.php:210 src/Content/Widget.php:70 -#: view/theme/vier/theme.php:208 -msgid "Global Directory" -msgstr "Global Directory" - -#: mod/directory.php:212 -msgid "Find on this site" -msgstr "Find on this site" - -#: mod/directory.php:214 -msgid "Results for:" -msgstr "Results for:" - -#: mod/directory.php:216 -msgid "Site Directory" -msgstr "Site directory" - -#: mod/directory.php:217 src/Content/Widget.php:65 src/Module/Contact.php:817 -#: view/theme/vier/theme.php:203 -msgid "Find" -msgstr "Find" - -#: mod/directory.php:221 -msgid "No entries (some entries may be hidden)." -msgstr "No entries (entries may be hidden)." - #: mod/dirfind.php:55 #, php-format msgid "People Search - %s" @@ -3624,53 +1487,67 @@ msgstr "People search - %s" msgid "Forum Search - %s" msgstr "Forum search - %s" +#: mod/dirfind.php:217 mod/match.php:102 mod/suggest.php:106 +#: src/Content/Widget.php:39 src/Model/Profile.php:309 +#: src/Module/AllFriends.php:91 +msgid "Connect" +msgstr "Connect" + #: mod/dirfind.php:259 mod/match.php:130 msgid "No matches" msgstr "No matches" -#: mod/editpost.php:29 mod/editpost.php:39 +#: mod/display.php:257 mod/display.php:342 +msgid "The requested item doesn't exist or has been deleted." +msgstr "The requested item doesn't exist or has been deleted." + +#: mod/display.php:417 +msgid "The feed for this item is unavailable." +msgstr "The feed for this item is unavailable." + +#: mod/editpost.php:28 mod/editpost.php:38 msgid "Item not found" msgstr "Item not found" -#: mod/editpost.php:46 +#: mod/editpost.php:45 msgid "Edit post" msgstr "Edit post" -#: mod/editpost.php:73 mod/filer.php:36 mod/notes.php:46 -#: src/Content/Text/HTML.php:894 +#: mod/editpost.php:71 mod/notes.php:46 src/Content/Text/HTML.php:894 +#: src/Module/Filer/SaveTag.php:50 msgid "Save" msgstr "Save" -#: mod/editpost.php:78 mod/message.php:259 mod/message.php:440 +#: mod/editpost.php:76 mod/message.php:259 mod/message.php:440 #: mod/wallmessage.php:140 msgid "Insert web link" msgstr "Insert web link" -#: mod/editpost.php:79 +#: mod/editpost.php:77 msgid "web link" msgstr "web link" -#: mod/editpost.php:80 +#: mod/editpost.php:78 msgid "Insert video link" msgstr "Insert video link" -#: mod/editpost.php:81 +#: mod/editpost.php:79 msgid "video link" msgstr "video link" -#: mod/editpost.php:82 +#: mod/editpost.php:80 msgid "Insert audio link" msgstr "Insert audio link" -#: mod/editpost.php:83 +#: mod/editpost.php:81 msgid "audio link" msgstr "audio link" -#: mod/editpost.php:98 src/Core/ACL.php:307 +#: mod/editpost.php:95 src/Core/ACL.php:308 msgid "CC: email addresses" msgstr "CC: email addresses" -#: mod/editpost.php:105 src/Core/ACL.php:308 +#: mod/editpost.php:102 src/Core/ACL.php:309 msgid "Example: bob@example.com, mary@example.com" msgstr "Example: bob@example.com, mary@example.com" @@ -3682,171 +1559,135 @@ msgstr "Event cannot end before it has started." msgid "Event title and start time are required." msgstr "Event title and starting time are required." -#: mod/events.php:386 +#: mod/events.php:384 msgid "Create New Event" msgstr "Create new event" -#: mod/events.php:509 +#: mod/events.php:507 msgid "Event details" msgstr "Event details" -#: mod/events.php:510 +#: mod/events.php:508 msgid "Starting date and Title are required." msgstr "Starting date and title are required." -#: mod/events.php:511 mod/events.php:516 +#: mod/events.php:509 mod/events.php:514 msgid "Event Starts:" msgstr "Event starts:" -#: mod/events.php:511 mod/events.php:543 mod/profiles.php:592 +#: mod/events.php:509 mod/events.php:541 mod/profiles.php:592 msgid "Required" msgstr "Required" -#: mod/events.php:524 mod/events.php:549 +#: mod/events.php:522 mod/events.php:547 msgid "Finish date/time is not known or not relevant" msgstr "Finish date/time is not known or not relevant" -#: mod/events.php:526 mod/events.php:531 +#: mod/events.php:524 mod/events.php:529 msgid "Event Finishes:" msgstr "Event finishes:" -#: mod/events.php:537 mod/events.php:550 +#: mod/events.php:535 mod/events.php:548 msgid "Adjust for viewer timezone" msgstr "Adjust for viewer's time zone" -#: mod/events.php:539 +#: mod/events.php:537 msgid "Description:" msgstr "Description:" -#: mod/events.php:543 mod/events.php:545 +#: mod/events.php:539 mod/notifications.php:261 src/Model/Event.php:68 +#: src/Model/Event.php:95 src/Model/Event.php:437 src/Model/Event.php:933 +#: src/Model/Profile.php:439 src/Module/Contact.php:646 +#: src/Module/Directory.php:142 +msgid "Location:" +msgstr "Location:" + +#: mod/events.php:541 mod/events.php:543 msgid "Title:" msgstr "Title:" -#: mod/events.php:546 mod/events.php:547 +#: mod/events.php:544 mod/events.php:545 msgid "Share this event" msgstr "Share this event" -#: mod/events.php:554 src/Model/Profile.php:877 +#: mod/events.php:552 src/Model/Profile.php:871 msgid "Basic" msgstr "Basic" -#: mod/events.php:556 mod/photos.php:1067 mod/photos.php:1408 -#: src/Core/ACL.php:310 +#: mod/events.php:553 src/Model/Profile.php:872 src/Module/Admin/Site.php:575 +#: src/Module/Contact.php:905 +msgid "Advanced" +msgstr "Advanced" + +#: mod/events.php:554 mod/photos.php:1005 mod/photos.php:1374 +#: src/Core/ACL.php:314 msgid "Permissions" msgstr "Permissions" -#: mod/events.php:572 +#: mod/events.php:570 msgid "Failed to remove event" msgstr "Failed to remove event" -#: mod/events.php:574 +#: mod/events.php:572 msgid "Event removed" msgstr "Event removed" -#: mod/fbrowser.php:36 src/Content/Nav.php:158 src/Model/Profile.php:917 +#: mod/fbrowser.php:43 src/Content/Nav.php:157 src/Model/Profile.php:911 #: view/theme/frio/theme.php:264 msgid "Photos" msgstr "Photos" -#: mod/fbrowser.php:45 mod/fbrowser.php:69 mod/photos.php:201 -#: mod/photos.php:1031 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1610 mod/photos.php:1625 src/Model/Photo.php:547 -#: src/Model/Photo.php:556 +#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:193 +#: mod/photos.php:969 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1575 mod/photos.php:1590 src/Model/Photo.php:552 +#: src/Model/Photo.php:561 msgid "Contact Photos" msgstr "Contact photos" -#: mod/fbrowser.php:106 mod/fbrowser.php:136 mod/profile_photo.php:254 +#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:254 msgid "Upload" msgstr "Upload" -#: mod/fbrowser.php:131 +#: mod/fbrowser.php:136 msgid "Files" msgstr "Files" -#: mod/feedtest.php:18 -msgid "You must be logged in to use this module" -msgstr "You must be logged in to use this module" - -#: mod/feedtest.php:45 -msgid "Source URL" -msgstr "Source URL" - -#: mod/filer.php:35 -msgid "- select -" -msgstr "- select -" - #: mod/follow.php:46 msgid "The contact could not be added." msgstr "Contact could not be added." -#: mod/follow.php:76 +#: mod/follow.php:85 msgid "You already added this contact." msgstr "You already added this contact." -#: mod/follow.php:86 +#: mod/follow.php:97 msgid "Diaspora support isn't enabled. Contact can't be added." msgstr "diaspora* support isn't enabled. Contact can't be added." -#: mod/follow.php:93 +#: mod/follow.php:104 msgid "OStatus support is disabled. Contact can't be added." msgstr "OStatus support is disabled. Contact can't be added." -#: mod/follow.php:100 +#: mod/follow.php:111 msgid "The network type couldn't be detected. Contact can't be added." msgstr "The network type couldn't be detected. Contact can't be added." -#: mod/follow.php:170 mod/notifications.php:257 src/Model/Profile.php:807 -#: src/Module/Contact.php:649 +#: mod/follow.php:177 mod/notifications.php:179 mod/notifications.php:271 +#: mod/unfollow.php:137 src/Module/Admin/Blocklist/Contact.php:72 +#: src/Module/Admin/Blocklist/Contact.php:82 src/Module/Contact.php:642 +msgid "Profile URL" +msgstr "Profile URL:" + +#: mod/follow.php:181 mod/notifications.php:265 src/Model/Profile.php:801 +#: src/Module/Contact.php:652 msgid "Tags:" msgstr "Tags:" -#: mod/follow.php:182 mod/unfollow.php:147 src/Model/Profile.php:904 -#: src/Module/Contact.php:864 +#: mod/follow.php:193 mod/unfollow.php:147 src/Model/Profile.php:898 +#: src/Module/Contact.php:867 msgid "Status Messages and Posts" msgstr "Status Messages and Posts" -#: mod/friendica.php:88 -#, php-format -msgid "" -"This is Friendica, version %s that is running at the web location %s. The " -"database version is %s, the post update version is %s." -msgstr "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s." - -#: mod/friendica.php:94 -msgid "" -"Please visit Friendi.ca to learn more " -"about the Friendica project." -msgstr "Please visit Friendi.ca to learn more about the Friendica project." - -#: mod/friendica.php:98 -msgid "Bug reports and issues: please visit" -msgstr "Bug reports and issues: please visit" - -#: mod/friendica.php:98 -msgid "the bugtracker at github" -msgstr "the bugtracker at github" - -#: mod/friendica.php:101 -msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" -msgstr "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" - -#: mod/friendica.php:106 -msgid "Installed addons/apps:" -msgstr "Installed addons/apps:" - -#: mod/friendica.php:120 -msgid "No installed addons/apps" -msgstr "No installed addons/apps" - -#: mod/friendica.php:125 -#, php-format -msgid "Read about the Terms of Service of this node." -msgstr "Read about the Terms of Service of this node." - -#: mod/friendica.php:130 -msgid "On this server the following remote servers are blocked." -msgstr "On this server the following remote servers are blocked." - #: mod/fsuggest.php:69 msgid "Friend suggestion sent." msgstr "Friend suggestion sent" @@ -3860,281 +1701,41 @@ msgstr "Suggest friends" msgid "Suggest a friend for %s" msgstr "Suggest a friend for %s" -#: mod/group.php:38 -msgid "Group created." -msgstr "Group created." - -#: mod/group.php:44 -msgid "Could not create group." -msgstr "Could not create group." - -#: mod/group.php:58 mod/group.php:184 -msgid "Group not found." -msgstr "Group not found." - -#: mod/group.php:72 -msgid "Group name changed." -msgstr "Group name changed." - -#: mod/group.php:85 mod/profperm.php:30 src/App.php:1479 -msgid "Permission denied" -msgstr "Permission denied" - -#: mod/group.php:103 -msgid "Save Group" -msgstr "Save group" - -#: mod/group.php:104 -msgid "Filter" -msgstr "Filter" - -#: mod/group.php:109 -msgid "Create a group of contacts/friends." -msgstr "Create a group of contacts/friends." - -#: mod/group.php:110 mod/group.php:133 mod/group.php:224 -#: src/Model/Group.php:423 -msgid "Group Name: " -msgstr "Group name: " - -#: mod/group.php:125 src/Model/Group.php:420 -msgid "Contacts not in any group" -msgstr "Contacts not in any group" - -#: mod/group.php:156 -msgid "Group removed." -msgstr "Group removed." - -#: mod/group.php:158 -msgid "Unable to remove group." -msgstr "Unable to remove group." - -#: mod/group.php:217 -msgid "Delete Group" -msgstr "Delete group" - -#: mod/group.php:228 -msgid "Edit Group Name" -msgstr "Edit group name" - -#: mod/group.php:239 -msgid "Members" -msgstr "Members" - -#: mod/group.php:241 src/Module/Contact.php:704 -msgid "All Contacts" -msgstr "All contacts" - -#: mod/group.php:242 mod/network.php:654 -msgid "Group is empty" -msgstr "Group is empty" - -#: mod/group.php:255 -msgid "Remove contact from group" -msgstr "Remove contact from group" - -#: mod/group.php:273 mod/profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Click on a contact to add or remove it." - -#: mod/group.php:287 -msgid "Add contact to group" -msgstr "Add contact to group" - #: mod/hcard.php:20 msgid "No profile" msgstr "No profile" -#: mod/help.php:52 -msgid "Help:" -msgstr "Help:" - -#: mod/help.php:59 src/Content/Nav.php:190 view/theme/vier/theme.php:294 -msgid "Help" -msgstr "Help" - -#: mod/help.php:65 src/App.php:1397 -msgid "Not Found" -msgstr "Not found" - -#: mod/home.php:40 -#, php-format -msgid "Welcome to %s" -msgstr "Welcome to %s" - -#: mod/invite.php:36 -msgid "Total invitation limit exceeded." -msgstr "Total invitation limit exceeded" - -#: mod/invite.php:60 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Not a valid email address" - -#: mod/invite.php:87 -msgid "Please join us on Friendica" -msgstr "Please join us on Friendica." - -#: mod/invite.php:96 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Invitation limit is exceeded. Please contact your site administrator." - -#: mod/invite.php:100 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Message delivery failed" - -#: mod/invite.php:104 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d message sent." -msgstr[1] "%d messages sent." - -#: mod/invite.php:122 -msgid "You have no more invitations available" -msgstr "You have no more invitations available." - -#: mod/invite.php:130 -#, php-format -msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks." - -#: mod/invite.php:132 -#, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "To accept this invitation, please sign up at %s or any other public Friendica website." - -#: mod/invite.php:133 -#, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Friendica sites are all inter-connect to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join." - -#: mod/invite.php:137 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Our apologies. This system is not currently configured to connect with other public sites or invite members." - -#: mod/invite.php:141 -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks." -msgstr "Friendica sites are all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks." - -#: mod/invite.php:140 -#, php-format -msgid "To accept this invitation, please visit and register at %s." -msgstr "To accept this invitation, please visit and register at %s." - -#: mod/invite.php:147 -msgid "Send invitations" -msgstr "Send invitations" - -#: mod/invite.php:148 -msgid "Enter email addresses, one per line:" -msgstr "Enter email addresses, one per line:" - -#: mod/invite.php:149 mod/message.php:255 mod/message.php:435 -#: mod/wallmessage.php:137 -msgid "Your message:" -msgstr "Your message:" - -#: mod/invite.php:149 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web." - -#: mod/invite.php:151 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "You will need to supply this invitation code: $invite_code" - -#: mod/invite.php:151 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Once you have signed up, please connect with me via my profile page at:" - -#: mod/invite.php:153 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendi.ca" -msgstr "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca" - -#: mod/item.php:120 +#: mod/item.php:122 msgid "Unable to locate original post." msgstr "Unable to locate original post." -#: mod/item.php:320 +#: mod/item.php:322 msgid "Empty post discarded." msgstr "Empty post discarded." -#: mod/item.php:841 +#: mod/item.php:839 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "This message was sent to you by %s, a member of the Friendica social network." -#: mod/item.php:843 +#: mod/item.php:841 #, php-format msgid "You may visit them online at %s" msgstr "You may visit them online at %s" -#: mod/item.php:844 +#: mod/item.php:842 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Please contact the sender by replying to this post if you do not wish to receive these messages." -#: mod/item.php:848 +#: mod/item.php:846 #, php-format msgid "%s posted an update." msgstr "%s posted an update." -#: mod/localtime.php:19 src/Model/Event.php:34 src/Model/Event.php:847 -msgid "l F d, Y \\@ g:i A" -msgstr "l F d, Y \\@ g:i A" - -#: mod/localtime.php:33 -msgid "Time Conversion" -msgstr "Time conversion" - -#: mod/localtime.php:35 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica provides this service for sharing events with other networks and friends in unknown time zones." - -#: mod/localtime.php:39 -#, php-format -msgid "UTC time: %s" -msgstr "UTC time: %s" - -#: mod/localtime.php:42 -#, php-format -msgid "Current timezone: %s" -msgstr "Current time zone: %s" - -#: mod/localtime.php:46 -#, php-format -msgid "Converted localtime: %s" -msgstr "Converted local time: %s" - -#: mod/localtime.php:52 -msgid "Please select your timezone:" -msgstr "Please select your time zone:" - #: mod/lockview.php:46 mod/lockview.php:57 msgid "Remote privacy information not available." msgstr "Remote privacy information not available." @@ -4209,7 +1810,7 @@ msgid "" "your email for further instructions." msgstr "Enter email address or nickname to reset your password. You will receive further instruction via email." -#: mod/lostpass.php:119 src/Module/Login.php:324 +#: mod/lostpass.php:119 src/Module/Login.php:327 msgid "Nickname or Email: " msgstr "Nickname or email: " @@ -4217,7 +1818,7 @@ msgstr "Nickname or email: " msgid "Reset" msgstr "Reset" -#: mod/lostpass.php:135 src/Module/Login.php:336 +#: mod/lostpass.php:135 src/Module/Login.php:339 msgid "Password Reset" msgstr "Forgotten password?" @@ -4243,7 +1844,7 @@ msgid "" "successful login." msgstr "Your password may be changed from the Settings page after successful login." -#: mod/lostpass.php:148 +#: mod/lostpass.php:147 #, php-format msgid "" "\n" @@ -4254,7 +1855,7 @@ msgid "" "\t\t" msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t" -#: mod/lostpass.php:154 +#: mod/lostpass.php:153 #, php-format msgid "" "\n" @@ -4268,26 +1869,22 @@ msgid "" "\t\t" msgstr "\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1$s\n\t\t\tLogin Name:\t%2$s\n\t\t\tPassword:\t%3$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t" -#: mod/lostpass.php:170 +#: mod/lostpass.php:169 #, php-format msgid "Your password has been changed at %s" msgstr "Your password has been changed at %s" -#: mod/maintenance.php:26 -msgid "System down for maintenance" -msgstr "Sorry, the system is currently down for maintenance." - -#: mod/manage.php:178 +#: mod/manage.php:179 msgid "Manage Identities and/or Pages" msgstr "Manage Identities and Pages" -#: mod/manage.php:179 +#: mod/manage.php:180 msgid "" "Toggle between different identities or community/group pages which share " "your account details or which you have been granted \"manage\" permissions" msgstr "Accounts that I manage or own." -#: mod/manage.php:180 +#: mod/manage.php:181 msgid "Select an identity to manage: " msgstr "Select identity:" @@ -4307,7 +1904,7 @@ msgstr "next" msgid "Profile Match" msgstr "Profile Match" -#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:255 +#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:254 msgid "New Message" msgstr "New Message" @@ -4332,11 +1929,11 @@ msgid "Message sent." msgstr "Message sent." #: mod/message.php:110 mod/notifications.php:47 mod/notifications.php:187 -#: mod/notifications.php:235 +#: mod/notifications.php:243 msgid "Discard" msgstr "Discard" -#: mod/message.php:123 src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: mod/message.php:123 src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Messages" msgstr "Messages" @@ -4372,6 +1969,11 @@ msgstr "To:" msgid "Subject:" msgstr "Subject:" +#: mod/message.php:255 mod/message.php:435 mod/wallmessage.php:137 +#: src/Module/Invite.php:150 +msgid "Your message:" +msgstr "Your message:" + #: mod/message.php:289 msgid "No messages." msgstr "No messages." @@ -4424,19 +2026,19 @@ msgid_plural "%d messages" msgstr[0] "%d message" msgstr[1] "%d messages" -#: mod/network.php:183 mod/search.php:38 +#: mod/network.php:184 mod/search.php:38 msgid "Remove term" msgstr "Remove term" -#: mod/network.php:190 mod/search.php:47 +#: mod/network.php:191 mod/search.php:47 msgid "Saved Searches" msgstr "Saved searches" -#: mod/network.php:191 src/Model/Group.php:414 +#: mod/network.php:192 src/Model/Group.php:434 msgid "add" msgstr "add" -#: mod/network.php:563 +#: mod/network.php:572 #, php-format msgid "" "Warning: This group contains %s member from a network that doesn't allow non" @@ -4447,73 +2049,78 @@ msgid_plural "" msgstr[0] "Warning: This group contains %s member from a network that doesn't allow non public messages." msgstr[1] "Warning: This group contains %s members from a network that doesn't allow non public messages." -#: mod/network.php:566 +#: mod/network.php:575 msgid "Messages in this group won't be send to these receivers." msgstr "Messages in this group won't be send to these receivers." -#: mod/network.php:633 +#: mod/network.php:642 msgid "No such group" msgstr "No such group" -#: mod/network.php:658 +#: mod/network.php:663 src/Module/Group.php:288 +msgid "Group is empty" +msgstr "Group is empty" + +#: mod/network.php:667 #, php-format msgid "Group: %s" msgstr "Group: %s" -#: mod/network.php:684 +#: mod/network.php:693 msgid "Private messages to this person are at risk of public disclosure." msgstr "Private messages to this person are at risk of public disclosure." -#: mod/network.php:687 +#: mod/network.php:696 src/Module/AllFriends.php:35 +#: src/Module/AllFriends.php:43 msgid "Invalid contact." msgstr "Invalid contact." -#: mod/network.php:966 +#: mod/network.php:975 msgid "Commented Order" msgstr "Commented last" -#: mod/network.php:969 +#: mod/network.php:978 msgid "Sort by Comment Date" msgstr "Sort by comment date" -#: mod/network.php:974 +#: mod/network.php:983 msgid "Posted Order" msgstr "Posted last" -#: mod/network.php:977 +#: mod/network.php:986 msgid "Sort by Post Date" msgstr "Sort by post date" -#: mod/network.php:984 mod/profiles.php:579 -#: src/Core/NotificationsManager.php:189 +#: mod/network.php:993 mod/profiles.php:579 +#: src/Core/NotificationsManager.php:158 msgid "Personal" msgstr "Personal" -#: mod/network.php:987 +#: mod/network.php:996 msgid "Posts that mention or involve you" msgstr "Posts mentioning or involving me" -#: mod/network.php:994 +#: mod/network.php:1003 msgid "New" msgstr "New" -#: mod/network.php:997 +#: mod/network.php:1006 msgid "Activity Stream - by date" msgstr "Activity Stream - by date" -#: mod/network.php:1005 +#: mod/network.php:1014 msgid "Shared Links" msgstr "Shared links" -#: mod/network.php:1008 +#: mod/network.php:1017 msgid "Interesting Links" msgstr "Interesting links" -#: mod/network.php:1015 +#: mod/network.php:1024 msgid "Starred" msgstr "Starred" -#: mod/network.php:1018 +#: mod/network.php:1027 msgid "Favourite Posts" msgstr "My favourite posts" @@ -4548,6 +2155,13 @@ msgid "" " join." msgstr "On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join." +#: mod/newmember.php:20 mod/settings.php:145 src/Content/Nav.php:262 +#: src/Module/Admin/Addons/Details.php:102 +#: src/Module/Admin/Themes/Details.php:107 +#: src/Module/BaseSettingsModule.php:105 view/theme/frio/theme.php:272 +msgid "Settings" +msgstr "Settings" + #: mod/newmember.php:22 msgid "Go to Your Settings" msgstr "Go to your settings" @@ -4567,9 +2181,9 @@ msgid "" "potential friends know exactly how to find you." msgstr "Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you." -#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:157 -#: src/Model/Profile.php:876 src/Model/Profile.php:909 -#: src/Module/Contact.php:654 src/Module/Contact.php:869 +#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:156 +#: src/Model/Profile.php:870 src/Model/Profile.php:903 +#: src/Module/Contact.php:657 src/Module/Contact.php:872 #: view/theme/frio/theme.php:263 msgid "Profile" msgstr "Profile" @@ -4657,7 +2271,7 @@ msgid "" "hours." msgstr "On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours." -#: mod/newmember.php:44 src/Model/Group.php:415 src/Module/Contact.php:752 +#: mod/newmember.php:44 src/Model/Group.php:435 src/Module/Contact.php:756 msgid "Groups" msgstr "Groups" @@ -4697,7 +2311,7 @@ msgid "" " features and resources." msgstr "Our help pages may be consulted for detail on other program features and resources." -#: mod/notes.php:34 src/Model/Profile.php:959 +#: mod/notes.php:34 src/Model/Profile.php:953 msgid "Personal Notes" msgstr "Personal notes" @@ -4705,13 +2319,7 @@ msgstr "Personal notes" msgid "Invalid request identifier." msgstr "Invalid request identifier." -#: mod/notifications.php:60 mod/notifications.php:186 -#: mod/notifications.php:271 src/Module/Contact.php:622 -#: src/Module/Contact.php:825 src/Module/Contact.php:1085 -msgid "Ignore" -msgstr "Ignore" - -#: mod/notifications.php:93 src/Content/Nav.php:247 +#: mod/notifications.php:93 src/Content/Nav.php:246 msgid "Notifications" msgstr "Notifications" @@ -4719,7 +2327,7 @@ msgstr "Notifications" msgid "Network Notifications" msgstr "Network notifications" -#: mod/notifications.php:112 mod/notify.php:84 +#: mod/notifications.php:112 mod/notify.php:72 msgid "System Notifications" msgstr "System notifications" @@ -4747,7 +2355,7 @@ msgstr "Show ignored requests." msgid "Hide Ignored Requests" msgstr "Hide ignored requests" -#: mod/notifications.php:166 mod/notifications.php:243 +#: mod/notifications.php:166 mod/notifications.php:251 msgid "Notification type:" msgstr "Notification type:" @@ -4755,11 +2363,16 @@ msgstr "Notification type:" msgid "Suggested by:" msgstr "Suggested by:" -#: mod/notifications.php:181 mod/notifications.php:260 -#: src/Module/Contact.php:630 +#: mod/notifications.php:181 mod/notifications.php:268 +#: src/Module/Contact.php:633 msgid "Hide this contact from others" msgstr "Hide this contact from others" +#: mod/notifications.php:183 mod/notifications.php:277 +#: src/Module/Admin/Users.php:286 +msgid "Approve" +msgstr "Approve" + #: mod/notifications.php:203 msgid "Claims to be known to you: " msgstr "Says they know me:" @@ -4809,21 +2422,32 @@ msgstr "Sharer" msgid "Subscriber" msgstr "Subscriber" -#: mod/notifications.php:266 src/Model/Profile.php:543 -#: src/Module/Contact.php:88 +#: mod/notifications.php:263 src/Model/Profile.php:445 +#: src/Model/Profile.php:813 src/Module/Contact.php:650 +#: src/Module/Directory.php:150 +msgid "About:" +msgstr "About:" + +#: mod/notifications.php:267 src/Model/Profile.php:442 +#: src/Model/Profile.php:752 src/Module/Directory.php:147 +msgid "Gender:" +msgstr "Gender:" + +#: mod/notifications.php:274 src/Model/Profile.php:539 +#: src/Module/Contact.php:90 msgid "Network:" msgstr "Network:" -#: mod/notifications.php:279 +#: mod/notifications.php:288 msgid "No introductions." msgstr "No introductions." -#: mod/notifications.php:313 +#: mod/notifications.php:322 #, php-format msgid "No more %s notifications." msgstr "No more %s notifications." -#: mod/notify.php:80 +#: mod/notify.php:68 msgid "No more system notifications." msgstr "No more system notifications." @@ -4840,7 +2464,7 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Account not found and OpenID registration is not permitted on this site." -#: mod/openid.php:117 src/Module/Login.php:92 src/Module/Login.php:143 +#: mod/openid.php:117 src/Module/Login.php:93 src/Module/Login.php:144 msgid "Login failed." msgstr "Login failed." @@ -4872,7 +2496,7 @@ msgstr "success" msgid "failed" msgstr "failed" -#: mod/ostatus_subscribe.php:89 src/Object/Post.php:283 +#: mod/ostatus_subscribe.php:89 src/Object/Post.php:284 msgid "ignored" msgstr "Ignored" @@ -4880,223 +2504,239 @@ msgstr "Ignored" msgid "Keep this window open until done." msgstr "Keep this window open until done." -#: mod/photos.php:115 src/Model/Profile.php:920 +#: mod/photos.php:113 src/Model/Profile.php:914 msgid "Photo Albums" msgstr "Photo Albums" -#: mod/photos.php:116 mod/photos.php:1665 +#: mod/photos.php:114 mod/photos.php:1630 msgid "Recent Photos" msgstr "Recent photos" -#: mod/photos.php:119 mod/photos.php:1187 mod/photos.php:1667 +#: mod/photos.php:116 mod/photos.php:1144 mod/photos.php:1632 msgid "Upload New Photos" msgstr "Upload new photos" -#: mod/photos.php:137 mod/settings.php:56 +#: mod/photos.php:134 mod/settings.php:58 src/Module/BaseSettingsModule.php:18 msgid "everybody" msgstr "everybody" -#: mod/photos.php:193 +#: mod/photos.php:185 msgid "Contact information unavailable" msgstr "Contact information unavailable" -#: mod/photos.php:212 +#: mod/photos.php:204 msgid "Album not found." msgstr "Album not found." -#: mod/photos.php:241 mod/photos.php:254 mod/photos.php:1138 -msgid "Delete Album" -msgstr "Delete album" +#: mod/photos.php:262 +msgid "Album successfully deleted" +msgstr "Album successfully deleted" -#: mod/photos.php:252 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Do you really want to delete this photo album and all its photos?" +#: mod/photos.php:264 +msgid "Album was empty." +msgstr "Album was empty." -#: mod/photos.php:310 mod/photos.php:322 mod/photos.php:1413 -msgid "Delete Photo" -msgstr "Delete photo" - -#: mod/photos.php:320 -msgid "Do you really want to delete this photo?" -msgstr "Do you really want to delete this photo?" - -#: mod/photos.php:645 +#: mod/photos.php:586 msgid "a photo" msgstr "a photo" -#: mod/photos.php:645 +#: mod/photos.php:586 #, php-format msgid "%1$s was tagged in %2$s by %3$s" msgstr "%1$s was tagged in %2$s by %3$s" -#: mod/photos.php:738 mod/photos.php:741 mod/photos.php:770 +#: mod/photos.php:679 mod/photos.php:682 mod/photos.php:711 #: mod/profile_photo.php:152 mod/wall_upload.php:198 #, php-format msgid "Image exceeds size limit of %s" msgstr "Image exceeds size limit of %s" -#: mod/photos.php:744 +#: mod/photos.php:685 msgid "Image upload didn't complete, please try again" msgstr "Image upload didn't complete, please try again" -#: mod/photos.php:747 +#: mod/photos.php:688 msgid "Image file is missing" msgstr "Image file is missing" -#: mod/photos.php:752 +#: mod/photos.php:693 msgid "" "Server can't accept new file upload at this time, please contact your " "administrator" msgstr "Server can't accept new file upload at this time, please contact your administrator" -#: mod/photos.php:778 +#: mod/photos.php:719 msgid "Image file is empty." msgstr "Image file is empty." -#: mod/photos.php:793 mod/profile_photo.php:161 mod/wall_upload.php:212 +#: mod/photos.php:734 mod/profile_photo.php:161 mod/wall_upload.php:212 msgid "Unable to process image." msgstr "Unable to process image." -#: mod/photos.php:822 mod/profile_photo.php:310 mod/wall_upload.php:251 +#: mod/photos.php:763 mod/profile_photo.php:310 mod/wall_upload.php:251 msgid "Image upload failed." msgstr "Image upload failed." -#: mod/photos.php:908 +#: mod/photos.php:851 msgid "No photos selected" msgstr "No photos selected" -#: mod/photos.php:1005 mod/videos.php:239 +#: mod/photos.php:943 mod/videos.php:210 msgid "Access to this item is restricted." msgstr "Access to this item is restricted." -#: mod/photos.php:1059 +#: mod/photos.php:997 msgid "Upload Photos" msgstr "Upload photos" -#: mod/photos.php:1063 mod/photos.php:1133 +#: mod/photos.php:1001 mod/photos.php:1089 msgid "New album name: " msgstr "New album name: " -#: mod/photos.php:1064 +#: mod/photos.php:1002 msgid "or select existing album:" msgstr "or select existing album:" -#: mod/photos.php:1065 +#: mod/photos.php:1003 msgid "Do not show a status post for this upload" msgstr "Do not show a status post for this upload" -#: mod/photos.php:1081 mod/photos.php:1416 mod/settings.php:1209 +#: mod/photos.php:1019 mod/photos.php:1382 mod/settings.php:1208 msgid "Show to Groups" msgstr "Show to groups" -#: mod/photos.php:1082 mod/photos.php:1417 mod/settings.php:1210 +#: mod/photos.php:1020 mod/photos.php:1383 mod/settings.php:1209 msgid "Show to Contacts" msgstr "Show to contacts" -#: mod/photos.php:1144 +#: mod/photos.php:1071 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Do you really want to delete this photo album and all its photos?" + +#: mod/photos.php:1073 mod/photos.php:1094 +msgid "Delete Album" +msgstr "Delete album" + +#: mod/photos.php:1100 msgid "Edit Album" msgstr "Edit album" -#: mod/photos.php:1149 +#: mod/photos.php:1101 +msgid "Drop Album" +msgstr "Drop album" + +#: mod/photos.php:1106 msgid "Show Newest First" msgstr "Show newest first" -#: mod/photos.php:1151 +#: mod/photos.php:1108 msgid "Show Oldest First" msgstr "Show oldest first" -#: mod/photos.php:1172 mod/photos.php:1650 +#: mod/photos.php:1129 mod/photos.php:1615 msgid "View Photo" msgstr "View photo" -#: mod/photos.php:1213 +#: mod/photos.php:1166 msgid "Permission denied. Access to this item may be restricted." msgstr "Permission denied. Access to this item may be restricted." -#: mod/photos.php:1215 +#: mod/photos.php:1168 msgid "Photo not available" msgstr "Photo not available" -#: mod/photos.php:1290 +#: mod/photos.php:1178 +msgid "Do you really want to delete this photo?" +msgstr "Do you really want to delete this photo?" + +#: mod/photos.php:1180 mod/photos.php:1379 +msgid "Delete Photo" +msgstr "Delete photo" + +#: mod/photos.php:1271 msgid "View photo" msgstr "View photo" -#: mod/photos.php:1290 +#: mod/photos.php:1273 msgid "Edit photo" msgstr "Edit photo" -#: mod/photos.php:1291 +#: mod/photos.php:1274 +msgid "Delete photo" +msgstr "Delete photo" + +#: mod/photos.php:1275 msgid "Use as profile photo" msgstr "Use as profile photo" -#: mod/photos.php:1297 src/Object/Post.php:156 -msgid "Private Message" -msgstr "Private message" +#: mod/photos.php:1282 +msgid "Private Photo" +msgstr "Private photo" -#: mod/photos.php:1317 +#: mod/photos.php:1288 msgid "View Full Size" msgstr "View full size" -#: mod/photos.php:1381 +#: mod/photos.php:1347 msgid "Tags: " msgstr "Tags: " -#: mod/photos.php:1384 +#: mod/photos.php:1350 msgid "[Select tags to remove]" msgstr "[Select tags to remove]" -#: mod/photos.php:1399 +#: mod/photos.php:1365 msgid "New album name" msgstr "New album name" -#: mod/photos.php:1400 +#: mod/photos.php:1366 msgid "Caption" msgstr "Caption" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "Add a Tag" msgstr "Add Tag" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Example: @bob, @jojo@example.com, #California, #camping" -#: mod/photos.php:1402 +#: mod/photos.php:1368 msgid "Do not rotate" msgstr "Do not rotate" -#: mod/photos.php:1403 +#: mod/photos.php:1369 msgid "Rotate CW (right)" msgstr "Rotate right (CW)" -#: mod/photos.php:1404 +#: mod/photos.php:1370 msgid "Rotate CCW (left)" msgstr "Rotate left (CCW)" -#: mod/photos.php:1438 src/Object/Post.php:311 +#: mod/photos.php:1404 src/Object/Post.php:312 msgid "I like this (toggle)" msgstr "I like this (toggle)" -#: mod/photos.php:1439 src/Object/Post.php:312 +#: mod/photos.php:1405 src/Object/Post.php:313 msgid "I don't like this (toggle)" msgstr "I don't like this (toggle)" -#: mod/photos.php:1454 mod/photos.php:1493 mod/photos.php:1553 -#: src/Module/Contact.php:1018 src/Object/Post.php:871 +#: mod/photos.php:1420 mod/photos.php:1459 mod/photos.php:1519 +#: src/Module/Contact.php:1021 src/Object/Post.php:874 msgid "This is you" msgstr "This is me" -#: mod/photos.php:1456 mod/photos.php:1495 mod/photos.php:1555 -#: src/Object/Post.php:417 src/Object/Post.php:873 +#: mod/photos.php:1422 mod/photos.php:1461 mod/photos.php:1521 +#: src/Object/Post.php:419 src/Object/Post.php:876 msgid "Comment" msgstr "Comment" -#: mod/photos.php:1585 +#: mod/photos.php:1550 msgid "Map" msgstr "Map" -#: mod/photos.php:1656 mod/videos.php:316 +#: mod/photos.php:1621 mod/videos.php:287 msgid "View Album" msgstr "View album" @@ -5108,27 +2748,27 @@ msgstr "{0} wants to be your friend" msgid "{0} requested registration" msgstr "{0} requested registration" -#: mod/poke.php:181 +#: mod/poke.php:177 msgid "Poke/Prod" msgstr "Poke/Prod" -#: mod/poke.php:182 +#: mod/poke.php:178 msgid "poke, prod or do other things to somebody" msgstr "Poke, prod or do other things to somebody" -#: mod/poke.php:183 +#: mod/poke.php:179 msgid "Recipient" msgstr "Recipient:" -#: mod/poke.php:184 +#: mod/poke.php:180 msgid "Choose what you wish to do to recipient" msgstr "Choose what you wish to do:" -#: mod/poke.php:187 +#: mod/poke.php:183 msgid "Make this post private" msgstr "Make this post private" -#: mod/probe.php:14 mod/webfinger.php:17 +#: mod/probe.php:13 src/Module/WebFinger.php:18 msgid "Only logged in users are permitted to perform a probing." msgstr "Only logged in users are permitted to perform a probing." @@ -5192,6 +2832,10 @@ msgstr "Homepage" msgid "Interests" msgstr "Interests" +#: mod/profiles.php:382 src/Module/Admin/Blocklist/Contact.php:72 +msgid "Address" +msgstr "Address" + #: mod/profiles.php:389 mod/profiles.php:574 msgid "Location" msgstr "Location" @@ -5232,7 +2876,7 @@ msgstr "View this profile" msgid "View all profiles" msgstr "View all profiles" -#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:419 +#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:415 msgid "Edit visibility" msgstr "Edit visibility" @@ -5284,7 +2928,7 @@ msgstr "Gender:" msgid " Marital Status:" msgstr " Marital status:" -#: mod/profiles.php:586 src/Model/Profile.php:795 +#: mod/profiles.php:586 src/Model/Profile.php:789 msgid "Sexual Preference:" msgstr "Sexual preference:" @@ -5364,11 +3008,11 @@ msgstr "The XMPP address will be propagated to your contacts so that they can fo msgid "Homepage URL:" msgstr "Homepage URL:" -#: mod/profiles.php:613 src/Model/Profile.php:803 +#: mod/profiles.php:613 src/Model/Profile.php:797 msgid "Hometown:" msgstr "Home town:" -#: mod/profiles.php:614 src/Model/Profile.php:811 +#: mod/profiles.php:614 src/Model/Profile.php:805 msgid "Political Views:" msgstr "Political views:" @@ -5392,11 +3036,11 @@ msgstr "Private keywords:" msgid "(Used for searching profiles, never shown to others)" msgstr "Used for searching profiles, never shown to others." -#: mod/profiles.php:618 src/Model/Profile.php:827 +#: mod/profiles.php:618 src/Model/Profile.php:821 msgid "Likes:" msgstr "Likes:" -#: mod/profiles.php:619 src/Model/Profile.php:831 +#: mod/profiles.php:619 src/Model/Profile.php:825 msgid "Dislikes:" msgstr "Dislikes:" @@ -5436,11 +3080,11 @@ msgstr "School/Education:" msgid "Contact information and Social Networks" msgstr "Contact information and other social networks:" -#: mod/profiles.php:659 src/Model/Profile.php:415 +#: mod/profiles.php:659 src/Model/Profile.php:411 msgid "Profile Image" msgstr "Profile image" -#: mod/profiles.php:661 src/Model/Profile.php:418 +#: mod/profiles.php:661 src/Model/Profile.php:414 msgid "visible to everybody" msgstr "Visible to everybody" @@ -5448,11 +3092,11 @@ msgstr "Visible to everybody" msgid "Edit/Manage Profiles" msgstr "Edit/Manage Profiles" -#: mod/profiles.php:669 src/Model/Profile.php:405 src/Model/Profile.php:427 +#: mod/profiles.php:669 src/Model/Profile.php:401 src/Model/Profile.php:423 msgid "Change profile photo" msgstr "Change profile photo" -#: mod/profiles.php:670 src/Model/Profile.php:406 +#: mod/profiles.php:670 src/Model/Profile.php:402 msgid "Create New Profile" msgstr "Create new profile" @@ -5512,6 +3156,10 @@ msgstr "Done editing" msgid "Image uploaded successfully." msgstr "Image uploaded successfully." +#: mod/profperm.php:30 +msgid "Permission denied" +msgstr "Permission denied" + #: mod/profperm.php:36 mod/profperm.php:69 msgid "Invalid profile identifier." msgstr "Invalid profile identifier." @@ -5520,6 +3168,10 @@ msgstr "Invalid profile identifier." msgid "Profile Visibility Editor" msgstr "Profile Visibility Editor" +#: mod/profperm.php:119 src/Module/Group.php:321 +msgid "Click on a contact to add or remove." +msgstr "Click on a contact to add or remove it." + #: mod/profperm.php:128 msgid "Visible To" msgstr "Visible to" @@ -5578,226 +3230,253 @@ msgstr "Resubscribing to OStatus contacts" msgid "Error" msgstr "Error" -#: mod/search.php:103 +#: mod/search.php:101 msgid "Only logged in users are permitted to perform a search." msgstr "Only logged in users are permitted to perform a search." -#: mod/search.php:127 -msgid "Too Many Requests" -msgstr "Too many requests" - -#: mod/search.php:128 +#: mod/search.php:123 msgid "Only one search per minute is permitted for not logged in users." msgstr "Only one search per minute is permitted for not logged in users." -#: mod/search.php:149 src/Content/Nav.php:198 src/Content/Text/HTML.php:900 +#: mod/search.php:143 src/Content/Nav.php:197 src/Content/Text/HTML.php:900 msgid "Search" msgstr "Search" -#: mod/search.php:235 +#: mod/search.php:229 #, php-format msgid "Items tagged with: %s" msgstr "Items tagged with: %s" -#: mod/search.php:237 src/Module/Contact.php:816 +#: mod/search.php:231 src/Module/Contact.php:819 #, php-format msgid "Results for: %s" msgstr "Results for: %s" -#: mod/settings.php:61 +#: mod/settings.php:63 src/Module/BaseSettingsModule.php:24 msgid "Account" msgstr "Account" -#: mod/settings.php:69 src/Content/Nav.php:266 src/Model/Profile.php:398 +#: mod/settings.php:71 src/Module/BaseSettingsModule.php:31 +#: src/Module/Settings/TwoFactor/Index.php:83 +#: src/Module/TwoFactor/Verify.php:60 +msgid "Two-factor authentication" +msgstr "Two-factor authentication" + +#: mod/settings.php:78 src/Content/Nav.php:265 src/Model/Profile.php:394 +#: src/Module/BaseSettingsModule.php:38 msgid "Profiles" msgstr "Profiles" -#: mod/settings.php:85 +#: mod/settings.php:86 src/Module/BaseAdminModule.php:84 +#: src/Module/BaseSettingsModule.php:46 +msgid "Additional features" +msgstr "Additional features" + +#: mod/settings.php:94 src/Module/BaseSettingsModule.php:54 msgid "Display" msgstr "Display" -#: mod/settings.php:92 mod/settings.php:830 +#: mod/settings.php:101 mod/settings.php:839 +#: src/Module/BaseSettingsModule.php:61 msgid "Social Networks" msgstr "Social networks" -#: mod/settings.php:106 src/Content/Nav.php:261 +#: mod/settings.php:108 src/Module/Admin/Addons/Details.php:100 +#: src/Module/Admin/Addons/Index.php:51 src/Module/BaseAdminModule.php:82 +#: src/Module/BaseSettingsModule.php:68 +msgid "Addons" +msgstr "Addons" + +#: mod/settings.php:115 src/Content/Nav.php:260 +#: src/Module/BaseSettingsModule.php:75 msgid "Delegations" msgstr "Delegations" -#: mod/settings.php:113 +#: mod/settings.php:122 src/Module/BaseSettingsModule.php:82 msgid "Connected apps" msgstr "Connected apps" -#: mod/settings.php:120 mod/uexport.php:53 +#: mod/settings.php:129 mod/uexport.php:52 +#: src/Module/BaseSettingsModule.php:89 msgid "Export personal data" msgstr "Export personal data" -#: mod/settings.php:127 +#: mod/settings.php:136 src/Module/BaseSettingsModule.php:96 msgid "Remove account" msgstr "Remove account" -#: mod/settings.php:179 +#: mod/settings.php:188 msgid "Missing some important data!" msgstr "Missing some important data!" -#: mod/settings.php:181 mod/settings.php:691 src/Module/Contact.php:823 +#: mod/settings.php:190 mod/settings.php:700 src/Module/Contact.php:826 msgid "Update" msgstr "Update" -#: mod/settings.php:290 +#: mod/settings.php:299 msgid "Failed to connect with email account using the settings provided." msgstr "Failed to connect with email account using the settings provided." -#: mod/settings.php:295 +#: mod/settings.php:304 msgid "Email settings updated." msgstr "Email settings updated." -#: mod/settings.php:311 +#: mod/settings.php:320 msgid "Features updated" msgstr "Features updated" -#: mod/settings.php:384 +#: mod/settings.php:393 msgid "Relocate message has been send to your contacts" msgstr "Relocate message has been send to your contacts" -#: mod/settings.php:396 +#: mod/settings.php:405 msgid "Passwords do not match." msgstr "Passwords do not match." -#: mod/settings.php:404 src/Core/Console/NewPassword.php:80 +#: mod/settings.php:413 src/Console/NewPassword.php:80 msgid "Password update failed. Please try again." msgstr "Password update failed. Please try again." -#: mod/settings.php:407 src/Core/Console/NewPassword.php:83 +#: mod/settings.php:416 src/Console/NewPassword.php:83 msgid "Password changed." msgstr "Password changed." -#: mod/settings.php:410 +#: mod/settings.php:419 msgid "Password unchanged." msgstr "Password unchanged." -#: mod/settings.php:491 +#: mod/settings.php:500 msgid " Please use a shorter name." msgstr " Please use a shorter name." -#: mod/settings.php:494 +#: mod/settings.php:503 msgid " Name too short." msgstr " Name too short." -#: mod/settings.php:501 +#: mod/settings.php:510 src/Module/Settings/TwoFactor/Index.php:66 msgid "Wrong Password" msgstr "Wrong password" -#: mod/settings.php:506 +#: mod/settings.php:515 msgid "Invalid email." msgstr "Invalid email." -#: mod/settings.php:512 +#: mod/settings.php:521 msgid "Cannot change to that email." msgstr "Cannot change to that email." -#: mod/settings.php:562 +#: mod/settings.php:571 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "Private forum has no privacy permissions. Using default privacy group." -#: mod/settings.php:565 +#: mod/settings.php:574 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "Private forum has no privacy permissions and no default privacy group." -#: mod/settings.php:605 +#: mod/settings.php:614 msgid "Settings updated." msgstr "Settings updated." -#: mod/settings.php:664 mod/settings.php:690 mod/settings.php:724 +#: mod/settings.php:673 mod/settings.php:699 mod/settings.php:733 msgid "Add application" msgstr "Add application" -#: mod/settings.php:668 mod/settings.php:694 +#: mod/settings.php:677 mod/settings.php:703 msgid "Consumer Key" msgstr "Consumer key" -#: mod/settings.php:669 mod/settings.php:695 +#: mod/settings.php:678 mod/settings.php:704 msgid "Consumer Secret" msgstr "Consumer secret" -#: mod/settings.php:670 mod/settings.php:696 +#: mod/settings.php:679 mod/settings.php:705 msgid "Redirect" msgstr "Redirect" -#: mod/settings.php:671 mod/settings.php:697 +#: mod/settings.php:680 mod/settings.php:706 msgid "Icon url" msgstr "Icon URL" -#: mod/settings.php:682 +#: mod/settings.php:691 msgid "You can't edit this application." msgstr "You cannot edit this application." -#: mod/settings.php:723 +#: mod/settings.php:732 msgid "Connected Apps" msgstr "Connected Apps" -#: mod/settings.php:725 src/Object/Post.php:166 src/Object/Post.php:168 +#: mod/settings.php:734 src/Object/Post.php:167 src/Object/Post.php:169 msgid "Edit" msgstr "Edit" -#: mod/settings.php:727 +#: mod/settings.php:736 msgid "Client key starts with" msgstr "Client key starts with" -#: mod/settings.php:728 +#: mod/settings.php:737 msgid "No name" msgstr "No name" -#: mod/settings.php:729 +#: mod/settings.php:738 msgid "Remove authorization" msgstr "Remove authorization" -#: mod/settings.php:740 +#: mod/settings.php:749 msgid "No Addon settings configured" msgstr "No addon settings configured" -#: mod/settings.php:749 +#: mod/settings.php:758 msgid "Addon Settings" msgstr "Addon settings" -#: mod/settings.php:770 +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "Off" +msgstr "Off" + +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "On" +msgstr "On" + +#: mod/settings.php:779 msgid "Additional Features" msgstr "Additional Features" -#: mod/settings.php:793 src/Content/ContactSelector.php:87 +#: mod/settings.php:802 src/Content/ContactSelector.php:87 msgid "Diaspora" msgstr "diaspora*" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "enabled" msgstr "enabled" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "disabled" msgstr "disabled" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Built-in support for %s connectivity is %s" -#: mod/settings.php:794 +#: mod/settings.php:803 msgid "GNU Social (OStatus)" msgstr "GNU Social (OStatus)" -#: mod/settings.php:825 +#: mod/settings.php:834 msgid "Email access is disabled on this site." msgstr "Email access is disabled on this site." -#: mod/settings.php:835 +#: mod/settings.php:844 msgid "General Social Media Settings" msgstr "General Social Media Settings" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "Disable Content Warning" msgstr "Disable Content Warning" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "" "Users on networks like Mastodon or Pleroma are able to set a content warning" " field which collapse their post by default. This disables the automatic " @@ -5805,316 +3484,352 @@ msgid "" "any other content filtering you eventually set up." msgstr "Users on networks like Mastodon or Pleroma are able to set a content warning field which collapses their post by default. This disables the automatic collapsing and sets the content warning as the post title. It doesn't affect any other content filtering you may set up." -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "Disable intelligent shortening" msgstr "Disable intelligent shortening" -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the" " original friendica post." msgstr "Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original Friendica post." -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "Automatically follow any GNU Social (OStatus) followers/mentioners" -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "Create a new contact for every unknown OStatus user from whom you receive a message." -#: mod/settings.php:839 +#: mod/settings.php:848 msgid "Default group for OStatus contacts" msgstr "Default group for OStatus contacts" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "Your legacy GNU Social account" msgstr "Your legacy GNU Social account" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "Entering your old GNU Social/Statusnet account name here (format: user@domain.tld), will automatically added your contacts. The field will be emptied when done." -#: mod/settings.php:843 +#: mod/settings.php:852 msgid "Repair OStatus subscriptions" msgstr "Repair OStatus subscriptions" -#: mod/settings.php:847 +#: mod/settings.php:856 msgid "Email/Mailbox Setup" msgstr "Email/Mailbox setup" -#: mod/settings.php:848 +#: mod/settings.php:857 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Specify how to connect to your mailbox, if you wish to communicate with existing email contacts." -#: mod/settings.php:849 +#: mod/settings.php:858 msgid "Last successful email check:" msgstr "Last successful email check:" -#: mod/settings.php:851 +#: mod/settings.php:860 msgid "IMAP server name:" msgstr "IMAP server name:" -#: mod/settings.php:852 +#: mod/settings.php:861 msgid "IMAP port:" msgstr "IMAP port:" -#: mod/settings.php:853 +#: mod/settings.php:862 msgid "Security:" msgstr "Security:" -#: mod/settings.php:853 mod/settings.php:858 +#: mod/settings.php:862 mod/settings.php:867 msgid "None" msgstr "None" -#: mod/settings.php:854 +#: mod/settings.php:863 msgid "Email login name:" msgstr "Email login name:" -#: mod/settings.php:855 +#: mod/settings.php:864 msgid "Email password:" msgstr "Email password:" -#: mod/settings.php:856 +#: mod/settings.php:865 msgid "Reply-to address:" msgstr "Reply-to address:" -#: mod/settings.php:857 +#: mod/settings.php:866 msgid "Send public posts to all email contacts:" msgstr "Send public posts to all email contacts:" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Action after import:" msgstr "Action after import:" -#: mod/settings.php:858 src/Content/Nav.php:249 +#: mod/settings.php:867 src/Content/Nav.php:248 msgid "Mark as seen" msgstr "Mark as seen" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Move to folder" msgstr "Move to folder" -#: mod/settings.php:859 +#: mod/settings.php:868 msgid "Move to folder:" msgstr "Move to folder:" -#: mod/settings.php:902 +#: mod/settings.php:892 src/Module/Admin/Site.php:435 +msgid "No special theme for mobile devices" +msgstr "No special theme for mobile devices" + +#: mod/settings.php:900 #, php-format msgid "%s - (Unsupported)" msgstr "%s - (Unsupported)" -#: mod/settings.php:904 +#: mod/settings.php:902 src/Module/Admin/Site.php:452 #, php-format msgid "%s - (Experimental)" msgstr "%s - (Experimental)" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:395 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:395 msgid "Sunday" msgstr "Sunday" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:396 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:396 msgid "Monday" msgstr "Monday" -#: mod/settings.php:947 +#: mod/settings.php:946 msgid "Display Settings" msgstr "Display Settings" -#: mod/settings.php:953 +#: mod/settings.php:952 msgid "Display Theme:" msgstr "Display theme:" -#: mod/settings.php:954 +#: mod/settings.php:953 msgid "Mobile Theme:" msgstr "Mobile theme:" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "Suppress warning of insecure networks" msgstr "Suppress warning of insecure networks" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "" "Should the system suppress the warning that the current group contains " "members of networks that can't receive non public postings." msgstr "Suppresses warnings if groups contains members whose networks cannot receive non-public postings." -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Update browser every xx seconds" msgstr "Update browser every so many seconds:" -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "Minimum 10 seconds; to disable -1." -#: mod/settings.php:957 +#: mod/settings.php:956 msgid "Number of items to display per page:" msgstr "Number of items displayed per page:" -#: mod/settings.php:957 mod/settings.php:958 +#: mod/settings.php:956 mod/settings.php:957 msgid "Maximum of 100 items" msgstr "Maximum of 100 items" -#: mod/settings.php:958 +#: mod/settings.php:957 msgid "Number of items to display per page when viewed from mobile device:" msgstr "Number of items displayed per page on mobile devices:" -#: mod/settings.php:959 +#: mod/settings.php:958 msgid "Don't show emoticons" msgstr "Don't show emoticons" -#: mod/settings.php:960 +#: mod/settings.php:959 msgid "Calendar" msgstr "Calendar" -#: mod/settings.php:961 +#: mod/settings.php:960 msgid "Beginning of week:" msgstr "Week begins: " -#: mod/settings.php:962 +#: mod/settings.php:961 msgid "Don't show notices" msgstr "Don't show notices" -#: mod/settings.php:963 +#: mod/settings.php:962 msgid "Infinite scroll" msgstr "Infinite scroll" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "Automatic updates only at the top of the network page" msgstr "Automatically updates only top of the network page" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "" "When disabled, the network page is updated all the time, which could be " "confusing while reading." msgstr "When disabled, the network page is updated all the time, which could be confusing while reading." -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "Bandwidth Saver Mode" msgstr "Bandwidth Saver Mode" -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "" "When enabled, embedded content is not displayed on automatic updates, they " "only show on page reload." msgstr "If enabled, embedded content is not displayed on automatic updates; it is only shown on page reload." -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "Smart Threading" msgstr "Smart threading" -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "" "When enabled, suppress extraneous thread indentation while keeping it where " "it matters. Only works if threading is available and enabled." msgstr "Suppresses extraneous thread indentation while keeping it where it matters. Only works if threading is available and enabled." -#: mod/settings.php:968 +#: mod/settings.php:967 msgid "General Theme Settings" msgstr "Themes" -#: mod/settings.php:969 +#: mod/settings.php:968 msgid "Custom Theme Settings" msgstr "Theme customisation" -#: mod/settings.php:970 +#: mod/settings.php:969 msgid "Content Settings" msgstr "Content/Layout" -#: mod/settings.php:971 view/theme/duepuntozero/config.php:74 -#: view/theme/frio/config.php:121 view/theme/quattro/config.php:76 -#: view/theme/vier/config.php:122 +#: mod/settings.php:970 view/theme/duepuntozero/config.php:73 +#: view/theme/frio/config.php:122 view/theme/quattro/config.php:75 +#: view/theme/vier/config.php:121 msgid "Theme settings" msgstr "Theme settings" -#: mod/settings.php:985 +#: mod/settings.php:984 msgid "Unable to find your profile. Please contact your admin." msgstr "Unable to find your profile. Please contact your admin." -#: mod/settings.php:1024 +#: mod/settings.php:1023 msgid "Account Types" msgstr "Account types:" -#: mod/settings.php:1025 +#: mod/settings.php:1024 msgid "Personal Page Subtypes" msgstr "Personal Page subtypes" -#: mod/settings.php:1026 +#: mod/settings.php:1025 msgid "Community Forum Subtypes" msgstr "Community forum subtypes" -#: mod/settings.php:1034 +#: mod/settings.php:1032 src/Module/Admin/Users.php:229 +msgid "Personal Page" +msgstr "Personal Page" + +#: mod/settings.php:1033 msgid "Account for a personal profile." msgstr "Account for a personal profile." -#: mod/settings.php:1038 +#: mod/settings.php:1036 src/Module/Admin/Users.php:230 +msgid "Organisation Page" +msgstr "Organisation Page" + +#: mod/settings.php:1037 msgid "" "Account for an organisation that automatically approves contact requests as " "\"Followers\"." msgstr "Account for an organisation that automatically approves contact requests as \"Followers\"." -#: mod/settings.php:1042 +#: mod/settings.php:1040 src/Module/Admin/Users.php:231 +msgid "News Page" +msgstr "News Page" + +#: mod/settings.php:1041 msgid "" "Account for a news reflector that automatically approves contact requests as" " \"Followers\"." msgstr "Account for a news reflector that automatically approves contact requests as \"Followers\"." -#: mod/settings.php:1046 +#: mod/settings.php:1044 src/Module/Admin/Users.php:232 +msgid "Community Forum" +msgstr "Community Forum" + +#: mod/settings.php:1045 msgid "Account for community discussions." msgstr "Account for community discussions." -#: mod/settings.php:1050 +#: mod/settings.php:1048 src/Module/Admin/Users.php:222 +msgid "Normal Account Page" +msgstr "Standard" + +#: mod/settings.php:1049 msgid "" "Account for a regular personal profile that requires manual approval of " "\"Friends\" and \"Followers\"." msgstr "Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"." -#: mod/settings.php:1054 +#: mod/settings.php:1052 src/Module/Admin/Users.php:223 +msgid "Soapbox Page" +msgstr "Soapbox" + +#: mod/settings.php:1053 msgid "" "Account for a public profile that automatically approves contact requests as" " \"Followers\"." msgstr "Account for a public profile that automatically approves contact requests as \"Followers\"." -#: mod/settings.php:1058 +#: mod/settings.php:1056 src/Module/Admin/Users.php:224 +msgid "Public Forum" +msgstr "Public forum" + +#: mod/settings.php:1057 msgid "Automatically approves all contact requests." msgstr "Automatically approves all contact requests." -#: mod/settings.php:1062 +#: mod/settings.php:1060 src/Module/Admin/Users.php:225 +msgid "Automatic Friend Page" +msgstr "Love-all" + +#: mod/settings.php:1061 msgid "" "Account for a popular profile that automatically approves contact requests " "as \"Friends\"." msgstr "Account for a popular profile that automatically approves contact requests as \"Friends\"." -#: mod/settings.php:1065 +#: mod/settings.php:1064 msgid "Private Forum [Experimental]" msgstr "Private forum [Experimental]" -#: mod/settings.php:1066 +#: mod/settings.php:1065 msgid "Requires manual approval of contact requests." msgstr "Requires manual approval of contact requests." -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "OpenID:" msgstr "OpenID:" -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "(Optional) Allow this OpenID to login to this account." msgstr "(Optional) Allow this OpenID to login to this account." -#: mod/settings.php:1085 +#: mod/settings.php:1084 msgid "Publish your default profile in your local site directory?" msgstr "Publish default profile in local site directory?" -#: mod/settings.php:1085 +#: mod/settings.php:1084 #, php-format msgid "" "Your profile will be published in this node's local " @@ -6122,314 +3837,314 @@ msgid "" " system settings." msgstr "Your profile will be published in this node's local directory. Your profile details may be publicly visible depending on the system settings." -#: mod/settings.php:1091 +#: mod/settings.php:1090 msgid "Publish your default profile in the global social directory?" msgstr "Publish default profile in global directory?" -#: mod/settings.php:1091 +#: mod/settings.php:1090 #, php-format msgid "" "Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public." msgstr "Your profile will be published in the global Friendica directories (e.g. %s). Your profile will be publicly visible." -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Hide my contact list from others?" -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "" "Your contact list won't be shown in your default profile page. You can " "decide to show your contact list separately for each additional profile you " "create" msgstr "Your contact list won't be shown in your default profile page. You can decide to show your contact list separately for each additional profile you create" -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "Hide your profile details from anonymous viewers?" msgstr "Hide profile details from anonymous viewers?" -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "" "Anonymous visitors will only see your profile picture, your display name and" " the nickname you are using on your profile page. Your public posts and " "replies will still be accessible by other means." msgstr "Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies may still be accessible by other means." -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "Allow friends to post to your profile page?" msgstr "Allow friends to post to my wall?" -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "" "Your contacts may write posts on your profile wall. These posts will be " "distributed to your contacts" msgstr "Your contacts may write posts on your profile wall. These posts will be distributed to your contacts" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Allow friends to tag your posts?" msgstr "Allow friends to tag my post?" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Your contacts can add additional tags to your posts." msgstr "Your contacts can add additional tags to your posts." -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Allow us to suggest you as a potential friend to new members?" -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "" "If you like, Friendica may suggest new members to add you as a contact." msgstr "If you like, Friendica may suggest new members to add you as a contact." -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "Permit unknown people to send you private mail?" msgstr "Allow unknown people to send me private messages?" -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "" "Friendica network users may send you private messages even if they are not " "in your contact list." msgstr "Friendica network users may send you private messages even if they are not in your contact list." -#: mod/settings.php:1122 +#: mod/settings.php:1121 msgid "Profile is not published." msgstr "Profile is not published." -#: mod/settings.php:1128 +#: mod/settings.php:1127 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "My identity address: '%s' or '%s'" -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "Automatically expire posts after this many days:" msgstr "Automatically expire posts after this many days:" -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Posts will not expire if empty; expired posts will be deleted" -#: mod/settings.php:1136 +#: mod/settings.php:1135 msgid "Advanced expiration settings" msgstr "Advanced expiration settings" -#: mod/settings.php:1137 +#: mod/settings.php:1136 msgid "Advanced Expiration" msgstr "Advanced expiration" -#: mod/settings.php:1138 +#: mod/settings.php:1137 msgid "Expire posts:" msgstr "Expire posts:" -#: mod/settings.php:1139 +#: mod/settings.php:1138 msgid "Expire personal notes:" msgstr "Expire personal notes:" -#: mod/settings.php:1140 +#: mod/settings.php:1139 msgid "Expire starred posts:" msgstr "Expire starred posts:" -#: mod/settings.php:1141 +#: mod/settings.php:1140 msgid "Expire photos:" msgstr "Expire photos:" -#: mod/settings.php:1142 +#: mod/settings.php:1141 msgid "Only expire posts by others:" msgstr "Only expire posts by others:" -#: mod/settings.php:1172 +#: mod/settings.php:1171 msgid "Account Settings" msgstr "Account Settings" -#: mod/settings.php:1180 +#: mod/settings.php:1179 msgid "Password Settings" msgstr "Password change" -#: mod/settings.php:1181 src/Module/Register.php:130 +#: mod/settings.php:1180 src/Module/Register.php:130 msgid "New Password:" msgstr "New password:" -#: mod/settings.php:1181 +#: mod/settings.php:1180 msgid "" "Allowed characters are a-z, A-Z, 0-9 and special characters except white " "spaces, accentuated letters and colon (:)." msgstr "Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon." -#: mod/settings.php:1182 src/Module/Register.php:131 +#: mod/settings.php:1181 src/Module/Register.php:131 msgid "Confirm:" msgstr "Confirm new password:" -#: mod/settings.php:1182 +#: mod/settings.php:1181 msgid "Leave password fields blank unless changing" msgstr "Leave password fields blank unless changing" -#: mod/settings.php:1183 +#: mod/settings.php:1182 msgid "Current Password:" msgstr "Current password:" -#: mod/settings.php:1183 mod/settings.php:1184 +#: mod/settings.php:1182 mod/settings.php:1183 msgid "Your current password to confirm the changes" msgstr "Current password to confirm change" -#: mod/settings.php:1184 +#: mod/settings.php:1183 msgid "Password:" msgstr "Password:" -#: mod/settings.php:1188 +#: mod/settings.php:1187 msgid "Basic Settings" msgstr "Basic information" -#: mod/settings.php:1189 src/Model/Profile.php:751 +#: mod/settings.php:1188 src/Model/Profile.php:745 msgid "Full Name:" msgstr "Full name:" -#: mod/settings.php:1190 +#: mod/settings.php:1189 msgid "Email Address:" msgstr "Email address:" -#: mod/settings.php:1191 +#: mod/settings.php:1190 msgid "Your Timezone:" msgstr "Time zone:" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "Your Language:" msgstr "Language:" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "Set the language of your Friendica interface and emails sent to you." -#: mod/settings.php:1193 +#: mod/settings.php:1192 msgid "Default Post Location:" msgstr "Posting location:" -#: mod/settings.php:1194 +#: mod/settings.php:1193 msgid "Use Browser Location:" msgstr "Use browser location:" -#: mod/settings.php:1197 +#: mod/settings.php:1196 msgid "Security and Privacy Settings" msgstr "Security and privacy" -#: mod/settings.php:1199 +#: mod/settings.php:1198 msgid "Maximum Friend Requests/Day:" msgstr "Maximum friend requests per day:" -#: mod/settings.php:1199 mod/settings.php:1228 +#: mod/settings.php:1198 mod/settings.php:1227 msgid "(to prevent spam abuse)" msgstr "May prevent spam or abuse registrations" -#: mod/settings.php:1200 +#: mod/settings.php:1199 msgid "Default Post Permissions" msgstr "Default post permissions" -#: mod/settings.php:1201 +#: mod/settings.php:1200 msgid "(click to open/close)" msgstr "(reveal/hide)" -#: mod/settings.php:1211 +#: mod/settings.php:1210 msgid "Default Private Post" msgstr "Default private post" -#: mod/settings.php:1212 +#: mod/settings.php:1211 msgid "Default Public Post" msgstr "Default public post" -#: mod/settings.php:1216 +#: mod/settings.php:1215 msgid "Default Permissions for New Posts" msgstr "Default permissions for new posts" -#: mod/settings.php:1228 +#: mod/settings.php:1227 msgid "Maximum private messages per day from unknown people:" msgstr "Maximum private messages per day from unknown people:" -#: mod/settings.php:1231 +#: mod/settings.php:1230 msgid "Notification Settings" msgstr "Notification" -#: mod/settings.php:1232 +#: mod/settings.php:1231 msgid "Send a notification email when:" msgstr "Send notification email when:" -#: mod/settings.php:1233 +#: mod/settings.php:1232 msgid "You receive an introduction" msgstr "Receiving an introduction" -#: mod/settings.php:1234 +#: mod/settings.php:1233 msgid "Your introductions are confirmed" msgstr "My introductions are confirmed" -#: mod/settings.php:1235 +#: mod/settings.php:1234 msgid "Someone writes on your profile wall" msgstr "Someone writes on my wall" -#: mod/settings.php:1236 +#: mod/settings.php:1235 msgid "Someone writes a followup comment" msgstr "A follow up comment is posted" -#: mod/settings.php:1237 +#: mod/settings.php:1236 msgid "You receive a private message" msgstr "receiving a private message" -#: mod/settings.php:1238 +#: mod/settings.php:1237 msgid "You receive a friend suggestion" msgstr "Receiving a friend suggestion" -#: mod/settings.php:1239 +#: mod/settings.php:1238 msgid "You are tagged in a post" msgstr "Tagged in a post" -#: mod/settings.php:1240 +#: mod/settings.php:1239 msgid "You are poked/prodded/etc. in a post" msgstr "Poked in a post" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Activate desktop notifications" msgstr "Activate desktop notifications" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Show desktop popup on new notifications" msgstr "Show desktop pop-up on new notifications" -#: mod/settings.php:1244 +#: mod/settings.php:1243 msgid "Text-only notification emails" msgstr "Text-only notification emails" -#: mod/settings.php:1246 +#: mod/settings.php:1245 msgid "Send text only notification emails, without the html part" msgstr "Receive text only emails without HTML " -#: mod/settings.php:1248 +#: mod/settings.php:1247 msgid "Show detailled notifications" msgstr "Show detailled notifications" -#: mod/settings.php:1250 +#: mod/settings.php:1249 msgid "" "Per default, notifications are condensed to a single notification per item. " "When enabled every notification is displayed." msgstr "By default, notifications are condensed into a single notification for each item. When enabled, every notification is displayed." -#: mod/settings.php:1252 +#: mod/settings.php:1251 msgid "Advanced Account/Page Type Settings" msgstr "Advanced account types" -#: mod/settings.php:1253 +#: mod/settings.php:1252 msgid "Change the behaviour of this account for special situations" msgstr "Change behaviour of this account for special situations" -#: mod/settings.php:1256 +#: mod/settings.php:1255 msgid "Relocate" msgstr "Recent relocation" -#: mod/settings.php:1257 +#: mod/settings.php:1256 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "If you have moved this profile from another server and some of your contacts don't receive your updates:" -#: mod/settings.php:1258 +#: mod/settings.php:1257 msgid "Resend relocate message to contacts" msgstr "Resend relocation message to contacts" @@ -6438,16 +4153,20 @@ msgstr "Resend relocation message to contacts" msgid "%1$s is following %2$s's %3$s" msgstr "%1$s is following %2$s's %3$s" -#: mod/suggest.php:39 -msgid "Do you really want to delete this suggestion?" -msgstr "Do you really want to delete this suggestion?" +#: mod/suggest.php:28 +msgid "Contact suggestion successfully ignored." +msgstr "Contact suggestion ignored." -#: mod/suggest.php:75 +#: mod/suggest.php:52 msgid "" "No suggestions available. If this is a new site, please try again in 24 " "hours." msgstr "No suggestions available. If this is a new site, please try again in 24 hours." +#: mod/suggest.php:71 +msgid "Do you really want to delete this suggestion?" +msgstr "Do you really want to delete this suggestion?" + #: mod/suggest.php:89 mod/suggest.php:109 msgid "Ignore/Hide" msgstr "Ignore/Hide" @@ -6546,7 +4265,7 @@ msgstr "Unfollowing is currently not supported by your network." msgid "Contact unfollowed" msgstr "Contact unfollowed" -#: mod/unfollow.php:118 src/Module/Contact.php:570 +#: mod/unfollow.php:118 src/Module/Contact.php:573 msgid "Disconnect/Unfollow" msgstr "Disconnect/Unfollow" @@ -6556,27 +4275,19 @@ msgstr "Disconnect/Unfollow" msgid "[Embedded content - reload page to view]" msgstr "[Embedded content - reload page to view]" -#: mod/videos.php:97 -msgid "Do you really want to delete this video?" -msgstr "Do you really want to delete this video?" - -#: mod/videos.php:102 -msgid "Delete Video" -msgstr "Delete video" - -#: mod/videos.php:152 +#: mod/videos.php:123 msgid "No videos selected" msgstr "No videos selected" -#: mod/videos.php:309 src/Model/Item.php:3453 +#: mod/videos.php:280 src/Model/Item.php:3421 msgid "View Video" msgstr "View video" -#: mod/videos.php:324 +#: mod/videos.php:295 msgid "Recent Videos" msgstr "Recent videos" -#: mod/videos.php:326 +#: mod/videos.php:297 msgid "Upload New Videos" msgstr "Upload new videos" @@ -6584,16 +4295,16 @@ msgstr "Upload new videos" msgid "No contacts." msgstr "No contacts." -#: mod/viewcontacts.php:94 src/Module/Contact.php:603 -#: src/Module/Contact.php:1024 +#: mod/viewcontacts.php:94 src/Module/Contact.php:606 +#: src/Module/Contact.php:1027 #, php-format msgid "Visit %s's profile [%s]" msgstr "Visit %s's profile [%s]" -#: mod/viewcontacts.php:114 src/Content/Nav.php:203 src/Content/Nav.php:269 -#: src/Content/Text/HTML.php:911 src/Model/Profile.php:980 -#: src/Model/Profile.php:983 src/Module/Contact.php:811 -#: src/Module/Contact.php:881 view/theme/frio/theme.php:273 +#: mod/viewcontacts.php:114 src/Content/Nav.php:202 src/Content/Nav.php:268 +#: src/Content/Text/HTML.php:911 src/Model/Profile.php:974 +#: src/Model/Profile.php:977 src/Module/Contact.php:814 +#: src/Module/Contact.php:884 view/theme/frio/theme.php:273 msgid "Contacts" msgstr "Contacts" @@ -6640,29 +4351,77 @@ msgstr "File exceeds size limit of %s" msgid "File upload failed." msgstr "File upload failed." -#: mod/wall_upload.php:243 src/Object/Image.php:967 src/Object/Image.php:983 -#: src/Object/Image.php:991 src/Object/Image.php:1016 +#: mod/wall_upload.php:243 msgid "Wall Photos" msgstr "Wall photos" -#: src/App.php:665 +#: src/App.php:505 msgid "Delete this item?" msgstr "Delete this item?" -#: src/App.php:707 +#: src/App.php:547 msgid "toggle mobile" msgstr "Toggle mobile" -#: src/App.php:1075 +#: src/App.php:863 msgid "No system theme config value set." msgstr "No system theme configuration value set." -#: src/BaseModule.php:133 +#: src/App.php:1163 +msgid "You must be logged in to use addons. " +msgstr "You must be logged in to use addons. " + +#: src/BaseModule.php:135 msgid "" "The form security token was not correct. This probably happened because the " "form has been opened for too long (>3 hours) before submitting it." msgstr "The form security token was incorrect. This probably happened because the form has not been submitted within 3 hours." +#: src/Console/ArchiveContact.php:65 +#, php-format +msgid "Could not find any unarchived contact entry for this URL (%s)" +msgstr "Could not find any unarchived contact entry for this URL (%s)" + +#: src/Console/ArchiveContact.php:68 +msgid "The contact entries have been archived" +msgstr "The contact entries have been archived" + +#: src/Console/GlobalCommunityBlock.php:65 +#: src/Module/Admin/Blocklist/Contact.php:29 +#, php-format +msgid "Could not find any contact entry for this URL (%s)" +msgstr "Could not find any contact entry for this URL (%s)" + +#: src/Console/GlobalCommunityBlock.php:68 +#: src/Module/Admin/Blocklist/Contact.php:27 +msgid "The contact has been blocked from the node" +msgstr "The contact has been blocked from the node" + +#: src/Console/NewPassword.php:72 +msgid "Enter new password: " +msgstr "Enter new password: " + +#: src/Console/PostUpdate.php:50 +#, php-format +msgid "Post update version number has been set to %s." +msgstr "Post update version number has been set to %s." + +#: src/Console/PostUpdate.php:58 +msgid "Check for pending update actions." +msgstr "Check for pending update actions." + +#: src/Console/PostUpdate.php:60 +msgid "Done." +msgstr "Done." + +#: src/Console/PostUpdate.php:62 +msgid "Execute pending post updates." +msgstr "Execute pending post updates." + +#: src/Console/PostUpdate.php:68 +msgid "All pending post updates are done." +msgstr "All pending post updates are done." + #: src/Content/ContactSelector.php:58 msgid "Frequently" msgstr "Frequently" @@ -6699,6 +4458,12 @@ msgstr "OStatus" msgid "RSS/Atom" msgstr "RSS/Atom" +#: src/Content/ContactSelector.php:86 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:315 +msgid "Email" +msgstr "Email" + #: src/Content/ContactSelector.php:88 msgid "Zot!" msgstr "Zot!" @@ -6743,6 +4508,11 @@ msgstr "ActivityPub" msgid "pnut" msgstr "pnut" +#: src/Content/ContactSelector.php:153 src/Content/ContactSelector.php:193 +#: src/Content/ContactSelector.php:231 +msgid "No answer" +msgstr "No answer" + #: src/Content/ContactSelector.php:154 msgid "Male" msgstr "Male" @@ -6883,7 +4653,7 @@ msgstr "Unfaithful" msgid "Sex Addict" msgstr "Sex addict" -#: src/Content/ContactSelector.php:241 src/Model/User.php:702 +#: src/Content/ContactSelector.php:241 src/Model/User.php:729 msgid "Friends" msgstr "Friends" @@ -7100,7 +4870,7 @@ msgstr "Display membership date" msgid "Display membership date in profile" msgstr "Display membership date in profile" -#: src/Content/ForumManager.php:130 src/Content/Nav.php:207 +#: src/Content/ForumManager.php:130 src/Content/Nav.php:206 #: src/Content/Text/HTML.php:914 view/theme/vier/theme.php:250 msgid "Forums" msgstr "Forums" @@ -7109,220 +4879,251 @@ msgstr "Forums" msgid "External link to forum" msgstr "External link to forum" -#: src/Content/Nav.php:74 +#: src/Content/Nav.php:73 msgid "Nothing new here" msgstr "Nothing new here" -#: src/Content/Nav.php:78 +#: src/Content/Nav.php:77 msgid "Clear notifications" msgstr "Clear notifications" -#: src/Content/Nav.php:79 src/Content/Text/HTML.php:903 +#: src/Content/Nav.php:78 src/Content/Text/HTML.php:903 msgid "@name, !forum, #tags, content" msgstr "@name, !forum, #tags, content" -#: src/Content/Nav.php:153 src/Module/Login.php:321 +#: src/Content/Nav.php:152 src/Module/Login.php:324 #: view/theme/frio/theme.php:259 msgid "Logout" msgstr "Logout" -#: src/Content/Nav.php:153 view/theme/frio/theme.php:259 +#: src/Content/Nav.php:152 view/theme/frio/theme.php:259 msgid "End this session" msgstr "End this session" -#: src/Content/Nav.php:156 src/Model/Profile.php:901 -#: src/Module/Contact.php:652 src/Module/Contact.php:853 -#: view/theme/frio/theme.php:262 +#: src/Content/Nav.php:155 src/Model/Profile.php:895 +#: src/Module/Contact.php:655 src/Module/Contact.php:856 +#: src/Module/Settings/TwoFactor/Index.php:85 view/theme/frio/theme.php:262 msgid "Status" msgstr "Status" -#: src/Content/Nav.php:156 src/Content/Nav.php:242 +#: src/Content/Nav.php:155 src/Content/Nav.php:241 #: view/theme/frio/theme.php:262 msgid "Your posts and conversations" msgstr "My posts and conversations" -#: src/Content/Nav.php:157 view/theme/frio/theme.php:263 +#: src/Content/Nav.php:156 view/theme/frio/theme.php:263 msgid "Your profile page" msgstr "My profile page" -#: src/Content/Nav.php:158 view/theme/frio/theme.php:264 +#: src/Content/Nav.php:157 view/theme/frio/theme.php:264 msgid "Your photos" msgstr "My photos" -#: src/Content/Nav.php:159 src/Model/Profile.php:925 src/Model/Profile.php:928 +#: src/Content/Nav.php:158 src/Model/Profile.php:919 src/Model/Profile.php:922 #: view/theme/frio/theme.php:265 msgid "Videos" msgstr "Videos" -#: src/Content/Nav.php:159 view/theme/frio/theme.php:265 +#: src/Content/Nav.php:158 view/theme/frio/theme.php:265 msgid "Your videos" msgstr "My videos" -#: src/Content/Nav.php:160 view/theme/frio/theme.php:266 +#: src/Content/Nav.php:159 view/theme/frio/theme.php:266 msgid "Your events" msgstr "My events" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Personal notes" msgstr "Personal notes" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Your personal notes" msgstr "My personal notes" -#: src/Content/Nav.php:170 +#: src/Content/Nav.php:169 src/Module/Bookmarklet.php:25 +#: src/Module/Login.php:325 +msgid "Login" +msgstr "Login" + +#: src/Content/Nav.php:169 msgid "Sign in" msgstr "Sign in" -#: src/Content/Nav.php:180 src/Content/Nav.php:242 -#: src/Core/NotificationsManager.php:196 +#: src/Content/Nav.php:179 src/Content/Nav.php:241 +#: src/Core/NotificationsManager.php:165 msgid "Home" msgstr "Home" -#: src/Content/Nav.php:180 +#: src/Content/Nav.php:179 msgid "Home Page" msgstr "Home page" -#: src/Content/Nav.php:184 src/Module/Login.php:293 +#: src/Content/Nav.php:183 src/Module/Login.php:296 #: src/Module/Register.php:136 msgid "Register" msgstr "Sign up now >>" -#: src/Content/Nav.php:184 +#: src/Content/Nav.php:183 msgid "Create an account" msgstr "Create account" -#: src/Content/Nav.php:190 +#: src/Content/Nav.php:189 src/Module/Help.php:50 +#: src/Module/Settings/TwoFactor/Index.php:84 +#: src/Module/Settings/TwoFactor/Recovery.php:77 +#: src/Module/Settings/TwoFactor/Verify.php:117 view/theme/vier/theme.php:294 +msgid "Help" +msgstr "Help" + +#: src/Content/Nav.php:189 msgid "Help and documentation" msgstr "Help and documentation" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Apps" msgstr "Apps" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Addon applications, utilities, games" msgstr "Addon applications, utilities, games" -#: src/Content/Nav.php:198 +#: src/Content/Nav.php:197 msgid "Search site content" msgstr "Search site content" -#: src/Content/Nav.php:201 src/Content/Text/HTML.php:909 +#: src/Content/Nav.php:200 src/Content/Text/HTML.php:909 msgid "Full Text" msgstr "Full text" -#: src/Content/Nav.php:202 src/Content/Text/HTML.php:910 +#: src/Content/Nav.php:201 src/Content/Text/HTML.php:910 #: src/Content/Widget/TagCloud.php:54 msgid "Tags" msgstr "Tags" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Community" msgstr "Community" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Conversations on this and other servers" msgstr "Conversations on this and other servers" -#: src/Content/Nav.php:226 src/Model/Profile.php:940 src/Model/Profile.php:951 +#: src/Content/Nav.php:225 src/Model/Profile.php:934 src/Model/Profile.php:945 #: view/theme/frio/theme.php:270 msgid "Events and Calendar" msgstr "Events and calendar" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "Directory" msgstr "Directory" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "People directory" msgstr "People directory" -#: src/Content/Nav.php:231 +#: src/Content/Nav.php:230 src/Module/BaseAdminModule.php:75 +msgid "Information" +msgstr "Information" + +#: src/Content/Nav.php:230 msgid "Information about this friendica instance" msgstr "Information about this Friendica instance" -#: src/Content/Nav.php:234 +#: src/Content/Nav.php:233 src/Module/Admin/Tos.php:43 +#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:144 +#: src/Module/Tos.php:73 +msgid "Terms of Service" +msgstr "Terms of Service" + +#: src/Content/Nav.php:233 msgid "Terms of Service of this Friendica instance" msgstr "Terms of Service for this Friendica instance" -#: src/Content/Nav.php:239 view/theme/frio/theme.php:269 +#: src/Content/Nav.php:238 src/Core/NotificationsManager.php:151 +#: view/theme/frio/theme.php:269 +msgid "Network" +msgstr "Network" + +#: src/Content/Nav.php:238 view/theme/frio/theme.php:269 msgid "Conversations from your friends" msgstr "My friends' conversations" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Network Reset" msgstr "Network reset" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Load Network page with no filters" msgstr "Load network page without filters" -#: src/Content/Nav.php:246 src/Core/NotificationsManager.php:203 +#: src/Content/Nav.php:245 src/Core/NotificationsManager.php:172 msgid "Introductions" msgstr "Introductions" -#: src/Content/Nav.php:246 +#: src/Content/Nav.php:245 msgid "Friend Requests" msgstr "Friend requests" -#: src/Content/Nav.php:248 +#: src/Content/Nav.php:247 msgid "See all notifications" msgstr "See all notifications" -#: src/Content/Nav.php:249 +#: src/Content/Nav.php:248 msgid "Mark all system notifications seen" msgstr "Mark all system notifications seen" -#: src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Private mail" msgstr "Private messages" -#: src/Content/Nav.php:253 +#: src/Content/Nav.php:252 msgid "Inbox" msgstr "Inbox" -#: src/Content/Nav.php:254 +#: src/Content/Nav.php:253 msgid "Outbox" msgstr "Outbox" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage" msgstr "Manage" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage other pages" msgstr "Manage other pages" -#: src/Content/Nav.php:263 view/theme/frio/theme.php:272 +#: src/Content/Nav.php:262 view/theme/frio/theme.php:272 msgid "Account settings" msgstr "Account settings" -#: src/Content/Nav.php:266 +#: src/Content/Nav.php:265 msgid "Manage/Edit Profiles" msgstr "Manage/Edit profiles" -#: src/Content/Nav.php:269 view/theme/frio/theme.php:273 +#: src/Content/Nav.php:268 view/theme/frio/theme.php:273 msgid "Manage/edit friends and contacts" msgstr "Manage/Edit friends and contacts" -#: src/Content/Nav.php:274 +#: src/Content/Nav.php:273 src/Module/BaseAdminModule.php:114 +msgid "Admin" +msgstr "Admin" + +#: src/Content/Nav.php:273 msgid "Site setup and configuration" msgstr "Site setup and configuration" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Navigation" msgstr "Navigation" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Site map" msgstr "Site map" -#: src/Content/OEmbed.php:256 +#: src/Content/OEmbed.php:255 msgid "Embedding disabled" msgstr "Embedding disabled" -#: src/Content/OEmbed.php:379 +#: src/Content/OEmbed.php:378 msgid "Embedded content" msgstr "Embedded content" @@ -7342,33 +5143,33 @@ msgstr "prev" msgid "last" msgstr "last" -#: src/Content/Text/BBCode.php:429 +#: src/Content/Text/BBCode.php:430 msgid "view full size" msgstr "view full size" -#: src/Content/Text/BBCode.php:863 src/Content/Text/BBCode.php:1596 -#: src/Content/Text/BBCode.php:1597 +#: src/Content/Text/BBCode.php:864 src/Content/Text/BBCode.php:1591 +#: src/Content/Text/BBCode.php:1592 msgid "Image/photo" msgstr "Image/Photo" -#: src/Content/Text/BBCode.php:967 +#: src/Content/Text/BBCode.php:972 #, php-format msgid "%2$s %3$s" msgstr "%2$s %3$s" -#: src/Content/Text/BBCode.php:1523 src/Content/Text/BBCode.php:1545 +#: src/Content/Text/BBCode.php:1518 src/Content/Text/BBCode.php:1540 msgid "$1 wrote:" msgstr "$1 wrote:" -#: src/Content/Text/BBCode.php:1607 src/Content/Text/BBCode.php:1608 +#: src/Content/Text/BBCode.php:1602 src/Content/Text/BBCode.php:1603 msgid "Encrypted content" msgstr "Encrypted content" -#: src/Content/Text/BBCode.php:1715 +#: src/Content/Text/BBCode.php:1710 msgid "Invalid source protocol" msgstr "Invalid source protocol" -#: src/Content/Text/BBCode.php:1726 +#: src/Content/Text/BBCode.php:1721 msgid "Invalid link protocol" msgstr "Invalid link protocol" @@ -7384,8 +5185,8 @@ msgstr "The end" msgid "Follow" msgstr "Follow" -#: src/Content/Text/HTML.php:951 src/Model/Item.php:3503 -#: src/Model/Item.php:3514 +#: src/Content/Text/HTML.php:951 src/Model/Item.php:3471 +#: src/Model/Item.php:3482 msgid "Click to open/close" msgstr "Reveal/hide" @@ -7447,6 +5248,11 @@ msgstr "Enter name or interest" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Examples: Robert Morgenstein, fishing" +#: src/Content/Widget.php:65 src/Module/Contact.php:820 +#: src/Module/Directory.php:91 view/theme/vier/theme.php:203 +msgid "Find" +msgstr "Find" + #: src/Content/Widget.php:67 view/theme/vier/theme.php:205 msgid "Similar Interests" msgstr "Similar interests" @@ -7459,6 +5265,11 @@ msgstr "Random profile" msgid "Invite Friends" msgstr "Invite friends" +#: src/Content/Widget.php:70 src/Module/Directory.php:83 +#: view/theme/vier/theme.php:208 +msgid "Global Directory" +msgstr "Global Directory" + #: src/Content/Widget.php:72 view/theme/vier/theme.php:210 msgid "Local Directory" msgstr "Local directory" @@ -7490,104 +5301,62 @@ msgid_plural "%d contacts in common" msgstr[0] "%d contact in common" msgstr[1] "%d contacts in common" -#: src/Core/ACL.php:287 +#: src/Core/ACL.php:288 msgid "Post to Email" msgstr "Post to email" -#: src/Core/ACL.php:293 -msgid "Hide your profile details from unknown viewers?" -msgstr "Hide profile details from unknown viewers?" - -#: src/Core/ACL.php:292 -#, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Connectors are disabled since \"%s\" is enabled." - -#: src/Core/ACL.php:299 +#: src/Core/ACL.php:300 msgid "Visible to everybody" msgstr "Visible to everybody" -#: src/Core/ACL.php:300 view/theme/vier/config.php:116 +#: src/Core/ACL.php:301 view/theme/vier/config.php:116 msgid "show" msgstr "show" -#: src/Core/ACL.php:301 view/theme/vier/config.php:116 +#: src/Core/ACL.php:302 view/theme/vier/config.php:116 msgid "don't show" msgstr "don't show" #: src/Core/ACL.php:311 +msgid "Connectors" +msgstr "Connectors" + +#: src/Core/ACL.php:313 +msgid "Hide your profile details from unknown viewers?" +msgstr "Hide profile details from unknown viewers?" + +#: src/Core/ACL.php:313 +#, php-format +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Connectors are disabled since \"%s\" is enabled." + +#: src/Core/ACL.php:315 msgid "Close" msgstr "Close" -#: src/Core/Authentication.php:87 -msgid "Welcome " -msgstr "Welcome " - -#: src/Core/Authentication.php:88 -msgid "Please upload a profile photo." -msgstr "Please upload a profile photo." - -#: src/Core/Authentication.php:90 -msgid "Welcome back " -msgstr "Welcome back " - -#: src/Core/Console/ArchiveContact.php:65 -#, php-format -msgid "Could not find any unarchived contact entry for this URL (%s)" -msgstr "Could not find any unarchived contact entry for this URL (%s)" - -#: src/Core/Console/ArchiveContact.php:70 -msgid "The contact entries have been archived" -msgstr "The contact entries have been archived" - -#: src/Core/Console/NewPassword.php:72 -msgid "Enter new password: " -msgstr "Enter new password: " - -#: src/Core/Console/PostUpdate.php:50 -#, php-format -msgid "Post update version number has been set to %s." -msgstr "Post update version number has been set to %s." - -#: src/Core/Console/PostUpdate.php:58 -msgid "Check for pending update actions." -msgstr "Check for pending update actions." - -#: src/Core/Console/PostUpdate.php:60 -msgid "Done." -msgstr "Done." - -#: src/Core/Console/PostUpdate.php:62 -msgid "Execute pending post updates." -msgstr "Execute pending post updates." - -#: src/Core/Console/PostUpdate.php:68 -msgid "All pending post updates are done." -msgstr "All pending post updates are done." - -#: src/Core/Installer.php:163 +#: src/Core/Installer.php:164 msgid "" "The database configuration file \"config/local.config.php\" could not be " "written. Please use the enclosed text to create a configuration file in your" " web server root." msgstr "The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root." -#: src/Core/Installer.php:182 +#: src/Core/Installer.php:183 msgid "" "You may need to import the file \"database.sql\" manually using phpmyadmin " "or mysql." msgstr "You may need to import the file \"database.sql\" manually using phpmyadmin or mysql." -#: src/Core/Installer.php:183 src/Module/Install.php:132 -#: src/Module/Install.php:263 +#: src/Core/Installer.php:184 src/Module/Install.php:172 +#: src/Module/Install.php:328 msgid "Please see the file \"INSTALL.txt\"." msgstr "Please see the file \"INSTALL.txt\"." -#: src/Core/Installer.php:244 +#: src/Core/Installer.php:245 msgid "Could not find a command line version of PHP in the web server PATH." msgstr "Could not find a command line version of PHP in the web server PATH." -#: src/Core/Installer.php:245 +#: src/Core/Installer.php:246 msgid "" "If you don't have a command line version of PHP installed on your server, " "you will not be able to run the background processing. See 'Setup the worker'" msgstr "If your server doesn't have a command line version of PHP installed, you won't be able to run background processing. See 'Setup the worker'" -#: src/Core/Installer.php:249 +#: src/Core/Installer.php:251 msgid "PHP executable path" msgstr "PHP executable path" -#: src/Core/Installer.php:249 +#: src/Core/Installer.php:251 msgid "" "Enter full path to php executable. You can leave this blank to continue the " "installation." msgstr "Enter full path to php executable. You can leave this blank to continue the installation." -#: src/Core/Installer.php:254 +#: src/Core/Installer.php:256 msgid "Command line PHP" msgstr "Command line PHP" -#: src/Core/Installer.php:263 +#: src/Core/Installer.php:265 msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" msgstr "PHP executable is not a php cli binary; it could possibly be a cgi-fgci version." -#: src/Core/Installer.php:264 +#: src/Core/Installer.php:266 msgid "Found PHP version: " msgstr "Found PHP version: " -#: src/Core/Installer.php:266 +#: src/Core/Installer.php:268 msgid "PHP cli binary" msgstr "PHP cli binary" -#: src/Core/Installer.php:279 +#: src/Core/Installer.php:281 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled." -#: src/Core/Installer.php:280 +#: src/Core/Installer.php:282 msgid "This is required for message delivery to work." msgstr "This is required for message delivery to work." -#: src/Core/Installer.php:285 +#: src/Core/Installer.php:287 msgid "PHP register_argc_argv" msgstr "PHP register_argc_argv" -#: src/Core/Installer.php:317 +#: src/Core/Installer.php:319 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys" -#: src/Core/Installer.php:318 +#: src/Core/Installer.php:320 msgid "" "If running under Windows, please see " "\"http://www.php.net/manual/en/openssl.installation.php\"." msgstr "If running under Windows OS, please see \"http://www.php.net/manual/en/openssl.installation.php\"." -#: src/Core/Installer.php:321 +#: src/Core/Installer.php:323 msgid "Generate encryption keys" msgstr "Generate encryption keys" -#: src/Core/Installer.php:372 +#: src/Core/Installer.php:375 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "Error: Apache web server mod-rewrite module is required but not installed." -#: src/Core/Installer.php:377 +#: src/Core/Installer.php:380 msgid "Apache mod_rewrite module" msgstr "Apache mod_rewrite module" -#: src/Core/Installer.php:383 +#: src/Core/Installer.php:386 msgid "Error: PDO or MySQLi PHP module required but not installed." msgstr "Error: PDO or MySQLi PHP module required but not installed." -#: src/Core/Installer.php:388 +#: src/Core/Installer.php:391 msgid "Error: The MySQL driver for PDO is not installed." msgstr "Error: MySQL driver for PDO is not installed." -#: src/Core/Installer.php:392 +#: src/Core/Installer.php:395 msgid "PDO or MySQLi PHP module" msgstr "PDO or MySQLi PHP module" -#: src/Core/Installer.php:400 +#: src/Core/Installer.php:403 msgid "Error, XML PHP module required but not installed." msgstr "Error, XML PHP module required but not installed." -#: src/Core/Installer.php:404 +#: src/Core/Installer.php:407 msgid "XML PHP module" msgstr "XML PHP module" -#: src/Core/Installer.php:407 +#: src/Core/Installer.php:410 msgid "libCurl PHP module" msgstr "libCurl PHP module" -#: src/Core/Installer.php:408 +#: src/Core/Installer.php:411 msgid "Error: libCURL PHP module required but not installed." msgstr "Error: libCURL PHP module required but not installed." -#: src/Core/Installer.php:414 +#: src/Core/Installer.php:417 msgid "GD graphics PHP module" msgstr "GD graphics PHP module" -#: src/Core/Installer.php:415 +#: src/Core/Installer.php:418 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "Error: GD graphics PHP module with JPEG support required but not installed." -#: src/Core/Installer.php:421 +#: src/Core/Installer.php:424 msgid "OpenSSL PHP module" msgstr "OpenSSL PHP module" -#: src/Core/Installer.php:422 +#: src/Core/Installer.php:425 msgid "Error: openssl PHP module required but not installed." msgstr "Error: openssl PHP module required but not installed." -#: src/Core/Installer.php:428 +#: src/Core/Installer.php:431 msgid "mb_string PHP module" msgstr "mb_string PHP module" -#: src/Core/Installer.php:429 +#: src/Core/Installer.php:432 msgid "Error: mb_string PHP module required but not installed." msgstr "Error: mb_string PHP module required but not installed." -#: src/Core/Installer.php:435 +#: src/Core/Installer.php:438 msgid "iconv PHP module" msgstr "iconv PHP module" -#: src/Core/Installer.php:436 +#: src/Core/Installer.php:439 msgid "Error: iconv PHP module required but not installed." msgstr "Error: iconv PHP module required but not installed." -#: src/Core/Installer.php:442 +#: src/Core/Installer.php:445 msgid "POSIX PHP module" msgstr "POSIX PHP module" -#: src/Core/Installer.php:443 +#: src/Core/Installer.php:446 msgid "Error: POSIX PHP module required but not installed." msgstr "Error: POSIX PHP module required but not installed." -#: src/Core/Installer.php:449 +#: src/Core/Installer.php:452 msgid "JSON PHP module" msgstr "JSON PHP module" -#: src/Core/Installer.php:450 +#: src/Core/Installer.php:453 msgid "Error: JSON PHP module required but not installed." msgstr "Error: JSON PHP module is required but not installed." -#: src/Core/Installer.php:473 +#: src/Core/Installer.php:459 +msgid "File Information PHP module" +msgstr "File Information PHP module" + +#: src/Core/Installer.php:460 +msgid "Error: File Information PHP module required but not installed." +msgstr "Error: File Information PHP module required but not installed." + +#: src/Core/Installer.php:483 msgid "" "The web installer needs to be able to create a file called " "\"local.config.php\" in the \"config\" folder of your web server and it is " "unable to do so." msgstr "The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server but is unable to do so." -#: src/Core/Installer.php:474 +#: src/Core/Installer.php:484 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "This is most often a permission setting issue, as the web server may not be able to write files in your directory - even if you can." -#: src/Core/Installer.php:475 +#: src/Core/Installer.php:485 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named local.config.php in your Friendica \"config\" folder." msgstr "At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder." -#: src/Core/Installer.php:476 +#: src/Core/Installer.php:486 msgid "" "You can alternatively skip this procedure and perform a manual installation." " Please see the file \"INSTALL.txt\" for instructions." msgstr "Alternatively, you may skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions." -#: src/Core/Installer.php:479 +#: src/Core/Installer.php:489 msgid "config/local.config.php is writable" msgstr "config/local.config.php is writable" -#: src/Core/Installer.php:499 +#: src/Core/Installer.php:509 msgid "" "Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering." -#: src/Core/Installer.php:500 +#: src/Core/Installer.php:510 msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory view/smarty3/ under the Friendica top level " "folder." msgstr "In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top-level directory." -#: src/Core/Installer.php:501 +#: src/Core/Installer.php:511 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has" " write access to this folder." msgstr "Please ensure the user (e.g. www-data) that your web server runs as has write access to this directory." -#: src/Core/Installer.php:502 +#: src/Core/Installer.php:512 msgid "" "Note: as a security measure, you should give the web server write access to " "view/smarty3/ only--not the template files (.tpl) that it contains." msgstr "Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains." -#: src/Core/Installer.php:505 +#: src/Core/Installer.php:515 msgid "view/smarty3 is writable" msgstr "view/smarty3 is writeable" -#: src/Core/Installer.php:534 +#: src/Core/Installer.php:544 msgid "" "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist" " to .htaccess." -msgstr "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess." +msgstr "URL rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess." -#: src/Core/Installer.php:536 +#: src/Core/Installer.php:546 msgid "Error message from Curl when fetching" msgstr "Error message from Curl while fetching" -#: src/Core/Installer.php:541 +#: src/Core/Installer.php:551 msgid "Url rewrite is working" msgstr "URL rewrite is working" -#: src/Core/Installer.php:570 +#: src/Core/Installer.php:580 msgid "ImageMagick PHP extension is not installed" msgstr "ImageMagick PHP extension is not installed" -#: src/Core/Installer.php:572 +#: src/Core/Installer.php:582 msgid "ImageMagick PHP extension is installed" msgstr "ImageMagick PHP extension is installed" -#: src/Core/Installer.php:574 tests/src/Core/InstallerTest.php:329 -#: tests/src/Core/InstallerTest.php:355 +#: src/Core/Installer.php:584 tests/src/Core/InstallerTest.php:347 +#: tests/src/Core/InstallerTest.php:373 msgid "ImageMagick supports GIF" msgstr "ImageMagick supports GIF" -#: src/Core/Installer.php:597 +#: src/Core/Installer.php:609 msgid "Could not connect to database." msgstr "Could not connect to database." -#: src/Core/Installer.php:604 +#: src/Core/Installer.php:616 msgid "Database already in use." msgstr "Database already in use." -#: src/Core/L10n.php:368 src/Model/Event.php:397 +#: src/Core/L10n.php:371 src/Model/Event.php:397 msgid "Tuesday" msgstr "Tuesday" -#: src/Core/L10n.php:368 src/Model/Event.php:398 +#: src/Core/L10n.php:371 src/Model/Event.php:398 msgid "Wednesday" msgstr "Wednesday" -#: src/Core/L10n.php:368 src/Model/Event.php:399 +#: src/Core/L10n.php:371 src/Model/Event.php:399 msgid "Thursday" msgstr "Thursday" -#: src/Core/L10n.php:368 src/Model/Event.php:400 +#: src/Core/L10n.php:371 src/Model/Event.php:400 msgid "Friday" msgstr "Friday" -#: src/Core/L10n.php:368 src/Model/Event.php:401 +#: src/Core/L10n.php:371 src/Model/Event.php:401 msgid "Saturday" msgstr "Saturday" -#: src/Core/L10n.php:372 src/Model/Event.php:416 +#: src/Core/L10n.php:375 src/Model/Event.php:416 msgid "January" msgstr "January" -#: src/Core/L10n.php:372 src/Model/Event.php:417 +#: src/Core/L10n.php:375 src/Model/Event.php:417 msgid "February" msgstr "February" -#: src/Core/L10n.php:372 src/Model/Event.php:418 +#: src/Core/L10n.php:375 src/Model/Event.php:418 msgid "March" msgstr "March" -#: src/Core/L10n.php:372 src/Model/Event.php:419 +#: src/Core/L10n.php:375 src/Model/Event.php:419 msgid "April" msgstr "April" -#: src/Core/L10n.php:372 src/Core/L10n.php:391 src/Model/Event.php:407 +#: src/Core/L10n.php:375 src/Core/L10n.php:394 src/Model/Event.php:407 msgid "May" msgstr "May" -#: src/Core/L10n.php:372 src/Model/Event.php:420 +#: src/Core/L10n.php:375 src/Model/Event.php:420 msgid "June" msgstr "June" -#: src/Core/L10n.php:372 src/Model/Event.php:421 +#: src/Core/L10n.php:375 src/Model/Event.php:421 msgid "July" msgstr "July" -#: src/Core/L10n.php:372 src/Model/Event.php:422 +#: src/Core/L10n.php:375 src/Model/Event.php:422 msgid "August" msgstr "August" -#: src/Core/L10n.php:372 src/Model/Event.php:423 +#: src/Core/L10n.php:375 src/Model/Event.php:423 msgid "September" msgstr "September" -#: src/Core/L10n.php:372 src/Model/Event.php:424 +#: src/Core/L10n.php:375 src/Model/Event.php:424 msgid "October" msgstr "October" -#: src/Core/L10n.php:372 src/Model/Event.php:425 +#: src/Core/L10n.php:375 src/Model/Event.php:425 msgid "November" msgstr "November" -#: src/Core/L10n.php:372 src/Model/Event.php:426 +#: src/Core/L10n.php:375 src/Model/Event.php:426 msgid "December" msgstr "December" -#: src/Core/L10n.php:387 src/Model/Event.php:388 +#: src/Core/L10n.php:390 src/Model/Event.php:388 msgid "Mon" msgstr "Mon" -#: src/Core/L10n.php:387 src/Model/Event.php:389 +#: src/Core/L10n.php:390 src/Model/Event.php:389 msgid "Tue" msgstr "Tue" -#: src/Core/L10n.php:387 src/Model/Event.php:390 +#: src/Core/L10n.php:390 src/Model/Event.php:390 msgid "Wed" msgstr "Wed" -#: src/Core/L10n.php:387 src/Model/Event.php:391 +#: src/Core/L10n.php:390 src/Model/Event.php:391 msgid "Thu" msgstr "Thu" -#: src/Core/L10n.php:387 src/Model/Event.php:392 +#: src/Core/L10n.php:390 src/Model/Event.php:392 msgid "Fri" msgstr "Fri" -#: src/Core/L10n.php:387 src/Model/Event.php:393 +#: src/Core/L10n.php:390 src/Model/Event.php:393 msgid "Sat" msgstr "Sat" -#: src/Core/L10n.php:387 src/Model/Event.php:387 +#: src/Core/L10n.php:390 src/Model/Event.php:387 msgid "Sun" msgstr "Sun" -#: src/Core/L10n.php:391 src/Model/Event.php:403 +#: src/Core/L10n.php:394 src/Model/Event.php:403 msgid "Jan" msgstr "Jan" -#: src/Core/L10n.php:391 src/Model/Event.php:404 +#: src/Core/L10n.php:394 src/Model/Event.php:404 msgid "Feb" msgstr "Feb" -#: src/Core/L10n.php:391 src/Model/Event.php:405 +#: src/Core/L10n.php:394 src/Model/Event.php:405 msgid "Mar" msgstr "Mar" -#: src/Core/L10n.php:391 src/Model/Event.php:406 +#: src/Core/L10n.php:394 src/Model/Event.php:406 msgid "Apr" msgstr "Apr" -#: src/Core/L10n.php:391 src/Model/Event.php:409 +#: src/Core/L10n.php:394 src/Model/Event.php:409 msgid "Jul" msgstr "Jul" -#: src/Core/L10n.php:391 src/Model/Event.php:410 +#: src/Core/L10n.php:394 src/Model/Event.php:410 msgid "Aug" msgstr "Aug" -#: src/Core/L10n.php:391 +#: src/Core/L10n.php:394 msgid "Sep" msgstr "Sep" -#: src/Core/L10n.php:391 src/Model/Event.php:412 +#: src/Core/L10n.php:394 src/Model/Event.php:412 msgid "Oct" msgstr "Oct" -#: src/Core/L10n.php:391 src/Model/Event.php:413 +#: src/Core/L10n.php:394 src/Model/Event.php:413 msgid "Nov" msgstr "Nov" -#: src/Core/L10n.php:391 src/Model/Event.php:414 +#: src/Core/L10n.php:394 src/Model/Event.php:414 msgid "Dec" msgstr "Dec" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poke" msgstr "poke" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poked" msgstr "poked" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "ping" msgstr "ping" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "pinged" msgstr "pinged" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prod" msgstr "prod" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prodded" msgstr "prodded" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slap" msgstr "slap" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slapped" msgstr "slapped" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "finger" msgstr "finger" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "fingered" msgstr "fingered" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuff" msgstr "rebuff" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuffed" msgstr "rebuffed" -#: src/Core/NotificationsManager.php:175 +#: src/Core/NotificationsManager.php:144 msgid "System" msgstr "System" -#: src/Core/NotificationsManager.php:265 src/Core/NotificationsManager.php:277 +#: src/Core/NotificationsManager.php:234 src/Core/NotificationsManager.php:246 #, php-format msgid "%s commented on %s's post" msgstr "%s commented on %s's post" -#: src/Core/NotificationsManager.php:276 +#: src/Core/NotificationsManager.php:245 #, php-format msgid "%s created a new post" msgstr "%s posted something new" -#: src/Core/NotificationsManager.php:290 +#: src/Core/NotificationsManager.php:259 #, php-format msgid "%s liked %s's post" msgstr "%s liked %s's post" -#: src/Core/NotificationsManager.php:303 +#: src/Core/NotificationsManager.php:272 #, php-format msgid "%s disliked %s's post" msgstr "%s disliked %s's post" -#: src/Core/NotificationsManager.php:316 +#: src/Core/NotificationsManager.php:285 #, php-format msgid "%s is attending %s's event" msgstr "%s is going to %s's event" -#: src/Core/NotificationsManager.php:329 +#: src/Core/NotificationsManager.php:298 #, php-format msgid "%s is not attending %s's event" msgstr "%s is not going to %s's event" -#: src/Core/NotificationsManager.php:342 +#: src/Core/NotificationsManager.php:311 #, php-format msgid "%s may attend %s's event" msgstr "%s may go to %s's event" -#: src/Core/NotificationsManager.php:375 +#: src/Core/NotificationsManager.php:344 #, php-format msgid "%s is now friends with %s" msgstr "%s is now friends with %s" -#: src/Core/NotificationsManager.php:651 +#: src/Core/NotificationsManager.php:622 msgid "Friend Suggestion" msgstr "Friend suggestion" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "Friend/Connect Request" msgstr "Friend/Contact request" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "New Follower" msgstr "New follower" -#: src/Core/System.php:137 -msgid "Error 400 - Bad Request" -msgstr "Error 400 - Bad Request" +#: src/Core/Session.php:194 +#, php-format +msgid "Welcome %s" +msgstr "Welcome %s" -#: src/Core/System.php:138 -msgid "Error 401 - Unauthorized" -msgstr "Error 401 - Unauthorised" +#: src/Core/Session.php:195 +msgid "Please upload a profile photo." +msgstr "Please upload a profile photo." -#: src/Core/System.php:139 -msgid "Error 403 - Forbidden" -msgstr "Error 403 - Forbidden" +#: src/Core/Session.php:198 +#, php-format +msgid "Welcome back %s" +msgstr "Welcome back %s" -#: src/Core/System.php:140 -msgid "Error 404 - Not Found" -msgstr "Error 404 - Not Found" - -#: src/Core/System.php:141 -msgid "Error 500 - Internal Server Error" -msgstr "Error 500 - Internal Server Error" - -#: src/Core/System.php:142 -msgid "Error 503 - Service Unavailable" -msgstr "Error 503 - Service Unavailable" - -#: src/Core/System.php:150 -msgid "" -"The server cannot or will not process the request due to an apparent client " -"error." -msgstr "The server cannot process the request due to an apparent client error." - -#: src/Core/System.php:151 -msgid "" -"Authentication is required and has failed or has not yet been provided." -msgstr "Authentication is required and has failed or has not yet been provided." - -#: src/Core/System.php:152 -msgid "" -"The request was valid, but the server is refusing action. The user might not" -" have the necessary permissions for a resource, or may need an account." -msgstr "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account." - -#: src/Core/System.php:153 -msgid "" -"The requested resource could not be found but may be available in the " -"future." -msgstr "The requested resource could not be found but may be available in the future." - -#: src/Core/System.php:154 -msgid "" -"An unexpected condition was encountered and no more specific message is " -"suitable." -msgstr "An unexpected condition was encountered and no more specific message is available." - -#: src/Core/System.php:155 -msgid "" -"The server is currently unavailable (because it is overloaded or down for " -"maintenance). Please try again later." -msgstr "The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later." - -#: src/Core/Update.php:168 +#: src/Core/Update.php:193 #, php-format msgid "Update %s failed. See error logs." msgstr "Update %s failed. See error logs." -#: src/Core/Update.php:225 +#: src/Core/Update.php:257 #, php-format msgid "" "\n" @@ -8144,49 +5876,53 @@ msgid "" "\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." msgstr "\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." -#: src/Core/Update.php:231 +#: src/Core/Update.php:263 #, php-format msgid "" "The error message is\n" "[pre]%s[/pre]" msgstr "The error message is\n[pre]%s[/pre]" -#: src/Core/Update.php:260 +#: src/Core/Update.php:269 src/Core/Update.php:308 +msgid "[Friendica Notify] Database update" +msgstr "[Friendica Notify] Database update" + +#: src/Core/Update.php:300 #, php-format msgid "" "\n" "\t\t\t\t\tThe friendica database was successfully updated from %s to %s." msgstr "\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s." -#: src/Core/UserImport.php:103 +#: src/Core/UserImport.php:99 msgid "Error decoding account file" msgstr "Error decoding account file" -#: src/Core/UserImport.php:109 +#: src/Core/UserImport.php:105 msgid "Error! No version data in file! This is not a Friendica account file?" msgstr "Error! No version data in file! Is this a Friendica account file?" -#: src/Core/UserImport.php:117 +#: src/Core/UserImport.php:113 #, php-format msgid "User '%s' already exists on this server!" msgstr "User '%s' already exists on this server!" -#: src/Core/UserImport.php:153 +#: src/Core/UserImport.php:149 msgid "User creation error" msgstr "User creation error" -#: src/Core/UserImport.php:171 +#: src/Core/UserImport.php:167 msgid "User profile creation error" msgstr "User profile creation error" -#: src/Core/UserImport.php:215 +#: src/Core/UserImport.php:211 #, php-format msgid "%d contact not imported" msgid_plural "%d contacts not imported" msgstr[0] "%d contact not imported" msgstr[1] "%d contacts not imported" -#: src/Core/UserImport.php:280 +#: src/Core/UserImport.php:276 msgid "Done. You can now login with your username and password" msgstr "Done. You can now login with your username and password" @@ -8221,79 +5957,83 @@ msgstr "%s: updating %s table." msgid "Legacy module file not found: %s" msgstr "Legacy module file not found: %s" -#: src/Model/Contact.php:1054 +#: src/Model/Contact.php:1116 msgid "Drop Contact" msgstr "Drop contact" -#: src/Model/Contact.php:1526 +#: src/Model/Contact.php:1651 msgid "Organisation" msgstr "Organisation" -#: src/Model/Contact.php:1530 +#: src/Model/Contact.php:1655 msgid "News" msgstr "News" -#: src/Model/Contact.php:1534 +#: src/Model/Contact.php:1659 msgid "Forum" msgstr "Forum" -#: src/Model/Contact.php:1724 +#: src/Model/Contact.php:1888 msgid "Connect URL missing." msgstr "Connect URL missing." -#: src/Model/Contact.php:1733 +#: src/Model/Contact.php:1897 msgid "" "The contact could not be added. Please check the relevant network " "credentials in your Settings -> Social Networks page." msgstr "The contact could not be added. Please check the relevant network credentials in your Settings -> Social Networks page." -#: src/Model/Contact.php:1772 +#: src/Model/Contact.php:1938 msgid "" "This site is not configured to allow communications with other networks." msgstr "This site is not configured to allow communications with other networks." -#: src/Model/Contact.php:1773 src/Model/Contact.php:1786 +#: src/Model/Contact.php:1939 src/Model/Contact.php:1952 msgid "No compatible communication protocols or feeds were discovered." msgstr "No compatible communication protocols or feeds were discovered." -#: src/Model/Contact.php:1784 +#: src/Model/Contact.php:1950 msgid "The profile address specified does not provide adequate information." msgstr "The profile address specified does not provide adequate information." -#: src/Model/Contact.php:1789 +#: src/Model/Contact.php:1955 msgid "An author or name was not found." msgstr "An author or name was not found." -#: src/Model/Contact.php:1792 +#: src/Model/Contact.php:1958 msgid "No browser URL could be matched to this address." msgstr "No browser URL could be matched to this address." -#: src/Model/Contact.php:1795 +#: src/Model/Contact.php:1961 msgid "" "Unable to match @-style Identity Address with a known protocol or email " "contact." msgstr "Unable to match @-style identity address with a known protocol or email contact." -#: src/Model/Contact.php:1796 +#: src/Model/Contact.php:1962 msgid "Use mailto: in front of address to force email check." msgstr "Use mailto: in front of address to force email check." -#: src/Model/Contact.php:1802 +#: src/Model/Contact.php:1968 msgid "" "The profile address specified belongs to a network which has been disabled " "on this site." msgstr "The profile address specified belongs to a network which has been disabled on this site." -#: src/Model/Contact.php:1807 +#: src/Model/Contact.php:1973 msgid "" "Limited profile. This person will be unable to receive direct/personal " "notifications from you." msgstr "Limited profile: This person will be unable to receive direct/private messages from you." -#: src/Model/Contact.php:1860 +#: src/Model/Contact.php:2027 msgid "Unable to retrieve contact information." msgstr "Unable to retrieve contact information." +#: src/Model/Event.php:34 src/Model/Event.php:847 src/Module/Localtime.php:17 +msgid "l F d, Y \\@ g:i A" +msgstr "l F d, Y \\@ g:i A" + #: src/Model/Event.php:61 src/Model/Event.php:78 src/Model/Event.php:435 #: src/Model/Event.php:915 msgid "Starts:" @@ -8336,7 +6076,7 @@ msgstr "Duplicate event" msgid "Delete event" msgstr "Delete event" -#: src/Model/Event.php:626 src/Model/Item.php:3554 src/Model/Item.php:3561 +#: src/Model/Event.php:626 src/Model/Item.php:3522 src/Model/Item.php:3529 msgid "link to source" msgstr "Link to source" @@ -8370,211 +6110,222 @@ msgstr "Happy Birthday, %s!" msgid "Item filed" msgstr "Item filed" -#: src/Model/Group.php:43 +#: src/Model/Group.php:63 msgid "" "A deleted group with this name was revived. Existing item permissions " "may apply to this group and any future members. If this is " "not what you intended, please create another group with a different name." msgstr "A deleted group with this name has been revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name." -#: src/Model/Group.php:338 +#: src/Model/Group.php:358 msgid "Default privacy group for new contacts" msgstr "Default privacy group for new contacts" -#: src/Model/Group.php:370 +#: src/Model/Group.php:390 msgid "Everybody" msgstr "Everybody" -#: src/Model/Group.php:390 +#: src/Model/Group.php:410 msgid "edit" msgstr "edit" -#: src/Model/Group.php:419 +#: src/Model/Group.php:439 msgid "Edit group" msgstr "Edit group" -#: src/Model/Group.php:422 +#: src/Model/Group.php:440 src/Module/Group.php:186 +msgid "Contacts not in any group" +msgstr "Contacts not in any group" + +#: src/Model/Group.php:442 msgid "Create a new group" msgstr "Create new group" -#: src/Model/Group.php:424 +#: src/Model/Group.php:443 src/Module/Group.php:171 src/Module/Group.php:194 +#: src/Module/Group.php:271 +msgid "Group Name: " +msgstr "Group name: " + +#: src/Model/Group.php:444 msgid "Edit groups" msgstr "Edit groups" -#: src/Model/Item.php:3287 +#: src/Model/Item.php:3257 msgid "activity" msgstr "activity" -#: src/Model/Item.php:3289 src/Object/Post.php:470 +#: src/Model/Item.php:3259 src/Object/Post.php:472 msgid "comment" msgid_plural "comments" msgstr[0] "comment" msgstr[1] "comments" -#: src/Model/Item.php:3292 +#: src/Model/Item.php:3262 msgid "post" msgstr "post" -#: src/Model/Item.php:3391 +#: src/Model/Item.php:3361 #, php-format msgid "Content warning: %s" msgstr "Content warning: %s" -#: src/Model/Item.php:3470 +#: src/Model/Item.php:3438 msgid "bytes" msgstr "bytes" -#: src/Model/Item.php:3548 +#: src/Model/Item.php:3516 msgid "View on separate page" msgstr "View on separate page" -#: src/Model/Item.php:3549 +#: src/Model/Item.php:3517 msgid "view on separate page" msgstr "view on separate page" -#: src/Model/Mail.php:40 src/Model/Mail.php:175 +#: src/Model/Mail.php:109 src/Model/Mail.php:244 msgid "[no subject]" msgstr "[no subject]" -#: src/Model/Profile.php:115 -msgid "Requested account is not available." -msgstr "Requested account is unavailable." - -#: src/Model/Profile.php:133 -msgid "Requested profile is not available." -msgstr "Requested profile is unavailable." - -#: src/Model/Profile.php:181 src/Model/Profile.php:425 -#: src/Model/Profile.php:872 +#: src/Model/Profile.php:177 src/Model/Profile.php:421 +#: src/Model/Profile.php:866 msgid "Edit profile" msgstr "Edit profile" -#: src/Model/Profile.php:359 +#: src/Model/Profile.php:355 msgid "Atom feed" msgstr "Atom feed" -#: src/Model/Profile.php:398 +#: src/Model/Profile.php:394 msgid "Manage/edit profiles" msgstr "Manage/Edit profiles" -#: src/Model/Profile.php:450 src/Module/Contact.php:645 +#: src/Model/Profile.php:443 src/Model/Profile.php:776 +#: src/Module/Directory.php:148 +msgid "Status:" +msgstr "Status:" + +#: src/Model/Profile.php:444 src/Model/Profile.php:793 +#: src/Module/Directory.php:149 +msgid "Homepage:" +msgstr "Homepage:" + +#: src/Model/Profile.php:446 src/Module/Contact.php:648 msgid "XMPP:" msgstr "XMPP:" -#: src/Model/Profile.php:573 src/Model/Profile.php:671 +#: src/Model/Profile.php:569 src/Model/Profile.php:666 msgid "g A l F d" msgstr "g A l F d" -#: src/Model/Profile.php:574 +#: src/Model/Profile.php:570 msgid "F d" msgstr "F d" -#: src/Model/Profile.php:636 src/Model/Profile.php:722 +#: src/Model/Profile.php:632 src/Model/Profile.php:717 msgid "[today]" msgstr "[today]" -#: src/Model/Profile.php:647 +#: src/Model/Profile.php:642 msgid "Birthday Reminders" msgstr "Birthday reminders" -#: src/Model/Profile.php:648 +#: src/Model/Profile.php:643 msgid "Birthdays this week:" msgstr "Birthdays this week:" -#: src/Model/Profile.php:709 +#: src/Model/Profile.php:704 msgid "[No description]" msgstr "[No description]" -#: src/Model/Profile.php:736 +#: src/Model/Profile.php:730 msgid "Event Reminders" msgstr "Event reminders" -#: src/Model/Profile.php:737 +#: src/Model/Profile.php:731 msgid "Upcoming events the next 7 days:" msgstr "Upcoming events the next 7 days:" -#: src/Model/Profile.php:754 +#: src/Model/Profile.php:748 msgid "Member since:" msgstr "Member since:" -#: src/Model/Profile.php:762 +#: src/Model/Profile.php:756 msgid "j F, Y" msgstr "j F, Y" -#: src/Model/Profile.php:763 +#: src/Model/Profile.php:757 msgid "j F" msgstr "j F" -#: src/Model/Profile.php:771 src/Util/Temporal.php:147 +#: src/Model/Profile.php:765 src/Util/Temporal.php:147 msgid "Birthday:" msgstr "Birthday:" -#: src/Model/Profile.php:778 +#: src/Model/Profile.php:772 msgid "Age:" msgstr "Age:" -#: src/Model/Profile.php:791 +#: src/Model/Profile.php:785 #, php-format msgid "for %1$d %2$s" msgstr "for %1$d %2$s" -#: src/Model/Profile.php:815 +#: src/Model/Profile.php:809 msgid "Religion:" msgstr "Religion:" -#: src/Model/Profile.php:823 +#: src/Model/Profile.php:817 msgid "Hobbies/Interests:" msgstr "Hobbies/Interests:" -#: src/Model/Profile.php:835 +#: src/Model/Profile.php:829 msgid "Contact information and Social Networks:" msgstr "Contact information and social networks:" -#: src/Model/Profile.php:839 +#: src/Model/Profile.php:833 msgid "Musical interests:" msgstr "Music:" -#: src/Model/Profile.php:843 +#: src/Model/Profile.php:837 msgid "Books, literature:" msgstr "Books/Literature:" -#: src/Model/Profile.php:847 +#: src/Model/Profile.php:841 msgid "Television:" msgstr "Television:" -#: src/Model/Profile.php:851 +#: src/Model/Profile.php:845 msgid "Film/dance/culture/entertainment:" msgstr "Arts, culture, entertainment:" -#: src/Model/Profile.php:855 +#: src/Model/Profile.php:849 msgid "Love/Romance:" msgstr "Love/Romance:" -#: src/Model/Profile.php:859 +#: src/Model/Profile.php:853 msgid "Work/employment:" msgstr "Work/Employment:" -#: src/Model/Profile.php:863 +#: src/Model/Profile.php:857 msgid "School/education:" msgstr "School/Education:" -#: src/Model/Profile.php:868 +#: src/Model/Profile.php:862 msgid "Forums:" msgstr "Forums:" -#: src/Model/Profile.php:912 src/Module/Contact.php:872 +#: src/Model/Profile.php:906 src/Module/Contact.php:875 msgid "Profile Details" msgstr "Profile Details" -#: src/Model/Profile.php:962 +#: src/Model/Profile.php:956 msgid "Only You Can See This" msgstr "Only you can see this." -#: src/Model/Profile.php:970 src/Model/Profile.php:973 +#: src/Model/Profile.php:964 src/Model/Profile.php:967 msgid "Tips for New Members" msgstr "Tips for New Members" -#: src/Model/Profile.php:1150 +#: src/Model/Profile.php:1167 #, php-format msgid "OpenWebAuth: %1$s welcomes %2$s" msgstr "OpenWebAuth: %1$s welcomes %2$s" @@ -8614,138 +6365,138 @@ msgstr "Folder where uploaded files are saved. For maximum security, this should msgid "Enter a valid existing folder" msgstr "Enter a valid existing folder" -#: src/Model/User.php:271 +#: src/Model/User.php:298 msgid "Login failed" msgstr "Login failed" -#: src/Model/User.php:302 +#: src/Model/User.php:329 msgid "Not enough information to authenticate" msgstr "Not enough information to authenticate" -#: src/Model/User.php:380 +#: src/Model/User.php:407 msgid "Password can't be empty" msgstr "Password can't be empty" -#: src/Model/User.php:399 +#: src/Model/User.php:426 msgid "Empty passwords are not allowed." msgstr "Empty passwords are not allowed." -#: src/Model/User.php:403 +#: src/Model/User.php:430 msgid "" "The new password has been exposed in a public data dump, please choose " "another." msgstr "The new password has been exposed in a public data dump; please choose another." -#: src/Model/User.php:409 +#: src/Model/User.php:436 msgid "" "The password can't contain accentuated letters, white spaces or colons (:)" msgstr "The password can't contain accentuated letters, white spaces or colons" -#: src/Model/User.php:509 +#: src/Model/User.php:536 msgid "Passwords do not match. Password unchanged." msgstr "Passwords do not match. Password unchanged." -#: src/Model/User.php:516 +#: src/Model/User.php:543 msgid "An invitation is required." msgstr "An invitation is required." -#: src/Model/User.php:520 +#: src/Model/User.php:547 msgid "Invitation could not be verified." msgstr "Invitation could not be verified." -#: src/Model/User.php:527 +#: src/Model/User.php:554 msgid "Invalid OpenID url" msgstr "Invalid OpenID URL" -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID." -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "The error message was:" msgstr "The error message was:" -#: src/Model/User.php:546 +#: src/Model/User.php:573 msgid "Please enter the required information." msgstr "Please enter the required information." -#: src/Model/User.php:560 +#: src/Model/User.php:587 #, php-format msgid "" "system.username_min_length (%s) and system.username_max_length (%s) are " "excluding each other, swapping values." msgstr "system.username_min_length (%s) and system.username_max_length (%s) are excluding each other, swapping values." -#: src/Model/User.php:567 +#: src/Model/User.php:594 #, php-format msgid "Username should be at least %s character." msgid_plural "Username should be at least %s characters." msgstr[0] "Username should be at least %s character." msgstr[1] "Username should be at least %s characters." -#: src/Model/User.php:571 +#: src/Model/User.php:598 #, php-format msgid "Username should be at most %s character." msgid_plural "Username should be at most %s characters." msgstr[0] "Username should be at most %s character." msgstr[1] "Username should be at most %s characters." -#: src/Model/User.php:579 +#: src/Model/User.php:606 msgid "That doesn't appear to be your full (First Last) name." msgstr "That doesn't appear to be your full (i.e first and last) name." -#: src/Model/User.php:584 +#: src/Model/User.php:611 msgid "Your email domain is not among those allowed on this site." msgstr "Your email domain is not allowed on this site." -#: src/Model/User.php:588 +#: src/Model/User.php:615 msgid "Not a valid email address." msgstr "Not a valid email address." -#: src/Model/User.php:591 +#: src/Model/User.php:618 msgid "The nickname was blocked from registration by the nodes admin." msgstr "The nickname was blocked from registration by the nodes admin." -#: src/Model/User.php:595 src/Model/User.php:603 +#: src/Model/User.php:622 src/Model/User.php:630 msgid "Cannot use that email." msgstr "Cannot use that email." -#: src/Model/User.php:610 +#: src/Model/User.php:637 msgid "Your nickname can only contain a-z, 0-9 and _." msgstr "Your nickname can only contain a-z, 0-9 and _." -#: src/Model/User.php:617 src/Model/User.php:674 +#: src/Model/User.php:644 src/Model/User.php:701 msgid "Nickname is already registered. Please choose another." msgstr "Nickname is already registered. Please choose another." -#: src/Model/User.php:627 +#: src/Model/User.php:654 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "SERIOUS ERROR: Generation of security keys failed." -#: src/Model/User.php:661 src/Model/User.php:665 +#: src/Model/User.php:688 src/Model/User.php:692 msgid "An error occurred during registration. Please try again." msgstr "An error occurred during registration. Please try again." -#: src/Model/User.php:685 view/theme/duepuntozero/config.php:55 +#: src/Model/User.php:712 view/theme/duepuntozero/config.php:55 msgid "default" msgstr "default" -#: src/Model/User.php:690 +#: src/Model/User.php:717 msgid "An error occurred creating your default profile. Please try again." msgstr "An error occurred creating your default profile. Please try again." -#: src/Model/User.php:697 +#: src/Model/User.php:724 msgid "An error occurred creating your self contact. Please try again." msgstr "An error occurred creating your self-contact. Please try again." -#: src/Model/User.php:706 +#: src/Model/User.php:733 msgid "" "An error occurred creating your default contact group. Please try again." msgstr "An error occurred while creating your default contact group. Please try again." -#: src/Model/User.php:782 +#: src/Model/User.php:809 #, php-format msgid "" "\n" @@ -8760,12 +6511,12 @@ msgid "" "\t\t" msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThank you for registering at %2$s. Your account is pending for approval by the administrator.\n\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%3$s\n\t\t\tLogin Name:\t\t%4$s\n\t\t\tPassword:\t\t%5$s\n\t\t" -#: src/Model/User.php:799 +#: src/Model/User.php:826 #, php-format msgid "Registration at %s" msgstr "Registration at %s" -#: src/Model/User.php:818 +#: src/Model/User.php:845 #, php-format msgid "" "\n" @@ -8774,7 +6525,7 @@ msgid "" "\t\t" msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThank you for registering at %2$s. Your account has been created.\n\t\t" -#: src/Model/User.php:824 +#: src/Model/User.php:851 #, php-format msgid "" "\n" @@ -8806,10 +6557,2044 @@ msgid "" "\t\t\tThank you and welcome to %2$s." msgstr "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3$s\n\t\t\tLogin Name:\t\t%1$s\n\t\t\tPassword:\t\t%5$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3$s/removeme\n\n\t\t\tThank you and welcome to %2$s." +#: src/Model/User.php:886 src/Module/Admin/Users.php:88 +#, php-format +msgid "Registration details for %s" +msgstr "Registration details for %s" + +#: src/Module/Admin/Addons/Details.php:51 +msgid "Addon not found." +msgstr "Addon not found." + +#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:32 +#, php-format +msgid "Addon %s disabled." +msgstr "Addon %s disabled." + +#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:34 +#, php-format +msgid "Addon %s enabled." +msgstr "Addon %s enabled." + +#: src/Module/Admin/Addons/Details.php:76 +#: src/Module/Admin/Themes/Details.php:60 +msgid "Disable" +msgstr "Disable" + +#: src/Module/Admin/Addons/Details.php:79 +#: src/Module/Admin/Themes/Details.php:63 +msgid "Enable" +msgstr "Enable" + +#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50 +#: src/Module/Admin/Blocklist/Contact.php:60 +#: src/Module/Admin/Blocklist/Server.php:73 +#: src/Module/Admin/Federation.php:185 src/Module/Admin/Item/Delete.php:46 +#: src/Module/Admin/Logs/Settings.php:57 src/Module/Admin/Logs/View.php:46 +#: src/Module/Admin/Queue.php:56 src/Module/Admin/Site.php:568 +#: src/Module/Admin/Summary.php:160 src/Module/Admin/Themes/Details.php:104 +#: src/Module/Admin/Themes/Index.php:93 src/Module/Admin/Tos.php:42 +#: src/Module/Admin/Users.php:277 +msgid "Administration" +msgstr "Administration" + +#: src/Module/Admin/Addons/Details.php:101 +#: src/Module/Admin/Themes/Details.php:106 +msgid "Toggle" +msgstr "Toggle" + +#: src/Module/Admin/Addons/Details.php:109 +#: src/Module/Admin/Themes/Details.php:115 +msgid "Author: " +msgstr "Author: " + +#: src/Module/Admin/Addons/Details.php:110 +#: src/Module/Admin/Themes/Details.php:116 +msgid "Maintainer: " +msgstr "Maintainer: " + +#: src/Module/Admin/Addons/Index.php:36 +#, php-format +msgid "Addon %s failed to install." +msgstr "Addon %s failed to install." + +#: src/Module/Admin/Addons/Index.php:53 +msgid "Reload active addons" +msgstr "Reload active addons" + +#: src/Module/Admin/Addons/Index.php:58 +#, php-format +msgid "" +"There are currently no addons available on your node. You can find the " +"official addon repository at %1$s and might find other interesting addons in" +" the open addon registry at %2$s" +msgstr "There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s" + +#: src/Module/Admin/Blocklist/Contact.php:37 +#, php-format +msgid "%s contact unblocked" +msgid_plural "%s contacts unblocked" +msgstr[0] "%s contact unblocked" +msgstr[1] "%s contacts unblocked" + +#: src/Module/Admin/Blocklist/Contact.php:61 +msgid "Remote Contact Blocklist" +msgstr "Remote contact blocklist" + +#: src/Module/Admin/Blocklist/Contact.php:62 +msgid "" +"This page allows you to prevent any message from a remote contact to reach " +"your node." +msgstr "This page allows you to prevent any message from a remote contact to reach your node." + +#: src/Module/Admin/Blocklist/Contact.php:63 +msgid "Block Remote Contact" +msgstr "Block Remote Contact" + +#: src/Module/Admin/Blocklist/Contact.php:64 src/Module/Admin/Users.php:280 +msgid "select all" +msgstr "select all" + +#: src/Module/Admin/Blocklist/Contact.php:65 +msgid "select none" +msgstr "select none" + +#: src/Module/Admin/Blocklist/Contact.php:67 src/Module/Admin/Users.php:291 +#: src/Module/Contact.php:624 src/Module/Contact.php:827 +#: src/Module/Contact.php:1080 +msgid "Unblock" +msgstr "Unblock" + +#: src/Module/Admin/Blocklist/Contact.php:68 +msgid "No remote contact is blocked from this node." +msgstr "No remote contact is blocked from this node." + +#: src/Module/Admin/Blocklist/Contact.php:70 +msgid "Blocked Remote Contacts" +msgstr "Blocked remote contacts" + +#: src/Module/Admin/Blocklist/Contact.php:71 +msgid "Block New Remote Contact" +msgstr "Block new remote contact" + +#: src/Module/Admin/Blocklist/Contact.php:72 +msgid "Photo" +msgstr "Photo" + +#: src/Module/Admin/Blocklist/Contact.php:80 +#, php-format +msgid "%s total blocked contact" +msgid_plural "%s total blocked contacts" +msgstr[0] "%s total blocked contact" +msgstr[1] "%s total blocked contacts" + +#: src/Module/Admin/Blocklist/Contact.php:82 +msgid "URL of the remote contact to block." +msgstr "URL of the remote contact to block." + +#: src/Module/Admin/Blocklist/Server.php:31 +msgid "Server added to blocklist." +msgstr "Server added to blocklist." + +#: src/Module/Admin/Blocklist/Server.php:47 +msgid "Site blocklist updated." +msgstr "Site blocklist updated." + +#: src/Module/Admin/Blocklist/Server.php:64 +msgid "The blocked domain" +msgstr "Blocked domain" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:84 src/Module/Friendica.php:60 +msgid "Reason for the block" +msgstr "Reason for the block" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "The reason why you blocked this domain." +msgstr "Reason why you blocked this domain." + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Delete domain" +msgstr "Delete domain" + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Check to delete this entry from the blocklist" +msgstr "Check to delete this entry from the blocklist" + +#: src/Module/Admin/Blocklist/Server.php:74 src/Module/BaseAdminModule.php:94 +msgid "Server Blocklist" +msgstr "Server blocklist" + +#: src/Module/Admin/Blocklist/Server.php:75 +msgid "" +"This page can be used to define a black list of servers from the federated " +"network that are not allowed to interact with your node. For all entered " +"domains you should also give a reason why you have blocked the remote " +"server." +msgstr "This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server." + +#: src/Module/Admin/Blocklist/Server.php:76 +msgid "" +"The list of blocked servers will be made publically available on the " +"/friendica page so that your users and people investigating communication " +"problems can find the reason easily." +msgstr "The list of blocked servers will publicly available on the Friendica page so that your users and people investigating communication problems can readily find the reason." + +#: src/Module/Admin/Blocklist/Server.php:77 +msgid "Add new entry to block list" +msgstr "Add new entry to block list" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "Server Domain" +msgstr "Server domain" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "" +"The domain of the new server to add to the block list. Do not include the " +"protocol." +msgstr "The domain of the new server to add to the block list. Do not include the protocol." + +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "Block reason" +msgstr "Block reason" + +#: src/Module/Admin/Blocklist/Server.php:80 +msgid "Add Entry" +msgstr "Add entry" + +#: src/Module/Admin/Blocklist/Server.php:81 +msgid "Save changes to the blocklist" +msgstr "Save changes to the blocklist" + +#: src/Module/Admin/Blocklist/Server.php:82 +msgid "Current Entries in the Blocklist" +msgstr "Current entries in the blocklist" + +#: src/Module/Admin/Blocklist/Server.php:85 +msgid "Delete entry from blocklist" +msgstr "Delete entry from blocklist" + +#: src/Module/Admin/Blocklist/Server.php:88 +msgid "Delete entry from blocklist?" +msgstr "Delete entry from blocklist?" + +#: src/Module/Admin/DBSync.php:32 +msgid "Update has been marked successful" +msgstr "Update has been marked successful" + +#: src/Module/Admin/DBSync.php:42 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "Database structure update %s was successfully applied." + +#: src/Module/Admin/DBSync.php:46 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "Executing of database structure update %s failed with error: %s" + +#: src/Module/Admin/DBSync.php:63 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "Executing %s failed with error: %s" + +#: src/Module/Admin/DBSync.php:65 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Update %s was successfully applied." + +#: src/Module/Admin/DBSync.php:68 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Update %s did not return a status. Unknown if it succeeded." + +#: src/Module/Admin/DBSync.php:71 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "There was no additional update function %s that needed to be called." + +#: src/Module/Admin/DBSync.php:91 +msgid "No failed updates." +msgstr "No failed updates." + +#: src/Module/Admin/DBSync.php:92 +msgid "Check database structure" +msgstr "Check database structure" + +#: src/Module/Admin/DBSync.php:97 +msgid "Failed Updates" +msgstr "Failed updates" + +#: src/Module/Admin/DBSync.php:98 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "This does not include updates prior to 1139, which did not return a status." + +#: src/Module/Admin/DBSync.php:99 +msgid "Mark success (if update was manually applied)" +msgstr "Mark success (if update was manually applied)" + +#: src/Module/Admin/DBSync.php:100 +msgid "Attempt to execute this update step automatically" +msgstr "Attempt to execute this update step automatically" + +#: src/Module/Admin/Features.php:59 +#, php-format +msgid "Lock feature %s" +msgstr "Lock feature %s" + +#: src/Module/Admin/Features.php:67 +msgid "Manage Additional Features" +msgstr "Manage additional features" + +#: src/Module/Admin/Federation.php:76 +msgid "unknown" +msgstr "unknown" + +#: src/Module/Admin/Federation.php:179 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "This page offers you the amount of known part of the federated social network your Friendica node is part of. These numbers are not complete and only reflect the part of the network your node is aware of." + +#: src/Module/Admin/Federation.php:180 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here." + +#: src/Module/Admin/Federation.php:186 src/Module/BaseAdminModule.php:77 +msgid "Federation Statistics" +msgstr "Federation statistics" + +#: src/Module/Admin/Federation.php:192 +#, php-format +msgid "" +"Currently this node is aware of %d nodes with %d registered users from the " +"following platforms:" +msgstr "Currently this node is aware of %d nodes with %d registered users from the following platforms:" + +#: src/Module/Admin/Item/Delete.php:35 +msgid "Item marked for deletion." +msgstr "Item marked for deletion." + +#: src/Module/Admin/Item/Delete.php:47 src/Module/BaseAdminModule.php:95 +msgid "Delete Item" +msgstr "Delete item" + +#: src/Module/Admin/Item/Delete.php:48 +msgid "Delete this Item" +msgstr "Delete" + +#: src/Module/Admin/Item/Delete.php:49 +msgid "" +"On this page you can delete an item from your node. If the item is a top " +"level posting, the entire thread will be deleted." +msgstr "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted." + +#: src/Module/Admin/Item/Delete.php:50 +msgid "" +"You need to know the GUID of the item. You can find it e.g. by looking at " +"the display URL. The last part of http://example.com/display/123456 is the " +"GUID, here 123456." +msgstr "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456." + +#: src/Module/Admin/Item/Delete.php:51 +msgid "GUID" +msgstr "GUID" + +#: src/Module/Admin/Item/Delete.php:51 +msgid "The GUID of the item you want to delete." +msgstr "GUID of item to be deleted." + +#: src/Module/Admin/Item/Source.php:46 src/Module/Itemsource.php:46 +msgid "Item Guid" +msgstr "Item Guid" + +#: src/Module/Admin/Logs/Settings.php:30 +msgid "Log settings updated." +msgstr "Log settings updated." + +#: src/Module/Admin/Logs/Settings.php:49 +msgid "PHP log currently enabled." +msgstr "PHP log currently enabled." + +#: src/Module/Admin/Logs/Settings.php:51 +msgid "PHP log currently disabled." +msgstr "PHP log currently disabled." + +#: src/Module/Admin/Logs/Settings.php:58 src/Module/BaseAdminModule.php:97 +#: src/Module/BaseAdminModule.php:98 +msgid "Logs" +msgstr "Logs" + +#: src/Module/Admin/Logs/Settings.php:60 +msgid "Clear" +msgstr "Clear" + +#: src/Module/Admin/Logs/Settings.php:64 +msgid "Enable Debugging" +msgstr "Enable debugging" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "Log file" +msgstr "Log file" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Must be writable by web server and relative to your Friendica top-level directory." + +#: src/Module/Admin/Logs/Settings.php:66 +msgid "Log level" +msgstr "Log level" + +#: src/Module/Admin/Logs/Settings.php:68 +msgid "PHP logging" +msgstr "PHP logging" + +#: src/Module/Admin/Logs/Settings.php:69 +msgid "" +"To temporarily enable logging of PHP errors and warnings you can prepend the" +" following to the index.php file of your installation. The filename set in " +"the 'error_log' line is relative to the friendica top-level directory and " +"must be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them." + +#: src/Module/Admin/Logs/View.php:22 +#, php-format +msgid "" +"Error trying to open %1$s log file.\\r\\n
    Check to see " +"if file %1$s exist and is readable." +msgstr "Error trying to open %1$s log file.\\r\\n
    Check to see if file %1$s exist and is readable." + +#: src/Module/Admin/Logs/View.php:26 +#, php-format +msgid "" +"Couldn't open %1$s log file.\\r\\n
    Check to see if file" +" %1$s is readable." +msgstr "Couldn't open %1$s log file.\\r\\n
    Check if file %1$s is readable." + +#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99 +msgid "View Logs" +msgstr "View logs" + +#: src/Module/Admin/Queue.php:34 +msgid "Inspect Deferred Worker Queue" +msgstr "Inspect Deferred Worker Queue" + +#: src/Module/Admin/Queue.php:35 +msgid "" +"This page lists the deferred worker jobs. This are jobs that couldn't be " +"executed at the first time." +msgstr "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed." + +#: src/Module/Admin/Queue.php:38 +msgid "Inspect Worker Queue" +msgstr "Inspect Worker Queue" + +#: src/Module/Admin/Queue.php:39 +msgid "" +"This page lists the currently queued worker jobs. These jobs are handled by " +"the worker cronjob you've set up during install." +msgstr "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install." + +#: src/Module/Admin/Queue.php:59 +msgid "ID" +msgstr "ID" + +#: src/Module/Admin/Queue.php:60 +msgid "Job Parameters" +msgstr "Job Parameters" + +#: src/Module/Admin/Queue.php:61 +msgid "Created" +msgstr "Created" + +#: src/Module/Admin/Queue.php:62 +msgid "Priority" +msgstr "Priority" + +#: src/Module/Admin/Site.php:49 +msgid "Can not parse base url. Must have at least ://" +msgstr "Can not parse base URL. Must have at least ://" + +#: src/Module/Admin/Site.php:235 +msgid "Invalid storage backend setting value." +msgstr "Invalid storage backend settings." + +#: src/Module/Admin/Site.php:412 +msgid "Site settings updated." +msgstr "Site settings updated." + +#: src/Module/Admin/Site.php:464 +msgid "No community page for local users" +msgstr "No community page for local users" + +#: src/Module/Admin/Site.php:465 +msgid "No community page" +msgstr "No community page" + +#: src/Module/Admin/Site.php:466 +msgid "Public postings from users of this site" +msgstr "Public postings from users of this site" + +#: src/Module/Admin/Site.php:467 +msgid "Public postings from the federated network" +msgstr "Public postings from the federated network" + +#: src/Module/Admin/Site.php:468 +msgid "Public postings from local users and the federated network" +msgstr "Public postings from local users and the federated network" + +#: src/Module/Admin/Site.php:472 src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:678 src/Module/Contact.php:549 +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Disabled" +msgstr "Disabled" + +#: src/Module/Admin/Site.php:473 src/Module/Admin/Users.php:278 +#: src/Module/Admin/Users.php:295 src/Module/BaseAdminModule.php:81 +msgid "Users" +msgstr "Users" + +#: src/Module/Admin/Site.php:474 +msgid "Users, Global Contacts" +msgstr "Users, Global Contacts" + +#: src/Module/Admin/Site.php:475 +msgid "Users, Global Contacts/fallback" +msgstr "Users, Global Contacts/fallback" + +#: src/Module/Admin/Site.php:479 +msgid "One month" +msgstr "One month" + +#: src/Module/Admin/Site.php:480 +msgid "Three months" +msgstr "Three months" + +#: src/Module/Admin/Site.php:481 +msgid "Half a year" +msgstr "Half a year" + +#: src/Module/Admin/Site.php:482 +msgid "One year" +msgstr "One a year" + +#: src/Module/Admin/Site.php:488 +msgid "Multi user instance" +msgstr "Multi user instance" + +#: src/Module/Admin/Site.php:510 +msgid "Closed" +msgstr "Closed" + +#: src/Module/Admin/Site.php:511 +msgid "Requires approval" +msgstr "Requires approval" + +#: src/Module/Admin/Site.php:512 +msgid "Open" +msgstr "Open" + +#: src/Module/Admin/Site.php:516 src/Module/Install.php:181 +msgid "No SSL policy, links will track page SSL state" +msgstr "No SSL policy, links will track page SSL state" + +#: src/Module/Admin/Site.php:517 src/Module/Install.php:182 +msgid "Force all links to use SSL" +msgstr "Force all links to use SSL" + +#: src/Module/Admin/Site.php:518 src/Module/Install.php:183 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Self-signed certificate, use SSL for local links only (discouraged)" + +#: src/Module/Admin/Site.php:522 +msgid "Don't check" +msgstr "Don't check" + +#: src/Module/Admin/Site.php:523 +msgid "check the stable version" +msgstr "check for stable version updates" + +#: src/Module/Admin/Site.php:524 +msgid "check the development version" +msgstr "check for development version updates" + +#: src/Module/Admin/Site.php:544 +msgid "Database (legacy)" +msgstr "Database (legacy)" + +#: src/Module/Admin/Site.php:569 src/Module/BaseAdminModule.php:80 +msgid "Site" +msgstr "Site" + +#: src/Module/Admin/Site.php:571 +msgid "Republish users to directory" +msgstr "Republish users to directory" + +#: src/Module/Admin/Site.php:572 src/Module/Register.php:121 +msgid "Registration" +msgstr "Join this Friendica Node Today" + +#: src/Module/Admin/Site.php:573 +msgid "File upload" +msgstr "File upload" + +#: src/Module/Admin/Site.php:574 +msgid "Policies" +msgstr "Policies" + +#: src/Module/Admin/Site.php:576 +msgid "Auto Discovered Contact Directory" +msgstr "Auto-discovered contact directory" + +#: src/Module/Admin/Site.php:577 +msgid "Performance" +msgstr "Performance" + +#: src/Module/Admin/Site.php:578 +msgid "Worker" +msgstr "Worker" + +#: src/Module/Admin/Site.php:579 +msgid "Message Relay" +msgstr "Message relay" + +#: src/Module/Admin/Site.php:580 +msgid "Relocate Instance" +msgstr "Relocate Instance" + +#: src/Module/Admin/Site.php:581 +msgid "Warning! Advanced function. Could make this server unreachable." +msgstr "Warning! Advanced function that could make this server unreachable." + +#: src/Module/Admin/Site.php:585 +msgid "Site name" +msgstr "Site name" + +#: src/Module/Admin/Site.php:586 +msgid "Sender Email" +msgstr "Sender email" + +#: src/Module/Admin/Site.php:586 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "The email address your server shall use to send notification emails from." + +#: src/Module/Admin/Site.php:587 +msgid "Banner/Logo" +msgstr "Banner/Logo" + +#: src/Module/Admin/Site.php:588 +msgid "Shortcut icon" +msgstr "Shortcut icon" + +#: src/Module/Admin/Site.php:588 +msgid "Link to an icon that will be used for browsers." +msgstr "Link to an icon that will be used for browsers." + +#: src/Module/Admin/Site.php:589 +msgid "Touch icon" +msgstr "Touch icon" + +#: src/Module/Admin/Site.php:589 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Link to an icon that will be used for tablets and mobiles." + +#: src/Module/Admin/Site.php:590 +msgid "Additional Info" +msgstr "Additional Info" + +#: src/Module/Admin/Site.php:590 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/servers." +msgstr "For public servers: You can add additional information here that will be listed at %s/servers." + +#: src/Module/Admin/Site.php:591 +msgid "System language" +msgstr "System language" + +#: src/Module/Admin/Site.php:592 +msgid "System theme" +msgstr "System theme" + +#: src/Module/Admin/Site.php:592 +msgid "" +"Default system theme - may be over-ridden by user profiles - Change default theme settings" +msgstr "Default system theme - may be over-ridden by user profiles - Change default theme settings" + +#: src/Module/Admin/Site.php:593 +msgid "Mobile system theme" +msgstr "Mobile system theme" + +#: src/Module/Admin/Site.php:593 +msgid "Theme for mobile devices" +msgstr "Theme for mobile devices" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:191 +msgid "SSL link policy" +msgstr "SSL link policy" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:193 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Determines whether generated links should be forced to use SSL" + +#: src/Module/Admin/Site.php:595 +msgid "Force SSL" +msgstr "Force SSL" + +#: src/Module/Admin/Site.php:595 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops." + +#: src/Module/Admin/Site.php:596 +msgid "Hide help entry from navigation menu" +msgstr "Hide help entry from navigation menu" + +#: src/Module/Admin/Site.php:596 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL." + +#: src/Module/Admin/Site.php:597 +msgid "Single user instance" +msgstr "Single user instance" + +#: src/Module/Admin/Site.php:597 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Make this instance multi-user or single-user for the named user" + +#: src/Module/Admin/Site.php:599 +msgid "File storage backend" +msgstr "File storage backend" + +#: src/Module/Admin/Site.php:599 +msgid "" +"The backend used to store uploaded data. If you change the storage backend, " +"you can manually move the existing files. If you do not do so, the files " +"uploaded before the change will still be available at the old backend. " +"Please see the settings documentation" +" for more information about the choices and the moving procedure." +msgstr "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you don't do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure." + +#: src/Module/Admin/Site.php:601 +msgid "Maximum image size" +msgstr "Maximum image size" + +#: src/Module/Admin/Site.php:601 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Maximum size in bytes of uploaded images. Default is 0, which means no limits." + +#: src/Module/Admin/Site.php:602 +msgid "Maximum image length" +msgstr "Maximum image length" + +#: src/Module/Admin/Site.php:602 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits." + +#: src/Module/Admin/Site.php:603 +msgid "JPEG image quality" +msgstr "JPEG image quality" + +#: src/Module/Admin/Site.php:603 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is the original quality level." + +#: src/Module/Admin/Site.php:605 +msgid "Register policy" +msgstr "Registration policy" + +#: src/Module/Admin/Site.php:606 +msgid "Maximum Daily Registrations" +msgstr "Maximum daily registrations" + +#: src/Module/Admin/Site.php:606 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval." + +#: src/Module/Admin/Site.php:607 +msgid "Register text" +msgstr "Registration text" + +#: src/Module/Admin/Site.php:607 +msgid "" +"Will be displayed prominently on the registration page. You can use BBCode " +"here." +msgstr "Will be displayed prominently on the registration page. You may use BBCode here." + +#: src/Module/Admin/Site.php:608 +msgid "Forbidden Nicknames" +msgstr "Forbidden Nicknames" + +#: src/Module/Admin/Site.php:608 +msgid "" +"Comma separated list of nicknames that are forbidden from registration. " +"Preset is a list of role names according RFC 2142." +msgstr "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142." + +#: src/Module/Admin/Site.php:609 +msgid "Accounts abandoned after x days" +msgstr "Accounts abandoned after so many days" + +#: src/Module/Admin/Site.php:609 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit." + +#: src/Module/Admin/Site.php:610 +msgid "Allowed friend domains" +msgstr "Allowed friend domains" + +#: src/Module/Admin/Site.php:610 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains" + +#: src/Module/Admin/Site.php:611 +msgid "Allowed email domains" +msgstr "Allowed email domains" + +#: src/Module/Admin/Site.php:611 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains" + +#: src/Module/Admin/Site.php:612 +msgid "No OEmbed rich content" +msgstr "No OEmbed rich content" + +#: src/Module/Admin/Site.php:612 +msgid "" +"Don't show the rich content (e.g. embedded PDF), except from the domains " +"listed below." +msgstr "Don't show rich content (e.g. embedded PDF), except from the domains listed below." + +#: src/Module/Admin/Site.php:613 +msgid "Allowed OEmbed domains" +msgstr "Allowed OEmbed domains" + +#: src/Module/Admin/Site.php:613 +msgid "" +"Comma separated list of domains which oembed content is allowed to be " +"displayed. Wildcards are accepted." +msgstr "Comma separated list of domains from where OEmbed content is allowed. Wildcards are possible." + +#: src/Module/Admin/Site.php:614 +msgid "Block public" +msgstr "Block public" + +#: src/Module/Admin/Site.php:614 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Block public access to all otherwise public personal pages on this site, except for local users when logged in." + +#: src/Module/Admin/Site.php:615 +msgid "Force publish" +msgstr "Mandatory directory listing" + +#: src/Module/Admin/Site.php:615 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Force all profiles on this site to be listed in the site directory." + +#: src/Module/Admin/Site.php:615 +msgid "Enabling this may violate privacy laws like the GDPR" +msgstr "Enabling this may violate privacy laws like the GDPR" + +#: src/Module/Admin/Site.php:616 +msgid "Global directory URL" +msgstr "Global directory URL" + +#: src/Module/Admin/Site.php:616 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "URL to the global directory: If this is not set, the global directory is completely unavailable to the application." + +#: src/Module/Admin/Site.php:617 +msgid "Private posts by default for new users" +msgstr "Private posts by default for new users" + +#: src/Module/Admin/Site.php:617 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Set default post permissions for all new members to the default privacy group rather than public." + +#: src/Module/Admin/Site.php:618 +msgid "Don't include post content in email notifications" +msgstr "Don't include post content in email notifications" + +#: src/Module/Admin/Site.php:618 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure." + +#: src/Module/Admin/Site.php:619 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Disallow public access to addons listed in the apps menu." + +#: src/Module/Admin/Site.php:619 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Checking this box will restrict addons listed in the apps menu to members only." + +#: src/Module/Admin/Site.php:620 +msgid "Don't embed private images in posts" +msgstr "Don't embed private images in posts" + +#: src/Module/Admin/Site.php:620 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while." + +#: src/Module/Admin/Site.php:621 +msgid "Explicit Content" +msgstr "Explicit Content" + +#: src/Module/Admin/Site.php:621 +msgid "" +"Set this to announce that your node is used mostly for explicit content that" +" might not be suited for minors. This information will be published in the " +"node information and might be used, e.g. by the global directory, to filter " +"your node from listings of nodes to join. Additionally a note about this " +"will be shown at the user registration page." +msgstr "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page." + +#: src/Module/Admin/Site.php:622 +msgid "Allow Users to set remote_self" +msgstr "Allow users to set \"Remote self\"" + +#: src/Module/Admin/Site.php:622 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream." + +#: src/Module/Admin/Site.php:623 +msgid "Block multiple registrations" +msgstr "Block multiple registrations" + +#: src/Module/Admin/Site.php:623 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Disallow users to sign up for additional accounts." + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID" +msgstr "Disable OpenID" + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID support for registration and logins." +msgstr "Disable OpenID support for registration and logins." + +#: src/Module/Admin/Site.php:625 +msgid "No Fullname check" +msgstr "No full name check" + +#: src/Module/Admin/Site.php:625 +msgid "" +"Allow users to register without a space between the first name and the last " +"name in their full name." +msgstr "Allow users to register without a space between the first name and the last name in their full name." + +#: src/Module/Admin/Site.php:626 +msgid "Community pages for visitors" +msgstr "Community pages for visitors" + +#: src/Module/Admin/Site.php:626 +msgid "" +"Which community pages should be available for visitors. Local users always " +"see both pages." +msgstr "Community pages that should be available for visitors. Local users always see both pages." + +#: src/Module/Admin/Site.php:627 +msgid "Posts per user on community page" +msgstr "Posts per user on community page" + +#: src/Module/Admin/Site.php:627 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"\"Global Community\")" +msgstr "Maximum number of posts per user on the community page. (Not valid for \"Global Community\")" + +#: src/Module/Admin/Site.php:628 +msgid "Disable OStatus support" +msgstr "Disable OStatus support" + +#: src/Module/Admin/Site.php:628 +msgid "" +"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed." + +#: src/Module/Admin/Site.php:629 +msgid "Only import OStatus/ActivityPub threads from our contacts" +msgstr "Only import OStatus/ActivityPub threads from our contacts" + +#: src/Module/Admin/Site.php:629 +msgid "" +"Normally we import every content from our OStatus and ActivityPub contacts. " +"With this option we only store threads that are started by a contact that is" +" known on our system." +msgstr "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system." + +#: src/Module/Admin/Site.php:630 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "OStatus support can only be enabled if threading is enabled." + +#: src/Module/Admin/Site.php:632 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "diaspora* support can't be enabled because Friendica was installed into a sub directory." + +#: src/Module/Admin/Site.php:633 +msgid "Enable Diaspora support" +msgstr "Enable diaspora* support" + +#: src/Module/Admin/Site.php:633 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Provide built-in diaspora* network compatibility." + +#: src/Module/Admin/Site.php:634 +msgid "Only allow Friendica contacts" +msgstr "Only allow Friendica contacts" + +#: src/Module/Admin/Site.php:634 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled." + +#: src/Module/Admin/Site.php:635 +msgid "Verify SSL" +msgstr "Verify SSL" + +#: src/Module/Admin/Site.php:635 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites." + +#: src/Module/Admin/Site.php:636 +msgid "Proxy user" +msgstr "Proxy user" + +#: src/Module/Admin/Site.php:637 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: src/Module/Admin/Site.php:638 +msgid "Network timeout" +msgstr "Network timeout" + +#: src/Module/Admin/Site.php:638 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Value is in seconds. Set to 0 for unlimited (not recommended)." + +#: src/Module/Admin/Site.php:639 +msgid "Maximum Load Average" +msgstr "Maximum load average" + +#: src/Module/Admin/Site.php:639 +#, php-format +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default %d." +msgstr "Maximum system load before delivery and poll processes are deferred - default %d." + +#: src/Module/Admin/Site.php:640 +msgid "Maximum Load Average (Frontend)" +msgstr "Maximum load average (frontend)" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Maximum system load before the frontend quits service (default 50)." + +#: src/Module/Admin/Site.php:641 +msgid "Minimal Memory" +msgstr "Minimal memory" + +#: src/Module/Admin/Site.php:641 +msgid "" +"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " +"default 0 (deactivated)." +msgstr "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)." + +#: src/Module/Admin/Site.php:642 +msgid "Maximum table size for optimization" +msgstr "Maximum table size for optimization" + +#: src/Module/Admin/Site.php:642 +msgid "" +"Maximum table size (in MB) for the automatic optimization. Enter -1 to " +"disable it." +msgstr "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it." + +#: src/Module/Admin/Site.php:643 +msgid "Minimum level of fragmentation" +msgstr "Minimum level of fragmentation" + +#: src/Module/Admin/Site.php:643 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Minimum fragmentation level to start the automatic optimization (default 30%)." + +#: src/Module/Admin/Site.php:645 +msgid "Periodical check of global contacts" +msgstr "Periodical check of global contacts" + +#: src/Module/Admin/Site.php:645 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers." + +#: src/Module/Admin/Site.php:646 +msgid "Days between requery" +msgstr "Days between enquiry" + +#: src/Module/Admin/Site.php:646 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Number of days after which a server is required check contacts." + +#: src/Module/Admin/Site.php:647 +msgid "Discover contacts from other servers" +msgstr "Discover contacts from other servers" + +#: src/Module/Admin/Site.php:647 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"\"Users\": the users on the remote system, \"Global Contacts\": active " +"contacts that are known on the system. The fallback is meant for Redmatrix " +"servers and older friendica servers, where global contacts weren't " +"available. The fallback increases the server load, so the recommended " +"setting is \"Users, Global Contacts\"." +msgstr "Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older Friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"." + +#: src/Module/Admin/Site.php:648 +msgid "Timeframe for fetching global contacts" +msgstr "Time-frame for fetching global contacts" + +#: src/Module/Admin/Site.php:648 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers." + +#: src/Module/Admin/Site.php:649 +msgid "Search the local directory" +msgstr "Search the local directory" + +#: src/Module/Admin/Site.php:649 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated." + +#: src/Module/Admin/Site.php:651 +msgid "Publish server information" +msgstr "Publish server information" + +#: src/Module/Admin/Site.php:651 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." + +#: src/Module/Admin/Site.php:653 +msgid "Check upstream version" +msgstr "Check upstream version" + +#: src/Module/Admin/Site.php:653 +msgid "" +"Enables checking for new Friendica versions at github. If there is a new " +"version, you will be informed in the admin panel overview." +msgstr "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview." + +#: src/Module/Admin/Site.php:654 +msgid "Suppress Tags" +msgstr "Suppress tags" + +#: src/Module/Admin/Site.php:654 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Suppress listed hashtags at the end of posts." + +#: src/Module/Admin/Site.php:655 +msgid "Clean database" +msgstr "Clean database" + +#: src/Module/Admin/Site.php:655 +msgid "" +"Remove old remote items, orphaned database records and old content from some" +" other helper tables." +msgstr "Remove old remote items, orphaned database records and old content from some other helper tables." + +#: src/Module/Admin/Site.php:656 +msgid "Lifespan of remote items" +msgstr "Lifespan of remote items" + +#: src/Module/Admin/Site.php:656 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"remote items will be deleted. Own items, and marked or filed items are " +"always kept. 0 disables this behaviour." +msgstr "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour." + +#: src/Module/Admin/Site.php:657 +msgid "Lifespan of unclaimed items" +msgstr "Lifespan of unclaimed items" + +#: src/Module/Admin/Site.php:657 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"unclaimed remote items (mostly content from the relay) will be deleted. " +"Default value is 90 days. Defaults to the general lifespan value of remote " +"items if set to 0." +msgstr "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0." + +#: src/Module/Admin/Site.php:658 +msgid "Lifespan of raw conversation data" +msgstr "Lifespan of raw conversation data" + +#: src/Module/Admin/Site.php:658 +msgid "" +"The conversation data is used for ActivityPub and OStatus, as well as for " +"debug purposes. It should be safe to remove it after 14 days, default is 90 " +"days." +msgstr "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days." + +#: src/Module/Admin/Site.php:659 +msgid "Path to item cache" +msgstr "Path to item cache" + +#: src/Module/Admin/Site.php:659 +msgid "The item caches buffers generated bbcode and external images." +msgstr "The item caches buffers generated bbcode and external images." + +#: src/Module/Admin/Site.php:660 +msgid "Cache duration in seconds" +msgstr "Cache duration in seconds" + +#: src/Module/Admin/Site.php:660 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)" + +#: src/Module/Admin/Site.php:661 +msgid "Maximum numbers of comments per post" +msgstr "Maximum numbers of comments per post" + +#: src/Module/Admin/Site.php:661 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "How many comments should be shown for each post? (Default 100)" + +#: src/Module/Admin/Site.php:662 +msgid "Temp path" +msgstr "Temp path" + +#: src/Module/Admin/Site.php:662 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "Enter a different tmp path, if your system restricts the webserver's access to the system temp path." + +#: src/Module/Admin/Site.php:663 +msgid "Disable picture proxy" +msgstr "Disable picture proxy" + +#: src/Module/Admin/Site.php:663 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwidth." +msgstr "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth." + +#: src/Module/Admin/Site.php:664 +msgid "Only search in tags" +msgstr "Only search in tags" + +#: src/Module/Admin/Site.php:664 +msgid "On large systems the text search can slow down the system extremely." +msgstr "On large systems the text search can slow down the system significantly." + +#: src/Module/Admin/Site.php:666 +msgid "New base url" +msgstr "New base URL" + +#: src/Module/Admin/Site.php:666 +msgid "" +"Change base url for this server. Sends relocate message to all Friendica and" +" Diaspora* contacts of all users." +msgstr "Change base url for this server. Sends relocate message to all Friendica and diaspora* contacts of all users." + +#: src/Module/Admin/Site.php:668 +msgid "RINO Encryption" +msgstr "RINO Encryption" + +#: src/Module/Admin/Site.php:668 +msgid "Encryption layer between nodes." +msgstr "Encryption layer between nodes." + +#: src/Module/Admin/Site.php:668 +msgid "Enabled" +msgstr "Enabled" + +#: src/Module/Admin/Site.php:670 +msgid "Maximum number of parallel workers" +msgstr "Maximum number of parallel workers" + +#: src/Module/Admin/Site.php:670 +#, php-format +msgid "" +"On shared hosters set this to %d. On larger systems, values of %d are great." +" Default value is %d." +msgstr "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d." + +#: src/Module/Admin/Site.php:671 +msgid "Don't use \"proc_open\" with the worker" +msgstr "Don't use \"proc_open\" with the worker" + +#: src/Module/Admin/Site.php:671 +msgid "" +"Enable this if your system doesn't allow the use of \"proc_open\". This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of worker calls in your crontab." +msgstr "Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab." + +#: src/Module/Admin/Site.php:672 +msgid "Enable fastlane" +msgstr "Enable fast-lane" + +#: src/Module/Admin/Site.php:672 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority." + +#: src/Module/Admin/Site.php:673 +msgid "Enable frontend worker" +msgstr "Enable frontend worker" + +#: src/Module/Admin/Site.php:673 +#, php-format +msgid "" +"When enabled the Worker process is triggered when backend access is " +"performed (e.g. messages being delivered). On smaller sites you might want " +"to call %s/worker on a regular basis via an external cron job. You should " +"only enable this option if you cannot utilize cron/scheduled jobs on your " +"server." +msgstr "When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server." + +#: src/Module/Admin/Site.php:675 +msgid "Subscribe to relay" +msgstr "Subscribe to relay" + +#: src/Module/Admin/Site.php:675 +msgid "" +"Enables the receiving of public posts from the relay. They will be included " +"in the search, subscribed tags and on the global community page." +msgstr "Receive public posts from the specified relay. Post will be included in searches, subscribed tags and on the global community page." + +#: src/Module/Admin/Site.php:676 +msgid "Relay server" +msgstr "Relay server" + +#: src/Module/Admin/Site.php:676 +msgid "" +"Address of the relay server where public posts should be send to. For " +"example https://relay.diasp.org" +msgstr "Address of the relay server where public posts should be send to. For example https://relay.diasp.org" + +#: src/Module/Admin/Site.php:677 +msgid "Direct relay transfer" +msgstr "Direct relay transfer" + +#: src/Module/Admin/Site.php:677 +msgid "" +"Enables the direct transfer to other servers without using the relay servers" +msgstr "Enables direct transfer to other servers without using a relay server." + +#: src/Module/Admin/Site.php:678 +msgid "Relay scope" +msgstr "Relay scope" + +#: src/Module/Admin/Site.php:678 +msgid "" +"Can be \"all\" or \"tags\". \"all\" means that every public post should be " +"received. \"tags\" means that only posts with selected tags should be " +"received." +msgstr "Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received." + +#: src/Module/Admin/Site.php:678 +msgid "all" +msgstr "all" + +#: src/Module/Admin/Site.php:678 +msgid "tags" +msgstr "tags" + +#: src/Module/Admin/Site.php:679 +msgid "Server tags" +msgstr "Server tags" + +#: src/Module/Admin/Site.php:679 +msgid "Comma separated list of tags for the \"tags\" subscription." +msgstr "Comma separated list of tags for the \"tags\" subscription." + +#: src/Module/Admin/Site.php:680 +msgid "Allow user tags" +msgstr "Allow user tags" + +#: src/Module/Admin/Site.php:680 +msgid "" +"If enabled, the tags from the saved searches will used for the \"tags\" " +"subscription in addition to the \"relay_server_tags\"." +msgstr "If enabled, the tags from the saved searches will be used for the \"tags\" subscription in addition to the \"relay_server_tags\"." + +#: src/Module/Admin/Site.php:683 +msgid "Start Relocation" +msgstr "Start Relocation" + +#: src/Module/Admin/Summary.php:30 +#, php-format +msgid "" +"Your DB still runs with MyISAM tables. You should change the engine type to " +"InnoDB. As Friendica will use InnoDB only features in the future, you should" +" change this! See here for a guide that may be helpful " +"converting the table engines. You may also use the command php " +"bin/console.php dbstructure toinnodb of your Friendica installation for" +" an automatic conversion.
    " +msgstr "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    " + +#: src/Module/Admin/Summary.php:38 +#, php-format +msgid "" +"There is a new version of Friendica available for download. Your current " +"version is %1$s, upstream version is %2$s" +msgstr "A new Friendica version is available now. Your current version is %1$s, upstream version is %2$s" + +#: src/Module/Admin/Summary.php:47 +msgid "" +"The database update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear." +msgstr "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear." + +#: src/Module/Admin/Summary.php:51 +msgid "" +"The last update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear. (Some of the errors are possibly inside the logfile.)" +msgstr "The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that may appear at the standard output and logfile." + +#: src/Module/Admin/Summary.php:56 +msgid "The worker was never executed. Please check your database structure!" +msgstr "The worker process has never been executed. Please check your database structure!" + +#: src/Module/Admin/Summary.php:58 +#, php-format +msgid "" +"The last worker execution was on %s UTC. This is older than one hour. Please" +" check your crontab settings." +msgstr "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings." + +#: src/Module/Admin/Summary.php:63 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +".htconfig.php. See the Config help page for " +"help with the transition." +msgstr "Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your configuration from .htconfig.php. See the configuration help page for help with the transition." + +#: src/Module/Admin/Summary.php:67 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +"config/local.ini.php. See the Config help " +"page for help with the transition." +msgstr "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition." + +#: src/Module/Admin/Summary.php:73 +#, php-format +msgid "" +"%s is not reachable on your system. This is a severe " +"configuration issue that prevents server to server communication. See the installation page for help." +msgstr "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help." + +#: src/Module/Admin/Summary.php:89 +#, php-format +msgid "" +"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the" +" system.basepath from your db to avoid differences." +msgstr "The system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences." + +#: src/Module/Admin/Summary.php:97 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is wrong and the config file '%s' " +"isn't used." +msgstr "The current system.basepath '%s' is wrong and the config file '%s' isn't used." + +#: src/Module/Admin/Summary.php:105 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is not equal to the config file " +"'%s'. Please fix your configuration." +msgstr "The current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration." + +#: src/Module/Admin/Summary.php:112 +msgid "Normal Account" +msgstr "Standard account" + +#: src/Module/Admin/Summary.php:113 +msgid "Automatic Follower Account" +msgstr "Automatic follower account" + +#: src/Module/Admin/Summary.php:114 +msgid "Public Forum Account" +msgstr "Public forum account" + +#: src/Module/Admin/Summary.php:115 +msgid "Automatic Friend Account" +msgstr "Automatic friend account" + +#: src/Module/Admin/Summary.php:116 +msgid "Blog Account" +msgstr "Blog account" + +#: src/Module/Admin/Summary.php:117 +msgid "Private Forum Account" +msgstr "Private forum account" + +#: src/Module/Admin/Summary.php:141 +msgid "Message queues" +msgstr "Message queues" + +#: src/Module/Admin/Summary.php:147 +msgid "Server Settings" +msgstr "Server Settings" + +#: src/Module/Admin/Summary.php:161 +msgid "Summary" +msgstr "Summary" + +#: src/Module/Admin/Summary.php:163 +msgid "Registered users" +msgstr "Registered users" + +#: src/Module/Admin/Summary.php:165 +msgid "Pending registrations" +msgstr "Pending registrations" + +#: src/Module/Admin/Summary.php:166 +msgid "Version" +msgstr "Version" + +#: src/Module/Admin/Summary.php:170 +msgid "Active addons" +msgstr "Active addons" + +#: src/Module/Admin/Themes/Details.php:32 src/Module/Admin/Themes/Embed.php:46 +msgid "Theme settings updated." +msgstr "Theme settings updated." + +#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:47 +#, php-format +msgid "Theme %s disabled." +msgstr "Theme %s disabled." + +#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:49 +#, php-format +msgid "Theme %s successfully enabled." +msgstr "Theme %s successfully enabled." + +#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:51 +#, php-format +msgid "Theme %s failed to install." +msgstr "Theme %s failed to install." + +#: src/Module/Admin/Themes/Details.php:97 +msgid "Screenshot" +msgstr "Screenshot" + +#: src/Module/Admin/Themes/Details.php:105 +#: src/Module/Admin/Themes/Index.php:94 src/Module/BaseAdminModule.php:83 +msgid "Themes" +msgstr "Theme selection" + +#: src/Module/Admin/Themes/Embed.php:67 +msgid "Unknown theme." +msgstr "Unknown theme." + +#: src/Module/Admin/Themes/Index.php:96 +msgid "Reload active themes" +msgstr "Reload active themes" + +#: src/Module/Admin/Themes/Index.php:101 +#, php-format +msgid "No themes found on the system. They should be placed in %1$s" +msgstr "No themes found on the system. They should be placed in %1$s" + +#: src/Module/Admin/Themes/Index.php:102 +msgid "[Experimental]" +msgstr "[Experimental]" + +#: src/Module/Admin/Themes/Index.php:103 +msgid "[Unsupported]" +msgstr "[Unsupported]" + +#: src/Module/Admin/Tos.php:30 +msgid "The Terms of Service settings have been updated." +msgstr "The Terms of Service settings have been updated." + +#: src/Module/Admin/Tos.php:44 +msgid "Display Terms of Service" +msgstr "Display Terms of Service" + +#: src/Module/Admin/Tos.php:44 +msgid "" +"Enable the Terms of Service page. If this is enabled a link to the terms " +"will be added to the registration form and the general information page." +msgstr "Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page." + +#: src/Module/Admin/Tos.php:45 +msgid "Display Privacy Statement" +msgstr "Display Privacy Statement" + +#: src/Module/Admin/Tos.php:45 +#, php-format +msgid "" +"Show some informations regarding the needed information to operate the node " +"according e.g. to EU-GDPR." +msgstr "Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR." + +#: src/Module/Admin/Tos.php:46 +msgid "Privacy Statement Preview" +msgstr "Privacy Statement Preview" + +#: src/Module/Admin/Tos.php:48 +msgid "The Terms of Service" +msgstr "Terms of Service" + +#: src/Module/Admin/Tos.php:48 +msgid "" +"Enter the Terms of Service for your node here. You can use BBCode. Headers " +"of sections should be [h2] and below." +msgstr "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or lower." + +#: src/Module/Admin/Users.php:48 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThe administrator of %2$s has set up an account for you." + +#: src/Module/Admin/Users.php:51 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1$s\n\t\t\tLogin Name:\t\t%2$s\n\t\t\tPassword:\t\t%3$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n\n\t\t\tThank you and welcome to %4$s." + +#: src/Module/Admin/Users.php:96 +#, php-format +msgid "%s user blocked" +msgid_plural "%s users blocked" +msgstr[0] "%s user blocked" +msgstr[1] "%s users blocked" + +#: src/Module/Admin/Users.php:102 +#, php-format +msgid "%s user unblocked" +msgid_plural "%s users unblocked" +msgstr[0] "%s user unblocked" +msgstr[1] "%s users unblocked" + +#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160 +msgid "You can't remove yourself" +msgstr "You can't remove yourself" + +#: src/Module/Admin/Users.php:114 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s user deleted" +msgstr[1] "%s users deleted" + +#: src/Module/Admin/Users.php:158 +#, php-format +msgid "User \"%s\" deleted" +msgstr "User \"%s\" deleted" + +#: src/Module/Admin/Users.php:167 +#, php-format +msgid "User \"%s\" blocked" +msgstr "User \"%s\" blocked" + +#: src/Module/Admin/Users.php:173 +#, php-format +msgid "User \"%s\" unblocked" +msgstr "User \"%s\" unblocked" + +#: src/Module/Admin/Users.php:226 +msgid "Private Forum" +msgstr "Private Forum" + +#: src/Module/Admin/Users.php:233 +msgid "Relay" +msgstr "Relay" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Register date" +msgstr "Registration date" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last login" +msgstr "Last login" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last item" +msgstr "Last item" + +#: src/Module/Admin/Users.php:272 +msgid "Type" +msgstr "Type" + +#: src/Module/Admin/Users.php:279 +msgid "Add User" +msgstr "Add user" + +#: src/Module/Admin/Users.php:281 +msgid "User registrations waiting for confirm" +msgstr "User registrations awaiting confirmation" + +#: src/Module/Admin/Users.php:282 +msgid "User waiting for permanent deletion" +msgstr "User awaiting permanent deletion" + +#: src/Module/Admin/Users.php:283 +msgid "Request date" +msgstr "Request date" + +#: src/Module/Admin/Users.php:284 +msgid "No registrations." +msgstr "No registrations." + +#: src/Module/Admin/Users.php:285 +msgid "Note from the user" +msgstr "Note from the user" + +#: src/Module/Admin/Users.php:287 +msgid "Deny" +msgstr "Deny" + +#: src/Module/Admin/Users.php:290 +msgid "User blocked" +msgstr "User blocked" + +#: src/Module/Admin/Users.php:292 +msgid "Site admin" +msgstr "Site admin" + +#: src/Module/Admin/Users.php:293 +msgid "Account expired" +msgstr "Account expired" + +#: src/Module/Admin/Users.php:296 +msgid "New User" +msgstr "New user" + +#: src/Module/Admin/Users.php:297 +msgid "Permanent deletion" +msgstr "Permanent deletion" + +#: src/Module/Admin/Users.php:302 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Selected users will be deleted!\\n\\nEverything these users has posted on this site will be permanently deleted!\\n\\nAre you sure?" + +#: src/Module/Admin/Users.php:303 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?" + +#: src/Module/Admin/Users.php:313 +msgid "Name of the new user." +msgstr "Name of the new user." + +#: src/Module/Admin/Users.php:314 +msgid "Nickname" +msgstr "Nickname" + +#: src/Module/Admin/Users.php:314 +msgid "Nickname of the new user." +msgstr "Nickname of the new user." + +#: src/Module/Admin/Users.php:315 +msgid "Email address of the new user." +msgstr "Email address of the new user." + +#: src/Module/AllFriends.php:55 +msgid "No friends to display." +msgstr "No friends to display." + +#: src/Module/Apps.php:29 +msgid "No installed applications." +msgstr "No installed applications." + +#: src/Module/Apps.php:34 +msgid "Applications" +msgstr "Applications" + #: src/Module/Attach.php:36 src/Module/Attach.php:48 msgid "Item was not found." msgstr "Item was not found." +#: src/Module/Babel.php:31 +msgid "Source input" +msgstr "Source input" + +#: src/Module/Babel.php:37 +msgid "BBCode::toPlaintext" +msgstr "BBCode::toPlaintext" + +#: src/Module/Babel.php:43 +msgid "BBCode::convert (raw HTML)" +msgstr "BBCode::convert (raw HTML)" + +#: src/Module/Babel.php:48 +msgid "BBCode::convert" +msgstr "BBCode::convert" + +#: src/Module/Babel.php:54 +msgid "BBCode::convert => HTML::toBBCode" +msgstr "BBCode::convert => HTML::toBBCode" + +#: src/Module/Babel.php:60 +msgid "BBCode::toMarkdown" +msgstr "BBCode::toMarkdown" + +#: src/Module/Babel.php:66 +msgid "BBCode::toMarkdown => Markdown::convert" +msgstr "BBCode::toMarkdown => Markdown::convert" + +#: src/Module/Babel.php:72 +msgid "BBCode::toMarkdown => Markdown::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::toBBCode" + +#: src/Module/Babel.php:78 +msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" + +#: src/Module/Babel.php:89 +msgid "Item Body" +msgstr "Item Body" + +#: src/Module/Babel.php:93 +msgid "Item Tags" +msgstr "Item Tags" + +#: src/Module/Babel.php:100 +msgid "Source input (Diaspora format)" +msgstr "Source input (diaspora* format)" + +#: src/Module/Babel.php:106 +msgid "Markdown::convert (raw HTML)" +msgstr "Markdown::convert (raw HTML)" + +#: src/Module/Babel.php:111 +msgid "Markdown::convert" +msgstr "Markdown::convert" + +#: src/Module/Babel.php:117 +msgid "Markdown::toBBCode" +msgstr "Markdown::toBBCode" + +#: src/Module/Babel.php:124 +msgid "Raw HTML input" +msgstr "Raw HTML input" + +#: src/Module/Babel.php:129 +msgid "HTML Input" +msgstr "HTML input" + +#: src/Module/Babel.php:135 +msgid "HTML::toBBCode" +msgstr "HTML::toBBCode" + +#: src/Module/Babel.php:141 +msgid "HTML::toBBCode => BBCode::convert" +msgstr "HTML::toBBCode => BBCode::convert" + +#: src/Module/Babel.php:146 +msgid "HTML::toBBCode => BBCode::convert (raw HTML)" +msgstr "HTML::toBBCode => BBCode::convert (raw HTML)" + +#: src/Module/Babel.php:152 +msgid "HTML::toMarkdown" +msgstr "HTML::toMarkdown" + +#: src/Module/Babel.php:158 +msgid "HTML::toPlaintext" +msgstr "HTML::toPlaintext" + +#: src/Module/Babel.php:166 +msgid "Source text" +msgstr "Source text" + +#: src/Module/Babel.php:167 +msgid "BBCode" +msgstr "BBCode" + +#: src/Module/Babel.php:168 +msgid "Markdown" +msgstr "Markdown" + +#: src/Module/Babel.php:169 +msgid "HTML" +msgstr "HTML" + +#: src/Module/BaseAdminModule.php:76 +msgid "Overview" +msgstr "Overview" + +#: src/Module/BaseAdminModule.php:79 +msgid "Configuration" +msgstr "Configuration" + +#: src/Module/BaseAdminModule.php:87 +msgid "Database" +msgstr "Database" + +#: src/Module/BaseAdminModule.php:88 +msgid "DB updates" +msgstr "DB updates" + +#: src/Module/BaseAdminModule.php:89 +msgid "Inspect Deferred Workers" +msgstr "Inspect deferred workers" + +#: src/Module/BaseAdminModule.php:90 +msgid "Inspect worker Queue" +msgstr "Inspect worker queue" + +#: src/Module/BaseAdminModule.php:92 +msgid "Tools" +msgstr "Tools" + +#: src/Module/BaseAdminModule.php:93 +msgid "Contact Blocklist" +msgstr "Contact blocklist" + +#: src/Module/BaseAdminModule.php:101 +msgid "Diagnostics" +msgstr "Diagnostics" + +#: src/Module/BaseAdminModule.php:102 +msgid "PHP Info" +msgstr "PHP info" + +#: src/Module/BaseAdminModule.php:103 +msgid "probe address" +msgstr "Probe address" + +#: src/Module/BaseAdminModule.php:104 +msgid "check webfinger" +msgstr "Check webfinger" + +#: src/Module/BaseAdminModule.php:105 +msgid "Item Source" +msgstr "Item source" + +#: src/Module/BaseAdminModule.php:106 +msgid "Babel" +msgstr "Babel" + +#: src/Module/BaseAdminModule.php:115 +msgid "Addon Features" +msgstr "Addon features" + +#: src/Module/BaseAdminModule.php:116 +msgid "User registrations waiting for confirmation" +msgstr "User registrations awaiting confirmation" + +#: src/Module/Bookmarklet.php:35 +msgid "This page is missing a url parameter." +msgstr "This page is missing a URL parameter." + +#: src/Module/Bookmarklet.php:57 +msgid "The post was created" +msgstr "The post was created" + #: src/Module/Contact.php:166 #, php-format msgid "%d contact edited." @@ -8817,453 +8602,688 @@ msgid_plural "%d contacts edited." msgstr[0] "%d contact edited." msgstr[1] "%d contacts edited." -#: src/Module/Contact.php:191 src/Module/Contact.php:374 +#: src/Module/Contact.php:193 src/Module/Contact.php:377 msgid "Could not access contact record." msgstr "Could not access contact record." -#: src/Module/Contact.php:201 +#: src/Module/Contact.php:203 msgid "Could not locate selected profile." msgstr "Could not locate selected profile." -#: src/Module/Contact.php:233 +#: src/Module/Contact.php:235 msgid "Contact updated." msgstr "Contact updated." -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been blocked" msgstr "Contact has been blocked" -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been unblocked" msgstr "Contact has been unblocked" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been ignored" msgstr "Contact has been ignored" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been unignored" msgstr "Contact has been unignored" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been archived" msgstr "Contact has been archived" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been unarchived" msgstr "Contact has been unarchived" -#: src/Module/Contact.php:439 +#: src/Module/Contact.php:442 msgid "Drop contact" msgstr "Drop contact" -#: src/Module/Contact.php:442 src/Module/Contact.php:820 +#: src/Module/Contact.php:445 src/Module/Contact.php:823 msgid "Do you really want to delete this contact?" msgstr "Do you really want to delete this contact?" -#: src/Module/Contact.php:456 +#: src/Module/Contact.php:459 msgid "Contact has been removed." msgstr "Contact has been removed." -#: src/Module/Contact.php:486 +#: src/Module/Contact.php:489 #, php-format msgid "You are mutual friends with %s" msgstr "You are mutual friends with %s" -#: src/Module/Contact.php:491 +#: src/Module/Contact.php:494 #, php-format msgid "You are sharing with %s" msgstr "You are sharing with %s" -#: src/Module/Contact.php:496 +#: src/Module/Contact.php:499 #, php-format msgid "%s is sharing with you" msgstr "%s is sharing with you" -#: src/Module/Contact.php:520 +#: src/Module/Contact.php:523 msgid "Private communications are not available for this contact." msgstr "Private communications are not available for this contact." -#: src/Module/Contact.php:522 +#: src/Module/Contact.php:525 msgid "Never" msgstr "Never" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was successful)" msgstr "(Update was successful)" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was not successful)" msgstr "(Update was not successful)" -#: src/Module/Contact.php:527 src/Module/Contact.php:1058 +#: src/Module/Contact.php:530 src/Module/Contact.php:1061 msgid "Suggest friends" msgstr "Suggest friends" -#: src/Module/Contact.php:531 +#: src/Module/Contact.php:534 #, php-format msgid "Network type: %s" msgstr "Network type: %s" -#: src/Module/Contact.php:536 +#: src/Module/Contact.php:539 msgid "Communications lost with this contact!" msgstr "Communications lost with this contact!" -#: src/Module/Contact.php:542 +#: src/Module/Contact.php:545 msgid "Fetch further information for feeds" msgstr "Fetch further information for feeds" -#: src/Module/Contact.php:544 +#: src/Module/Contact.php:547 msgid "" "Fetch information like preview pictures, title and teaser from the feed " "item. You can activate this if the feed doesn't contain much text. Keywords " "are taken from the meta header in the feed item and are posted as hash tags." msgstr "Fetch information like preview pictures, title and teaser from the feed item. You can activate this if the feed doesn't contain much text. Keywords are taken from the meta header in the feed item and are posted as hash tags." -#: src/Module/Contact.php:547 +#: src/Module/Contact.php:550 msgid "Fetch information" msgstr "Fetch information" -#: src/Module/Contact.php:548 +#: src/Module/Contact.php:551 msgid "Fetch keywords" msgstr "Fetch keywords" -#: src/Module/Contact.php:549 +#: src/Module/Contact.php:552 msgid "Fetch information and keywords" msgstr "Fetch information and keywords" -#: src/Module/Contact.php:581 +#: src/Module/Contact.php:584 msgid "Profile Visibility" msgstr "Profile visibility" -#: src/Module/Contact.php:582 +#: src/Module/Contact.php:585 msgid "Contact Information / Notes" msgstr "Personal note" -#: src/Module/Contact.php:583 +#: src/Module/Contact.php:586 msgid "Contact Settings" msgstr "Notification and privacy " -#: src/Module/Contact.php:592 +#: src/Module/Contact.php:595 msgid "Contact" msgstr "Contact" -#: src/Module/Contact.php:596 +#: src/Module/Contact.php:599 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Please choose the profile you would like to display to %s when viewing your profile securely." -#: src/Module/Contact.php:598 +#: src/Module/Contact.php:601 msgid "Their personal note" msgstr "Their personal note" -#: src/Module/Contact.php:600 +#: src/Module/Contact.php:603 msgid "Edit contact notes" msgstr "Edit contact notes" -#: src/Module/Contact.php:604 +#: src/Module/Contact.php:607 msgid "Block/Unblock contact" msgstr "Block/Unblock contact" -#: src/Module/Contact.php:605 +#: src/Module/Contact.php:608 msgid "Ignore contact" msgstr "Ignore contact" -#: src/Module/Contact.php:606 +#: src/Module/Contact.php:609 msgid "Repair URL settings" msgstr "Repair URL settings" -#: src/Module/Contact.php:607 +#: src/Module/Contact.php:610 msgid "View conversations" msgstr "View conversations" -#: src/Module/Contact.php:612 +#: src/Module/Contact.php:615 msgid "Last update:" msgstr "Last update:" -#: src/Module/Contact.php:614 +#: src/Module/Contact.php:617 msgid "Update public posts" msgstr "Update public posts" -#: src/Module/Contact.php:616 src/Module/Contact.php:1068 +#: src/Module/Contact.php:619 src/Module/Contact.php:1071 msgid "Update now" msgstr "Update now" -#: src/Module/Contact.php:622 src/Module/Contact.php:825 -#: src/Module/Contact.php:1085 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 msgid "Unignore" msgstr "Unignore" -#: src/Module/Contact.php:626 +#: src/Module/Contact.php:629 msgid "Currently blocked" msgstr "Currently blocked" -#: src/Module/Contact.php:627 +#: src/Module/Contact.php:630 msgid "Currently ignored" msgstr "Currently ignored" -#: src/Module/Contact.php:628 +#: src/Module/Contact.php:631 msgid "Currently archived" msgstr "Currently archived" -#: src/Module/Contact.php:629 +#: src/Module/Contact.php:632 msgid "Awaiting connection acknowledge" msgstr "Awaiting connection acknowledgement " -#: src/Module/Contact.php:630 +#: src/Module/Contact.php:633 msgid "" "Replies/likes to your public posts may still be visible" msgstr "Replies/Likes to your public posts may still be visible" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Notification for new posts" msgstr "Notification for new posts" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Send a notification of every new post of this contact" msgstr "Send notification for every new post from this contact" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "Blacklisted keywords" msgstr "Blacklisted keywords" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "" "Comma separated list of keywords that should not be converted to hashtags, " "when \"Fetch information and keywords\" is selected" msgstr "Comma separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected" -#: src/Module/Contact.php:650 +#: src/Module/Contact.php:653 src/Module/Settings/TwoFactor/Index.php:100 msgid "Actions" msgstr "Actions" -#: src/Module/Contact.php:696 +#: src/Module/Contact.php:700 msgid "Suggestions" msgstr "Suggestions" -#: src/Module/Contact.php:699 +#: src/Module/Contact.php:703 msgid "Suggest potential friends" msgstr "Suggest potential friends" -#: src/Module/Contact.php:707 +#: src/Module/Contact.php:708 src/Module/Group.php:287 +msgid "All Contacts" +msgstr "All contacts" + +#: src/Module/Contact.php:711 msgid "Show all contacts" msgstr "Show all contacts" -#: src/Module/Contact.php:712 +#: src/Module/Contact.php:716 msgid "Unblocked" msgstr "Unblocked" -#: src/Module/Contact.php:715 +#: src/Module/Contact.php:719 msgid "Only show unblocked contacts" msgstr "Only show unblocked contacts" -#: src/Module/Contact.php:720 +#: src/Module/Contact.php:724 msgid "Blocked" msgstr "Blocked" -#: src/Module/Contact.php:723 +#: src/Module/Contact.php:727 msgid "Only show blocked contacts" msgstr "Only show blocked contacts" -#: src/Module/Contact.php:728 +#: src/Module/Contact.php:732 msgid "Ignored" msgstr "Ignored" -#: src/Module/Contact.php:731 +#: src/Module/Contact.php:735 msgid "Only show ignored contacts" msgstr "Only show ignored contacts" -#: src/Module/Contact.php:736 +#: src/Module/Contact.php:740 msgid "Archived" msgstr "Archived" -#: src/Module/Contact.php:739 +#: src/Module/Contact.php:743 msgid "Only show archived contacts" msgstr "Only show archived contacts" -#: src/Module/Contact.php:744 +#: src/Module/Contact.php:748 msgid "Hidden" msgstr "Hidden" -#: src/Module/Contact.php:747 +#: src/Module/Contact.php:751 msgid "Only show hidden contacts" msgstr "Only show hidden contacts" -#: src/Module/Contact.php:755 +#: src/Module/Contact.php:759 msgid "Organize your contact groups" msgstr "Organise your contact groups" -#: src/Module/Contact.php:815 +#: src/Module/Contact.php:818 msgid "Search your contacts" msgstr "Search your contacts" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Archive" msgstr "Archive" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Unarchive" msgstr "Unarchive" -#: src/Module/Contact.php:829 +#: src/Module/Contact.php:832 msgid "Batch Actions" msgstr "Batch actions" -#: src/Module/Contact.php:856 +#: src/Module/Contact.php:859 msgid "Conversations started by this contact" msgstr "Conversations started by this contact" -#: src/Module/Contact.php:861 +#: src/Module/Contact.php:864 msgid "Posts and Comments" msgstr "Posts and Comments" -#: src/Module/Contact.php:884 +#: src/Module/Contact.php:887 msgid "View all contacts" msgstr "View all contacts" -#: src/Module/Contact.php:895 +#: src/Module/Contact.php:898 msgid "View all common friends" msgstr "View all common friends" -#: src/Module/Contact.php:905 +#: src/Module/Contact.php:908 msgid "Advanced Contact Settings" msgstr "Advanced contact settings" -#: src/Module/Contact.php:991 +#: src/Module/Contact.php:994 msgid "Mutual Friendship" msgstr "Mutual friendship" -#: src/Module/Contact.php:996 +#: src/Module/Contact.php:999 msgid "is a fan of yours" msgstr "is a fan of yours" -#: src/Module/Contact.php:1001 +#: src/Module/Contact.php:1004 msgid "you are a fan of" msgstr "I follow them" -#: src/Module/Contact.php:1025 +#: src/Module/Contact.php:1028 msgid "Edit contact" msgstr "Edit contact" -#: src/Module/Contact.php:1079 +#: src/Module/Contact.php:1082 msgid "Toggle Blocked status" msgstr "Toggle blocked status" -#: src/Module/Contact.php:1087 +#: src/Module/Contact.php:1090 msgid "Toggle Ignored status" msgstr "Toggle ignored status" -#: src/Module/Contact.php:1096 +#: src/Module/Contact.php:1099 msgid "Toggle Archive status" msgstr "Toggle archive status" -#: src/Module/Contact.php:1104 +#: src/Module/Contact.php:1107 msgid "Delete contact" msgstr "Delete contact" -#: src/Module/Install.php:118 +#: src/Module/Credits.php:25 +msgid "Credits" +msgstr "Credits" + +#: src/Module/Credits.php:26 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!" + +#: src/Module/Directory.php:66 +msgid "No entries (some entries may be hidden)." +msgstr "No entries (entries may be hidden)." + +#: src/Module/Directory.php:85 +msgid "Find on this site" +msgstr "Find on this site" + +#: src/Module/Directory.php:87 +msgid "Results for:" +msgstr "Results for:" + +#: src/Module/Directory.php:89 +msgid "Site Directory" +msgstr "Site directory" + +#: src/Module/Feedtest.php:20 src/Module/Filer/SaveTag.php:20 +msgid "You must be logged in to use this module" +msgstr "You must be logged in to use this module" + +#: src/Module/Feedtest.php:49 +msgid "Source URL" +msgstr "Source URL" + +#: src/Module/Filer/SaveTag.php:39 +#, php-format +msgid "Filetag %s saved to item" +msgstr "File-tag %s saved to item" + +#: src/Module/Filer/SaveTag.php:49 +msgid "- select -" +msgstr "- select -" + +#: src/Module/FollowConfirm.php:37 +msgid "No given contact." +msgstr "No given contact." + +#: src/Module/Friendica.php:40 +msgid "Installed addons/apps:" +msgstr "Installed addons/apps:" + +#: src/Module/Friendica.php:45 +msgid "No installed addons/apps" +msgstr "No installed addons/apps" + +#: src/Module/Friendica.php:50 +#, php-format +msgid "Read about the Terms of Service of this node." +msgstr "Read about the Terms of Service of this node." + +#: src/Module/Friendica.php:57 +msgid "On this server the following remote servers are blocked." +msgstr "On this server the following remote servers are blocked." + +#: src/Module/Friendica.php:75 +#, php-format +msgid "" +"This is Friendica, version %s that is running at the web location %s. The " +"database version is %s, the post update version is %s." +msgstr "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s." + +#: src/Module/Friendica.php:80 +msgid "" +"Please visit Friendi.ca to learn more " +"about the Friendica project." +msgstr "Please visit Friendi.ca to learn more about the Friendica project." + +#: src/Module/Friendica.php:81 +msgid "Bug reports and issues: please visit" +msgstr "Bug reports and issues: please visit" + +#: src/Module/Friendica.php:81 +msgid "the bugtracker at github" +msgstr "the bugtracker at github" + +#: src/Module/Friendica.php:82 +msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" +msgstr "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" + +#: src/Module/Group.php:42 +msgid "Group created." +msgstr "Group created." + +#: src/Module/Group.php:48 +msgid "Could not create group." +msgstr "Could not create group." + +#: src/Module/Group.php:59 src/Module/Group.php:207 src/Module/Group.php:233 +msgid "Group not found." +msgstr "Group not found." + +#: src/Module/Group.php:65 +msgid "Group name changed." +msgstr "Group name changed." + +#: src/Module/Group.php:87 +msgid "Unknown group." +msgstr "Unknown group." + +#: src/Module/Group.php:96 +msgid "Contact is unavailable." +msgstr "Contact is unavailable." + +#: src/Module/Group.php:100 +msgid "Contact is deleted." +msgstr "Contact is deleted." + +#: src/Module/Group.php:106 +msgid "Contact is blocked, unable to add it to a group." +msgstr "Contact is blocked, unable to add it to a group." + +#: src/Module/Group.php:110 +msgid "Unable to add the contact to the group." +msgstr "Unable to add contact to group." + +#: src/Module/Group.php:112 +msgid "Contact successfully added to group." +msgstr "Contact successfully added to group." + +#: src/Module/Group.php:116 +msgid "Unable to remove the contact from the group." +msgstr "Unable to remove contact from group." + +#: src/Module/Group.php:118 +msgid "Contact successfully removed from group." +msgstr "Contact removed from group." + +#: src/Module/Group.php:121 +msgid "Unknown group command." +msgstr "Unknown group command." + +#: src/Module/Group.php:124 +msgid "Bad request." +msgstr "Bad request." + +#: src/Module/Group.php:163 +msgid "Save Group" +msgstr "Save group" + +#: src/Module/Group.php:164 +msgid "Filter" +msgstr "Filter" + +#: src/Module/Group.php:170 +msgid "Create a group of contacts/friends." +msgstr "Create a group of contacts/friends." + +#: src/Module/Group.php:212 +msgid "Group removed." +msgstr "Group removed." + +#: src/Module/Group.php:214 +msgid "Unable to remove group." +msgstr "Unable to remove group." + +#: src/Module/Group.php:265 +msgid "Delete Group" +msgstr "Delete group" + +#: src/Module/Group.php:275 +msgid "Edit Group Name" +msgstr "Edit group name" + +#: src/Module/Group.php:285 +msgid "Members" +msgstr "Members" + +#: src/Module/Group.php:301 +msgid "Remove contact from group" +msgstr "Remove contact from group" + +#: src/Module/Group.php:335 +msgid "Add contact to group" +msgstr "Add contact to group" + +#: src/Module/Help.php:43 +msgid "Help:" +msgstr "Help:" + +#: src/Module/Home.php:42 +#, php-format +msgid "Welcome to %s" +msgstr "Welcome to %s" + +#: src/Module/Install.php:158 msgid "Friendica Communications Server - Setup" msgstr "Friendica Communications Server - Setup" -#: src/Module/Install.php:129 +#: src/Module/Install.php:169 msgid "System check" msgstr "System check" -#: src/Module/Install.php:134 +#: src/Module/Install.php:174 msgid "Check again" msgstr "Check again" -#: src/Module/Install.php:151 +#: src/Module/Install.php:189 +msgid "Base settings" +msgstr "Base settings" + +#: src/Module/Install.php:196 +msgid "Host name" +msgstr "Host name" + +#: src/Module/Install.php:198 +msgid "" +"Overwrite this field in case the determinated hostname isn't right, " +"otherweise leave it as is." +msgstr "Overwrite this field in case the hostname is incorrect, otherwise leave it as is." + +#: src/Module/Install.php:201 +msgid "Base path to installation" +msgstr "Base path to installation" + +#: src/Module/Install.php:203 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot." + +#: src/Module/Install.php:206 +msgid "Sub path of the URL" +msgstr "URL Subpath" + +#: src/Module/Install.php:208 +msgid "" +"Overwrite this field in case the sub path determination isn't right, " +"otherwise leave it as is. Leaving this field blank means the installation is" +" at the base URL without sub path." +msgstr "Overwrite this field in case the subpath determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without subpath." + +#: src/Module/Install.php:219 msgid "Database connection" msgstr "Database connection" -#: src/Module/Install.php:152 +#: src/Module/Install.php:220 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "In order to install Friendica we need to know how to connect to your database." -#: src/Module/Install.php:153 +#: src/Module/Install.php:221 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "Please contact your hosting provider or site administrator if you have questions about these settings." -#: src/Module/Install.php:154 +#: src/Module/Install.php:222 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "The database you specify below should already exist. If it does not, please create it before continuing." -#: src/Module/Install.php:157 +#: src/Module/Install.php:229 msgid "Database Server Name" msgstr "Database server name" -#: src/Module/Install.php:162 +#: src/Module/Install.php:234 msgid "Database Login Name" msgstr "Database login name" -#: src/Module/Install.php:168 +#: src/Module/Install.php:240 msgid "Database Login Password" msgstr "Database login password" -#: src/Module/Install.php:170 +#: src/Module/Install.php:242 msgid "For security reasons the password must not be empty" msgstr "For security reasons the password must not be empty" -#: src/Module/Install.php:173 +#: src/Module/Install.php:245 msgid "Database Name" msgstr "Database name" -#: src/Module/Install.php:178 src/Module/Install.php:214 +#: src/Module/Install.php:249 src/Module/Install.php:278 +msgid "Please select a default timezone for your website" +msgstr "Please select a default time zone for your website" + +#: src/Module/Install.php:263 +msgid "Site settings" +msgstr "Site settings" + +#: src/Module/Install.php:273 msgid "Site administrator email address" msgstr "Site administrator email address" -#: src/Module/Install.php:180 src/Module/Install.php:214 +#: src/Module/Install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "Your account email address must match this in order to use the web admin panel." -#: src/Module/Install.php:184 src/Module/Install.php:215 -msgid "Please select a default timezone for your website" -msgstr "Please select a default time zone for your website" - -#: src/Module/Install.php:208 -msgid "Site settings" -msgstr "Site settings" - -#: src/Module/Install.php:217 +#: src/Module/Install.php:282 msgid "System Language:" msgstr "System language:" -#: src/Module/Install.php:219 +#: src/Module/Install.php:284 msgid "" "Set the default language for your Friendica installation interface and to " "send emails." msgstr "Set the default language for your Friendica installation interface and email communication." -#: src/Module/Install.php:231 +#: src/Module/Install.php:296 msgid "Your Friendica site database has been installed." msgstr "Your Friendica site database has been installed." -#: src/Module/Install.php:239 +#: src/Module/Install.php:304 msgid "Installation finished" msgstr "Installation finished" -#: src/Module/Install.php:261 +#: src/Module/Install.php:326 msgid "

    What next

    " msgstr "

    What next

    " -#: src/Module/Install.php:262 +#: src/Module/Install.php:327 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "worker." msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the worker." -#: src/Module/Install.php:265 +#: src/Module/Install.php:330 #, php-format msgid "" "Go to your new Friendica node registration page " @@ -9271,43 +9291,172 @@ msgid "" " administrator email. This will allow you to enter the site admin panel." msgstr "Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel." -#: src/Module/Itemsource.php:41 -msgid "Item Guid" -msgstr "Item Guid" +#: src/Module/Invite.php:37 +msgid "Total invitation limit exceeded." +msgstr "Total invitation limit exceeded" -#: src/Module/Login.php:292 +#: src/Module/Invite.php:60 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Not a valid email address" + +#: src/Module/Invite.php:87 +msgid "Please join us on Friendica" +msgstr "Please join us on Friendica." + +#: src/Module/Invite.php:96 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Invitation limit is exceeded. Please contact your site administrator." + +#: src/Module/Invite.php:100 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Message delivery failed" + +#: src/Module/Invite.php:104 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d message sent." +msgstr[1] "%d messages sent." + +#: src/Module/Invite.php:122 +msgid "You have no more invitations available" +msgstr "You have no more invitations available." + +#: src/Module/Invite.php:129 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks." + +#: src/Module/Invite.php:131 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "To accept this invitation, please sign up at %s or any other public Friendica website." + +#: src/Module/Invite.php:132 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Friendica sites are all inter-connect to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join." + +#: src/Module/Invite.php:136 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Our apologies. This system is not currently configured to connect with other public sites or invite members." + +#: src/Module/Invite.php:139 +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks." +msgstr "Friendica sites are all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks." + +#: src/Module/Invite.php:138 +#, php-format +msgid "To accept this invitation, please visit and register at %s." +msgstr "To accept this invitation, please visit and register at %s." + +#: src/Module/Invite.php:146 +msgid "Send invitations" +msgstr "Send invitations" + +#: src/Module/Invite.php:147 +msgid "Enter email addresses, one per line:" +msgstr "Enter email addresses, one per line:" + +#: src/Module/Invite.php:151 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web." + +#: src/Module/Invite.php:153 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "You will need to supply this invitation code: $invite_code" + +#: src/Module/Invite.php:153 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Once you have signed up, please connect with me via my profile page at:" + +#: src/Module/Invite.php:155 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendi.ca" +msgstr "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca" + +#: src/Module/Localtime.php:30 +msgid "Time Conversion" +msgstr "Time conversion" + +#: src/Module/Localtime.php:31 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica provides this service for sharing events with other networks and friends in unknown time zones." + +#: src/Module/Localtime.php:32 +#, php-format +msgid "UTC time: %s" +msgstr "UTC time: %s" + +#: src/Module/Localtime.php:35 +#, php-format +msgid "Current timezone: %s" +msgstr "Current time zone: %s" + +#: src/Module/Localtime.php:39 +#, php-format +msgid "Converted localtime: %s" +msgstr "Converted local time: %s" + +#: src/Module/Localtime.php:43 +msgid "Please select your timezone:" +msgstr "Please select your time zone:" + +#: src/Module/Login.php:295 msgid "Create a New Account" msgstr "Create a new account" -#: src/Module/Login.php:325 +#: src/Module/Login.php:328 msgid "Password: " msgstr "Password: " -#: src/Module/Login.php:326 +#: src/Module/Login.php:329 msgid "Remember me" msgstr "Remember me" -#: src/Module/Login.php:329 +#: src/Module/Login.php:332 msgid "Or login using OpenID: " msgstr "Or login with OpenID: " -#: src/Module/Login.php:335 +#: src/Module/Login.php:338 msgid "Forgot your password?" msgstr "Forgot your password?" -#: src/Module/Login.php:338 +#: src/Module/Login.php:341 msgid "Website Terms of Service" msgstr "Website Terms of Service" -#: src/Module/Login.php:339 +#: src/Module/Login.php:342 msgid "terms of service" msgstr "Terms of service" -#: src/Module/Login.php:341 +#: src/Module/Login.php:344 msgid "Website Privacy Policy" msgstr "Website Privacy Policy" -#: src/Module/Login.php:342 +#: src/Module/Login.php:345 msgid "privacy policy" msgstr "Privacy policy" @@ -9315,26 +9464,35 @@ msgstr "Privacy policy" msgid "Logged out." msgstr "Logged out." -#: src/Module/Profile.php:102 src/Module/Profile.php:105 +#: src/Module/Maintenance.php:29 +msgid "System down for maintenance" +msgstr "Sorry, the system is currently down for maintenance." + +#: src/Module/PageNotFound.php:13 +msgid "Page not found." +msgstr "Page not found" + +#: src/Module/Photo.php:87 +#, php-format +msgid "Invalid photo with id %s." +msgstr "Invalid photo with id %s." + +#: src/Module/Profile.php:110 src/Module/Profile.php:113 #: src/Protocol/OStatus.php:1302 #, php-format msgid "%s's timeline" msgstr "%s's timeline" -#: src/Module/Profile.php:103 src/Protocol/OStatus.php:1306 +#: src/Module/Profile.php:111 src/Protocol/OStatus.php:1306 #, php-format msgid "%s's posts" msgstr "%s's posts" -#: src/Module/Profile.php:104 src/Protocol/OStatus.php:1309 +#: src/Module/Profile.php:112 src/Protocol/OStatus.php:1309 #, php-format msgid "%s's comments" msgstr "%s's comments" -#: src/Module/Proxy.php:73 -msgid "Bad Request." -msgstr "Bad request." - #: src/Module/Register.php:83 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " @@ -9400,34 +9558,258 @@ msgstr "Choose a nickname: " msgid "Import your profile to this friendica instance" msgstr "Import an existing Friendica profile to this node." -#: src/Module/Register.php:150 +#: src/Module/Register.php:149 msgid "Note: This node explicitly contains adult content" msgstr "Note: This node explicitly contains adult content" -#: src/Module/Register.php:243 +#: src/Module/Register.php:242 msgid "" "Registration successful. Please check your email for further instructions." msgstr "Registration successful. Please check your email for further instructions." -#: src/Module/Register.php:247 +#: src/Module/Register.php:246 #, php-format msgid "" "Failed to send email message. Here your accout details:
    login: %s
    " "password: %s

    You can change your password after login." msgstr "Failed to send email message. Here your account details:
    login: %s
    password: %s

    You can change your password after login." -#: src/Module/Register.php:254 +#: src/Module/Register.php:253 msgid "Registration successful." msgstr "Registration successful." -#: src/Module/Register.php:259 +#: src/Module/Register.php:258 msgid "Your registration can not be processed." msgstr "Your registration cannot be processed." -#: src/Module/Register.php:305 +#: src/Module/Register.php:304 msgid "Your registration is pending approval by the site owner." msgstr "Your registration is pending approval by the site administrator." +#: src/Module/Settings/TwoFactor/Index.php:50 +msgid "Two-factor authentication successfully disabled." +msgstr "Two-factor authentication successfully disabled." + +#: src/Module/Settings/TwoFactor/Index.php:86 +msgid "" +"

    Use an application on a mobile device to get two-factor authentication " +"codes when prompted on login.

    " +msgstr "

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    " + +#: src/Module/Settings/TwoFactor/Index.php:90 +msgid "Authenticator app" +msgstr "Authenticator app" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Configured" +msgstr "Configured" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Not Configured" +msgstr "Not configured" + +#: src/Module/Settings/TwoFactor/Index.php:92 +msgid "

    You haven't finished configuring your authenticator app.

    " +msgstr "

    You haven't finished configuring your authenticator app.

    " + +#: src/Module/Settings/TwoFactor/Index.php:93 +msgid "

    Your authenticator app is correctly configured.

    " +msgstr "

    Your authenticator app is correctly configured.

    " + +#: src/Module/Settings/TwoFactor/Index.php:95 +msgid "Recovery codes" +msgstr "Recovery codes" + +#: src/Module/Settings/TwoFactor/Index.php:96 +msgid "Remaining valid codes" +msgstr "Remaining valid codes" + +#: src/Module/Settings/TwoFactor/Index.php:98 +msgid "" +"

    These one-use codes can replace an authenticator app code in case you " +"have lost access to it.

    " +msgstr "

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    " + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "Current password:" +msgstr "Current password:" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "" +"You need to provide your current password to change two-factor " +"authentication settings." +msgstr "You need to provide your current password to change two-factor authentication settings." + +#: src/Module/Settings/TwoFactor/Index.php:102 +msgid "Enable two-factor authentication" +msgstr "Enable two-factor authentication" + +#: src/Module/Settings/TwoFactor/Index.php:103 +msgid "Disable two-factor authentication" +msgstr "Disable two-factor authentication" + +#: src/Module/Settings/TwoFactor/Index.php:104 +msgid "Show recovery codes" +msgstr "Show recovery codes" + +#: src/Module/Settings/TwoFactor/Index.php:105 +msgid "Finish app configuration" +msgstr "Finish app configuration" + +#: src/Module/Settings/TwoFactor/Recovery.php:34 +#: src/Module/Settings/TwoFactor/Verify.php:41 +msgid "Please enter your password to access this page." +msgstr "Please enter your password to access this page." + +#: src/Module/Settings/TwoFactor/Recovery.php:50 +msgid "New recovery codes successfully generated." +msgstr "New recovery codes successfully generated." + +#: src/Module/Settings/TwoFactor/Recovery.php:76 +msgid "Two-factor recovery codes" +msgstr "Two-factor recovery codes" + +#: src/Module/Settings/TwoFactor/Recovery.php:78 +msgid "" +"

    Recovery codes can be used to access your account in the event you lose " +"access to your device and cannot receive two-factor authentication " +"codes.

    Put these in a safe spot! If you lose your " +"device and don’t have the recovery codes you will lose access to your " +"account.

    " +msgstr "

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe place! If you lose your device and don’t have the recovery codes you will lose access to your account.

    " + +#: src/Module/Settings/TwoFactor/Recovery.php:80 +msgid "" +"When you generate new recovery codes, you must copy the new codes. Your old " +"codes won’t work anymore." +msgstr "When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore." + +#: src/Module/Settings/TwoFactor/Recovery.php:81 +msgid "Generate new recovery codes" +msgstr "Generate new recovery codes" + +#: src/Module/Settings/TwoFactor/Recovery.php:83 +msgid "Next: Verification" +msgstr "Next: Verification" + +#: src/Module/Settings/TwoFactor/Verify.php:63 +msgid "Two-factor authentication successfully activated." +msgstr "Two-factor authentication successfully activated." + +#: src/Module/Settings/TwoFactor/Verify.php:67 +#: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:41 +msgid "Invalid code, please retry." +msgstr "Invalid code, please try again." + +#: src/Module/Settings/TwoFactor/Verify.php:96 +#, php-format +msgid "" +"

    Or you can submit the authentication settings manually:

    \n" +"
    \n" +"\t
    Issuer
    \n" +"\t
    %s
    \n" +"\t
    Account Name
    \n" +"\t
    %s
    \n" +"\t
    Secret Key
    \n" +"\t
    %s
    \n" +"\t
    Type
    \n" +"\t
    Time-based
    \n" +"\t
    Number of digits
    \n" +"\t
    6
    \n" +"\t
    Hashing algorithm
    \n" +"\t
    SHA-1
    \n" +"
    " +msgstr "

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account name
    \n\t
    %s
    \n\t
    Secret key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    " + +#: src/Module/Settings/TwoFactor/Verify.php:116 +msgid "Two-factor code verification" +msgstr "Two-factor code verification" + +#: src/Module/Settings/TwoFactor/Verify.php:118 +msgid "" +"

    Please scan this QR Code with your authenticator app and submit the " +"provided code.

    " +msgstr "

    Please scan this QR Code with your authenticator app and submit the provided code.

    " + +#: src/Module/Settings/TwoFactor/Verify.php:120 +#, php-format +msgid "" +"

    Or you can open the following URL in your mobile devicde:

    %s

    " +msgstr "

    Or you can open the following URL in your mobile device:

    %s

    " + +#: src/Module/Settings/TwoFactor/Verify.php:126 +#: src/Module/TwoFactor/Verify.php:63 +msgid "Please enter a code from your authentication app" +msgstr "Please enter a code from your authentication app" + +#: src/Module/Settings/TwoFactor/Verify.php:127 +msgid "Verify code and enable two-factor authentication" +msgstr "Verify code and enable two-factor authentication" + +#: src/Module/Special/HTTPException.php:32 +msgid "Bad Request" +msgstr "Bad Request" + +#: src/Module/Special/HTTPException.php:33 +msgid "Unauthorized" +msgstr "Unauthorized" + +#: src/Module/Special/HTTPException.php:34 +msgid "Forbidden" +msgstr "Forbidden" + +#: src/Module/Special/HTTPException.php:35 +msgid "Not Found" +msgstr "Not found" + +#: src/Module/Special/HTTPException.php:36 +msgid "Internal Server Error" +msgstr "Internal Server Error" + +#: src/Module/Special/HTTPException.php:37 +msgid "Service Unavailable" +msgstr "Service Unavailable" + +#: src/Module/Special/HTTPException.php:44 +msgid "" +"The server cannot or will not process the request due to an apparent client " +"error." +msgstr "The server cannot process the request due to an apparent client error." + +#: src/Module/Special/HTTPException.php:45 +msgid "" +"Authentication is required and has failed or has not yet been provided." +msgstr "Authentication is required and has failed or has not yet been provided." + +#: src/Module/Special/HTTPException.php:46 +msgid "" +"The request was valid, but the server is refusing action. The user might not" +" have the necessary permissions for a resource, or may need an account." +msgstr "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account." + +#: src/Module/Special/HTTPException.php:47 +msgid "" +"The requested resource could not be found but may be available in the " +"future." +msgstr "The requested resource could not be found but may be available in the future." + +#: src/Module/Special/HTTPException.php:48 +msgid "" +"An unexpected condition was encountered and no more specific message is " +"suitable." +msgstr "An unexpected condition was encountered and no more specific message is available." + +#: src/Module/Special/HTTPException.php:49 +msgid "" +"The server is currently unavailable (because it is overloaded or down for " +"maintenance). Please try again later." +msgstr "The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later." + +#: src/Module/Special/HTTPException.php:55 +msgid "Go back" +msgstr "Go back" + #: src/Module/Tos.php:35 src/Module/Tos.php:77 msgid "" "At the time of registration, and for providing communications between the " @@ -9463,165 +9845,207 @@ msgstr "At any point in time a logged in user can export their account data from msgid "Privacy Statement" msgstr "Privacy Statement" -#: src/Object/Post.php:136 +#: src/Module/TwoFactor/Recovery.php:41 +#, php-format +msgid "Remaining recovery codes: %d" +msgstr "Remaining recovery codes: %d" + +#: src/Module/TwoFactor/Recovery.php:65 +msgid "Two-factor recovery" +msgstr "Two-factor recovery" + +#: src/Module/TwoFactor/Recovery.php:66 +msgid "" +"

    You can enter one of your one-time recovery codes in case you lost access" +" to your mobile device.

    " +msgstr "

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    " + +#: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:62 +#, php-format +msgid "Don’t have your phone? Enter a two-factor recovery code" +msgstr "Don’t have your phone? Enter a two-factor recovery code" + +#: src/Module/TwoFactor/Recovery.php:68 +msgid "Please enter a recovery code" +msgstr "Please enter a recovery code" + +#: src/Module/TwoFactor/Recovery.php:69 +msgid "Submit recovery code and complete login" +msgstr "Submit recovery code and complete login" + +#: src/Module/TwoFactor/Verify.php:61 +msgid "" +"

    Open the two-factor authentication app on your device to get an " +"authentication code and verify your identity.

    " +msgstr "

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    " + +#: src/Module/TwoFactor/Verify.php:64 +msgid "Verify code and complete login" +msgstr "Verify code and complete login" + +#: src/Object/Post.php:137 msgid "This entry was edited" msgstr "This entry was edited" -#: src/Object/Post.php:198 +#: src/Object/Post.php:157 +msgid "Private Message" +msgstr "Private message" + +#: src/Object/Post.php:199 msgid "Delete locally" msgstr "Delete locally" -#: src/Object/Post.php:201 +#: src/Object/Post.php:202 msgid "Delete globally" msgstr "Delete globally" -#: src/Object/Post.php:201 +#: src/Object/Post.php:202 msgid "Remove locally" msgstr "Remove locally" -#: src/Object/Post.php:215 +#: src/Object/Post.php:216 msgid "save to folder" msgstr "Save to folder" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I will attend" msgstr "I will attend" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I will not attend" msgstr "I will not attend" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I might attend" msgstr "I might attend" -#: src/Object/Post.php:278 +#: src/Object/Post.php:279 msgid "ignore thread" msgstr "Ignore thread" -#: src/Object/Post.php:279 +#: src/Object/Post.php:280 msgid "unignore thread" msgstr "Unignore thread" -#: src/Object/Post.php:280 +#: src/Object/Post.php:281 msgid "toggle ignore status" msgstr "Toggle ignore status" -#: src/Object/Post.php:291 +#: src/Object/Post.php:292 msgid "add star" msgstr "Add star" -#: src/Object/Post.php:292 +#: src/Object/Post.php:293 msgid "remove star" msgstr "Remove star" -#: src/Object/Post.php:293 +#: src/Object/Post.php:294 msgid "toggle star status" msgstr "Toggle star status" -#: src/Object/Post.php:296 +#: src/Object/Post.php:297 msgid "starred" msgstr "Starred" -#: src/Object/Post.php:300 +#: src/Object/Post.php:301 msgid "add tag" msgstr "Add tag" -#: src/Object/Post.php:311 +#: src/Object/Post.php:312 msgid "like" msgstr "Like" -#: src/Object/Post.php:312 +#: src/Object/Post.php:313 msgid "dislike" msgstr "Dislike" -#: src/Object/Post.php:315 +#: src/Object/Post.php:316 msgid "Share this" msgstr "Share this" -#: src/Object/Post.php:315 +#: src/Object/Post.php:316 msgid "share" msgstr "Share" -#: src/Object/Post.php:382 +#: src/Object/Post.php:384 msgid "to" msgstr "to" -#: src/Object/Post.php:383 +#: src/Object/Post.php:385 msgid "via" msgstr "via" -#: src/Object/Post.php:384 +#: src/Object/Post.php:386 msgid "Wall-to-Wall" msgstr "Wall-to-wall" -#: src/Object/Post.php:385 +#: src/Object/Post.php:387 msgid "via Wall-To-Wall:" msgstr "via wall-to-wall:" -#: src/Object/Post.php:418 +#: src/Object/Post.php:420 #, php-format msgid "Reply to %s" msgstr "Reply to %s" -#: src/Object/Post.php:433 +#: src/Object/Post.php:435 msgid "Notifier task is pending" msgstr "Notifier task is pending" -#: src/Object/Post.php:434 +#: src/Object/Post.php:436 msgid "Delivery to remote servers is pending" msgstr "Delivery to remote servers is pending" -#: src/Object/Post.php:435 +#: src/Object/Post.php:437 msgid "Delivery to remote servers is underway" msgstr "Delivery to remote servers is underway" -#: src/Object/Post.php:436 +#: src/Object/Post.php:438 msgid "Delivery to remote servers is mostly done" msgstr "Delivery to remote servers is mostly done" -#: src/Object/Post.php:437 +#: src/Object/Post.php:439 msgid "Delivery to remote servers is done" msgstr "Delivery to remote servers is done" -#: src/Object/Post.php:457 +#: src/Object/Post.php:459 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d comment" msgstr[1] "%d comments -" -#: src/Object/Post.php:458 +#: src/Object/Post.php:460 msgid "Show more" msgstr "Show more" -#: src/Object/Post.php:459 +#: src/Object/Post.php:461 msgid "Show fewer" msgstr "Show fewer" -#: src/Protocol/Diaspora.php:2496 +#: src/Protocol/Diaspora.php:2438 msgid "Sharing notification from Diaspora network" msgstr "Sharing notification from diaspora* network" -#: src/Protocol/Diaspora.php:3613 +#: src/Protocol/Diaspora.php:3598 msgid "Attachments:" msgstr "Attachments:" -#: src/Protocol/OStatus.php:1866 +#: src/Protocol/OStatus.php:1863 #, php-format msgid "%s is now following %s." msgstr "%s is now following %s." -#: src/Protocol/OStatus.php:1867 +#: src/Protocol/OStatus.php:1864 msgid "following" msgstr "following" -#: src/Protocol/OStatus.php:1870 +#: src/Protocol/OStatus.php:1867 #, php-format msgid "%s stopped following %s." msgstr "%s stopped following %s." -#: src/Protocol/OStatus.php:1871 +#: src/Protocol/OStatus.php:1868 msgid "stopped following" msgstr "stopped following" @@ -9691,16 +10115,16 @@ msgstr "in %1$d %2$s" msgid "%1$d %2$s ago" msgstr "%1$d %2$s ago" -#: src/Worker/Delivery.php:453 +#: src/Worker/Delivery.php:450 msgid "(no subject)" msgstr "(no subject)" -#: update.php:217 +#: update.php:218 #, php-format msgid "%s: Updating author-id and owner-id in item and thread table. " msgstr "%s: Updating author-id and owner-id in item and thread table. " -#: update.php:272 +#: update.php:273 #, php-format msgid "%s: Updating post-type." msgstr "%s: Updating post-type." @@ -9729,63 +10153,73 @@ msgstr "comix" msgid "slackr" msgstr "slackr" -#: view/theme/duepuntozero/config.php:75 +#: view/theme/duepuntozero/config.php:74 msgid "Variations" msgstr "Variations" -#: view/theme/frio/config.php:103 +#: view/theme/frio/config.php:105 msgid "Custom" msgstr "Custom" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Note" msgstr "Note" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Check image permissions if all users are allowed to see the image" msgstr "Check image permissions that all everyone is allowed to see the image" -#: view/theme/frio/config.php:122 +#: view/theme/frio/config.php:123 msgid "Select color scheme" msgstr "Select colour scheme" -#: view/theme/frio/config.php:123 +#: view/theme/frio/config.php:124 +msgid "Copy or paste schemestring" +msgstr "Copy or paste theme string" + +#: view/theme/frio/config.php:124 +msgid "" +"You can copy this string to share your theme with others. Pasting here " +"applies the schemestring" +msgstr "You can copy this string to share your theme with others. Pasting here applies the theme string" + +#: view/theme/frio/config.php:125 msgid "Navigation bar background color" msgstr "Navigation bar background colour:" -#: view/theme/frio/config.php:124 +#: view/theme/frio/config.php:126 msgid "Navigation bar icon color " msgstr "Navigation bar icon colour:" -#: view/theme/frio/config.php:125 +#: view/theme/frio/config.php:127 msgid "Link color" msgstr "Link colour:" -#: view/theme/frio/config.php:126 +#: view/theme/frio/config.php:128 msgid "Set the background color" msgstr "Background colour:" -#: view/theme/frio/config.php:127 +#: view/theme/frio/config.php:129 msgid "Content background opacity" msgstr "Content background opacity" -#: view/theme/frio/config.php:128 +#: view/theme/frio/config.php:130 msgid "Set the background image" msgstr "Background image:" -#: view/theme/frio/config.php:129 +#: view/theme/frio/config.php:131 msgid "Background image style" msgstr "Background image style" -#: view/theme/frio/config.php:134 +#: view/theme/frio/config.php:136 msgid "Login page background image" msgstr "Login page background image" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Login page background color" msgstr "Login page background colour" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Leave background image and color empty for theme defaults" msgstr "Leave background image and colour empty for theme defaults" @@ -9833,27 +10267,27 @@ msgstr "Guest" msgid "Visitor" msgstr "Visitor" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Alignment" msgstr "Alignment" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Left" msgstr "Left" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Center" msgstr "Centre" -#: view/theme/quattro/config.php:78 +#: view/theme/quattro/config.php:77 msgid "Color scheme" msgstr "Colour scheme" -#: view/theme/quattro/config.php:79 +#: view/theme/quattro/config.php:78 msgid "Posts font size" msgstr "Posts font size" -#: view/theme/quattro/config.php:80 +#: view/theme/quattro/config.php:79 msgid "Textareas font size" msgstr "Text areas font size" @@ -9861,31 +10295,31 @@ msgstr "Text areas font size" msgid "Comma separated list of helper forums" msgstr "Comma separated list of helper forums" -#: view/theme/vier/config.php:123 +#: view/theme/vier/config.php:122 msgid "Set style" msgstr "Set style" -#: view/theme/vier/config.php:124 +#: view/theme/vier/config.php:123 msgid "Community Pages" msgstr "Community pages" -#: view/theme/vier/config.php:125 view/theme/vier/theme.php:151 +#: view/theme/vier/config.php:124 view/theme/vier/theme.php:151 msgid "Community Profiles" msgstr "Community profiles" -#: view/theme/vier/config.php:126 +#: view/theme/vier/config.php:125 msgid "Help or @NewHere ?" msgstr "Help or @NewHere ?" -#: view/theme/vier/config.php:127 view/theme/vier/theme.php:373 +#: view/theme/vier/config.php:126 view/theme/vier/theme.php:373 msgid "Connect Services" msgstr "Connect services" -#: view/theme/vier/config.php:128 +#: view/theme/vier/config.php:127 msgid "Find Friends" msgstr "Find friends" -#: view/theme/vier/config.php:129 view/theme/vier/theme.php:181 +#: view/theme/vier/config.php:128 view/theme/vier/theme.php:181 msgid "Last users" msgstr "Last users" diff --git a/view/lang/en-gb/strings.php b/view/lang/en-gb/strings.php index ba74851c7..5f82e2c3c 100644 --- a/view/lang/en-gb/strings.php +++ b/view/lang/en-gb/strings.php @@ -37,6 +37,7 @@ $a->strings["Attending"] = [ ]; $a->strings["Not attending"] = "Not attending"; $a->strings["Might attend"] = "Might attend"; +$a->strings["Reshares"] = "Reshares"; $a->strings["Select"] = "Select"; $a->strings["Delete"] = "Delete"; $a->strings["View %s's profile @ %s"] = "View %s's profile @ %s"; @@ -54,6 +55,8 @@ $a->strings["View Photos"] = "View photos"; $a->strings["Network Posts"] = "Network posts"; $a->strings["View Contact"] = "View contact"; $a->strings["Send PM"] = "Send PM"; +$a->strings["Block"] = "Block"; +$a->strings["Ignore"] = "Ignore"; $a->strings["Poke"] = "Poke"; $a->strings["Connect/Follow"] = "Connect/Follow"; $a->strings["%s likes this."] = "%s likes this."; @@ -61,6 +64,7 @@ $a->strings["%s doesn't like this."] = "%s doesn't like this."; $a->strings["%s attends."] = "%s attends."; $a->strings["%s doesn't attend."] = "%s doesn't attend."; $a->strings["%s attends maybe."] = "%s may attend."; +$a->strings["%s reshared this."] = "%s reshared this."; $a->strings["and"] = "and"; $a->strings["and %d other people"] = "and %d other people"; $a->strings["%2\$d people like this"] = "%2\$d people like this"; @@ -73,6 +77,7 @@ $a->strings["%2\$d people don't attend"] = "%2\ $a->strings["%s don't attend."] = "%s don't attend."; $a->strings["%2\$d people attend maybe"] = "%2\$d people attend maybe"; $a->strings["%s attend maybe."] = "%s may be attending."; +$a->strings["%2\$d people reshared this"] = "%2\$d people reshared this"; $a->strings["Visible to everybody"] = "Visible to everybody"; $a->strings["Please enter a image/video/audio/webpage URL:"] = "Please enter an image/video/audio/webpage URL:"; $a->strings["Tag term:"] = "Tag term:"; @@ -195,474 +200,12 @@ $a->strings["Yes"] = "Yes"; $a->strings["Permission denied."] = "Permission denied."; $a->strings["Archives"] = "Archives"; $a->strings["show more"] = "Show more..."; -$a->strings["Theme settings updated."] = "Theme settings updated."; -$a->strings["Information"] = "Information"; -$a->strings["Overview"] = "Overview"; -$a->strings["Federation Statistics"] = "Federation statistics"; -$a->strings["Configuration"] = "Configuration"; -$a->strings["Site"] = "Site"; -$a->strings["Users"] = "Users"; -$a->strings["Addons"] = "Addons"; -$a->strings["Themes"] = "Theme selection"; -$a->strings["Additional features"] = "Additional features"; -$a->strings["Terms of Service"] = "Terms of Service"; -$a->strings["Database"] = "Database"; -$a->strings["DB updates"] = "DB updates"; -$a->strings["Inspect Queue"] = "Inspect queue"; -$a->strings["Inspect Deferred Workers"] = "Inspect deferred workers"; -$a->strings["Inspect worker Queue"] = "Inspect worker queue"; -$a->strings["Tools"] = "Tools"; -$a->strings["Contact Blocklist"] = "Contact blocklist"; -$a->strings["Server Blocklist"] = "Server blocklist"; -$a->strings["Delete Item"] = "Delete item"; -$a->strings["Logs"] = "Logs"; -$a->strings["View Logs"] = "View logs"; -$a->strings["Diagnostics"] = "Diagnostics"; -$a->strings["PHP Info"] = "PHP info"; -$a->strings["probe address"] = "Probe address"; -$a->strings["check webfinger"] = "Check webfinger"; -$a->strings["Admin"] = "Admin"; -$a->strings["Addon Features"] = "Addon features"; -$a->strings["User registrations waiting for confirmation"] = "User registrations awaiting confirmation"; -$a->strings["Administration"] = "Administration"; -$a->strings["Display Terms of Service"] = "Display Terms of Service"; -$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."; -$a->strings["Display Privacy Statement"] = "Display Privacy Statement"; -$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."; -$a->strings["Privacy Statement Preview"] = "Privacy Statement Preview"; -$a->strings["The Terms of Service"] = "Terms of Service"; -$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or lower."; -$a->strings["Save Settings"] = "Save settings"; -$a->strings["Blocked domain"] = "Blocked domain"; -$a->strings["The blocked domain"] = "Blocked domain"; -$a->strings["Reason for the block"] = "Reason for the block"; -$a->strings["The reason why you blocked this domain."] = "Reason why you blocked this domain."; -$a->strings["Delete domain"] = "Delete domain"; -$a->strings["Check to delete this entry from the blocklist"] = "Check to delete this entry from the blocklist"; -$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."; -$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "The list of blocked servers will publicly available on the Friendica page so that your users and people investigating communication problems can readily find the reason."; -$a->strings["Add new entry to block list"] = "Add new entry to block list"; -$a->strings["Server Domain"] = "Server domain"; -$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "The domain of the new server to add to the block list. Do not include the protocol."; -$a->strings["Block reason"] = "Block reason"; -$a->strings["Add Entry"] = "Add entry"; -$a->strings["Save changes to the blocklist"] = "Save changes to the blocklist"; -$a->strings["Current Entries in the Blocklist"] = "Current entries in the blocklist"; -$a->strings["Delete entry from blocklist"] = "Delete entry from blocklist"; -$a->strings["Delete entry from blocklist?"] = "Delete entry from blocklist?"; -$a->strings["Server added to blocklist."] = "Server added to blocklist."; -$a->strings["Site blocklist updated."] = "Site blocklist updated."; -$a->strings["The contact has been blocked from the node"] = "The contact has been blocked from the node"; -$a->strings["Could not find any contact entry for this URL (%s)"] = "Could not find any contact entry for this URL (%s)"; -$a->strings["%s contact unblocked"] = [ - 0 => "%s contact unblocked", - 1 => "%s contacts unblocked", -]; -$a->strings["Remote Contact Blocklist"] = "Remote contact blocklist"; -$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "This page allows you to prevent any message from a remote contact to reach your node."; -$a->strings["Block Remote Contact"] = "Block Remote Contact"; -$a->strings["select all"] = "select all"; -$a->strings["select none"] = "select none"; -$a->strings["Block"] = "Block"; -$a->strings["Unblock"] = "Unblock"; -$a->strings["No remote contact is blocked from this node."] = "No remote contact is blocked from this node."; -$a->strings["Blocked Remote Contacts"] = "Blocked remote contacts"; -$a->strings["Block New Remote Contact"] = "Block new remote contact"; -$a->strings["Photo"] = "Photo"; -$a->strings["Name"] = "Name:"; -$a->strings["Address"] = "Address"; -$a->strings["Profile URL"] = "Profile URL:"; -$a->strings["%s total blocked contact"] = [ - 0 => "%s total blocked contact", - 1 => "%s total blocked contacts", -]; -$a->strings["URL of the remote contact to block."] = "URL of the remote contact to block."; -$a->strings["Delete this Item"] = "Delete"; -$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted."; -$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456."; -$a->strings["GUID"] = "GUID"; -$a->strings["The GUID of the item you want to delete."] = "GUID of item to be deleted."; -$a->strings["Item marked for deletion."] = "Item marked for deletion."; -$a->strings["unknown"] = "unknown"; -$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "This page offers you the amount of known part of the federated social network your Friendica node is part of. These numbers are not complete and only reflect the part of the network your node is aware of."; -$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here."; -$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Currently this node is aware of %d nodes with %d registered users from the following platforms:"; -$a->strings["ID"] = "ID"; -$a->strings["Recipient Name"] = "Recipient name"; -$a->strings["Recipient Profile"] = "Recipient profile"; -$a->strings["Network"] = "Network"; -$a->strings["Created"] = "Created"; -$a->strings["Last Tried"] = "Last Tried"; -$a->strings["This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."] = "This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."; -$a->strings["Inspect Deferred Worker Queue"] = "Inspect Deferred Worker Queue"; -$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed."; -$a->strings["Inspect Worker Queue"] = "Inspect Worker Queue"; -$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."; -$a->strings["Job Parameters"] = "Job Parameters"; -$a->strings["Priority"] = "Priority"; -$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "; -$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "A new Friendica version is available now. Your current version is %1\$s, upstream version is %2\$s"; -$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear."; -$a->strings["The worker was never executed. Please check your database structure!"] = "The worker process has never been executed. Please check your database structure!"; -$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your configuration from .htconfig.php. See the configuration help page for help with the transition."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."; -$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."; -$a->strings["Normal Account"] = "Standard account"; -$a->strings["Automatic Follower Account"] = "Automatic follower account"; -$a->strings["Public Forum Account"] = "Public forum account"; -$a->strings["Automatic Friend Account"] = "Automatic friend account"; -$a->strings["Blog Account"] = "Blog account"; -$a->strings["Private Forum Account"] = "Private forum account"; -$a->strings["Message queues"] = "Message queues"; -$a->strings["Server Settings"] = "Server Settings"; -$a->strings["Summary"] = "Summary"; -$a->strings["Registered users"] = "Registered users"; -$a->strings["Pending registrations"] = "Pending registrations"; -$a->strings["Version"] = "Version"; -$a->strings["Active addons"] = "Active addons"; -$a->strings["Can not parse base url. Must have at least ://"] = "Can not parse base URL. Must have at least ://"; -$a->strings["Site settings updated."] = "Site settings updated."; -$a->strings["No special theme for mobile devices"] = "No special theme for mobile devices"; -$a->strings["No community page for local users"] = "No community page for local users"; -$a->strings["No community page"] = "No community page"; -$a->strings["Public postings from users of this site"] = "Public postings from users of this site"; -$a->strings["Public postings from the federated network"] = "Public postings from the federated network"; -$a->strings["Public postings from local users and the federated network"] = "Public postings from local users and the federated network"; -$a->strings["Disabled"] = "Disabled"; -$a->strings["Users, Global Contacts"] = "Users, Global Contacts"; -$a->strings["Users, Global Contacts/fallback"] = "Users, Global Contacts/fallback"; -$a->strings["One month"] = "One month"; -$a->strings["Three months"] = "Three months"; -$a->strings["Half a year"] = "Half a year"; -$a->strings["One year"] = "One a year"; -$a->strings["Multi user instance"] = "Multi user instance"; -$a->strings["Closed"] = "Closed"; -$a->strings["Requires approval"] = "Requires approval"; -$a->strings["Open"] = "Open"; -$a->strings["No SSL policy, links will track page SSL state"] = "No SSL policy, links will track page SSL state"; -$a->strings["Force all links to use SSL"] = "Force all links to use SSL"; -$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Self-signed certificate, use SSL for local links only (discouraged)"; -$a->strings["Don't check"] = "Don't check"; -$a->strings["check the stable version"] = "check for stable version updates"; -$a->strings["check the development version"] = "check for development version updates"; -$a->strings["Database (legacy)"] = "Database (legacy)"; -$a->strings["Republish users to directory"] = "Republish users to directory"; -$a->strings["Registration"] = "Join this Friendica Node Today"; -$a->strings["File upload"] = "File upload"; -$a->strings["Policies"] = "Policies"; -$a->strings["Advanced"] = "Advanced"; -$a->strings["Auto Discovered Contact Directory"] = "Auto-discovered contact directory"; -$a->strings["Performance"] = "Performance"; -$a->strings["Worker"] = "Worker"; -$a->strings["Message Relay"] = "Message relay"; -$a->strings["Relocate Instance"] = "Relocate Instance"; -$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Warning! Advanced function that could make this server unreachable."; -$a->strings["Site name"] = "Site name"; -$a->strings["Host name"] = "Host name"; -$a->strings["Sender Email"] = "Sender email"; -$a->strings["The email address your server shall use to send notification emails from."] = "The email address your server shall use to send notification emails from."; -$a->strings["Banner/Logo"] = "Banner/Logo"; -$a->strings["Shortcut icon"] = "Shortcut icon"; -$a->strings["Link to an icon that will be used for browsers."] = "Link to an icon that will be used for browsers."; -$a->strings["Touch icon"] = "Touch icon"; -$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link to an icon that will be used for tablets and mobiles."; -$a->strings["Additional Info"] = "Additional Info"; -$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "For public servers: You can add additional information here that will be listed at %s/servers."; -$a->strings["System language"] = "System language"; -$a->strings["System theme"] = "System theme"; -$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Default system theme - may be overridden by user profiles - change theme settings"; -$a->strings["Mobile system theme"] = "Mobile system theme"; -$a->strings["Theme for mobile devices"] = "Theme for mobile devices"; -$a->strings["SSL link policy"] = "SSL link policy"; -$a->strings["Determines whether generated links should be forced to use SSL"] = "Determines whether generated links should be forced to use SSL"; -$a->strings["Force SSL"] = "Force SSL"; -$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."; -$a->strings["Hide help entry from navigation menu"] = "Hide help entry from navigation menu"; -$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL."; -$a->strings["Single user instance"] = "Single user instance"; -$a->strings["Make this instance multi-user or single-user for the named user"] = "Make this instance multi-user or single-user for the named user"; -$a->strings["File storage backend"] = "File storage backend"; -$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you don't do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."; -$a->strings["Maximum image size"] = "Maximum image size"; -$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximum size in bytes of uploaded images. Default is 0, which means no limits."; -$a->strings["Maximum image length"] = "Maximum image length"; -$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."; -$a->strings["JPEG image quality"] = "JPEG image quality"; -$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is the original quality level."; -$a->strings["Register policy"] = "Registration policy"; -$a->strings["Maximum Daily Registrations"] = "Maximum daily registrations"; -$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval."; -$a->strings["Register text"] = "Registration text"; -$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Will be displayed prominently on the registration page. You may use BBCode here."; -$a->strings["Forbidden Nicknames"] = "Forbidden Nicknames"; -$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."; -$a->strings["Accounts abandoned after x days"] = "Accounts abandoned after so many days"; -$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."; -$a->strings["Allowed friend domains"] = "Allowed friend domains"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains"; -$a->strings["Allowed email domains"] = "Allowed email domains"; -$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains"; -$a->strings["No OEmbed rich content"] = "No OEmbed rich content"; -$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Don't show rich content (e.g. embedded PDF), except from the domains listed below."; -$a->strings["Allowed OEmbed domains"] = "Allowed OEmbed domains"; -$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Comma separated list of domains from where OEmbed content is allowed. Wildcards are possible."; -$a->strings["Block public"] = "Block public"; -$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Block public access to all otherwise public personal pages on this site, except for local users when logged in."; -$a->strings["Force publish"] = "Mandatory directory listing"; -$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Force all profiles on this site to be listed in the site directory."; -$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Enabling this may violate privacy laws like the GDPR"; -$a->strings["Global directory URL"] = "Global directory URL"; -$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL to the global directory: If this is not set, the global directory is completely unavailable to the application."; -$a->strings["Private posts by default for new users"] = "Private posts by default for new users"; -$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Set default post permissions for all new members to the default privacy group rather than public."; -$a->strings["Don't include post content in email notifications"] = "Don't include post content in email notifications"; -$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure."; -$a->strings["Disallow public access to addons listed in the apps menu."] = "Disallow public access to addons listed in the apps menu."; -$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Checking this box will restrict addons listed in the apps menu to members only."; -$a->strings["Don't embed private images in posts"] = "Don't embed private images in posts"; -$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."; -$a->strings["Explicit Content"] = "Explicit Content"; -$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."; -$a->strings["Allow Users to set remote_self"] = "Allow users to set \"Remote self\""; -$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream."; -$a->strings["Block multiple registrations"] = "Block multiple registrations"; -$a->strings["Disallow users to register additional accounts for use as pages."] = "Disallow users to sign up for additional accounts."; -$a->strings["Disable OpenID"] = "Disable OpenID"; -$a->strings["Disable OpenID support for registration and logins."] = "Disable OpenID support for registration and logins."; -$a->strings["No Fullname check"] = "No full name check"; -$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Allow users to register without a space between the first name and the last name in their full name."; -$a->strings["Community pages for visitors"] = "Community pages for visitors"; -$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Community pages that should be available for visitors. Local users always see both pages."; -$a->strings["Posts per user on community page"] = "Posts per user on community page"; -$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = "Maximum number of posts per user on the community page (not valid for 'Global Community')."; -$a->strings["Disable OStatus support"] = "Disable OStatus support"; -$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."; -$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Only import OStatus/ActivityPub threads from our contacts"; -$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."; -$a->strings["OStatus support can only be enabled if threading is enabled."] = "OStatus support can only be enabled if threading is enabled."; -$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "diaspora* support can't be enabled because Friendica was installed into a sub directory."; -$a->strings["Enable Diaspora support"] = "Enable diaspora* support"; -$a->strings["Provide built-in Diaspora network compatibility."] = "Provide built-in diaspora* network compatibility."; -$a->strings["Only allow Friendica contacts"] = "Only allow Friendica contacts"; -$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled."; -$a->strings["Verify SSL"] = "Verify SSL"; -$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."; -$a->strings["Proxy user"] = "Proxy user"; -$a->strings["Proxy URL"] = "Proxy URL"; -$a->strings["Network timeout"] = "Network timeout"; -$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Value is in seconds. Set to 0 for unlimited (not recommended)."; -$a->strings["Maximum Load Average"] = "Maximum load average"; -$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximum system load before delivery and poll processes are deferred (default 50)."; -$a->strings["Maximum Load Average (Frontend)"] = "Maximum load average (frontend)"; -$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maximum system load before the frontend quits service (default 50)."; -$a->strings["Minimal Memory"] = "Minimal memory"; -$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."; -$a->strings["Maximum table size for optimization"] = "Maximum table size for optimization"; -$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it."; -$a->strings["Minimum level of fragmentation"] = "Minimum level of fragmentation"; -$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimum fragmentation level to start the automatic optimization (default 30%)."; -$a->strings["Periodical check of global contacts"] = "Periodical check of global contacts"; -$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers."; -$a->strings["Days between requery"] = "Days between enquiry"; -$a->strings["Number of days after which a server is requeried for his contacts."] = "Number of days after which a server is required check contacts."; -$a->strings["Discover contacts from other servers"] = "Discover contacts from other servers"; -$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."] = "Periodically query other servers for contacts. You can choose between 'users': the users on the remote system and 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."; -$a->strings["Timeframe for fetching global contacts"] = "Time-frame for fetching global contacts"; -$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers."; -$a->strings["Search the local directory"] = "Search the local directory"; -$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."; -$a->strings["Publish server information"] = "Publish server information"; -$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "This publishes generic data about the server and its usage. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."; -$a->strings["Check upstream version"] = "Check upstream version"; -$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."; -$a->strings["Suppress Tags"] = "Suppress tags"; -$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Suppress listed hashtags at the end of posts."; -$a->strings["Clean database"] = "Clean database"; -$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Remove old remote items, orphaned database records and old content from some other helper tables."; -$a->strings["Lifespan of remote items"] = "Lifespan of remote items"; -$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."; -$a->strings["Lifespan of unclaimed items"] = "Lifespan of unclaimed items"; -$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."; -$a->strings["Lifespan of raw conversation data"] = "Lifespan of raw conversation data"; -$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."; -$a->strings["Path to item cache"] = "Path to item cache"; -$a->strings["The item caches buffers generated bbcode and external images."] = "The item caches buffers generated bbcode and external images."; -$a->strings["Cache duration in seconds"] = "Cache duration in seconds"; -$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)"; -$a->strings["Maximum numbers of comments per post"] = "Maximum numbers of comments per post"; -$a->strings["How much comments should be shown for each post? Default value is 100."] = "How many comments should be shown for each post? (Default 100)"; -$a->strings["Temp path"] = "Temp path"; -$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Enter a different tmp path, if your system restricts the webserver's access to the system temp path."; -$a->strings["Base path to installation"] = "Base path to installation"; -$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."; -$a->strings["Disable picture proxy"] = "Disable picture proxy"; -$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."; -$a->strings["Only search in tags"] = "Only search in tags"; -$a->strings["On large systems the text search can slow down the system extremely."] = "On large systems the text search can slow down the system significantly."; -$a->strings["New base url"] = "New base URL"; -$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Change base url for this server. Sends relocate message to all Friendica and diaspora* contacts of all users."; -$a->strings["RINO Encryption"] = "RINO Encryption"; -$a->strings["Encryption layer between nodes."] = "Encryption layer between nodes."; -$a->strings["Enabled"] = "Enabled"; -$a->strings["Maximum number of parallel workers"] = "Maximum number of parallel workers"; -$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."; -$a->strings["Don't use 'proc_open' with the worker"] = "Don't use 'proc_open' with the worker"; -$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."; -$a->strings["Enable fastlane"] = "Enable fast-lane"; -$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."; -$a->strings["Enable frontend worker"] = "Enable frontend worker"; -$a->strings["When enabled the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilise cron/scheduled jobs on your server."; -$a->strings["Subscribe to relay"] = "Subscribe to relay"; -$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Receive public posts from the specified relay. Post will be included in searches, subscribed tags and on the global community page."; -$a->strings["Relay server"] = "Relay server"; -$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Address of the relay server where public posts should be send to. For example https://relay.diasp.org"; -$a->strings["Direct relay transfer"] = "Direct relay transfer"; -$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Enables direct transfer to other servers without using a relay server."; -$a->strings["Relay scope"] = "Relay scope"; -$a->strings["Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."] = "Set to 'all' or 'tags'. 'all' means receive every public post; 'tags' receive public posts only with specified tags."; -$a->strings["all"] = "all"; -$a->strings["tags"] = "tags"; -$a->strings["Server tags"] = "Server tags"; -$a->strings["Comma separated list of tags for the 'tags' subscription."] = "Comma separated tags for subscription."; -$a->strings["Allow user tags"] = "Allow user tags"; -$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "Use user-generated tags from saved searches for 'tags' subscription in addition to 'relay_server_tags'."; -$a->strings["Start Relocation"] = "Start Relocation"; -$a->strings["Update has been marked successful"] = "Update has been marked successful"; -$a->strings["Database structure update %s was successfully applied."] = "Database structure update %s was successfully applied."; -$a->strings["Executing of database structure update %s failed with error: %s"] = "Executing of database structure update %s failed with error: %s"; -$a->strings["Executing %s failed with error: %s"] = "Executing %s failed with error: %s"; -$a->strings["Update %s was successfully applied."] = "Update %s was successfully applied."; -$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s did not return a status. Unknown if it succeeded."; -$a->strings["There was no additional update function %s that needed to be called."] = "There was no additional update function %s that needed to be called."; -$a->strings["No failed updates."] = "No failed updates."; -$a->strings["Check database structure"] = "Check database structure"; -$a->strings["Failed Updates"] = "Failed updates"; -$a->strings["This does not include updates prior to 1139, which did not return a status."] = "This does not include updates prior to 1139, which did not return a status."; -$a->strings["Mark success (if update was manually applied)"] = "Mark success (if update was manually applied)"; -$a->strings["Attempt to execute this update step automatically"] = "Attempt to execute this update step automatically"; -$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tDear %1\$s,\n\t\t\t\tThe administrator of %2\$s has set up an account for you."; -$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."; -$a->strings["Registration details for %s"] = "Registration details for %s"; -$a->strings["%s user blocked/unblocked"] = [ - 0 => "%s user blocked/unblocked", - 1 => "%s users blocked/unblocked", -]; -$a->strings["You can't remove yourself"] = "You can't remove yourself"; -$a->strings["%s user deleted"] = [ - 0 => "%s user deleted", - 1 => "%s users deleted", -]; -$a->strings["User '%s' deleted"] = "User '%s' deleted"; -$a->strings["User '%s' unblocked"] = "User '%s' unblocked"; -$a->strings["User '%s' blocked"] = "User '%s' blocked"; -$a->strings["Normal Account Page"] = "Standard"; -$a->strings["Soapbox Page"] = "Soapbox"; -$a->strings["Public Forum"] = "Public forum"; -$a->strings["Automatic Friend Page"] = "Love-all"; -$a->strings["Private Forum"] = "Private Forum"; -$a->strings["Personal Page"] = "Personal Page"; -$a->strings["Organisation Page"] = "Organisation Page"; -$a->strings["News Page"] = "News Page"; -$a->strings["Community Forum"] = "Community Forum"; -$a->strings["Relay"] = "Relay"; -$a->strings["Email"] = "Email"; -$a->strings["Register date"] = "Registration date"; -$a->strings["Last login"] = "Last login"; -$a->strings["Last item"] = "Last item"; -$a->strings["Type"] = "Type"; -$a->strings["Add User"] = "Add user"; -$a->strings["User registrations waiting for confirm"] = "User registrations awaiting confirmation"; -$a->strings["User waiting for permanent deletion"] = "User awaiting permanent deletion"; -$a->strings["Request date"] = "Request date"; -$a->strings["No registrations."] = "No registrations."; -$a->strings["Note from the user"] = "Note from the user"; -$a->strings["Approve"] = "Approve"; -$a->strings["Deny"] = "Deny"; -$a->strings["User blocked"] = "User blocked"; -$a->strings["Site admin"] = "Site admin"; -$a->strings["Account expired"] = "Account expired"; -$a->strings["New User"] = "New user"; -$a->strings["Permanent deletion"] = "Permanent deletion"; -$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Selected users will be deleted!\\n\\nEverything these users has posted on this site will be permanently deleted!\\n\\nAre you sure?"; -$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"; -$a->strings["Name of the new user."] = "Name of the new user."; -$a->strings["Nickname"] = "Nickname"; -$a->strings["Nickname of the new user."] = "Nickname of the new user."; -$a->strings["Email address of the new user."] = "Email address of the new user."; -$a->strings["Addon %s disabled."] = "Addon %s disabled."; -$a->strings["Addon %s enabled."] = "Addon %s enabled."; -$a->strings["Disable"] = "Disable"; -$a->strings["Enable"] = "Enable"; -$a->strings["Toggle"] = "Toggle"; -$a->strings["Settings"] = "Settings"; -$a->strings["Author: "] = "Author: "; -$a->strings["Maintainer: "] = "Maintainer: "; -$a->strings["Reload active addons"] = "Reload active addons"; -$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"; -$a->strings["No themes found."] = "No themes found."; -$a->strings["Screenshot"] = "Screenshot"; -$a->strings["Reload active themes"] = "Reload active themes"; -$a->strings["No themes found on the system. They should be placed in %1\$s"] = "No themes found on the system. They should be placed in %1\$s"; -$a->strings["[Experimental]"] = "[Experimental]"; -$a->strings["[Unsupported]"] = "[Unsupported]"; -$a->strings["Log settings updated."] = "Log settings updated."; -$a->strings["PHP log currently enabled."] = "PHP log currently enabled."; -$a->strings["PHP log currently disabled."] = "PHP log currently disabled."; -$a->strings["Clear"] = "Clear"; -$a->strings["Enable Debugging"] = "Enable debugging"; -$a->strings["Log file"] = "Log file"; -$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Must be writable by web server and relative to your Friendica top-level directory."; -$a->strings["Log level"] = "Log level"; -$a->strings["PHP logging"] = "PHP logging"; -$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."; -$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."; -$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Couldn't open %1\$s log file.\\r\\n
    Check if file %1\$s is readable."; -$a->strings["Off"] = "Off"; -$a->strings["On"] = "On"; -$a->strings["Lock feature %s"] = "Lock feature %s"; -$a->strings["Manage Additional Features"] = "Manage additional features"; -$a->strings["No friends to display."] = "No friends to display."; -$a->strings["Connect"] = "Connect"; $a->strings["Authorize application connection"] = "Authorise application connection"; $a->strings["Return to your app and insert this Securty Code:"] = "Return to your app and insert this security code:"; $a->strings["Please login to continue."] = "Please login to continue."; $a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Do you want to authorise this application to access your posts and contacts and create new posts for you?"; $a->strings["No"] = "No"; -$a->strings["You must be logged in to use addons. "] = "You must be logged in to use addons. "; -$a->strings["Applications"] = "Applications"; -$a->strings["No installed applications."] = "No installed applications."; -$a->strings["Source input"] = "Source input"; -$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; -$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (raw HTML)"; -$a->strings["BBCode::convert"] = "BBCode::convert"; -$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; -$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; -$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; -$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; -$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; -$a->strings["Item Body"] = "Item Body"; -$a->strings["Item Tags"] = "Item Tags"; -$a->strings["Source input (Diaspora format)"] = "Source input (diaspora* format)"; -$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (raw HTML)"; -$a->strings["Markdown::convert"] = "Markdown::convert"; -$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; -$a->strings["Raw HTML input"] = "Raw HTML input"; -$a->strings["HTML Input"] = "HTML input"; -$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; -$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; -$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (raw HTML)"; -$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; -$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; -$a->strings["Source text"] = "Source text"; -$a->strings["BBCode"] = "BBCode"; -$a->strings["Markdown"] = "Markdown"; -$a->strings["HTML"] = "HTML"; -$a->strings["Login"] = "Login"; -$a->strings["Bad Request"] = "Bad Request"; -$a->strings["The post was created"] = "The post was created"; $a->strings["Access denied."] = "Access denied."; -$a->strings["Page not found."] = "Page not found"; $a->strings["Access to this profile has been restricted."] = "Access to this profile has been restricted."; $a->strings["Events"] = "Events"; $a->strings["View"] = "View"; @@ -688,8 +231,6 @@ $a->strings["Global Community"] = "Global Community"; $a->strings["Posts from users of the whole federated network"] = "Posts from users of the whole federated network"; $a->strings["No results."] = "No results."; $a->strings["This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users."] = "This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users."; -$a->strings["Credits"] = "Credits"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"; $a->strings["Contact settings applied."] = "Contact settings applied."; $a->strings["Contact update failed."] = "Contact update failed."; $a->strings["Contact not found."] = "Contact not found."; @@ -704,6 +245,7 @@ $a->strings["Submit"] = "Submit"; $a->strings["Remote Self"] = "Remote self"; $a->strings["Mirror postings from this contact"] = "Mirror postings from this contact:"; $a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "This will cause Friendica to repost new entries from this contact."; +$a->strings["Name"] = "Name:"; $a->strings["Account Nickname"] = "Account nickname:"; $a->strings["@Tagname - overrides Name/Nickname"] = "@Tag name - overrides name/nickname:"; $a->strings["Account URL"] = "Account URL:"; @@ -719,6 +261,7 @@ $a->strings["Parent Password:"] = "Parent password:"; $a->strings["Please enter the password of the parent account to legitimize your request."] = "Please enter the password of the parent account to authorise this request."; $a->strings["Parent User"] = "Parent user"; $a->strings["Parent users have total control about this account, including the account settings. Please double check whom you give this access."] = "Parent users have total control of this account, including core settings. Please double-check whom you grant such access."; +$a->strings["Save Settings"] = "Save settings"; $a->strings["Delegate Page Management"] = "Delegate Page Management"; $a->strings["Delegates"] = "Delegates"; $a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Delegates are able to manage all aspects of this account except for key setting features. Please do not delegate your personal account to anybody that you do not trust completely."; @@ -735,7 +278,6 @@ $a->strings["Confirmation completed successfully."] = "Confirmation completed su $a->strings["Temporary failure. Please wait and try again."] = "Temporary failure. Please wait and try again."; $a->strings["Introduction failed or was revoked."] = "Introduction failed or was revoked."; $a->strings["Remote site reported: "] = "Remote site reported: "; -$a->strings["Unable to set contact photo."] = "Unable to set contact photo."; $a->strings["No user record found for '%s' "] = "No user record found for '%s' "; $a->strings["Our site encryption key is apparently messed up."] = "Our site encryption key is apparently messed up."; $a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "An empty URL was provided or the URL could not be decrypted by us."; @@ -765,6 +307,7 @@ $a->strings["You have already introduced yourself here."] = "You have already in $a->strings["Apparently you are already friends with %s."] = "Apparently you are already friends with %s."; $a->strings["Invalid profile URL."] = "Invalid profile URL."; $a->strings["Disallowed profile URL."] = "Disallowed profile URL."; +$a->strings["Blocked domain"] = "Blocked domain"; $a->strings["Failed to update contact record."] = "Failed to update contact record."; $a->strings["Your introduction has been sent."] = "Your introduction has been sent."; $a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "Remote subscription can't be done for your network. Please subscribe directly on your system."; @@ -787,20 +330,12 @@ $a->strings["Diaspora (Socialhome, Hubzilla)"] = "diaspora* (Socialhome, Hubzill $a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - please do not use this form. Instead, enter %s into your diaspora* search bar."; $a->strings["Your Identity Address:"] = "My identity address:"; $a->strings["Submit Request"] = "Submit request"; -$a->strings["Location:"] = "Location:"; -$a->strings["Gender:"] = "Gender:"; -$a->strings["Status:"] = "Status:"; -$a->strings["Homepage:"] = "Homepage:"; -$a->strings["About:"] = "About:"; -$a->strings["Global Directory"] = "Global Directory"; -$a->strings["Find on this site"] = "Find on this site"; -$a->strings["Results for:"] = "Results for:"; -$a->strings["Site Directory"] = "Site directory"; -$a->strings["Find"] = "Find"; -$a->strings["No entries (some entries may be hidden)."] = "No entries (entries may be hidden)."; $a->strings["People Search - %s"] = "People search - %s"; $a->strings["Forum Search - %s"] = "Forum search - %s"; +$a->strings["Connect"] = "Connect"; $a->strings["No matches"] = "No matches"; +$a->strings["The requested item doesn't exist or has been deleted."] = "The requested item doesn't exist or has been deleted."; +$a->strings["The feed for this item is unavailable."] = "The feed for this item is unavailable."; $a->strings["Item not found"] = "Item not found"; $a->strings["Edit post"] = "Edit post"; $a->strings["Save"] = "Save"; @@ -823,9 +358,11 @@ $a->strings["Finish date/time is not known or not relevant"] = "Finish date/time $a->strings["Event Finishes:"] = "Event finishes:"; $a->strings["Adjust for viewer timezone"] = "Adjust for viewer's time zone"; $a->strings["Description:"] = "Description:"; +$a->strings["Location:"] = "Location:"; $a->strings["Title:"] = "Title:"; $a->strings["Share this event"] = "Share this event"; $a->strings["Basic"] = "Basic"; +$a->strings["Advanced"] = "Advanced"; $a->strings["Permissions"] = "Permissions"; $a->strings["Failed to remove event"] = "Failed to remove event"; $a->strings["Event removed"] = "Event removed"; @@ -833,89 +370,24 @@ $a->strings["Photos"] = "Photos"; $a->strings["Contact Photos"] = "Contact photos"; $a->strings["Upload"] = "Upload"; $a->strings["Files"] = "Files"; -$a->strings["You must be logged in to use this module"] = "You must be logged in to use this module"; -$a->strings["Source URL"] = "Source URL"; -$a->strings["- select -"] = "- select -"; $a->strings["The contact could not be added."] = "Contact could not be added."; $a->strings["You already added this contact."] = "You already added this contact."; $a->strings["Diaspora support isn't enabled. Contact can't be added."] = "diaspora* support isn't enabled. Contact can't be added."; $a->strings["OStatus support is disabled. Contact can't be added."] = "OStatus support is disabled. Contact can't be added."; $a->strings["The network type couldn't be detected. Contact can't be added."] = "The network type couldn't be detected. Contact can't be added."; +$a->strings["Profile URL"] = "Profile URL:"; $a->strings["Tags:"] = "Tags:"; $a->strings["Status Messages and Posts"] = "Status Messages and Posts"; -$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."; -$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Please visit Friendi.ca to learn more about the Friendica project."; -$a->strings["Bug reports and issues: please visit"] = "Bug reports and issues: please visit"; -$a->strings["the bugtracker at github"] = "the bugtracker at github"; -$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"; -$a->strings["Installed addons/apps:"] = "Installed addons/apps:"; -$a->strings["No installed addons/apps"] = "No installed addons/apps"; -$a->strings["Read about the Terms of Service of this node."] = "Read about the Terms of Service of this node."; -$a->strings["On this server the following remote servers are blocked."] = "On this server the following remote servers are blocked."; $a->strings["Friend suggestion sent."] = "Friend suggestion sent"; $a->strings["Suggest Friends"] = "Suggest friends"; $a->strings["Suggest a friend for %s"] = "Suggest a friend for %s"; -$a->strings["Group created."] = "Group created."; -$a->strings["Could not create group."] = "Could not create group."; -$a->strings["Group not found."] = "Group not found."; -$a->strings["Group name changed."] = "Group name changed."; -$a->strings["Permission denied"] = "Permission denied"; -$a->strings["Save Group"] = "Save group"; -$a->strings["Filter"] = "Filter"; -$a->strings["Create a group of contacts/friends."] = "Create a group of contacts/friends."; -$a->strings["Group Name: "] = "Group name: "; -$a->strings["Contacts not in any group"] = "Contacts not in any group"; -$a->strings["Group removed."] = "Group removed."; -$a->strings["Unable to remove group."] = "Unable to remove group."; -$a->strings["Delete Group"] = "Delete group"; -$a->strings["Edit Group Name"] = "Edit group name"; -$a->strings["Members"] = "Members"; -$a->strings["All Contacts"] = "All contacts"; -$a->strings["Group is empty"] = "Group is empty"; -$a->strings["Remove contact from group"] = "Remove contact from group"; -$a->strings["Click on a contact to add or remove."] = "Click on a contact to add or remove it."; -$a->strings["Add contact to group"] = "Add contact to group"; $a->strings["No profile"] = "No profile"; -$a->strings["Help:"] = "Help:"; -$a->strings["Help"] = "Help"; -$a->strings["Not Found"] = "Not found"; -$a->strings["Welcome to %s"] = "Welcome to %s"; -$a->strings["Total invitation limit exceeded."] = "Total invitation limit exceeded"; -$a->strings["%s : Not a valid email address."] = "%s : Not a valid email address"; -$a->strings["Please join us on Friendica"] = "Please join us on Friendica."; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Invitation limit is exceeded. Please contact your site administrator."; -$a->strings["%s : Message delivery failed."] = "%s : Message delivery failed"; -$a->strings["%d message sent."] = [ - 0 => "%d message sent.", - 1 => "%d messages sent.", -]; -$a->strings["You have no more invitations available"] = "You have no more invitations available."; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "To accept this invitation, please sign up at %s or any other public Friendica website."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica sites are all inter-connect to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Our apologies. This system is not currently configured to connect with other public sites or invite members."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Friendica sites are all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks."; -$a->strings["To accept this invitation, please visit and register at %s."] = "To accept this invitation, please visit and register at %s."; -$a->strings["Send invitations"] = "Send invitations"; -$a->strings["Enter email addresses, one per line:"] = "Enter email addresses, one per line:"; -$a->strings["Your message:"] = "Your message:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "You will need to supply this invitation code: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Once you have signed up, please connect with me via my profile page at:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"; $a->strings["Unable to locate original post."] = "Unable to locate original post."; $a->strings["Empty post discarded."] = "Empty post discarded."; $a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "This message was sent to you by %s, a member of the Friendica social network."; $a->strings["You may visit them online at %s"] = "You may visit them online at %s"; $a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Please contact the sender by replying to this post if you do not wish to receive these messages."; $a->strings["%s posted an update."] = "%s posted an update."; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; -$a->strings["Time Conversion"] = "Time conversion"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica provides this service for sharing events with other networks and friends in unknown time zones."; -$a->strings["UTC time: %s"] = "UTC time: %s"; -$a->strings["Current timezone: %s"] = "Current time zone: %s"; -$a->strings["Converted localtime: %s"] = "Converted local time: %s"; -$a->strings["Please select your timezone:"] = "Please select your time zone:"; $a->strings["Remote privacy information not available."] = "Remote privacy information not available."; $a->strings["Visible to:"] = "Visible to:"; $a->strings["No valid account found."] = "No valid account found."; @@ -938,7 +410,6 @@ $a->strings["Your password may be changed from the Settings page after $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t"] = "\n\t\t\tDear %1\$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t"; $a->strings["\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t%2\$s\n\t\t\tPassword:\t%3\$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t"] = "\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t%2\$s\n\t\t\tPassword:\t%3\$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t"; $a->strings["Your password has been changed at %s"] = "Your password has been changed at %s"; -$a->strings["System down for maintenance"] = "Sorry, the system is currently down for maintenance."; $a->strings["Manage Identities and/or Pages"] = "Manage Identities and Pages"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Accounts that I manage or own."; $a->strings["Select an identity to manage: "] = "Select identity:"; @@ -962,6 +433,7 @@ $a->strings["Please enter a link URL:"] = "Please enter a link URL:"; $a->strings["Send Private Message"] = "Send private message"; $a->strings["To:"] = "To:"; $a->strings["Subject:"] = "Subject:"; +$a->strings["Your message:"] = "Your message:"; $a->strings["No messages."] = "No messages."; $a->strings["Message not available."] = "Message not available."; $a->strings["Delete message"] = "Delete message"; @@ -985,6 +457,7 @@ $a->strings["Warning: This group contains %s member from a network that doesn't ]; $a->strings["Messages in this group won't be send to these receivers."] = "Messages in this group won't be send to these receivers."; $a->strings["No such group"] = "No such group"; +$a->strings["Group is empty"] = "Group is empty"; $a->strings["Group: %s"] = "Group: %s"; $a->strings["Private messages to this person are at risk of public disclosure."] = "Private messages to this person are at risk of public disclosure."; $a->strings["Invalid contact."] = "Invalid contact."; @@ -1006,6 +479,7 @@ $a->strings["We would like to offer some tips and links to help make your experi $a->strings["Getting Started"] = "Getting started"; $a->strings["Friendica Walk-Through"] = "Friendica walk-through"; $a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."; +$a->strings["Settings"] = "Settings"; $a->strings["Go to Your Settings"] = "Go to your settings"; $a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."; $a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."; @@ -1035,7 +509,6 @@ $a->strings["Go to the Help Section"] = "Go to the help section"; $a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Our help pages may be consulted for detail on other program features and resources."; $a->strings["Personal Notes"] = "Personal notes"; $a->strings["Invalid request identifier."] = "Invalid request identifier."; -$a->strings["Ignore"] = "Ignore"; $a->strings["Notifications"] = "Notifications"; $a->strings["Network Notifications"] = "Network notifications"; $a->strings["System Notifications"] = "System notifications"; @@ -1048,6 +521,7 @@ $a->strings["Hide Ignored Requests"] = "Hide ignored requests"; $a->strings["Notification type:"] = "Notification type:"; $a->strings["Suggested by:"] = "Suggested by:"; $a->strings["Hide this contact from others"] = "Hide this contact from others"; +$a->strings["Approve"] = "Approve"; $a->strings["Claims to be known to you: "] = "Says they know me:"; $a->strings["yes"] = "yes"; $a->strings["no"] = "no"; @@ -1058,6 +532,8 @@ $a->strings["Accepting %s as a sharer allows them to subscribe to your posts, bu $a->strings["Friend"] = "Friend"; $a->strings["Sharer"] = "Sharer"; $a->strings["Subscriber"] = "Subscriber"; +$a->strings["About:"] = "About:"; +$a->strings["Gender:"] = "Gender:"; $a->strings["Network:"] = "Network:"; $a->strings["No introductions."] = "No introductions."; $a->strings["No more %s notifications."] = "No more %s notifications."; @@ -1081,10 +557,8 @@ $a->strings["Upload New Photos"] = "Upload new photos"; $a->strings["everybody"] = "everybody"; $a->strings["Contact information unavailable"] = "Contact information unavailable"; $a->strings["Album not found."] = "Album not found."; -$a->strings["Delete Album"] = "Delete album"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Do you really want to delete this photo album and all its photos?"; -$a->strings["Delete Photo"] = "Delete photo"; -$a->strings["Do you really want to delete this photo?"] = "Do you really want to delete this photo?"; +$a->strings["Album successfully deleted"] = "Album successfully deleted"; +$a->strings["Album was empty."] = "Album was empty."; $a->strings["a photo"] = "a photo"; $a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s was tagged in %2\$s by %3\$s"; $a->strings["Image exceeds size limit of %s"] = "Image exceeds size limit of %s"; @@ -1102,16 +576,22 @@ $a->strings["or select existing album:"] = "or select existing album:"; $a->strings["Do not show a status post for this upload"] = "Do not show a status post for this upload"; $a->strings["Show to Groups"] = "Show to groups"; $a->strings["Show to Contacts"] = "Show to contacts"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Do you really want to delete this photo album and all its photos?"; +$a->strings["Delete Album"] = "Delete album"; $a->strings["Edit Album"] = "Edit album"; +$a->strings["Drop Album"] = "Drop album"; $a->strings["Show Newest First"] = "Show newest first"; $a->strings["Show Oldest First"] = "Show oldest first"; $a->strings["View Photo"] = "View photo"; $a->strings["Permission denied. Access to this item may be restricted."] = "Permission denied. Access to this item may be restricted."; $a->strings["Photo not available"] = "Photo not available"; +$a->strings["Do you really want to delete this photo?"] = "Do you really want to delete this photo?"; +$a->strings["Delete Photo"] = "Delete photo"; $a->strings["View photo"] = "View photo"; $a->strings["Edit photo"] = "Edit photo"; +$a->strings["Delete photo"] = "Delete photo"; $a->strings["Use as profile photo"] = "Use as profile photo"; -$a->strings["Private Message"] = "Private message"; +$a->strings["Private Photo"] = "Private photo"; $a->strings["View Full Size"] = "View full size"; $a->strings["Tags: "] = "Tags: "; $a->strings["[Select tags to remove]"] = "[Select tags to remove]"; @@ -1151,6 +631,7 @@ $a->strings["Sexual Preference"] = "Sexual preference"; $a->strings["XMPP"] = "XMPP"; $a->strings["Homepage"] = "Homepage"; $a->strings["Interests"] = "Interests"; +$a->strings["Address"] = "Address"; $a->strings["Location"] = "Location"; $a->strings["Profile updated."] = "Profile updated."; $a->strings["Hide contacts and friends:"] = "Hide contacts and friends:"; @@ -1229,8 +710,10 @@ $a->strings["Crop Image"] = "Crop Image"; $a->strings["Please adjust the image cropping for optimum viewing."] = "Please adjust the image cropping for optimum viewing."; $a->strings["Done Editing"] = "Done editing"; $a->strings["Image uploaded successfully."] = "Image uploaded successfully."; +$a->strings["Permission denied"] = "Permission denied"; $a->strings["Invalid profile identifier."] = "Invalid profile identifier."; $a->strings["Profile Visibility Editor"] = "Profile Visibility Editor"; +$a->strings["Click on a contact to add or remove."] = "Click on a contact to add or remove it."; $a->strings["Visible To"] = "Visible to"; $a->strings["All Contacts (with secure profile access)"] = "All contacts with secure profile access"; $a->strings["Account approved."] = "Account approved."; @@ -1245,15 +728,17 @@ $a->strings["Please enter your password for verification:"] = "Please enter your $a->strings["Resubscribing to OStatus contacts"] = "Resubscribing to OStatus contacts"; $a->strings["Error"] = "Error"; $a->strings["Only logged in users are permitted to perform a search."] = "Only logged in users are permitted to perform a search."; -$a->strings["Too Many Requests"] = "Too many requests"; $a->strings["Only one search per minute is permitted for not logged in users."] = "Only one search per minute is permitted for not logged in users."; $a->strings["Search"] = "Search"; $a->strings["Items tagged with: %s"] = "Items tagged with: %s"; $a->strings["Results for: %s"] = "Results for: %s"; $a->strings["Account"] = "Account"; +$a->strings["Two-factor authentication"] = "Two-factor authentication"; $a->strings["Profiles"] = "Profiles"; +$a->strings["Additional features"] = "Additional features"; $a->strings["Display"] = "Display"; $a->strings["Social Networks"] = "Social networks"; +$a->strings["Addons"] = "Addons"; $a->strings["Delegations"] = "Delegations"; $a->strings["Connected apps"] = "Connected apps"; $a->strings["Export personal data"] = "Export personal data"; @@ -1289,6 +774,8 @@ $a->strings["No name"] = "No name"; $a->strings["Remove authorization"] = "Remove authorization"; $a->strings["No Addon settings configured"] = "No addon settings configured"; $a->strings["Addon Settings"] = "Addon settings"; +$a->strings["Off"] = "Off"; +$a->strings["On"] = "On"; $a->strings["Additional Features"] = "Additional Features"; $a->strings["Diaspora"] = "diaspora*"; $a->strings["enabled"] = "enabled"; @@ -1322,6 +809,7 @@ $a->strings["Action after import:"] = "Action after import:"; $a->strings["Mark as seen"] = "Mark as seen"; $a->strings["Move to folder"] = "Move to folder"; $a->strings["Move to folder:"] = "Move to folder:"; +$a->strings["No special theme for mobile devices"] = "No special theme for mobile devices"; $a->strings["%s - (Unsupported)"] = "%s - (Unsupported)"; $a->strings["%s - (Experimental)"] = "%s - (Experimental)"; $a->strings["Sunday"] = "Sunday"; @@ -1355,13 +843,21 @@ $a->strings["Unable to find your profile. Please contact your admin."] = "Unable $a->strings["Account Types"] = "Account types:"; $a->strings["Personal Page Subtypes"] = "Personal Page subtypes"; $a->strings["Community Forum Subtypes"] = "Community forum subtypes"; +$a->strings["Personal Page"] = "Personal Page"; $a->strings["Account for a personal profile."] = "Account for a personal profile."; +$a->strings["Organisation Page"] = "Organisation Page"; $a->strings["Account for an organisation that automatically approves contact requests as \"Followers\"."] = "Account for an organisation that automatically approves contact requests as \"Followers\"."; +$a->strings["News Page"] = "News Page"; $a->strings["Account for a news reflector that automatically approves contact requests as \"Followers\"."] = "Account for a news reflector that automatically approves contact requests as \"Followers\"."; +$a->strings["Community Forum"] = "Community Forum"; $a->strings["Account for community discussions."] = "Account for community discussions."; +$a->strings["Normal Account Page"] = "Standard"; $a->strings["Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."] = "Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."; +$a->strings["Soapbox Page"] = "Soapbox"; $a->strings["Account for a public profile that automatically approves contact requests as \"Followers\"."] = "Account for a public profile that automatically approves contact requests as \"Followers\"."; +$a->strings["Public Forum"] = "Public forum"; $a->strings["Automatically approves all contact requests."] = "Automatically approves all contact requests."; +$a->strings["Automatic Friend Page"] = "Love-all"; $a->strings["Account for a popular profile that automatically approves contact requests as \"Friends\"."] = "Account for a popular profile that automatically approves contact requests as \"Friends\"."; $a->strings["Private Forum [Experimental]"] = "Private forum [Experimental]"; $a->strings["Requires manual approval of contact requests."] = "Requires manual approval of contact requests."; @@ -1442,8 +938,9 @@ $a->strings["Relocate"] = "Recent relocation"; $a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "If you have moved this profile from another server and some of your contacts don't receive your updates:"; $a->strings["Resend relocate message to contacts"] = "Resend relocation message to contacts"; $a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s is following %2\$s's %3\$s"; -$a->strings["Do you really want to delete this suggestion?"] = "Do you really want to delete this suggestion?"; +$a->strings["Contact suggestion successfully ignored."] = "Contact suggestion ignored."; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "No suggestions available. If this is a new site, please try again in 24 hours."; +$a->strings["Do you really want to delete this suggestion?"] = "Do you really want to delete this suggestion?"; $a->strings["Ignore/Hide"] = "Ignore/Hide"; $a->strings["Friend Suggestions"] = "Friend suggestions"; $a->strings["Tag(s) removed"] = "Tag(s) removed"; @@ -1467,8 +964,6 @@ $a->strings["Unfollowing is currently not supported by your network."] = "Unfoll $a->strings["Contact unfollowed"] = "Contact unfollowed"; $a->strings["Disconnect/Unfollow"] = "Disconnect/Unfollow"; $a->strings["[Embedded content - reload page to view]"] = "[Embedded content - reload page to view]"; -$a->strings["Do you really want to delete this video?"] = "Do you really want to delete this video?"; -$a->strings["Delete Video"] = "Delete video"; $a->strings["No videos selected"] = "No videos selected"; $a->strings["View Video"] = "View video"; $a->strings["Recent Videos"] = "Recent videos"; @@ -1489,7 +984,18 @@ $a->strings["Wall Photos"] = "Wall photos"; $a->strings["Delete this item?"] = "Delete this item?"; $a->strings["toggle mobile"] = "Toggle mobile"; $a->strings["No system theme config value set."] = "No system theme configuration value set."; +$a->strings["You must be logged in to use addons. "] = "You must be logged in to use addons. "; $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "The form security token was incorrect. This probably happened because the form has not been submitted within 3 hours."; +$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Could not find any unarchived contact entry for this URL (%s)"; +$a->strings["The contact entries have been archived"] = "The contact entries have been archived"; +$a->strings["Could not find any contact entry for this URL (%s)"] = "Could not find any contact entry for this URL (%s)"; +$a->strings["The contact has been blocked from the node"] = "The contact has been blocked from the node"; +$a->strings["Enter new password: "] = "Enter new password: "; +$a->strings["Post update version number has been set to %s."] = "Post update version number has been set to %s."; +$a->strings["Check for pending update actions."] = "Check for pending update actions."; +$a->strings["Done."] = "Done."; +$a->strings["Execute pending post updates."] = "Execute pending post updates."; +$a->strings["All pending post updates are done."] = "All pending post updates are done."; $a->strings["Frequently"] = "Frequently"; $a->strings["Hourly"] = "Hourly"; $a->strings["Twice daily"] = "Twice daily"; @@ -1499,6 +1005,7 @@ $a->strings["Monthly"] = "Monthly"; $a->strings["DFRN"] = "DFRN"; $a->strings["OStatus"] = "OStatus"; $a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Email"; $a->strings["Zot!"] = "Zot!"; $a->strings["LinkedIn"] = "LinkedIn"; $a->strings["XMPP/IM"] = "XMPP/IM"; @@ -1510,6 +1017,7 @@ $a->strings["Diaspora Connector"] = "diaspora* connector"; $a->strings["GNU Social Connector"] = "GNU Social Connector"; $a->strings["ActivityPub"] = "ActivityPub"; $a->strings["pnut"] = "pnut"; +$a->strings["No answer"] = "No answer"; $a->strings["Male"] = "Male"; $a->strings["Female"] = "Female"; $a->strings["Currently Male"] = "Currently male"; @@ -1614,11 +1122,13 @@ $a->strings["Your videos"] = "My videos"; $a->strings["Your events"] = "My events"; $a->strings["Personal notes"] = "Personal notes"; $a->strings["Your personal notes"] = "My personal notes"; +$a->strings["Login"] = "Login"; $a->strings["Sign in"] = "Sign in"; $a->strings["Home"] = "Home"; $a->strings["Home Page"] = "Home page"; $a->strings["Register"] = "Sign up now >>"; $a->strings["Create an account"] = "Create account"; +$a->strings["Help"] = "Help"; $a->strings["Help and documentation"] = "Help and documentation"; $a->strings["Apps"] = "Apps"; $a->strings["Addon applications, utilities, games"] = "Addon applications, utilities, games"; @@ -1630,8 +1140,11 @@ $a->strings["Conversations on this and other servers"] = "Conversations on this $a->strings["Events and Calendar"] = "Events and calendar"; $a->strings["Directory"] = "Directory"; $a->strings["People directory"] = "People directory"; +$a->strings["Information"] = "Information"; $a->strings["Information about this friendica instance"] = "Information about this Friendica instance"; +$a->strings["Terms of Service"] = "Terms of Service"; $a->strings["Terms of Service of this Friendica instance"] = "Terms of Service for this Friendica instance"; +$a->strings["Network"] = "Network"; $a->strings["Conversations from your friends"] = "My friends' conversations"; $a->strings["Network Reset"] = "Network reset"; $a->strings["Load Network page with no filters"] = "Load network page without filters"; @@ -1647,6 +1160,7 @@ $a->strings["Manage other pages"] = "Manage other pages"; $a->strings["Account settings"] = "Account settings"; $a->strings["Manage/Edit Profiles"] = "Manage/Edit profiles"; $a->strings["Manage/edit friends and contacts"] = "Manage/Edit friends and contacts"; +$a->strings["Admin"] = "Admin"; $a->strings["Site setup and configuration"] = "Site setup and configuration"; $a->strings["Navigation"] = "Navigation"; $a->strings["Site map"] = "Site map"; @@ -1686,9 +1200,11 @@ $a->strings["%d invitation available"] = [ $a->strings["Find People"] = "Find people"; $a->strings["Enter name or interest"] = "Enter name or interest"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Examples: Robert Morgenstein, fishing"; +$a->strings["Find"] = "Find"; $a->strings["Similar Interests"] = "Similar interests"; $a->strings["Random Profile"] = "Random profile"; $a->strings["Invite Friends"] = "Invite friends"; +$a->strings["Global Directory"] = "Global Directory"; $a->strings["Local Directory"] = "Local directory"; $a->strings["Protocols"] = "Protocols"; $a->strings["All Protocols"] = "All Protocols"; @@ -1700,23 +1216,13 @@ $a->strings["%d contact in common"] = [ 1 => "%d contacts in common", ]; $a->strings["Post to Email"] = "Post to email"; -$a->strings["Hide your profile details from unknown viewers?"] = "Hide profile details from unknown viewers?"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Connectors are disabled since \"%s\" is enabled."; $a->strings["Visible to everybody"] = "Visible to everybody"; $a->strings["show"] = "show"; $a->strings["don't show"] = "don't show"; +$a->strings["Connectors"] = "Connectors"; +$a->strings["Hide your profile details from unknown viewers?"] = "Hide profile details from unknown viewers?"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Connectors are disabled since \"%s\" is enabled."; $a->strings["Close"] = "Close"; -$a->strings["Welcome "] = "Welcome "; -$a->strings["Please upload a profile photo."] = "Please upload a profile photo."; -$a->strings["Welcome back "] = "Welcome back "; -$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Could not find any unarchived contact entry for this URL (%s)"; -$a->strings["The contact entries have been archived"] = "The contact entries have been archived"; -$a->strings["Enter new password: "] = "Enter new password: "; -$a->strings["Post update version number has been set to %s."] = "Post update version number has been set to %s."; -$a->strings["Check for pending update actions."] = "Check for pending update actions."; -$a->strings["Done."] = "Done."; -$a->strings["Execute pending post updates."] = "Execute pending post updates."; -$a->strings["All pending post updates are done."] = "All pending post updates are done."; $a->strings["The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."; $a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."; $a->strings["Please see the file \"INSTALL.txt\"."] = "Please see the file \"INSTALL.txt\"."; @@ -1755,6 +1261,8 @@ $a->strings["POSIX PHP module"] = "POSIX PHP module"; $a->strings["Error: POSIX PHP module required but not installed."] = "Error: POSIX PHP module required but not installed."; $a->strings["JSON PHP module"] = "JSON PHP module"; $a->strings["Error: JSON PHP module required but not installed."] = "Error: JSON PHP module is required but not installed."; +$a->strings["File Information PHP module"] = "File Information PHP module"; +$a->strings["Error: File Information PHP module required but not installed."] = "Error: File Information PHP module required but not installed."; $a->strings["The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server and it is unable to do so."] = "The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server but is unable to do so."; $a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "This is most often a permission setting issue, as the web server may not be able to write files in your directory - even if you can."; $a->strings["At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder."] = "At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder."; @@ -1765,7 +1273,7 @@ $a->strings["In order to store these compiled templates, the web server needs to $a->strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Please ensure the user (e.g. www-data) that your web server runs as has write access to this directory."; $a->strings["Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."] = "Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains."; $a->strings["view/smarty3 is writable"] = "view/smarty3 is writeable"; -$a->strings["Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess."] = "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess."; +$a->strings["Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess."] = "URL rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess."; $a->strings["Error message from Curl when fetching"] = "Error message from Curl while fetching"; $a->strings["Url rewrite is working"] = "URL rewrite is working"; $a->strings["ImageMagick PHP extension is not installed"] = "ImageMagick PHP extension is not installed"; @@ -1831,21 +1339,13 @@ $a->strings["%s is now friends with %s"] = "%s is now friends with %s"; $a->strings["Friend Suggestion"] = "Friend suggestion"; $a->strings["Friend/Connect Request"] = "Friend/Contact request"; $a->strings["New Follower"] = "New follower"; -$a->strings["Error 400 - Bad Request"] = "Error 400 - Bad Request"; -$a->strings["Error 401 - Unauthorized"] = "Error 401 - Unauthorised"; -$a->strings["Error 403 - Forbidden"] = "Error 403 - Forbidden"; -$a->strings["Error 404 - Not Found"] = "Error 404 - Not Found"; -$a->strings["Error 500 - Internal Server Error"] = "Error 500 - Internal Server Error"; -$a->strings["Error 503 - Service Unavailable"] = "Error 503 - Service Unavailable"; -$a->strings["The server cannot or will not process the request due to an apparent client error."] = "The server cannot process the request due to an apparent client error."; -$a->strings["Authentication is required and has failed or has not yet been provided."] = "Authentication is required and has failed or has not yet been provided."; -$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."; -$a->strings["The requested resource could not be found but may be available in the future."] = "The requested resource could not be found but may be available in the future."; -$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "An unexpected condition was encountered and no more specific message is available."; -$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."; +$a->strings["Welcome %s"] = "Welcome %s"; +$a->strings["Please upload a profile photo."] = "Please upload a profile photo."; +$a->strings["Welcome back %s"] = "Welcome back %s"; $a->strings["Update %s failed. See error logs."] = "Update %s failed. See error logs."; $a->strings["\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."; $a->strings["The error message is\n[pre]%s[/pre]"] = "The error message is\n[pre]%s[/pre]"; +$a->strings["[Friendica Notify] Database update"] = "[Friendica Notify] Database update"; $a->strings["\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s."] = "\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s."; $a->strings["Error decoding account file"] = "Error decoding account file"; $a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Error! No version data in file! Is this a Friendica account file?"; @@ -1879,6 +1379,7 @@ $a->strings["Use mailto: in front of address to force email check."] = "Use mail $a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "The profile address specified belongs to a network which has been disabled on this site."; $a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Limited profile: This person will be unable to receive direct/private messages from you."; $a->strings["Unable to retrieve contact information."] = "Unable to retrieve contact information."; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; $a->strings["Starts:"] = "Starts:"; $a->strings["Finishes:"] = "Finishes:"; $a->strings["all-day"] = "All-day"; @@ -1902,7 +1403,9 @@ $a->strings["Default privacy group for new contacts"] = "Default privacy group f $a->strings["Everybody"] = "Everybody"; $a->strings["edit"] = "edit"; $a->strings["Edit group"] = "Edit group"; +$a->strings["Contacts not in any group"] = "Contacts not in any group"; $a->strings["Create a new group"] = "Create new group"; +$a->strings["Group Name: "] = "Group name: "; $a->strings["Edit groups"] = "Edit groups"; $a->strings["activity"] = "activity"; $a->strings["comment"] = [ @@ -1915,11 +1418,11 @@ $a->strings["bytes"] = "bytes"; $a->strings["View on separate page"] = "View on separate page"; $a->strings["view on separate page"] = "view on separate page"; $a->strings["[no subject]"] = "[no subject]"; -$a->strings["Requested account is not available."] = "Requested account is unavailable."; -$a->strings["Requested profile is not available."] = "Requested profile is unavailable."; $a->strings["Edit profile"] = "Edit profile"; $a->strings["Atom feed"] = "Atom feed"; $a->strings["Manage/edit profiles"] = "Manage/Edit profiles"; +$a->strings["Status:"] = "Status:"; +$a->strings["Homepage:"] = "Homepage:"; $a->strings["XMPP:"] = "XMPP:"; $a->strings["g A l F d"] = "g A l F d"; $a->strings["F d"] = "F d"; @@ -1996,7 +1499,446 @@ $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Yo $a->strings["Registration at %s"] = "Registration at %s"; $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"] = "\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"; $a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."] = "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."; +$a->strings["Registration details for %s"] = "Registration details for %s"; +$a->strings["Addon not found."] = "Addon not found."; +$a->strings["Addon %s disabled."] = "Addon %s disabled."; +$a->strings["Addon %s enabled."] = "Addon %s enabled."; +$a->strings["Disable"] = "Disable"; +$a->strings["Enable"] = "Enable"; +$a->strings["Administration"] = "Administration"; +$a->strings["Toggle"] = "Toggle"; +$a->strings["Author: "] = "Author: "; +$a->strings["Maintainer: "] = "Maintainer: "; +$a->strings["Addon %s failed to install."] = "Addon %s failed to install."; +$a->strings["Reload active addons"] = "Reload active addons"; +$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"; +$a->strings["%s contact unblocked"] = [ + 0 => "%s contact unblocked", + 1 => "%s contacts unblocked", +]; +$a->strings["Remote Contact Blocklist"] = "Remote contact blocklist"; +$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "This page allows you to prevent any message from a remote contact to reach your node."; +$a->strings["Block Remote Contact"] = "Block Remote Contact"; +$a->strings["select all"] = "select all"; +$a->strings["select none"] = "select none"; +$a->strings["Unblock"] = "Unblock"; +$a->strings["No remote contact is blocked from this node."] = "No remote contact is blocked from this node."; +$a->strings["Blocked Remote Contacts"] = "Blocked remote contacts"; +$a->strings["Block New Remote Contact"] = "Block new remote contact"; +$a->strings["Photo"] = "Photo"; +$a->strings["%s total blocked contact"] = [ + 0 => "%s total blocked contact", + 1 => "%s total blocked contacts", +]; +$a->strings["URL of the remote contact to block."] = "URL of the remote contact to block."; +$a->strings["Server added to blocklist."] = "Server added to blocklist."; +$a->strings["Site blocklist updated."] = "Site blocklist updated."; +$a->strings["The blocked domain"] = "Blocked domain"; +$a->strings["Reason for the block"] = "Reason for the block"; +$a->strings["The reason why you blocked this domain."] = "Reason why you blocked this domain."; +$a->strings["Delete domain"] = "Delete domain"; +$a->strings["Check to delete this entry from the blocklist"] = "Check to delete this entry from the blocklist"; +$a->strings["Server Blocklist"] = "Server blocklist"; +$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."; +$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "The list of blocked servers will publicly available on the Friendica page so that your users and people investigating communication problems can readily find the reason."; +$a->strings["Add new entry to block list"] = "Add new entry to block list"; +$a->strings["Server Domain"] = "Server domain"; +$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "The domain of the new server to add to the block list. Do not include the protocol."; +$a->strings["Block reason"] = "Block reason"; +$a->strings["Add Entry"] = "Add entry"; +$a->strings["Save changes to the blocklist"] = "Save changes to the blocklist"; +$a->strings["Current Entries in the Blocklist"] = "Current entries in the blocklist"; +$a->strings["Delete entry from blocklist"] = "Delete entry from blocklist"; +$a->strings["Delete entry from blocklist?"] = "Delete entry from blocklist?"; +$a->strings["Update has been marked successful"] = "Update has been marked successful"; +$a->strings["Database structure update %s was successfully applied."] = "Database structure update %s was successfully applied."; +$a->strings["Executing of database structure update %s failed with error: %s"] = "Executing of database structure update %s failed with error: %s"; +$a->strings["Executing %s failed with error: %s"] = "Executing %s failed with error: %s"; +$a->strings["Update %s was successfully applied."] = "Update %s was successfully applied."; +$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s did not return a status. Unknown if it succeeded."; +$a->strings["There was no additional update function %s that needed to be called."] = "There was no additional update function %s that needed to be called."; +$a->strings["No failed updates."] = "No failed updates."; +$a->strings["Check database structure"] = "Check database structure"; +$a->strings["Failed Updates"] = "Failed updates"; +$a->strings["This does not include updates prior to 1139, which did not return a status."] = "This does not include updates prior to 1139, which did not return a status."; +$a->strings["Mark success (if update was manually applied)"] = "Mark success (if update was manually applied)"; +$a->strings["Attempt to execute this update step automatically"] = "Attempt to execute this update step automatically"; +$a->strings["Lock feature %s"] = "Lock feature %s"; +$a->strings["Manage Additional Features"] = "Manage additional features"; +$a->strings["unknown"] = "unknown"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "This page offers you the amount of known part of the federated social network your Friendica node is part of. These numbers are not complete and only reflect the part of the network your node is aware of."; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here."; +$a->strings["Federation Statistics"] = "Federation statistics"; +$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Currently this node is aware of %d nodes with %d registered users from the following platforms:"; +$a->strings["Item marked for deletion."] = "Item marked for deletion."; +$a->strings["Delete Item"] = "Delete item"; +$a->strings["Delete this Item"] = "Delete"; +$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted."; +$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456."; +$a->strings["GUID"] = "GUID"; +$a->strings["The GUID of the item you want to delete."] = "GUID of item to be deleted."; +$a->strings["Item Guid"] = "Item Guid"; +$a->strings["Log settings updated."] = "Log settings updated."; +$a->strings["PHP log currently enabled."] = "PHP log currently enabled."; +$a->strings["PHP log currently disabled."] = "PHP log currently disabled."; +$a->strings["Logs"] = "Logs"; +$a->strings["Clear"] = "Clear"; +$a->strings["Enable Debugging"] = "Enable debugging"; +$a->strings["Log file"] = "Log file"; +$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Must be writable by web server and relative to your Friendica top-level directory."; +$a->strings["Log level"] = "Log level"; +$a->strings["PHP logging"] = "PHP logging"; +$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."; +$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."; +$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Couldn't open %1\$s log file.\\r\\n
    Check if file %1\$s is readable."; +$a->strings["View Logs"] = "View logs"; +$a->strings["Inspect Deferred Worker Queue"] = "Inspect Deferred Worker Queue"; +$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed."; +$a->strings["Inspect Worker Queue"] = "Inspect Worker Queue"; +$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."; +$a->strings["ID"] = "ID"; +$a->strings["Job Parameters"] = "Job Parameters"; +$a->strings["Created"] = "Created"; +$a->strings["Priority"] = "Priority"; +$a->strings["Can not parse base url. Must have at least ://"] = "Can not parse base URL. Must have at least ://"; +$a->strings["Invalid storage backend setting value."] = "Invalid storage backend settings."; +$a->strings["Site settings updated."] = "Site settings updated."; +$a->strings["No community page for local users"] = "No community page for local users"; +$a->strings["No community page"] = "No community page"; +$a->strings["Public postings from users of this site"] = "Public postings from users of this site"; +$a->strings["Public postings from the federated network"] = "Public postings from the federated network"; +$a->strings["Public postings from local users and the federated network"] = "Public postings from local users and the federated network"; +$a->strings["Disabled"] = "Disabled"; +$a->strings["Users"] = "Users"; +$a->strings["Users, Global Contacts"] = "Users, Global Contacts"; +$a->strings["Users, Global Contacts/fallback"] = "Users, Global Contacts/fallback"; +$a->strings["One month"] = "One month"; +$a->strings["Three months"] = "Three months"; +$a->strings["Half a year"] = "Half a year"; +$a->strings["One year"] = "One a year"; +$a->strings["Multi user instance"] = "Multi user instance"; +$a->strings["Closed"] = "Closed"; +$a->strings["Requires approval"] = "Requires approval"; +$a->strings["Open"] = "Open"; +$a->strings["No SSL policy, links will track page SSL state"] = "No SSL policy, links will track page SSL state"; +$a->strings["Force all links to use SSL"] = "Force all links to use SSL"; +$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Self-signed certificate, use SSL for local links only (discouraged)"; +$a->strings["Don't check"] = "Don't check"; +$a->strings["check the stable version"] = "check for stable version updates"; +$a->strings["check the development version"] = "check for development version updates"; +$a->strings["Database (legacy)"] = "Database (legacy)"; +$a->strings["Site"] = "Site"; +$a->strings["Republish users to directory"] = "Republish users to directory"; +$a->strings["Registration"] = "Join this Friendica Node Today"; +$a->strings["File upload"] = "File upload"; +$a->strings["Policies"] = "Policies"; +$a->strings["Auto Discovered Contact Directory"] = "Auto-discovered contact directory"; +$a->strings["Performance"] = "Performance"; +$a->strings["Worker"] = "Worker"; +$a->strings["Message Relay"] = "Message relay"; +$a->strings["Relocate Instance"] = "Relocate Instance"; +$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Warning! Advanced function that could make this server unreachable."; +$a->strings["Site name"] = "Site name"; +$a->strings["Sender Email"] = "Sender email"; +$a->strings["The email address your server shall use to send notification emails from."] = "The email address your server shall use to send notification emails from."; +$a->strings["Banner/Logo"] = "Banner/Logo"; +$a->strings["Shortcut icon"] = "Shortcut icon"; +$a->strings["Link to an icon that will be used for browsers."] = "Link to an icon that will be used for browsers."; +$a->strings["Touch icon"] = "Touch icon"; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link to an icon that will be used for tablets and mobiles."; +$a->strings["Additional Info"] = "Additional Info"; +$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "For public servers: You can add additional information here that will be listed at %s/servers."; +$a->strings["System language"] = "System language"; +$a->strings["System theme"] = "System theme"; +$a->strings["Default system theme - may be over-ridden by user profiles - Change default theme settings"] = "Default system theme - may be over-ridden by user profiles - Change default theme settings"; +$a->strings["Mobile system theme"] = "Mobile system theme"; +$a->strings["Theme for mobile devices"] = "Theme for mobile devices"; +$a->strings["SSL link policy"] = "SSL link policy"; +$a->strings["Determines whether generated links should be forced to use SSL"] = "Determines whether generated links should be forced to use SSL"; +$a->strings["Force SSL"] = "Force SSL"; +$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."; +$a->strings["Hide help entry from navigation menu"] = "Hide help entry from navigation menu"; +$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL."; +$a->strings["Single user instance"] = "Single user instance"; +$a->strings["Make this instance multi-user or single-user for the named user"] = "Make this instance multi-user or single-user for the named user"; +$a->strings["File storage backend"] = "File storage backend"; +$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you don't do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."; +$a->strings["Maximum image size"] = "Maximum image size"; +$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximum size in bytes of uploaded images. Default is 0, which means no limits."; +$a->strings["Maximum image length"] = "Maximum image length"; +$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."; +$a->strings["JPEG image quality"] = "JPEG image quality"; +$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is the original quality level."; +$a->strings["Register policy"] = "Registration policy"; +$a->strings["Maximum Daily Registrations"] = "Maximum daily registrations"; +$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval."; +$a->strings["Register text"] = "Registration text"; +$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Will be displayed prominently on the registration page. You may use BBCode here."; +$a->strings["Forbidden Nicknames"] = "Forbidden Nicknames"; +$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."; +$a->strings["Accounts abandoned after x days"] = "Accounts abandoned after so many days"; +$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."; +$a->strings["Allowed friend domains"] = "Allowed friend domains"; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains"; +$a->strings["Allowed email domains"] = "Allowed email domains"; +$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains"; +$a->strings["No OEmbed rich content"] = "No OEmbed rich content"; +$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Don't show rich content (e.g. embedded PDF), except from the domains listed below."; +$a->strings["Allowed OEmbed domains"] = "Allowed OEmbed domains"; +$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Comma separated list of domains from where OEmbed content is allowed. Wildcards are possible."; +$a->strings["Block public"] = "Block public"; +$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Block public access to all otherwise public personal pages on this site, except for local users when logged in."; +$a->strings["Force publish"] = "Mandatory directory listing"; +$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Force all profiles on this site to be listed in the site directory."; +$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Enabling this may violate privacy laws like the GDPR"; +$a->strings["Global directory URL"] = "Global directory URL"; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL to the global directory: If this is not set, the global directory is completely unavailable to the application."; +$a->strings["Private posts by default for new users"] = "Private posts by default for new users"; +$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Set default post permissions for all new members to the default privacy group rather than public."; +$a->strings["Don't include post content in email notifications"] = "Don't include post content in email notifications"; +$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure."; +$a->strings["Disallow public access to addons listed in the apps menu."] = "Disallow public access to addons listed in the apps menu."; +$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Checking this box will restrict addons listed in the apps menu to members only."; +$a->strings["Don't embed private images in posts"] = "Don't embed private images in posts"; +$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."; +$a->strings["Explicit Content"] = "Explicit Content"; +$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."; +$a->strings["Allow Users to set remote_self"] = "Allow users to set \"Remote self\""; +$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream."; +$a->strings["Block multiple registrations"] = "Block multiple registrations"; +$a->strings["Disallow users to register additional accounts for use as pages."] = "Disallow users to sign up for additional accounts."; +$a->strings["Disable OpenID"] = "Disable OpenID"; +$a->strings["Disable OpenID support for registration and logins."] = "Disable OpenID support for registration and logins."; +$a->strings["No Fullname check"] = "No full name check"; +$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Allow users to register without a space between the first name and the last name in their full name."; +$a->strings["Community pages for visitors"] = "Community pages for visitors"; +$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Community pages that should be available for visitors. Local users always see both pages."; +$a->strings["Posts per user on community page"] = "Posts per user on community page"; +$a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = "Maximum number of posts per user on the community page. (Not valid for \"Global Community\")"; +$a->strings["Disable OStatus support"] = "Disable OStatus support"; +$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."; +$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Only import OStatus/ActivityPub threads from our contacts"; +$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."; +$a->strings["OStatus support can only be enabled if threading is enabled."] = "OStatus support can only be enabled if threading is enabled."; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "diaspora* support can't be enabled because Friendica was installed into a sub directory."; +$a->strings["Enable Diaspora support"] = "Enable diaspora* support"; +$a->strings["Provide built-in Diaspora network compatibility."] = "Provide built-in diaspora* network compatibility."; +$a->strings["Only allow Friendica contacts"] = "Only allow Friendica contacts"; +$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled."; +$a->strings["Verify SSL"] = "Verify SSL"; +$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."; +$a->strings["Proxy user"] = "Proxy user"; +$a->strings["Proxy URL"] = "Proxy URL"; +$a->strings["Network timeout"] = "Network timeout"; +$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Value is in seconds. Set to 0 for unlimited (not recommended)."; +$a->strings["Maximum Load Average"] = "Maximum load average"; +$a->strings["Maximum system load before delivery and poll processes are deferred - default %d."] = "Maximum system load before delivery and poll processes are deferred - default %d."; +$a->strings["Maximum Load Average (Frontend)"] = "Maximum load average (frontend)"; +$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maximum system load before the frontend quits service (default 50)."; +$a->strings["Minimal Memory"] = "Minimal memory"; +$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."; +$a->strings["Maximum table size for optimization"] = "Maximum table size for optimization"; +$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it."; +$a->strings["Minimum level of fragmentation"] = "Minimum level of fragmentation"; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimum fragmentation level to start the automatic optimization (default 30%)."; +$a->strings["Periodical check of global contacts"] = "Periodical check of global contacts"; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers."; +$a->strings["Days between requery"] = "Days between enquiry"; +$a->strings["Number of days after which a server is requeried for his contacts."] = "Number of days after which a server is required check contacts."; +$a->strings["Discover contacts from other servers"] = "Discover contacts from other servers"; +$a->strings["Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."] = "Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older Friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."; +$a->strings["Timeframe for fetching global contacts"] = "Time-frame for fetching global contacts"; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers."; +$a->strings["Search the local directory"] = "Search the local directory"; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."; +$a->strings["Publish server information"] = "Publish server information"; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."; +$a->strings["Check upstream version"] = "Check upstream version"; +$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."; +$a->strings["Suppress Tags"] = "Suppress tags"; +$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Suppress listed hashtags at the end of posts."; +$a->strings["Clean database"] = "Clean database"; +$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Remove old remote items, orphaned database records and old content from some other helper tables."; +$a->strings["Lifespan of remote items"] = "Lifespan of remote items"; +$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."; +$a->strings["Lifespan of unclaimed items"] = "Lifespan of unclaimed items"; +$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."; +$a->strings["Lifespan of raw conversation data"] = "Lifespan of raw conversation data"; +$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."; +$a->strings["Path to item cache"] = "Path to item cache"; +$a->strings["The item caches buffers generated bbcode and external images."] = "The item caches buffers generated bbcode and external images."; +$a->strings["Cache duration in seconds"] = "Cache duration in seconds"; +$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)"; +$a->strings["Maximum numbers of comments per post"] = "Maximum numbers of comments per post"; +$a->strings["How much comments should be shown for each post? Default value is 100."] = "How many comments should be shown for each post? (Default 100)"; +$a->strings["Temp path"] = "Temp path"; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Enter a different tmp path, if your system restricts the webserver's access to the system temp path."; +$a->strings["Disable picture proxy"] = "Disable picture proxy"; +$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."; +$a->strings["Only search in tags"] = "Only search in tags"; +$a->strings["On large systems the text search can slow down the system extremely."] = "On large systems the text search can slow down the system significantly."; +$a->strings["New base url"] = "New base URL"; +$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Change base url for this server. Sends relocate message to all Friendica and diaspora* contacts of all users."; +$a->strings["RINO Encryption"] = "RINO Encryption"; +$a->strings["Encryption layer between nodes."] = "Encryption layer between nodes."; +$a->strings["Enabled"] = "Enabled"; +$a->strings["Maximum number of parallel workers"] = "Maximum number of parallel workers"; +$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."; +$a->strings["Don't use \"proc_open\" with the worker"] = "Don't use \"proc_open\" with the worker"; +$a->strings["Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."; +$a->strings["Enable fastlane"] = "Enable fast-lane"; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."; +$a->strings["Enable frontend worker"] = "Enable frontend worker"; +$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."; +$a->strings["Subscribe to relay"] = "Subscribe to relay"; +$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Receive public posts from the specified relay. Post will be included in searches, subscribed tags and on the global community page."; +$a->strings["Relay server"] = "Relay server"; +$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Address of the relay server where public posts should be send to. For example https://relay.diasp.org"; +$a->strings["Direct relay transfer"] = "Direct relay transfer"; +$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Enables direct transfer to other servers without using a relay server."; +$a->strings["Relay scope"] = "Relay scope"; +$a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = "Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."; +$a->strings["all"] = "all"; +$a->strings["tags"] = "tags"; +$a->strings["Server tags"] = "Server tags"; +$a->strings["Comma separated list of tags for the \"tags\" subscription."] = "Comma separated list of tags for the \"tags\" subscription."; +$a->strings["Allow user tags"] = "Allow user tags"; +$a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = "If enabled, the tags from the saved searches will be used for the \"tags\" subscription in addition to the \"relay_server_tags\"."; +$a->strings["Start Relocation"] = "Start Relocation"; +$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "; +$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "A new Friendica version is available now. Your current version is %1\$s, upstream version is %2\$s"; +$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear."; +$a->strings["The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)"] = "The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that may appear at the standard output and logfile."; +$a->strings["The worker was never executed. Please check your database structure!"] = "The worker process has never been executed. Please check your database structure!"; +$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your configuration from .htconfig.php. See the configuration help page for help with the transition."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."; +$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."; +$a->strings["Friendica's system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."] = "The system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."; +$a->strings["Friendica's current system.basepath '%s' is wrong and the config file '%s' isn't used."] = "The current system.basepath '%s' is wrong and the config file '%s' isn't used."; +$a->strings["Friendica's current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."] = "The current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."; +$a->strings["Normal Account"] = "Standard account"; +$a->strings["Automatic Follower Account"] = "Automatic follower account"; +$a->strings["Public Forum Account"] = "Public forum account"; +$a->strings["Automatic Friend Account"] = "Automatic friend account"; +$a->strings["Blog Account"] = "Blog account"; +$a->strings["Private Forum Account"] = "Private forum account"; +$a->strings["Message queues"] = "Message queues"; +$a->strings["Server Settings"] = "Server Settings"; +$a->strings["Summary"] = "Summary"; +$a->strings["Registered users"] = "Registered users"; +$a->strings["Pending registrations"] = "Pending registrations"; +$a->strings["Version"] = "Version"; +$a->strings["Active addons"] = "Active addons"; +$a->strings["Theme settings updated."] = "Theme settings updated."; +$a->strings["Theme %s disabled."] = "Theme %s disabled."; +$a->strings["Theme %s successfully enabled."] = "Theme %s successfully enabled."; +$a->strings["Theme %s failed to install."] = "Theme %s failed to install."; +$a->strings["Screenshot"] = "Screenshot"; +$a->strings["Themes"] = "Theme selection"; +$a->strings["Unknown theme."] = "Unknown theme."; +$a->strings["Reload active themes"] = "Reload active themes"; +$a->strings["No themes found on the system. They should be placed in %1\$s"] = "No themes found on the system. They should be placed in %1\$s"; +$a->strings["[Experimental]"] = "[Experimental]"; +$a->strings["[Unsupported]"] = "[Unsupported]"; +$a->strings["The Terms of Service settings have been updated."] = "The Terms of Service settings have been updated."; +$a->strings["Display Terms of Service"] = "Display Terms of Service"; +$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."; +$a->strings["Display Privacy Statement"] = "Display Privacy Statement"; +$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."; +$a->strings["Privacy Statement Preview"] = "Privacy Statement Preview"; +$a->strings["The Terms of Service"] = "Terms of Service"; +$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or lower."; +$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tDear %1\$s,\n\t\t\t\tThe administrator of %2\$s has set up an account for you."; +$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."; +$a->strings["%s user blocked"] = [ + 0 => "%s user blocked", + 1 => "%s users blocked", +]; +$a->strings["%s user unblocked"] = [ + 0 => "%s user unblocked", + 1 => "%s users unblocked", +]; +$a->strings["You can't remove yourself"] = "You can't remove yourself"; +$a->strings["%s user deleted"] = [ + 0 => "%s user deleted", + 1 => "%s users deleted", +]; +$a->strings["User \"%s\" deleted"] = "User \"%s\" deleted"; +$a->strings["User \"%s\" blocked"] = "User \"%s\" blocked"; +$a->strings["User \"%s\" unblocked"] = "User \"%s\" unblocked"; +$a->strings["Private Forum"] = "Private Forum"; +$a->strings["Relay"] = "Relay"; +$a->strings["Register date"] = "Registration date"; +$a->strings["Last login"] = "Last login"; +$a->strings["Last item"] = "Last item"; +$a->strings["Type"] = "Type"; +$a->strings["Add User"] = "Add user"; +$a->strings["User registrations waiting for confirm"] = "User registrations awaiting confirmation"; +$a->strings["User waiting for permanent deletion"] = "User awaiting permanent deletion"; +$a->strings["Request date"] = "Request date"; +$a->strings["No registrations."] = "No registrations."; +$a->strings["Note from the user"] = "Note from the user"; +$a->strings["Deny"] = "Deny"; +$a->strings["User blocked"] = "User blocked"; +$a->strings["Site admin"] = "Site admin"; +$a->strings["Account expired"] = "Account expired"; +$a->strings["New User"] = "New user"; +$a->strings["Permanent deletion"] = "Permanent deletion"; +$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Selected users will be deleted!\\n\\nEverything these users has posted on this site will be permanently deleted!\\n\\nAre you sure?"; +$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"; +$a->strings["Name of the new user."] = "Name of the new user."; +$a->strings["Nickname"] = "Nickname"; +$a->strings["Nickname of the new user."] = "Nickname of the new user."; +$a->strings["Email address of the new user."] = "Email address of the new user."; +$a->strings["No friends to display."] = "No friends to display."; +$a->strings["No installed applications."] = "No installed applications."; +$a->strings["Applications"] = "Applications"; $a->strings["Item was not found."] = "Item was not found."; +$a->strings["Source input"] = "Source input"; +$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; +$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (raw HTML)"; +$a->strings["BBCode::convert"] = "BBCode::convert"; +$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; +$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; +$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; +$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; +$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; +$a->strings["Item Body"] = "Item Body"; +$a->strings["Item Tags"] = "Item Tags"; +$a->strings["Source input (Diaspora format)"] = "Source input (diaspora* format)"; +$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (raw HTML)"; +$a->strings["Markdown::convert"] = "Markdown::convert"; +$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; +$a->strings["Raw HTML input"] = "Raw HTML input"; +$a->strings["HTML Input"] = "HTML input"; +$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; +$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; +$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (raw HTML)"; +$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; +$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; +$a->strings["Source text"] = "Source text"; +$a->strings["BBCode"] = "BBCode"; +$a->strings["Markdown"] = "Markdown"; +$a->strings["HTML"] = "HTML"; +$a->strings["Overview"] = "Overview"; +$a->strings["Configuration"] = "Configuration"; +$a->strings["Database"] = "Database"; +$a->strings["DB updates"] = "DB updates"; +$a->strings["Inspect Deferred Workers"] = "Inspect deferred workers"; +$a->strings["Inspect worker Queue"] = "Inspect worker queue"; +$a->strings["Tools"] = "Tools"; +$a->strings["Contact Blocklist"] = "Contact blocklist"; +$a->strings["Diagnostics"] = "Diagnostics"; +$a->strings["PHP Info"] = "PHP info"; +$a->strings["probe address"] = "Probe address"; +$a->strings["check webfinger"] = "Check webfinger"; +$a->strings["Item Source"] = "Item source"; +$a->strings["Babel"] = "Babel"; +$a->strings["Addon Features"] = "Addon features"; +$a->strings["User registrations waiting for confirmation"] = "User registrations awaiting confirmation"; +$a->strings["This page is missing a url parameter."] = "This page is missing a URL parameter."; +$a->strings["The post was created"] = "The post was created"; $a->strings["%d contact edited."] = [ 0 => "%d contact edited.", 1 => "%d contacts edited.", @@ -2055,6 +1997,7 @@ $a->strings["Comma separated list of keywords that should not be converted to ha $a->strings["Actions"] = "Actions"; $a->strings["Suggestions"] = "Suggestions"; $a->strings["Suggest potential friends"] = "Suggest potential friends"; +$a->strings["All Contacts"] = "All contacts"; $a->strings["Show all contacts"] = "Show all contacts"; $a->strings["Unblocked"] = "Unblocked"; $a->strings["Only show unblocked contacts"] = "Only show unblocked contacts"; @@ -2084,9 +2027,62 @@ $a->strings["Toggle Blocked status"] = "Toggle blocked status"; $a->strings["Toggle Ignored status"] = "Toggle ignored status"; $a->strings["Toggle Archive status"] = "Toggle archive status"; $a->strings["Delete contact"] = "Delete contact"; +$a->strings["Credits"] = "Credits"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"; +$a->strings["No entries (some entries may be hidden)."] = "No entries (entries may be hidden)."; +$a->strings["Find on this site"] = "Find on this site"; +$a->strings["Results for:"] = "Results for:"; +$a->strings["Site Directory"] = "Site directory"; +$a->strings["You must be logged in to use this module"] = "You must be logged in to use this module"; +$a->strings["Source URL"] = "Source URL"; +$a->strings["Filetag %s saved to item"] = "File-tag %s saved to item"; +$a->strings["- select -"] = "- select -"; +$a->strings["No given contact."] = "No given contact."; +$a->strings["Installed addons/apps:"] = "Installed addons/apps:"; +$a->strings["No installed addons/apps"] = "No installed addons/apps"; +$a->strings["Read about the Terms of Service of this node."] = "Read about the Terms of Service of this node."; +$a->strings["On this server the following remote servers are blocked."] = "On this server the following remote servers are blocked."; +$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."; +$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Please visit Friendi.ca to learn more about the Friendica project."; +$a->strings["Bug reports and issues: please visit"] = "Bug reports and issues: please visit"; +$a->strings["the bugtracker at github"] = "the bugtracker at github"; +$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"; +$a->strings["Group created."] = "Group created."; +$a->strings["Could not create group."] = "Could not create group."; +$a->strings["Group not found."] = "Group not found."; +$a->strings["Group name changed."] = "Group name changed."; +$a->strings["Unknown group."] = "Unknown group."; +$a->strings["Contact is unavailable."] = "Contact is unavailable."; +$a->strings["Contact is deleted."] = "Contact is deleted."; +$a->strings["Contact is blocked, unable to add it to a group."] = "Contact is blocked, unable to add it to a group."; +$a->strings["Unable to add the contact to the group."] = "Unable to add contact to group."; +$a->strings["Contact successfully added to group."] = "Contact successfully added to group."; +$a->strings["Unable to remove the contact from the group."] = "Unable to remove contact from group."; +$a->strings["Contact successfully removed from group."] = "Contact removed from group."; +$a->strings["Unknown group command."] = "Unknown group command."; +$a->strings["Bad request."] = "Bad request."; +$a->strings["Save Group"] = "Save group"; +$a->strings["Filter"] = "Filter"; +$a->strings["Create a group of contacts/friends."] = "Create a group of contacts/friends."; +$a->strings["Group removed."] = "Group removed."; +$a->strings["Unable to remove group."] = "Unable to remove group."; +$a->strings["Delete Group"] = "Delete group"; +$a->strings["Edit Group Name"] = "Edit group name"; +$a->strings["Members"] = "Members"; +$a->strings["Remove contact from group"] = "Remove contact from group"; +$a->strings["Add contact to group"] = "Add contact to group"; +$a->strings["Help:"] = "Help:"; +$a->strings["Welcome to %s"] = "Welcome to %s"; $a->strings["Friendica Communications Server - Setup"] = "Friendica Communications Server - Setup"; $a->strings["System check"] = "System check"; $a->strings["Check again"] = "Check again"; +$a->strings["Base settings"] = "Base settings"; +$a->strings["Host name"] = "Host name"; +$a->strings["Overwrite this field in case the determinated hostname isn't right, otherweise leave it as is."] = "Overwrite this field in case the hostname is incorrect, otherwise leave it as is."; +$a->strings["Base path to installation"] = "Base path to installation"; +$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."; +$a->strings["Sub path of the URL"] = "URL Subpath"; +$a->strings["Overwrite this field in case the sub path determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path."] = "Overwrite this field in case the subpath determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without subpath."; $a->strings["Database connection"] = "Database connection"; $a->strings["In order to install Friendica we need to know how to connect to your database."] = "In order to install Friendica we need to know how to connect to your database."; $a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or site administrator if you have questions about these settings."; @@ -2096,10 +2092,10 @@ $a->strings["Database Login Name"] = "Database login name"; $a->strings["Database Login Password"] = "Database login password"; $a->strings["For security reasons the password must not be empty"] = "For security reasons the password must not be empty"; $a->strings["Database Name"] = "Database name"; -$a->strings["Site administrator email address"] = "Site administrator email address"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel."; $a->strings["Please select a default timezone for your website"] = "Please select a default time zone for your website"; $a->strings["Site settings"] = "Site settings"; +$a->strings["Site administrator email address"] = "Site administrator email address"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel."; $a->strings["System Language:"] = "System language:"; $a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Set the default language for your Friendica installation interface and email communication."; $a->strings["Your Friendica site database has been installed."] = "Your Friendica site database has been installed."; @@ -2107,7 +2103,34 @@ $a->strings["Installation finished"] = "Installation finished"; $a->strings["

    What next

    "] = "

    What next

    "; $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the worker."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the worker."; $a->strings["Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."] = "Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."; -$a->strings["Item Guid"] = "Item Guid"; +$a->strings["Total invitation limit exceeded."] = "Total invitation limit exceeded"; +$a->strings["%s : Not a valid email address."] = "%s : Not a valid email address"; +$a->strings["Please join us on Friendica"] = "Please join us on Friendica."; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Invitation limit is exceeded. Please contact your site administrator."; +$a->strings["%s : Message delivery failed."] = "%s : Message delivery failed"; +$a->strings["%d message sent."] = [ + 0 => "%d message sent.", + 1 => "%d messages sent.", +]; +$a->strings["You have no more invitations available"] = "You have no more invitations available."; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "To accept this invitation, please sign up at %s or any other public Friendica website."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica sites are all inter-connect to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Our apologies. This system is not currently configured to connect with other public sites or invite members."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Friendica sites are all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks."; +$a->strings["To accept this invitation, please visit and register at %s."] = "To accept this invitation, please visit and register at %s."; +$a->strings["Send invitations"] = "Send invitations"; +$a->strings["Enter email addresses, one per line:"] = "Enter email addresses, one per line:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "You will need to supply this invitation code: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Once you have signed up, please connect with me via my profile page at:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"; +$a->strings["Time Conversion"] = "Time conversion"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica provides this service for sharing events with other networks and friends in unknown time zones."; +$a->strings["UTC time: %s"] = "UTC time: %s"; +$a->strings["Current timezone: %s"] = "Current time zone: %s"; +$a->strings["Converted localtime: %s"] = "Converted local time: %s"; +$a->strings["Please select your timezone:"] = "Please select your time zone:"; $a->strings["Create a New Account"] = "Create a new account"; $a->strings["Password: "] = "Password: "; $a->strings["Remember me"] = "Remember me"; @@ -2118,10 +2141,12 @@ $a->strings["terms of service"] = "Terms of service"; $a->strings["Website Privacy Policy"] = "Website Privacy Policy"; $a->strings["privacy policy"] = "Privacy policy"; $a->strings["Logged out."] = "Logged out."; +$a->strings["System down for maintenance"] = "Sorry, the system is currently down for maintenance."; +$a->strings["Page not found."] = "Page not found"; +$a->strings["Invalid photo with id %s."] = "Invalid photo with id %s."; $a->strings["%s's timeline"] = "%s's timeline"; $a->strings["%s's posts"] = "%s's posts"; $a->strings["%s's comments"] = "%s's comments"; -$a->strings["Bad Request."] = "Bad request."; $a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."] = "You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."; $a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."; $a->strings["Your OpenID (optional): "] = "Your OpenID (optional): "; @@ -2142,11 +2167,64 @@ $a->strings["Failed to send email message. Here your accout details:
    login: $a->strings["Registration successful."] = "Registration successful."; $a->strings["Your registration can not be processed."] = "Your registration cannot be processed."; $a->strings["Your registration is pending approval by the site owner."] = "Your registration is pending approval by the site administrator."; +$a->strings["Two-factor authentication successfully disabled."] = "Two-factor authentication successfully disabled."; +$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = "

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "; +$a->strings["Authenticator app"] = "Authenticator app"; +$a->strings["Configured"] = "Configured"; +$a->strings["Not Configured"] = "Not configured"; +$a->strings["

    You haven't finished configuring your authenticator app.

    "] = "

    You haven't finished configuring your authenticator app.

    "; +$a->strings["

    Your authenticator app is correctly configured.

    "] = "

    Your authenticator app is correctly configured.

    "; +$a->strings["Recovery codes"] = "Recovery codes"; +$a->strings["Remaining valid codes"] = "Remaining valid codes"; +$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = "

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "; +$a->strings["Current password:"] = "Current password:"; +$a->strings["You need to provide your current password to change two-factor authentication settings."] = "You need to provide your current password to change two-factor authentication settings."; +$a->strings["Enable two-factor authentication"] = "Enable two-factor authentication"; +$a->strings["Disable two-factor authentication"] = "Disable two-factor authentication"; +$a->strings["Show recovery codes"] = "Show recovery codes"; +$a->strings["Finish app configuration"] = "Finish app configuration"; +$a->strings["Please enter your password to access this page."] = "Please enter your password to access this page."; +$a->strings["New recovery codes successfully generated."] = "New recovery codes successfully generated."; +$a->strings["Two-factor recovery codes"] = "Two-factor recovery codes"; +$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = "

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe place! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "; +$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = "When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."; +$a->strings["Generate new recovery codes"] = "Generate new recovery codes"; +$a->strings["Next: Verification"] = "Next: Verification"; +$a->strings["Two-factor authentication successfully activated."] = "Two-factor authentication successfully activated."; +$a->strings["Invalid code, please retry."] = "Invalid code, please try again."; +$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = "

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account name
    \n\t
    %s
    \n\t
    Secret key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "; +$a->strings["Two-factor code verification"] = "Two-factor code verification"; +$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = "

    Please scan this QR Code with your authenticator app and submit the provided code.

    "; +$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = "

    Or you can open the following URL in your mobile device:

    %s

    "; +$a->strings["Please enter a code from your authentication app"] = "Please enter a code from your authentication app"; +$a->strings["Verify code and enable two-factor authentication"] = "Verify code and enable two-factor authentication"; +$a->strings["Bad Request"] = "Bad Request"; +$a->strings["Unauthorized"] = "Unauthorized"; +$a->strings["Forbidden"] = "Forbidden"; +$a->strings["Not Found"] = "Not found"; +$a->strings["Internal Server Error"] = "Internal Server Error"; +$a->strings["Service Unavailable"] = "Service Unavailable"; +$a->strings["The server cannot or will not process the request due to an apparent client error."] = "The server cannot process the request due to an apparent client error."; +$a->strings["Authentication is required and has failed or has not yet been provided."] = "Authentication is required and has failed or has not yet been provided."; +$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."; +$a->strings["The requested resource could not be found but may be available in the future."] = "The requested resource could not be found but may be available in the future."; +$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "An unexpected condition was encountered and no more specific message is available."; +$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."; +$a->strings["Go back"] = "Go back"; $a->strings["At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."] = "At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."; $a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = "This information is required for communication and is passed on to the nodes of the communication partners and stored there. Users can enter additional personal information that may be transmitted to the communication partner's accounts."; $a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = "At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."; $a->strings["Privacy Statement"] = "Privacy Statement"; +$a->strings["Remaining recovery codes: %d"] = "Remaining recovery codes: %d"; +$a->strings["Two-factor recovery"] = "Two-factor recovery"; +$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = "

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "; +$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = "Don’t have your phone? Enter a two-factor recovery code"; +$a->strings["Please enter a recovery code"] = "Please enter a recovery code"; +$a->strings["Submit recovery code and complete login"] = "Submit recovery code and complete login"; +$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = "

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "; +$a->strings["Verify code and complete login"] = "Verify code and complete login"; $a->strings["This entry was edited"] = "This entry was edited"; +$a->strings["Private Message"] = "Private message"; $a->strings["Delete locally"] = "Delete locally"; $a->strings["Delete globally"] = "Delete globally"; $a->strings["Remove locally"] = "Remove locally"; @@ -2218,6 +2296,8 @@ $a->strings["Custom"] = "Custom"; $a->strings["Note"] = "Note"; $a->strings["Check image permissions if all users are allowed to see the image"] = "Check image permissions that all everyone is allowed to see the image"; $a->strings["Select color scheme"] = "Select colour scheme"; +$a->strings["Copy or paste schemestring"] = "Copy or paste theme string"; +$a->strings["You can copy this string to share your theme with others. Pasting here applies the schemestring"] = "You can copy this string to share your theme with others. Pasting here applies the theme string"; $a->strings["Navigation bar background color"] = "Navigation bar background colour:"; $a->strings["Navigation bar icon color "] = "Navigation bar icon colour:"; $a->strings["Link color"] = "Link colour:"; From 72fdbbe790d34947c25885aeddc86cffd68ddc8e Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 22 Jun 2019 08:04:46 +0200 Subject: [PATCH 640/653] EN US translation update THX AndyH3 --- view/lang/en-us/messages.po | 7910 ++++++++++++++++++----------------- view/lang/en-us/strings.php | 1248 +++--- 2 files changed, 4836 insertions(+), 4322 deletions(-) diff --git a/view/lang/en-us/messages.po b/view/lang/en-us/messages.po index 2ed2aaaa7..fa5865d38 100644 --- a/view/lang/en-us/messages.po +++ b/view/lang/en-us/messages.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: friendica\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-02-15 09:33-0500\n" -"PO-Revision-Date: 2019-03-11 16:13+0000\n" +"POT-Creation-Date: 2019-05-15 08:55-0400\n" +"PO-Revision-Date: 2019-06-16 06:56+0000\n" "Last-Translator: Andy H3 \n" "Language-Team: English (United States) (http://www.transifex.com/Friendica/friendica/language/en_US/)\n" "MIME-Version: 1.0\n" @@ -20,14 +20,14 @@ msgstr "" "Language: en_US\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: include/api.php:1179 +#: include/api.php:1116 #, php-format msgid "Daily posting limit of %d post reached. The post was rejected." msgid_plural "Daily posting limit of %d posts reached. The post was rejected." msgstr[0] "Daily posting limit of %d post reached. The post was rejected." msgstr[1] "Daily posting limit of %d posts reached. This post was rejected." -#: include/api.php:1193 +#: include/api.php:1130 #, php-format msgid "Weekly posting limit of %d post reached. The post was rejected." msgid_plural "" @@ -35,33 +35,33 @@ msgid_plural "" msgstr[0] "Weekly posting limit of %d post reached. The post was rejected." msgstr[1] "Weekly posting limit of %d posts reached. This post was rejected." -#: include/api.php:1207 +#: include/api.php:1144 #, php-format msgid "Monthly posting limit of %d post reached. The post was rejected." msgstr "Monthly posting limit of %d posts reached. This post was rejected." -#: include/api.php:4578 mod/photos.php:93 mod/photos.php:201 -#: mod/photos.php:695 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1636 mod/profile_photo.php:85 mod/profile_photo.php:94 +#: include/api.php:4511 mod/photos.php:91 mod/photos.php:193 +#: mod/photos.php:636 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1601 mod/profile_photo.php:85 mod/profile_photo.php:94 #: mod/profile_photo.php:103 mod/profile_photo.php:217 -#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:736 -#: src/Model/User.php:744 src/Model/User.php:752 +#: mod/profile_photo.php:305 mod/profile_photo.php:315 src/Model/User.php:763 +#: src/Model/User.php:771 src/Model/User.php:779 msgid "Profile Photos" msgstr "Profile photos" #: include/conversation.php:160 include/conversation.php:297 -#: src/Model/Item.php:3283 +#: src/Model/Item.php:3253 msgid "event" msgstr "event" #: include/conversation.php:163 include/conversation.php:173 #: include/conversation.php:300 include/conversation.php:309 -#: mod/subthread.php:88 mod/tagger.php:70 +#: mod/subthread.php:88 mod/tagger.php:68 msgid "status" msgstr "status" #: include/conversation.php:168 include/conversation.php:305 -#: mod/subthread.php:88 mod/tagger.php:70 src/Model/Item.php:3285 +#: mod/subthread.php:88 mod/tagger.php:68 src/Model/Item.php:3255 msgid "photo" msgstr "photo" @@ -100,7 +100,7 @@ msgstr "%1$s is now friends with %2$s" msgid "%1$s poked %2$s" msgstr "%1$s poked %2$s" -#: include/conversation.php:319 mod/tagger.php:108 +#: include/conversation.php:319 mod/tagger.php:101 #, php-format msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s tagged %2$s's %3$s with %4$s" @@ -114,379 +114,408 @@ msgstr "Post/Item" msgid "%1$s marked %2$s's %3$s as favorite" msgstr "%1$s marked %2$s's %3$s as favorite" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:352 +#: include/conversation.php:568 mod/photos.php:1433 mod/profiles.php:352 msgid "Likes" msgstr "Likes" -#: include/conversation.php:568 mod/photos.php:1467 mod/profiles.php:355 +#: include/conversation.php:569 mod/photos.php:1433 mod/profiles.php:355 msgid "Dislikes" msgstr "Dislikes" -#: include/conversation.php:569 include/conversation.php:1505 -#: mod/photos.php:1468 +#: include/conversation.php:570 include/conversation.php:1564 +#: mod/photos.php:1434 msgid "Attending" msgid_plural "Attending" msgstr[0] "Attending" msgstr[1] "Attending" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:571 mod/photos.php:1434 msgid "Not attending" msgstr "Not attending" -#: include/conversation.php:569 mod/photos.php:1468 +#: include/conversation.php:572 mod/photos.php:1434 msgid "Might attend" msgstr "Might attend" -#: include/conversation.php:649 mod/photos.php:1524 src/Object/Post.php:207 +#: include/conversation.php:573 +msgid "Reshares" +msgstr "Reshares" + +#: include/conversation.php:653 mod/photos.php:1490 src/Object/Post.php:208 msgid "Select" msgstr "Select" -#: include/conversation.php:650 mod/admin.php:2072 mod/photos.php:1525 -#: mod/settings.php:726 src/Module/Contact.php:827 src/Module/Contact.php:1102 +#: include/conversation.php:654 mod/photos.php:1491 mod/settings.php:735 +#: src/Module/Admin/Users.php:288 src/Module/Contact.php:830 +#: src/Module/Contact.php:1105 msgid "Delete" msgstr "Delete" -#: include/conversation.php:684 src/Object/Post.php:380 -#: src/Object/Post.php:381 +#: include/conversation.php:679 src/Object/Post.php:382 +#: src/Object/Post.php:383 #, php-format msgid "View %s's profile @ %s" msgstr "View %s's profile @ %s" -#: include/conversation.php:696 src/Object/Post.php:368 +#: include/conversation.php:692 src/Object/Post.php:370 msgid "Categories:" msgstr "Categories:" -#: include/conversation.php:697 src/Object/Post.php:369 +#: include/conversation.php:693 src/Object/Post.php:371 msgid "Filed under:" msgstr "Filed under:" -#: include/conversation.php:704 src/Object/Post.php:394 +#: include/conversation.php:700 src/Object/Post.php:396 #, php-format msgid "%s from %s" msgstr "%s from %s" -#: include/conversation.php:719 +#: include/conversation.php:715 msgid "View in context" msgstr "View in context" -#: include/conversation.php:721 include/conversation.php:1171 -#: mod/editpost.php:88 mod/message.php:260 mod/message.php:442 -#: mod/photos.php:1440 mod/wallmessage.php:141 src/Object/Post.php:421 +#: include/conversation.php:717 include/conversation.php:1230 +#: mod/editpost.php:86 mod/message.php:260 mod/message.php:442 +#: mod/photos.php:1406 mod/wallmessage.php:141 src/Object/Post.php:423 msgid "Please wait" msgstr "Please wait" -#: include/conversation.php:785 +#: include/conversation.php:781 msgid "remove" msgstr "Remove" -#: include/conversation.php:789 +#: include/conversation.php:785 msgid "Delete Selected Items" msgstr "Delete selected items" -#: include/conversation.php:893 view/theme/frio/theme.php:358 +#: include/conversation.php:940 view/theme/frio/theme.php:358 msgid "Follow Thread" msgstr "Follow thread" -#: include/conversation.php:894 src/Model/Contact.php:1049 +#: include/conversation.php:941 src/Model/Contact.php:1111 msgid "View Status" msgstr "View status" -#: include/conversation.php:895 include/conversation.php:911 -#: mod/allfriends.php:72 mod/directory.php:167 mod/dirfind.php:226 -#: mod/match.php:87 mod/suggest.php:87 src/Model/Contact.php:989 -#: src/Model/Contact.php:1042 src/Model/Contact.php:1050 +#: include/conversation.php:942 include/conversation.php:960 +#: mod/dirfind.php:226 mod/match.php:87 mod/suggest.php:87 +#: src/Model/Contact.php:1051 src/Model/Contact.php:1104 +#: src/Model/Contact.php:1112 src/Module/AllFriends.php:74 +#: src/Module/Directory.php:155 msgid "View Profile" msgstr "View profile" -#: include/conversation.php:896 src/Model/Contact.php:1051 +#: include/conversation.php:943 src/Model/Contact.php:1113 msgid "View Photos" msgstr "View photos" -#: include/conversation.php:897 src/Model/Contact.php:1043 -#: src/Model/Contact.php:1052 +#: include/conversation.php:944 src/Model/Contact.php:1105 +#: src/Model/Contact.php:1114 msgid "Network Posts" msgstr "Network posts" -#: include/conversation.php:898 src/Model/Contact.php:1044 -#: src/Model/Contact.php:1053 +#: include/conversation.php:945 src/Model/Contact.php:1106 +#: src/Model/Contact.php:1115 msgid "View Contact" msgstr "View contact" -#: include/conversation.php:899 src/Model/Contact.php:1055 +#: include/conversation.php:946 src/Model/Contact.php:1117 msgid "Send PM" msgstr "Send PM" -#: include/conversation.php:903 src/Model/Contact.php:1056 +#: include/conversation.php:947 src/Module/Admin/Blocklist/Contact.php:66 +#: src/Module/Admin/Users.php:289 src/Module/Contact.php:624 +#: src/Module/Contact.php:827 src/Module/Contact.php:1080 +msgid "Block" +msgstr "Block" + +#: include/conversation.php:948 mod/notifications.php:60 +#: mod/notifications.php:186 mod/notifications.php:279 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 +msgid "Ignore" +msgstr "Ignore" + +#: include/conversation.php:952 src/Model/Contact.php:1118 msgid "Poke" msgstr "Poke" -#: include/conversation.php:908 mod/allfriends.php:73 mod/dirfind.php:227 -#: mod/follow.php:147 mod/match.php:88 mod/suggest.php:88 -#: src/Content/Widget.php:63 src/Model/Contact.php:1045 -#: src/Module/Contact.php:574 view/theme/vier/theme.php:201 +#: include/conversation.php:957 mod/dirfind.php:227 mod/follow.php:158 +#: mod/match.php:88 mod/suggest.php:88 src/Content/Widget.php:63 +#: src/Model/Contact.php:1107 src/Module/AllFriends.php:75 +#: src/Module/Contact.php:577 view/theme/vier/theme.php:201 msgid "Connect/Follow" msgstr "Connect/Follow" -#: include/conversation.php:1030 +#: include/conversation.php:1082 #, php-format msgid "%s likes this." msgstr "%s likes this." -#: include/conversation.php:1033 +#: include/conversation.php:1085 #, php-format msgid "%s doesn't like this." msgstr "%s doesn't like this." -#: include/conversation.php:1036 +#: include/conversation.php:1088 #, php-format msgid "%s attends." msgstr "%s attends." -#: include/conversation.php:1039 +#: include/conversation.php:1091 #, php-format msgid "%s doesn't attend." msgstr "%s won't attend." -#: include/conversation.php:1042 +#: include/conversation.php:1094 #, php-format msgid "%s attends maybe." msgstr "%s might attend." -#: include/conversation.php:1050 +#: include/conversation.php:1097 include/conversation.php:1140 +#, php-format +msgid "%s reshared this." +msgstr "%s reshared this." + +#: include/conversation.php:1105 msgid "and" msgstr "and" -#: include/conversation.php:1056 +#: include/conversation.php:1111 #, php-format msgid "and %d other people" msgstr "and %d other people" -#: include/conversation.php:1064 +#: include/conversation.php:1119 #, php-format msgid "%2$d people like this" msgstr "%2$d people like this" -#: include/conversation.php:1065 +#: include/conversation.php:1120 #, php-format msgid "%s like this." msgstr "%s like this." -#: include/conversation.php:1068 +#: include/conversation.php:1123 #, php-format msgid "%2$d people don't like this" msgstr "%2$d people don't like this" -#: include/conversation.php:1069 +#: include/conversation.php:1124 #, php-format msgid "%s don't like this." msgstr "%s don't like this." -#: include/conversation.php:1072 +#: include/conversation.php:1127 #, php-format msgid "%2$d people attend" msgstr "%2$d people attend" -#: include/conversation.php:1073 +#: include/conversation.php:1128 #, php-format msgid "%s attend." msgstr "%s attend." -#: include/conversation.php:1076 +#: include/conversation.php:1131 #, php-format msgid "%2$d people don't attend" msgstr "%2$d people won't attend" -#: include/conversation.php:1077 +#: include/conversation.php:1132 #, php-format msgid "%s don't attend." msgstr "%s won't attend." -#: include/conversation.php:1080 +#: include/conversation.php:1135 #, php-format msgid "%2$d people attend maybe" msgstr "%2$d people might attend" -#: include/conversation.php:1081 +#: include/conversation.php:1136 #, php-format msgid "%s attend maybe." msgstr "%s may be attending." -#: include/conversation.php:1110 +#: include/conversation.php:1139 +#, php-format +msgid "%2$d people reshared this" +msgstr "%2$d people reshared this" + +#: include/conversation.php:1169 msgid "Visible to everybody" msgstr "Visible to everybody" -#: include/conversation.php:1111 src/Object/Post.php:883 +#: include/conversation.php:1170 src/Object/Post.php:886 msgid "Please enter a image/video/audio/webpage URL:" msgstr "Please enter an image/video/audio/webpage URL:" -#: include/conversation.php:1112 +#: include/conversation.php:1171 msgid "Tag term:" msgstr "Tag term:" -#: include/conversation.php:1113 mod/filer.php:35 +#: include/conversation.php:1172 src/Module/Filer/SaveTag.php:49 msgid "Save to Folder:" msgstr "Save to folder:" -#: include/conversation.php:1114 +#: include/conversation.php:1173 msgid "Where are you right now?" msgstr "Where are you right now?" -#: include/conversation.php:1115 +#: include/conversation.php:1174 msgid "Delete item(s)?" msgstr "Delete item(s)?" -#: include/conversation.php:1147 +#: include/conversation.php:1206 msgid "New Post" msgstr "New post" -#: include/conversation.php:1150 +#: include/conversation.php:1209 msgid "Share" msgstr "Share" -#: include/conversation.php:1151 mod/editpost.php:74 mod/message.php:258 +#: include/conversation.php:1210 mod/editpost.php:72 mod/message.php:258 #: mod/message.php:439 mod/wallmessage.php:139 msgid "Upload photo" msgstr "Upload photo" -#: include/conversation.php:1152 mod/editpost.php:75 +#: include/conversation.php:1211 mod/editpost.php:73 msgid "upload photo" msgstr "upload photo" -#: include/conversation.php:1153 mod/editpost.php:76 +#: include/conversation.php:1212 mod/editpost.php:74 msgid "Attach file" msgstr "Attach file" -#: include/conversation.php:1154 mod/editpost.php:77 +#: include/conversation.php:1213 mod/editpost.php:75 msgid "attach file" msgstr "attach file" -#: include/conversation.php:1155 src/Object/Post.php:875 +#: include/conversation.php:1214 src/Object/Post.php:878 msgid "Bold" msgstr "Bold" -#: include/conversation.php:1156 src/Object/Post.php:876 +#: include/conversation.php:1215 src/Object/Post.php:879 msgid "Italic" msgstr "Italic" -#: include/conversation.php:1157 src/Object/Post.php:877 +#: include/conversation.php:1216 src/Object/Post.php:880 msgid "Underline" msgstr "Underline" -#: include/conversation.php:1158 src/Object/Post.php:878 +#: include/conversation.php:1217 src/Object/Post.php:881 msgid "Quote" msgstr "Quote" -#: include/conversation.php:1159 src/Object/Post.php:879 +#: include/conversation.php:1218 src/Object/Post.php:882 msgid "Code" msgstr "Code" -#: include/conversation.php:1160 src/Object/Post.php:880 +#: include/conversation.php:1219 src/Object/Post.php:883 msgid "Image" msgstr "Image" -#: include/conversation.php:1161 src/Object/Post.php:881 +#: include/conversation.php:1220 src/Object/Post.php:884 msgid "Link" msgstr "Link" -#: include/conversation.php:1162 src/Object/Post.php:882 +#: include/conversation.php:1221 src/Object/Post.php:885 msgid "Link or Media" msgstr "Link or media" -#: include/conversation.php:1163 mod/editpost.php:84 +#: include/conversation.php:1222 mod/editpost.php:82 msgid "Set your location" msgstr "Set your location" -#: include/conversation.php:1164 mod/editpost.php:85 +#: include/conversation.php:1223 mod/editpost.php:83 msgid "set location" msgstr "set location" -#: include/conversation.php:1165 mod/editpost.php:86 +#: include/conversation.php:1224 mod/editpost.php:84 msgid "Clear browser location" msgstr "Clear browser location" -#: include/conversation.php:1166 mod/editpost.php:87 +#: include/conversation.php:1225 mod/editpost.php:85 msgid "clear location" msgstr "clear location" -#: include/conversation.php:1168 mod/editpost.php:102 +#: include/conversation.php:1227 mod/editpost.php:99 msgid "Set title" msgstr "Set title" -#: include/conversation.php:1170 mod/editpost.php:104 +#: include/conversation.php:1229 mod/editpost.php:101 msgid "Categories (comma-separated list)" msgstr "Categories (comma-separated list)" -#: include/conversation.php:1172 mod/editpost.php:89 +#: include/conversation.php:1231 mod/editpost.php:87 msgid "Permission settings" msgstr "Permission settings" -#: include/conversation.php:1173 mod/editpost.php:119 +#: include/conversation.php:1232 mod/editpost.php:116 msgid "permissions" msgstr "permissions" -#: include/conversation.php:1182 mod/editpost.php:99 +#: include/conversation.php:1241 mod/editpost.php:96 msgid "Public post" msgstr "Public post" -#: include/conversation.php:1186 mod/editpost.php:110 mod/events.php:551 -#: mod/photos.php:1458 mod/photos.php:1497 mod/photos.php:1557 -#: src/Object/Post.php:884 +#: include/conversation.php:1245 mod/editpost.php:107 mod/events.php:549 +#: mod/photos.php:1424 mod/photos.php:1463 mod/photos.php:1523 +#: src/Object/Post.php:887 msgid "Preview" msgstr "Preview" -#: include/conversation.php:1190 include/items.php:396 -#: mod/dfrn_request.php:650 mod/editpost.php:113 mod/fbrowser.php:104 -#: mod/fbrowser.php:134 mod/follow.php:161 mod/message.php:153 -#: mod/photos.php:257 mod/photos.php:325 mod/settings.php:666 -#: mod/settings.php:692 mod/suggest.php:44 mod/tagrm.php:20 mod/tagrm.php:115 -#: mod/unfollow.php:132 mod/videos.php:105 src/Module/Contact.php:447 +#: include/conversation.php:1249 include/items.php:397 +#: mod/dfrn_request.php:650 mod/editpost.php:110 mod/fbrowser.php:110 +#: mod/fbrowser.php:139 mod/follow.php:172 mod/message.php:153 +#: mod/photos.php:1076 mod/photos.php:1183 mod/settings.php:675 +#: mod/settings.php:701 mod/suggest.php:76 mod/tagrm.php:20 mod/tagrm.php:115 +#: mod/unfollow.php:132 src/Module/Contact.php:450 msgid "Cancel" msgstr "Cancel" -#: include/conversation.php:1195 +#: include/conversation.php:1254 msgid "Post to Groups" msgstr "Post to groups" -#: include/conversation.php:1196 +#: include/conversation.php:1255 msgid "Post to Contacts" msgstr "Post to contacts" -#: include/conversation.php:1197 +#: include/conversation.php:1256 msgid "Private post" msgstr "Private post" -#: include/conversation.php:1202 mod/editpost.php:117 -#: src/Model/Profile.php:370 +#: include/conversation.php:1261 mod/editpost.php:114 +#: src/Model/Profile.php:366 msgid "Message" msgstr "Message" -#: include/conversation.php:1203 mod/editpost.php:118 +#: include/conversation.php:1262 mod/editpost.php:115 msgid "Browser" msgstr "Browser" -#: include/conversation.php:1475 +#: include/conversation.php:1534 msgid "View all" msgstr "View all" -#: include/conversation.php:1499 +#: include/conversation.php:1558 msgid "Like" msgid_plural "Likes" msgstr[0] "Like" msgstr[1] "Likes" -#: include/conversation.php:1502 +#: include/conversation.php:1561 msgid "Dislike" msgid_plural "Dislikes" msgstr[0] "Dislike" msgstr[1] "Dislikes" -#: include/conversation.php:1508 +#: include/conversation.php:1567 msgid "Not Attending" msgid_plural "Not Attending" msgstr[0] "Not attending" msgstr[1] "Not attending" -#: include/conversation.php:1511 src/Content/ContactSelector.php:167 +#: include/conversation.php:1570 src/Content/ContactSelector.php:167 msgid "Undecided" msgid_plural "Undecided" msgstr[0] "Undecided" @@ -807,2048 +836,58 @@ msgstr "Full Name:\t%s\nSite Location:\t%s\nLogin Name:\t%s (%s)" msgid "Please visit %s to approve or reject the request." msgstr "Please visit %s to approve or reject the request." -#: include/items.php:353 mod/admin.php:302 mod/admin.php:2131 -#: mod/admin.php:2378 mod/notice.php:20 mod/viewsrc.php:22 +#: include/items.php:354 mod/notice.php:19 +#: src/Module/Admin/Themes/Details.php:53 src/Module/Admin/Themes/Index.php:41 +#: src/Module/ItemBody.php:27 src/Module/ItemBody.php:40 msgid "Item not found." msgstr "Item not found." -#: include/items.php:391 +#: include/items.php:392 msgid "Do you really want to delete this item?" msgstr "Do you really want to delete this item?" -#: include/items.php:393 mod/api.php:109 mod/dfrn_request.php:640 -#: mod/follow.php:150 mod/message.php:150 mod/profiles.php:526 -#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1085 -#: mod/settings.php:1091 mod/settings.php:1098 mod/settings.php:1102 -#: mod/settings.php:1106 mod/settings.php:1110 mod/settings.php:1114 -#: mod/settings.php:1118 mod/settings.php:1138 mod/settings.php:1139 -#: mod/settings.php:1140 mod/settings.php:1141 mod/settings.php:1142 -#: mod/suggest.php:41 src/Module/Contact.php:444 src/Module/Register.php:97 +#: include/items.php:394 mod/api.php:109 mod/dfrn_request.php:640 +#: mod/follow.php:161 mod/message.php:150 mod/profiles.php:526 +#: mod/profiles.php:529 mod/profiles.php:551 mod/settings.php:1084 +#: mod/settings.php:1090 mod/settings.php:1097 mod/settings.php:1101 +#: mod/settings.php:1105 mod/settings.php:1109 mod/settings.php:1113 +#: mod/settings.php:1117 mod/settings.php:1137 mod/settings.php:1138 +#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 +#: mod/suggest.php:73 src/Module/Contact.php:447 src/Module/Register.php:97 msgid "Yes" msgstr "Yes" -#: include/items.php:443 mod/allfriends.php:22 mod/api.php:34 mod/api.php:39 -#: mod/cal.php:303 mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 -#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:66 -#: mod/dirfind.php:29 mod/editpost.php:22 mod/events.php:207 mod/follow.php:57 -#: mod/follow.php:121 mod/fsuggest.php:77 mod/group.php:28 mod/invite.php:23 -#: mod/invite.php:111 mod/item.php:167 mod/manage.php:129 mod/message.php:56 -#: mod/message.php:101 mod/network.php:35 mod/nogroup.php:18 mod/notes.php:27 -#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:186 -#: mod/photos.php:1020 mod/poke.php:141 mod/profiles.php:182 +#: include/items.php:444 mod/api.php:34 mod/api.php:39 mod/cal.php:301 +#: mod/common.php:27 mod/crepair.php:90 mod/delegate.php:30 +#: mod/delegate.php:48 mod/delegate.php:59 mod/dfrn_confirm.php:64 +#: mod/dirfind.php:29 mod/editpost.php:21 mod/events.php:207 mod/follow.php:57 +#: mod/follow.php:132 mod/fsuggest.php:77 mod/item.php:169 mod/manage.php:130 +#: mod/message.php:56 mod/message.php:101 mod/network.php:36 mod/notes.php:27 +#: mod/notifications.php:70 mod/ostatus_subscribe.php:18 mod/photos.php:178 +#: mod/photos.php:958 mod/poke.php:141 mod/profiles.php:182 #: mod/profiles.php:499 mod/profile_photo.php:32 mod/profile_photo.php:177 #: mod/profile_photo.php:204 mod/regmod.php:89 mod/repair_ostatus.php:16 -#: mod/settings.php:48 mod/settings.php:154 mod/settings.php:655 -#: mod/suggest.php:62 mod/uimport.php:17 mod/unfollow.php:22 +#: mod/settings.php:50 mod/settings.php:163 mod/settings.php:664 +#: mod/suggest.php:39 mod/uimport.php:17 mod/unfollow.php:22 #: mod/unfollow.php:77 mod/unfollow.php:109 mod/viewcontacts.php:56 #: mod/wallmessage.php:19 mod/wallmessage.php:43 mod/wallmessage.php:82 #: mod/wallmessage.php:106 mod/wall_attach.php:76 mod/wall_attach.php:79 -#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/App.php:1480 -#: src/Module/Attach.php:42 src/Module/Contact.php:360 -#: src/Module/Register.php:193 +#: mod/wall_upload.php:107 mod/wall_upload.php:110 src/Module/Attach.php:42 +#: src/Module/Contact.php:362 src/Module/FollowConfirm.php:27 +#: src/Module/Group.php:31 src/Module/Group.php:77 src/Module/Invite.php:22 +#: src/Module/Invite.php:110 src/Module/Register.php:192 msgid "Permission denied." msgstr "Permission denied." -#: include/items.php:514 src/Content/Feature.php:99 +#: include/items.php:515 src/Content/Feature.php:99 msgid "Archives" msgstr "Archives" -#: include/items.php:520 src/Content/ForumManager.php:135 +#: include/items.php:521 src/Content/ForumManager.php:135 #: src/Content/Widget.php:329 view/theme/vier/theme.php:255 msgid "show more" msgstr "show more" -#: mod/admin.php:122 -msgid "Theme settings updated." -msgstr "Theme settings updated." - -#: mod/admin.php:196 src/Content/Nav.php:231 -msgid "Information" -msgstr "Information" - -#: mod/admin.php:197 -msgid "Overview" -msgstr "Overview" - -#: mod/admin.php:198 mod/admin.php:779 -msgid "Federation Statistics" -msgstr "Federation statistics" - -#: mod/admin.php:199 -msgid "Configuration" -msgstr "Configuration" - -#: mod/admin.php:200 mod/admin.php:1581 -msgid "Site" -msgstr "Site" - -#: mod/admin.php:201 mod/admin.php:1482 mod/admin.php:2062 mod/admin.php:2079 -msgid "Users" -msgstr "Users" - -#: mod/admin.php:202 mod/admin.php:2179 mod/admin.php:2239 mod/settings.php:99 -msgid "Addons" -msgstr "Addons" - -#: mod/admin.php:203 mod/admin.php:2436 mod/admin.php:2480 -msgid "Themes" -msgstr "Theme selection" - -#: mod/admin.php:204 mod/settings.php:77 -msgid "Additional features" -msgstr "Additional features" - -#: mod/admin.php:205 mod/admin.php:329 src/Content/Nav.php:234 -#: src/Module/Register.php:144 src/Module/Tos.php:73 -msgid "Terms of Service" -msgstr "Terms of Service" - -#: mod/admin.php:206 -msgid "Database" -msgstr "Database" - -#: mod/admin.php:207 -msgid "DB updates" -msgstr "DB updates" - -#: mod/admin.php:208 mod/admin.php:823 -msgid "Inspect Queue" -msgstr "Inspect queue" - -#: mod/admin.php:209 -msgid "Inspect Deferred Workers" -msgstr "Inspect deferred workers" - -#: mod/admin.php:210 -msgid "Inspect worker Queue" -msgstr "Inspect worker queue" - -#: mod/admin.php:211 -msgid "Tools" -msgstr "Tools" - -#: mod/admin.php:212 -msgid "Contact Blocklist" -msgstr "Contact blocklist" - -#: mod/admin.php:213 mod/admin.php:395 -msgid "Server Blocklist" -msgstr "Server blocklist" - -#: mod/admin.php:214 mod/admin.php:558 -msgid "Delete Item" -msgstr "Delete item" - -#: mod/admin.php:215 mod/admin.php:216 mod/admin.php:2556 -msgid "Logs" -msgstr "Logs" - -#: mod/admin.php:217 mod/admin.php:2624 -msgid "View Logs" -msgstr "View logs" - -#: mod/admin.php:219 -msgid "Diagnostics" -msgstr "Diagnostics" - -#: mod/admin.php:220 -msgid "PHP Info" -msgstr "PHP info" - -#: mod/admin.php:221 -msgid "probe address" -msgstr "Probe address" - -#: mod/admin.php:222 -msgid "check webfinger" -msgstr "Check webfinger" - -#: mod/admin.php:242 src/Content/Nav.php:274 -msgid "Admin" -msgstr "Admin" - -#: mod/admin.php:243 -msgid "Addon Features" -msgstr "Addon features" - -#: mod/admin.php:244 -msgid "User registrations waiting for confirmation" -msgstr "User registrations awaiting confirmation" - -#: mod/admin.php:328 mod/admin.php:394 mod/admin.php:514 mod/admin.php:557 -#: mod/admin.php:778 mod/admin.php:822 mod/admin.php:875 mod/admin.php:998 -#: mod/admin.php:1580 mod/admin.php:2061 mod/admin.php:2178 mod/admin.php:2238 -#: mod/admin.php:2435 mod/admin.php:2479 mod/admin.php:2555 mod/admin.php:2623 -msgid "Administration" -msgstr "Administration" - -#: mod/admin.php:330 -msgid "Display Terms of Service" -msgstr "Display Terms of Service" - -#: mod/admin.php:330 -msgid "" -"Enable the Terms of Service page. If this is enabled a link to the terms " -"will be added to the registration form and the general information page." -msgstr "Enable the Terms of Service page. If this is enabled, a link to the terms will be added to the registration form and to the general information page." - -#: mod/admin.php:331 -msgid "Display Privacy Statement" -msgstr "Display Privacy Statement" - -#: mod/admin.php:331 -#, php-format -msgid "" -"Show some informations regarding the needed information to operate the node " -"according e.g. to EU-GDPR." -msgstr "Show some information needed, for example, to comply with EU-GDPR." - -#: mod/admin.php:332 -msgid "Privacy Statement Preview" -msgstr "Privacy Statement Preview" - -#: mod/admin.php:334 -msgid "The Terms of Service" -msgstr "Terms of Service" - -#: mod/admin.php:334 -msgid "" -"Enter the Terms of Service for your node here. You can use BBCode. Headers " -"of sections should be [h2] and below." -msgstr "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or less." - -#: mod/admin.php:336 mod/admin.php:1582 mod/admin.php:2240 mod/admin.php:2481 -#: mod/admin.php:2557 mod/admin.php:2707 mod/delegate.php:175 -#: mod/settings.php:665 mod/settings.php:772 mod/settings.php:860 -#: mod/settings.php:949 mod/settings.php:1174 -msgid "Save Settings" -msgstr "Save settings" - -#: mod/admin.php:386 mod/admin.php:404 mod/dfrn_request.php:346 -#: mod/friendica.php:131 src/Model/Contact.php:1719 -msgid "Blocked domain" -msgstr "Blocked domain" - -#: mod/admin.php:386 -msgid "The blocked domain" -msgstr "Blocked domain" - -#: mod/admin.php:387 mod/admin.php:405 mod/friendica.php:131 -msgid "Reason for the block" -msgstr "Reason for the block" - -#: mod/admin.php:387 mod/admin.php:400 -msgid "The reason why you blocked this domain." -msgstr "Reason why you blocked this domain." - -#: mod/admin.php:388 -msgid "Delete domain" -msgstr "Delete domain" - -#: mod/admin.php:388 -msgid "Check to delete this entry from the blocklist" -msgstr "Check to delete this entry from the blocklist" - -#: mod/admin.php:396 -msgid "" -"This page can be used to define a black list of servers from the federated " -"network that are not allowed to interact with your node. For all entered " -"domains you should also give a reason why you have blocked the remote " -"server." -msgstr "This page can be used to define a blacklist of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server." - -#: mod/admin.php:397 -msgid "" -"The list of blocked servers will be made publically available on the " -"/friendica page so that your users and people investigating communication " -"problems can find the reason easily." -msgstr "The list of blocked servers will be available publicly on the Friendica page so that your users and people investigating communication problems can find the reason." - -#: mod/admin.php:398 -msgid "Add new entry to block list" -msgstr "Add new entry to block list" - -#: mod/admin.php:399 -msgid "Server Domain" -msgstr "Server domain" - -#: mod/admin.php:399 -msgid "" -"The domain of the new server to add to the block list. Do not include the " -"protocol." -msgstr "The domain of the new server to add to the block list. Do not include the protocol." - -#: mod/admin.php:400 -msgid "Block reason" -msgstr "Block reason" - -#: mod/admin.php:401 -msgid "Add Entry" -msgstr "Add entry" - -#: mod/admin.php:402 -msgid "Save changes to the blocklist" -msgstr "Save changes to the blocklist" - -#: mod/admin.php:403 -msgid "Current Entries in the Blocklist" -msgstr "Current entries in the blocklist" - -#: mod/admin.php:406 -msgid "Delete entry from blocklist" -msgstr "Delete entry from blocklist" - -#: mod/admin.php:409 -msgid "Delete entry from blocklist?" -msgstr "Delete entry from blocklist?" - -#: mod/admin.php:436 -msgid "Server added to blocklist." -msgstr "Server added to blocklist." - -#: mod/admin.php:452 -msgid "Site blocklist updated." -msgstr "Site blocklist updated." - -#: mod/admin.php:477 src/Core/Console/GlobalCommunityBlock.php:68 -msgid "The contact has been blocked from the node" -msgstr "This contact has been blocked from the node" - -#: mod/admin.php:479 src/Core/Console/GlobalCommunityBlock.php:65 -#, php-format -msgid "Could not find any contact entry for this URL (%s)" -msgstr "Could not find any contact entry for this URL (%s)" - -#: mod/admin.php:486 -#, php-format -msgid "%s contact unblocked" -msgid_plural "%s contacts unblocked" -msgstr[0] "%s contact unblocked" -msgstr[1] "%s contacts unblocked" - -#: mod/admin.php:515 -msgid "Remote Contact Blocklist" -msgstr "Remote contact blocklist" - -#: mod/admin.php:516 -msgid "" -"This page allows you to prevent any message from a remote contact to reach " -"your node." -msgstr "This page allows you to prevent any message from a remote contact to reach your node." - -#: mod/admin.php:517 -msgid "Block Remote Contact" -msgstr "Block remote contact" - -#: mod/admin.php:518 mod/admin.php:2064 -msgid "select all" -msgstr "select all" - -#: mod/admin.php:519 -msgid "select none" -msgstr "select none" - -#: mod/admin.php:520 mod/admin.php:2073 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Block" -msgstr "Block" - -#: mod/admin.php:521 mod/admin.php:2075 src/Module/Contact.php:621 -#: src/Module/Contact.php:824 src/Module/Contact.php:1077 -msgid "Unblock" -msgstr "Unblock" - -#: mod/admin.php:522 -msgid "No remote contact is blocked from this node." -msgstr "No remote contact is blocked from this node." - -#: mod/admin.php:524 -msgid "Blocked Remote Contacts" -msgstr "Blocked remote contacts" - -#: mod/admin.php:525 -msgid "Block New Remote Contact" -msgstr "Block new remote contact" - -#: mod/admin.php:526 -msgid "Photo" -msgstr "Photo" - -#: mod/admin.php:526 mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 -#: mod/admin.php:2097 mod/crepair.php:159 mod/settings.php:667 -#: mod/settings.php:693 -msgid "Name" -msgstr "Name:" - -#: mod/admin.php:526 mod/profiles.php:382 -msgid "Address" -msgstr "Address" - -#: mod/admin.php:526 mod/admin.php:536 mod/follow.php:166 -#: mod/notifications.php:179 mod/notifications.php:263 mod/unfollow.php:137 -#: src/Module/Contact.php:639 -msgid "Profile URL" -msgstr "Profile URL:" - -#: mod/admin.php:534 -#, php-format -msgid "%s total blocked contact" -msgid_plural "%s total blocked contacts" -msgstr[0] "%s total blocked contact" -msgstr[1] "%s blocked contacts" - -#: mod/admin.php:536 -msgid "URL of the remote contact to block." -msgstr "URL of the remote contact to block." - -#: mod/admin.php:559 -msgid "Delete this Item" -msgstr "Delete" - -#: mod/admin.php:560 -msgid "" -"On this page you can delete an item from your node. If the item is a top " -"level posting, the entire thread will be deleted." -msgstr "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted." - -#: mod/admin.php:561 -msgid "" -"You need to know the GUID of the item. You can find it e.g. by looking at " -"the display URL. The last part of http://example.com/display/123456 is the " -"GUID, here 123456." -msgstr "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456." - -#: mod/admin.php:562 -msgid "GUID" -msgstr "GUID" - -#: mod/admin.php:562 -msgid "The GUID of the item you want to delete." -msgstr "GUID of item to be deleted." - -#: mod/admin.php:597 -msgid "Item marked for deletion." -msgstr "Item marked for deletion." - -#: mod/admin.php:669 -msgid "unknown" -msgstr "unknown" - -#: mod/admin.php:772 -msgid "" -"This page offers you some numbers to the known part of the federated social " -"network your Friendica node is part of. These numbers are not complete but " -"only reflect the part of the network your node is aware of." -msgstr "This page offers statistics about the federated social network, of which your Friendica node is one part. These numbers do not represent the entire network, but merely the parts that are connected to your node.\"" - -#: mod/admin.php:773 -msgid "" -"The Auto Discovered Contact Directory feature is not enabled, it " -"will improve the data displayed here." -msgstr "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here." - -#: mod/admin.php:785 -#, php-format -msgid "" -"Currently this node is aware of %d nodes with %d registered users from the " -"following platforms:" -msgstr "Currently, this node is aware of %d nodes with %d registered users from the following platforms:" - -#: mod/admin.php:825 mod/admin.php:878 -msgid "ID" -msgstr "ID" - -#: mod/admin.php:826 -msgid "Recipient Name" -msgstr "Recipient name" - -#: mod/admin.php:827 -msgid "Recipient Profile" -msgstr "Recipient profile" - -#: mod/admin.php:828 src/Content/Nav.php:239 -#: src/Core/NotificationsManager.php:182 view/theme/frio/theme.php:269 -msgid "Network" -msgstr "Network" - -#: mod/admin.php:829 mod/admin.php:880 -msgid "Created" -msgstr "Created" - -#: mod/admin.php:830 -msgid "Last Tried" -msgstr "Last Tried" - -#: mod/admin.php:831 -msgid "" -"This page lists the content of the queue for outgoing postings. These are " -"postings the initial delivery failed for. They will be resend later and " -"eventually deleted if the delivery fails permanently." -msgstr "This page lists the content of the queue for outgoing postings. These are postings for which the initial delivery failed. They will be resent later, and eventually deleted if the delivery fails permanently." - -#: mod/admin.php:854 -msgid "Inspect Deferred Worker Queue" -msgstr "Inspect deferred worker queue" - -#: mod/admin.php:855 -msgid "" -"This page lists the deferred worker jobs. This are jobs that couldn't be " -"executed at the first time." -msgstr "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed." - -#: mod/admin.php:858 -msgid "Inspect Worker Queue" -msgstr "Inspect worker queue" - -#: mod/admin.php:859 -msgid "" -"This page lists the currently queued worker jobs. These jobs are handled by " -"the worker cronjob you've set up during install." -msgstr "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install." - -#: mod/admin.php:879 -msgid "Job Parameters" -msgstr "Job parameters" - -#: mod/admin.php:881 -msgid "Priority" -msgstr "Priority" - -#: mod/admin.php:907 -#, php-format -msgid "" -"Your DB still runs with MyISAM tables. You should change the engine type to " -"InnoDB. As Friendica will use InnoDB only features in the future, you should" -" change this! See here for a guide that may be helpful " -"converting the table engines. You may also use the command php " -"bin/console.php dbstructure toinnodb of your Friendica installation for" -" an automatic conversion.
    " -msgstr "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB-only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    " - -#: mod/admin.php:914 -#, php-format -msgid "" -"There is a new version of Friendica available for download. Your current " -"version is %1$s, upstream version is %2$s" -msgstr "A new Friendica version is available now. Your current version is %1$s, upstream version is %2$s" - -#: mod/admin.php:924 -msgid "" -"The database update failed. Please run \"php bin/console.php dbstructure " -"update\" from the command line and have a look at the errors that might " -"appear." -msgstr "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear." - -#: mod/admin.php:930 -msgid "The worker was never executed. Please check your database structure!" -msgstr "The worker process has never been executed. Please check your database structure!" - -#: mod/admin.php:933 -#, php-format -msgid "" -"The last worker execution was on %s UTC. This is older than one hour. Please" -" check your crontab settings." -msgstr "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings." - -#: mod/admin.php:939 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -".htconfig.php. See the Config help page for " -"help with the transition." -msgstr "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition..htconfig.php. See the Config help page for help with the transition." - -#: mod/admin.php:943 -#, php-format -msgid "" -"Friendica's configuration now is stored in config/local.config.php, please " -"copy config/local-sample.config.php and move your config from " -"config/local.ini.php. See the Config help " -"page for help with the transition." -msgstr "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition." - -#: mod/admin.php:950 -#, php-format -msgid "" -"%s is not reachable on your system. This is a severe " -"configuration issue that prevents server to server communication. See the installation page for help." -msgstr "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help." - -#: mod/admin.php:956 -msgid "Normal Account" -msgstr "Standard account" - -#: mod/admin.php:957 -msgid "Automatic Follower Account" -msgstr "Automatic follower account" - -#: mod/admin.php:958 -msgid "Public Forum Account" -msgstr "Public forum account" - -#: mod/admin.php:959 -msgid "Automatic Friend Account" -msgstr "Automatic friend account" - -#: mod/admin.php:960 -msgid "Blog Account" -msgstr "Blog account" - -#: mod/admin.php:961 -msgid "Private Forum Account" -msgstr "Private forum account" - -#: mod/admin.php:984 -msgid "Message queues" -msgstr "Message queues" - -#: mod/admin.php:990 -msgid "Server Settings" -msgstr "Server Settings" - -#: mod/admin.php:999 -msgid "Summary" -msgstr "Summary" - -#: mod/admin.php:1001 -msgid "Registered users" -msgstr "Signed up users" - -#: mod/admin.php:1003 -msgid "Pending registrations" -msgstr "Pending registrations" - -#: mod/admin.php:1004 -msgid "Version" -msgstr "Version" - -#: mod/admin.php:1009 -msgid "Active addons" -msgstr "Active addons" - -#: mod/admin.php:1042 -msgid "Can not parse base url. Must have at least ://" -msgstr "Can not parse base URL. Must have at least ://" - -#: mod/admin.php:1415 -msgid "Site settings updated." -msgstr "Site settings updated." - -#: mod/admin.php:1444 mod/settings.php:893 -msgid "No special theme for mobile devices" -msgstr "No special theme for mobile devices" - -#: mod/admin.php:1473 -msgid "No community page for local users" -msgstr "No community page for local users" - -#: mod/admin.php:1474 -msgid "No community page" -msgstr "No community page" - -#: mod/admin.php:1475 -msgid "Public postings from users of this site" -msgstr "Public postings from users of this site" - -#: mod/admin.php:1476 -msgid "Public postings from the federated network" -msgstr "Public postings from the federated network" - -#: mod/admin.php:1477 -msgid "Public postings from local users and the federated network" -msgstr "Public postings from local users and the federated network" - -#: mod/admin.php:1481 mod/admin.php:1682 mod/admin.php:1692 -#: src/Module/Contact.php:546 -msgid "Disabled" -msgstr "Disabled" - -#: mod/admin.php:1483 -msgid "Users, Global Contacts" -msgstr "Users, Global Contacts" - -#: mod/admin.php:1484 -msgid "Users, Global Contacts/fallback" -msgstr "Users, Global Contacts/fallback" - -#: mod/admin.php:1488 -msgid "One month" -msgstr "One month" - -#: mod/admin.php:1489 -msgid "Three months" -msgstr "Three months" - -#: mod/admin.php:1490 -msgid "Half a year" -msgstr "Half a year" - -#: mod/admin.php:1491 -msgid "One year" -msgstr "One a year" - -#: mod/admin.php:1496 -msgid "Multi user instance" -msgstr "Multi user instance" - -#: mod/admin.php:1520 -msgid "Closed" -msgstr "Closed" - -#: mod/admin.php:1521 -msgid "Requires approval" -msgstr "Requires approval" - -#: mod/admin.php:1522 -msgid "Open" -msgstr "Open" - -#: mod/admin.php:1526 -msgid "No SSL policy, links will track page SSL state" -msgstr "No SSL policy, links will track page SSL state" - -#: mod/admin.php:1527 -msgid "Force all links to use SSL" -msgstr "Force all links to use SSL" - -#: mod/admin.php:1528 -msgid "Self-signed certificate, use SSL for local links only (discouraged)" -msgstr "Self-signed certificate, use SSL for local links only (discouraged)" - -#: mod/admin.php:1532 -msgid "Don't check" -msgstr "Don't check" - -#: mod/admin.php:1533 -msgid "check the stable version" -msgstr "check for stable version updates" - -#: mod/admin.php:1534 -msgid "check the development version" -msgstr "check for development version updates" - -#: mod/admin.php:1556 -msgid "Database (legacy)" -msgstr "Database (legacy)" - -#: mod/admin.php:1583 -msgid "Republish users to directory" -msgstr "Republish users to directory" - -#: mod/admin.php:1584 src/Module/Register.php:121 -msgid "Registration" -msgstr "Registration" - -#: mod/admin.php:1585 -msgid "File upload" -msgstr "File upload" - -#: mod/admin.php:1586 -msgid "Policies" -msgstr "Policies" - -#: mod/admin.php:1587 mod/events.php:555 src/Model/Profile.php:878 -#: src/Module/Contact.php:902 -msgid "Advanced" -msgstr "Advanced" - -#: mod/admin.php:1588 -msgid "Auto Discovered Contact Directory" -msgstr "Auto-discovered contact directory" - -#: mod/admin.php:1589 -msgid "Performance" -msgstr "Performance" - -#: mod/admin.php:1590 -msgid "Worker" -msgstr "Worker" - -#: mod/admin.php:1591 -msgid "Message Relay" -msgstr "Message relay" - -#: mod/admin.php:1592 -msgid "Relocate Instance" -msgstr "Relocate Instance" - -#: mod/admin.php:1593 -msgid "Warning! Advanced function. Could make this server unreachable." -msgstr "Warning! Advanced function that could make this server unreachable." - -#: mod/admin.php:1597 -msgid "Site name" -msgstr "Site name" - -#: mod/admin.php:1598 -msgid "Host name" -msgstr "Host name" - -#: mod/admin.php:1599 -msgid "Sender Email" -msgstr "Sender email" - -#: mod/admin.php:1599 -msgid "" -"The email address your server shall use to send notification emails from." -msgstr "The email address your server shall use to send notification emails from." - -#: mod/admin.php:1600 -msgid "Banner/Logo" -msgstr "Banner/Logo" - -#: mod/admin.php:1601 -msgid "Shortcut icon" -msgstr "Shortcut icon" - -#: mod/admin.php:1601 -msgid "Link to an icon that will be used for browsers." -msgstr "Link to an icon that will be used for browsers." - -#: mod/admin.php:1602 -msgid "Touch icon" -msgstr "Touch icon" - -#: mod/admin.php:1602 -msgid "Link to an icon that will be used for tablets and mobiles." -msgstr "Link to an icon that will be used for tablets and mobiles." - -#: mod/admin.php:1603 -msgid "Additional Info" -msgstr "Additional Info" - -#: mod/admin.php:1603 -#, php-format -msgid "" -"For public servers: you can add additional information here that will be " -"listed at %s/servers." -msgstr "For public servers: You can add additional information here that will be listed at %s/servers." - -#: mod/admin.php:1604 -msgid "System language" -msgstr "System language" - -#: mod/admin.php:1605 -msgid "System theme" -msgstr "System theme" - -#: mod/admin.php:1605 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Default system theme - may be overridden by user profiles - change theme settings" - -#: mod/admin.php:1606 -msgid "Mobile system theme" -msgstr "Mobile system theme" - -#: mod/admin.php:1606 -msgid "Theme for mobile devices" -msgstr "Theme for mobile devices" - -#: mod/admin.php:1607 -msgid "SSL link policy" -msgstr "SSL link policy" - -#: mod/admin.php:1607 -msgid "Determines whether generated links should be forced to use SSL" -msgstr "Determines whether generated links should be forced to use SSL" - -#: mod/admin.php:1608 -msgid "Force SSL" -msgstr "Force SSL" - -#: mod/admin.php:1608 -msgid "" -"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" -" to endless loops." -msgstr "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops." - -#: mod/admin.php:1609 -msgid "Hide help entry from navigation menu" -msgstr "Hide help entry from navigation menu" - -#: mod/admin.php:1609 -msgid "" -"Hides the menu entry for the Help pages from the navigation menu. You can " -"still access it calling /help directly." -msgstr "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL." - -#: mod/admin.php:1610 -msgid "Single user instance" -msgstr "Single user instance" - -#: mod/admin.php:1610 -msgid "Make this instance multi-user or single-user for the named user" -msgstr "Make this instance multi-user or single-user for the named user" - -#: mod/admin.php:1612 -msgid "File storage backend" -msgstr "File storage backend" - -#: mod/admin.php:1612 -msgid "" -"The backend used to store uploaded data. If you change the storage backend, " -"you can manually move the existing files. If you do not do so, the files " -"uploaded before the change will still be available at the old backend. " -"Please see the settings documentation" -" for more information about the choices and the moving procedure." -msgstr "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure." - -#: mod/admin.php:1614 -msgid "Maximum image size" -msgstr "Maximum image size" - -#: mod/admin.php:1614 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Maximum size in bytes of uploaded images. Default is 0, which means no limits." - -#: mod/admin.php:1615 -msgid "Maximum image length" -msgstr "Maximum image length" - -#: mod/admin.php:1615 -msgid "" -"Maximum length in pixels of the longest side of uploaded images. Default is " -"-1, which means no limits." -msgstr "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits." - -#: mod/admin.php:1616 -msgid "JPEG image quality" -msgstr "JPEG image quality" - -#: mod/admin.php:1616 -msgid "" -"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " -"100, which is full quality." -msgstr "Uploaded JPEGs will be saved at this quality setting [0-100]. Default is 100, which is the original quality level." - -#: mod/admin.php:1618 -msgid "Register policy" -msgstr "Registration policy" - -#: mod/admin.php:1619 -msgid "Maximum Daily Registrations" -msgstr "Maximum daily registrations" - -#: mod/admin.php:1619 -msgid "" -"If registration is permitted above, this sets the maximum number of new user" -" registrations to accept per day. If register is set to closed, this " -"setting has no effect." -msgstr "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval." - -#: mod/admin.php:1620 -msgid "Register text" -msgstr "Registration text" - -#: mod/admin.php:1620 -msgid "" -"Will be displayed prominently on the registration page. You can use BBCode " -"here." -msgstr "Will be displayed prominently on the registration page. You may use BBCode here." - -#: mod/admin.php:1621 -msgid "Forbidden Nicknames" -msgstr "Forbidden Nicknames" - -#: mod/admin.php:1621 -msgid "" -"Comma separated list of nicknames that are forbidden from registration. " -"Preset is a list of role names according RFC 2142." -msgstr "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142." - -#: mod/admin.php:1622 -msgid "Accounts abandoned after x days" -msgstr "Accounts abandoned after so many days" - -#: mod/admin.php:1622 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit." - -#: mod/admin.php:1623 -msgid "Allowed friend domains" -msgstr "Allowed friend domains" - -#: mod/admin.php:1623 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Comma-separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains" - -#: mod/admin.php:1624 -msgid "Allowed email domains" -msgstr "Allowed email domains" - -#: mod/admin.php:1624 -msgid "" -"Comma separated list of domains which are allowed in email addresses for " -"registrations to this site. Wildcards are accepted. Empty to allow any " -"domains" -msgstr "Comma-separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains" - -#: mod/admin.php:1625 -msgid "No OEmbed rich content" -msgstr "No OEmbed rich content" - -#: mod/admin.php:1625 -msgid "" -"Don't show the rich content (e.g. embedded PDF), except from the domains " -"listed below." -msgstr "Don't show rich content (e.g. embedded PDF), except from the domains listed below." - -#: mod/admin.php:1626 -msgid "Allowed OEmbed domains" -msgstr "Allowed OEmbed domains" - -#: mod/admin.php:1626 -msgid "" -"Comma separated list of domains which oembed content is allowed to be " -"displayed. Wildcards are accepted." -msgstr "Comma-separated list of domains from where OEmbed content is allowed. Wildcards are possible." - -#: mod/admin.php:1627 -msgid "Block public" -msgstr "Block public" - -#: mod/admin.php:1627 -msgid "" -"Check to block public access to all otherwise public personal pages on this " -"site unless you are currently logged in." -msgstr "Block public access to all otherwise public personal pages on this site, except for local users when logged in." - -#: mod/admin.php:1628 -msgid "Force publish" -msgstr "Mandatory directory listing" - -#: mod/admin.php:1628 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Force all profiles on this site to be listed in the site directory." - -#: mod/admin.php:1628 -msgid "Enabling this may violate privacy laws like the GDPR" -msgstr "Enabling this may violate privacy laws like the GDPR" - -#: mod/admin.php:1629 -msgid "Global directory URL" -msgstr "Global directory URL" - -#: mod/admin.php:1629 -msgid "" -"URL to the global directory. If this is not set, the global directory is " -"completely unavailable to the application." -msgstr "URL to the global directory: If this is not set, the global directory is completely unavailable to the application." - -#: mod/admin.php:1630 -msgid "Private posts by default for new users" -msgstr "Private posts by default for new users" - -#: mod/admin.php:1630 -msgid "" -"Set default post permissions for all new members to the default privacy " -"group rather than public." -msgstr "Set default post permissions for all new members to the default privacy group rather than public." - -#: mod/admin.php:1631 -msgid "Don't include post content in email notifications" -msgstr "Don't include post content in email notifications" - -#: mod/admin.php:1631 -msgid "" -"Don't include the content of a post/comment/private message/etc. in the " -"email notifications that are sent out from this site, as a privacy measure." -msgstr "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure." - -#: mod/admin.php:1632 -msgid "Disallow public access to addons listed in the apps menu." -msgstr "Disallow public access to addons listed in the apps menu." - -#: mod/admin.php:1632 -msgid "" -"Checking this box will restrict addons listed in the apps menu to members " -"only." -msgstr "Checking this box will restrict addons listed in the apps menu to members only." - -#: mod/admin.php:1633 -msgid "Don't embed private images in posts" -msgstr "Don't embed private images in posts" - -#: mod/admin.php:1633 -msgid "" -"Don't replace locally-hosted private photos in posts with an embedded copy " -"of the image. This means that contacts who receive posts containing private " -"photos will have to authenticate and load each image, which may take a " -"while." -msgstr "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while." - -#: mod/admin.php:1634 -msgid "Explicit Content" -msgstr "Explicit Content" - -#: mod/admin.php:1634 -msgid "" -"Set this to announce that your node is used mostly for explicit content that" -" might not be suited for minors. This information will be published in the " -"node information and might be used, e.g. by the global directory, to filter " -"your node from listings of nodes to join. Additionally a note about this " -"will be shown at the user registration page." -msgstr "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page." - -#: mod/admin.php:1635 -msgid "Allow Users to set remote_self" -msgstr "Allow users to set \"Remote self\"" - -#: mod/admin.php:1635 -msgid "" -"With checking this, every user is allowed to mark every contact as a " -"remote_self in the repair contact dialog. Setting this flag on a contact " -"causes mirroring every posting of that contact in the users stream." -msgstr "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream." - -#: mod/admin.php:1636 -msgid "Block multiple registrations" -msgstr "Block multiple registrations" - -#: mod/admin.php:1636 -msgid "Disallow users to register additional accounts for use as pages." -msgstr "Disallow users to sign up for additional accounts." - -#: mod/admin.php:1637 -msgid "Disable OpenID" -msgstr "Disable OpenID" - -#: mod/admin.php:1637 -msgid "Disable OpenID support for registration and logins." -msgstr "Disable OpenID support for registration and logins." - -#: mod/admin.php:1638 -msgid "No Fullname check" -msgstr "No full name check" - -#: mod/admin.php:1638 -msgid "" -"Allow users to register without a space between the first name and the last " -"name in their full name." -msgstr "Allow users to register without a space between the first name and the last name in their full name." - -#: mod/admin.php:1639 -msgid "Community pages for visitors" -msgstr "Community pages for visitors" - -#: mod/admin.php:1639 -msgid "" -"Which community pages should be available for visitors. Local users always " -"see both pages." -msgstr "Which community pages should be available for visitors. Local users always see both pages." - -#: mod/admin.php:1640 -msgid "Posts per user on community page" -msgstr "Posts per user on community page" - -#: mod/admin.php:1640 -msgid "" -"The maximum number of posts per user on the community page. (Not valid for " -"'Global Community')" -msgstr "Maximum number of posts per user on the community page (not valid for 'Global Community')." - -#: mod/admin.php:1641 -msgid "Disable OStatus support" -msgstr "Disable OStatus support" - -#: mod/admin.php:1641 -msgid "" -"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " -"communications in OStatus are public, so privacy warnings will be " -"occasionally displayed." -msgstr "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed." - -#: mod/admin.php:1642 -msgid "Only import OStatus/ActivityPub threads from our contacts" -msgstr "Only import OStatus/ActivityPub threads from our contacts" - -#: mod/admin.php:1642 -msgid "" -"Normally we import every content from our OStatus and ActivityPub contacts. " -"With this option we only store threads that are started by a contact that is" -" known on our system." -msgstr "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system." - -#: mod/admin.php:1643 -msgid "OStatus support can only be enabled if threading is enabled." -msgstr "OStatus support can only be enabled if threading is enabled." - -#: mod/admin.php:1645 -msgid "" -"Diaspora support can't be enabled because Friendica was installed into a sub" -" directory." -msgstr "diaspora* support can't be enabled because Friendica was installed into a sub directory." - -#: mod/admin.php:1646 -msgid "Enable Diaspora support" -msgstr "Enable diaspora* support" - -#: mod/admin.php:1646 -msgid "Provide built-in Diaspora network compatibility." -msgstr "Provide built-in diaspora* network compatibility." - -#: mod/admin.php:1647 -msgid "Only allow Friendica contacts" -msgstr "Only allow Friendica contacts" - -#: mod/admin.php:1647 -msgid "" -"All contacts must use Friendica protocols. All other built-in communication " -"protocols disabled." -msgstr "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled." - -#: mod/admin.php:1648 -msgid "Verify SSL" -msgstr "Verify SSL" - -#: mod/admin.php:1648 -msgid "" -"If you wish, you can turn on strict certificate checking. This will mean you" -" cannot connect (at all) to self-signed SSL sites." -msgstr "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites." - -#: mod/admin.php:1649 -msgid "Proxy user" -msgstr "Proxy user" - -#: mod/admin.php:1650 -msgid "Proxy URL" -msgstr "Proxy URL" - -#: mod/admin.php:1651 -msgid "Network timeout" -msgstr "Network timeout" - -#: mod/admin.php:1651 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Value is in seconds. Set to 0 for unlimited (not recommended)." - -#: mod/admin.php:1652 -msgid "Maximum Load Average" -msgstr "Maximum load average" - -#: mod/admin.php:1652 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Maximum system load before delivery and poll processes are deferred (default 50)." - -#: mod/admin.php:1653 -msgid "Maximum Load Average (Frontend)" -msgstr "Maximum load average (frontend)" - -#: mod/admin.php:1653 -msgid "Maximum system load before the frontend quits service - default 50." -msgstr "Maximum system load before the frontend quits service (default 50)." - -#: mod/admin.php:1654 -msgid "Minimal Memory" -msgstr "Minimal memory" - -#: mod/admin.php:1654 -msgid "" -"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " -"default 0 (deactivated)." -msgstr "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)." - -#: mod/admin.php:1655 -msgid "Maximum table size for optimization" -msgstr "Maximum table size for optimization" - -#: mod/admin.php:1655 -msgid "" -"Maximum table size (in MB) for the automatic optimization. Enter -1 to " -"disable it." -msgstr "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it." - -#: mod/admin.php:1656 -msgid "Minimum level of fragmentation" -msgstr "Minimum level of fragmentation" - -#: mod/admin.php:1656 -msgid "" -"Minimum fragmenation level to start the automatic optimization - default " -"value is 30%." -msgstr "Minimum fragmentation level to start the automatic optimization (default 30%)." - -#: mod/admin.php:1658 -msgid "Periodical check of global contacts" -msgstr "Periodical check of global contacts" - -#: mod/admin.php:1658 -msgid "" -"If enabled, the global contacts are checked periodically for missing or " -"outdated data and the vitality of the contacts and servers." -msgstr "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers." - -#: mod/admin.php:1659 -msgid "Days between requery" -msgstr "Days between enquiry" - -#: mod/admin.php:1659 -msgid "Number of days after which a server is requeried for his contacts." -msgstr "Number of days after which a server is rechecked for contacts." - -#: mod/admin.php:1660 -msgid "Discover contacts from other servers" -msgstr "Discover contacts from other servers" - -#: mod/admin.php:1660 -msgid "" -"Periodically query other servers for contacts. You can choose between " -"'users': the users on the remote system, 'Global Contacts': active contacts " -"that are known on the system. The fallback is meant for Redmatrix servers " -"and older friendica servers, where global contacts weren't available. The " -"fallback increases the server load, so the recommended setting is 'Users, " -"Global Contacts'." -msgstr "Periodically query other servers for contacts. You can choose between 'users': the users on the remote system and 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'." - -#: mod/admin.php:1661 -msgid "Timeframe for fetching global contacts" -msgstr "Time-frame for fetching global contacts" - -#: mod/admin.php:1661 -msgid "" -"When the discovery is activated, this value defines the timeframe for the " -"activity of the global contacts that are fetched from other servers." -msgstr "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers." - -#: mod/admin.php:1662 -msgid "Search the local directory" -msgstr "Search the local directory" - -#: mod/admin.php:1662 -msgid "" -"Search the local directory instead of the global directory. When searching " -"locally, every search will be executed on the global directory in the " -"background. This improves the search results when the search is repeated." -msgstr "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated." - -#: mod/admin.php:1664 -msgid "Publish server information" -msgstr "Publish server information" - -#: mod/admin.php:1664 -msgid "" -"If enabled, general server and usage data will be published. The data " -"contains the name and version of the server, number of users with public " -"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." -msgstr "This publishes generic data about the server and its usage. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." - -#: mod/admin.php:1666 -msgid "Check upstream version" -msgstr "Check upstream version" - -#: mod/admin.php:1666 -msgid "" -"Enables checking for new Friendica versions at github. If there is a new " -"version, you will be informed in the admin panel overview." -msgstr "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview." - -#: mod/admin.php:1667 -msgid "Suppress Tags" -msgstr "Suppress tags" - -#: mod/admin.php:1667 -msgid "Suppress showing a list of hashtags at the end of the posting." -msgstr "Suppress listed hashtags at the end of posts." - -#: mod/admin.php:1668 -msgid "Clean database" -msgstr "Clean database" - -#: mod/admin.php:1668 -msgid "" -"Remove old remote items, orphaned database records and old content from some" -" other helper tables." -msgstr "Remove old remote items, orphaned database records, and old content from some other helper tables." - -#: mod/admin.php:1669 -msgid "Lifespan of remote items" -msgstr "Lifespan of remote items" - -#: mod/admin.php:1669 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"remote items will be deleted. Own items, and marked or filed items are " -"always kept. 0 disables this behaviour." -msgstr "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items, are always kept. 0 disables this behavior." - -#: mod/admin.php:1670 -msgid "Lifespan of unclaimed items" -msgstr "Lifespan of unclaimed items" - -#: mod/admin.php:1670 -msgid "" -"When the database cleanup is enabled, this defines the days after which " -"unclaimed remote items (mostly content from the relay) will be deleted. " -"Default value is 90 days. Defaults to the general lifespan value of remote " -"items if set to 0." -msgstr "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0." - -#: mod/admin.php:1671 -msgid "Lifespan of raw conversation data" -msgstr "Lifespan of raw conversation data" - -#: mod/admin.php:1671 -msgid "" -"The conversation data is used for ActivityPub and OStatus, as well as for " -"debug purposes. It should be safe to remove it after 14 days, default is 90 " -"days." -msgstr "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days." - -#: mod/admin.php:1672 -msgid "Path to item cache" -msgstr "Path to item cache" - -#: mod/admin.php:1672 -msgid "The item caches buffers generated bbcode and external images." -msgstr "The item cache retains expanded bbcode and external images." - -#: mod/admin.php:1673 -msgid "Cache duration in seconds" -msgstr "Cache duration in seconds" - -#: mod/admin.php:1673 -msgid "" -"How long should the cache files be hold? Default value is 86400 seconds (One" -" day). To disable the item cache, set the value to -1." -msgstr "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)" - -#: mod/admin.php:1674 -msgid "Maximum numbers of comments per post" -msgstr "Maximum number of comments per post" - -#: mod/admin.php:1674 -msgid "How much comments should be shown for each post? Default value is 100." -msgstr "How many comments should be shown for each post? (Default 100)" - -#: mod/admin.php:1675 -msgid "Temp path" -msgstr "Temp path" - -#: mod/admin.php:1675 -msgid "" -"If you have a restricted system where the webserver can't access the system " -"temp path, enter another path here." -msgstr "Enter a different temp path if your system restricts the webserver's access to the system temp path." - -#: mod/admin.php:1676 -msgid "Base path to installation" -msgstr "Base path to installation" - -#: mod/admin.php:1676 -msgid "" -"If the system cannot detect the correct path to your installation, enter the" -" correct path here. This setting should only be set if you are using a " -"restricted system and symbolic links to your webroot." -msgstr "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot." - -#: mod/admin.php:1677 -msgid "Disable picture proxy" -msgstr "Disable picture proxy" - -#: mod/admin.php:1677 -msgid "" -"The picture proxy increases performance and privacy. It shouldn't be used on" -" systems with very low bandwidth." -msgstr "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth." - -#: mod/admin.php:1678 -msgid "Only search in tags" -msgstr "Only search in tags" - -#: mod/admin.php:1678 -msgid "On large systems the text search can slow down the system extremely." -msgstr "On large systems, the text search can slow down the system significantly." - -#: mod/admin.php:1680 -msgid "New base url" -msgstr "New base URL" - -#: mod/admin.php:1680 -msgid "" -"Change base url for this server. Sends relocate message to all Friendica and" -" Diaspora* contacts of all users." -msgstr "Change base URL for this server. Sends a relocate message to all Friendica and diaspora* contacts, for all users." - -#: mod/admin.php:1682 -msgid "RINO Encryption" -msgstr "RINO Encryption" - -#: mod/admin.php:1682 -msgid "Encryption layer between nodes." -msgstr "Encryption layer between nodes." - -#: mod/admin.php:1682 -msgid "Enabled" -msgstr "Enabled" - -#: mod/admin.php:1684 -msgid "Maximum number of parallel workers" -msgstr "Maximum number of parallel workers" - -#: mod/admin.php:1684 -#, php-format -msgid "" -"On shared hosters set this to %d. On larger systems, values of %d are great." -" Default value is %d." -msgstr "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d." - -#: mod/admin.php:1685 -msgid "Don't use 'proc_open' with the worker" -msgstr "Don't use 'proc_open' with the worker" - -#: mod/admin.php:1685 -msgid "" -"Enable this if your system doesn't allow the use of 'proc_open'. This can " -"happen on shared hosters. If this is enabled you should increase the " -"frequency of worker calls in your crontab." -msgstr "Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosts. If this is enabled, you should increase the frequency of worker calls in your crontab." - -#: mod/admin.php:1686 -msgid "Enable fastlane" -msgstr "Enable fast-lane" - -#: mod/admin.php:1686 -msgid "" -"When enabed, the fastlane mechanism starts an additional worker if processes" -" with higher priority are blocked by processes of lower priority." -msgstr "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority." - -#: mod/admin.php:1687 -msgid "Enable frontend worker" -msgstr "Enable frontend worker" - -#: mod/admin.php:1687 -#, php-format -msgid "" -"When enabled the Worker process is triggered when backend access is " -"performed \\x28e.g. messages being delivered\\x29. On smaller sites you " -"might want to call %s/worker on a regular basis via an external cron job. " -"You should only enable this option if you cannot utilize cron/scheduled jobs" -" on your server." -msgstr "When enabled, the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites, you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server." - -#: mod/admin.php:1689 -msgid "Subscribe to relay" -msgstr "Subscribe to relay" - -#: mod/admin.php:1689 -msgid "" -"Enables the receiving of public posts from the relay. They will be included " -"in the search, subscribed tags and on the global community page." -msgstr "Receive public posts from the specified relay. Post will be included in searches, subscribed tags, and on the global community page." - -#: mod/admin.php:1690 -msgid "Relay server" -msgstr "Relay server" - -#: mod/admin.php:1690 -msgid "" -"Address of the relay server where public posts should be send to. For " -"example https://relay.diasp.org" -msgstr "Address of the relay server where public posts should be sent. For example https://relay.diasp.org" - -#: mod/admin.php:1691 -msgid "Direct relay transfer" -msgstr "Direct relay transfer" - -#: mod/admin.php:1691 -msgid "" -"Enables the direct transfer to other servers without using the relay servers" -msgstr "Enables direct transfer to other servers without using a relay server." - -#: mod/admin.php:1692 -msgid "Relay scope" -msgstr "Relay scope" - -#: mod/admin.php:1692 -msgid "" -"Can be 'all' or 'tags'. 'all' means that every public post should be " -"received. 'tags' means that only posts with selected tags should be " -"received." -msgstr "Set to 'all' or 'tags'. 'all' means receive every public post; 'tags' receive public posts only with specified tags." - -#: mod/admin.php:1692 -msgid "all" -msgstr "all" - -#: mod/admin.php:1692 -msgid "tags" -msgstr "tags" - -#: mod/admin.php:1693 -msgid "Server tags" -msgstr "Server tags" - -#: mod/admin.php:1693 -msgid "Comma separated list of tags for the 'tags' subscription." -msgstr "Comma-separated tags for subscription." - -#: mod/admin.php:1694 -msgid "Allow user tags" -msgstr "Allow user tags" - -#: mod/admin.php:1694 -msgid "" -"If enabled, the tags from the saved searches will used for the 'tags' " -"subscription in addition to the 'relay_server_tags'." -msgstr "Use user-generated tags from saved searches for 'tags' subscription in addition to 'relay_server_tags'." - -#: mod/admin.php:1697 -msgid "Start Relocation" -msgstr "Start Relocation" - -#: mod/admin.php:1724 -msgid "Update has been marked successful" -msgstr "Update has been marked successful" - -#: mod/admin.php:1731 -#, php-format -msgid "Database structure update %s was successfully applied." -msgstr "Database structure update %s was successfully applied." - -#: mod/admin.php:1735 -#, php-format -msgid "Executing of database structure update %s failed with error: %s" -msgstr "Execution of database structure update %s failed with error: %s" - -#: mod/admin.php:1751 -#, php-format -msgid "Executing %s failed with error: %s" -msgstr "Execution of %s failed with error: %s" - -#: mod/admin.php:1753 -#, php-format -msgid "Update %s was successfully applied." -msgstr "Update %s was successfully applied." - -#: mod/admin.php:1756 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Update %s did not return a status. Unknown if it succeeded." - -#: mod/admin.php:1759 -#, php-format -msgid "There was no additional update function %s that needed to be called." -msgstr "There was no additional update function %s that needed to be called." - -#: mod/admin.php:1782 -msgid "No failed updates." -msgstr "No failed updates." - -#: mod/admin.php:1783 -msgid "Check database structure" -msgstr "Check database structure" - -#: mod/admin.php:1788 -msgid "Failed Updates" -msgstr "Failed updates" - -#: mod/admin.php:1789 -msgid "" -"This does not include updates prior to 1139, which did not return a status." -msgstr "This does not include updates prior to 1139, which did not return a status." - -#: mod/admin.php:1790 -msgid "Mark success (if update was manually applied)" -msgstr "Mark success (if update was manually applied)" - -#: mod/admin.php:1791 -msgid "Attempt to execute this update step automatically" -msgstr "Attempt to execute this update step automatically" - -#: mod/admin.php:1831 -#, php-format -msgid "" -"\n" -"\t\t\tDear %1$s,\n" -"\t\t\t\tthe administrator of %2$s has set up an account for you." -msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThe administrator of %2$s has set up an account for you." - -#: mod/admin.php:1834 -#, php-format -msgid "" -"\n" -"\t\t\tThe login details are as follows:\n" -"\n" -"\t\t\tSite Location:\t%1$s\n" -"\t\t\tLogin Name:\t\t%2$s\n" -"\t\t\tPassword:\t\t%3$s\n" -"\n" -"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" -"\t\t\tin.\n" -"\n" -"\t\t\tPlease take a few moments to review the other account settings on that page.\n" -"\n" -"\t\t\tYou may also wish to add some basic information to your default profile\n" -"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" -"\n" -"\t\t\tWe recommend setting your full name, adding a profile photo,\n" -"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" -"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" -"\t\t\tthan that.\n" -"\n" -"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" -"\t\t\tIf you are new and do not know anybody here, they may help\n" -"\t\t\tyou to make some new and interesting friends.\n" -"\n" -"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" -"\n" -"\t\t\tThank you and welcome to %4$s." -msgstr "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1$s\n\t\t\tLogin Name:\t\t%2$s\n\t\t\tPassword:\t\t%3$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n\n\t\t\tThank you and welcome to %4$s." - -#: mod/admin.php:1871 src/Model/User.php:859 -#, php-format -msgid "Registration details for %s" -msgstr "Registration details for %s" - -#: mod/admin.php:1881 -#, php-format -msgid "%s user blocked/unblocked" -msgid_plural "%s users blocked/unblocked" -msgstr[0] "%s user blocked/unblocked" -msgstr[1] "%s users blocked/unblocked" - -#: mod/admin.php:1888 mod/admin.php:1942 -msgid "You can't remove yourself" -msgstr "You can't remove yourself" - -#: mod/admin.php:1891 -#, php-format -msgid "%s user deleted" -msgid_plural "%s users deleted" -msgstr[0] "%s user deleted" -msgstr[1] "%s users deleted" - -#: mod/admin.php:1940 -#, php-format -msgid "User '%s' deleted" -msgstr "User '%s' deleted" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' unblocked" -msgstr "User '%s' unblocked" - -#: mod/admin.php:1951 -#, php-format -msgid "User '%s' blocked" -msgstr "User '%s' blocked" - -#: mod/admin.php:1999 mod/settings.php:1049 -msgid "Normal Account Page" -msgstr "Standard" - -#: mod/admin.php:2000 mod/settings.php:1053 -msgid "Soapbox Page" -msgstr "Soapbox" - -#: mod/admin.php:2001 mod/settings.php:1057 -msgid "Public Forum" -msgstr "Public forum" - -#: mod/admin.php:2002 mod/settings.php:1061 -msgid "Automatic Friend Page" -msgstr "Love-all" - -#: mod/admin.php:2003 -msgid "Private Forum" -msgstr "Private Forum" - -#: mod/admin.php:2006 mod/settings.php:1033 -msgid "Personal Page" -msgstr "Personal Page" - -#: mod/admin.php:2007 mod/settings.php:1037 -msgid "Organisation Page" -msgstr "Organization Page" - -#: mod/admin.php:2008 mod/settings.php:1041 -msgid "News Page" -msgstr "News Page" - -#: mod/admin.php:2009 mod/settings.php:1045 -msgid "Community Forum" -msgstr "Community Forum" - -#: mod/admin.php:2010 -msgid "Relay" -msgstr "Relay" - -#: mod/admin.php:2056 mod/admin.php:2067 mod/admin.php:2081 mod/admin.php:2099 -#: src/Content/ContactSelector.php:86 -msgid "Email" -msgstr "Email" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Register date" -msgstr "Registration date" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last login" -msgstr "Last login" - -#: mod/admin.php:2056 mod/admin.php:2081 -msgid "Last item" -msgstr "Last item" - -#: mod/admin.php:2056 -msgid "Type" -msgstr "Type" - -#: mod/admin.php:2063 -msgid "Add User" -msgstr "Add user" - -#: mod/admin.php:2065 -msgid "User registrations waiting for confirm" -msgstr "User registrations awaiting confirmation" - -#: mod/admin.php:2066 -msgid "User waiting for permanent deletion" -msgstr "User awaiting permanent deletion" - -#: mod/admin.php:2067 -msgid "Request date" -msgstr "Request date" - -#: mod/admin.php:2068 -msgid "No registrations." -msgstr "No registrations." - -#: mod/admin.php:2069 -msgid "Note from the user" -msgstr "Note from the user" - -#: mod/admin.php:2070 mod/notifications.php:183 mod/notifications.php:269 -msgid "Approve" -msgstr "Approve" - -#: mod/admin.php:2071 -msgid "Deny" -msgstr "Deny" - -#: mod/admin.php:2074 -msgid "User blocked" -msgstr "User blocked" - -#: mod/admin.php:2076 -msgid "Site admin" -msgstr "Site admin" - -#: mod/admin.php:2077 -msgid "Account expired" -msgstr "Account expired" - -#: mod/admin.php:2080 -msgid "New User" -msgstr "New user" - -#: mod/admin.php:2081 -msgid "Permanent deletion" -msgstr "Permanent deletion" - -#: mod/admin.php:2086 -msgid "" -"Selected users will be deleted!\\n\\nEverything these users had posted on " -"this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Selected users will be deleted!\\n\\nEverything these users have posted on this site will be permanently deleted!\\n\\nAre you sure?" - -#: mod/admin.php:2087 -msgid "" -"The user {0} will be deleted!\\n\\nEverything this user has posted on this " -"site will be permanently deleted!\\n\\nAre you sure?" -msgstr "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?" - -#: mod/admin.php:2097 -msgid "Name of the new user." -msgstr "Name of the new user." - -#: mod/admin.php:2098 -msgid "Nickname" -msgstr "Nickname" - -#: mod/admin.php:2098 -msgid "Nickname of the new user." -msgstr "Nickname of the new user." - -#: mod/admin.php:2099 -msgid "Email address of the new user." -msgstr "Email address of the new user." - -#: mod/admin.php:2141 -#, php-format -msgid "Addon %s disabled." -msgstr "Addon %s disabled." - -#: mod/admin.php:2144 -#, php-format -msgid "Addon %s enabled." -msgstr "Addon %s enabled." - -#: mod/admin.php:2155 mod/admin.php:2405 -msgid "Disable" -msgstr "Disable" - -#: mod/admin.php:2158 mod/admin.php:2408 -msgid "Enable" -msgstr "Enable" - -#: mod/admin.php:2180 mod/admin.php:2437 -msgid "Toggle" -msgstr "Toggle" - -#: mod/admin.php:2181 mod/admin.php:2438 mod/newmember.php:20 -#: mod/settings.php:136 src/Content/Nav.php:263 view/theme/frio/theme.php:272 -msgid "Settings" -msgstr "Settings" - -#: mod/admin.php:2188 mod/admin.php:2446 -msgid "Author: " -msgstr "Author: " - -#: mod/admin.php:2189 mod/admin.php:2447 -msgid "Maintainer: " -msgstr "Maintainer: " - -#: mod/admin.php:2241 -msgid "Reload active addons" -msgstr "Reload active addons" - -#: mod/admin.php:2246 -#, php-format -msgid "" -"There are currently no addons available on your node. You can find the " -"official addon repository at %1$s and might find other interesting addons in" -" the open addon registry at %2$s" -msgstr "There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s" - -#: mod/admin.php:2367 -msgid "No themes found." -msgstr "No themes found." - -#: mod/admin.php:2428 -msgid "Screenshot" -msgstr "Screenshot" - -#: mod/admin.php:2482 -msgid "Reload active themes" -msgstr "Reload active themes" - -#: mod/admin.php:2487 -#, php-format -msgid "No themes found on the system. They should be placed in %1$s" -msgstr "No themes found on the system. They should be placed in %1$s" - -#: mod/admin.php:2488 -msgid "[Experimental]" -msgstr "[Experimental]" - -#: mod/admin.php:2489 -msgid "[Unsupported]" -msgstr "[Unsupported]" - -#: mod/admin.php:2514 -msgid "Log settings updated." -msgstr "Log settings updated." - -#: mod/admin.php:2547 -msgid "PHP log currently enabled." -msgstr "PHP log currently enabled." - -#: mod/admin.php:2549 -msgid "PHP log currently disabled." -msgstr "PHP log currently disabled." - -#: mod/admin.php:2558 -msgid "Clear" -msgstr "Clear" - -#: mod/admin.php:2562 -msgid "Enable Debugging" -msgstr "Enable debugging" - -#: mod/admin.php:2563 -msgid "Log file" -msgstr "Log file" - -#: mod/admin.php:2563 -msgid "" -"Must be writable by web server. Relative to your Friendica top-level " -"directory." -msgstr "Must be writable by web server and relative to your Friendica top-level directory." - -#: mod/admin.php:2564 -msgid "Log level" -msgstr "Log level" - -#: mod/admin.php:2566 -msgid "PHP logging" -msgstr "PHP logging" - -#: mod/admin.php:2567 -msgid "" -"To temporarily enable logging of PHP errors and warnings you can prepend the" -" following to the index.php file of your installation. The filename set in " -"the 'error_log' line is relative to the friendica top-level directory and " -"must be writeable by the web server. The option '1' for 'log_errors' and " -"'display_errors' is to enable these options, set to '0' to disable them." -msgstr "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them." - -#: mod/admin.php:2599 -#, php-format -msgid "" -"Error trying to open %1$s log file.\\r\\n
    Check to see " -"if file %1$s exist and is readable." -msgstr "Error trying to open %1$s log file.\\r\\n
    Check to see if file %1$s exist and is readable." - -#: mod/admin.php:2603 -#, php-format -msgid "" -"Couldn't open %1$s log file.\\r\\n
    Check to see if file" -" %1$s is readable." -msgstr "Couldn't open %1$s log file.\\r\\n
    Check if file %1$s is readable." - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "Off" -msgstr "Off" - -#: mod/admin.php:2696 mod/admin.php:2697 mod/settings.php:763 -msgid "On" -msgstr "On" - -#: mod/admin.php:2697 -#, php-format -msgid "Lock feature %s" -msgstr "Lock feature %s" - -#: mod/admin.php:2705 -msgid "Manage Additional Features" -msgstr "Manage additional features" - -#: mod/allfriends.php:52 -msgid "No friends to display." -msgstr "No friends to display." - -#: mod/allfriends.php:89 mod/dirfind.php:217 mod/match.php:102 -#: mod/suggest.php:106 src/Content/Widget.php:39 src/Model/Profile.php:313 -msgid "Connect" -msgstr "Connect" - #: mod/api.php:84 mod/api.php:106 msgid "Authorize application connection" msgstr "Authorize application connection" @@ -2867,212 +906,79 @@ msgid "" " and/or create new posts for you?" msgstr "Do you want to authorize this application to access your posts and contacts and create new posts for you?" -#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/api.php:110 mod/dfrn_request.php:640 mod/follow.php:161 #: mod/profiles.php:526 mod/profiles.php:530 mod/profiles.php:551 -#: mod/settings.php:1085 mod/settings.php:1091 mod/settings.php:1098 -#: mod/settings.php:1102 mod/settings.php:1106 mod/settings.php:1110 -#: mod/settings.php:1114 mod/settings.php:1118 mod/settings.php:1138 -#: mod/settings.php:1139 mod/settings.php:1140 mod/settings.php:1141 -#: mod/settings.php:1142 src/Module/Register.php:98 +#: mod/settings.php:1084 mod/settings.php:1090 mod/settings.php:1097 +#: mod/settings.php:1101 mod/settings.php:1105 mod/settings.php:1109 +#: mod/settings.php:1113 mod/settings.php:1117 mod/settings.php:1137 +#: mod/settings.php:1138 mod/settings.php:1139 mod/settings.php:1140 +#: mod/settings.php:1141 src/Module/Register.php:98 msgid "No" msgstr "No" -#: mod/apps.php:15 src/App.php:1349 -msgid "You must be logged in to use addons. " -msgstr "You must be logged in to use addons. " - -#: mod/apps.php:20 -msgid "Applications" -msgstr "Applications" - -#: mod/apps.php:25 -msgid "No installed applications." -msgstr "No installed applications." - -#: mod/babel.php:25 -msgid "Source input" -msgstr "Source input" - -#: mod/babel.php:31 -msgid "BBCode::toPlaintext" -msgstr "BBCode::toPlaintext" - -#: mod/babel.php:37 -msgid "BBCode::convert (raw HTML)" -msgstr "BBCode::convert (raw HTML)" - -#: mod/babel.php:42 -msgid "BBCode::convert" -msgstr "BBCode::convert" - -#: mod/babel.php:48 -msgid "BBCode::convert => HTML::toBBCode" -msgstr "BBCode::convert => HTML::toBBCode" - -#: mod/babel.php:54 -msgid "BBCode::toMarkdown" -msgstr "BBCode::toMarkdown" - -#: mod/babel.php:60 -msgid "BBCode::toMarkdown => Markdown::convert" -msgstr "BBCode::toMarkdown => Markdown::convert" - -#: mod/babel.php:66 -msgid "BBCode::toMarkdown => Markdown::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::toBBCode" - -#: mod/babel.php:72 -msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" -msgstr "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" - -#: mod/babel.php:83 -msgid "Item Body" -msgstr "Item body" - -#: mod/babel.php:87 -msgid "Item Tags" -msgstr "Item tags" - -#: mod/babel.php:94 -msgid "Source input (Diaspora format)" -msgstr "Source input (diaspora* format)" - -#: mod/babel.php:100 -msgid "Markdown::convert (raw HTML)" -msgstr "Markdown::convert (raw HTML)" - -#: mod/babel.php:105 -msgid "Markdown::convert" -msgstr "Markdown::convert" - -#: mod/babel.php:111 -msgid "Markdown::toBBCode" -msgstr "Markdown::toBBCode" - -#: mod/babel.php:118 -msgid "Raw HTML input" -msgstr "Raw HTML input" - -#: mod/babel.php:123 -msgid "HTML Input" -msgstr "HTML input" - -#: mod/babel.php:129 -msgid "HTML::toBBCode" -msgstr "HTML::toBBCode" - -#: mod/babel.php:135 -msgid "HTML::toBBCode => BBCode::convert" -msgstr "HTML::toBBCode => BBCode::convert" - -#: mod/babel.php:140 -msgid "HTML::toBBCode => BBCode::convert (raw HTML)" -msgstr "HTML::toBBCode => BBCode::convert (raw HTML)" - -#: mod/babel.php:146 -msgid "HTML::toMarkdown" -msgstr "HTML::toMarkdown" - -#: mod/babel.php:152 -msgid "HTML::toPlaintext" -msgstr "HTML::toPlaintext" - -#: mod/babel.php:160 -msgid "Source text" -msgstr "Source text" - -#: mod/babel.php:161 -msgid "BBCode" -msgstr "BBCode" - -#: mod/babel.php:162 -msgid "Markdown" -msgstr "Markdown" - -#: mod/babel.php:163 -msgid "HTML" -msgstr "HTML" - -#: mod/bookmarklet.php:22 src/Content/Nav.php:170 src/Module/Login.php:322 -msgid "Login" -msgstr "Login" - -#: mod/bookmarklet.php:32 -msgid "Bad Request" -msgstr "Bad request" - -#: mod/bookmarklet.php:54 -msgid "The post was created" -msgstr "The post was created" - #: mod/cal.php:34 mod/cal.php:38 mod/community.php:39 mod/follow.php:20 -#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 mod/viewsrc.php:13 +#: mod/viewcontacts.php:23 mod/viewcontacts.php:27 src/Module/ItemBody.php:18 msgid "Access denied." msgstr "Access denied." -#: mod/cal.php:46 mod/dfrn_poll.php:486 mod/help.php:68 -#: mod/viewcontacts.php:34 src/App.php:1400 -msgid "Page not found." -msgstr "Page not found" - -#: mod/cal.php:141 mod/display.php:309 src/Module/Profile.php:168 +#: mod/cal.php:140 mod/display.php:306 src/Module/Profile.php:176 msgid "Access to this profile has been restricted." msgstr "Access to this profile has been restricted." -#: mod/cal.php:273 mod/events.php:384 src/Content/Nav.php:160 -#: src/Content/Nav.php:226 src/Model/Profile.php:937 src/Model/Profile.php:948 +#: mod/cal.php:271 mod/events.php:382 src/Content/Nav.php:159 +#: src/Content/Nav.php:225 src/Model/Profile.php:931 src/Model/Profile.php:942 #: view/theme/frio/theme.php:266 view/theme/frio/theme.php:270 msgid "Events" msgstr "Events" -#: mod/cal.php:274 mod/events.php:385 +#: mod/cal.php:272 mod/events.php:383 msgid "View" msgstr "View" -#: mod/cal.php:275 mod/events.php:387 +#: mod/cal.php:273 mod/events.php:385 msgid "Previous" msgstr "Previous" -#: mod/cal.php:276 mod/events.php:388 src/Module/Install.php:133 +#: mod/cal.php:274 mod/events.php:386 src/Module/Install.php:173 msgid "Next" msgstr "Next" -#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:428 +#: mod/cal.php:277 mod/events.php:391 src/Model/Event.php:428 msgid "today" msgstr "today" -#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:429 +#: mod/cal.php:278 mod/events.php:392 src/Model/Event.php:429 #: src/Util/Temporal.php:314 msgid "month" msgstr "month" -#: mod/cal.php:281 mod/events.php:395 src/Model/Event.php:430 +#: mod/cal.php:279 mod/events.php:393 src/Model/Event.php:430 #: src/Util/Temporal.php:315 msgid "week" msgstr "week" -#: mod/cal.php:282 mod/events.php:396 src/Model/Event.php:431 +#: mod/cal.php:280 mod/events.php:394 src/Model/Event.php:431 #: src/Util/Temporal.php:316 msgid "day" msgstr "day" -#: mod/cal.php:283 mod/events.php:397 +#: mod/cal.php:281 mod/events.php:395 msgid "list" msgstr "List" -#: mod/cal.php:296 src/Core/Console/NewPassword.php:67 src/Model/User.php:324 +#: mod/cal.php:294 src/Console/NewPassword.php:67 src/Model/User.php:351 msgid "User not found" msgstr "User not found" -#: mod/cal.php:312 +#: mod/cal.php:310 msgid "This calendar format is not supported" msgstr "This calendar format is not supported" -#: mod/cal.php:314 +#: mod/cal.php:312 msgid "No exportable data found" msgstr "No exportable data found" -#: mod/cal.php:331 +#: mod/cal.php:329 msgid "calendar" msgstr "calendar" @@ -3080,14 +986,14 @@ msgstr "calendar" msgid "No contacts in common." msgstr "No contacts in common." -#: mod/common.php:141 src/Module/Contact.php:892 +#: mod/common.php:141 src/Module/Contact.php:895 msgid "Common Friends" msgstr "Common friends" -#: mod/community.php:32 mod/dfrn_request.php:597 mod/directory.php:43 -#: mod/display.php:209 mod/photos.php:903 mod/probe.php:13 mod/search.php:96 -#: mod/search.php:102 mod/videos.php:147 mod/viewcontacts.php:46 -#: mod/webfinger.php:16 +#: mod/community.php:32 mod/dfrn_request.php:597 mod/display.php:204 +#: mod/photos.php:846 mod/probe.php:14 mod/search.php:96 mod/search.php:102 +#: mod/videos.php:118 mod/viewcontacts.php:46 src/Module/Directory.php:43 +#: src/Module/WebFinger.php:19 msgid "Public access denied." msgstr "Public access denied." @@ -3115,7 +1021,7 @@ msgstr "Global community" msgid "Posts from users of the whole federated network" msgstr "Posts from users of the whole federated network" -#: mod/community.php:162 mod/search.php:229 +#: mod/community.php:162 mod/search.php:223 msgid "No results." msgstr "No results." @@ -3125,17 +1031,6 @@ msgid "" " not reflect the opinions of this node’s users." msgstr "This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users." -#: mod/credits.php:19 -msgid "Credits" -msgstr "Credits" - -#: mod/credits.php:20 -msgid "" -"Friendica is a community project, that would not be possible without the " -"help of many people. Here is a list of those who have contributed to the " -"code or the translation of Friendica. Thank you all!" -msgstr "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!" - #: mod/crepair.php:79 msgid "Contact settings applied." msgstr "Contact settings applied." @@ -3144,8 +1039,9 @@ msgstr "Contact settings applied." msgid "Contact update failed." msgstr "Contact update failed." -#: mod/crepair.php:102 mod/dfrn_confirm.php:127 mod/fsuggest.php:28 +#: mod/crepair.php:102 mod/dfrn_confirm.php:125 mod/fsuggest.php:28 #: mod/fsuggest.php:89 mod/redir.php:31 mod/redir.php:137 +#: src/Module/FollowConfirm.php:46 src/Module/Group.php:92 msgid "Contact not found." msgstr "Contact not found." @@ -3181,14 +1077,15 @@ msgstr "Return to contact editor" msgid "Refetch contact data" msgstr "Re-fetch contact data." -#: mod/crepair.php:149 mod/events.php:553 mod/fsuggest.php:106 -#: mod/invite.php:154 mod/localtime.php:56 mod/manage.php:182 -#: mod/message.php:261 mod/message.php:441 mod/photos.php:1049 -#: mod/photos.php:1137 mod/photos.php:1412 mod/photos.php:1457 -#: mod/photos.php:1496 mod/photos.php:1556 mod/poke.php:188 -#: mod/profiles.php:562 src/Module/Contact.php:594 src/Module/Install.php:187 -#: src/Module/Install.php:222 src/Object/Post.php:874 -#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:119 +#: mod/crepair.php:149 mod/events.php:551 mod/fsuggest.php:106 +#: mod/manage.php:183 mod/message.php:261 mod/message.php:441 +#: mod/photos.php:987 mod/photos.php:1093 mod/photos.php:1378 +#: mod/photos.php:1423 mod/photos.php:1462 mod/photos.php:1522 +#: mod/poke.php:184 mod/profiles.php:562 src/Module/Contact.php:597 +#: src/Module/Install.php:211 src/Module/Install.php:251 +#: src/Module/Install.php:287 src/Module/Invite.php:157 +#: src/Module/Localtime.php:45 src/Object/Post.php:877 +#: view/theme/duepuntozero/config.php:72 view/theme/frio/config.php:121 #: view/theme/quattro/config.php:74 view/theme/vier/config.php:120 msgid "Submit" msgstr "Submit" @@ -3207,6 +1104,13 @@ msgid "" "entries from this contact." msgstr "This will cause Friendica to repost new entries from this contact." +#: mod/crepair.php:159 mod/settings.php:676 mod/settings.php:702 +#: src/Module/Admin/Blocklist/Contact.php:72 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:313 +msgid "Name" +msgstr "Name:" + #: mod/crepair.php:160 msgid "Account Nickname" msgstr "Account nickname:" @@ -3270,7 +1174,15 @@ msgid "" "settings. Please double check whom you give this access." msgstr "Parent users have total control of this account, including core settings. Please double-check whom you grant such access." -#: mod/delegate.php:176 src/Content/Nav.php:261 +#: mod/delegate.php:175 mod/settings.php:674 mod/settings.php:781 +#: mod/settings.php:869 mod/settings.php:948 mod/settings.php:1173 +#: src/Module/Admin/Addons/Index.php:52 src/Module/Admin/Features.php:69 +#: src/Module/Admin/Logs/Settings.php:59 src/Module/Admin/Site.php:570 +#: src/Module/Admin/Themes/Index.php:95 src/Module/Admin/Tos.php:50 +msgid "Save Settings" +msgstr "Save settings" + +#: mod/delegate.php:176 src/Content/Nav.php:260 msgid "Delegate Page Management" msgstr "Delegate Page Management" @@ -3305,83 +1217,79 @@ msgstr "Add" msgid "No entries." msgstr "No entries." -#: mod/dfrn_confirm.php:72 mod/profiles.php:43 mod/profiles.php:152 +#: mod/dfrn_confirm.php:70 mod/profiles.php:43 mod/profiles.php:152 #: mod/profiles.php:196 mod/profiles.php:511 msgid "Profile not found." msgstr "Profile not found." -#: mod/dfrn_confirm.php:128 +#: mod/dfrn_confirm.php:126 msgid "" "This may occasionally happen if contact was requested by both persons and it" " has already been approved." msgstr "This may occasionally happen if contact was requested by both persons and it has already been approved." -#: mod/dfrn_confirm.php:238 +#: mod/dfrn_confirm.php:227 msgid "Response from remote site was not understood." msgstr "Response from remote site was not understood." -#: mod/dfrn_confirm.php:245 mod/dfrn_confirm.php:251 +#: mod/dfrn_confirm.php:234 mod/dfrn_confirm.php:240 msgid "Unexpected response from remote site: " msgstr "Unexpected response from remote site: " -#: mod/dfrn_confirm.php:260 +#: mod/dfrn_confirm.php:249 msgid "Confirmation completed successfully." msgstr "Confirmation completed successfully." -#: mod/dfrn_confirm.php:272 +#: mod/dfrn_confirm.php:261 msgid "Temporary failure. Please wait and try again." msgstr "Temporary failure. Please wait and try again." -#: mod/dfrn_confirm.php:275 +#: mod/dfrn_confirm.php:264 msgid "Introduction failed or was revoked." msgstr "Introduction failed or was revoked." -#: mod/dfrn_confirm.php:280 +#: mod/dfrn_confirm.php:269 msgid "Remote site reported: " msgstr "Remote site reported: " -#: mod/dfrn_confirm.php:386 -msgid "Unable to set contact photo." -msgstr "Unable to set contact photo." - -#: mod/dfrn_confirm.php:448 +#: mod/dfrn_confirm.php:374 #, php-format msgid "No user record found for '%s' " msgstr "No user record found for '%s' " -#: mod/dfrn_confirm.php:458 +#: mod/dfrn_confirm.php:384 msgid "Our site encryption key is apparently messed up." msgstr "Our site encryption key is apparently messed up." -#: mod/dfrn_confirm.php:469 +#: mod/dfrn_confirm.php:395 msgid "Empty site URL was provided or URL could not be decrypted by us." msgstr "An empty URL was provided, or the URL could not be decrypted by us." -#: mod/dfrn_confirm.php:485 +#: mod/dfrn_confirm.php:411 msgid "Contact record was not found for you on our site." msgstr "Contact record was not found for you on our site." -#: mod/dfrn_confirm.php:499 +#: mod/dfrn_confirm.php:425 #, php-format msgid "Site public key not available in contact record for URL %s." msgstr "Site public key not available in contact record for URL %s." -#: mod/dfrn_confirm.php:515 +#: mod/dfrn_confirm.php:441 msgid "" "The ID provided by your system is a duplicate on our system. It should work " "if you try again." msgstr "The ID provided by your system is a duplicate on our system. It should work if you try again." -#: mod/dfrn_confirm.php:526 +#: mod/dfrn_confirm.php:452 msgid "Unable to set your contact credentials on our system." msgstr "Unable to set your contact credentials on our system." -#: mod/dfrn_confirm.php:582 +#: mod/dfrn_confirm.php:508 msgid "Unable to update your contact profile details on our system" msgstr "Unable to update your contact profile details on our system" -#: mod/dfrn_confirm.php:612 mod/dfrn_request.php:560 -#: src/Model/Contact.php:2043 +#: mod/dfrn_confirm.php:538 mod/dfrn_request.php:560 +#: src/Model/Contact.php:2217 msgid "[Name Withheld]" msgstr "[Name Withheld]" @@ -3455,11 +1363,17 @@ msgstr "Apparently you are already friends with %s." msgid "Invalid profile URL." msgstr "Invalid profile URL." -#: mod/dfrn_request.php:340 src/Model/Contact.php:1714 +#: mod/dfrn_request.php:340 src/Model/Contact.php:1878 msgid "Disallowed profile URL." msgstr "Disallowed profile URL." -#: mod/dfrn_request.php:413 src/Module/Contact.php:235 +#: mod/dfrn_request.php:346 src/Model/Contact.php:1883 +#: src/Module/Admin/Blocklist/Server.php:64 +#: src/Module/Admin/Blocklist/Server.php:83 src/Module/Friendica.php:59 +msgid "Blocked domain" +msgstr "Blocked domain" + +#: mod/dfrn_request.php:413 src/Module/Contact.php:237 msgid "Failed to update contact record." msgstr "Failed to update contact record." @@ -3524,16 +1438,16 @@ msgid "" "testuser@gnusocial.de" msgstr "Examples: jojo@demo.friendi.ca, http://demo.friendi.ca/profile/jojo, user@gnusocial.de" -#: mod/dfrn_request.php:639 mod/follow.php:149 +#: mod/dfrn_request.php:639 mod/follow.php:160 msgid "Please answer the following:" msgstr "Please answer the following:" -#: mod/dfrn_request.php:640 mod/follow.php:150 +#: mod/dfrn_request.php:640 mod/follow.php:161 #, php-format msgid "Does %s know you?" msgstr "Does %s know you?" -#: mod/dfrn_request.php:641 mod/follow.php:151 +#: mod/dfrn_request.php:641 mod/follow.php:162 msgid "Add a personal note:" msgstr "Add a personal note:" @@ -3556,65 +1470,14 @@ msgid "" " bar." msgstr " - please do not use this form. Instead, enter %s into your diaspora* search bar." -#: mod/dfrn_request.php:647 mod/follow.php:157 mod/unfollow.php:128 +#: mod/dfrn_request.php:647 mod/follow.php:168 mod/unfollow.php:128 msgid "Your Identity Address:" msgstr "My identity address:" -#: mod/dfrn_request.php:649 mod/follow.php:65 mod/unfollow.php:131 +#: mod/dfrn_request.php:649 mod/follow.php:74 mod/unfollow.php:131 msgid "Submit Request" msgstr "Submit request" -#: mod/directory.php:154 mod/events.php:541 mod/notifications.php:253 -#: src/Model/Event.php:68 src/Model/Event.php:95 src/Model/Event.php:437 -#: src/Model/Event.php:933 src/Model/Profile.php:443 -#: src/Module/Contact.php:643 -msgid "Location:" -msgstr "Location:" - -#: mod/directory.php:159 mod/notifications.php:259 src/Model/Profile.php:446 -#: src/Model/Profile.php:758 -msgid "Gender:" -msgstr "Gender:" - -#: mod/directory.php:160 src/Model/Profile.php:447 src/Model/Profile.php:782 -msgid "Status:" -msgstr "Status:" - -#: mod/directory.php:161 src/Model/Profile.php:448 src/Model/Profile.php:799 -msgid "Homepage:" -msgstr "Homepage:" - -#: mod/directory.php:162 mod/notifications.php:255 src/Model/Profile.php:449 -#: src/Model/Profile.php:819 src/Module/Contact.php:647 -msgid "About:" -msgstr "About:" - -#: mod/directory.php:210 src/Content/Widget.php:70 -#: view/theme/vier/theme.php:208 -msgid "Global Directory" -msgstr "Global Directory" - -#: mod/directory.php:212 -msgid "Find on this site" -msgstr "Find on this site" - -#: mod/directory.php:214 -msgid "Results for:" -msgstr "Results for:" - -#: mod/directory.php:216 -msgid "Site Directory" -msgstr "Site directory" - -#: mod/directory.php:217 src/Content/Widget.php:65 src/Module/Contact.php:817 -#: view/theme/vier/theme.php:203 -msgid "Find" -msgstr "Find" - -#: mod/directory.php:221 -msgid "No entries (some entries may be hidden)." -msgstr "No entries (entries may be hidden)." - #: mod/dirfind.php:55 #, php-format msgid "People Search - %s" @@ -3625,53 +1488,67 @@ msgstr "People search - %s" msgid "Forum Search - %s" msgstr "Forum search - %s" +#: mod/dirfind.php:217 mod/match.php:102 mod/suggest.php:106 +#: src/Content/Widget.php:39 src/Model/Profile.php:309 +#: src/Module/AllFriends.php:91 +msgid "Connect" +msgstr "Connect" + #: mod/dirfind.php:259 mod/match.php:130 msgid "No matches" msgstr "No matches" -#: mod/editpost.php:29 mod/editpost.php:39 +#: mod/display.php:257 mod/display.php:342 +msgid "The requested item doesn't exist or has been deleted." +msgstr "The requested item doesn't exist or has been deleted." + +#: mod/display.php:417 +msgid "The feed for this item is unavailable." +msgstr "The feed for this item is unavailable." + +#: mod/editpost.php:28 mod/editpost.php:38 msgid "Item not found" msgstr "Item not found" -#: mod/editpost.php:46 +#: mod/editpost.php:45 msgid "Edit post" msgstr "Edit post" -#: mod/editpost.php:73 mod/filer.php:36 mod/notes.php:46 -#: src/Content/Text/HTML.php:894 +#: mod/editpost.php:71 mod/notes.php:46 src/Content/Text/HTML.php:894 +#: src/Module/Filer/SaveTag.php:50 msgid "Save" msgstr "Save" -#: mod/editpost.php:78 mod/message.php:259 mod/message.php:440 +#: mod/editpost.php:76 mod/message.php:259 mod/message.php:440 #: mod/wallmessage.php:140 msgid "Insert web link" msgstr "Insert web link" -#: mod/editpost.php:79 +#: mod/editpost.php:77 msgid "web link" msgstr "web link" -#: mod/editpost.php:80 +#: mod/editpost.php:78 msgid "Insert video link" msgstr "Insert video link" -#: mod/editpost.php:81 +#: mod/editpost.php:79 msgid "video link" msgstr "video link" -#: mod/editpost.php:82 +#: mod/editpost.php:80 msgid "Insert audio link" msgstr "Insert audio link" -#: mod/editpost.php:83 +#: mod/editpost.php:81 msgid "audio link" msgstr "audio link" -#: mod/editpost.php:98 src/Core/ACL.php:307 +#: mod/editpost.php:95 src/Core/ACL.php:308 msgid "CC: email addresses" msgstr "CC: email addresses" -#: mod/editpost.php:105 src/Core/ACL.php:308 +#: mod/editpost.php:102 src/Core/ACL.php:309 msgid "Example: bob@example.com, mary@example.com" msgstr "Example: bob@example.com, mary@example.com" @@ -3683,171 +1560,135 @@ msgstr "Event cannot end before it has started." msgid "Event title and start time are required." msgstr "Event title and starting time are required." -#: mod/events.php:386 +#: mod/events.php:384 msgid "Create New Event" msgstr "Create new event" -#: mod/events.php:509 +#: mod/events.php:507 msgid "Event details" msgstr "Event details" -#: mod/events.php:510 +#: mod/events.php:508 msgid "Starting date and Title are required." msgstr "Starting date and title are required." -#: mod/events.php:511 mod/events.php:516 +#: mod/events.php:509 mod/events.php:514 msgid "Event Starts:" msgstr "Event starts:" -#: mod/events.php:511 mod/events.php:543 mod/profiles.php:592 +#: mod/events.php:509 mod/events.php:541 mod/profiles.php:592 msgid "Required" msgstr "Required" -#: mod/events.php:524 mod/events.php:549 +#: mod/events.php:522 mod/events.php:547 msgid "Finish date/time is not known or not relevant" msgstr "Finish date/time is not known or not relevant" -#: mod/events.php:526 mod/events.php:531 +#: mod/events.php:524 mod/events.php:529 msgid "Event Finishes:" msgstr "Event finishes:" -#: mod/events.php:537 mod/events.php:550 +#: mod/events.php:535 mod/events.php:548 msgid "Adjust for viewer timezone" msgstr "Adjust for viewer's time zone" -#: mod/events.php:539 +#: mod/events.php:537 msgid "Description:" msgstr "Description:" -#: mod/events.php:543 mod/events.php:545 +#: mod/events.php:539 mod/notifications.php:261 src/Model/Event.php:68 +#: src/Model/Event.php:95 src/Model/Event.php:437 src/Model/Event.php:933 +#: src/Model/Profile.php:439 src/Module/Contact.php:646 +#: src/Module/Directory.php:142 +msgid "Location:" +msgstr "Location:" + +#: mod/events.php:541 mod/events.php:543 msgid "Title:" msgstr "Title:" -#: mod/events.php:546 mod/events.php:547 +#: mod/events.php:544 mod/events.php:545 msgid "Share this event" msgstr "Share this event" -#: mod/events.php:554 src/Model/Profile.php:877 +#: mod/events.php:552 src/Model/Profile.php:871 msgid "Basic" msgstr "Basic" -#: mod/events.php:556 mod/photos.php:1067 mod/photos.php:1408 -#: src/Core/ACL.php:310 +#: mod/events.php:553 src/Model/Profile.php:872 src/Module/Admin/Site.php:575 +#: src/Module/Contact.php:905 +msgid "Advanced" +msgstr "Advanced" + +#: mod/events.php:554 mod/photos.php:1005 mod/photos.php:1374 +#: src/Core/ACL.php:314 msgid "Permissions" msgstr "Permissions" -#: mod/events.php:572 +#: mod/events.php:570 msgid "Failed to remove event" msgstr "Failed to remove event" -#: mod/events.php:574 +#: mod/events.php:572 msgid "Event removed" msgstr "Event removed" -#: mod/fbrowser.php:36 src/Content/Nav.php:158 src/Model/Profile.php:917 +#: mod/fbrowser.php:43 src/Content/Nav.php:157 src/Model/Profile.php:911 #: view/theme/frio/theme.php:264 msgid "Photos" msgstr "Photos" -#: mod/fbrowser.php:45 mod/fbrowser.php:69 mod/photos.php:201 -#: mod/photos.php:1031 mod/photos.php:1126 mod/photos.php:1143 -#: mod/photos.php:1610 mod/photos.php:1625 src/Model/Photo.php:547 -#: src/Model/Photo.php:556 +#: mod/fbrowser.php:52 mod/fbrowser.php:76 mod/photos.php:193 +#: mod/photos.php:969 mod/photos.php:1082 mod/photos.php:1099 +#: mod/photos.php:1575 mod/photos.php:1590 src/Model/Photo.php:552 +#: src/Model/Photo.php:561 msgid "Contact Photos" msgstr "Contact photos" -#: mod/fbrowser.php:106 mod/fbrowser.php:136 mod/profile_photo.php:254 +#: mod/fbrowser.php:112 mod/fbrowser.php:141 mod/profile_photo.php:254 msgid "Upload" msgstr "Upload" -#: mod/fbrowser.php:131 +#: mod/fbrowser.php:136 msgid "Files" msgstr "Files" -#: mod/feedtest.php:18 -msgid "You must be logged in to use this module" -msgstr "You must be logged in to use this module" - -#: mod/feedtest.php:45 -msgid "Source URL" -msgstr "Source URL" - -#: mod/filer.php:35 -msgid "- select -" -msgstr "- select -" - #: mod/follow.php:46 msgid "The contact could not be added." msgstr "Contact could not be added." -#: mod/follow.php:76 +#: mod/follow.php:85 msgid "You already added this contact." msgstr "You already added this contact." -#: mod/follow.php:86 +#: mod/follow.php:97 msgid "Diaspora support isn't enabled. Contact can't be added." msgstr "diaspora* support isn't enabled. Contact can't be added." -#: mod/follow.php:93 +#: mod/follow.php:104 msgid "OStatus support is disabled. Contact can't be added." msgstr "OStatus support is disabled. Contact can't be added." -#: mod/follow.php:100 +#: mod/follow.php:111 msgid "The network type couldn't be detected. Contact can't be added." msgstr "The network type couldn't be detected. Contact can't be added." -#: mod/follow.php:170 mod/notifications.php:257 src/Model/Profile.php:807 -#: src/Module/Contact.php:649 +#: mod/follow.php:177 mod/notifications.php:179 mod/notifications.php:271 +#: mod/unfollow.php:137 src/Module/Admin/Blocklist/Contact.php:72 +#: src/Module/Admin/Blocklist/Contact.php:82 src/Module/Contact.php:642 +msgid "Profile URL" +msgstr "Profile URL:" + +#: mod/follow.php:181 mod/notifications.php:265 src/Model/Profile.php:801 +#: src/Module/Contact.php:652 msgid "Tags:" msgstr "Tags:" -#: mod/follow.php:182 mod/unfollow.php:147 src/Model/Profile.php:904 -#: src/Module/Contact.php:864 +#: mod/follow.php:193 mod/unfollow.php:147 src/Model/Profile.php:898 +#: src/Module/Contact.php:867 msgid "Status Messages and Posts" msgstr "Status Messages and Posts" -#: mod/friendica.php:88 -#, php-format -msgid "" -"This is Friendica, version %s that is running at the web location %s. The " -"database version is %s, the post update version is %s." -msgstr "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s." - -#: mod/friendica.php:94 -msgid "" -"Please visit Friendi.ca to learn more " -"about the Friendica project." -msgstr "Please visit Friendi.ca to learn more about the Friendica project." - -#: mod/friendica.php:98 -msgid "Bug reports and issues: please visit" -msgstr "Bug reports and issues: please visit" - -#: mod/friendica.php:98 -msgid "the bugtracker at github" -msgstr "the bugtracker at github" - -#: mod/friendica.php:101 -msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" -msgstr "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" - -#: mod/friendica.php:106 -msgid "Installed addons/apps:" -msgstr "Installed addons/apps:" - -#: mod/friendica.php:120 -msgid "No installed addons/apps" -msgstr "No installed addons/apps" - -#: mod/friendica.php:125 -#, php-format -msgid "Read about the Terms of Service of this node." -msgstr "Read about the Terms of Service of this node." - -#: mod/friendica.php:130 -msgid "On this server the following remote servers are blocked." -msgstr "On this server the following remote servers are blocked." - #: mod/fsuggest.php:69 msgid "Friend suggestion sent." msgstr "Friend suggestion sent" @@ -3861,281 +1702,41 @@ msgstr "Suggest friends" msgid "Suggest a friend for %s" msgstr "Suggest a friend for %s" -#: mod/group.php:38 -msgid "Group created." -msgstr "Group created." - -#: mod/group.php:44 -msgid "Could not create group." -msgstr "Could not create group." - -#: mod/group.php:58 mod/group.php:184 -msgid "Group not found." -msgstr "Group not found." - -#: mod/group.php:72 -msgid "Group name changed." -msgstr "Group name changed." - -#: mod/group.php:85 mod/profperm.php:30 src/App.php:1479 -msgid "Permission denied" -msgstr "Permission denied" - -#: mod/group.php:103 -msgid "Save Group" -msgstr "Save group" - -#: mod/group.php:104 -msgid "Filter" -msgstr "Filter" - -#: mod/group.php:109 -msgid "Create a group of contacts/friends." -msgstr "Create a group of contacts/friends." - -#: mod/group.php:110 mod/group.php:133 mod/group.php:224 -#: src/Model/Group.php:423 -msgid "Group Name: " -msgstr "Group name: " - -#: mod/group.php:125 src/Model/Group.php:420 -msgid "Contacts not in any group" -msgstr "Contacts not in any group" - -#: mod/group.php:156 -msgid "Group removed." -msgstr "Group removed." - -#: mod/group.php:158 -msgid "Unable to remove group." -msgstr "Unable to remove group." - -#: mod/group.php:217 -msgid "Delete Group" -msgstr "Delete group" - -#: mod/group.php:228 -msgid "Edit Group Name" -msgstr "Edit group name" - -#: mod/group.php:239 -msgid "Members" -msgstr "Members" - -#: mod/group.php:241 src/Module/Contact.php:704 -msgid "All Contacts" -msgstr "All contacts" - -#: mod/group.php:242 mod/network.php:654 -msgid "Group is empty" -msgstr "Group is empty" - -#: mod/group.php:255 -msgid "Remove contact from group" -msgstr "Remove contact from group" - -#: mod/group.php:273 mod/profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Click on a contact to add or remove it." - -#: mod/group.php:287 -msgid "Add contact to group" -msgstr "Add contact to group" - #: mod/hcard.php:20 msgid "No profile" msgstr "No profile" -#: mod/help.php:52 -msgid "Help:" -msgstr "Help:" - -#: mod/help.php:59 src/Content/Nav.php:190 view/theme/vier/theme.php:294 -msgid "Help" -msgstr "Help" - -#: mod/help.php:65 src/App.php:1397 -msgid "Not Found" -msgstr "Not found" - -#: mod/home.php:40 -#, php-format -msgid "Welcome to %s" -msgstr "Welcome to %s" - -#: mod/invite.php:36 -msgid "Total invitation limit exceeded." -msgstr "Total invitation limit exceeded" - -#: mod/invite.php:60 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Not a valid email address" - -#: mod/invite.php:87 -msgid "Please join us on Friendica" -msgstr "Please join us on Friendica." - -#: mod/invite.php:96 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Invitation limit is exceeded. Please contact your site administrator." - -#: mod/invite.php:100 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Message delivery failed" - -#: mod/invite.php:104 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d message sent." -msgstr[1] "%d messages sent." - -#: mod/invite.php:122 -msgid "You have no more invitations available" -msgstr "You have no more invitations available." - -#: mod/invite.php:130 -#, php-format -msgid "" -"Visit %s for a list of public sites that you can join. Friendica members on " -"other sites can all connect with each other, as well as with members of many" -" other social networks." -msgstr "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks." - -#: mod/invite.php:132 -#, php-format -msgid "" -"To accept this invitation, please visit and register at %s or any other " -"public Friendica website." -msgstr "To accept this invitation, please sign up at %s or any other public Friendica website." - -#: mod/invite.php:133 -#, php-format -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks. See %s for a list of alternate Friendica " -"sites you can join." -msgstr "Friendica sites are all inter-connected to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join." - -#: mod/invite.php:137 -msgid "" -"Our apologies. This system is not currently configured to connect with other" -" public sites or invite members." -msgstr "Our apologies. This system is not currently configured to connect with other public sites or invite members." - -#: mod/invite.php:141 -msgid "" -"Friendica sites all inter-connect to create a huge privacy-enhanced social " -"web that is owned and controlled by its members. They can also connect with " -"many traditional social networks." -msgstr "Friendica sites are all inter-connected to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks." - -#: mod/invite.php:140 -#, php-format -msgid "To accept this invitation, please visit and register at %s." -msgstr "To accept this invitation, please visit and register at %s." - -#: mod/invite.php:147 -msgid "Send invitations" -msgstr "Send invitations" - -#: mod/invite.php:148 -msgid "Enter email addresses, one per line:" -msgstr "Enter email addresses, one per line:" - -#: mod/invite.php:149 mod/message.php:255 mod/message.php:435 -#: mod/wallmessage.php:137 -msgid "Your message:" -msgstr "Your message:" - -#: mod/invite.php:149 -msgid "" -"You are cordially invited to join me and other close friends on Friendica - " -"and help us to create a better social web." -msgstr "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web." - -#: mod/invite.php:151 -msgid "You will need to supply this invitation code: $invite_code" -msgstr "You will need to supply this invitation code: $invite_code" - -#: mod/invite.php:151 -msgid "" -"Once you have registered, please connect with me via my profile page at:" -msgstr "Once you have signed up, please connect with me via my profile page at:" - -#: mod/invite.php:153 -msgid "" -"For more information about the Friendica project and why we feel it is " -"important, please visit http://friendi.ca" -msgstr "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca" - -#: mod/item.php:120 +#: mod/item.php:122 msgid "Unable to locate original post." msgstr "Unable to locate original post." -#: mod/item.php:320 +#: mod/item.php:322 msgid "Empty post discarded." msgstr "Empty post discarded." -#: mod/item.php:841 +#: mod/item.php:839 #, php-format msgid "" "This message was sent to you by %s, a member of the Friendica social " "network." msgstr "This message was sent to you by %s, a member of the Friendica social network." -#: mod/item.php:843 +#: mod/item.php:841 #, php-format msgid "You may visit them online at %s" msgstr "You may visit them online at %s" -#: mod/item.php:844 +#: mod/item.php:842 msgid "" "Please contact the sender by replying to this post if you do not wish to " "receive these messages." msgstr "Please contact the sender by replying to this post if you do not wish to receive these messages." -#: mod/item.php:848 +#: mod/item.php:846 #, php-format msgid "%s posted an update." msgstr "%s posted an update." -#: mod/localtime.php:19 src/Model/Event.php:34 src/Model/Event.php:847 -msgid "l F d, Y \\@ g:i A" -msgstr "l F d, Y \\@ g:i A" - -#: mod/localtime.php:33 -msgid "Time Conversion" -msgstr "Time conversion" - -#: mod/localtime.php:35 -msgid "" -"Friendica provides this service for sharing events with other networks and " -"friends in unknown timezones." -msgstr "Friendica provides this service for sharing events with other networks and friends in unknown time zones." - -#: mod/localtime.php:39 -#, php-format -msgid "UTC time: %s" -msgstr "UTC time: %s" - -#: mod/localtime.php:42 -#, php-format -msgid "Current timezone: %s" -msgstr "Current time zone: %s" - -#: mod/localtime.php:46 -#, php-format -msgid "Converted localtime: %s" -msgstr "Converted local time: %s" - -#: mod/localtime.php:52 -msgid "Please select your timezone:" -msgstr "Please select your time zone:" - #: mod/lockview.php:46 mod/lockview.php:57 msgid "Remote privacy information not available." msgstr "Remote privacy information not available." @@ -4210,7 +1811,7 @@ msgid "" "your email for further instructions." msgstr "Enter email address or nickname to reset your password. You will receive further instruction via email." -#: mod/lostpass.php:119 src/Module/Login.php:324 +#: mod/lostpass.php:119 src/Module/Login.php:327 msgid "Nickname or Email: " msgstr "Nickname or email: " @@ -4218,7 +1819,7 @@ msgstr "Nickname or email: " msgid "Reset" msgstr "Reset" -#: mod/lostpass.php:135 src/Module/Login.php:336 +#: mod/lostpass.php:135 src/Module/Login.php:339 msgid "Password Reset" msgstr "Forgotten password?" @@ -4244,7 +1845,7 @@ msgid "" "successful login." msgstr "Your password may be changed from the Settings page after successful login." -#: mod/lostpass.php:148 +#: mod/lostpass.php:147 #, php-format msgid "" "\n" @@ -4255,7 +1856,7 @@ msgid "" "\t\t" msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t" -#: mod/lostpass.php:154 +#: mod/lostpass.php:153 #, php-format msgid "" "\n" @@ -4269,26 +1870,22 @@ msgid "" "\t\t" msgstr "\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1$s\n\t\t\tLogin Name:\t%2$s\n\t\t\tPassword:\t%3$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t" -#: mod/lostpass.php:170 +#: mod/lostpass.php:169 #, php-format msgid "Your password has been changed at %s" msgstr "Your password has been changed at %s" -#: mod/maintenance.php:26 -msgid "System down for maintenance" -msgstr "Sorry, the system is currently down for maintenance." - -#: mod/manage.php:178 +#: mod/manage.php:179 msgid "Manage Identities and/or Pages" msgstr "Manage Identities and Pages" -#: mod/manage.php:179 +#: mod/manage.php:180 msgid "" "Toggle between different identities or community/group pages which share " "your account details or which you have been granted \"manage\" permissions" msgstr "Accounts that I manage or own." -#: mod/manage.php:180 +#: mod/manage.php:181 msgid "Select an identity to manage: " msgstr "Select identity:" @@ -4308,7 +1905,7 @@ msgstr "next" msgid "Profile Match" msgstr "Profile Match" -#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:255 +#: mod/message.php:33 mod/message.php:116 src/Content/Nav.php:254 msgid "New Message" msgstr "New Message" @@ -4333,11 +1930,11 @@ msgid "Message sent." msgstr "Message sent." #: mod/message.php:110 mod/notifications.php:47 mod/notifications.php:187 -#: mod/notifications.php:235 +#: mod/notifications.php:243 msgid "Discard" msgstr "Discard" -#: mod/message.php:123 src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: mod/message.php:123 src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Messages" msgstr "Messages" @@ -4373,6 +1970,11 @@ msgstr "To:" msgid "Subject:" msgstr "Subject:" +#: mod/message.php:255 mod/message.php:435 mod/wallmessage.php:137 +#: src/Module/Invite.php:150 +msgid "Your message:" +msgstr "Your message:" + #: mod/message.php:289 msgid "No messages." msgstr "No messages." @@ -4425,19 +2027,19 @@ msgid_plural "%d messages" msgstr[0] "%d message" msgstr[1] "%d messages" -#: mod/network.php:183 mod/search.php:38 +#: mod/network.php:184 mod/search.php:38 msgid "Remove term" msgstr "Remove term" -#: mod/network.php:190 mod/search.php:47 +#: mod/network.php:191 mod/search.php:47 msgid "Saved Searches" msgstr "Saved searches" -#: mod/network.php:191 src/Model/Group.php:414 +#: mod/network.php:192 src/Model/Group.php:434 msgid "add" msgstr "add" -#: mod/network.php:563 +#: mod/network.php:572 #, php-format msgid "" "Warning: This group contains %s member from a network that doesn't allow non" @@ -4448,73 +2050,78 @@ msgid_plural "" msgstr[0] "Warning: This group contains %s member from a network that doesn't allow non public messages." msgstr[1] "Warning: This group contains %s members from a network that doesn't allow non-public messages." -#: mod/network.php:566 +#: mod/network.php:575 msgid "Messages in this group won't be send to these receivers." msgstr "Messages in this group won't be sent to these receivers." -#: mod/network.php:633 +#: mod/network.php:642 msgid "No such group" msgstr "No such group" -#: mod/network.php:658 +#: mod/network.php:663 src/Module/Group.php:288 +msgid "Group is empty" +msgstr "Group is empty" + +#: mod/network.php:667 #, php-format msgid "Group: %s" msgstr "Group: %s" -#: mod/network.php:684 +#: mod/network.php:693 msgid "Private messages to this person are at risk of public disclosure." msgstr "Private messages to this person are at risk of public disclosure." -#: mod/network.php:687 +#: mod/network.php:696 src/Module/AllFriends.php:35 +#: src/Module/AllFriends.php:43 msgid "Invalid contact." msgstr "Invalid contact." -#: mod/network.php:966 +#: mod/network.php:975 msgid "Commented Order" msgstr "Commented last" -#: mod/network.php:969 +#: mod/network.php:978 msgid "Sort by Comment Date" msgstr "Sort by comment date" -#: mod/network.php:974 +#: mod/network.php:983 msgid "Posted Order" msgstr "Posted last" -#: mod/network.php:977 +#: mod/network.php:986 msgid "Sort by Post Date" msgstr "Sort by post date" -#: mod/network.php:984 mod/profiles.php:579 -#: src/Core/NotificationsManager.php:189 +#: mod/network.php:993 mod/profiles.php:579 +#: src/Core/NotificationsManager.php:158 msgid "Personal" msgstr "Personal" -#: mod/network.php:987 +#: mod/network.php:996 msgid "Posts that mention or involve you" msgstr "Posts mentioning or involving me" -#: mod/network.php:994 +#: mod/network.php:1003 msgid "New" msgstr "New" -#: mod/network.php:997 +#: mod/network.php:1006 msgid "Activity Stream - by date" msgstr "Activity Stream - by date" -#: mod/network.php:1005 +#: mod/network.php:1014 msgid "Shared Links" msgstr "Shared links" -#: mod/network.php:1008 +#: mod/network.php:1017 msgid "Interesting Links" msgstr "Interesting links" -#: mod/network.php:1015 +#: mod/network.php:1024 msgid "Starred" msgstr "Starred" -#: mod/network.php:1018 +#: mod/network.php:1027 msgid "Favourite Posts" msgstr "My favorite posts" @@ -4549,6 +2156,13 @@ msgid "" " join." msgstr "On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join." +#: mod/newmember.php:20 mod/settings.php:145 src/Content/Nav.php:262 +#: src/Module/Admin/Addons/Details.php:102 +#: src/Module/Admin/Themes/Details.php:107 +#: src/Module/BaseSettingsModule.php:105 view/theme/frio/theme.php:272 +msgid "Settings" +msgstr "Settings" + #: mod/newmember.php:22 msgid "Go to Your Settings" msgstr "Go to your settings" @@ -4568,9 +2182,9 @@ msgid "" "potential friends know exactly how to find you." msgstr "Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you." -#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:157 -#: src/Model/Profile.php:876 src/Model/Profile.php:909 -#: src/Module/Contact.php:654 src/Module/Contact.php:869 +#: mod/newmember.php:25 mod/profperm.php:117 src/Content/Nav.php:156 +#: src/Model/Profile.php:870 src/Model/Profile.php:903 +#: src/Module/Contact.php:657 src/Module/Contact.php:872 #: view/theme/frio/theme.php:263 msgid "Profile" msgstr "Profile" @@ -4658,7 +2272,7 @@ msgid "" "hours." msgstr "On the side panel of the Contacts page are several tools to find new friends. We can match people by interest, look up people by name or interest, and provide suggestions based on network relationships. On a brand new site, friend suggestions will usually begin to be populated within 24 hours." -#: mod/newmember.php:44 src/Model/Group.php:415 src/Module/Contact.php:752 +#: mod/newmember.php:44 src/Model/Group.php:435 src/Module/Contact.php:756 msgid "Groups" msgstr "Groups" @@ -4698,7 +2312,7 @@ msgid "" " features and resources." msgstr "Our help pages may be consulted for detail on other program features and resources." -#: mod/notes.php:34 src/Model/Profile.php:959 +#: mod/notes.php:34 src/Model/Profile.php:953 msgid "Personal Notes" msgstr "Personal notes" @@ -4706,13 +2320,7 @@ msgstr "Personal notes" msgid "Invalid request identifier." msgstr "Invalid request identifier." -#: mod/notifications.php:60 mod/notifications.php:186 -#: mod/notifications.php:271 src/Module/Contact.php:622 -#: src/Module/Contact.php:825 src/Module/Contact.php:1085 -msgid "Ignore" -msgstr "Ignore" - -#: mod/notifications.php:93 src/Content/Nav.php:247 +#: mod/notifications.php:93 src/Content/Nav.php:246 msgid "Notifications" msgstr "Notifications" @@ -4720,7 +2328,7 @@ msgstr "Notifications" msgid "Network Notifications" msgstr "Network notifications" -#: mod/notifications.php:112 mod/notify.php:84 +#: mod/notifications.php:112 mod/notify.php:72 msgid "System Notifications" msgstr "System notifications" @@ -4748,7 +2356,7 @@ msgstr "Show ignored requests." msgid "Hide Ignored Requests" msgstr "Hide ignored requests" -#: mod/notifications.php:166 mod/notifications.php:243 +#: mod/notifications.php:166 mod/notifications.php:251 msgid "Notification type:" msgstr "Notification type:" @@ -4756,11 +2364,16 @@ msgstr "Notification type:" msgid "Suggested by:" msgstr "Suggested by:" -#: mod/notifications.php:181 mod/notifications.php:260 -#: src/Module/Contact.php:630 +#: mod/notifications.php:181 mod/notifications.php:268 +#: src/Module/Contact.php:633 msgid "Hide this contact from others" msgstr "Hide this contact from others" +#: mod/notifications.php:183 mod/notifications.php:277 +#: src/Module/Admin/Users.php:286 +msgid "Approve" +msgstr "Approve" + #: mod/notifications.php:203 msgid "Claims to be known to you: " msgstr "Says they know me:" @@ -4810,21 +2423,32 @@ msgstr "Sharer" msgid "Subscriber" msgstr "Subscriber" -#: mod/notifications.php:266 src/Model/Profile.php:543 -#: src/Module/Contact.php:88 +#: mod/notifications.php:263 src/Model/Profile.php:445 +#: src/Model/Profile.php:813 src/Module/Contact.php:650 +#: src/Module/Directory.php:150 +msgid "About:" +msgstr "About:" + +#: mod/notifications.php:267 src/Model/Profile.php:442 +#: src/Model/Profile.php:752 src/Module/Directory.php:147 +msgid "Gender:" +msgstr "Gender:" + +#: mod/notifications.php:274 src/Model/Profile.php:539 +#: src/Module/Contact.php:90 msgid "Network:" msgstr "Network:" -#: mod/notifications.php:279 +#: mod/notifications.php:288 msgid "No introductions." msgstr "No introductions." -#: mod/notifications.php:313 +#: mod/notifications.php:322 #, php-format msgid "No more %s notifications." msgstr "No more %s notifications." -#: mod/notify.php:80 +#: mod/notify.php:68 msgid "No more system notifications." msgstr "No more system notifications." @@ -4841,7 +2465,7 @@ msgid "" "Account not found and OpenID registration is not permitted on this site." msgstr "Account not found and OpenID registration is not permitted on this site." -#: mod/openid.php:117 src/Module/Login.php:92 src/Module/Login.php:143 +#: mod/openid.php:117 src/Module/Login.php:93 src/Module/Login.php:144 msgid "Login failed." msgstr "Login failed." @@ -4873,7 +2497,7 @@ msgstr "success" msgid "failed" msgstr "failed" -#: mod/ostatus_subscribe.php:89 src/Object/Post.php:283 +#: mod/ostatus_subscribe.php:89 src/Object/Post.php:284 msgid "ignored" msgstr "Ignored" @@ -4881,223 +2505,239 @@ msgstr "Ignored" msgid "Keep this window open until done." msgstr "Keep this window open until done." -#: mod/photos.php:115 src/Model/Profile.php:920 +#: mod/photos.php:113 src/Model/Profile.php:914 msgid "Photo Albums" msgstr "Photo Albums" -#: mod/photos.php:116 mod/photos.php:1665 +#: mod/photos.php:114 mod/photos.php:1630 msgid "Recent Photos" msgstr "Recent photos" -#: mod/photos.php:119 mod/photos.php:1187 mod/photos.php:1667 +#: mod/photos.php:116 mod/photos.php:1144 mod/photos.php:1632 msgid "Upload New Photos" msgstr "Upload new photos" -#: mod/photos.php:137 mod/settings.php:56 +#: mod/photos.php:134 mod/settings.php:58 src/Module/BaseSettingsModule.php:18 msgid "everybody" msgstr "everybody" -#: mod/photos.php:193 +#: mod/photos.php:185 msgid "Contact information unavailable" msgstr "Contact information unavailable" -#: mod/photos.php:212 +#: mod/photos.php:204 msgid "Album not found." msgstr "Album not found." -#: mod/photos.php:241 mod/photos.php:254 mod/photos.php:1138 -msgid "Delete Album" -msgstr "Delete album" +#: mod/photos.php:262 +msgid "Album successfully deleted" +msgstr "Album successfully deleted" -#: mod/photos.php:252 -msgid "Do you really want to delete this photo album and all its photos?" -msgstr "Do you really want to delete this photo album and all its photos?" +#: mod/photos.php:264 +msgid "Album was empty." +msgstr "Album was empty." -#: mod/photos.php:310 mod/photos.php:322 mod/photos.php:1413 -msgid "Delete Photo" -msgstr "Delete photo" - -#: mod/photos.php:320 -msgid "Do you really want to delete this photo?" -msgstr "Do you really want to delete this photo?" - -#: mod/photos.php:645 +#: mod/photos.php:586 msgid "a photo" msgstr "a photo" -#: mod/photos.php:645 +#: mod/photos.php:586 #, php-format msgid "%1$s was tagged in %2$s by %3$s" msgstr "%1$s was tagged in %2$s by %3$s" -#: mod/photos.php:738 mod/photos.php:741 mod/photos.php:770 +#: mod/photos.php:679 mod/photos.php:682 mod/photos.php:711 #: mod/profile_photo.php:152 mod/wall_upload.php:198 #, php-format msgid "Image exceeds size limit of %s" msgstr "Image exceeds size limit of %s" -#: mod/photos.php:744 +#: mod/photos.php:685 msgid "Image upload didn't complete, please try again" msgstr "Image upload didn't complete. Please try again." -#: mod/photos.php:747 +#: mod/photos.php:688 msgid "Image file is missing" msgstr "Image file is missing" -#: mod/photos.php:752 +#: mod/photos.php:693 msgid "" "Server can't accept new file upload at this time, please contact your " "administrator" msgstr "Server can't accept new file uploads at this time. Please contact your administrator." -#: mod/photos.php:778 +#: mod/photos.php:719 msgid "Image file is empty." msgstr "Image file is empty." -#: mod/photos.php:793 mod/profile_photo.php:161 mod/wall_upload.php:212 +#: mod/photos.php:734 mod/profile_photo.php:161 mod/wall_upload.php:212 msgid "Unable to process image." msgstr "Unable to process image." -#: mod/photos.php:822 mod/profile_photo.php:310 mod/wall_upload.php:251 +#: mod/photos.php:763 mod/profile_photo.php:310 mod/wall_upload.php:251 msgid "Image upload failed." msgstr "Image upload failed." -#: mod/photos.php:908 +#: mod/photos.php:851 msgid "No photos selected" msgstr "No photos selected" -#: mod/photos.php:1005 mod/videos.php:239 +#: mod/photos.php:943 mod/videos.php:210 msgid "Access to this item is restricted." msgstr "Access to this item is restricted." -#: mod/photos.php:1059 +#: mod/photos.php:997 msgid "Upload Photos" msgstr "Upload photos" -#: mod/photos.php:1063 mod/photos.php:1133 +#: mod/photos.php:1001 mod/photos.php:1089 msgid "New album name: " msgstr "New album name: " -#: mod/photos.php:1064 +#: mod/photos.php:1002 msgid "or select existing album:" msgstr "or select existing album:" -#: mod/photos.php:1065 +#: mod/photos.php:1003 msgid "Do not show a status post for this upload" msgstr "Do not show a status post for this upload" -#: mod/photos.php:1081 mod/photos.php:1416 mod/settings.php:1209 +#: mod/photos.php:1019 mod/photos.php:1382 mod/settings.php:1208 msgid "Show to Groups" msgstr "Show to groups" -#: mod/photos.php:1082 mod/photos.php:1417 mod/settings.php:1210 +#: mod/photos.php:1020 mod/photos.php:1383 mod/settings.php:1209 msgid "Show to Contacts" msgstr "Show to contacts" -#: mod/photos.php:1144 +#: mod/photos.php:1071 +msgid "Do you really want to delete this photo album and all its photos?" +msgstr "Do you really want to delete this photo album and all its photos?" + +#: mod/photos.php:1073 mod/photos.php:1094 +msgid "Delete Album" +msgstr "Delete album" + +#: mod/photos.php:1100 msgid "Edit Album" msgstr "Edit album" -#: mod/photos.php:1149 +#: mod/photos.php:1101 +msgid "Drop Album" +msgstr "Drop album" + +#: mod/photos.php:1106 msgid "Show Newest First" msgstr "Show newest first" -#: mod/photos.php:1151 +#: mod/photos.php:1108 msgid "Show Oldest First" msgstr "Show oldest first" -#: mod/photos.php:1172 mod/photos.php:1650 +#: mod/photos.php:1129 mod/photos.php:1615 msgid "View Photo" msgstr "View photo" -#: mod/photos.php:1213 +#: mod/photos.php:1166 msgid "Permission denied. Access to this item may be restricted." msgstr "Permission denied. Access to this item may be restricted." -#: mod/photos.php:1215 +#: mod/photos.php:1168 msgid "Photo not available" msgstr "Photo not available" -#: mod/photos.php:1290 +#: mod/photos.php:1178 +msgid "Do you really want to delete this photo?" +msgstr "Do you really want to delete this photo?" + +#: mod/photos.php:1180 mod/photos.php:1379 +msgid "Delete Photo" +msgstr "Delete photo" + +#: mod/photos.php:1271 msgid "View photo" msgstr "View photo" -#: mod/photos.php:1290 +#: mod/photos.php:1273 msgid "Edit photo" msgstr "Edit photo" -#: mod/photos.php:1291 +#: mod/photos.php:1274 +msgid "Delete photo" +msgstr "Delete photo" + +#: mod/photos.php:1275 msgid "Use as profile photo" msgstr "Use as profile photo" -#: mod/photos.php:1297 src/Object/Post.php:156 -msgid "Private Message" -msgstr "Private message" +#: mod/photos.php:1282 +msgid "Private Photo" +msgstr "Private photo" -#: mod/photos.php:1317 +#: mod/photos.php:1288 msgid "View Full Size" msgstr "View full size" -#: mod/photos.php:1381 +#: mod/photos.php:1347 msgid "Tags: " msgstr "Tags: " -#: mod/photos.php:1384 +#: mod/photos.php:1350 msgid "[Select tags to remove]" msgstr "[Select tags to remove]" -#: mod/photos.php:1399 +#: mod/photos.php:1365 msgid "New album name" msgstr "New album name" -#: mod/photos.php:1400 +#: mod/photos.php:1366 msgid "Caption" msgstr "Caption" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "Add a Tag" msgstr "Add Tag" -#: mod/photos.php:1401 +#: mod/photos.php:1367 msgid "" "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping" msgstr "Example: @bob, @jojo@example.com, #California, #camping" -#: mod/photos.php:1402 +#: mod/photos.php:1368 msgid "Do not rotate" msgstr "Do not rotate" -#: mod/photos.php:1403 +#: mod/photos.php:1369 msgid "Rotate CW (right)" msgstr "Rotate right (CW)" -#: mod/photos.php:1404 +#: mod/photos.php:1370 msgid "Rotate CCW (left)" msgstr "Rotate left (CCW)" -#: mod/photos.php:1438 src/Object/Post.php:311 +#: mod/photos.php:1404 src/Object/Post.php:312 msgid "I like this (toggle)" msgstr "I like this (toggle)" -#: mod/photos.php:1439 src/Object/Post.php:312 +#: mod/photos.php:1405 src/Object/Post.php:313 msgid "I don't like this (toggle)" msgstr "I don't like this (toggle)" -#: mod/photos.php:1454 mod/photos.php:1493 mod/photos.php:1553 -#: src/Module/Contact.php:1018 src/Object/Post.php:871 +#: mod/photos.php:1420 mod/photos.php:1459 mod/photos.php:1519 +#: src/Module/Contact.php:1021 src/Object/Post.php:874 msgid "This is you" msgstr "This is me" -#: mod/photos.php:1456 mod/photos.php:1495 mod/photos.php:1555 -#: src/Object/Post.php:417 src/Object/Post.php:873 +#: mod/photos.php:1422 mod/photos.php:1461 mod/photos.php:1521 +#: src/Object/Post.php:419 src/Object/Post.php:876 msgid "Comment" msgstr "Comment" -#: mod/photos.php:1585 +#: mod/photos.php:1550 msgid "Map" msgstr "Map" -#: mod/photos.php:1656 mod/videos.php:316 +#: mod/photos.php:1621 mod/videos.php:287 msgid "View Album" msgstr "View album" @@ -5109,27 +2749,27 @@ msgstr "{0} wants to be your friend" msgid "{0} requested registration" msgstr "{0} requested registration" -#: mod/poke.php:181 +#: mod/poke.php:177 msgid "Poke/Prod" msgstr "Poke/Prod" -#: mod/poke.php:182 +#: mod/poke.php:178 msgid "poke, prod or do other things to somebody" msgstr "Poke, prod or do other things to somebody" -#: mod/poke.php:183 +#: mod/poke.php:179 msgid "Recipient" msgstr "Recipient:" -#: mod/poke.php:184 +#: mod/poke.php:180 msgid "Choose what you wish to do to recipient" msgstr "Choose what you wish to do:" -#: mod/poke.php:187 +#: mod/poke.php:183 msgid "Make this post private" msgstr "Make this post private" -#: mod/probe.php:14 mod/webfinger.php:17 +#: mod/probe.php:13 src/Module/WebFinger.php:18 msgid "Only logged in users are permitted to perform a probing." msgstr "Only logged in users are permitted to use the Probe feature." @@ -5193,6 +2833,10 @@ msgstr "Homepage" msgid "Interests" msgstr "Interests" +#: mod/profiles.php:382 src/Module/Admin/Blocklist/Contact.php:72 +msgid "Address" +msgstr "Address" + #: mod/profiles.php:389 mod/profiles.php:574 msgid "Location" msgstr "Location" @@ -5233,7 +2877,7 @@ msgstr "View this profile" msgid "View all profiles" msgstr "View all profiles" -#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:419 +#: mod/profiles.php:567 mod/profiles.php:662 src/Model/Profile.php:415 msgid "Edit visibility" msgstr "Edit visibility" @@ -5285,7 +2929,7 @@ msgstr "Gender:" msgid " Marital Status:" msgstr " Marital status:" -#: mod/profiles.php:586 src/Model/Profile.php:795 +#: mod/profiles.php:586 src/Model/Profile.php:789 msgid "Sexual Preference:" msgstr "Sexual preference:" @@ -5365,11 +3009,11 @@ msgstr "The XMPP address will be propagated to your contacts so that they can fo msgid "Homepage URL:" msgstr "Homepage URL:" -#: mod/profiles.php:613 src/Model/Profile.php:803 +#: mod/profiles.php:613 src/Model/Profile.php:797 msgid "Hometown:" msgstr "Home town:" -#: mod/profiles.php:614 src/Model/Profile.php:811 +#: mod/profiles.php:614 src/Model/Profile.php:805 msgid "Political Views:" msgstr "Political views:" @@ -5393,11 +3037,11 @@ msgstr "Private keywords:" msgid "(Used for searching profiles, never shown to others)" msgstr "Used for searching profiles, never shown to others." -#: mod/profiles.php:618 src/Model/Profile.php:827 +#: mod/profiles.php:618 src/Model/Profile.php:821 msgid "Likes:" msgstr "Likes:" -#: mod/profiles.php:619 src/Model/Profile.php:831 +#: mod/profiles.php:619 src/Model/Profile.php:825 msgid "Dislikes:" msgstr "Dislikes:" @@ -5437,11 +3081,11 @@ msgstr "School/Education:" msgid "Contact information and Social Networks" msgstr "Contact information and other social networks:" -#: mod/profiles.php:659 src/Model/Profile.php:415 +#: mod/profiles.php:659 src/Model/Profile.php:411 msgid "Profile Image" msgstr "Profile image" -#: mod/profiles.php:661 src/Model/Profile.php:418 +#: mod/profiles.php:661 src/Model/Profile.php:414 msgid "visible to everybody" msgstr "Visible to everybody" @@ -5449,11 +3093,11 @@ msgstr "Visible to everybody" msgid "Edit/Manage Profiles" msgstr "Edit/Manage Profiles" -#: mod/profiles.php:669 src/Model/Profile.php:405 src/Model/Profile.php:427 +#: mod/profiles.php:669 src/Model/Profile.php:401 src/Model/Profile.php:423 msgid "Change profile photo" msgstr "Change profile photo" -#: mod/profiles.php:670 src/Model/Profile.php:406 +#: mod/profiles.php:670 src/Model/Profile.php:402 msgid "Create New Profile" msgstr "Create new profile" @@ -5513,6 +3157,10 @@ msgstr "Done editing" msgid "Image uploaded successfully." msgstr "Image uploaded successfully." +#: mod/profperm.php:30 +msgid "Permission denied" +msgstr "Permission denied" + #: mod/profperm.php:36 mod/profperm.php:69 msgid "Invalid profile identifier." msgstr "Invalid profile identifier." @@ -5521,6 +3169,10 @@ msgstr "Invalid profile identifier." msgid "Profile Visibility Editor" msgstr "Profile Visibility Editor" +#: mod/profperm.php:119 src/Module/Group.php:321 +msgid "Click on a contact to add or remove." +msgstr "Click on a contact to add or remove it." + #: mod/profperm.php:128 msgid "Visible To" msgstr "Visible to" @@ -5579,226 +3231,253 @@ msgstr "Resubscribing to OStatus contacts" msgid "Error" msgstr "Error" -#: mod/search.php:103 +#: mod/search.php:101 msgid "Only logged in users are permitted to perform a search." msgstr "Only logged in users are permitted to perform a search." -#: mod/search.php:127 -msgid "Too Many Requests" -msgstr "Too many requests" - -#: mod/search.php:128 +#: mod/search.php:123 msgid "Only one search per minute is permitted for not logged in users." msgstr "Only one search per minute is permitted for not-logged-in users." -#: mod/search.php:149 src/Content/Nav.php:198 src/Content/Text/HTML.php:900 +#: mod/search.php:143 src/Content/Nav.php:197 src/Content/Text/HTML.php:900 msgid "Search" msgstr "Search" -#: mod/search.php:235 +#: mod/search.php:229 #, php-format msgid "Items tagged with: %s" msgstr "Items tagged with: %s" -#: mod/search.php:237 src/Module/Contact.php:816 +#: mod/search.php:231 src/Module/Contact.php:819 #, php-format msgid "Results for: %s" msgstr "Results for: %s" -#: mod/settings.php:61 +#: mod/settings.php:63 src/Module/BaseSettingsModule.php:24 msgid "Account" msgstr "Account" -#: mod/settings.php:69 src/Content/Nav.php:266 src/Model/Profile.php:398 +#: mod/settings.php:71 src/Module/BaseSettingsModule.php:31 +#: src/Module/Settings/TwoFactor/Index.php:83 +#: src/Module/TwoFactor/Verify.php:60 +msgid "Two-factor authentication" +msgstr "Two-factor authentication" + +#: mod/settings.php:78 src/Content/Nav.php:265 src/Model/Profile.php:394 +#: src/Module/BaseSettingsModule.php:38 msgid "Profiles" msgstr "Profiles" -#: mod/settings.php:85 +#: mod/settings.php:86 src/Module/BaseAdminModule.php:84 +#: src/Module/BaseSettingsModule.php:46 +msgid "Additional features" +msgstr "Additional features" + +#: mod/settings.php:94 src/Module/BaseSettingsModule.php:54 msgid "Display" msgstr "Display" -#: mod/settings.php:92 mod/settings.php:830 +#: mod/settings.php:101 mod/settings.php:839 +#: src/Module/BaseSettingsModule.php:61 msgid "Social Networks" msgstr "Social networks" -#: mod/settings.php:106 src/Content/Nav.php:261 +#: mod/settings.php:108 src/Module/Admin/Addons/Details.php:100 +#: src/Module/Admin/Addons/Index.php:51 src/Module/BaseAdminModule.php:82 +#: src/Module/BaseSettingsModule.php:68 +msgid "Addons" +msgstr "Addons" + +#: mod/settings.php:115 src/Content/Nav.php:260 +#: src/Module/BaseSettingsModule.php:75 msgid "Delegations" msgstr "Delegations" -#: mod/settings.php:113 +#: mod/settings.php:122 src/Module/BaseSettingsModule.php:82 msgid "Connected apps" msgstr "Connected apps" -#: mod/settings.php:120 mod/uexport.php:53 +#: mod/settings.php:129 mod/uexport.php:52 +#: src/Module/BaseSettingsModule.php:89 msgid "Export personal data" msgstr "Export personal data" -#: mod/settings.php:127 +#: mod/settings.php:136 src/Module/BaseSettingsModule.php:96 msgid "Remove account" msgstr "Remove account" -#: mod/settings.php:179 +#: mod/settings.php:188 msgid "Missing some important data!" msgstr "Missing some important data!" -#: mod/settings.php:181 mod/settings.php:691 src/Module/Contact.php:823 +#: mod/settings.php:190 mod/settings.php:700 src/Module/Contact.php:826 msgid "Update" msgstr "Update" -#: mod/settings.php:290 +#: mod/settings.php:299 msgid "Failed to connect with email account using the settings provided." msgstr "Failed to connect with email account using the settings provided." -#: mod/settings.php:295 +#: mod/settings.php:304 msgid "Email settings updated." msgstr "Email settings updated." -#: mod/settings.php:311 +#: mod/settings.php:320 msgid "Features updated" msgstr "Features updated" -#: mod/settings.php:384 +#: mod/settings.php:393 msgid "Relocate message has been send to your contacts" msgstr "Relocate message has been sent to your contacts" -#: mod/settings.php:396 +#: mod/settings.php:405 msgid "Passwords do not match." msgstr "Passwords do not match." -#: mod/settings.php:404 src/Core/Console/NewPassword.php:80 +#: mod/settings.php:413 src/Console/NewPassword.php:80 msgid "Password update failed. Please try again." msgstr "Password update failed. Please try again." -#: mod/settings.php:407 src/Core/Console/NewPassword.php:83 +#: mod/settings.php:416 src/Console/NewPassword.php:83 msgid "Password changed." msgstr "Password changed." -#: mod/settings.php:410 +#: mod/settings.php:419 msgid "Password unchanged." msgstr "Password unchanged." -#: mod/settings.php:491 +#: mod/settings.php:500 msgid " Please use a shorter name." msgstr " Please use a shorter name." -#: mod/settings.php:494 +#: mod/settings.php:503 msgid " Name too short." msgstr " Name too short." -#: mod/settings.php:501 +#: mod/settings.php:510 src/Module/Settings/TwoFactor/Index.php:66 msgid "Wrong Password" msgstr "Wrong password" -#: mod/settings.php:506 +#: mod/settings.php:515 msgid "Invalid email." msgstr "Invalid email." -#: mod/settings.php:512 +#: mod/settings.php:521 msgid "Cannot change to that email." msgstr "Cannot change to that email." -#: mod/settings.php:562 +#: mod/settings.php:571 msgid "Private forum has no privacy permissions. Using default privacy group." msgstr "Private forum has no privacy permissions. Using default privacy group." -#: mod/settings.php:565 +#: mod/settings.php:574 msgid "Private forum has no privacy permissions and no default privacy group." msgstr "Private forum has no privacy permissions and no default privacy group." -#: mod/settings.php:605 +#: mod/settings.php:614 msgid "Settings updated." msgstr "Settings updated." -#: mod/settings.php:664 mod/settings.php:690 mod/settings.php:724 +#: mod/settings.php:673 mod/settings.php:699 mod/settings.php:733 msgid "Add application" msgstr "Add application" -#: mod/settings.php:668 mod/settings.php:694 +#: mod/settings.php:677 mod/settings.php:703 msgid "Consumer Key" msgstr "Consumer key" -#: mod/settings.php:669 mod/settings.php:695 +#: mod/settings.php:678 mod/settings.php:704 msgid "Consumer Secret" msgstr "Consumer secret" -#: mod/settings.php:670 mod/settings.php:696 +#: mod/settings.php:679 mod/settings.php:705 msgid "Redirect" msgstr "Redirect" -#: mod/settings.php:671 mod/settings.php:697 +#: mod/settings.php:680 mod/settings.php:706 msgid "Icon url" msgstr "Icon URL" -#: mod/settings.php:682 +#: mod/settings.php:691 msgid "You can't edit this application." msgstr "You cannot edit this application." -#: mod/settings.php:723 +#: mod/settings.php:732 msgid "Connected Apps" msgstr "Connected Apps" -#: mod/settings.php:725 src/Object/Post.php:166 src/Object/Post.php:168 +#: mod/settings.php:734 src/Object/Post.php:167 src/Object/Post.php:169 msgid "Edit" msgstr "Edit" -#: mod/settings.php:727 +#: mod/settings.php:736 msgid "Client key starts with" msgstr "Client key starts with" -#: mod/settings.php:728 +#: mod/settings.php:737 msgid "No name" msgstr "No name" -#: mod/settings.php:729 +#: mod/settings.php:738 msgid "Remove authorization" msgstr "Remove authorization" -#: mod/settings.php:740 +#: mod/settings.php:749 msgid "No Addon settings configured" msgstr "No addon settings configured" -#: mod/settings.php:749 +#: mod/settings.php:758 msgid "Addon Settings" msgstr "Addon Settings" -#: mod/settings.php:770 +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "Off" +msgstr "Off" + +#: mod/settings.php:772 src/Module/Admin/Features.php:58 +#: src/Module/Admin/Features.php:59 +msgid "On" +msgstr "On" + +#: mod/settings.php:779 msgid "Additional Features" msgstr "Additional Features" -#: mod/settings.php:793 src/Content/ContactSelector.php:87 +#: mod/settings.php:802 src/Content/ContactSelector.php:87 msgid "Diaspora" msgstr "diaspora*" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "enabled" msgstr "enabled" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 msgid "disabled" msgstr "disabled" -#: mod/settings.php:793 mod/settings.php:794 +#: mod/settings.php:802 mod/settings.php:803 #, php-format msgid "Built-in support for %s connectivity is %s" msgstr "Built-in support for %s connectivity is %s" -#: mod/settings.php:794 +#: mod/settings.php:803 msgid "GNU Social (OStatus)" msgstr "GNU Social (OStatus)" -#: mod/settings.php:825 +#: mod/settings.php:834 msgid "Email access is disabled on this site." msgstr "Email access is disabled on this site." -#: mod/settings.php:835 +#: mod/settings.php:844 msgid "General Social Media Settings" msgstr "General Social Media Settings" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "Disable Content Warning" msgstr "Disable content warning" -#: mod/settings.php:836 +#: mod/settings.php:845 msgid "" "Users on networks like Mastodon or Pleroma are able to set a content warning" " field which collapse their post by default. This disables the automatic " @@ -5806,316 +3485,352 @@ msgid "" "any other content filtering you eventually set up." msgstr "Users on networks like Mastodon or Pleroma are able to set a content warning field which collapses their post by default. This disables the automatic collapsing and sets the content warning as the post title. It doesn't affect any other content filtering you may set up." -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "Disable intelligent shortening" msgstr "Disable intelligent shortening" -#: mod/settings.php:837 +#: mod/settings.php:846 msgid "" "Normally the system tries to find the best link to add to shortened posts. " "If this option is enabled then every shortened post will always point to the" " original friendica post." msgstr "Normally the system tries to find the best link to add to shortened posts. If this option is enabled then every shortened post will always point to the original Friendica post." -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "Automatically follow any GNU Social (OStatus) followers/mentioners" msgstr "Automatically follow any GNU Social (OStatus) followers/mentioners" -#: mod/settings.php:838 +#: mod/settings.php:847 msgid "" "If you receive a message from an unknown OStatus user, this option decides " "what to do. If it is checked, a new contact will be created for every " "unknown user." msgstr "Create a new contact for every unknown OStatus user from whom you receive a message." -#: mod/settings.php:839 +#: mod/settings.php:848 msgid "Default group for OStatus contacts" msgstr "Default group for OStatus contacts" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "Your legacy GNU Social account" msgstr "Your legacy GNU Social account" -#: mod/settings.php:840 +#: mod/settings.php:849 msgid "" "If you enter your old GNU Social/Statusnet account name here (in the format " "user@domain.tld), your contacts will be added automatically. The field will " "be emptied when done." msgstr "Entering your old GNU Social/Statusnet account name here (format: user@domain.tld), will automatically added your contacts. The field will be emptied when done." -#: mod/settings.php:843 +#: mod/settings.php:852 msgid "Repair OStatus subscriptions" msgstr "Repair OStatus subscriptions" -#: mod/settings.php:847 +#: mod/settings.php:856 msgid "Email/Mailbox Setup" msgstr "Email/Mailbox setup" -#: mod/settings.php:848 +#: mod/settings.php:857 msgid "" "If you wish to communicate with email contacts using this service " "(optional), please specify how to connect to your mailbox." msgstr "Specify how to connect to your mailbox, if you wish to communicate with existing email contacts." -#: mod/settings.php:849 +#: mod/settings.php:858 msgid "Last successful email check:" msgstr "Last successful email check:" -#: mod/settings.php:851 +#: mod/settings.php:860 msgid "IMAP server name:" msgstr "IMAP server name:" -#: mod/settings.php:852 +#: mod/settings.php:861 msgid "IMAP port:" msgstr "IMAP port:" -#: mod/settings.php:853 +#: mod/settings.php:862 msgid "Security:" msgstr "Security:" -#: mod/settings.php:853 mod/settings.php:858 +#: mod/settings.php:862 mod/settings.php:867 msgid "None" msgstr "None" -#: mod/settings.php:854 +#: mod/settings.php:863 msgid "Email login name:" msgstr "Email login name:" -#: mod/settings.php:855 +#: mod/settings.php:864 msgid "Email password:" msgstr "Email password:" -#: mod/settings.php:856 +#: mod/settings.php:865 msgid "Reply-to address:" msgstr "Reply-to address:" -#: mod/settings.php:857 +#: mod/settings.php:866 msgid "Send public posts to all email contacts:" msgstr "Send public posts to all email contacts:" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Action after import:" msgstr "Action after import:" -#: mod/settings.php:858 src/Content/Nav.php:249 +#: mod/settings.php:867 src/Content/Nav.php:248 msgid "Mark as seen" msgstr "Mark as seen" -#: mod/settings.php:858 +#: mod/settings.php:867 msgid "Move to folder" msgstr "Move to folder" -#: mod/settings.php:859 +#: mod/settings.php:868 msgid "Move to folder:" msgstr "Move to folder:" -#: mod/settings.php:902 +#: mod/settings.php:892 src/Module/Admin/Site.php:435 +msgid "No special theme for mobile devices" +msgstr "No special theme for mobile devices" + +#: mod/settings.php:900 #, php-format msgid "%s - (Unsupported)" msgstr "%s - (Unsupported)" -#: mod/settings.php:904 +#: mod/settings.php:902 src/Module/Admin/Site.php:452 #, php-format msgid "%s - (Experimental)" msgstr "%s - (Experimental)" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:395 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:395 msgid "Sunday" msgstr "Sunday" -#: mod/settings.php:931 src/Core/L10n.php:368 src/Model/Event.php:396 +#: mod/settings.php:930 src/Core/L10n.php:371 src/Model/Event.php:396 msgid "Monday" msgstr "Monday" -#: mod/settings.php:947 +#: mod/settings.php:946 msgid "Display Settings" msgstr "Display Settings" -#: mod/settings.php:953 +#: mod/settings.php:952 msgid "Display Theme:" msgstr "Display theme:" -#: mod/settings.php:954 +#: mod/settings.php:953 msgid "Mobile Theme:" msgstr "Mobile theme:" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "Suppress warning of insecure networks" msgstr "Suppress warning of insecure networks" -#: mod/settings.php:955 +#: mod/settings.php:954 msgid "" "Should the system suppress the warning that the current group contains " "members of networks that can't receive non public postings." msgstr "Suppresses warnings if groups contain members whose networks cannot receive non-public postings." -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Update browser every xx seconds" msgstr "Update browser every so many seconds:" -#: mod/settings.php:956 +#: mod/settings.php:955 msgid "Minimum of 10 seconds. Enter -1 to disable it." msgstr "Minimum 10 seconds; to disable -1." -#: mod/settings.php:957 +#: mod/settings.php:956 msgid "Number of items to display per page:" msgstr "Number of items displayed per page:" -#: mod/settings.php:957 mod/settings.php:958 +#: mod/settings.php:956 mod/settings.php:957 msgid "Maximum of 100 items" msgstr "Maximum of 100 items" -#: mod/settings.php:958 +#: mod/settings.php:957 msgid "Number of items to display per page when viewed from mobile device:" msgstr "Number of items displayed per page on mobile devices:" -#: mod/settings.php:959 +#: mod/settings.php:958 msgid "Don't show emoticons" msgstr "Don't show emoticons" -#: mod/settings.php:960 +#: mod/settings.php:959 msgid "Calendar" msgstr "Calendar" -#: mod/settings.php:961 +#: mod/settings.php:960 msgid "Beginning of week:" msgstr "Week begins: " -#: mod/settings.php:962 +#: mod/settings.php:961 msgid "Don't show notices" msgstr "Don't show notices" -#: mod/settings.php:963 +#: mod/settings.php:962 msgid "Infinite scroll" msgstr "Infinite scroll" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "Automatic updates only at the top of the network page" msgstr "Automatically updates only top of the network page" -#: mod/settings.php:964 +#: mod/settings.php:963 msgid "" "When disabled, the network page is updated all the time, which could be " "confusing while reading." msgstr "When disabled, the network page is updated all the time, which could be confusing while reading." -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "Bandwidth Saver Mode" msgstr "Bandwidth saver mode" -#: mod/settings.php:965 +#: mod/settings.php:964 msgid "" "When enabled, embedded content is not displayed on automatic updates, they " "only show on page reload." msgstr "If enabled, embedded content is not displayed on automatic updates; it is only shown on page reload." -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "Smart Threading" msgstr "Smart Threading" -#: mod/settings.php:966 +#: mod/settings.php:965 msgid "" "When enabled, suppress extraneous thread indentation while keeping it where " "it matters. Only works if threading is available and enabled." msgstr "Suppresses extraneous thread indentation while keeping it where it matters. Only works if threading is available and enabled." -#: mod/settings.php:968 +#: mod/settings.php:967 msgid "General Theme Settings" msgstr "Themes" -#: mod/settings.php:969 +#: mod/settings.php:968 msgid "Custom Theme Settings" msgstr "Theme customization" -#: mod/settings.php:970 +#: mod/settings.php:969 msgid "Content Settings" msgstr "Content/Layout" -#: mod/settings.php:971 view/theme/duepuntozero/config.php:74 -#: view/theme/frio/config.php:121 view/theme/quattro/config.php:76 -#: view/theme/vier/config.php:122 +#: mod/settings.php:970 view/theme/duepuntozero/config.php:73 +#: view/theme/frio/config.php:122 view/theme/quattro/config.php:75 +#: view/theme/vier/config.php:121 msgid "Theme settings" msgstr "Theme settings" -#: mod/settings.php:985 +#: mod/settings.php:984 msgid "Unable to find your profile. Please contact your admin." msgstr "Unable to find your profile. Please contact your admin." -#: mod/settings.php:1024 +#: mod/settings.php:1023 msgid "Account Types" msgstr "Account types:" -#: mod/settings.php:1025 +#: mod/settings.php:1024 msgid "Personal Page Subtypes" msgstr "Personal Page subtypes" -#: mod/settings.php:1026 +#: mod/settings.php:1025 msgid "Community Forum Subtypes" msgstr "Community forum subtypes" -#: mod/settings.php:1034 +#: mod/settings.php:1032 src/Module/Admin/Users.php:229 +msgid "Personal Page" +msgstr "Personal Page" + +#: mod/settings.php:1033 msgid "Account for a personal profile." msgstr "Account for a personal profile." -#: mod/settings.php:1038 +#: mod/settings.php:1036 src/Module/Admin/Users.php:230 +msgid "Organisation Page" +msgstr "Organization Page" + +#: mod/settings.php:1037 msgid "" "Account for an organisation that automatically approves contact requests as " "\"Followers\"." msgstr "Account for an organization that automatically approves contact requests as \"Followers\"." -#: mod/settings.php:1042 +#: mod/settings.php:1040 src/Module/Admin/Users.php:231 +msgid "News Page" +msgstr "News Page" + +#: mod/settings.php:1041 msgid "" "Account for a news reflector that automatically approves contact requests as" " \"Followers\"." msgstr "Account for a news reflector that automatically approves contact requests as \"Followers\"." -#: mod/settings.php:1046 +#: mod/settings.php:1044 src/Module/Admin/Users.php:232 +msgid "Community Forum" +msgstr "Community Forum" + +#: mod/settings.php:1045 msgid "Account for community discussions." msgstr "Account for community discussions." -#: mod/settings.php:1050 +#: mod/settings.php:1048 src/Module/Admin/Users.php:222 +msgid "Normal Account Page" +msgstr "Standard" + +#: mod/settings.php:1049 msgid "" "Account for a regular personal profile that requires manual approval of " "\"Friends\" and \"Followers\"." msgstr "Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"." -#: mod/settings.php:1054 +#: mod/settings.php:1052 src/Module/Admin/Users.php:223 +msgid "Soapbox Page" +msgstr "Soapbox" + +#: mod/settings.php:1053 msgid "" "Account for a public profile that automatically approves contact requests as" " \"Followers\"." msgstr "Account for a public profile that automatically approves contact requests as \"Followers\"." -#: mod/settings.php:1058 +#: mod/settings.php:1056 src/Module/Admin/Users.php:224 +msgid "Public Forum" +msgstr "Public forum" + +#: mod/settings.php:1057 msgid "Automatically approves all contact requests." msgstr "Automatically approves all contact requests." -#: mod/settings.php:1062 +#: mod/settings.php:1060 src/Module/Admin/Users.php:225 +msgid "Automatic Friend Page" +msgstr "Love-all" + +#: mod/settings.php:1061 msgid "" "Account for a popular profile that automatically approves contact requests " "as \"Friends\"." msgstr "Account for a popular profile that automatically approves contact requests as \"Friends\"." -#: mod/settings.php:1065 +#: mod/settings.php:1064 msgid "Private Forum [Experimental]" msgstr "Private forum [Experimental]" -#: mod/settings.php:1066 +#: mod/settings.php:1065 msgid "Requires manual approval of contact requests." msgstr "Requires manual approval of contact requests." -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "OpenID:" msgstr "OpenID:" -#: mod/settings.php:1077 +#: mod/settings.php:1076 msgid "(Optional) Allow this OpenID to login to this account." msgstr "(Optional) Allow this OpenID to login to this account." -#: mod/settings.php:1085 +#: mod/settings.php:1084 msgid "Publish your default profile in your local site directory?" msgstr "Publish default profile in local site directory?" -#: mod/settings.php:1085 +#: mod/settings.php:1084 #, php-format msgid "" "Your profile will be published in this node's local " @@ -6123,314 +3838,314 @@ msgid "" " system settings." msgstr "Your profile will be published in this node's local directory. Your profile details may be publicly visible depending on the system settings." -#: mod/settings.php:1091 +#: mod/settings.php:1090 msgid "Publish your default profile in the global social directory?" msgstr "Publish default profile in global directory?" -#: mod/settings.php:1091 +#: mod/settings.php:1090 #, php-format msgid "" "Your profile will be published in the global friendica directories (e.g. %s). Your profile will be visible in public." msgstr "Your profile will be published in the global Friendica directories (e.g. %s). Your profile will be publicly visible." -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "Hide your contact/friend list from viewers of your default profile?" msgstr "Hide my contact list from others?" -#: mod/settings.php:1098 +#: mod/settings.php:1097 msgid "" "Your contact list won't be shown in your default profile page. You can " "decide to show your contact list separately for each additional profile you " "create" msgstr "Your contact list won't be shown in your default profile page. You can decide to display your contact list separately for each additional profile you create" -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "Hide your profile details from anonymous viewers?" msgstr "Hide your profile details from anonymous viewers?" -#: mod/settings.php:1102 +#: mod/settings.php:1101 msgid "" "Anonymous visitors will only see your profile picture, your display name and" " the nickname you are using on your profile page. Your public posts and " "replies will still be accessible by other means." msgstr "Anonymous visitors will only see your profile picture, your display name and the nickname you are using on your profile page. Your public posts and replies may still be accessible by other means." -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "Allow friends to post to your profile page?" msgstr "Allow friends to post to my wall?" -#: mod/settings.php:1106 +#: mod/settings.php:1105 msgid "" "Your contacts may write posts on your profile wall. These posts will be " "distributed to your contacts" msgstr "Your contacts may write posts on your profile wall. These posts will be distributed to your contacts" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Allow friends to tag your posts?" msgstr "Allow friends to tag my post?" -#: mod/settings.php:1110 +#: mod/settings.php:1109 msgid "Your contacts can add additional tags to your posts." msgstr "Your contacts can add additional tags to your posts." -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "Allow us to suggest you as a potential friend to new members?" msgstr "Allow us to suggest you as a potential friend to new members?" -#: mod/settings.php:1114 +#: mod/settings.php:1113 msgid "" "If you like, Friendica may suggest new members to add you as a contact." msgstr "If you like, Friendica may suggest new members to add you as a contact." -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "Permit unknown people to send you private mail?" msgstr "Allow unknown people to send me private messages?" -#: mod/settings.php:1118 +#: mod/settings.php:1117 msgid "" "Friendica network users may send you private messages even if they are not " "in your contact list." msgstr "Friendica network users may send you private messages even if they are not in your contact list." -#: mod/settings.php:1122 +#: mod/settings.php:1121 msgid "Profile is not published." msgstr "Profile is not published." -#: mod/settings.php:1128 +#: mod/settings.php:1127 #, php-format msgid "Your Identity Address is '%s' or '%s'." msgstr "My identity address: '%s' or '%s'" -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "Automatically expire posts after this many days:" msgstr "Automatically expire posts after this many days:" -#: mod/settings.php:1135 +#: mod/settings.php:1134 msgid "If empty, posts will not expire. Expired posts will be deleted" msgstr "Posts will not expire if empty; expired posts will be deleted" -#: mod/settings.php:1136 +#: mod/settings.php:1135 msgid "Advanced expiration settings" msgstr "Advanced expiration settings" -#: mod/settings.php:1137 +#: mod/settings.php:1136 msgid "Advanced Expiration" msgstr "Advanced expiration" -#: mod/settings.php:1138 +#: mod/settings.php:1137 msgid "Expire posts:" msgstr "Expire posts:" -#: mod/settings.php:1139 +#: mod/settings.php:1138 msgid "Expire personal notes:" msgstr "Expire personal notes:" -#: mod/settings.php:1140 +#: mod/settings.php:1139 msgid "Expire starred posts:" msgstr "Expire starred posts:" -#: mod/settings.php:1141 +#: mod/settings.php:1140 msgid "Expire photos:" msgstr "Expire photos:" -#: mod/settings.php:1142 +#: mod/settings.php:1141 msgid "Only expire posts by others:" msgstr "Only expire posts by others:" -#: mod/settings.php:1172 +#: mod/settings.php:1171 msgid "Account Settings" msgstr "Account Settings" -#: mod/settings.php:1180 +#: mod/settings.php:1179 msgid "Password Settings" msgstr "Password change" -#: mod/settings.php:1181 src/Module/Register.php:130 +#: mod/settings.php:1180 src/Module/Register.php:130 msgid "New Password:" msgstr "New password:" -#: mod/settings.php:1181 +#: mod/settings.php:1180 msgid "" "Allowed characters are a-z, A-Z, 0-9 and special characters except white " "spaces, accentuated letters and colon (:)." msgstr "Allowed characters are a-z, A-Z, 0-9 and special characters except white spaces, accentuated letters and colon (:)." -#: mod/settings.php:1182 src/Module/Register.php:131 +#: mod/settings.php:1181 src/Module/Register.php:131 msgid "Confirm:" msgstr "Confirm new password:" -#: mod/settings.php:1182 +#: mod/settings.php:1181 msgid "Leave password fields blank unless changing" msgstr "Leave password fields blank unless changing" -#: mod/settings.php:1183 +#: mod/settings.php:1182 msgid "Current Password:" msgstr "Current password:" -#: mod/settings.php:1183 mod/settings.php:1184 +#: mod/settings.php:1182 mod/settings.php:1183 msgid "Your current password to confirm the changes" msgstr "Current password to confirm change" -#: mod/settings.php:1184 +#: mod/settings.php:1183 msgid "Password:" msgstr "Password:" -#: mod/settings.php:1188 +#: mod/settings.php:1187 msgid "Basic Settings" msgstr "Basic information" -#: mod/settings.php:1189 src/Model/Profile.php:751 +#: mod/settings.php:1188 src/Model/Profile.php:745 msgid "Full Name:" msgstr "Full name:" -#: mod/settings.php:1190 +#: mod/settings.php:1189 msgid "Email Address:" msgstr "Email address:" -#: mod/settings.php:1191 +#: mod/settings.php:1190 msgid "Your Timezone:" msgstr "Time zone:" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "Your Language:" msgstr "Language:" -#: mod/settings.php:1192 +#: mod/settings.php:1191 msgid "" "Set the language we use to show you friendica interface and to send you " "emails" msgstr "Set the language of your Friendica interface and emails sent to you." -#: mod/settings.php:1193 +#: mod/settings.php:1192 msgid "Default Post Location:" msgstr "Posting location:" -#: mod/settings.php:1194 +#: mod/settings.php:1193 msgid "Use Browser Location:" msgstr "Use browser location:" -#: mod/settings.php:1197 +#: mod/settings.php:1196 msgid "Security and Privacy Settings" msgstr "Security and privacy" -#: mod/settings.php:1199 +#: mod/settings.php:1198 msgid "Maximum Friend Requests/Day:" msgstr "Maximum friend requests per day:" -#: mod/settings.php:1199 mod/settings.php:1228 +#: mod/settings.php:1198 mod/settings.php:1227 msgid "(to prevent spam abuse)" msgstr "May prevent spam and abusive registrations" -#: mod/settings.php:1200 +#: mod/settings.php:1199 msgid "Default Post Permissions" msgstr "Default post permissions" -#: mod/settings.php:1201 +#: mod/settings.php:1200 msgid "(click to open/close)" msgstr "(reveal/hide)" -#: mod/settings.php:1211 +#: mod/settings.php:1210 msgid "Default Private Post" msgstr "Default private post" -#: mod/settings.php:1212 +#: mod/settings.php:1211 msgid "Default Public Post" msgstr "Default public post" -#: mod/settings.php:1216 +#: mod/settings.php:1215 msgid "Default Permissions for New Posts" msgstr "Default permissions for new posts" -#: mod/settings.php:1228 +#: mod/settings.php:1227 msgid "Maximum private messages per day from unknown people:" msgstr "Maximum private messages per day from unknown people:" -#: mod/settings.php:1231 +#: mod/settings.php:1230 msgid "Notification Settings" msgstr "Notification" -#: mod/settings.php:1232 +#: mod/settings.php:1231 msgid "Send a notification email when:" msgstr "Send notification email when:" -#: mod/settings.php:1233 +#: mod/settings.php:1232 msgid "You receive an introduction" msgstr "Receiving an introduction" -#: mod/settings.php:1234 +#: mod/settings.php:1233 msgid "Your introductions are confirmed" msgstr "My introductions are confirmed" -#: mod/settings.php:1235 +#: mod/settings.php:1234 msgid "Someone writes on your profile wall" msgstr "Someone writes on my wall" -#: mod/settings.php:1236 +#: mod/settings.php:1235 msgid "Someone writes a followup comment" msgstr "A follow up comment is posted" -#: mod/settings.php:1237 +#: mod/settings.php:1236 msgid "You receive a private message" msgstr "receiving a private message" -#: mod/settings.php:1238 +#: mod/settings.php:1237 msgid "You receive a friend suggestion" msgstr "Receiving a friend suggestion" -#: mod/settings.php:1239 +#: mod/settings.php:1238 msgid "You are tagged in a post" msgstr "Tagged in a post" -#: mod/settings.php:1240 +#: mod/settings.php:1239 msgid "You are poked/prodded/etc. in a post" msgstr "Poked in a post" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Activate desktop notifications" msgstr "Activate desktop notifications" -#: mod/settings.php:1242 +#: mod/settings.php:1241 msgid "Show desktop popup on new notifications" msgstr "Show desktop pop-up on new notifications" -#: mod/settings.php:1244 +#: mod/settings.php:1243 msgid "Text-only notification emails" msgstr "Text-only notification emails" -#: mod/settings.php:1246 +#: mod/settings.php:1245 msgid "Send text only notification emails, without the html part" msgstr "Receive text only emails without HTML " -#: mod/settings.php:1248 +#: mod/settings.php:1247 msgid "Show detailled notifications" msgstr "Show detailled notifications" -#: mod/settings.php:1250 +#: mod/settings.php:1249 msgid "" "Per default, notifications are condensed to a single notification per item. " "When enabled every notification is displayed." msgstr "By default, notifications are condensed into a single notification for each item. When enabled, every notification is displayed." -#: mod/settings.php:1252 +#: mod/settings.php:1251 msgid "Advanced Account/Page Type Settings" msgstr "Advanced account types" -#: mod/settings.php:1253 +#: mod/settings.php:1252 msgid "Change the behaviour of this account for special situations" msgstr "Change behavior of this account for special situations" -#: mod/settings.php:1256 +#: mod/settings.php:1255 msgid "Relocate" msgstr "Recent relocation" -#: mod/settings.php:1257 +#: mod/settings.php:1256 msgid "" "If you have moved this profile from another server, and some of your " "contacts don't receive your updates, try pushing this button." msgstr "If you have moved this profile from another server and some of your contacts don't receive your updates:" -#: mod/settings.php:1258 +#: mod/settings.php:1257 msgid "Resend relocate message to contacts" msgstr "Resend relocation message to contacts" @@ -6439,16 +4154,20 @@ msgstr "Resend relocation message to contacts" msgid "%1$s is following %2$s's %3$s" msgstr "%1$s is following %2$s's %3$s" -#: mod/suggest.php:39 -msgid "Do you really want to delete this suggestion?" -msgstr "Do you really want to delete this suggestion?" +#: mod/suggest.php:28 +msgid "Contact suggestion successfully ignored." +msgstr "Contact suggestion successfully ignored." -#: mod/suggest.php:75 +#: mod/suggest.php:52 msgid "" "No suggestions available. If this is a new site, please try again in 24 " "hours." msgstr "No suggestions available. If this is a new site, please try again in 24 hours." +#: mod/suggest.php:71 +msgid "Do you really want to delete this suggestion?" +msgstr "Do you really want to delete this suggestion?" + #: mod/suggest.php:89 mod/suggest.php:109 msgid "Ignore/Hide" msgstr "Ignore/Hide" @@ -6547,7 +4266,7 @@ msgstr "Unfollowing is currently not supported by your network." msgid "Contact unfollowed" msgstr "Contact unfollowed" -#: mod/unfollow.php:118 src/Module/Contact.php:570 +#: mod/unfollow.php:118 src/Module/Contact.php:573 msgid "Disconnect/Unfollow" msgstr "Disconnect/Unfollow" @@ -6557,27 +4276,19 @@ msgstr "Disconnect/Unfollow" msgid "[Embedded content - reload page to view]" msgstr "[Embedded content - reload page to view]" -#: mod/videos.php:97 -msgid "Do you really want to delete this video?" -msgstr "Do you really want to delete this video?" - -#: mod/videos.php:102 -msgid "Delete Video" -msgstr "Delete video" - -#: mod/videos.php:152 +#: mod/videos.php:123 msgid "No videos selected" msgstr "No videos selected" -#: mod/videos.php:309 src/Model/Item.php:3453 +#: mod/videos.php:280 src/Model/Item.php:3421 msgid "View Video" msgstr "View video" -#: mod/videos.php:324 +#: mod/videos.php:295 msgid "Recent Videos" msgstr "Recent videos" -#: mod/videos.php:326 +#: mod/videos.php:297 msgid "Upload New Videos" msgstr "Upload new videos" @@ -6585,16 +4296,16 @@ msgstr "Upload new videos" msgid "No contacts." msgstr "No contacts." -#: mod/viewcontacts.php:94 src/Module/Contact.php:603 -#: src/Module/Contact.php:1024 +#: mod/viewcontacts.php:94 src/Module/Contact.php:606 +#: src/Module/Contact.php:1027 #, php-format msgid "Visit %s's profile [%s]" msgstr "Visit %s's profile [%s]" -#: mod/viewcontacts.php:114 src/Content/Nav.php:203 src/Content/Nav.php:269 -#: src/Content/Text/HTML.php:911 src/Model/Profile.php:980 -#: src/Model/Profile.php:983 src/Module/Contact.php:811 -#: src/Module/Contact.php:881 view/theme/frio/theme.php:273 +#: mod/viewcontacts.php:114 src/Content/Nav.php:202 src/Content/Nav.php:268 +#: src/Content/Text/HTML.php:911 src/Model/Profile.php:974 +#: src/Model/Profile.php:977 src/Module/Contact.php:814 +#: src/Module/Contact.php:884 view/theme/frio/theme.php:273 msgid "Contacts" msgstr "Contacts" @@ -6641,29 +4352,77 @@ msgstr "File exceeds size limit of %s" msgid "File upload failed." msgstr "File upload failed." -#: mod/wall_upload.php:243 src/Object/Image.php:967 src/Object/Image.php:983 -#: src/Object/Image.php:991 src/Object/Image.php:1016 +#: mod/wall_upload.php:243 msgid "Wall Photos" msgstr "Wall photos" -#: src/App.php:665 +#: src/App.php:505 msgid "Delete this item?" msgstr "Delete this item?" -#: src/App.php:707 +#: src/App.php:547 msgid "toggle mobile" msgstr "Toggle mobile" -#: src/App.php:1075 +#: src/App.php:863 msgid "No system theme config value set." msgstr "No system theme configuration value set." -#: src/BaseModule.php:133 +#: src/App.php:1163 +msgid "You must be logged in to use addons. " +msgstr "You must be logged in to use addons. " + +#: src/BaseModule.php:135 msgid "" "The form security token was not correct. This probably happened because the " "form has been opened for too long (>3 hours) before submitting it." msgstr "The form security token was incorrect. This probably happened because the form has not been submitted within 3 hours." +#: src/Console/ArchiveContact.php:65 +#, php-format +msgid "Could not find any unarchived contact entry for this URL (%s)" +msgstr "Could not find any unarchived contact entry for this URL (%s)" + +#: src/Console/ArchiveContact.php:68 +msgid "The contact entries have been archived" +msgstr "The contact entries have been archived" + +#: src/Console/GlobalCommunityBlock.php:65 +#: src/Module/Admin/Blocklist/Contact.php:29 +#, php-format +msgid "Could not find any contact entry for this URL (%s)" +msgstr "Could not find any contact entry for this URL (%s)" + +#: src/Console/GlobalCommunityBlock.php:68 +#: src/Module/Admin/Blocklist/Contact.php:27 +msgid "The contact has been blocked from the node" +msgstr "This contact has been blocked from the node" + +#: src/Console/NewPassword.php:72 +msgid "Enter new password: " +msgstr "Enter new password: " + +#: src/Console/PostUpdate.php:50 +#, php-format +msgid "Post update version number has been set to %s." +msgstr "Post update version number has been set to %s." + +#: src/Console/PostUpdate.php:58 +msgid "Check for pending update actions." +msgstr "Check for pending update actions." + +#: src/Console/PostUpdate.php:60 +msgid "Done." +msgstr "Done." + +#: src/Console/PostUpdate.php:62 +msgid "Execute pending post updates." +msgstr "Execute pending post updates." + +#: src/Console/PostUpdate.php:68 +msgid "All pending post updates are done." +msgstr "All pending post updates are done." + #: src/Content/ContactSelector.php:58 msgid "Frequently" msgstr "Frequently" @@ -6700,6 +4459,12 @@ msgstr "OStatus" msgid "RSS/Atom" msgstr "RSS/Atom" +#: src/Content/ContactSelector.php:86 src/Module/Admin/Users.php:272 +#: src/Module/Admin/Users.php:283 src/Module/Admin/Users.php:297 +#: src/Module/Admin/Users.php:315 +msgid "Email" +msgstr "Email" + #: src/Content/ContactSelector.php:88 msgid "Zot!" msgstr "Zot!" @@ -6744,6 +4509,11 @@ msgstr "ActivityPub" msgid "pnut" msgstr "pnut" +#: src/Content/ContactSelector.php:153 src/Content/ContactSelector.php:193 +#: src/Content/ContactSelector.php:231 +msgid "No answer" +msgstr "No answer" + #: src/Content/ContactSelector.php:154 msgid "Male" msgstr "Male" @@ -6884,7 +4654,7 @@ msgstr "Unfaithful" msgid "Sex Addict" msgstr "Sex addict" -#: src/Content/ContactSelector.php:241 src/Model/User.php:702 +#: src/Content/ContactSelector.php:241 src/Model/User.php:729 msgid "Friends" msgstr "Friends" @@ -7101,7 +4871,7 @@ msgstr "Display membership date" msgid "Display membership date in profile" msgstr "Display membership date in profile" -#: src/Content/ForumManager.php:130 src/Content/Nav.php:207 +#: src/Content/ForumManager.php:130 src/Content/Nav.php:206 #: src/Content/Text/HTML.php:914 view/theme/vier/theme.php:250 msgid "Forums" msgstr "Forums" @@ -7110,220 +4880,251 @@ msgstr "Forums" msgid "External link to forum" msgstr "External link to forum" -#: src/Content/Nav.php:74 +#: src/Content/Nav.php:73 msgid "Nothing new here" msgstr "Nothing new here" -#: src/Content/Nav.php:78 +#: src/Content/Nav.php:77 msgid "Clear notifications" msgstr "Clear notifications" -#: src/Content/Nav.php:79 src/Content/Text/HTML.php:903 +#: src/Content/Nav.php:78 src/Content/Text/HTML.php:903 msgid "@name, !forum, #tags, content" msgstr "@name, !forum, #tags, content" -#: src/Content/Nav.php:153 src/Module/Login.php:321 +#: src/Content/Nav.php:152 src/Module/Login.php:324 #: view/theme/frio/theme.php:259 msgid "Logout" msgstr "Logout" -#: src/Content/Nav.php:153 view/theme/frio/theme.php:259 +#: src/Content/Nav.php:152 view/theme/frio/theme.php:259 msgid "End this session" msgstr "End this session" -#: src/Content/Nav.php:156 src/Model/Profile.php:901 -#: src/Module/Contact.php:652 src/Module/Contact.php:853 -#: view/theme/frio/theme.php:262 +#: src/Content/Nav.php:155 src/Model/Profile.php:895 +#: src/Module/Contact.php:655 src/Module/Contact.php:856 +#: src/Module/Settings/TwoFactor/Index.php:85 view/theme/frio/theme.php:262 msgid "Status" msgstr "Status" -#: src/Content/Nav.php:156 src/Content/Nav.php:242 +#: src/Content/Nav.php:155 src/Content/Nav.php:241 #: view/theme/frio/theme.php:262 msgid "Your posts and conversations" msgstr "My posts and conversations" -#: src/Content/Nav.php:157 view/theme/frio/theme.php:263 +#: src/Content/Nav.php:156 view/theme/frio/theme.php:263 msgid "Your profile page" msgstr "My profile page" -#: src/Content/Nav.php:158 view/theme/frio/theme.php:264 +#: src/Content/Nav.php:157 view/theme/frio/theme.php:264 msgid "Your photos" msgstr "My photos" -#: src/Content/Nav.php:159 src/Model/Profile.php:925 src/Model/Profile.php:928 +#: src/Content/Nav.php:158 src/Model/Profile.php:919 src/Model/Profile.php:922 #: view/theme/frio/theme.php:265 msgid "Videos" msgstr "Videos" -#: src/Content/Nav.php:159 view/theme/frio/theme.php:265 +#: src/Content/Nav.php:158 view/theme/frio/theme.php:265 msgid "Your videos" msgstr "My videos" -#: src/Content/Nav.php:160 view/theme/frio/theme.php:266 +#: src/Content/Nav.php:159 view/theme/frio/theme.php:266 msgid "Your events" msgstr "My events" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Personal notes" msgstr "Personal notes" -#: src/Content/Nav.php:161 +#: src/Content/Nav.php:160 msgid "Your personal notes" msgstr "My personal notes" -#: src/Content/Nav.php:170 +#: src/Content/Nav.php:169 src/Module/Bookmarklet.php:25 +#: src/Module/Login.php:325 +msgid "Login" +msgstr "Login" + +#: src/Content/Nav.php:169 msgid "Sign in" msgstr "Sign in" -#: src/Content/Nav.php:180 src/Content/Nav.php:242 -#: src/Core/NotificationsManager.php:196 +#: src/Content/Nav.php:179 src/Content/Nav.php:241 +#: src/Core/NotificationsManager.php:165 msgid "Home" msgstr "Home" -#: src/Content/Nav.php:180 +#: src/Content/Nav.php:179 msgid "Home Page" msgstr "Home page" -#: src/Content/Nav.php:184 src/Module/Login.php:293 +#: src/Content/Nav.php:183 src/Module/Login.php:296 #: src/Module/Register.php:136 msgid "Register" msgstr "Sign up now >>" -#: src/Content/Nav.php:184 +#: src/Content/Nav.php:183 msgid "Create an account" msgstr "Create account" -#: src/Content/Nav.php:190 +#: src/Content/Nav.php:189 src/Module/Help.php:50 +#: src/Module/Settings/TwoFactor/Index.php:84 +#: src/Module/Settings/TwoFactor/Recovery.php:77 +#: src/Module/Settings/TwoFactor/Verify.php:117 view/theme/vier/theme.php:294 +msgid "Help" +msgstr "Help" + +#: src/Content/Nav.php:189 msgid "Help and documentation" msgstr "Help and documentation" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Apps" msgstr "Apps" -#: src/Content/Nav.php:194 +#: src/Content/Nav.php:193 msgid "Addon applications, utilities, games" msgstr "Addon applications, utilities, games" -#: src/Content/Nav.php:198 +#: src/Content/Nav.php:197 msgid "Search site content" msgstr "Search site content" -#: src/Content/Nav.php:201 src/Content/Text/HTML.php:909 +#: src/Content/Nav.php:200 src/Content/Text/HTML.php:909 msgid "Full Text" msgstr "Full text" -#: src/Content/Nav.php:202 src/Content/Text/HTML.php:910 +#: src/Content/Nav.php:201 src/Content/Text/HTML.php:910 #: src/Content/Widget/TagCloud.php:54 msgid "Tags" msgstr "Tags" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Community" msgstr "Community" -#: src/Content/Nav.php:222 +#: src/Content/Nav.php:221 msgid "Conversations on this and other servers" msgstr "Conversations on this and other servers" -#: src/Content/Nav.php:226 src/Model/Profile.php:940 src/Model/Profile.php:951 +#: src/Content/Nav.php:225 src/Model/Profile.php:934 src/Model/Profile.php:945 #: view/theme/frio/theme.php:270 msgid "Events and Calendar" msgstr "Events and calendar" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "Directory" msgstr "Directory" -#: src/Content/Nav.php:229 +#: src/Content/Nav.php:228 msgid "People directory" msgstr "People directory" -#: src/Content/Nav.php:231 +#: src/Content/Nav.php:230 src/Module/BaseAdminModule.php:75 +msgid "Information" +msgstr "Information" + +#: src/Content/Nav.php:230 msgid "Information about this friendica instance" msgstr "Information about this Friendica instance" -#: src/Content/Nav.php:234 +#: src/Content/Nav.php:233 src/Module/Admin/Tos.php:43 +#: src/Module/BaseAdminModule.php:85 src/Module/Register.php:144 +#: src/Module/Tos.php:73 +msgid "Terms of Service" +msgstr "Terms of Service" + +#: src/Content/Nav.php:233 msgid "Terms of Service of this Friendica instance" msgstr "Terms of Service of this Friendica instance" -#: src/Content/Nav.php:239 view/theme/frio/theme.php:269 +#: src/Content/Nav.php:238 src/Core/NotificationsManager.php:151 +#: view/theme/frio/theme.php:269 +msgid "Network" +msgstr "Network" + +#: src/Content/Nav.php:238 view/theme/frio/theme.php:269 msgid "Conversations from your friends" msgstr "My friends' conversations" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Network Reset" msgstr "Network reset" -#: src/Content/Nav.php:240 +#: src/Content/Nav.php:239 msgid "Load Network page with no filters" msgstr "Load network page without filters" -#: src/Content/Nav.php:246 src/Core/NotificationsManager.php:203 +#: src/Content/Nav.php:245 src/Core/NotificationsManager.php:172 msgid "Introductions" msgstr "Introductions" -#: src/Content/Nav.php:246 +#: src/Content/Nav.php:245 msgid "Friend Requests" msgstr "Friend requests" -#: src/Content/Nav.php:248 +#: src/Content/Nav.php:247 msgid "See all notifications" msgstr "See all notifications" -#: src/Content/Nav.php:249 +#: src/Content/Nav.php:248 msgid "Mark all system notifications seen" msgstr "Mark notifications as seen" -#: src/Content/Nav.php:252 view/theme/frio/theme.php:271 +#: src/Content/Nav.php:251 view/theme/frio/theme.php:271 msgid "Private mail" msgstr "Private messages" -#: src/Content/Nav.php:253 +#: src/Content/Nav.php:252 msgid "Inbox" msgstr "Inbox" -#: src/Content/Nav.php:254 +#: src/Content/Nav.php:253 msgid "Outbox" msgstr "Outbox" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage" msgstr "Manage" -#: src/Content/Nav.php:258 +#: src/Content/Nav.php:257 msgid "Manage other pages" msgstr "Manage other pages" -#: src/Content/Nav.php:263 view/theme/frio/theme.php:272 +#: src/Content/Nav.php:262 view/theme/frio/theme.php:272 msgid "Account settings" msgstr "Account settings" -#: src/Content/Nav.php:266 +#: src/Content/Nav.php:265 msgid "Manage/Edit Profiles" msgstr "Manage/Edit profiles" -#: src/Content/Nav.php:269 view/theme/frio/theme.php:273 +#: src/Content/Nav.php:268 view/theme/frio/theme.php:273 msgid "Manage/edit friends and contacts" msgstr "Manage/Edit friends and contacts" -#: src/Content/Nav.php:274 +#: src/Content/Nav.php:273 src/Module/BaseAdminModule.php:114 +msgid "Admin" +msgstr "Admin" + +#: src/Content/Nav.php:273 msgid "Site setup and configuration" msgstr "Site setup and configuration" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Navigation" msgstr "Navigation" -#: src/Content/Nav.php:277 +#: src/Content/Nav.php:276 msgid "Site map" msgstr "Site map" -#: src/Content/OEmbed.php:256 +#: src/Content/OEmbed.php:255 msgid "Embedding disabled" msgstr "Embedding disabled" -#: src/Content/OEmbed.php:379 +#: src/Content/OEmbed.php:378 msgid "Embedded content" msgstr "Embedded content" @@ -7343,33 +5144,33 @@ msgstr "prev" msgid "last" msgstr "last" -#: src/Content/Text/BBCode.php:429 +#: src/Content/Text/BBCode.php:430 msgid "view full size" msgstr "view full size" -#: src/Content/Text/BBCode.php:863 src/Content/Text/BBCode.php:1596 -#: src/Content/Text/BBCode.php:1597 +#: src/Content/Text/BBCode.php:864 src/Content/Text/BBCode.php:1591 +#: src/Content/Text/BBCode.php:1592 msgid "Image/photo" msgstr "Image/Photo" -#: src/Content/Text/BBCode.php:967 +#: src/Content/Text/BBCode.php:972 #, php-format msgid "%2$s %3$s" msgstr "%2$s %3$s" -#: src/Content/Text/BBCode.php:1523 src/Content/Text/BBCode.php:1545 +#: src/Content/Text/BBCode.php:1518 src/Content/Text/BBCode.php:1540 msgid "$1 wrote:" msgstr "$1 wrote:" -#: src/Content/Text/BBCode.php:1607 src/Content/Text/BBCode.php:1608 +#: src/Content/Text/BBCode.php:1602 src/Content/Text/BBCode.php:1603 msgid "Encrypted content" msgstr "Encrypted content" -#: src/Content/Text/BBCode.php:1715 +#: src/Content/Text/BBCode.php:1710 msgid "Invalid source protocol" msgstr "Invalid source protocol" -#: src/Content/Text/BBCode.php:1726 +#: src/Content/Text/BBCode.php:1721 msgid "Invalid link protocol" msgstr "Invalid link protocol" @@ -7385,8 +5186,8 @@ msgstr "The end" msgid "Follow" msgstr "Follow" -#: src/Content/Text/HTML.php:951 src/Model/Item.php:3503 -#: src/Model/Item.php:3514 +#: src/Content/Text/HTML.php:951 src/Model/Item.php:3471 +#: src/Model/Item.php:3482 msgid "Click to open/close" msgstr "Reveal/hide" @@ -7448,6 +5249,11 @@ msgstr "Enter name or interest" msgid "Examples: Robert Morgenstein, Fishing" msgstr "Examples: Robert Morgenstein, fishing" +#: src/Content/Widget.php:65 src/Module/Contact.php:820 +#: src/Module/Directory.php:91 view/theme/vier/theme.php:203 +msgid "Find" +msgstr "Find" + #: src/Content/Widget.php:67 view/theme/vier/theme.php:205 msgid "Similar Interests" msgstr "Similar interests" @@ -7460,6 +5266,11 @@ msgstr "Random profile" msgid "Invite Friends" msgstr "Invite friends" +#: src/Content/Widget.php:70 src/Module/Directory.php:83 +#: view/theme/vier/theme.php:208 +msgid "Global Directory" +msgstr "Global Directory" + #: src/Content/Widget.php:72 view/theme/vier/theme.php:210 msgid "Local Directory" msgstr "Local directory" @@ -7491,104 +5302,62 @@ msgid_plural "%d contacts in common" msgstr[0] "%d contact in common" msgstr[1] "%d contacts in common" -#: src/Core/ACL.php:287 +#: src/Core/ACL.php:288 msgid "Post to Email" msgstr "Post to email" -#: src/Core/ACL.php:293 -msgid "Hide your profile details from unknown viewers?" -msgstr "Hide profile details from unknown viewers?" - -#: src/Core/ACL.php:292 -#, php-format -msgid "Connectors disabled, since \"%s\" is enabled." -msgstr "Connectors are disabled since \"%s\" is enabled." - -#: src/Core/ACL.php:299 +#: src/Core/ACL.php:300 msgid "Visible to everybody" msgstr "Visible to everybody" -#: src/Core/ACL.php:300 view/theme/vier/config.php:116 +#: src/Core/ACL.php:301 view/theme/vier/config.php:116 msgid "show" msgstr "show" -#: src/Core/ACL.php:301 view/theme/vier/config.php:116 +#: src/Core/ACL.php:302 view/theme/vier/config.php:116 msgid "don't show" msgstr "don't show" #: src/Core/ACL.php:311 +msgid "Connectors" +msgstr "Connectors" + +#: src/Core/ACL.php:313 +msgid "Hide your profile details from unknown viewers?" +msgstr "Hide profile details from unknown viewers?" + +#: src/Core/ACL.php:313 +#, php-format +msgid "Connectors disabled, since \"%s\" is enabled." +msgstr "Connectors are disabled since \"%s\" is enabled." + +#: src/Core/ACL.php:315 msgid "Close" msgstr "Close" -#: src/Core/Authentication.php:87 -msgid "Welcome " -msgstr "Welcome " - -#: src/Core/Authentication.php:88 -msgid "Please upload a profile photo." -msgstr "Please upload a profile photo." - -#: src/Core/Authentication.php:90 -msgid "Welcome back " -msgstr "Welcome back " - -#: src/Core/Console/ArchiveContact.php:65 -#, php-format -msgid "Could not find any unarchived contact entry for this URL (%s)" -msgstr "Could not find any unarchived contact entry for this URL (%s)" - -#: src/Core/Console/ArchiveContact.php:70 -msgid "The contact entries have been archived" -msgstr "The contact entries have been archived" - -#: src/Core/Console/NewPassword.php:72 -msgid "Enter new password: " -msgstr "Enter new password: " - -#: src/Core/Console/PostUpdate.php:50 -#, php-format -msgid "Post update version number has been set to %s." -msgstr "Post update version number has been set to %s." - -#: src/Core/Console/PostUpdate.php:58 -msgid "Check for pending update actions." -msgstr "Check for pending update actions." - -#: src/Core/Console/PostUpdate.php:60 -msgid "Done." -msgstr "Done." - -#: src/Core/Console/PostUpdate.php:62 -msgid "Execute pending post updates." -msgstr "Execute pending post updates." - -#: src/Core/Console/PostUpdate.php:68 -msgid "All pending post updates are done." -msgstr "All pending post updates are done." - -#: src/Core/Installer.php:163 +#: src/Core/Installer.php:164 msgid "" "The database configuration file \"config/local.config.php\" could not be " "written. Please use the enclosed text to create a configuration file in your" " web server root." msgstr "The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root." -#: src/Core/Installer.php:182 +#: src/Core/Installer.php:183 msgid "" "You may need to import the file \"database.sql\" manually using phpmyadmin " "or mysql." msgstr "You may need to import the file \"database.sql\" manually using phpmyadmin or mysql." -#: src/Core/Installer.php:183 src/Module/Install.php:132 -#: src/Module/Install.php:263 +#: src/Core/Installer.php:184 src/Module/Install.php:172 +#: src/Module/Install.php:328 msgid "Please see the file \"INSTALL.txt\"." msgstr "Please see the file \"INSTALL.txt\"." -#: src/Core/Installer.php:244 +#: src/Core/Installer.php:245 msgid "Could not find a command line version of PHP in the web server PATH." msgstr "Could not find a command line version of PHP in the web server PATH." -#: src/Core/Installer.php:245 +#: src/Core/Installer.php:246 msgid "" "If you don't have a command line version of PHP installed on your server, " "you will not be able to run the background processing. See 'Setup the worker'" msgstr "If your server doesn't have a command line version of PHP installed, you won't be able to run background processing. See 'Setup the worker'" -#: src/Core/Installer.php:249 +#: src/Core/Installer.php:251 msgid "PHP executable path" msgstr "PHP executable path" -#: src/Core/Installer.php:249 +#: src/Core/Installer.php:251 msgid "" "Enter full path to php executable. You can leave this blank to continue the " "installation." msgstr "Enter full path to php executable. You can leave this blank to continue the installation." -#: src/Core/Installer.php:254 +#: src/Core/Installer.php:256 msgid "Command line PHP" msgstr "Command line PHP" -#: src/Core/Installer.php:263 +#: src/Core/Installer.php:265 msgid "PHP executable is not the php cli binary (could be cgi-fgci version)" msgstr "PHP executable is not a php cli binary; it could possibly be a cgi-fgci version." -#: src/Core/Installer.php:264 +#: src/Core/Installer.php:266 msgid "Found PHP version: " msgstr "Found PHP version: " -#: src/Core/Installer.php:266 +#: src/Core/Installer.php:268 msgid "PHP cli binary" msgstr "PHP cli binary" -#: src/Core/Installer.php:279 +#: src/Core/Installer.php:281 msgid "" "The command line version of PHP on your system does not have " "\"register_argc_argv\" enabled." msgstr "The command line version of PHP on your system does not have \"register_argc_argv\" enabled." -#: src/Core/Installer.php:280 +#: src/Core/Installer.php:282 msgid "This is required for message delivery to work." msgstr "This is required for message delivery to work." -#: src/Core/Installer.php:285 +#: src/Core/Installer.php:287 msgid "PHP register_argc_argv" msgstr "PHP register_argc_argv" -#: src/Core/Installer.php:317 +#: src/Core/Installer.php:319 msgid "" "Error: the \"openssl_pkey_new\" function on this system is not able to " "generate encryption keys" msgstr "Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys" -#: src/Core/Installer.php:318 +#: src/Core/Installer.php:320 msgid "" "If running under Windows, please see " "\"http://www.php.net/manual/en/openssl.installation.php\"." msgstr "If running under Windows OS, please see \"http://www.php.net/manual/en/openssl.installation.php\"." -#: src/Core/Installer.php:321 +#: src/Core/Installer.php:323 msgid "Generate encryption keys" msgstr "Generate encryption keys" -#: src/Core/Installer.php:372 +#: src/Core/Installer.php:375 msgid "" "Error: Apache webserver mod-rewrite module is required but not installed." msgstr "Error: Apache web server mod-rewrite module is required but not installed." -#: src/Core/Installer.php:377 +#: src/Core/Installer.php:380 msgid "Apache mod_rewrite module" msgstr "Apache mod_rewrite module" -#: src/Core/Installer.php:383 +#: src/Core/Installer.php:386 msgid "Error: PDO or MySQLi PHP module required but not installed." msgstr "Error: PDO or MySQLi PHP module required but not installed." -#: src/Core/Installer.php:388 +#: src/Core/Installer.php:391 msgid "Error: The MySQL driver for PDO is not installed." msgstr "Error: MySQL driver for PDO is not installed." -#: src/Core/Installer.php:392 +#: src/Core/Installer.php:395 msgid "PDO or MySQLi PHP module" msgstr "PDO or MySQLi PHP module" -#: src/Core/Installer.php:400 +#: src/Core/Installer.php:403 msgid "Error, XML PHP module required but not installed." msgstr "Error, XML PHP module required but not installed." -#: src/Core/Installer.php:404 +#: src/Core/Installer.php:407 msgid "XML PHP module" msgstr "XML PHP module" -#: src/Core/Installer.php:407 +#: src/Core/Installer.php:410 msgid "libCurl PHP module" msgstr "libCurl PHP module" -#: src/Core/Installer.php:408 +#: src/Core/Installer.php:411 msgid "Error: libCURL PHP module required but not installed." msgstr "Error: libCURL PHP module required but not installed." -#: src/Core/Installer.php:414 +#: src/Core/Installer.php:417 msgid "GD graphics PHP module" msgstr "GD graphics PHP module" -#: src/Core/Installer.php:415 +#: src/Core/Installer.php:418 msgid "" "Error: GD graphics PHP module with JPEG support required but not installed." msgstr "Error: GD graphics PHP module with JPEG support required but not installed." -#: src/Core/Installer.php:421 +#: src/Core/Installer.php:424 msgid "OpenSSL PHP module" msgstr "OpenSSL PHP module" -#: src/Core/Installer.php:422 +#: src/Core/Installer.php:425 msgid "Error: openssl PHP module required but not installed." msgstr "Error: openssl PHP module required but not installed." -#: src/Core/Installer.php:428 +#: src/Core/Installer.php:431 msgid "mb_string PHP module" msgstr "mb_string PHP module" -#: src/Core/Installer.php:429 +#: src/Core/Installer.php:432 msgid "Error: mb_string PHP module required but not installed." msgstr "Error: mb_string PHP module required but not installed." -#: src/Core/Installer.php:435 +#: src/Core/Installer.php:438 msgid "iconv PHP module" msgstr "iconv PHP module" -#: src/Core/Installer.php:436 +#: src/Core/Installer.php:439 msgid "Error: iconv PHP module required but not installed." msgstr "Error: iconv PHP module required but not installed." -#: src/Core/Installer.php:442 +#: src/Core/Installer.php:445 msgid "POSIX PHP module" msgstr "POSIX PHP module" -#: src/Core/Installer.php:443 +#: src/Core/Installer.php:446 msgid "Error: POSIX PHP module required but not installed." msgstr "Error: POSIX PHP module required but not installed." -#: src/Core/Installer.php:449 +#: src/Core/Installer.php:452 msgid "JSON PHP module" msgstr "JSON PHP module" -#: src/Core/Installer.php:450 +#: src/Core/Installer.php:453 msgid "Error: JSON PHP module required but not installed." msgstr "Error: JSON PHP module is required but not installed." -#: src/Core/Installer.php:473 +#: src/Core/Installer.php:459 +msgid "File Information PHP module" +msgstr "File Information PHP module" + +#: src/Core/Installer.php:460 +msgid "Error: File Information PHP module required but not installed." +msgstr "Error: File Information PHP module required but not installed." + +#: src/Core/Installer.php:483 msgid "" "The web installer needs to be able to create a file called " "\"local.config.php\" in the \"config\" folder of your web server and it is " "unable to do so." msgstr "The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server, but is unable to do so." -#: src/Core/Installer.php:474 +#: src/Core/Installer.php:484 msgid "" "This is most often a permission setting, as the web server may not be able " "to write files in your folder - even if you can." msgstr "This is most often a permission setting issue, as the web server may not be able to write files in your directory - even if you can." -#: src/Core/Installer.php:475 +#: src/Core/Installer.php:485 msgid "" "At the end of this procedure, we will give you a text to save in a file " "named local.config.php in your Friendica \"config\" folder." msgstr "At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder." -#: src/Core/Installer.php:476 +#: src/Core/Installer.php:486 msgid "" "You can alternatively skip this procedure and perform a manual installation." " Please see the file \"INSTALL.txt\" for instructions." msgstr "Alternatively, you may skip this procedure and perform a manual installation. Please see the file \"INSTALL.txt\" for instructions." -#: src/Core/Installer.php:479 +#: src/Core/Installer.php:489 msgid "config/local.config.php is writable" msgstr "config/local.config.php is writable" -#: src/Core/Installer.php:499 +#: src/Core/Installer.php:509 msgid "" "Friendica uses the Smarty3 template engine to render its web views. Smarty3 " "compiles templates to PHP to speed up rendering." msgstr "Friendica uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering." -#: src/Core/Installer.php:500 +#: src/Core/Installer.php:510 msgid "" "In order to store these compiled templates, the web server needs to have " "write access to the directory view/smarty3/ under the Friendica top level " "folder." msgstr "In order to store these compiled templates, the web server needs to have write access to the directory view/smarty3/ under the Friendica top-level directory." -#: src/Core/Installer.php:501 +#: src/Core/Installer.php:511 msgid "" "Please ensure that the user that your web server runs as (e.g. www-data) has" " write access to this folder." msgstr "Please ensure the user that your web server runs as (e.g. www-data) has write access to this directory." -#: src/Core/Installer.php:502 +#: src/Core/Installer.php:512 msgid "" "Note: as a security measure, you should give the web server write access to " "view/smarty3/ only--not the template files (.tpl) that it contains." msgstr "Note: as a security measure, you should give the web server write access to view/smarty3/ only--not the template files (.tpl) that it contains." -#: src/Core/Installer.php:505 +#: src/Core/Installer.php:515 msgid "view/smarty3 is writable" msgstr "view/smarty3 is writable" -#: src/Core/Installer.php:534 +#: src/Core/Installer.php:544 msgid "" "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist" " to .htaccess." msgstr "Url rewrite in .htaccess is not working. Make sure you copied .htaccess-dist to .htaccess." -#: src/Core/Installer.php:536 +#: src/Core/Installer.php:546 msgid "Error message from Curl when fetching" msgstr "Error message from Curl while fetching" -#: src/Core/Installer.php:541 +#: src/Core/Installer.php:551 msgid "Url rewrite is working" msgstr "URL rewrite is working" -#: src/Core/Installer.php:570 +#: src/Core/Installer.php:580 msgid "ImageMagick PHP extension is not installed" msgstr "ImageMagick PHP extension is not installed" -#: src/Core/Installer.php:572 +#: src/Core/Installer.php:582 msgid "ImageMagick PHP extension is installed" msgstr "ImageMagick PHP extension is installed" -#: src/Core/Installer.php:574 tests/src/Core/InstallerTest.php:329 -#: tests/src/Core/InstallerTest.php:355 +#: src/Core/Installer.php:584 tests/src/Core/InstallerTest.php:347 +#: tests/src/Core/InstallerTest.php:373 msgid "ImageMagick supports GIF" msgstr "ImageMagick supports GIF" -#: src/Core/Installer.php:597 +#: src/Core/Installer.php:609 msgid "Could not connect to database." msgstr "Could not connect to database." -#: src/Core/Installer.php:604 +#: src/Core/Installer.php:616 msgid "Database already in use." msgstr "Database already in use." -#: src/Core/L10n.php:368 src/Model/Event.php:397 +#: src/Core/L10n.php:371 src/Model/Event.php:397 msgid "Tuesday" msgstr "Tuesday" -#: src/Core/L10n.php:368 src/Model/Event.php:398 +#: src/Core/L10n.php:371 src/Model/Event.php:398 msgid "Wednesday" msgstr "Wednesday" -#: src/Core/L10n.php:368 src/Model/Event.php:399 +#: src/Core/L10n.php:371 src/Model/Event.php:399 msgid "Thursday" msgstr "Thursday" -#: src/Core/L10n.php:368 src/Model/Event.php:400 +#: src/Core/L10n.php:371 src/Model/Event.php:400 msgid "Friday" msgstr "Friday" -#: src/Core/L10n.php:368 src/Model/Event.php:401 +#: src/Core/L10n.php:371 src/Model/Event.php:401 msgid "Saturday" msgstr "Saturday" -#: src/Core/L10n.php:372 src/Model/Event.php:416 +#: src/Core/L10n.php:375 src/Model/Event.php:416 msgid "January" msgstr "January" -#: src/Core/L10n.php:372 src/Model/Event.php:417 +#: src/Core/L10n.php:375 src/Model/Event.php:417 msgid "February" msgstr "February" -#: src/Core/L10n.php:372 src/Model/Event.php:418 +#: src/Core/L10n.php:375 src/Model/Event.php:418 msgid "March" msgstr "March" -#: src/Core/L10n.php:372 src/Model/Event.php:419 +#: src/Core/L10n.php:375 src/Model/Event.php:419 msgid "April" msgstr "April" -#: src/Core/L10n.php:372 src/Core/L10n.php:391 src/Model/Event.php:407 +#: src/Core/L10n.php:375 src/Core/L10n.php:394 src/Model/Event.php:407 msgid "May" msgstr "May" -#: src/Core/L10n.php:372 src/Model/Event.php:420 +#: src/Core/L10n.php:375 src/Model/Event.php:420 msgid "June" msgstr "June" -#: src/Core/L10n.php:372 src/Model/Event.php:421 +#: src/Core/L10n.php:375 src/Model/Event.php:421 msgid "July" msgstr "July" -#: src/Core/L10n.php:372 src/Model/Event.php:422 +#: src/Core/L10n.php:375 src/Model/Event.php:422 msgid "August" msgstr "August" -#: src/Core/L10n.php:372 src/Model/Event.php:423 +#: src/Core/L10n.php:375 src/Model/Event.php:423 msgid "September" msgstr "September" -#: src/Core/L10n.php:372 src/Model/Event.php:424 +#: src/Core/L10n.php:375 src/Model/Event.php:424 msgid "October" msgstr "October" -#: src/Core/L10n.php:372 src/Model/Event.php:425 +#: src/Core/L10n.php:375 src/Model/Event.php:425 msgid "November" msgstr "November" -#: src/Core/L10n.php:372 src/Model/Event.php:426 +#: src/Core/L10n.php:375 src/Model/Event.php:426 msgid "December" msgstr "December" -#: src/Core/L10n.php:387 src/Model/Event.php:388 +#: src/Core/L10n.php:390 src/Model/Event.php:388 msgid "Mon" msgstr "Mon" -#: src/Core/L10n.php:387 src/Model/Event.php:389 +#: src/Core/L10n.php:390 src/Model/Event.php:389 msgid "Tue" msgstr "Tue" -#: src/Core/L10n.php:387 src/Model/Event.php:390 +#: src/Core/L10n.php:390 src/Model/Event.php:390 msgid "Wed" msgstr "Wed" -#: src/Core/L10n.php:387 src/Model/Event.php:391 +#: src/Core/L10n.php:390 src/Model/Event.php:391 msgid "Thu" msgstr "Thu" -#: src/Core/L10n.php:387 src/Model/Event.php:392 +#: src/Core/L10n.php:390 src/Model/Event.php:392 msgid "Fri" msgstr "Fri" -#: src/Core/L10n.php:387 src/Model/Event.php:393 +#: src/Core/L10n.php:390 src/Model/Event.php:393 msgid "Sat" msgstr "Sat" -#: src/Core/L10n.php:387 src/Model/Event.php:387 +#: src/Core/L10n.php:390 src/Model/Event.php:387 msgid "Sun" msgstr "Sun" -#: src/Core/L10n.php:391 src/Model/Event.php:403 +#: src/Core/L10n.php:394 src/Model/Event.php:403 msgid "Jan" msgstr "Jan" -#: src/Core/L10n.php:391 src/Model/Event.php:404 +#: src/Core/L10n.php:394 src/Model/Event.php:404 msgid "Feb" msgstr "Feb" -#: src/Core/L10n.php:391 src/Model/Event.php:405 +#: src/Core/L10n.php:394 src/Model/Event.php:405 msgid "Mar" msgstr "Mar" -#: src/Core/L10n.php:391 src/Model/Event.php:406 +#: src/Core/L10n.php:394 src/Model/Event.php:406 msgid "Apr" msgstr "Apr" -#: src/Core/L10n.php:391 src/Model/Event.php:409 +#: src/Core/L10n.php:394 src/Model/Event.php:409 msgid "Jul" msgstr "Jul" -#: src/Core/L10n.php:391 src/Model/Event.php:410 +#: src/Core/L10n.php:394 src/Model/Event.php:410 msgid "Aug" msgstr "Aug" -#: src/Core/L10n.php:391 +#: src/Core/L10n.php:394 msgid "Sep" msgstr "Sep" -#: src/Core/L10n.php:391 src/Model/Event.php:412 +#: src/Core/L10n.php:394 src/Model/Event.php:412 msgid "Oct" msgstr "Oct" -#: src/Core/L10n.php:391 src/Model/Event.php:413 +#: src/Core/L10n.php:394 src/Model/Event.php:413 msgid "Nov" msgstr "Nov" -#: src/Core/L10n.php:391 src/Model/Event.php:414 +#: src/Core/L10n.php:394 src/Model/Event.php:414 msgid "Dec" msgstr "Dec" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poke" msgstr "poke" -#: src/Core/L10n.php:410 +#: src/Core/L10n.php:413 msgid "poked" msgstr "poked" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "ping" msgstr "ping" -#: src/Core/L10n.php:411 +#: src/Core/L10n.php:414 msgid "pinged" msgstr "pinged" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prod" msgstr "prod" -#: src/Core/L10n.php:412 +#: src/Core/L10n.php:415 msgid "prodded" msgstr "prodded" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slap" msgstr "slap" -#: src/Core/L10n.php:413 +#: src/Core/L10n.php:416 msgid "slapped" msgstr "slapped" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "finger" msgstr "finger" -#: src/Core/L10n.php:414 +#: src/Core/L10n.php:417 msgid "fingered" msgstr "fingered" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuff" msgstr "rebuff" -#: src/Core/L10n.php:415 +#: src/Core/L10n.php:418 msgid "rebuffed" msgstr "rebuffed" -#: src/Core/NotificationsManager.php:175 +#: src/Core/NotificationsManager.php:144 msgid "System" msgstr "System" -#: src/Core/NotificationsManager.php:265 src/Core/NotificationsManager.php:277 +#: src/Core/NotificationsManager.php:234 src/Core/NotificationsManager.php:246 #, php-format msgid "%s commented on %s's post" msgstr "%s commented on %s's post" -#: src/Core/NotificationsManager.php:276 +#: src/Core/NotificationsManager.php:245 #, php-format msgid "%s created a new post" msgstr "%s posted something new" -#: src/Core/NotificationsManager.php:290 +#: src/Core/NotificationsManager.php:259 #, php-format msgid "%s liked %s's post" msgstr "%s liked %s's post" -#: src/Core/NotificationsManager.php:303 +#: src/Core/NotificationsManager.php:272 #, php-format msgid "%s disliked %s's post" msgstr "%s disliked %s's post" -#: src/Core/NotificationsManager.php:316 +#: src/Core/NotificationsManager.php:285 #, php-format msgid "%s is attending %s's event" msgstr "%s is going to %s's event" -#: src/Core/NotificationsManager.php:329 +#: src/Core/NotificationsManager.php:298 #, php-format msgid "%s is not attending %s's event" msgstr "%s is not going to %s's event" -#: src/Core/NotificationsManager.php:342 +#: src/Core/NotificationsManager.php:311 #, php-format msgid "%s may attend %s's event" msgstr "%s may go to %s's event" -#: src/Core/NotificationsManager.php:375 +#: src/Core/NotificationsManager.php:344 #, php-format msgid "%s is now friends with %s" msgstr "%s is now friends with %s" -#: src/Core/NotificationsManager.php:651 +#: src/Core/NotificationsManager.php:622 msgid "Friend Suggestion" msgstr "Friend suggestion" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "Friend/Connect Request" msgstr "Friend/Contact request" -#: src/Core/NotificationsManager.php:685 +#: src/Core/NotificationsManager.php:656 msgid "New Follower" msgstr "New follower" -#: src/Core/System.php:137 -msgid "Error 400 - Bad Request" -msgstr "Error 400 - Bad Request" +#: src/Core/Session.php:194 +#, php-format +msgid "Welcome %s" +msgstr "Welcome %s" -#: src/Core/System.php:138 -msgid "Error 401 - Unauthorized" -msgstr "Error 401 - Unauthorized" +#: src/Core/Session.php:195 +msgid "Please upload a profile photo." +msgstr "Please upload a profile photo." -#: src/Core/System.php:139 -msgid "Error 403 - Forbidden" -msgstr "Error 403 - Forbidden" +#: src/Core/Session.php:198 +#, php-format +msgid "Welcome back %s" +msgstr "Welcome back %s" -#: src/Core/System.php:140 -msgid "Error 404 - Not Found" -msgstr "Error 404 - Not Found" - -#: src/Core/System.php:141 -msgid "Error 500 - Internal Server Error" -msgstr "Error 500 - Internal Server Error" - -#: src/Core/System.php:142 -msgid "Error 503 - Service Unavailable" -msgstr "Error 503 - Service Unavailable" - -#: src/Core/System.php:150 -msgid "" -"The server cannot or will not process the request due to an apparent client " -"error." -msgstr "The server cannot process the request due to an apparent client error." - -#: src/Core/System.php:151 -msgid "" -"Authentication is required and has failed or has not yet been provided." -msgstr "Authentication is required but has failed or not yet being provided." - -#: src/Core/System.php:152 -msgid "" -"The request was valid, but the server is refusing action. The user might not" -" have the necessary permissions for a resource, or may need an account." -msgstr "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account." - -#: src/Core/System.php:153 -msgid "" -"The requested resource could not be found but may be available in the " -"future." -msgstr "The requested resource could not be found but may be available in the future." - -#: src/Core/System.php:154 -msgid "" -"An unexpected condition was encountered and no more specific message is " -"suitable." -msgstr "An unexpected condition was encountered and no more specific message is available." - -#: src/Core/System.php:155 -msgid "" -"The server is currently unavailable (because it is overloaded or down for " -"maintenance). Please try again later." -msgstr "The server is currently unavailable (possibly because it is overloaded or down for maintenance). Please try again later." - -#: src/Core/Update.php:168 +#: src/Core/Update.php:193 #, php-format msgid "Update %s failed. See error logs." msgstr "Update %s failed. See error logs." -#: src/Core/Update.php:225 +#: src/Core/Update.php:257 #, php-format msgid "" "\n" @@ -8145,49 +5877,53 @@ msgid "" "\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." msgstr "\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid." -#: src/Core/Update.php:231 +#: src/Core/Update.php:263 #, php-format msgid "" "The error message is\n" "[pre]%s[/pre]" msgstr "The error message is\n[pre]%s[/pre]" -#: src/Core/Update.php:260 +#: src/Core/Update.php:269 src/Core/Update.php:308 +msgid "[Friendica Notify] Database update" +msgstr "[Friendica Notify] Database update" + +#: src/Core/Update.php:300 #, php-format msgid "" "\n" "\t\t\t\t\tThe friendica database was successfully updated from %s to %s." msgstr "\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s." -#: src/Core/UserImport.php:103 +#: src/Core/UserImport.php:99 msgid "Error decoding account file" msgstr "Error decoding account file" -#: src/Core/UserImport.php:109 +#: src/Core/UserImport.php:105 msgid "Error! No version data in file! This is not a Friendica account file?" msgstr "Error! No version data in file! Is this a Friendica account file?" -#: src/Core/UserImport.php:117 +#: src/Core/UserImport.php:113 #, php-format msgid "User '%s' already exists on this server!" msgstr "User '%s' already exists on this server!" -#: src/Core/UserImport.php:153 +#: src/Core/UserImport.php:149 msgid "User creation error" msgstr "User creation error" -#: src/Core/UserImport.php:171 +#: src/Core/UserImport.php:167 msgid "User profile creation error" msgstr "User profile creation error" -#: src/Core/UserImport.php:215 +#: src/Core/UserImport.php:211 #, php-format msgid "%d contact not imported" msgid_plural "%d contacts not imported" msgstr[0] "%d contact not imported" msgstr[1] "%d contacts not imported" -#: src/Core/UserImport.php:280 +#: src/Core/UserImport.php:276 msgid "Done. You can now login with your username and password" msgstr "Done. You can now login with your username and password" @@ -8222,79 +5958,83 @@ msgstr "%s: updating %s table." msgid "Legacy module file not found: %s" msgstr "Legacy module file not found: %s" -#: src/Model/Contact.php:1054 +#: src/Model/Contact.php:1116 msgid "Drop Contact" msgstr "Drop contact" -#: src/Model/Contact.php:1526 +#: src/Model/Contact.php:1651 msgid "Organisation" msgstr "Organization" -#: src/Model/Contact.php:1530 +#: src/Model/Contact.php:1655 msgid "News" msgstr "News" -#: src/Model/Contact.php:1534 +#: src/Model/Contact.php:1659 msgid "Forum" msgstr "Forum" -#: src/Model/Contact.php:1724 +#: src/Model/Contact.php:1888 msgid "Connect URL missing." msgstr "Connect URL missing." -#: src/Model/Contact.php:1733 +#: src/Model/Contact.php:1897 msgid "" "The contact could not be added. Please check the relevant network " "credentials in your Settings -> Social Networks page." msgstr "The contact could not be added. Please check the relevant network credentials in your Settings -> Social Networks page." -#: src/Model/Contact.php:1772 +#: src/Model/Contact.php:1938 msgid "" "This site is not configured to allow communications with other networks." msgstr "This site is not configured to allow communications with other networks." -#: src/Model/Contact.php:1773 src/Model/Contact.php:1786 +#: src/Model/Contact.php:1939 src/Model/Contact.php:1952 msgid "No compatible communication protocols or feeds were discovered." msgstr "No compatible communication protocols or feeds were discovered." -#: src/Model/Contact.php:1784 +#: src/Model/Contact.php:1950 msgid "The profile address specified does not provide adequate information." msgstr "The profile address specified does not provide adequate information." -#: src/Model/Contact.php:1789 +#: src/Model/Contact.php:1955 msgid "An author or name was not found." msgstr "An author or name was not found." -#: src/Model/Contact.php:1792 +#: src/Model/Contact.php:1958 msgid "No browser URL could be matched to this address." msgstr "No browser URL could be matched to this address." -#: src/Model/Contact.php:1795 +#: src/Model/Contact.php:1961 msgid "" "Unable to match @-style Identity Address with a known protocol or email " "contact." msgstr "Unable to match @-style identity address with a known protocol or email contact." -#: src/Model/Contact.php:1796 +#: src/Model/Contact.php:1962 msgid "Use mailto: in front of address to force email check." msgstr "Use mailto: in front of address to force email check." -#: src/Model/Contact.php:1802 +#: src/Model/Contact.php:1968 msgid "" "The profile address specified belongs to a network which has been disabled " "on this site." msgstr "The profile address specified belongs to a network which has been disabled on this site." -#: src/Model/Contact.php:1807 +#: src/Model/Contact.php:1973 msgid "" "Limited profile. This person will be unable to receive direct/personal " "notifications from you." msgstr "Limited profile: This person will be unable to receive direct/private messages from you." -#: src/Model/Contact.php:1860 +#: src/Model/Contact.php:2027 msgid "Unable to retrieve contact information." msgstr "Unable to retrieve contact information." +#: src/Model/Event.php:34 src/Model/Event.php:847 src/Module/Localtime.php:17 +msgid "l F d, Y \\@ g:i A" +msgstr "l F d, Y \\@ g:i A" + #: src/Model/Event.php:61 src/Model/Event.php:78 src/Model/Event.php:435 #: src/Model/Event.php:915 msgid "Starts:" @@ -8337,7 +6077,7 @@ msgstr "Duplicate event" msgid "Delete event" msgstr "Delete event" -#: src/Model/Event.php:626 src/Model/Item.php:3554 src/Model/Item.php:3561 +#: src/Model/Event.php:626 src/Model/Item.php:3522 src/Model/Item.php:3529 msgid "link to source" msgstr "Link to source" @@ -8371,211 +6111,222 @@ msgstr "Happy Birthday, %s!" msgid "Item filed" msgstr "Item filed" -#: src/Model/Group.php:43 +#: src/Model/Group.php:63 msgid "" "A deleted group with this name was revived. Existing item permissions " "may apply to this group and any future members. If this is " "not what you intended, please create another group with a different name." msgstr "A deleted group with this name has been revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name." -#: src/Model/Group.php:338 +#: src/Model/Group.php:358 msgid "Default privacy group for new contacts" msgstr "Default privacy group for new contacts" -#: src/Model/Group.php:370 +#: src/Model/Group.php:390 msgid "Everybody" msgstr "Everybody" -#: src/Model/Group.php:390 +#: src/Model/Group.php:410 msgid "edit" msgstr "edit" -#: src/Model/Group.php:419 +#: src/Model/Group.php:439 msgid "Edit group" msgstr "Edit group" -#: src/Model/Group.php:422 +#: src/Model/Group.php:440 src/Module/Group.php:186 +msgid "Contacts not in any group" +msgstr "Contacts not in any group" + +#: src/Model/Group.php:442 msgid "Create a new group" msgstr "Create new group" -#: src/Model/Group.php:424 +#: src/Model/Group.php:443 src/Module/Group.php:171 src/Module/Group.php:194 +#: src/Module/Group.php:271 +msgid "Group Name: " +msgstr "Group name: " + +#: src/Model/Group.php:444 msgid "Edit groups" msgstr "Edit groups" -#: src/Model/Item.php:3287 +#: src/Model/Item.php:3257 msgid "activity" msgstr "activity" -#: src/Model/Item.php:3289 src/Object/Post.php:470 +#: src/Model/Item.php:3259 src/Object/Post.php:472 msgid "comment" msgid_plural "comments" msgstr[0] "comment" msgstr[1] "comments" -#: src/Model/Item.php:3292 +#: src/Model/Item.php:3262 msgid "post" msgstr "post" -#: src/Model/Item.php:3391 +#: src/Model/Item.php:3361 #, php-format msgid "Content warning: %s" msgstr "Content warning: %s" -#: src/Model/Item.php:3470 +#: src/Model/Item.php:3438 msgid "bytes" msgstr "bytes" -#: src/Model/Item.php:3548 +#: src/Model/Item.php:3516 msgid "View on separate page" msgstr "View on separate page" -#: src/Model/Item.php:3549 +#: src/Model/Item.php:3517 msgid "view on separate page" msgstr "view on separate page" -#: src/Model/Mail.php:40 src/Model/Mail.php:175 +#: src/Model/Mail.php:109 src/Model/Mail.php:244 msgid "[no subject]" msgstr "[no subject]" -#: src/Model/Profile.php:115 -msgid "Requested account is not available." -msgstr "Requested account is unavailable." - -#: src/Model/Profile.php:133 -msgid "Requested profile is not available." -msgstr "Requested profile is unavailable." - -#: src/Model/Profile.php:181 src/Model/Profile.php:425 -#: src/Model/Profile.php:872 +#: src/Model/Profile.php:177 src/Model/Profile.php:421 +#: src/Model/Profile.php:866 msgid "Edit profile" msgstr "Edit profile" -#: src/Model/Profile.php:359 +#: src/Model/Profile.php:355 msgid "Atom feed" msgstr "Atom feed" -#: src/Model/Profile.php:398 +#: src/Model/Profile.php:394 msgid "Manage/edit profiles" msgstr "Manage/Edit profiles" -#: src/Model/Profile.php:450 src/Module/Contact.php:645 +#: src/Model/Profile.php:443 src/Model/Profile.php:776 +#: src/Module/Directory.php:148 +msgid "Status:" +msgstr "Status:" + +#: src/Model/Profile.php:444 src/Model/Profile.php:793 +#: src/Module/Directory.php:149 +msgid "Homepage:" +msgstr "Homepage:" + +#: src/Model/Profile.php:446 src/Module/Contact.php:648 msgid "XMPP:" msgstr "XMPP:" -#: src/Model/Profile.php:573 src/Model/Profile.php:671 +#: src/Model/Profile.php:569 src/Model/Profile.php:666 msgid "g A l F d" msgstr "g A l F d" -#: src/Model/Profile.php:574 +#: src/Model/Profile.php:570 msgid "F d" msgstr "F d" -#: src/Model/Profile.php:636 src/Model/Profile.php:722 +#: src/Model/Profile.php:632 src/Model/Profile.php:717 msgid "[today]" msgstr "[today]" -#: src/Model/Profile.php:647 +#: src/Model/Profile.php:642 msgid "Birthday Reminders" msgstr "Birthday reminders" -#: src/Model/Profile.php:648 +#: src/Model/Profile.php:643 msgid "Birthdays this week:" msgstr "Birthdays this week:" -#: src/Model/Profile.php:709 +#: src/Model/Profile.php:704 msgid "[No description]" msgstr "[No description]" -#: src/Model/Profile.php:736 +#: src/Model/Profile.php:730 msgid "Event Reminders" msgstr "Event reminders" -#: src/Model/Profile.php:737 +#: src/Model/Profile.php:731 msgid "Upcoming events the next 7 days:" msgstr "Upcoming events the next 7 days:" -#: src/Model/Profile.php:754 +#: src/Model/Profile.php:748 msgid "Member since:" msgstr "Member since:" -#: src/Model/Profile.php:762 +#: src/Model/Profile.php:756 msgid "j F, Y" msgstr "j F, Y" -#: src/Model/Profile.php:763 +#: src/Model/Profile.php:757 msgid "j F" msgstr "j F" -#: src/Model/Profile.php:771 src/Util/Temporal.php:147 +#: src/Model/Profile.php:765 src/Util/Temporal.php:147 msgid "Birthday:" msgstr "Birthday:" -#: src/Model/Profile.php:778 +#: src/Model/Profile.php:772 msgid "Age:" msgstr "Age:" -#: src/Model/Profile.php:791 +#: src/Model/Profile.php:785 #, php-format msgid "for %1$d %2$s" msgstr "for %1$d %2$s" -#: src/Model/Profile.php:815 +#: src/Model/Profile.php:809 msgid "Religion:" msgstr "Religion:" -#: src/Model/Profile.php:823 +#: src/Model/Profile.php:817 msgid "Hobbies/Interests:" msgstr "Hobbies/Interests:" -#: src/Model/Profile.php:835 +#: src/Model/Profile.php:829 msgid "Contact information and Social Networks:" msgstr "Contact information and social networks:" -#: src/Model/Profile.php:839 +#: src/Model/Profile.php:833 msgid "Musical interests:" msgstr "Music:" -#: src/Model/Profile.php:843 +#: src/Model/Profile.php:837 msgid "Books, literature:" msgstr "Books/Literature:" -#: src/Model/Profile.php:847 +#: src/Model/Profile.php:841 msgid "Television:" msgstr "Television:" -#: src/Model/Profile.php:851 +#: src/Model/Profile.php:845 msgid "Film/dance/culture/entertainment:" msgstr "Arts, culture, entertainment:" -#: src/Model/Profile.php:855 +#: src/Model/Profile.php:849 msgid "Love/Romance:" msgstr "Love/Romance:" -#: src/Model/Profile.php:859 +#: src/Model/Profile.php:853 msgid "Work/employment:" msgstr "Work/Employment:" -#: src/Model/Profile.php:863 +#: src/Model/Profile.php:857 msgid "School/education:" msgstr "School/Education:" -#: src/Model/Profile.php:868 +#: src/Model/Profile.php:862 msgid "Forums:" msgstr "Forums:" -#: src/Model/Profile.php:912 src/Module/Contact.php:872 +#: src/Model/Profile.php:906 src/Module/Contact.php:875 msgid "Profile Details" msgstr "Profile Details" -#: src/Model/Profile.php:962 +#: src/Model/Profile.php:956 msgid "Only You Can See This" msgstr "Only you can see this." -#: src/Model/Profile.php:970 src/Model/Profile.php:973 +#: src/Model/Profile.php:964 src/Model/Profile.php:967 msgid "Tips for New Members" msgstr "Tips for New Members" -#: src/Model/Profile.php:1150 +#: src/Model/Profile.php:1167 #, php-format msgid "OpenWebAuth: %1$s welcomes %2$s" msgstr "OpenWebAuth: %1$s welcomes %2$s" @@ -8615,138 +6366,138 @@ msgstr "Folder where uploaded files are saved. For maximum security, this should msgid "Enter a valid existing folder" msgstr "Enter a valid existing folder" -#: src/Model/User.php:271 +#: src/Model/User.php:298 msgid "Login failed" msgstr "Login failed" -#: src/Model/User.php:302 +#: src/Model/User.php:329 msgid "Not enough information to authenticate" msgstr "Not enough information to authenticate" -#: src/Model/User.php:380 +#: src/Model/User.php:407 msgid "Password can't be empty" msgstr "Password can't be empty" -#: src/Model/User.php:399 +#: src/Model/User.php:426 msgid "Empty passwords are not allowed." msgstr "Empty passwords are not allowed." -#: src/Model/User.php:403 +#: src/Model/User.php:430 msgid "" "The new password has been exposed in a public data dump, please choose " "another." msgstr "The new password has been exposed in a public data dump; please choose another." -#: src/Model/User.php:409 +#: src/Model/User.php:436 msgid "" "The password can't contain accentuated letters, white spaces or colons (:)" msgstr "The password can't contain accentuated letters, white spaces or colons (:)" -#: src/Model/User.php:509 +#: src/Model/User.php:536 msgid "Passwords do not match. Password unchanged." msgstr "Passwords do not match. Password unchanged." -#: src/Model/User.php:516 +#: src/Model/User.php:543 msgid "An invitation is required." msgstr "An invitation is required." -#: src/Model/User.php:520 +#: src/Model/User.php:547 msgid "Invitation could not be verified." msgstr "Invitation could not be verified." -#: src/Model/User.php:527 +#: src/Model/User.php:554 msgid "Invalid OpenID url" msgstr "Invalid OpenID URL" -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "" "We encountered a problem while logging in with the OpenID you provided. " "Please check the correct spelling of the ID." msgstr "We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID." -#: src/Model/User.php:540 src/Module/Login.php:106 +#: src/Model/User.php:567 src/Module/Login.php:107 msgid "The error message was:" msgstr "The error message was:" -#: src/Model/User.php:546 +#: src/Model/User.php:573 msgid "Please enter the required information." msgstr "Please enter the required information." -#: src/Model/User.php:560 +#: src/Model/User.php:587 #, php-format msgid "" "system.username_min_length (%s) and system.username_max_length (%s) are " "excluding each other, swapping values." msgstr "system.username_min_length (%s) and system.username_max_length (%s) are excluding each other, swapping values." -#: src/Model/User.php:567 +#: src/Model/User.php:594 #, php-format msgid "Username should be at least %s character." msgid_plural "Username should be at least %s characters." msgstr[0] "Username should be at least %s character." msgstr[1] "Username should be at least %s characters." -#: src/Model/User.php:571 +#: src/Model/User.php:598 #, php-format msgid "Username should be at most %s character." msgid_plural "Username should be at most %s characters." msgstr[0] "Username should be at most %s character." msgstr[1] "Username should be at most %s characters." -#: src/Model/User.php:579 +#: src/Model/User.php:606 msgid "That doesn't appear to be your full (First Last) name." msgstr "That doesn't appear to be your full (i.e first and last) name." -#: src/Model/User.php:584 +#: src/Model/User.php:611 msgid "Your email domain is not among those allowed on this site." msgstr "Your email domain is not allowed on this site." -#: src/Model/User.php:588 +#: src/Model/User.php:615 msgid "Not a valid email address." msgstr "Not a valid email address." -#: src/Model/User.php:591 +#: src/Model/User.php:618 msgid "The nickname was blocked from registration by the nodes admin." msgstr "The nickname was blocked from registration by the nodes admin." -#: src/Model/User.php:595 src/Model/User.php:603 +#: src/Model/User.php:622 src/Model/User.php:630 msgid "Cannot use that email." msgstr "Cannot use that email." -#: src/Model/User.php:610 +#: src/Model/User.php:637 msgid "Your nickname can only contain a-z, 0-9 and _." msgstr "Your nickname can only contain a-z, 0-9 and _." -#: src/Model/User.php:617 src/Model/User.php:674 +#: src/Model/User.php:644 src/Model/User.php:701 msgid "Nickname is already registered. Please choose another." msgstr "Nickname is already registered. Please choose another." -#: src/Model/User.php:627 +#: src/Model/User.php:654 msgid "SERIOUS ERROR: Generation of security keys failed." msgstr "SERIOUS ERROR: Generation of security keys failed." -#: src/Model/User.php:661 src/Model/User.php:665 +#: src/Model/User.php:688 src/Model/User.php:692 msgid "An error occurred during registration. Please try again." msgstr "An error occurred during registration. Please try again." -#: src/Model/User.php:685 view/theme/duepuntozero/config.php:55 +#: src/Model/User.php:712 view/theme/duepuntozero/config.php:55 msgid "default" msgstr "default" -#: src/Model/User.php:690 +#: src/Model/User.php:717 msgid "An error occurred creating your default profile. Please try again." msgstr "An error occurred creating your default profile. Please try again." -#: src/Model/User.php:697 +#: src/Model/User.php:724 msgid "An error occurred creating your self contact. Please try again." msgstr "An error occurred creating your self contact. Please try again." -#: src/Model/User.php:706 +#: src/Model/User.php:733 msgid "" "An error occurred creating your default contact group. Please try again." msgstr "An error occurred while creating your default contact group. Please try again." -#: src/Model/User.php:782 +#: src/Model/User.php:809 #, php-format msgid "" "\n" @@ -8761,12 +6512,12 @@ msgid "" "\t\t" msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThank you for registering at %2$s. Your account is pending for approval by the administrator.\n\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%3$s\n\t\t\tLogin Name:\t\t%4$s\n\t\t\tPassword:\t\t%5$s\n\t\t" -#: src/Model/User.php:799 +#: src/Model/User.php:826 #, php-format msgid "Registration at %s" msgstr "Registration at %s" -#: src/Model/User.php:818 +#: src/Model/User.php:845 #, php-format msgid "" "\n" @@ -8775,7 +6526,7 @@ msgid "" "\t\t" msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThank you for registering at %2$s. Your account has been created.\n\t\t" -#: src/Model/User.php:824 +#: src/Model/User.php:851 #, php-format msgid "" "\n" @@ -8807,10 +6558,2044 @@ msgid "" "\t\t\tThank you and welcome to %2$s." msgstr "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3$s\n\t\t\tLogin Name:\t\t%1$s\n\t\t\tPassword:\t\t%5$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3$s/removeme\n\n\t\t\tThank you and welcome to %2$s." +#: src/Model/User.php:886 src/Module/Admin/Users.php:88 +#, php-format +msgid "Registration details for %s" +msgstr "Registration details for %s" + +#: src/Module/Admin/Addons/Details.php:51 +msgid "Addon not found." +msgstr "Addon not found." + +#: src/Module/Admin/Addons/Details.php:62 src/Module/Admin/Addons/Index.php:32 +#, php-format +msgid "Addon %s disabled." +msgstr "Addon %s disabled." + +#: src/Module/Admin/Addons/Details.php:65 src/Module/Admin/Addons/Index.php:34 +#, php-format +msgid "Addon %s enabled." +msgstr "Addon %s enabled." + +#: src/Module/Admin/Addons/Details.php:76 +#: src/Module/Admin/Themes/Details.php:60 +msgid "Disable" +msgstr "Disable" + +#: src/Module/Admin/Addons/Details.php:79 +#: src/Module/Admin/Themes/Details.php:63 +msgid "Enable" +msgstr "Enable" + +#: src/Module/Admin/Addons/Details.php:99 src/Module/Admin/Addons/Index.php:50 +#: src/Module/Admin/Blocklist/Contact.php:60 +#: src/Module/Admin/Blocklist/Server.php:73 +#: src/Module/Admin/Federation.php:185 src/Module/Admin/Item/Delete.php:46 +#: src/Module/Admin/Logs/Settings.php:57 src/Module/Admin/Logs/View.php:46 +#: src/Module/Admin/Queue.php:56 src/Module/Admin/Site.php:568 +#: src/Module/Admin/Summary.php:160 src/Module/Admin/Themes/Details.php:104 +#: src/Module/Admin/Themes/Index.php:93 src/Module/Admin/Tos.php:42 +#: src/Module/Admin/Users.php:277 +msgid "Administration" +msgstr "Administration" + +#: src/Module/Admin/Addons/Details.php:101 +#: src/Module/Admin/Themes/Details.php:106 +msgid "Toggle" +msgstr "Toggle" + +#: src/Module/Admin/Addons/Details.php:109 +#: src/Module/Admin/Themes/Details.php:115 +msgid "Author: " +msgstr "Author: " + +#: src/Module/Admin/Addons/Details.php:110 +#: src/Module/Admin/Themes/Details.php:116 +msgid "Maintainer: " +msgstr "Maintainer: " + +#: src/Module/Admin/Addons/Index.php:36 +#, php-format +msgid "Addon %s failed to install." +msgstr "Addon %s failed to install." + +#: src/Module/Admin/Addons/Index.php:53 +msgid "Reload active addons" +msgstr "Reload active addons" + +#: src/Module/Admin/Addons/Index.php:58 +#, php-format +msgid "" +"There are currently no addons available on your node. You can find the " +"official addon repository at %1$s and might find other interesting addons in" +" the open addon registry at %2$s" +msgstr "There are currently no addons available on your node. You can find the official addon repository at %1$s and might find other interesting addons in the open addon registry at %2$s" + +#: src/Module/Admin/Blocklist/Contact.php:37 +#, php-format +msgid "%s contact unblocked" +msgid_plural "%s contacts unblocked" +msgstr[0] "%s contact unblocked" +msgstr[1] "%s contacts unblocked" + +#: src/Module/Admin/Blocklist/Contact.php:61 +msgid "Remote Contact Blocklist" +msgstr "Remote contact blocklist" + +#: src/Module/Admin/Blocklist/Contact.php:62 +msgid "" +"This page allows you to prevent any message from a remote contact to reach " +"your node." +msgstr "This page allows you to prevent any message from a remote contact to reach your node." + +#: src/Module/Admin/Blocklist/Contact.php:63 +msgid "Block Remote Contact" +msgstr "Block remote contact" + +#: src/Module/Admin/Blocklist/Contact.php:64 src/Module/Admin/Users.php:280 +msgid "select all" +msgstr "select all" + +#: src/Module/Admin/Blocklist/Contact.php:65 +msgid "select none" +msgstr "select none" + +#: src/Module/Admin/Blocklist/Contact.php:67 src/Module/Admin/Users.php:291 +#: src/Module/Contact.php:624 src/Module/Contact.php:827 +#: src/Module/Contact.php:1080 +msgid "Unblock" +msgstr "Unblock" + +#: src/Module/Admin/Blocklist/Contact.php:68 +msgid "No remote contact is blocked from this node." +msgstr "No remote contact is blocked from this node." + +#: src/Module/Admin/Blocklist/Contact.php:70 +msgid "Blocked Remote Contacts" +msgstr "Blocked remote contacts" + +#: src/Module/Admin/Blocklist/Contact.php:71 +msgid "Block New Remote Contact" +msgstr "Block new remote contact" + +#: src/Module/Admin/Blocklist/Contact.php:72 +msgid "Photo" +msgstr "Photo" + +#: src/Module/Admin/Blocklist/Contact.php:80 +#, php-format +msgid "%s total blocked contact" +msgid_plural "%s total blocked contacts" +msgstr[0] "%s total blocked contact" +msgstr[1] "%s blocked contacts" + +#: src/Module/Admin/Blocklist/Contact.php:82 +msgid "URL of the remote contact to block." +msgstr "URL of the remote contact to block." + +#: src/Module/Admin/Blocklist/Server.php:31 +msgid "Server added to blocklist." +msgstr "Server added to blocklist." + +#: src/Module/Admin/Blocklist/Server.php:47 +msgid "Site blocklist updated." +msgstr "Site blocklist updated." + +#: src/Module/Admin/Blocklist/Server.php:64 +msgid "The blocked domain" +msgstr "Blocked domain" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:84 src/Module/Friendica.php:60 +msgid "Reason for the block" +msgstr "Reason for the block" + +#: src/Module/Admin/Blocklist/Server.php:65 +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "The reason why you blocked this domain." +msgstr "Reason why you blocked this domain." + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Delete domain" +msgstr "Delete domain" + +#: src/Module/Admin/Blocklist/Server.php:66 +msgid "Check to delete this entry from the blocklist" +msgstr "Check to delete this entry from the blocklist" + +#: src/Module/Admin/Blocklist/Server.php:74 src/Module/BaseAdminModule.php:94 +msgid "Server Blocklist" +msgstr "Server blocklist" + +#: src/Module/Admin/Blocklist/Server.php:75 +msgid "" +"This page can be used to define a black list of servers from the federated " +"network that are not allowed to interact with your node. For all entered " +"domains you should also give a reason why you have blocked the remote " +"server." +msgstr "This page can be used to define a blacklist of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server." + +#: src/Module/Admin/Blocklist/Server.php:76 +msgid "" +"The list of blocked servers will be made publically available on the " +"/friendica page so that your users and people investigating communication " +"problems can find the reason easily." +msgstr "The list of blocked servers will be available publicly on the Friendica page so that your users and people investigating communication problems can find the reason." + +#: src/Module/Admin/Blocklist/Server.php:77 +msgid "Add new entry to block list" +msgstr "Add new entry to block list" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "Server Domain" +msgstr "Server domain" + +#: src/Module/Admin/Blocklist/Server.php:78 +msgid "" +"The domain of the new server to add to the block list. Do not include the " +"protocol." +msgstr "The domain of the new server to add to the block list. Do not include the protocol." + +#: src/Module/Admin/Blocklist/Server.php:79 +msgid "Block reason" +msgstr "Block reason" + +#: src/Module/Admin/Blocklist/Server.php:80 +msgid "Add Entry" +msgstr "Add entry" + +#: src/Module/Admin/Blocklist/Server.php:81 +msgid "Save changes to the blocklist" +msgstr "Save changes to the blocklist" + +#: src/Module/Admin/Blocklist/Server.php:82 +msgid "Current Entries in the Blocklist" +msgstr "Current entries in the blocklist" + +#: src/Module/Admin/Blocklist/Server.php:85 +msgid "Delete entry from blocklist" +msgstr "Delete entry from blocklist" + +#: src/Module/Admin/Blocklist/Server.php:88 +msgid "Delete entry from blocklist?" +msgstr "Delete entry from blocklist?" + +#: src/Module/Admin/DBSync.php:32 +msgid "Update has been marked successful" +msgstr "Update has been marked successful" + +#: src/Module/Admin/DBSync.php:42 +#, php-format +msgid "Database structure update %s was successfully applied." +msgstr "Database structure update %s was successfully applied." + +#: src/Module/Admin/DBSync.php:46 +#, php-format +msgid "Executing of database structure update %s failed with error: %s" +msgstr "Execution of database structure update %s failed with error: %s" + +#: src/Module/Admin/DBSync.php:63 +#, php-format +msgid "Executing %s failed with error: %s" +msgstr "Execution of %s failed with error: %s" + +#: src/Module/Admin/DBSync.php:65 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Update %s was successfully applied." + +#: src/Module/Admin/DBSync.php:68 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Update %s did not return a status. Unknown if it succeeded." + +#: src/Module/Admin/DBSync.php:71 +#, php-format +msgid "There was no additional update function %s that needed to be called." +msgstr "There was no additional update function %s that needed to be called." + +#: src/Module/Admin/DBSync.php:91 +msgid "No failed updates." +msgstr "No failed updates." + +#: src/Module/Admin/DBSync.php:92 +msgid "Check database structure" +msgstr "Check database structure" + +#: src/Module/Admin/DBSync.php:97 +msgid "Failed Updates" +msgstr "Failed updates" + +#: src/Module/Admin/DBSync.php:98 +msgid "" +"This does not include updates prior to 1139, which did not return a status." +msgstr "This does not include updates prior to 1139, which did not return a status." + +#: src/Module/Admin/DBSync.php:99 +msgid "Mark success (if update was manually applied)" +msgstr "Mark success (if update was manually applied)" + +#: src/Module/Admin/DBSync.php:100 +msgid "Attempt to execute this update step automatically" +msgstr "Attempt to execute this update step automatically" + +#: src/Module/Admin/Features.php:59 +#, php-format +msgid "Lock feature %s" +msgstr "Lock feature %s" + +#: src/Module/Admin/Features.php:67 +msgid "Manage Additional Features" +msgstr "Manage additional features" + +#: src/Module/Admin/Federation.php:76 +msgid "unknown" +msgstr "unknown" + +#: src/Module/Admin/Federation.php:179 +msgid "" +"This page offers you some numbers to the known part of the federated social " +"network your Friendica node is part of. These numbers are not complete but " +"only reflect the part of the network your node is aware of." +msgstr "This page offers statistics about the federated social network, of which your Friendica node is one part. These numbers do not represent the entire network, but merely the parts that are connected to your node.\"" + +#: src/Module/Admin/Federation.php:180 +msgid "" +"The Auto Discovered Contact Directory feature is not enabled, it " +"will improve the data displayed here." +msgstr "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here." + +#: src/Module/Admin/Federation.php:186 src/Module/BaseAdminModule.php:77 +msgid "Federation Statistics" +msgstr "Federation statistics" + +#: src/Module/Admin/Federation.php:192 +#, php-format +msgid "" +"Currently this node is aware of %d nodes with %d registered users from the " +"following platforms:" +msgstr "Currently, this node is aware of %d nodes with %d registered users from the following platforms:" + +#: src/Module/Admin/Item/Delete.php:35 +msgid "Item marked for deletion." +msgstr "Item marked for deletion." + +#: src/Module/Admin/Item/Delete.php:47 src/Module/BaseAdminModule.php:95 +msgid "Delete Item" +msgstr "Delete item" + +#: src/Module/Admin/Item/Delete.php:48 +msgid "Delete this Item" +msgstr "Delete" + +#: src/Module/Admin/Item/Delete.php:49 +msgid "" +"On this page you can delete an item from your node. If the item is a top " +"level posting, the entire thread will be deleted." +msgstr "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted." + +#: src/Module/Admin/Item/Delete.php:50 +msgid "" +"You need to know the GUID of the item. You can find it e.g. by looking at " +"the display URL. The last part of http://example.com/display/123456 is the " +"GUID, here 123456." +msgstr "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456." + +#: src/Module/Admin/Item/Delete.php:51 +msgid "GUID" +msgstr "GUID" + +#: src/Module/Admin/Item/Delete.php:51 +msgid "The GUID of the item you want to delete." +msgstr "GUID of item to be deleted." + +#: src/Module/Admin/Item/Source.php:46 src/Module/Itemsource.php:46 +msgid "Item Guid" +msgstr "Item Guid" + +#: src/Module/Admin/Logs/Settings.php:30 +msgid "Log settings updated." +msgstr "Log settings updated." + +#: src/Module/Admin/Logs/Settings.php:49 +msgid "PHP log currently enabled." +msgstr "PHP log currently enabled." + +#: src/Module/Admin/Logs/Settings.php:51 +msgid "PHP log currently disabled." +msgstr "PHP log currently disabled." + +#: src/Module/Admin/Logs/Settings.php:58 src/Module/BaseAdminModule.php:97 +#: src/Module/BaseAdminModule.php:98 +msgid "Logs" +msgstr "Logs" + +#: src/Module/Admin/Logs/Settings.php:60 +msgid "Clear" +msgstr "Clear" + +#: src/Module/Admin/Logs/Settings.php:64 +msgid "Enable Debugging" +msgstr "Enable debugging" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "Log file" +msgstr "Log file" + +#: src/Module/Admin/Logs/Settings.php:65 +msgid "" +"Must be writable by web server. Relative to your Friendica top-level " +"directory." +msgstr "Must be writable by web server and relative to your Friendica top-level directory." + +#: src/Module/Admin/Logs/Settings.php:66 +msgid "Log level" +msgstr "Log level" + +#: src/Module/Admin/Logs/Settings.php:68 +msgid "PHP logging" +msgstr "PHP logging" + +#: src/Module/Admin/Logs/Settings.php:69 +msgid "" +"To temporarily enable logging of PHP errors and warnings you can prepend the" +" following to the index.php file of your installation. The filename set in " +"the 'error_log' line is relative to the friendica top-level directory and " +"must be writeable by the web server. The option '1' for 'log_errors' and " +"'display_errors' is to enable these options, set to '0' to disable them." +msgstr "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them." + +#: src/Module/Admin/Logs/View.php:22 +#, php-format +msgid "" +"Error trying to open %1$s log file.\\r\\n
    Check to see " +"if file %1$s exist and is readable." +msgstr "Error trying to open %1$s log file.\\r\\n
    Check to see if file %1$s exist and is readable." + +#: src/Module/Admin/Logs/View.php:26 +#, php-format +msgid "" +"Couldn't open %1$s log file.\\r\\n
    Check to see if file" +" %1$s is readable." +msgstr "Couldn't open %1$s log file.\\r\\n
    Check if file %1$s is readable." + +#: src/Module/Admin/Logs/View.php:47 src/Module/BaseAdminModule.php:99 +msgid "View Logs" +msgstr "View logs" + +#: src/Module/Admin/Queue.php:34 +msgid "Inspect Deferred Worker Queue" +msgstr "Inspect deferred worker queue" + +#: src/Module/Admin/Queue.php:35 +msgid "" +"This page lists the deferred worker jobs. This are jobs that couldn't be " +"executed at the first time." +msgstr "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed." + +#: src/Module/Admin/Queue.php:38 +msgid "Inspect Worker Queue" +msgstr "Inspect worker queue" + +#: src/Module/Admin/Queue.php:39 +msgid "" +"This page lists the currently queued worker jobs. These jobs are handled by " +"the worker cronjob you've set up during install." +msgstr "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install." + +#: src/Module/Admin/Queue.php:59 +msgid "ID" +msgstr "ID" + +#: src/Module/Admin/Queue.php:60 +msgid "Job Parameters" +msgstr "Job parameters" + +#: src/Module/Admin/Queue.php:61 +msgid "Created" +msgstr "Created" + +#: src/Module/Admin/Queue.php:62 +msgid "Priority" +msgstr "Priority" + +#: src/Module/Admin/Site.php:49 +msgid "Can not parse base url. Must have at least ://" +msgstr "Can not parse base URL. Must have at least ://" + +#: src/Module/Admin/Site.php:235 +msgid "Invalid storage backend setting value." +msgstr "Invalid storage backend setting." + +#: src/Module/Admin/Site.php:412 +msgid "Site settings updated." +msgstr "Site settings updated." + +#: src/Module/Admin/Site.php:464 +msgid "No community page for local users" +msgstr "No community page for local users" + +#: src/Module/Admin/Site.php:465 +msgid "No community page" +msgstr "No community page" + +#: src/Module/Admin/Site.php:466 +msgid "Public postings from users of this site" +msgstr "Public postings from users of this site" + +#: src/Module/Admin/Site.php:467 +msgid "Public postings from the federated network" +msgstr "Public postings from the federated network" + +#: src/Module/Admin/Site.php:468 +msgid "Public postings from local users and the federated network" +msgstr "Public postings from local users and the federated network" + +#: src/Module/Admin/Site.php:472 src/Module/Admin/Site.php:668 +#: src/Module/Admin/Site.php:678 src/Module/Contact.php:549 +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Disabled" +msgstr "Disabled" + +#: src/Module/Admin/Site.php:473 src/Module/Admin/Users.php:278 +#: src/Module/Admin/Users.php:295 src/Module/BaseAdminModule.php:81 +msgid "Users" +msgstr "Users" + +#: src/Module/Admin/Site.php:474 +msgid "Users, Global Contacts" +msgstr "Users, Global Contacts" + +#: src/Module/Admin/Site.php:475 +msgid "Users, Global Contacts/fallback" +msgstr "Users, Global Contacts/fallback" + +#: src/Module/Admin/Site.php:479 +msgid "One month" +msgstr "One month" + +#: src/Module/Admin/Site.php:480 +msgid "Three months" +msgstr "Three months" + +#: src/Module/Admin/Site.php:481 +msgid "Half a year" +msgstr "Half a year" + +#: src/Module/Admin/Site.php:482 +msgid "One year" +msgstr "One a year" + +#: src/Module/Admin/Site.php:488 +msgid "Multi user instance" +msgstr "Multi user instance" + +#: src/Module/Admin/Site.php:510 +msgid "Closed" +msgstr "Closed" + +#: src/Module/Admin/Site.php:511 +msgid "Requires approval" +msgstr "Requires approval" + +#: src/Module/Admin/Site.php:512 +msgid "Open" +msgstr "Open" + +#: src/Module/Admin/Site.php:516 src/Module/Install.php:181 +msgid "No SSL policy, links will track page SSL state" +msgstr "No SSL policy, links will track page SSL state" + +#: src/Module/Admin/Site.php:517 src/Module/Install.php:182 +msgid "Force all links to use SSL" +msgstr "Force all links to use SSL" + +#: src/Module/Admin/Site.php:518 src/Module/Install.php:183 +msgid "Self-signed certificate, use SSL for local links only (discouraged)" +msgstr "Self-signed certificate, use SSL for local links only (discouraged)" + +#: src/Module/Admin/Site.php:522 +msgid "Don't check" +msgstr "Don't check" + +#: src/Module/Admin/Site.php:523 +msgid "check the stable version" +msgstr "check for stable version updates" + +#: src/Module/Admin/Site.php:524 +msgid "check the development version" +msgstr "check for development version updates" + +#: src/Module/Admin/Site.php:544 +msgid "Database (legacy)" +msgstr "Database (legacy)" + +#: src/Module/Admin/Site.php:569 src/Module/BaseAdminModule.php:80 +msgid "Site" +msgstr "Site" + +#: src/Module/Admin/Site.php:571 +msgid "Republish users to directory" +msgstr "Republish users to directory" + +#: src/Module/Admin/Site.php:572 src/Module/Register.php:121 +msgid "Registration" +msgstr "Registration" + +#: src/Module/Admin/Site.php:573 +msgid "File upload" +msgstr "File upload" + +#: src/Module/Admin/Site.php:574 +msgid "Policies" +msgstr "Policies" + +#: src/Module/Admin/Site.php:576 +msgid "Auto Discovered Contact Directory" +msgstr "Auto-discovered contact directory" + +#: src/Module/Admin/Site.php:577 +msgid "Performance" +msgstr "Performance" + +#: src/Module/Admin/Site.php:578 +msgid "Worker" +msgstr "Worker" + +#: src/Module/Admin/Site.php:579 +msgid "Message Relay" +msgstr "Message relay" + +#: src/Module/Admin/Site.php:580 +msgid "Relocate Instance" +msgstr "Relocate Instance" + +#: src/Module/Admin/Site.php:581 +msgid "Warning! Advanced function. Could make this server unreachable." +msgstr "Warning! Advanced function that could make this server unreachable." + +#: src/Module/Admin/Site.php:585 +msgid "Site name" +msgstr "Site name" + +#: src/Module/Admin/Site.php:586 +msgid "Sender Email" +msgstr "Sender email" + +#: src/Module/Admin/Site.php:586 +msgid "" +"The email address your server shall use to send notification emails from." +msgstr "The email address your server shall use to send notification emails from." + +#: src/Module/Admin/Site.php:587 +msgid "Banner/Logo" +msgstr "Banner/Logo" + +#: src/Module/Admin/Site.php:588 +msgid "Shortcut icon" +msgstr "Shortcut icon" + +#: src/Module/Admin/Site.php:588 +msgid "Link to an icon that will be used for browsers." +msgstr "Link to an icon that will be used for browsers." + +#: src/Module/Admin/Site.php:589 +msgid "Touch icon" +msgstr "Touch icon" + +#: src/Module/Admin/Site.php:589 +msgid "Link to an icon that will be used for tablets and mobiles." +msgstr "Link to an icon that will be used for tablets and mobiles." + +#: src/Module/Admin/Site.php:590 +msgid "Additional Info" +msgstr "Additional Info" + +#: src/Module/Admin/Site.php:590 +#, php-format +msgid "" +"For public servers: you can add additional information here that will be " +"listed at %s/servers." +msgstr "For public servers: You can add additional information here that will be listed at %s/servers." + +#: src/Module/Admin/Site.php:591 +msgid "System language" +msgstr "System language" + +#: src/Module/Admin/Site.php:592 +msgid "System theme" +msgstr "System theme" + +#: src/Module/Admin/Site.php:592 +msgid "" +"Default system theme - may be over-ridden by user profiles - Change default theme settings" +msgstr "Default system theme - may be over-ridden by user profiles - Change default theme settings" + +#: src/Module/Admin/Site.php:593 +msgid "Mobile system theme" +msgstr "Mobile system theme" + +#: src/Module/Admin/Site.php:593 +msgid "Theme for mobile devices" +msgstr "Theme for mobile devices" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:191 +msgid "SSL link policy" +msgstr "SSL link policy" + +#: src/Module/Admin/Site.php:594 src/Module/Install.php:193 +msgid "Determines whether generated links should be forced to use SSL" +msgstr "Determines whether generated links should be forced to use SSL" + +#: src/Module/Admin/Site.php:595 +msgid "Force SSL" +msgstr "Force SSL" + +#: src/Module/Admin/Site.php:595 +msgid "" +"Force all Non-SSL requests to SSL - Attention: on some systems it could lead" +" to endless loops." +msgstr "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops." + +#: src/Module/Admin/Site.php:596 +msgid "Hide help entry from navigation menu" +msgstr "Hide help entry from navigation menu" + +#: src/Module/Admin/Site.php:596 +msgid "" +"Hides the menu entry for the Help pages from the navigation menu. You can " +"still access it calling /help directly." +msgstr "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL." + +#: src/Module/Admin/Site.php:597 +msgid "Single user instance" +msgstr "Single user instance" + +#: src/Module/Admin/Site.php:597 +msgid "Make this instance multi-user or single-user for the named user" +msgstr "Make this instance multi-user or single-user for the named user" + +#: src/Module/Admin/Site.php:599 +msgid "File storage backend" +msgstr "File storage backend" + +#: src/Module/Admin/Site.php:599 +msgid "" +"The backend used to store uploaded data. If you change the storage backend, " +"you can manually move the existing files. If you do not do so, the files " +"uploaded before the change will still be available at the old backend. " +"Please see the settings documentation" +" for more information about the choices and the moving procedure." +msgstr "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure." + +#: src/Module/Admin/Site.php:601 +msgid "Maximum image size" +msgstr "Maximum image size" + +#: src/Module/Admin/Site.php:601 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Maximum size in bytes of uploaded images. Default is 0, which means no limits." + +#: src/Module/Admin/Site.php:602 +msgid "Maximum image length" +msgstr "Maximum image length" + +#: src/Module/Admin/Site.php:602 +msgid "" +"Maximum length in pixels of the longest side of uploaded images. Default is " +"-1, which means no limits." +msgstr "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits." + +#: src/Module/Admin/Site.php:603 +msgid "JPEG image quality" +msgstr "JPEG image quality" + +#: src/Module/Admin/Site.php:603 +msgid "" +"Uploaded JPEGS will be saved at this quality setting [0-100]. Default is " +"100, which is full quality." +msgstr "Uploaded JPEGs will be saved at this quality setting [0-100]. Default is 100, which is the original quality level." + +#: src/Module/Admin/Site.php:605 +msgid "Register policy" +msgstr "Registration policy" + +#: src/Module/Admin/Site.php:606 +msgid "Maximum Daily Registrations" +msgstr "Maximum daily registrations" + +#: src/Module/Admin/Site.php:606 +msgid "" +"If registration is permitted above, this sets the maximum number of new user" +" registrations to accept per day. If register is set to closed, this " +"setting has no effect." +msgstr "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval." + +#: src/Module/Admin/Site.php:607 +msgid "Register text" +msgstr "Registration text" + +#: src/Module/Admin/Site.php:607 +msgid "" +"Will be displayed prominently on the registration page. You can use BBCode " +"here." +msgstr "Will be displayed prominently on the registration page. You may use BBCode here." + +#: src/Module/Admin/Site.php:608 +msgid "Forbidden Nicknames" +msgstr "Forbidden Nicknames" + +#: src/Module/Admin/Site.php:608 +msgid "" +"Comma separated list of nicknames that are forbidden from registration. " +"Preset is a list of role names according RFC 2142." +msgstr "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142." + +#: src/Module/Admin/Site.php:609 +msgid "Accounts abandoned after x days" +msgstr "Accounts abandoned after so many days" + +#: src/Module/Admin/Site.php:609 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit." + +#: src/Module/Admin/Site.php:610 +msgid "Allowed friend domains" +msgstr "Allowed friend domains" + +#: src/Module/Admin/Site.php:610 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Comma-separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains" + +#: src/Module/Admin/Site.php:611 +msgid "Allowed email domains" +msgstr "Allowed email domains" + +#: src/Module/Admin/Site.php:611 +msgid "" +"Comma separated list of domains which are allowed in email addresses for " +"registrations to this site. Wildcards are accepted. Empty to allow any " +"domains" +msgstr "Comma-separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains" + +#: src/Module/Admin/Site.php:612 +msgid "No OEmbed rich content" +msgstr "No OEmbed rich content" + +#: src/Module/Admin/Site.php:612 +msgid "" +"Don't show the rich content (e.g. embedded PDF), except from the domains " +"listed below." +msgstr "Don't show rich content (e.g. embedded PDF), except from the domains listed below." + +#: src/Module/Admin/Site.php:613 +msgid "Allowed OEmbed domains" +msgstr "Allowed OEmbed domains" + +#: src/Module/Admin/Site.php:613 +msgid "" +"Comma separated list of domains which oembed content is allowed to be " +"displayed. Wildcards are accepted." +msgstr "Comma-separated list of domains from where OEmbed content is allowed. Wildcards are possible." + +#: src/Module/Admin/Site.php:614 +msgid "Block public" +msgstr "Block public" + +#: src/Module/Admin/Site.php:614 +msgid "" +"Check to block public access to all otherwise public personal pages on this " +"site unless you are currently logged in." +msgstr "Block public access to all otherwise public personal pages on this site, except for local users when logged in." + +#: src/Module/Admin/Site.php:615 +msgid "Force publish" +msgstr "Mandatory directory listing" + +#: src/Module/Admin/Site.php:615 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Force all profiles on this site to be listed in the site directory." + +#: src/Module/Admin/Site.php:615 +msgid "Enabling this may violate privacy laws like the GDPR" +msgstr "Enabling this may violate privacy laws like the GDPR" + +#: src/Module/Admin/Site.php:616 +msgid "Global directory URL" +msgstr "Global directory URL" + +#: src/Module/Admin/Site.php:616 +msgid "" +"URL to the global directory. If this is not set, the global directory is " +"completely unavailable to the application." +msgstr "URL to the global directory: If this is not set, the global directory is completely unavailable to the application." + +#: src/Module/Admin/Site.php:617 +msgid "Private posts by default for new users" +msgstr "Private posts by default for new users" + +#: src/Module/Admin/Site.php:617 +msgid "" +"Set default post permissions for all new members to the default privacy " +"group rather than public." +msgstr "Set default post permissions for all new members to the default privacy group rather than public." + +#: src/Module/Admin/Site.php:618 +msgid "Don't include post content in email notifications" +msgstr "Don't include post content in email notifications" + +#: src/Module/Admin/Site.php:618 +msgid "" +"Don't include the content of a post/comment/private message/etc. in the " +"email notifications that are sent out from this site, as a privacy measure." +msgstr "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure." + +#: src/Module/Admin/Site.php:619 +msgid "Disallow public access to addons listed in the apps menu." +msgstr "Disallow public access to addons listed in the apps menu." + +#: src/Module/Admin/Site.php:619 +msgid "" +"Checking this box will restrict addons listed in the apps menu to members " +"only." +msgstr "Checking this box will restrict addons listed in the apps menu to members only." + +#: src/Module/Admin/Site.php:620 +msgid "Don't embed private images in posts" +msgstr "Don't embed private images in posts" + +#: src/Module/Admin/Site.php:620 +msgid "" +"Don't replace locally-hosted private photos in posts with an embedded copy " +"of the image. This means that contacts who receive posts containing private " +"photos will have to authenticate and load each image, which may take a " +"while." +msgstr "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while." + +#: src/Module/Admin/Site.php:621 +msgid "Explicit Content" +msgstr "Explicit Content" + +#: src/Module/Admin/Site.php:621 +msgid "" +"Set this to announce that your node is used mostly for explicit content that" +" might not be suited for minors. This information will be published in the " +"node information and might be used, e.g. by the global directory, to filter " +"your node from listings of nodes to join. Additionally a note about this " +"will be shown at the user registration page." +msgstr "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page." + +#: src/Module/Admin/Site.php:622 +msgid "Allow Users to set remote_self" +msgstr "Allow users to set \"Remote self\"" + +#: src/Module/Admin/Site.php:622 +msgid "" +"With checking this, every user is allowed to mark every contact as a " +"remote_self in the repair contact dialog. Setting this flag on a contact " +"causes mirroring every posting of that contact in the users stream." +msgstr "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream." + +#: src/Module/Admin/Site.php:623 +msgid "Block multiple registrations" +msgstr "Block multiple registrations" + +#: src/Module/Admin/Site.php:623 +msgid "Disallow users to register additional accounts for use as pages." +msgstr "Disallow users to sign up for additional accounts." + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID" +msgstr "Disable OpenID" + +#: src/Module/Admin/Site.php:624 +msgid "Disable OpenID support for registration and logins." +msgstr "Disable OpenID support for registration and logins." + +#: src/Module/Admin/Site.php:625 +msgid "No Fullname check" +msgstr "No full name check" + +#: src/Module/Admin/Site.php:625 +msgid "" +"Allow users to register without a space between the first name and the last " +"name in their full name." +msgstr "Allow users to register without a space between the first name and the last name in their full name." + +#: src/Module/Admin/Site.php:626 +msgid "Community pages for visitors" +msgstr "Community pages for visitors" + +#: src/Module/Admin/Site.php:626 +msgid "" +"Which community pages should be available for visitors. Local users always " +"see both pages." +msgstr "Which community pages should be available for visitors. Local users always see both pages." + +#: src/Module/Admin/Site.php:627 +msgid "Posts per user on community page" +msgstr "Posts per user on community page" + +#: src/Module/Admin/Site.php:627 +msgid "" +"The maximum number of posts per user on the community page. (Not valid for " +"\"Global Community\")" +msgstr "The maximum number of posts per user on the community page. (Not valid for \"Global Community\")" + +#: src/Module/Admin/Site.php:628 +msgid "Disable OStatus support" +msgstr "Disable OStatus support" + +#: src/Module/Admin/Site.php:628 +msgid "" +"Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All " +"communications in OStatus are public, so privacy warnings will be " +"occasionally displayed." +msgstr "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed." + +#: src/Module/Admin/Site.php:629 +msgid "Only import OStatus/ActivityPub threads from our contacts" +msgstr "Only import OStatus/ActivityPub threads from our contacts" + +#: src/Module/Admin/Site.php:629 +msgid "" +"Normally we import every content from our OStatus and ActivityPub contacts. " +"With this option we only store threads that are started by a contact that is" +" known on our system." +msgstr "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system." + +#: src/Module/Admin/Site.php:630 +msgid "OStatus support can only be enabled if threading is enabled." +msgstr "OStatus support can only be enabled if threading is enabled." + +#: src/Module/Admin/Site.php:632 +msgid "" +"Diaspora support can't be enabled because Friendica was installed into a sub" +" directory." +msgstr "diaspora* support can't be enabled because Friendica was installed into a sub directory." + +#: src/Module/Admin/Site.php:633 +msgid "Enable Diaspora support" +msgstr "Enable diaspora* support" + +#: src/Module/Admin/Site.php:633 +msgid "Provide built-in Diaspora network compatibility." +msgstr "Provide built-in diaspora* network compatibility." + +#: src/Module/Admin/Site.php:634 +msgid "Only allow Friendica contacts" +msgstr "Only allow Friendica contacts" + +#: src/Module/Admin/Site.php:634 +msgid "" +"All contacts must use Friendica protocols. All other built-in communication " +"protocols disabled." +msgstr "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled." + +#: src/Module/Admin/Site.php:635 +msgid "Verify SSL" +msgstr "Verify SSL" + +#: src/Module/Admin/Site.php:635 +msgid "" +"If you wish, you can turn on strict certificate checking. This will mean you" +" cannot connect (at all) to self-signed SSL sites." +msgstr "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites." + +#: src/Module/Admin/Site.php:636 +msgid "Proxy user" +msgstr "Proxy user" + +#: src/Module/Admin/Site.php:637 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: src/Module/Admin/Site.php:638 +msgid "Network timeout" +msgstr "Network timeout" + +#: src/Module/Admin/Site.php:638 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Value is in seconds. Set to 0 for unlimited (not recommended)." + +#: src/Module/Admin/Site.php:639 +msgid "Maximum Load Average" +msgstr "Maximum load average" + +#: src/Module/Admin/Site.php:639 +#, php-format +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default %d." +msgstr "Maximum system load before delivery and poll processes are deferred - default %d." + +#: src/Module/Admin/Site.php:640 +msgid "Maximum Load Average (Frontend)" +msgstr "Maximum load average (frontend)" + +#: src/Module/Admin/Site.php:640 +msgid "Maximum system load before the frontend quits service - default 50." +msgstr "Maximum system load before the frontend quits service (default 50)." + +#: src/Module/Admin/Site.php:641 +msgid "Minimal Memory" +msgstr "Minimal memory" + +#: src/Module/Admin/Site.php:641 +msgid "" +"Minimal free memory in MB for the worker. Needs access to /proc/meminfo - " +"default 0 (deactivated)." +msgstr "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)." + +#: src/Module/Admin/Site.php:642 +msgid "Maximum table size for optimization" +msgstr "Maximum table size for optimization" + +#: src/Module/Admin/Site.php:642 +msgid "" +"Maximum table size (in MB) for the automatic optimization. Enter -1 to " +"disable it." +msgstr "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it." + +#: src/Module/Admin/Site.php:643 +msgid "Minimum level of fragmentation" +msgstr "Minimum level of fragmentation" + +#: src/Module/Admin/Site.php:643 +msgid "" +"Minimum fragmenation level to start the automatic optimization - default " +"value is 30%." +msgstr "Minimum fragmentation level to start the automatic optimization (default 30%)." + +#: src/Module/Admin/Site.php:645 +msgid "Periodical check of global contacts" +msgstr "Periodical check of global contacts" + +#: src/Module/Admin/Site.php:645 +msgid "" +"If enabled, the global contacts are checked periodically for missing or " +"outdated data and the vitality of the contacts and servers." +msgstr "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers." + +#: src/Module/Admin/Site.php:646 +msgid "Days between requery" +msgstr "Days between enquiry" + +#: src/Module/Admin/Site.php:646 +msgid "Number of days after which a server is requeried for his contacts." +msgstr "Number of days after which a server is rechecked for contacts." + +#: src/Module/Admin/Site.php:647 +msgid "Discover contacts from other servers" +msgstr "Discover contacts from other servers" + +#: src/Module/Admin/Site.php:647 +msgid "" +"Periodically query other servers for contacts. You can choose between " +"\"Users\": the users on the remote system, \"Global Contacts\": active " +"contacts that are known on the system. The fallback is meant for Redmatrix " +"servers and older friendica servers, where global contacts weren't " +"available. The fallback increases the server load, so the recommended " +"setting is \"Users, Global Contacts\"." +msgstr "Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older Friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"." + +#: src/Module/Admin/Site.php:648 +msgid "Timeframe for fetching global contacts" +msgstr "Time-frame for fetching global contacts" + +#: src/Module/Admin/Site.php:648 +msgid "" +"When the discovery is activated, this value defines the timeframe for the " +"activity of the global contacts that are fetched from other servers." +msgstr "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers." + +#: src/Module/Admin/Site.php:649 +msgid "Search the local directory" +msgstr "Search the local directory" + +#: src/Module/Admin/Site.php:649 +msgid "" +"Search the local directory instead of the global directory. When searching " +"locally, every search will be executed on the global directory in the " +"background. This improves the search results when the search is repeated." +msgstr "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated." + +#: src/Module/Admin/Site.php:651 +msgid "Publish server information" +msgstr "Publish server information" + +#: src/Module/Admin/Site.php:651 +msgid "" +"If enabled, general server and usage data will be published. The data " +"contains the name and version of the server, number of users with public " +"profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." +msgstr "If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details." + +#: src/Module/Admin/Site.php:653 +msgid "Check upstream version" +msgstr "Check upstream version" + +#: src/Module/Admin/Site.php:653 +msgid "" +"Enables checking for new Friendica versions at github. If there is a new " +"version, you will be informed in the admin panel overview." +msgstr "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview." + +#: src/Module/Admin/Site.php:654 +msgid "Suppress Tags" +msgstr "Suppress tags" + +#: src/Module/Admin/Site.php:654 +msgid "Suppress showing a list of hashtags at the end of the posting." +msgstr "Suppress listed hashtags at the end of posts." + +#: src/Module/Admin/Site.php:655 +msgid "Clean database" +msgstr "Clean database" + +#: src/Module/Admin/Site.php:655 +msgid "" +"Remove old remote items, orphaned database records and old content from some" +" other helper tables." +msgstr "Remove old remote items, orphaned database records, and old content from some other helper tables." + +#: src/Module/Admin/Site.php:656 +msgid "Lifespan of remote items" +msgstr "Lifespan of remote items" + +#: src/Module/Admin/Site.php:656 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"remote items will be deleted. Own items, and marked or filed items are " +"always kept. 0 disables this behaviour." +msgstr "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items, are always kept. 0 disables this behavior." + +#: src/Module/Admin/Site.php:657 +msgid "Lifespan of unclaimed items" +msgstr "Lifespan of unclaimed items" + +#: src/Module/Admin/Site.php:657 +msgid "" +"When the database cleanup is enabled, this defines the days after which " +"unclaimed remote items (mostly content from the relay) will be deleted. " +"Default value is 90 days. Defaults to the general lifespan value of remote " +"items if set to 0." +msgstr "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0." + +#: src/Module/Admin/Site.php:658 +msgid "Lifespan of raw conversation data" +msgstr "Lifespan of raw conversation data" + +#: src/Module/Admin/Site.php:658 +msgid "" +"The conversation data is used for ActivityPub and OStatus, as well as for " +"debug purposes. It should be safe to remove it after 14 days, default is 90 " +"days." +msgstr "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days." + +#: src/Module/Admin/Site.php:659 +msgid "Path to item cache" +msgstr "Path to item cache" + +#: src/Module/Admin/Site.php:659 +msgid "The item caches buffers generated bbcode and external images." +msgstr "The item cache retains expanded bbcode and external images." + +#: src/Module/Admin/Site.php:660 +msgid "Cache duration in seconds" +msgstr "Cache duration in seconds" + +#: src/Module/Admin/Site.php:660 +msgid "" +"How long should the cache files be hold? Default value is 86400 seconds (One" +" day). To disable the item cache, set the value to -1." +msgstr "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)" + +#: src/Module/Admin/Site.php:661 +msgid "Maximum numbers of comments per post" +msgstr "Maximum number of comments per post" + +#: src/Module/Admin/Site.php:661 +msgid "How much comments should be shown for each post? Default value is 100." +msgstr "How many comments should be shown for each post? (Default 100)" + +#: src/Module/Admin/Site.php:662 +msgid "Temp path" +msgstr "Temp path" + +#: src/Module/Admin/Site.php:662 +msgid "" +"If you have a restricted system where the webserver can't access the system " +"temp path, enter another path here." +msgstr "Enter a different temp path if your system restricts the webserver's access to the system temp path." + +#: src/Module/Admin/Site.php:663 +msgid "Disable picture proxy" +msgstr "Disable picture proxy" + +#: src/Module/Admin/Site.php:663 +msgid "" +"The picture proxy increases performance and privacy. It shouldn't be used on" +" systems with very low bandwidth." +msgstr "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth." + +#: src/Module/Admin/Site.php:664 +msgid "Only search in tags" +msgstr "Only search in tags" + +#: src/Module/Admin/Site.php:664 +msgid "On large systems the text search can slow down the system extremely." +msgstr "On large systems, the text search can slow down the system significantly." + +#: src/Module/Admin/Site.php:666 +msgid "New base url" +msgstr "New base URL" + +#: src/Module/Admin/Site.php:666 +msgid "" +"Change base url for this server. Sends relocate message to all Friendica and" +" Diaspora* contacts of all users." +msgstr "Change base URL for this server. Sends a relocate message to all Friendica and diaspora* contacts, for all users." + +#: src/Module/Admin/Site.php:668 +msgid "RINO Encryption" +msgstr "RINO Encryption" + +#: src/Module/Admin/Site.php:668 +msgid "Encryption layer between nodes." +msgstr "Encryption layer between nodes." + +#: src/Module/Admin/Site.php:668 +msgid "Enabled" +msgstr "Enabled" + +#: src/Module/Admin/Site.php:670 +msgid "Maximum number of parallel workers" +msgstr "Maximum number of parallel workers" + +#: src/Module/Admin/Site.php:670 +#, php-format +msgid "" +"On shared hosters set this to %d. On larger systems, values of %d are great." +" Default value is %d." +msgstr "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d." + +#: src/Module/Admin/Site.php:671 +msgid "Don't use \"proc_open\" with the worker" +msgstr "Don't use \"proc_open\" with the worker" + +#: src/Module/Admin/Site.php:671 +msgid "" +"Enable this if your system doesn't allow the use of \"proc_open\". This can " +"happen on shared hosters. If this is enabled you should increase the " +"frequency of worker calls in your crontab." +msgstr "Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab." + +#: src/Module/Admin/Site.php:672 +msgid "Enable fastlane" +msgstr "Enable fast-lane" + +#: src/Module/Admin/Site.php:672 +msgid "" +"When enabed, the fastlane mechanism starts an additional worker if processes" +" with higher priority are blocked by processes of lower priority." +msgstr "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority." + +#: src/Module/Admin/Site.php:673 +msgid "Enable frontend worker" +msgstr "Enable frontend worker" + +#: src/Module/Admin/Site.php:673 +#, php-format +msgid "" +"When enabled the Worker process is triggered when backend access is " +"performed (e.g. messages being delivered). On smaller sites you might want " +"to call %s/worker on a regular basis via an external cron job. You should " +"only enable this option if you cannot utilize cron/scheduled jobs on your " +"server." +msgstr "When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server." + +#: src/Module/Admin/Site.php:675 +msgid "Subscribe to relay" +msgstr "Subscribe to relay" + +#: src/Module/Admin/Site.php:675 +msgid "" +"Enables the receiving of public posts from the relay. They will be included " +"in the search, subscribed tags and on the global community page." +msgstr "Receive public posts from the specified relay. Post will be included in searches, subscribed tags, and on the global community page." + +#: src/Module/Admin/Site.php:676 +msgid "Relay server" +msgstr "Relay server" + +#: src/Module/Admin/Site.php:676 +msgid "" +"Address of the relay server where public posts should be send to. For " +"example https://relay.diasp.org" +msgstr "Address of the relay server where public posts should be sent. For example https://relay.diasp.org" + +#: src/Module/Admin/Site.php:677 +msgid "Direct relay transfer" +msgstr "Direct relay transfer" + +#: src/Module/Admin/Site.php:677 +msgid "" +"Enables the direct transfer to other servers without using the relay servers" +msgstr "Enables direct transfer to other servers without using a relay server." + +#: src/Module/Admin/Site.php:678 +msgid "Relay scope" +msgstr "Relay scope" + +#: src/Module/Admin/Site.php:678 +msgid "" +"Can be \"all\" or \"tags\". \"all\" means that every public post should be " +"received. \"tags\" means that only posts with selected tags should be " +"received." +msgstr "Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received." + +#: src/Module/Admin/Site.php:678 +msgid "all" +msgstr "all" + +#: src/Module/Admin/Site.php:678 +msgid "tags" +msgstr "tags" + +#: src/Module/Admin/Site.php:679 +msgid "Server tags" +msgstr "Server tags" + +#: src/Module/Admin/Site.php:679 +msgid "Comma separated list of tags for the \"tags\" subscription." +msgstr "Comma separated list of tags for the \"tags\" subscription." + +#: src/Module/Admin/Site.php:680 +msgid "Allow user tags" +msgstr "Allow user tags" + +#: src/Module/Admin/Site.php:680 +msgid "" +"If enabled, the tags from the saved searches will used for the \"tags\" " +"subscription in addition to the \"relay_server_tags\"." +msgstr "If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"." + +#: src/Module/Admin/Site.php:683 +msgid "Start Relocation" +msgstr "Start Relocation" + +#: src/Module/Admin/Summary.php:30 +#, php-format +msgid "" +"Your DB still runs with MyISAM tables. You should change the engine type to " +"InnoDB. As Friendica will use InnoDB only features in the future, you should" +" change this! See here for a guide that may be helpful " +"converting the table engines. You may also use the command php " +"bin/console.php dbstructure toinnodb of your Friendica installation for" +" an automatic conversion.
    " +msgstr "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB-only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    " + +#: src/Module/Admin/Summary.php:38 +#, php-format +msgid "" +"There is a new version of Friendica available for download. Your current " +"version is %1$s, upstream version is %2$s" +msgstr "A new Friendica version is available now. Your current version is %1$s, upstream version is %2$s" + +#: src/Module/Admin/Summary.php:47 +msgid "" +"The database update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear." +msgstr "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear." + +#: src/Module/Admin/Summary.php:51 +msgid "" +"The last update failed. Please run \"php bin/console.php dbstructure " +"update\" from the command line and have a look at the errors that might " +"appear. (Some of the errors are possibly inside the logfile.)" +msgstr "The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that may appear in the console and logfile output." + +#: src/Module/Admin/Summary.php:56 +msgid "The worker was never executed. Please check your database structure!" +msgstr "The worker process has never been executed. Please check your database structure!" + +#: src/Module/Admin/Summary.php:58 +#, php-format +msgid "" +"The last worker execution was on %s UTC. This is older than one hour. Please" +" check your crontab settings." +msgstr "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings." + +#: src/Module/Admin/Summary.php:63 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +".htconfig.php. See the Config help page for " +"help with the transition." +msgstr "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition..htconfig.php. See the Config help page for help with the transition." + +#: src/Module/Admin/Summary.php:67 +#, php-format +msgid "" +"Friendica's configuration now is stored in config/local.config.php, please " +"copy config/local-sample.config.php and move your config from " +"config/local.ini.php. See the Config help " +"page for help with the transition." +msgstr "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition." + +#: src/Module/Admin/Summary.php:73 +#, php-format +msgid "" +"%s is not reachable on your system. This is a severe " +"configuration issue that prevents server to server communication. See the installation page for help." +msgstr "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help." + +#: src/Module/Admin/Summary.php:89 +#, php-format +msgid "" +"Friendica's system.basepath was updated from '%s' to '%s'. Please remove the" +" system.basepath from your db to avoid differences." +msgstr "The system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences." + +#: src/Module/Admin/Summary.php:97 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is wrong and the config file '%s' " +"isn't used." +msgstr "The current system.basepath '%s' is wrong and the config file '%s' isn't used." + +#: src/Module/Admin/Summary.php:105 +#, php-format +msgid "" +"Friendica's current system.basepath '%s' is not equal to the config file " +"'%s'. Please fix your configuration." +msgstr "The current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration." + +#: src/Module/Admin/Summary.php:112 +msgid "Normal Account" +msgstr "Standard account" + +#: src/Module/Admin/Summary.php:113 +msgid "Automatic Follower Account" +msgstr "Automatic follower account" + +#: src/Module/Admin/Summary.php:114 +msgid "Public Forum Account" +msgstr "Public forum account" + +#: src/Module/Admin/Summary.php:115 +msgid "Automatic Friend Account" +msgstr "Automatic friend account" + +#: src/Module/Admin/Summary.php:116 +msgid "Blog Account" +msgstr "Blog account" + +#: src/Module/Admin/Summary.php:117 +msgid "Private Forum Account" +msgstr "Private forum account" + +#: src/Module/Admin/Summary.php:141 +msgid "Message queues" +msgstr "Message queues" + +#: src/Module/Admin/Summary.php:147 +msgid "Server Settings" +msgstr "Server Settings" + +#: src/Module/Admin/Summary.php:161 +msgid "Summary" +msgstr "Summary" + +#: src/Module/Admin/Summary.php:163 +msgid "Registered users" +msgstr "Signed up users" + +#: src/Module/Admin/Summary.php:165 +msgid "Pending registrations" +msgstr "Pending registrations" + +#: src/Module/Admin/Summary.php:166 +msgid "Version" +msgstr "Version" + +#: src/Module/Admin/Summary.php:170 +msgid "Active addons" +msgstr "Active addons" + +#: src/Module/Admin/Themes/Details.php:32 src/Module/Admin/Themes/Embed.php:46 +msgid "Theme settings updated." +msgstr "Theme settings updated." + +#: src/Module/Admin/Themes/Details.php:71 src/Module/Admin/Themes/Index.php:47 +#, php-format +msgid "Theme %s disabled." +msgstr "Theme %s disabled." + +#: src/Module/Admin/Themes/Details.php:73 src/Module/Admin/Themes/Index.php:49 +#, php-format +msgid "Theme %s successfully enabled." +msgstr "Theme %s successfully enabled." + +#: src/Module/Admin/Themes/Details.php:75 src/Module/Admin/Themes/Index.php:51 +#, php-format +msgid "Theme %s failed to install." +msgstr "Theme %s failed to install." + +#: src/Module/Admin/Themes/Details.php:97 +msgid "Screenshot" +msgstr "Screenshot" + +#: src/Module/Admin/Themes/Details.php:105 +#: src/Module/Admin/Themes/Index.php:94 src/Module/BaseAdminModule.php:83 +msgid "Themes" +msgstr "Theme selection" + +#: src/Module/Admin/Themes/Embed.php:67 +msgid "Unknown theme." +msgstr "Unknown theme." + +#: src/Module/Admin/Themes/Index.php:96 +msgid "Reload active themes" +msgstr "Reload active themes" + +#: src/Module/Admin/Themes/Index.php:101 +#, php-format +msgid "No themes found on the system. They should be placed in %1$s" +msgstr "No themes found on the system. They should be placed in %1$s" + +#: src/Module/Admin/Themes/Index.php:102 +msgid "[Experimental]" +msgstr "[Experimental]" + +#: src/Module/Admin/Themes/Index.php:103 +msgid "[Unsupported]" +msgstr "[Unsupported]" + +#: src/Module/Admin/Tos.php:30 +msgid "The Terms of Service settings have been updated." +msgstr "The Terms of Service settings have been updated." + +#: src/Module/Admin/Tos.php:44 +msgid "Display Terms of Service" +msgstr "Display Terms of Service" + +#: src/Module/Admin/Tos.php:44 +msgid "" +"Enable the Terms of Service page. If this is enabled a link to the terms " +"will be added to the registration form and the general information page." +msgstr "Enable the Terms of Service page. If this is enabled, a link to the terms will be added to the registration form and to the general information page." + +#: src/Module/Admin/Tos.php:45 +msgid "Display Privacy Statement" +msgstr "Display Privacy Statement" + +#: src/Module/Admin/Tos.php:45 +#, php-format +msgid "" +"Show some informations regarding the needed information to operate the node " +"according e.g. to EU-GDPR." +msgstr "Show some information needed, for example, to comply with EU-GDPR." + +#: src/Module/Admin/Tos.php:46 +msgid "Privacy Statement Preview" +msgstr "Privacy Statement Preview" + +#: src/Module/Admin/Tos.php:48 +msgid "The Terms of Service" +msgstr "Terms of Service" + +#: src/Module/Admin/Tos.php:48 +msgid "" +"Enter the Terms of Service for your node here. You can use BBCode. Headers " +"of sections should be [h2] and below." +msgstr "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or less." + +#: src/Module/Admin/Users.php:48 +#, php-format +msgid "" +"\n" +"\t\t\tDear %1$s,\n" +"\t\t\t\tthe administrator of %2$s has set up an account for you." +msgstr "\n\t\t\tDear %1$s,\n\t\t\t\tThe administrator of %2$s has set up an account for you." + +#: src/Module/Admin/Users.php:51 +#, php-format +msgid "" +"\n" +"\t\t\tThe login details are as follows:\n" +"\n" +"\t\t\tSite Location:\t%1$s\n" +"\t\t\tLogin Name:\t\t%2$s\n" +"\t\t\tPassword:\t\t%3$s\n" +"\n" +"\t\t\tYou may change your password from your account \"Settings\" page after logging\n" +"\t\t\tin.\n" +"\n" +"\t\t\tPlease take a few moments to review the other account settings on that page.\n" +"\n" +"\t\t\tYou may also wish to add some basic information to your default profile\n" +"\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n" +"\n" +"\t\t\tWe recommend setting your full name, adding a profile photo,\n" +"\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n" +"\t\t\tperhaps what country you live in; if you do not wish to be more specific\n" +"\t\t\tthan that.\n" +"\n" +"\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n" +"\t\t\tIf you are new and do not know anybody here, they may help\n" +"\t\t\tyou to make some new and interesting friends.\n" +"\n" +"\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n" +"\n" +"\t\t\tThank you and welcome to %4$s." +msgstr "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1$s\n\t\t\tLogin Name:\t\t%2$s\n\t\t\tPassword:\t\t%3$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1$s/removeme\n\n\t\t\tThank you and welcome to %4$s." + +#: src/Module/Admin/Users.php:96 +#, php-format +msgid "%s user blocked" +msgid_plural "%s users blocked" +msgstr[0] "%s user blocked" +msgstr[1] "%s users blocked" + +#: src/Module/Admin/Users.php:102 +#, php-format +msgid "%s user unblocked" +msgid_plural "%s users unblocked" +msgstr[0] "%s user unblocked" +msgstr[1] "%s users unblocked" + +#: src/Module/Admin/Users.php:110 src/Module/Admin/Users.php:160 +msgid "You can't remove yourself" +msgstr "You can't remove yourself" + +#: src/Module/Admin/Users.php:114 +#, php-format +msgid "%s user deleted" +msgid_plural "%s users deleted" +msgstr[0] "%s user deleted" +msgstr[1] "%s users deleted" + +#: src/Module/Admin/Users.php:158 +#, php-format +msgid "User \"%s\" deleted" +msgstr "User \"%s\" deleted" + +#: src/Module/Admin/Users.php:167 +#, php-format +msgid "User \"%s\" blocked" +msgstr "User \"%s\" blocked" + +#: src/Module/Admin/Users.php:173 +#, php-format +msgid "User \"%s\" unblocked" +msgstr "User \"%s\" unblocked" + +#: src/Module/Admin/Users.php:226 +msgid "Private Forum" +msgstr "Private Forum" + +#: src/Module/Admin/Users.php:233 +msgid "Relay" +msgstr "Relay" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Register date" +msgstr "Registration date" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last login" +msgstr "Last login" + +#: src/Module/Admin/Users.php:272 src/Module/Admin/Users.php:297 +msgid "Last item" +msgstr "Last item" + +#: src/Module/Admin/Users.php:272 +msgid "Type" +msgstr "Type" + +#: src/Module/Admin/Users.php:279 +msgid "Add User" +msgstr "Add user" + +#: src/Module/Admin/Users.php:281 +msgid "User registrations waiting for confirm" +msgstr "User registrations awaiting confirmation" + +#: src/Module/Admin/Users.php:282 +msgid "User waiting for permanent deletion" +msgstr "User awaiting permanent deletion" + +#: src/Module/Admin/Users.php:283 +msgid "Request date" +msgstr "Request date" + +#: src/Module/Admin/Users.php:284 +msgid "No registrations." +msgstr "No registrations." + +#: src/Module/Admin/Users.php:285 +msgid "Note from the user" +msgstr "Note from the user" + +#: src/Module/Admin/Users.php:287 +msgid "Deny" +msgstr "Deny" + +#: src/Module/Admin/Users.php:290 +msgid "User blocked" +msgstr "User blocked" + +#: src/Module/Admin/Users.php:292 +msgid "Site admin" +msgstr "Site admin" + +#: src/Module/Admin/Users.php:293 +msgid "Account expired" +msgstr "Account expired" + +#: src/Module/Admin/Users.php:296 +msgid "New User" +msgstr "New user" + +#: src/Module/Admin/Users.php:297 +msgid "Permanent deletion" +msgstr "Permanent deletion" + +#: src/Module/Admin/Users.php:302 +msgid "" +"Selected users will be deleted!\\n\\nEverything these users had posted on " +"this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Selected users will be deleted!\\n\\nEverything these users have posted on this site will be permanently deleted!\\n\\nAre you sure?" + +#: src/Module/Admin/Users.php:303 +msgid "" +"The user {0} will be deleted!\\n\\nEverything this user has posted on this " +"site will be permanently deleted!\\n\\nAre you sure?" +msgstr "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?" + +#: src/Module/Admin/Users.php:313 +msgid "Name of the new user." +msgstr "Name of the new user." + +#: src/Module/Admin/Users.php:314 +msgid "Nickname" +msgstr "Nickname" + +#: src/Module/Admin/Users.php:314 +msgid "Nickname of the new user." +msgstr "Nickname of the new user." + +#: src/Module/Admin/Users.php:315 +msgid "Email address of the new user." +msgstr "Email address of the new user." + +#: src/Module/AllFriends.php:55 +msgid "No friends to display." +msgstr "No friends to display." + +#: src/Module/Apps.php:29 +msgid "No installed applications." +msgstr "No installed applications." + +#: src/Module/Apps.php:34 +msgid "Applications" +msgstr "Applications" + #: src/Module/Attach.php:36 src/Module/Attach.php:48 msgid "Item was not found." msgstr "Item was not found." +#: src/Module/Babel.php:31 +msgid "Source input" +msgstr "Source input" + +#: src/Module/Babel.php:37 +msgid "BBCode::toPlaintext" +msgstr "BBCode::toPlaintext" + +#: src/Module/Babel.php:43 +msgid "BBCode::convert (raw HTML)" +msgstr "BBCode::convert (raw HTML)" + +#: src/Module/Babel.php:48 +msgid "BBCode::convert" +msgstr "BBCode::convert" + +#: src/Module/Babel.php:54 +msgid "BBCode::convert => HTML::toBBCode" +msgstr "BBCode::convert => HTML::toBBCode" + +#: src/Module/Babel.php:60 +msgid "BBCode::toMarkdown" +msgstr "BBCode::toMarkdown" + +#: src/Module/Babel.php:66 +msgid "BBCode::toMarkdown => Markdown::convert" +msgstr "BBCode::toMarkdown => Markdown::convert" + +#: src/Module/Babel.php:72 +msgid "BBCode::toMarkdown => Markdown::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::toBBCode" + +#: src/Module/Babel.php:78 +msgid "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" +msgstr "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode" + +#: src/Module/Babel.php:89 +msgid "Item Body" +msgstr "Item body" + +#: src/Module/Babel.php:93 +msgid "Item Tags" +msgstr "Item tags" + +#: src/Module/Babel.php:100 +msgid "Source input (Diaspora format)" +msgstr "Source input (diaspora* format)" + +#: src/Module/Babel.php:106 +msgid "Markdown::convert (raw HTML)" +msgstr "Markdown::convert (raw HTML)" + +#: src/Module/Babel.php:111 +msgid "Markdown::convert" +msgstr "Markdown::convert" + +#: src/Module/Babel.php:117 +msgid "Markdown::toBBCode" +msgstr "Markdown::toBBCode" + +#: src/Module/Babel.php:124 +msgid "Raw HTML input" +msgstr "Raw HTML input" + +#: src/Module/Babel.php:129 +msgid "HTML Input" +msgstr "HTML input" + +#: src/Module/Babel.php:135 +msgid "HTML::toBBCode" +msgstr "HTML::toBBCode" + +#: src/Module/Babel.php:141 +msgid "HTML::toBBCode => BBCode::convert" +msgstr "HTML::toBBCode => BBCode::convert" + +#: src/Module/Babel.php:146 +msgid "HTML::toBBCode => BBCode::convert (raw HTML)" +msgstr "HTML::toBBCode => BBCode::convert (raw HTML)" + +#: src/Module/Babel.php:152 +msgid "HTML::toMarkdown" +msgstr "HTML::toMarkdown" + +#: src/Module/Babel.php:158 +msgid "HTML::toPlaintext" +msgstr "HTML::toPlaintext" + +#: src/Module/Babel.php:166 +msgid "Source text" +msgstr "Source text" + +#: src/Module/Babel.php:167 +msgid "BBCode" +msgstr "BBCode" + +#: src/Module/Babel.php:168 +msgid "Markdown" +msgstr "Markdown" + +#: src/Module/Babel.php:169 +msgid "HTML" +msgstr "HTML" + +#: src/Module/BaseAdminModule.php:76 +msgid "Overview" +msgstr "Overview" + +#: src/Module/BaseAdminModule.php:79 +msgid "Configuration" +msgstr "Configuration" + +#: src/Module/BaseAdminModule.php:87 +msgid "Database" +msgstr "Database" + +#: src/Module/BaseAdminModule.php:88 +msgid "DB updates" +msgstr "DB updates" + +#: src/Module/BaseAdminModule.php:89 +msgid "Inspect Deferred Workers" +msgstr "Inspect deferred workers" + +#: src/Module/BaseAdminModule.php:90 +msgid "Inspect worker Queue" +msgstr "Inspect worker queue" + +#: src/Module/BaseAdminModule.php:92 +msgid "Tools" +msgstr "Tools" + +#: src/Module/BaseAdminModule.php:93 +msgid "Contact Blocklist" +msgstr "Contact blocklist" + +#: src/Module/BaseAdminModule.php:101 +msgid "Diagnostics" +msgstr "Diagnostics" + +#: src/Module/BaseAdminModule.php:102 +msgid "PHP Info" +msgstr "PHP info" + +#: src/Module/BaseAdminModule.php:103 +msgid "probe address" +msgstr "Probe address" + +#: src/Module/BaseAdminModule.php:104 +msgid "check webfinger" +msgstr "Check webfinger" + +#: src/Module/BaseAdminModule.php:105 +msgid "Item Source" +msgstr "Item source" + +#: src/Module/BaseAdminModule.php:106 +msgid "Babel" +msgstr "Babel" + +#: src/Module/BaseAdminModule.php:115 +msgid "Addon Features" +msgstr "Addon features" + +#: src/Module/BaseAdminModule.php:116 +msgid "User registrations waiting for confirmation" +msgstr "User registrations awaiting confirmation" + +#: src/Module/Bookmarklet.php:35 +msgid "This page is missing a url parameter." +msgstr "This page is missing a URL parameter." + +#: src/Module/Bookmarklet.php:57 +msgid "The post was created" +msgstr "The post was created" + #: src/Module/Contact.php:166 #, php-format msgid "%d contact edited." @@ -8818,453 +8603,688 @@ msgid_plural "%d contacts edited." msgstr[0] "%d contact edited." msgstr[1] "%d contacts edited." -#: src/Module/Contact.php:191 src/Module/Contact.php:374 +#: src/Module/Contact.php:193 src/Module/Contact.php:377 msgid "Could not access contact record." msgstr "Could not access contact record." -#: src/Module/Contact.php:201 +#: src/Module/Contact.php:203 msgid "Could not locate selected profile." msgstr "Could not locate selected profile." -#: src/Module/Contact.php:233 +#: src/Module/Contact.php:235 msgid "Contact updated." msgstr "Contact updated." -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been blocked" msgstr "Contact has been blocked" -#: src/Module/Contact.php:395 +#: src/Module/Contact.php:398 msgid "Contact has been unblocked" msgstr "Contact has been unblocked" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been ignored" msgstr "Contact has been ignored" -#: src/Module/Contact.php:405 +#: src/Module/Contact.php:408 msgid "Contact has been unignored" msgstr "Contact has been unignored" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been archived" msgstr "Contact has been archived" -#: src/Module/Contact.php:415 +#: src/Module/Contact.php:418 msgid "Contact has been unarchived" msgstr "Contact has been unarchived" -#: src/Module/Contact.php:439 +#: src/Module/Contact.php:442 msgid "Drop contact" msgstr "Drop contact" -#: src/Module/Contact.php:442 src/Module/Contact.php:820 +#: src/Module/Contact.php:445 src/Module/Contact.php:823 msgid "Do you really want to delete this contact?" msgstr "Do you really want to delete this contact?" -#: src/Module/Contact.php:456 +#: src/Module/Contact.php:459 msgid "Contact has been removed." msgstr "Contact has been removed." -#: src/Module/Contact.php:486 +#: src/Module/Contact.php:489 #, php-format msgid "You are mutual friends with %s" msgstr "You are mutual friends with %s" -#: src/Module/Contact.php:491 +#: src/Module/Contact.php:494 #, php-format msgid "You are sharing with %s" msgstr "You are sharing with %s" -#: src/Module/Contact.php:496 +#: src/Module/Contact.php:499 #, php-format msgid "%s is sharing with you" msgstr "%s is sharing with you" -#: src/Module/Contact.php:520 +#: src/Module/Contact.php:523 msgid "Private communications are not available for this contact." msgstr "Private communications are not available for this contact." -#: src/Module/Contact.php:522 +#: src/Module/Contact.php:525 msgid "Never" msgstr "Never" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was successful)" msgstr "(Update was successful)" -#: src/Module/Contact.php:525 +#: src/Module/Contact.php:528 msgid "(Update was not successful)" msgstr "(Update was not successful)" -#: src/Module/Contact.php:527 src/Module/Contact.php:1058 +#: src/Module/Contact.php:530 src/Module/Contact.php:1061 msgid "Suggest friends" msgstr "Suggest friends" -#: src/Module/Contact.php:531 +#: src/Module/Contact.php:534 #, php-format msgid "Network type: %s" msgstr "Network type: %s" -#: src/Module/Contact.php:536 +#: src/Module/Contact.php:539 msgid "Communications lost with this contact!" msgstr "Communications lost with this contact!" -#: src/Module/Contact.php:542 +#: src/Module/Contact.php:545 msgid "Fetch further information for feeds" msgstr "Fetch further information for feeds" -#: src/Module/Contact.php:544 +#: src/Module/Contact.php:547 msgid "" "Fetch information like preview pictures, title and teaser from the feed " "item. You can activate this if the feed doesn't contain much text. Keywords " "are taken from the meta header in the feed item and are posted as hash tags." msgstr "Fetch information like preview pictures, title, and teaser from the feed item. You can activate this if the feed doesn't contain much text. Keywords are taken from the meta header in the feed item and are posted as hash tags." -#: src/Module/Contact.php:547 +#: src/Module/Contact.php:550 msgid "Fetch information" msgstr "Fetch information" -#: src/Module/Contact.php:548 +#: src/Module/Contact.php:551 msgid "Fetch keywords" msgstr "Fetch keywords" -#: src/Module/Contact.php:549 +#: src/Module/Contact.php:552 msgid "Fetch information and keywords" msgstr "Fetch information and keywords" -#: src/Module/Contact.php:581 +#: src/Module/Contact.php:584 msgid "Profile Visibility" msgstr "Profile visibility" -#: src/Module/Contact.php:582 +#: src/Module/Contact.php:585 msgid "Contact Information / Notes" msgstr "Personal note" -#: src/Module/Contact.php:583 +#: src/Module/Contact.php:586 msgid "Contact Settings" msgstr "Notification and privacy " -#: src/Module/Contact.php:592 +#: src/Module/Contact.php:595 msgid "Contact" msgstr "Contact" -#: src/Module/Contact.php:596 +#: src/Module/Contact.php:599 #, php-format msgid "" "Please choose the profile you would like to display to %s when viewing your " "profile securely." msgstr "Please choose the profile you would like to display to %s when viewing your profile securely." -#: src/Module/Contact.php:598 +#: src/Module/Contact.php:601 msgid "Their personal note" msgstr "Their personal note" -#: src/Module/Contact.php:600 +#: src/Module/Contact.php:603 msgid "Edit contact notes" msgstr "Edit contact notes" -#: src/Module/Contact.php:604 +#: src/Module/Contact.php:607 msgid "Block/Unblock contact" msgstr "Block/Unblock contact" -#: src/Module/Contact.php:605 +#: src/Module/Contact.php:608 msgid "Ignore contact" msgstr "Ignore contact" -#: src/Module/Contact.php:606 +#: src/Module/Contact.php:609 msgid "Repair URL settings" msgstr "Repair URL settings" -#: src/Module/Contact.php:607 +#: src/Module/Contact.php:610 msgid "View conversations" msgstr "View conversations" -#: src/Module/Contact.php:612 +#: src/Module/Contact.php:615 msgid "Last update:" msgstr "Last update:" -#: src/Module/Contact.php:614 +#: src/Module/Contact.php:617 msgid "Update public posts" msgstr "Update public posts" -#: src/Module/Contact.php:616 src/Module/Contact.php:1068 +#: src/Module/Contact.php:619 src/Module/Contact.php:1071 msgid "Update now" msgstr "Update now" -#: src/Module/Contact.php:622 src/Module/Contact.php:825 -#: src/Module/Contact.php:1085 +#: src/Module/Contact.php:625 src/Module/Contact.php:828 +#: src/Module/Contact.php:1088 msgid "Unignore" msgstr "Unignore" -#: src/Module/Contact.php:626 +#: src/Module/Contact.php:629 msgid "Currently blocked" msgstr "Currently blocked" -#: src/Module/Contact.php:627 +#: src/Module/Contact.php:630 msgid "Currently ignored" msgstr "Currently ignored" -#: src/Module/Contact.php:628 +#: src/Module/Contact.php:631 msgid "Currently archived" msgstr "Currently archived" -#: src/Module/Contact.php:629 +#: src/Module/Contact.php:632 msgid "Awaiting connection acknowledge" msgstr "Awaiting connection acknowledgement" -#: src/Module/Contact.php:630 +#: src/Module/Contact.php:633 msgid "" "Replies/likes to your public posts may still be visible" msgstr "Replies/Likes to your public posts may still be visible" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Notification for new posts" msgstr "Notification for new posts" -#: src/Module/Contact.php:631 +#: src/Module/Contact.php:634 msgid "Send a notification of every new post of this contact" msgstr "Send notification for every new post from this contact" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "Blacklisted keywords" msgstr "Blacklisted keywords" -#: src/Module/Contact.php:633 +#: src/Module/Contact.php:636 msgid "" "Comma separated list of keywords that should not be converted to hashtags, " "when \"Fetch information and keywords\" is selected" msgstr "Comma-separated list of keywords that should not be converted to hashtags, when \"Fetch information and keywords\" is selected" -#: src/Module/Contact.php:650 +#: src/Module/Contact.php:653 src/Module/Settings/TwoFactor/Index.php:100 msgid "Actions" msgstr "Actions" -#: src/Module/Contact.php:696 +#: src/Module/Contact.php:700 msgid "Suggestions" msgstr "Suggestions" -#: src/Module/Contact.php:699 +#: src/Module/Contact.php:703 msgid "Suggest potential friends" msgstr "Suggest potential friends" -#: src/Module/Contact.php:707 +#: src/Module/Contact.php:708 src/Module/Group.php:287 +msgid "All Contacts" +msgstr "All contacts" + +#: src/Module/Contact.php:711 msgid "Show all contacts" msgstr "Show all contacts" -#: src/Module/Contact.php:712 +#: src/Module/Contact.php:716 msgid "Unblocked" msgstr "Unblocked" -#: src/Module/Contact.php:715 +#: src/Module/Contact.php:719 msgid "Only show unblocked contacts" msgstr "Only show unblocked contacts" -#: src/Module/Contact.php:720 +#: src/Module/Contact.php:724 msgid "Blocked" msgstr "Blocked" -#: src/Module/Contact.php:723 +#: src/Module/Contact.php:727 msgid "Only show blocked contacts" msgstr "Only show blocked contacts" -#: src/Module/Contact.php:728 +#: src/Module/Contact.php:732 msgid "Ignored" msgstr "Ignored" -#: src/Module/Contact.php:731 +#: src/Module/Contact.php:735 msgid "Only show ignored contacts" msgstr "Only show ignored contacts" -#: src/Module/Contact.php:736 +#: src/Module/Contact.php:740 msgid "Archived" msgstr "Archived" -#: src/Module/Contact.php:739 +#: src/Module/Contact.php:743 msgid "Only show archived contacts" msgstr "Only show archived contacts" -#: src/Module/Contact.php:744 +#: src/Module/Contact.php:748 msgid "Hidden" msgstr "Hidden" -#: src/Module/Contact.php:747 +#: src/Module/Contact.php:751 msgid "Only show hidden contacts" msgstr "Only show hidden contacts" -#: src/Module/Contact.php:755 +#: src/Module/Contact.php:759 msgid "Organize your contact groups" msgstr "Organize your contact groups" -#: src/Module/Contact.php:815 +#: src/Module/Contact.php:818 msgid "Search your contacts" msgstr "Search your contacts" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Archive" msgstr "Archive" -#: src/Module/Contact.php:826 src/Module/Contact.php:1094 +#: src/Module/Contact.php:829 src/Module/Contact.php:1097 msgid "Unarchive" msgstr "Unarchive" -#: src/Module/Contact.php:829 +#: src/Module/Contact.php:832 msgid "Batch Actions" msgstr "Batch actions" -#: src/Module/Contact.php:856 +#: src/Module/Contact.php:859 msgid "Conversations started by this contact" msgstr "Conversations started by this contact" -#: src/Module/Contact.php:861 +#: src/Module/Contact.php:864 msgid "Posts and Comments" msgstr "Posts and Comments" -#: src/Module/Contact.php:884 +#: src/Module/Contact.php:887 msgid "View all contacts" msgstr "View all contacts" -#: src/Module/Contact.php:895 +#: src/Module/Contact.php:898 msgid "View all common friends" msgstr "View all common friends" -#: src/Module/Contact.php:905 +#: src/Module/Contact.php:908 msgid "Advanced Contact Settings" msgstr "Advanced contact settings" -#: src/Module/Contact.php:991 +#: src/Module/Contact.php:994 msgid "Mutual Friendship" msgstr "Mutual friendship" -#: src/Module/Contact.php:996 +#: src/Module/Contact.php:999 msgid "is a fan of yours" msgstr "is a fan of yours" -#: src/Module/Contact.php:1001 +#: src/Module/Contact.php:1004 msgid "you are a fan of" msgstr "I follow them" -#: src/Module/Contact.php:1025 +#: src/Module/Contact.php:1028 msgid "Edit contact" msgstr "Edit contact" -#: src/Module/Contact.php:1079 +#: src/Module/Contact.php:1082 msgid "Toggle Blocked status" msgstr "Toggle blocked status" -#: src/Module/Contact.php:1087 +#: src/Module/Contact.php:1090 msgid "Toggle Ignored status" msgstr "Toggle ignored status" -#: src/Module/Contact.php:1096 +#: src/Module/Contact.php:1099 msgid "Toggle Archive status" msgstr "Toggle archive status" -#: src/Module/Contact.php:1104 +#: src/Module/Contact.php:1107 msgid "Delete contact" msgstr "Delete contact" -#: src/Module/Install.php:118 +#: src/Module/Credits.php:25 +msgid "Credits" +msgstr "Credits" + +#: src/Module/Credits.php:26 +msgid "" +"Friendica is a community project, that would not be possible without the " +"help of many people. Here is a list of those who have contributed to the " +"code or the translation of Friendica. Thank you all!" +msgstr "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!" + +#: src/Module/Directory.php:66 +msgid "No entries (some entries may be hidden)." +msgstr "No entries (entries may be hidden)." + +#: src/Module/Directory.php:85 +msgid "Find on this site" +msgstr "Find on this site" + +#: src/Module/Directory.php:87 +msgid "Results for:" +msgstr "Results for:" + +#: src/Module/Directory.php:89 +msgid "Site Directory" +msgstr "Site directory" + +#: src/Module/Feedtest.php:20 src/Module/Filer/SaveTag.php:20 +msgid "You must be logged in to use this module" +msgstr "You must be logged in to use this module" + +#: src/Module/Feedtest.php:49 +msgid "Source URL" +msgstr "Source URL" + +#: src/Module/Filer/SaveTag.php:39 +#, php-format +msgid "Filetag %s saved to item" +msgstr "File-tag %s saved to item" + +#: src/Module/Filer/SaveTag.php:49 +msgid "- select -" +msgstr "- select -" + +#: src/Module/FollowConfirm.php:37 +msgid "No given contact." +msgstr "No given contact." + +#: src/Module/Friendica.php:40 +msgid "Installed addons/apps:" +msgstr "Installed addons/apps:" + +#: src/Module/Friendica.php:45 +msgid "No installed addons/apps" +msgstr "No installed addons/apps" + +#: src/Module/Friendica.php:50 +#, php-format +msgid "Read about the Terms of Service of this node." +msgstr "Read about the Terms of Service of this node." + +#: src/Module/Friendica.php:57 +msgid "On this server the following remote servers are blocked." +msgstr "On this server the following remote servers are blocked." + +#: src/Module/Friendica.php:75 +#, php-format +msgid "" +"This is Friendica, version %s that is running at the web location %s. The " +"database version is %s, the post update version is %s." +msgstr "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s." + +#: src/Module/Friendica.php:80 +msgid "" +"Please visit Friendi.ca to learn more " +"about the Friendica project." +msgstr "Please visit Friendi.ca to learn more about the Friendica project." + +#: src/Module/Friendica.php:81 +msgid "Bug reports and issues: please visit" +msgstr "Bug reports and issues: please visit" + +#: src/Module/Friendica.php:81 +msgid "the bugtracker at github" +msgstr "the bugtracker at github" + +#: src/Module/Friendica.php:82 +msgid "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" +msgstr "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca" + +#: src/Module/Group.php:42 +msgid "Group created." +msgstr "Group created." + +#: src/Module/Group.php:48 +msgid "Could not create group." +msgstr "Could not create group." + +#: src/Module/Group.php:59 src/Module/Group.php:207 src/Module/Group.php:233 +msgid "Group not found." +msgstr "Group not found." + +#: src/Module/Group.php:65 +msgid "Group name changed." +msgstr "Group name changed." + +#: src/Module/Group.php:87 +msgid "Unknown group." +msgstr "Unknown group." + +#: src/Module/Group.php:96 +msgid "Contact is unavailable." +msgstr "Contact is unavailable." + +#: src/Module/Group.php:100 +msgid "Contact is deleted." +msgstr "Contact is deleted." + +#: src/Module/Group.php:106 +msgid "Contact is blocked, unable to add it to a group." +msgstr "Contact is blocked, unable to add it to a group." + +#: src/Module/Group.php:110 +msgid "Unable to add the contact to the group." +msgstr "Unable to add contact to group." + +#: src/Module/Group.php:112 +msgid "Contact successfully added to group." +msgstr "Contact successfully added to group." + +#: src/Module/Group.php:116 +msgid "Unable to remove the contact from the group." +msgstr "Unable to remove contact from group." + +#: src/Module/Group.php:118 +msgid "Contact successfully removed from group." +msgstr "Contact successfully removed from group." + +#: src/Module/Group.php:121 +msgid "Unknown group command." +msgstr "Unknown group command." + +#: src/Module/Group.php:124 +msgid "Bad request." +msgstr "Bad request." + +#: src/Module/Group.php:163 +msgid "Save Group" +msgstr "Save group" + +#: src/Module/Group.php:164 +msgid "Filter" +msgstr "Filter" + +#: src/Module/Group.php:170 +msgid "Create a group of contacts/friends." +msgstr "Create a group of contacts/friends." + +#: src/Module/Group.php:212 +msgid "Group removed." +msgstr "Group removed." + +#: src/Module/Group.php:214 +msgid "Unable to remove group." +msgstr "Unable to remove group." + +#: src/Module/Group.php:265 +msgid "Delete Group" +msgstr "Delete group" + +#: src/Module/Group.php:275 +msgid "Edit Group Name" +msgstr "Edit group name" + +#: src/Module/Group.php:285 +msgid "Members" +msgstr "Members" + +#: src/Module/Group.php:301 +msgid "Remove contact from group" +msgstr "Remove contact from group" + +#: src/Module/Group.php:335 +msgid "Add contact to group" +msgstr "Add contact to group" + +#: src/Module/Help.php:43 +msgid "Help:" +msgstr "Help:" + +#: src/Module/Home.php:42 +#, php-format +msgid "Welcome to %s" +msgstr "Welcome to %s" + +#: src/Module/Install.php:158 msgid "Friendica Communications Server - Setup" msgstr "Friendica Communications Server - Setup" -#: src/Module/Install.php:129 +#: src/Module/Install.php:169 msgid "System check" msgstr "System check" -#: src/Module/Install.php:134 +#: src/Module/Install.php:174 msgid "Check again" msgstr "Check again" -#: src/Module/Install.php:151 +#: src/Module/Install.php:189 +msgid "Base settings" +msgstr "Base settings" + +#: src/Module/Install.php:196 +msgid "Host name" +msgstr "Host name" + +#: src/Module/Install.php:198 +msgid "" +"Overwrite this field in case the determinated hostname isn't right, " +"otherweise leave it as is." +msgstr "Overwrite this field in case the hostname is incorrect, otherwise leave it as is." + +#: src/Module/Install.php:201 +msgid "Base path to installation" +msgstr "Base path to installation" + +#: src/Module/Install.php:203 +msgid "" +"If the system cannot detect the correct path to your installation, enter the" +" correct path here. This setting should only be set if you are using a " +"restricted system and symbolic links to your webroot." +msgstr "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot." + +#: src/Module/Install.php:206 +msgid "Sub path of the URL" +msgstr "URL Sub-path " + +#: src/Module/Install.php:208 +msgid "" +"Overwrite this field in case the sub path determination isn't right, " +"otherwise leave it as is. Leaving this field blank means the installation is" +" at the base URL without sub path." +msgstr "Overwrite this field in case the sub path determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub-path." + +#: src/Module/Install.php:219 msgid "Database connection" msgstr "Database connection" -#: src/Module/Install.php:152 +#: src/Module/Install.php:220 msgid "" "In order to install Friendica we need to know how to connect to your " "database." msgstr "In order to install Friendica we need to know how to connect to your database." -#: src/Module/Install.php:153 +#: src/Module/Install.php:221 msgid "" "Please contact your hosting provider or site administrator if you have " "questions about these settings." msgstr "Please contact your hosting provider or site administrator if you have questions about these settings." -#: src/Module/Install.php:154 +#: src/Module/Install.php:222 msgid "" "The database you specify below should already exist. If it does not, please " "create it before continuing." msgstr "The database you specify below should already exist. If it does not, please create it before continuing." -#: src/Module/Install.php:157 +#: src/Module/Install.php:229 msgid "Database Server Name" msgstr "Database server name" -#: src/Module/Install.php:162 +#: src/Module/Install.php:234 msgid "Database Login Name" msgstr "Database login name" -#: src/Module/Install.php:168 +#: src/Module/Install.php:240 msgid "Database Login Password" msgstr "Database login password" -#: src/Module/Install.php:170 +#: src/Module/Install.php:242 msgid "For security reasons the password must not be empty" msgstr "For security reasons the password must not be empty" -#: src/Module/Install.php:173 +#: src/Module/Install.php:245 msgid "Database Name" msgstr "Database name" -#: src/Module/Install.php:178 src/Module/Install.php:214 +#: src/Module/Install.php:249 src/Module/Install.php:278 +msgid "Please select a default timezone for your website" +msgstr "Please select a default time zone for your website" + +#: src/Module/Install.php:263 +msgid "Site settings" +msgstr "Site settings" + +#: src/Module/Install.php:273 msgid "Site administrator email address" msgstr "Site administrator email address" -#: src/Module/Install.php:180 src/Module/Install.php:214 +#: src/Module/Install.php:275 msgid "" "Your account email address must match this in order to use the web admin " "panel." msgstr "Your account email address must match this in order to use the web admin panel." -#: src/Module/Install.php:184 src/Module/Install.php:215 -msgid "Please select a default timezone for your website" -msgstr "Please select a default time zone for your website" - -#: src/Module/Install.php:208 -msgid "Site settings" -msgstr "Site settings" - -#: src/Module/Install.php:217 +#: src/Module/Install.php:282 msgid "System Language:" msgstr "System language:" -#: src/Module/Install.php:219 +#: src/Module/Install.php:284 msgid "" "Set the default language for your Friendica installation interface and to " "send emails." msgstr "Set the default language for your Friendica installation interface and email communication." -#: src/Module/Install.php:231 +#: src/Module/Install.php:296 msgid "Your Friendica site database has been installed." msgstr "Your Friendica site database has been installed." -#: src/Module/Install.php:239 +#: src/Module/Install.php:304 msgid "Installation finished" msgstr "Installation finished" -#: src/Module/Install.php:261 +#: src/Module/Install.php:326 msgid "

    What next

    " msgstr "

    What next

    " -#: src/Module/Install.php:262 +#: src/Module/Install.php:327 msgid "" "IMPORTANT: You will need to [manually] setup a scheduled task for the " "worker." msgstr "IMPORTANT: You will need to [manually] setup a scheduled task for the worker." -#: src/Module/Install.php:265 +#: src/Module/Install.php:330 #, php-format msgid "" "Go to your new Friendica node registration page " @@ -9272,43 +9292,172 @@ msgid "" " administrator email. This will allow you to enter the site admin panel." msgstr "Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel." -#: src/Module/Itemsource.php:41 -msgid "Item Guid" -msgstr "Item Guid" +#: src/Module/Invite.php:37 +msgid "Total invitation limit exceeded." +msgstr "Total invitation limit exceeded" -#: src/Module/Login.php:292 +#: src/Module/Invite.php:60 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Not a valid email address" + +#: src/Module/Invite.php:87 +msgid "Please join us on Friendica" +msgstr "Please join us on Friendica." + +#: src/Module/Invite.php:96 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Invitation limit is exceeded. Please contact your site administrator." + +#: src/Module/Invite.php:100 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Message delivery failed" + +#: src/Module/Invite.php:104 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d message sent." +msgstr[1] "%d messages sent." + +#: src/Module/Invite.php:122 +msgid "You have no more invitations available" +msgstr "You have no more invitations available." + +#: src/Module/Invite.php:129 +#, php-format +msgid "" +"Visit %s for a list of public sites that you can join. Friendica members on " +"other sites can all connect with each other, as well as with members of many" +" other social networks." +msgstr "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks." + +#: src/Module/Invite.php:131 +#, php-format +msgid "" +"To accept this invitation, please visit and register at %s or any other " +"public Friendica website." +msgstr "To accept this invitation, please sign up at %s or any other public Friendica website." + +#: src/Module/Invite.php:132 +#, php-format +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks. See %s for a list of alternate Friendica " +"sites you can join." +msgstr "Friendica sites are all inter-connected to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join." + +#: src/Module/Invite.php:136 +msgid "" +"Our apologies. This system is not currently configured to connect with other" +" public sites or invite members." +msgstr "Our apologies. This system is not currently configured to connect with other public sites or invite members." + +#: src/Module/Invite.php:139 +msgid "" +"Friendica sites all inter-connect to create a huge privacy-enhanced social " +"web that is owned and controlled by its members. They can also connect with " +"many traditional social networks." +msgstr "Friendica sites are all inter-connected to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks." + +#: src/Module/Invite.php:138 +#, php-format +msgid "To accept this invitation, please visit and register at %s." +msgstr "To accept this invitation, please visit and register at %s." + +#: src/Module/Invite.php:146 +msgid "Send invitations" +msgstr "Send invitations" + +#: src/Module/Invite.php:147 +msgid "Enter email addresses, one per line:" +msgstr "Enter email addresses, one per line:" + +#: src/Module/Invite.php:151 +msgid "" +"You are cordially invited to join me and other close friends on Friendica - " +"and help us to create a better social web." +msgstr "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web." + +#: src/Module/Invite.php:153 +msgid "You will need to supply this invitation code: $invite_code" +msgstr "You will need to supply this invitation code: $invite_code" + +#: src/Module/Invite.php:153 +msgid "" +"Once you have registered, please connect with me via my profile page at:" +msgstr "Once you have signed up, please connect with me via my profile page at:" + +#: src/Module/Invite.php:155 +msgid "" +"For more information about the Friendica project and why we feel it is " +"important, please visit http://friendi.ca" +msgstr "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca" + +#: src/Module/Localtime.php:30 +msgid "Time Conversion" +msgstr "Time conversion" + +#: src/Module/Localtime.php:31 +msgid "" +"Friendica provides this service for sharing events with other networks and " +"friends in unknown timezones." +msgstr "Friendica provides this service for sharing events with other networks and friends in unknown time zones." + +#: src/Module/Localtime.php:32 +#, php-format +msgid "UTC time: %s" +msgstr "UTC time: %s" + +#: src/Module/Localtime.php:35 +#, php-format +msgid "Current timezone: %s" +msgstr "Current time zone: %s" + +#: src/Module/Localtime.php:39 +#, php-format +msgid "Converted localtime: %s" +msgstr "Converted local time: %s" + +#: src/Module/Localtime.php:43 +msgid "Please select your timezone:" +msgstr "Please select your time zone:" + +#: src/Module/Login.php:295 msgid "Create a New Account" msgstr "Create a new account" -#: src/Module/Login.php:325 +#: src/Module/Login.php:328 msgid "Password: " msgstr "Password: " -#: src/Module/Login.php:326 +#: src/Module/Login.php:329 msgid "Remember me" msgstr "Remember me" -#: src/Module/Login.php:329 +#: src/Module/Login.php:332 msgid "Or login using OpenID: " msgstr "Or login with OpenID: " -#: src/Module/Login.php:335 +#: src/Module/Login.php:338 msgid "Forgot your password?" msgstr "Forgot your password?" -#: src/Module/Login.php:338 +#: src/Module/Login.php:341 msgid "Website Terms of Service" msgstr "Website Terms of Service" -#: src/Module/Login.php:339 +#: src/Module/Login.php:342 msgid "terms of service" msgstr "Terms of service" -#: src/Module/Login.php:341 +#: src/Module/Login.php:344 msgid "Website Privacy Policy" msgstr "Website Privacy Policy" -#: src/Module/Login.php:342 +#: src/Module/Login.php:345 msgid "privacy policy" msgstr "Privacy policy" @@ -9316,26 +9465,35 @@ msgstr "Privacy policy" msgid "Logged out." msgstr "Logged out." -#: src/Module/Profile.php:102 src/Module/Profile.php:105 +#: src/Module/Maintenance.php:29 +msgid "System down for maintenance" +msgstr "Sorry, the system is currently down for maintenance." + +#: src/Module/PageNotFound.php:13 +msgid "Page not found." +msgstr "Page not found" + +#: src/Module/Photo.php:87 +#, php-format +msgid "Invalid photo with id %s." +msgstr "Invalid photo with id %s." + +#: src/Module/Profile.php:110 src/Module/Profile.php:113 #: src/Protocol/OStatus.php:1302 #, php-format msgid "%s's timeline" msgstr "%s's timeline" -#: src/Module/Profile.php:103 src/Protocol/OStatus.php:1306 +#: src/Module/Profile.php:111 src/Protocol/OStatus.php:1306 #, php-format msgid "%s's posts" msgstr "%s's posts" -#: src/Module/Profile.php:104 src/Protocol/OStatus.php:1309 +#: src/Module/Profile.php:112 src/Protocol/OStatus.php:1309 #, php-format msgid "%s's comments" msgstr "%s's comments" -#: src/Module/Proxy.php:73 -msgid "Bad Request." -msgstr "Bad Request." - #: src/Module/Register.php:83 msgid "" "You may (optionally) fill in this form via OpenID by supplying your OpenID " @@ -9401,34 +9559,258 @@ msgstr "Choose a nickname: " msgid "Import your profile to this friendica instance" msgstr "Import an existing Friendica profile to this node." -#: src/Module/Register.php:150 +#: src/Module/Register.php:149 msgid "Note: This node explicitly contains adult content" msgstr "Note: This node explicitly contains adult content" -#: src/Module/Register.php:243 +#: src/Module/Register.php:242 msgid "" "Registration successful. Please check your email for further instructions." msgstr "Registration successful. Please check your email for further instructions." -#: src/Module/Register.php:247 +#: src/Module/Register.php:246 #, php-format msgid "" "Failed to send email message. Here your accout details:
    login: %s
    " "password: %s

    You can change your password after login." msgstr "Failed to send email message. Here are your account details:
    login: %s
    password: %s

    You can change your password after login." -#: src/Module/Register.php:254 +#: src/Module/Register.php:253 msgid "Registration successful." msgstr "Registration successful." -#: src/Module/Register.php:259 +#: src/Module/Register.php:258 msgid "Your registration can not be processed." msgstr "Your registration cannot be processed." -#: src/Module/Register.php:305 +#: src/Module/Register.php:304 msgid "Your registration is pending approval by the site owner." msgstr "Your registration is pending approval by the site administrator." +#: src/Module/Settings/TwoFactor/Index.php:50 +msgid "Two-factor authentication successfully disabled." +msgstr "Two-factor authentication successfully disabled." + +#: src/Module/Settings/TwoFactor/Index.php:86 +msgid "" +"

    Use an application on a mobile device to get two-factor authentication " +"codes when prompted on login.

    " +msgstr "

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    " + +#: src/Module/Settings/TwoFactor/Index.php:90 +msgid "Authenticator app" +msgstr "Authenticator app" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Configured" +msgstr "Configured" + +#: src/Module/Settings/TwoFactor/Index.php:91 +msgid "Not Configured" +msgstr "Not configured" + +#: src/Module/Settings/TwoFactor/Index.php:92 +msgid "

    You haven't finished configuring your authenticator app.

    " +msgstr "

    You haven't finished configuring your authenticator app.

    " + +#: src/Module/Settings/TwoFactor/Index.php:93 +msgid "

    Your authenticator app is correctly configured.

    " +msgstr "

    Your authenticator app is correctly configured.

    " + +#: src/Module/Settings/TwoFactor/Index.php:95 +msgid "Recovery codes" +msgstr "Recovery codes" + +#: src/Module/Settings/TwoFactor/Index.php:96 +msgid "Remaining valid codes" +msgstr "Remaining valid codes" + +#: src/Module/Settings/TwoFactor/Index.php:98 +msgid "" +"

    These one-use codes can replace an authenticator app code in case you " +"have lost access to it.

    " +msgstr "

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    " + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "Current password:" +msgstr "Current password:" + +#: src/Module/Settings/TwoFactor/Index.php:101 +msgid "" +"You need to provide your current password to change two-factor " +"authentication settings." +msgstr "You need to provide your current password to change two-factor authentication settings." + +#: src/Module/Settings/TwoFactor/Index.php:102 +msgid "Enable two-factor authentication" +msgstr "Enable two-factor authentication" + +#: src/Module/Settings/TwoFactor/Index.php:103 +msgid "Disable two-factor authentication" +msgstr "Disable two-factor authentication" + +#: src/Module/Settings/TwoFactor/Index.php:104 +msgid "Show recovery codes" +msgstr "Show recovery codes" + +#: src/Module/Settings/TwoFactor/Index.php:105 +msgid "Finish app configuration" +msgstr "Finish app configuration" + +#: src/Module/Settings/TwoFactor/Recovery.php:34 +#: src/Module/Settings/TwoFactor/Verify.php:41 +msgid "Please enter your password to access this page." +msgstr "Please enter your password to access this page." + +#: src/Module/Settings/TwoFactor/Recovery.php:50 +msgid "New recovery codes successfully generated." +msgstr "New recovery codes successfully generated." + +#: src/Module/Settings/TwoFactor/Recovery.php:76 +msgid "Two-factor recovery codes" +msgstr "Two-factor recovery codes" + +#: src/Module/Settings/TwoFactor/Recovery.php:78 +msgid "" +"

    Recovery codes can be used to access your account in the event you lose " +"access to your device and cannot receive two-factor authentication " +"codes.

    Put these in a safe spot! If you lose your " +"device and don’t have the recovery codes you will lose access to your " +"account.

    " +msgstr "

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe place! If you lose your device and don’t have the recovery codes you will lose access to your account.

    " + +#: src/Module/Settings/TwoFactor/Recovery.php:80 +msgid "" +"When you generate new recovery codes, you must copy the new codes. Your old " +"codes won’t work anymore." +msgstr "When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore." + +#: src/Module/Settings/TwoFactor/Recovery.php:81 +msgid "Generate new recovery codes" +msgstr "Generate new recovery codes" + +#: src/Module/Settings/TwoFactor/Recovery.php:83 +msgid "Next: Verification" +msgstr "Next: Verification" + +#: src/Module/Settings/TwoFactor/Verify.php:63 +msgid "Two-factor authentication successfully activated." +msgstr "Two-factor authentication successfully activated." + +#: src/Module/Settings/TwoFactor/Verify.php:67 +#: src/Module/TwoFactor/Recovery.php:46 src/Module/TwoFactor/Verify.php:41 +msgid "Invalid code, please retry." +msgstr "Invalid code, please try again." + +#: src/Module/Settings/TwoFactor/Verify.php:96 +#, php-format +msgid "" +"

    Or you can submit the authentication settings manually:

    \n" +"
    \n" +"\t
    Issuer
    \n" +"\t
    %s
    \n" +"\t
    Account Name
    \n" +"\t
    %s
    \n" +"\t
    Secret Key
    \n" +"\t
    %s
    \n" +"\t
    Type
    \n" +"\t
    Time-based
    \n" +"\t
    Number of digits
    \n" +"\t
    6
    \n" +"\t
    Hashing algorithm
    \n" +"\t
    SHA-1
    \n" +"
    " +msgstr "

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    " + +#: src/Module/Settings/TwoFactor/Verify.php:116 +msgid "Two-factor code verification" +msgstr "Two-factor code verification" + +#: src/Module/Settings/TwoFactor/Verify.php:118 +msgid "" +"

    Please scan this QR Code with your authenticator app and submit the " +"provided code.

    " +msgstr "

    Please scan this QR Code with your authenticator app and submit the provided code.

    " + +#: src/Module/Settings/TwoFactor/Verify.php:120 +#, php-format +msgid "" +"

    Or you can open the following URL in your mobile devicde:

    %s

    " +msgstr "

    Or you can open the following URL in your mobile device:

    %s

    " + +#: src/Module/Settings/TwoFactor/Verify.php:126 +#: src/Module/TwoFactor/Verify.php:63 +msgid "Please enter a code from your authentication app" +msgstr "Please enter a code from your authentication app" + +#: src/Module/Settings/TwoFactor/Verify.php:127 +msgid "Verify code and enable two-factor authentication" +msgstr "Verify code and enable two-factor authentication" + +#: src/Module/Special/HTTPException.php:32 +msgid "Bad Request" +msgstr "Bad request" + +#: src/Module/Special/HTTPException.php:33 +msgid "Unauthorized" +msgstr "Unauthorized" + +#: src/Module/Special/HTTPException.php:34 +msgid "Forbidden" +msgstr "Forbidden" + +#: src/Module/Special/HTTPException.php:35 +msgid "Not Found" +msgstr "Not found" + +#: src/Module/Special/HTTPException.php:36 +msgid "Internal Server Error" +msgstr "Internal Server Error" + +#: src/Module/Special/HTTPException.php:37 +msgid "Service Unavailable" +msgstr "Service Unavailable" + +#: src/Module/Special/HTTPException.php:44 +msgid "" +"The server cannot or will not process the request due to an apparent client " +"error." +msgstr "The server cannot process the request due to an apparent client error." + +#: src/Module/Special/HTTPException.php:45 +msgid "" +"Authentication is required and has failed or has not yet been provided." +msgstr "Authentication is required but has failed or not yet being provided." + +#: src/Module/Special/HTTPException.php:46 +msgid "" +"The request was valid, but the server is refusing action. The user might not" +" have the necessary permissions for a resource, or may need an account." +msgstr "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account." + +#: src/Module/Special/HTTPException.php:47 +msgid "" +"The requested resource could not be found but may be available in the " +"future." +msgstr "The requested resource could not be found but may be available in the future." + +#: src/Module/Special/HTTPException.php:48 +msgid "" +"An unexpected condition was encountered and no more specific message is " +"suitable." +msgstr "An unexpected condition was encountered and no more specific message is available." + +#: src/Module/Special/HTTPException.php:49 +msgid "" +"The server is currently unavailable (because it is overloaded or down for " +"maintenance). Please try again later." +msgstr "The server is currently unavailable (possibly because it is overloaded or down for maintenance). Please try again later." + +#: src/Module/Special/HTTPException.php:55 +msgid "Go back" +msgstr "Go back" + #: src/Module/Tos.php:35 src/Module/Tos.php:77 msgid "" "At the time of registration, and for providing communications between the " @@ -9464,165 +9846,207 @@ msgstr "At any point in time a logged in user can export their account data from msgid "Privacy Statement" msgstr "Privacy Statement" -#: src/Object/Post.php:136 +#: src/Module/TwoFactor/Recovery.php:41 +#, php-format +msgid "Remaining recovery codes: %d" +msgstr "Remaining recovery codes: %d" + +#: src/Module/TwoFactor/Recovery.php:65 +msgid "Two-factor recovery" +msgstr "Two-factor recovery" + +#: src/Module/TwoFactor/Recovery.php:66 +msgid "" +"

    You can enter one of your one-time recovery codes in case you lost access" +" to your mobile device.

    " +msgstr "

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    " + +#: src/Module/TwoFactor/Recovery.php:67 src/Module/TwoFactor/Verify.php:62 +#, php-format +msgid "Don’t have your phone? Enter a two-factor recovery code" +msgstr "Don’t have your phone? Enter a two-factor recovery code" + +#: src/Module/TwoFactor/Recovery.php:68 +msgid "Please enter a recovery code" +msgstr "Please enter a recovery code" + +#: src/Module/TwoFactor/Recovery.php:69 +msgid "Submit recovery code and complete login" +msgstr "Submit recovery code and complete login" + +#: src/Module/TwoFactor/Verify.php:61 +msgid "" +"

    Open the two-factor authentication app on your device to get an " +"authentication code and verify your identity.

    " +msgstr "

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    " + +#: src/Module/TwoFactor/Verify.php:64 +msgid "Verify code and complete login" +msgstr "Verify code and complete login" + +#: src/Object/Post.php:137 msgid "This entry was edited" msgstr "This entry was edited" -#: src/Object/Post.php:198 +#: src/Object/Post.php:157 +msgid "Private Message" +msgstr "Private message" + +#: src/Object/Post.php:199 msgid "Delete locally" msgstr "Delete locally" -#: src/Object/Post.php:201 +#: src/Object/Post.php:202 msgid "Delete globally" msgstr "Delete globally" -#: src/Object/Post.php:201 +#: src/Object/Post.php:202 msgid "Remove locally" msgstr "Remove locally" -#: src/Object/Post.php:215 +#: src/Object/Post.php:216 msgid "save to folder" msgstr "Save to folder" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I will attend" msgstr "I will attend" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I will not attend" msgstr "I will not attend" -#: src/Object/Post.php:250 +#: src/Object/Post.php:251 msgid "I might attend" msgstr "I might attend" -#: src/Object/Post.php:278 +#: src/Object/Post.php:279 msgid "ignore thread" msgstr "Ignore thread" -#: src/Object/Post.php:279 +#: src/Object/Post.php:280 msgid "unignore thread" msgstr "Unignore thread" -#: src/Object/Post.php:280 +#: src/Object/Post.php:281 msgid "toggle ignore status" msgstr "Toggle ignore status" -#: src/Object/Post.php:291 +#: src/Object/Post.php:292 msgid "add star" msgstr "Add star" -#: src/Object/Post.php:292 +#: src/Object/Post.php:293 msgid "remove star" msgstr "Remove star" -#: src/Object/Post.php:293 +#: src/Object/Post.php:294 msgid "toggle star status" msgstr "Toggle star status" -#: src/Object/Post.php:296 +#: src/Object/Post.php:297 msgid "starred" msgstr "Starred" -#: src/Object/Post.php:300 +#: src/Object/Post.php:301 msgid "add tag" msgstr "Add tag" -#: src/Object/Post.php:311 +#: src/Object/Post.php:312 msgid "like" msgstr "Like" -#: src/Object/Post.php:312 +#: src/Object/Post.php:313 msgid "dislike" msgstr "Dislike" -#: src/Object/Post.php:315 +#: src/Object/Post.php:316 msgid "Share this" msgstr "Share this" -#: src/Object/Post.php:315 +#: src/Object/Post.php:316 msgid "share" msgstr "Share" -#: src/Object/Post.php:382 +#: src/Object/Post.php:384 msgid "to" msgstr "to" -#: src/Object/Post.php:383 +#: src/Object/Post.php:385 msgid "via" msgstr "via" -#: src/Object/Post.php:384 +#: src/Object/Post.php:386 msgid "Wall-to-Wall" msgstr "Wall-to-wall" -#: src/Object/Post.php:385 +#: src/Object/Post.php:387 msgid "via Wall-To-Wall:" msgstr "via wall-to-wall:" -#: src/Object/Post.php:418 +#: src/Object/Post.php:420 #, php-format msgid "Reply to %s" msgstr "Reply to %s" -#: src/Object/Post.php:433 +#: src/Object/Post.php:435 msgid "Notifier task is pending" msgstr "Notifier task is pending" -#: src/Object/Post.php:434 +#: src/Object/Post.php:436 msgid "Delivery to remote servers is pending" msgstr "Delivery to remote servers is pending" -#: src/Object/Post.php:435 +#: src/Object/Post.php:437 msgid "Delivery to remote servers is underway" msgstr "Delivery to remote servers is underway" -#: src/Object/Post.php:436 +#: src/Object/Post.php:438 msgid "Delivery to remote servers is mostly done" msgstr "Delivery to remote servers is mostly done" -#: src/Object/Post.php:437 +#: src/Object/Post.php:439 msgid "Delivery to remote servers is done" msgstr "Delivery to remote servers is done" -#: src/Object/Post.php:457 +#: src/Object/Post.php:459 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d comment" msgstr[1] "%d comments -" -#: src/Object/Post.php:458 +#: src/Object/Post.php:460 msgid "Show more" msgstr "Show more" -#: src/Object/Post.php:459 +#: src/Object/Post.php:461 msgid "Show fewer" msgstr "Show fewer" -#: src/Protocol/Diaspora.php:2496 +#: src/Protocol/Diaspora.php:2438 msgid "Sharing notification from Diaspora network" msgstr "Sharing notification from diaspora* network" -#: src/Protocol/Diaspora.php:3613 +#: src/Protocol/Diaspora.php:3598 msgid "Attachments:" msgstr "Attachments:" -#: src/Protocol/OStatus.php:1866 +#: src/Protocol/OStatus.php:1863 #, php-format msgid "%s is now following %s." msgstr "%s is now following %s." -#: src/Protocol/OStatus.php:1867 +#: src/Protocol/OStatus.php:1864 msgid "following" msgstr "following" -#: src/Protocol/OStatus.php:1870 +#: src/Protocol/OStatus.php:1867 #, php-format msgid "%s stopped following %s." msgstr "%s stopped following %s." -#: src/Protocol/OStatus.php:1871 +#: src/Protocol/OStatus.php:1868 msgid "stopped following" msgstr "stopped following" @@ -9692,16 +10116,16 @@ msgstr "in %1$d %2$s" msgid "%1$d %2$s ago" msgstr "%1$d %2$s ago" -#: src/Worker/Delivery.php:453 +#: src/Worker/Delivery.php:450 msgid "(no subject)" msgstr "(no subject)" -#: update.php:217 +#: update.php:218 #, php-format msgid "%s: Updating author-id and owner-id in item and thread table. " msgstr "%s: Updating author-id and owner-id in item and thread table. " -#: update.php:272 +#: update.php:273 #, php-format msgid "%s: Updating post-type." msgstr "%s: Updating post-type." @@ -9730,63 +10154,73 @@ msgstr "comix" msgid "slackr" msgstr "slackr" -#: view/theme/duepuntozero/config.php:75 +#: view/theme/duepuntozero/config.php:74 msgid "Variations" msgstr "Variations" -#: view/theme/frio/config.php:103 +#: view/theme/frio/config.php:105 msgid "Custom" msgstr "Custom" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Note" msgstr "Note" -#: view/theme/frio/config.php:115 +#: view/theme/frio/config.php:117 msgid "Check image permissions if all users are allowed to see the image" msgstr "Check image permissions that everyone is allowed to see the image" -#: view/theme/frio/config.php:122 +#: view/theme/frio/config.php:123 msgid "Select color scheme" msgstr "Select color scheme" -#: view/theme/frio/config.php:123 +#: view/theme/frio/config.php:124 +msgid "Copy or paste schemestring" +msgstr "Copy or paste theme string" + +#: view/theme/frio/config.php:124 +msgid "" +"You can copy this string to share your theme with others. Pasting here " +"applies the schemestring" +msgstr "You can copy this string to share your theme with others. Pasting here applies the theme string" + +#: view/theme/frio/config.php:125 msgid "Navigation bar background color" msgstr "Navigation bar background color:" -#: view/theme/frio/config.php:124 +#: view/theme/frio/config.php:126 msgid "Navigation bar icon color " msgstr "Navigation bar icon color:" -#: view/theme/frio/config.php:125 +#: view/theme/frio/config.php:127 msgid "Link color" msgstr "Link color:" -#: view/theme/frio/config.php:126 +#: view/theme/frio/config.php:128 msgid "Set the background color" msgstr "Background color:" -#: view/theme/frio/config.php:127 +#: view/theme/frio/config.php:129 msgid "Content background opacity" msgstr "Content background opacity" -#: view/theme/frio/config.php:128 +#: view/theme/frio/config.php:130 msgid "Set the background image" msgstr "Background image:" -#: view/theme/frio/config.php:129 +#: view/theme/frio/config.php:131 msgid "Background image style" msgstr "Background image style" -#: view/theme/frio/config.php:134 +#: view/theme/frio/config.php:136 msgid "Login page background image" msgstr "Login page background image" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Login page background color" msgstr "Login page background color" -#: view/theme/frio/config.php:138 +#: view/theme/frio/config.php:140 msgid "Leave background image and color empty for theme defaults" msgstr "Leave background image and color empty for theme defaults" @@ -9834,27 +10268,27 @@ msgstr "Guest" msgid "Visitor" msgstr "Visitor" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Alignment" msgstr "Alignment" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Left" msgstr "Left" -#: view/theme/quattro/config.php:77 +#: view/theme/quattro/config.php:76 msgid "Center" msgstr "Center" -#: view/theme/quattro/config.php:78 +#: view/theme/quattro/config.php:77 msgid "Color scheme" msgstr "Color scheme" -#: view/theme/quattro/config.php:79 +#: view/theme/quattro/config.php:78 msgid "Posts font size" msgstr "Posts font size" -#: view/theme/quattro/config.php:80 +#: view/theme/quattro/config.php:79 msgid "Textareas font size" msgstr "Text areas font size" @@ -9862,31 +10296,31 @@ msgstr "Text areas font size" msgid "Comma separated list of helper forums" msgstr "Comma-separated list of helper forums" -#: view/theme/vier/config.php:123 +#: view/theme/vier/config.php:122 msgid "Set style" msgstr "Set style" -#: view/theme/vier/config.php:124 +#: view/theme/vier/config.php:123 msgid "Community Pages" msgstr "Community pages" -#: view/theme/vier/config.php:125 view/theme/vier/theme.php:151 +#: view/theme/vier/config.php:124 view/theme/vier/theme.php:151 msgid "Community Profiles" msgstr "Community profiles" -#: view/theme/vier/config.php:126 +#: view/theme/vier/config.php:125 msgid "Help or @NewHere ?" msgstr "Help or @NewHere ?" -#: view/theme/vier/config.php:127 view/theme/vier/theme.php:373 +#: view/theme/vier/config.php:126 view/theme/vier/theme.php:373 msgid "Connect Services" msgstr "Connect services" -#: view/theme/vier/config.php:128 +#: view/theme/vier/config.php:127 msgid "Find Friends" msgstr "Find friends" -#: view/theme/vier/config.php:129 view/theme/vier/theme.php:181 +#: view/theme/vier/config.php:128 view/theme/vier/theme.php:181 msgid "Last users" msgstr "Last users" diff --git a/view/lang/en-us/strings.php b/view/lang/en-us/strings.php index e6ab81cef..e77eb64e1 100644 --- a/view/lang/en-us/strings.php +++ b/view/lang/en-us/strings.php @@ -37,6 +37,7 @@ $a->strings["Attending"] = [ ]; $a->strings["Not attending"] = "Not attending"; $a->strings["Might attend"] = "Might attend"; +$a->strings["Reshares"] = "Reshares"; $a->strings["Select"] = "Select"; $a->strings["Delete"] = "Delete"; $a->strings["View %s's profile @ %s"] = "View %s's profile @ %s"; @@ -54,6 +55,8 @@ $a->strings["View Photos"] = "View photos"; $a->strings["Network Posts"] = "Network posts"; $a->strings["View Contact"] = "View contact"; $a->strings["Send PM"] = "Send PM"; +$a->strings["Block"] = "Block"; +$a->strings["Ignore"] = "Ignore"; $a->strings["Poke"] = "Poke"; $a->strings["Connect/Follow"] = "Connect/Follow"; $a->strings["%s likes this."] = "%s likes this."; @@ -61,6 +64,7 @@ $a->strings["%s doesn't like this."] = "%s doesn't like this."; $a->strings["%s attends."] = "%s attends."; $a->strings["%s doesn't attend."] = "%s won't attend."; $a->strings["%s attends maybe."] = "%s might attend."; +$a->strings["%s reshared this."] = "%s reshared this."; $a->strings["and"] = "and"; $a->strings["and %d other people"] = "and %d other people"; $a->strings["%2\$d people like this"] = "%2\$d people like this"; @@ -73,6 +77,7 @@ $a->strings["%2\$d people don't attend"] = "%2\ $a->strings["%s don't attend."] = "%s won't attend."; $a->strings["%2\$d people attend maybe"] = "%2\$d people might attend"; $a->strings["%s attend maybe."] = "%s may be attending."; +$a->strings["%2\$d people reshared this"] = "%2\$d people reshared this"; $a->strings["Visible to everybody"] = "Visible to everybody"; $a->strings["Please enter a image/video/audio/webpage URL:"] = "Please enter an image/video/audio/webpage URL:"; $a->strings["Tag term:"] = "Tag term:"; @@ -195,474 +200,12 @@ $a->strings["Yes"] = "Yes"; $a->strings["Permission denied."] = "Permission denied."; $a->strings["Archives"] = "Archives"; $a->strings["show more"] = "show more"; -$a->strings["Theme settings updated."] = "Theme settings updated."; -$a->strings["Information"] = "Information"; -$a->strings["Overview"] = "Overview"; -$a->strings["Federation Statistics"] = "Federation statistics"; -$a->strings["Configuration"] = "Configuration"; -$a->strings["Site"] = "Site"; -$a->strings["Users"] = "Users"; -$a->strings["Addons"] = "Addons"; -$a->strings["Themes"] = "Theme selection"; -$a->strings["Additional features"] = "Additional features"; -$a->strings["Terms of Service"] = "Terms of Service"; -$a->strings["Database"] = "Database"; -$a->strings["DB updates"] = "DB updates"; -$a->strings["Inspect Queue"] = "Inspect queue"; -$a->strings["Inspect Deferred Workers"] = "Inspect deferred workers"; -$a->strings["Inspect worker Queue"] = "Inspect worker queue"; -$a->strings["Tools"] = "Tools"; -$a->strings["Contact Blocklist"] = "Contact blocklist"; -$a->strings["Server Blocklist"] = "Server blocklist"; -$a->strings["Delete Item"] = "Delete item"; -$a->strings["Logs"] = "Logs"; -$a->strings["View Logs"] = "View logs"; -$a->strings["Diagnostics"] = "Diagnostics"; -$a->strings["PHP Info"] = "PHP info"; -$a->strings["probe address"] = "Probe address"; -$a->strings["check webfinger"] = "Check webfinger"; -$a->strings["Admin"] = "Admin"; -$a->strings["Addon Features"] = "Addon features"; -$a->strings["User registrations waiting for confirmation"] = "User registrations awaiting confirmation"; -$a->strings["Administration"] = "Administration"; -$a->strings["Display Terms of Service"] = "Display Terms of Service"; -$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Enable the Terms of Service page. If this is enabled, a link to the terms will be added to the registration form and to the general information page."; -$a->strings["Display Privacy Statement"] = "Display Privacy Statement"; -$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Show some information needed, for example, to comply with EU-GDPR."; -$a->strings["Privacy Statement Preview"] = "Privacy Statement Preview"; -$a->strings["The Terms of Service"] = "Terms of Service"; -$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or less."; -$a->strings["Save Settings"] = "Save settings"; -$a->strings["Blocked domain"] = "Blocked domain"; -$a->strings["The blocked domain"] = "Blocked domain"; -$a->strings["Reason for the block"] = "Reason for the block"; -$a->strings["The reason why you blocked this domain."] = "Reason why you blocked this domain."; -$a->strings["Delete domain"] = "Delete domain"; -$a->strings["Check to delete this entry from the blocklist"] = "Check to delete this entry from the blocklist"; -$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "This page can be used to define a blacklist of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."; -$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "The list of blocked servers will be available publicly on the Friendica page so that your users and people investigating communication problems can find the reason."; -$a->strings["Add new entry to block list"] = "Add new entry to block list"; -$a->strings["Server Domain"] = "Server domain"; -$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "The domain of the new server to add to the block list. Do not include the protocol."; -$a->strings["Block reason"] = "Block reason"; -$a->strings["Add Entry"] = "Add entry"; -$a->strings["Save changes to the blocklist"] = "Save changes to the blocklist"; -$a->strings["Current Entries in the Blocklist"] = "Current entries in the blocklist"; -$a->strings["Delete entry from blocklist"] = "Delete entry from blocklist"; -$a->strings["Delete entry from blocklist?"] = "Delete entry from blocklist?"; -$a->strings["Server added to blocklist."] = "Server added to blocklist."; -$a->strings["Site blocklist updated."] = "Site blocklist updated."; -$a->strings["The contact has been blocked from the node"] = "This contact has been blocked from the node"; -$a->strings["Could not find any contact entry for this URL (%s)"] = "Could not find any contact entry for this URL (%s)"; -$a->strings["%s contact unblocked"] = [ - 0 => "%s contact unblocked", - 1 => "%s contacts unblocked", -]; -$a->strings["Remote Contact Blocklist"] = "Remote contact blocklist"; -$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "This page allows you to prevent any message from a remote contact to reach your node."; -$a->strings["Block Remote Contact"] = "Block remote contact"; -$a->strings["select all"] = "select all"; -$a->strings["select none"] = "select none"; -$a->strings["Block"] = "Block"; -$a->strings["Unblock"] = "Unblock"; -$a->strings["No remote contact is blocked from this node."] = "No remote contact is blocked from this node."; -$a->strings["Blocked Remote Contacts"] = "Blocked remote contacts"; -$a->strings["Block New Remote Contact"] = "Block new remote contact"; -$a->strings["Photo"] = "Photo"; -$a->strings["Name"] = "Name:"; -$a->strings["Address"] = "Address"; -$a->strings["Profile URL"] = "Profile URL:"; -$a->strings["%s total blocked contact"] = [ - 0 => "%s total blocked contact", - 1 => "%s blocked contacts", -]; -$a->strings["URL of the remote contact to block."] = "URL of the remote contact to block."; -$a->strings["Delete this Item"] = "Delete"; -$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted."; -$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456."; -$a->strings["GUID"] = "GUID"; -$a->strings["The GUID of the item you want to delete."] = "GUID of item to be deleted."; -$a->strings["Item marked for deletion."] = "Item marked for deletion."; -$a->strings["unknown"] = "unknown"; -$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "This page offers statistics about the federated social network, of which your Friendica node is one part. These numbers do not represent the entire network, but merely the parts that are connected to your node.\""; -$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here."; -$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Currently, this node is aware of %d nodes with %d registered users from the following platforms:"; -$a->strings["ID"] = "ID"; -$a->strings["Recipient Name"] = "Recipient name"; -$a->strings["Recipient Profile"] = "Recipient profile"; -$a->strings["Network"] = "Network"; -$a->strings["Created"] = "Created"; -$a->strings["Last Tried"] = "Last Tried"; -$a->strings["This page lists the content of the queue for outgoing postings. These are postings the initial delivery failed for. They will be resend later and eventually deleted if the delivery fails permanently."] = "This page lists the content of the queue for outgoing postings. These are postings for which the initial delivery failed. They will be resent later, and eventually deleted if the delivery fails permanently."; -$a->strings["Inspect Deferred Worker Queue"] = "Inspect deferred worker queue"; -$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed."; -$a->strings["Inspect Worker Queue"] = "Inspect worker queue"; -$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."; -$a->strings["Job Parameters"] = "Job parameters"; -$a->strings["Priority"] = "Priority"; -$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB-only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "; -$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "A new Friendica version is available now. Your current version is %1\$s, upstream version is %2\$s"; -$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear."; -$a->strings["The worker was never executed. Please check your database structure!"] = "The worker process has never been executed. Please check your database structure!"; -$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition..htconfig.php. See the Config help page for help with the transition."; -$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."; -$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."; -$a->strings["Normal Account"] = "Standard account"; -$a->strings["Automatic Follower Account"] = "Automatic follower account"; -$a->strings["Public Forum Account"] = "Public forum account"; -$a->strings["Automatic Friend Account"] = "Automatic friend account"; -$a->strings["Blog Account"] = "Blog account"; -$a->strings["Private Forum Account"] = "Private forum account"; -$a->strings["Message queues"] = "Message queues"; -$a->strings["Server Settings"] = "Server Settings"; -$a->strings["Summary"] = "Summary"; -$a->strings["Registered users"] = "Signed up users"; -$a->strings["Pending registrations"] = "Pending registrations"; -$a->strings["Version"] = "Version"; -$a->strings["Active addons"] = "Active addons"; -$a->strings["Can not parse base url. Must have at least ://"] = "Can not parse base URL. Must have at least ://"; -$a->strings["Site settings updated."] = "Site settings updated."; -$a->strings["No special theme for mobile devices"] = "No special theme for mobile devices"; -$a->strings["No community page for local users"] = "No community page for local users"; -$a->strings["No community page"] = "No community page"; -$a->strings["Public postings from users of this site"] = "Public postings from users of this site"; -$a->strings["Public postings from the federated network"] = "Public postings from the federated network"; -$a->strings["Public postings from local users and the federated network"] = "Public postings from local users and the federated network"; -$a->strings["Disabled"] = "Disabled"; -$a->strings["Users, Global Contacts"] = "Users, Global Contacts"; -$a->strings["Users, Global Contacts/fallback"] = "Users, Global Contacts/fallback"; -$a->strings["One month"] = "One month"; -$a->strings["Three months"] = "Three months"; -$a->strings["Half a year"] = "Half a year"; -$a->strings["One year"] = "One a year"; -$a->strings["Multi user instance"] = "Multi user instance"; -$a->strings["Closed"] = "Closed"; -$a->strings["Requires approval"] = "Requires approval"; -$a->strings["Open"] = "Open"; -$a->strings["No SSL policy, links will track page SSL state"] = "No SSL policy, links will track page SSL state"; -$a->strings["Force all links to use SSL"] = "Force all links to use SSL"; -$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Self-signed certificate, use SSL for local links only (discouraged)"; -$a->strings["Don't check"] = "Don't check"; -$a->strings["check the stable version"] = "check for stable version updates"; -$a->strings["check the development version"] = "check for development version updates"; -$a->strings["Database (legacy)"] = "Database (legacy)"; -$a->strings["Republish users to directory"] = "Republish users to directory"; -$a->strings["Registration"] = "Registration"; -$a->strings["File upload"] = "File upload"; -$a->strings["Policies"] = "Policies"; -$a->strings["Advanced"] = "Advanced"; -$a->strings["Auto Discovered Contact Directory"] = "Auto-discovered contact directory"; -$a->strings["Performance"] = "Performance"; -$a->strings["Worker"] = "Worker"; -$a->strings["Message Relay"] = "Message relay"; -$a->strings["Relocate Instance"] = "Relocate Instance"; -$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Warning! Advanced function that could make this server unreachable."; -$a->strings["Site name"] = "Site name"; -$a->strings["Host name"] = "Host name"; -$a->strings["Sender Email"] = "Sender email"; -$a->strings["The email address your server shall use to send notification emails from."] = "The email address your server shall use to send notification emails from."; -$a->strings["Banner/Logo"] = "Banner/Logo"; -$a->strings["Shortcut icon"] = "Shortcut icon"; -$a->strings["Link to an icon that will be used for browsers."] = "Link to an icon that will be used for browsers."; -$a->strings["Touch icon"] = "Touch icon"; -$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link to an icon that will be used for tablets and mobiles."; -$a->strings["Additional Info"] = "Additional Info"; -$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "For public servers: You can add additional information here that will be listed at %s/servers."; -$a->strings["System language"] = "System language"; -$a->strings["System theme"] = "System theme"; -$a->strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Default system theme - may be overridden by user profiles - change theme settings"; -$a->strings["Mobile system theme"] = "Mobile system theme"; -$a->strings["Theme for mobile devices"] = "Theme for mobile devices"; -$a->strings["SSL link policy"] = "SSL link policy"; -$a->strings["Determines whether generated links should be forced to use SSL"] = "Determines whether generated links should be forced to use SSL"; -$a->strings["Force SSL"] = "Force SSL"; -$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."; -$a->strings["Hide help entry from navigation menu"] = "Hide help entry from navigation menu"; -$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL."; -$a->strings["Single user instance"] = "Single user instance"; -$a->strings["Make this instance multi-user or single-user for the named user"] = "Make this instance multi-user or single-user for the named user"; -$a->strings["File storage backend"] = "File storage backend"; -$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."; -$a->strings["Maximum image size"] = "Maximum image size"; -$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximum size in bytes of uploaded images. Default is 0, which means no limits."; -$a->strings["Maximum image length"] = "Maximum image length"; -$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."; -$a->strings["JPEG image quality"] = "JPEG image quality"; -$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Uploaded JPEGs will be saved at this quality setting [0-100]. Default is 100, which is the original quality level."; -$a->strings["Register policy"] = "Registration policy"; -$a->strings["Maximum Daily Registrations"] = "Maximum daily registrations"; -$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval."; -$a->strings["Register text"] = "Registration text"; -$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Will be displayed prominently on the registration page. You may use BBCode here."; -$a->strings["Forbidden Nicknames"] = "Forbidden Nicknames"; -$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."; -$a->strings["Accounts abandoned after x days"] = "Accounts abandoned after so many days"; -$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."; -$a->strings["Allowed friend domains"] = "Allowed friend domains"; -$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Comma-separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains"; -$a->strings["Allowed email domains"] = "Allowed email domains"; -$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Comma-separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains"; -$a->strings["No OEmbed rich content"] = "No OEmbed rich content"; -$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Don't show rich content (e.g. embedded PDF), except from the domains listed below."; -$a->strings["Allowed OEmbed domains"] = "Allowed OEmbed domains"; -$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Comma-separated list of domains from where OEmbed content is allowed. Wildcards are possible."; -$a->strings["Block public"] = "Block public"; -$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Block public access to all otherwise public personal pages on this site, except for local users when logged in."; -$a->strings["Force publish"] = "Mandatory directory listing"; -$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Force all profiles on this site to be listed in the site directory."; -$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Enabling this may violate privacy laws like the GDPR"; -$a->strings["Global directory URL"] = "Global directory URL"; -$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL to the global directory: If this is not set, the global directory is completely unavailable to the application."; -$a->strings["Private posts by default for new users"] = "Private posts by default for new users"; -$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Set default post permissions for all new members to the default privacy group rather than public."; -$a->strings["Don't include post content in email notifications"] = "Don't include post content in email notifications"; -$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure."; -$a->strings["Disallow public access to addons listed in the apps menu."] = "Disallow public access to addons listed in the apps menu."; -$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Checking this box will restrict addons listed in the apps menu to members only."; -$a->strings["Don't embed private images in posts"] = "Don't embed private images in posts"; -$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."; -$a->strings["Explicit Content"] = "Explicit Content"; -$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."; -$a->strings["Allow Users to set remote_self"] = "Allow users to set \"Remote self\""; -$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream."; -$a->strings["Block multiple registrations"] = "Block multiple registrations"; -$a->strings["Disallow users to register additional accounts for use as pages."] = "Disallow users to sign up for additional accounts."; -$a->strings["Disable OpenID"] = "Disable OpenID"; -$a->strings["Disable OpenID support for registration and logins."] = "Disable OpenID support for registration and logins."; -$a->strings["No Fullname check"] = "No full name check"; -$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Allow users to register without a space between the first name and the last name in their full name."; -$a->strings["Community pages for visitors"] = "Community pages for visitors"; -$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Which community pages should be available for visitors. Local users always see both pages."; -$a->strings["Posts per user on community page"] = "Posts per user on community page"; -$a->strings["The maximum number of posts per user on the community page. (Not valid for 'Global Community')"] = "Maximum number of posts per user on the community page (not valid for 'Global Community')."; -$a->strings["Disable OStatus support"] = "Disable OStatus support"; -$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."; -$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Only import OStatus/ActivityPub threads from our contacts"; -$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."; -$a->strings["OStatus support can only be enabled if threading is enabled."] = "OStatus support can only be enabled if threading is enabled."; -$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "diaspora* support can't be enabled because Friendica was installed into a sub directory."; -$a->strings["Enable Diaspora support"] = "Enable diaspora* support"; -$a->strings["Provide built-in Diaspora network compatibility."] = "Provide built-in diaspora* network compatibility."; -$a->strings["Only allow Friendica contacts"] = "Only allow Friendica contacts"; -$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled."; -$a->strings["Verify SSL"] = "Verify SSL"; -$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."; -$a->strings["Proxy user"] = "Proxy user"; -$a->strings["Proxy URL"] = "Proxy URL"; -$a->strings["Network timeout"] = "Network timeout"; -$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Value is in seconds. Set to 0 for unlimited (not recommended)."; -$a->strings["Maximum Load Average"] = "Maximum load average"; -$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximum system load before delivery and poll processes are deferred (default 50)."; -$a->strings["Maximum Load Average (Frontend)"] = "Maximum load average (frontend)"; -$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maximum system load before the frontend quits service (default 50)."; -$a->strings["Minimal Memory"] = "Minimal memory"; -$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."; -$a->strings["Maximum table size for optimization"] = "Maximum table size for optimization"; -$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it."; -$a->strings["Minimum level of fragmentation"] = "Minimum level of fragmentation"; -$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimum fragmentation level to start the automatic optimization (default 30%)."; -$a->strings["Periodical check of global contacts"] = "Periodical check of global contacts"; -$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers."; -$a->strings["Days between requery"] = "Days between enquiry"; -$a->strings["Number of days after which a server is requeried for his contacts."] = "Number of days after which a server is rechecked for contacts."; -$a->strings["Discover contacts from other servers"] = "Discover contacts from other servers"; -$a->strings["Periodically query other servers for contacts. You can choose between 'users': the users on the remote system, 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."] = "Periodically query other servers for contacts. You can choose between 'users': the users on the remote system and 'Global Contacts': active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is 'Users, Global Contacts'."; -$a->strings["Timeframe for fetching global contacts"] = "Time-frame for fetching global contacts"; -$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers."; -$a->strings["Search the local directory"] = "Search the local directory"; -$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."; -$a->strings["Publish server information"] = "Publish server information"; -$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "This publishes generic data about the server and its usage. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."; -$a->strings["Check upstream version"] = "Check upstream version"; -$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."; -$a->strings["Suppress Tags"] = "Suppress tags"; -$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Suppress listed hashtags at the end of posts."; -$a->strings["Clean database"] = "Clean database"; -$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Remove old remote items, orphaned database records, and old content from some other helper tables."; -$a->strings["Lifespan of remote items"] = "Lifespan of remote items"; -$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items, are always kept. 0 disables this behavior."; -$a->strings["Lifespan of unclaimed items"] = "Lifespan of unclaimed items"; -$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."; -$a->strings["Lifespan of raw conversation data"] = "Lifespan of raw conversation data"; -$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."; -$a->strings["Path to item cache"] = "Path to item cache"; -$a->strings["The item caches buffers generated bbcode and external images."] = "The item cache retains expanded bbcode and external images."; -$a->strings["Cache duration in seconds"] = "Cache duration in seconds"; -$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)"; -$a->strings["Maximum numbers of comments per post"] = "Maximum number of comments per post"; -$a->strings["How much comments should be shown for each post? Default value is 100."] = "How many comments should be shown for each post? (Default 100)"; -$a->strings["Temp path"] = "Temp path"; -$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Enter a different temp path if your system restricts the webserver's access to the system temp path."; -$a->strings["Base path to installation"] = "Base path to installation"; -$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."; -$a->strings["Disable picture proxy"] = "Disable picture proxy"; -$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."; -$a->strings["Only search in tags"] = "Only search in tags"; -$a->strings["On large systems the text search can slow down the system extremely."] = "On large systems, the text search can slow down the system significantly."; -$a->strings["New base url"] = "New base URL"; -$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Change base URL for this server. Sends a relocate message to all Friendica and diaspora* contacts, for all users."; -$a->strings["RINO Encryption"] = "RINO Encryption"; -$a->strings["Encryption layer between nodes."] = "Encryption layer between nodes."; -$a->strings["Enabled"] = "Enabled"; -$a->strings["Maximum number of parallel workers"] = "Maximum number of parallel workers"; -$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."; -$a->strings["Don't use 'proc_open' with the worker"] = "Don't use 'proc_open' with the worker"; -$a->strings["Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Enable this if your system doesn't allow the use of 'proc_open'. This can happen on shared hosts. If this is enabled, you should increase the frequency of worker calls in your crontab."; -$a->strings["Enable fastlane"] = "Enable fast-lane"; -$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."; -$a->strings["Enable frontend worker"] = "Enable frontend worker"; -$a->strings["When enabled the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "When enabled, the Worker process is triggered when backend access is performed \\x28e.g. messages being delivered\\x29. On smaller sites, you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."; -$a->strings["Subscribe to relay"] = "Subscribe to relay"; -$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Receive public posts from the specified relay. Post will be included in searches, subscribed tags, and on the global community page."; -$a->strings["Relay server"] = "Relay server"; -$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Address of the relay server where public posts should be sent. For example https://relay.diasp.org"; -$a->strings["Direct relay transfer"] = "Direct relay transfer"; -$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Enables direct transfer to other servers without using a relay server."; -$a->strings["Relay scope"] = "Relay scope"; -$a->strings["Can be 'all' or 'tags'. 'all' means that every public post should be received. 'tags' means that only posts with selected tags should be received."] = "Set to 'all' or 'tags'. 'all' means receive every public post; 'tags' receive public posts only with specified tags."; -$a->strings["all"] = "all"; -$a->strings["tags"] = "tags"; -$a->strings["Server tags"] = "Server tags"; -$a->strings["Comma separated list of tags for the 'tags' subscription."] = "Comma-separated tags for subscription."; -$a->strings["Allow user tags"] = "Allow user tags"; -$a->strings["If enabled, the tags from the saved searches will used for the 'tags' subscription in addition to the 'relay_server_tags'."] = "Use user-generated tags from saved searches for 'tags' subscription in addition to 'relay_server_tags'."; -$a->strings["Start Relocation"] = "Start Relocation"; -$a->strings["Update has been marked successful"] = "Update has been marked successful"; -$a->strings["Database structure update %s was successfully applied."] = "Database structure update %s was successfully applied."; -$a->strings["Executing of database structure update %s failed with error: %s"] = "Execution of database structure update %s failed with error: %s"; -$a->strings["Executing %s failed with error: %s"] = "Execution of %s failed with error: %s"; -$a->strings["Update %s was successfully applied."] = "Update %s was successfully applied."; -$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s did not return a status. Unknown if it succeeded."; -$a->strings["There was no additional update function %s that needed to be called."] = "There was no additional update function %s that needed to be called."; -$a->strings["No failed updates."] = "No failed updates."; -$a->strings["Check database structure"] = "Check database structure"; -$a->strings["Failed Updates"] = "Failed updates"; -$a->strings["This does not include updates prior to 1139, which did not return a status."] = "This does not include updates prior to 1139, which did not return a status."; -$a->strings["Mark success (if update was manually applied)"] = "Mark success (if update was manually applied)"; -$a->strings["Attempt to execute this update step automatically"] = "Attempt to execute this update step automatically"; -$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tDear %1\$s,\n\t\t\t\tThe administrator of %2\$s has set up an account for you."; -$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."; -$a->strings["Registration details for %s"] = "Registration details for %s"; -$a->strings["%s user blocked/unblocked"] = [ - 0 => "%s user blocked/unblocked", - 1 => "%s users blocked/unblocked", -]; -$a->strings["You can't remove yourself"] = "You can't remove yourself"; -$a->strings["%s user deleted"] = [ - 0 => "%s user deleted", - 1 => "%s users deleted", -]; -$a->strings["User '%s' deleted"] = "User '%s' deleted"; -$a->strings["User '%s' unblocked"] = "User '%s' unblocked"; -$a->strings["User '%s' blocked"] = "User '%s' blocked"; -$a->strings["Normal Account Page"] = "Standard"; -$a->strings["Soapbox Page"] = "Soapbox"; -$a->strings["Public Forum"] = "Public forum"; -$a->strings["Automatic Friend Page"] = "Love-all"; -$a->strings["Private Forum"] = "Private Forum"; -$a->strings["Personal Page"] = "Personal Page"; -$a->strings["Organisation Page"] = "Organization Page"; -$a->strings["News Page"] = "News Page"; -$a->strings["Community Forum"] = "Community Forum"; -$a->strings["Relay"] = "Relay"; -$a->strings["Email"] = "Email"; -$a->strings["Register date"] = "Registration date"; -$a->strings["Last login"] = "Last login"; -$a->strings["Last item"] = "Last item"; -$a->strings["Type"] = "Type"; -$a->strings["Add User"] = "Add user"; -$a->strings["User registrations waiting for confirm"] = "User registrations awaiting confirmation"; -$a->strings["User waiting for permanent deletion"] = "User awaiting permanent deletion"; -$a->strings["Request date"] = "Request date"; -$a->strings["No registrations."] = "No registrations."; -$a->strings["Note from the user"] = "Note from the user"; -$a->strings["Approve"] = "Approve"; -$a->strings["Deny"] = "Deny"; -$a->strings["User blocked"] = "User blocked"; -$a->strings["Site admin"] = "Site admin"; -$a->strings["Account expired"] = "Account expired"; -$a->strings["New User"] = "New user"; -$a->strings["Permanent deletion"] = "Permanent deletion"; -$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Selected users will be deleted!\\n\\nEverything these users have posted on this site will be permanently deleted!\\n\\nAre you sure?"; -$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"; -$a->strings["Name of the new user."] = "Name of the new user."; -$a->strings["Nickname"] = "Nickname"; -$a->strings["Nickname of the new user."] = "Nickname of the new user."; -$a->strings["Email address of the new user."] = "Email address of the new user."; -$a->strings["Addon %s disabled."] = "Addon %s disabled."; -$a->strings["Addon %s enabled."] = "Addon %s enabled."; -$a->strings["Disable"] = "Disable"; -$a->strings["Enable"] = "Enable"; -$a->strings["Toggle"] = "Toggle"; -$a->strings["Settings"] = "Settings"; -$a->strings["Author: "] = "Author: "; -$a->strings["Maintainer: "] = "Maintainer: "; -$a->strings["Reload active addons"] = "Reload active addons"; -$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"; -$a->strings["No themes found."] = "No themes found."; -$a->strings["Screenshot"] = "Screenshot"; -$a->strings["Reload active themes"] = "Reload active themes"; -$a->strings["No themes found on the system. They should be placed in %1\$s"] = "No themes found on the system. They should be placed in %1\$s"; -$a->strings["[Experimental]"] = "[Experimental]"; -$a->strings["[Unsupported]"] = "[Unsupported]"; -$a->strings["Log settings updated."] = "Log settings updated."; -$a->strings["PHP log currently enabled."] = "PHP log currently enabled."; -$a->strings["PHP log currently disabled."] = "PHP log currently disabled."; -$a->strings["Clear"] = "Clear"; -$a->strings["Enable Debugging"] = "Enable debugging"; -$a->strings["Log file"] = "Log file"; -$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Must be writable by web server and relative to your Friendica top-level directory."; -$a->strings["Log level"] = "Log level"; -$a->strings["PHP logging"] = "PHP logging"; -$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."; -$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."; -$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Couldn't open %1\$s log file.\\r\\n
    Check if file %1\$s is readable."; -$a->strings["Off"] = "Off"; -$a->strings["On"] = "On"; -$a->strings["Lock feature %s"] = "Lock feature %s"; -$a->strings["Manage Additional Features"] = "Manage additional features"; -$a->strings["No friends to display."] = "No friends to display."; -$a->strings["Connect"] = "Connect"; $a->strings["Authorize application connection"] = "Authorize application connection"; $a->strings["Return to your app and insert this Securty Code:"] = "Return to your app and insert this security code:"; $a->strings["Please login to continue."] = "Please login to continue."; $a->strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Do you want to authorize this application to access your posts and contacts and create new posts for you?"; $a->strings["No"] = "No"; -$a->strings["You must be logged in to use addons. "] = "You must be logged in to use addons. "; -$a->strings["Applications"] = "Applications"; -$a->strings["No installed applications."] = "No installed applications."; -$a->strings["Source input"] = "Source input"; -$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; -$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (raw HTML)"; -$a->strings["BBCode::convert"] = "BBCode::convert"; -$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; -$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; -$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; -$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; -$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; -$a->strings["Item Body"] = "Item body"; -$a->strings["Item Tags"] = "Item tags"; -$a->strings["Source input (Diaspora format)"] = "Source input (diaspora* format)"; -$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (raw HTML)"; -$a->strings["Markdown::convert"] = "Markdown::convert"; -$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; -$a->strings["Raw HTML input"] = "Raw HTML input"; -$a->strings["HTML Input"] = "HTML input"; -$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; -$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; -$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (raw HTML)"; -$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; -$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; -$a->strings["Source text"] = "Source text"; -$a->strings["BBCode"] = "BBCode"; -$a->strings["Markdown"] = "Markdown"; -$a->strings["HTML"] = "HTML"; -$a->strings["Login"] = "Login"; -$a->strings["Bad Request"] = "Bad request"; -$a->strings["The post was created"] = "The post was created"; $a->strings["Access denied."] = "Access denied."; -$a->strings["Page not found."] = "Page not found"; $a->strings["Access to this profile has been restricted."] = "Access to this profile has been restricted."; $a->strings["Events"] = "Events"; $a->strings["View"] = "View"; @@ -688,8 +231,6 @@ $a->strings["Global Community"] = "Global community"; $a->strings["Posts from users of the whole federated network"] = "Posts from users of the whole federated network"; $a->strings["No results."] = "No results."; $a->strings["This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users."] = "This community stream shows all public posts received by this node. They may not reflect the opinions of this node’s users."; -$a->strings["Credits"] = "Credits"; -$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"; $a->strings["Contact settings applied."] = "Contact settings applied."; $a->strings["Contact update failed."] = "Contact update failed."; $a->strings["Contact not found."] = "Contact not found."; @@ -704,6 +245,7 @@ $a->strings["Submit"] = "Submit"; $a->strings["Remote Self"] = "Remote self"; $a->strings["Mirror postings from this contact"] = "Mirror postings from this contact:"; $a->strings["Mark this contact as remote_self, this will cause friendica to repost new entries from this contact."] = "This will cause Friendica to repost new entries from this contact."; +$a->strings["Name"] = "Name:"; $a->strings["Account Nickname"] = "Account nickname:"; $a->strings["@Tagname - overrides Name/Nickname"] = "@Tag name - overrides name/nickname:"; $a->strings["Account URL"] = "Account URL:"; @@ -719,6 +261,7 @@ $a->strings["Parent Password:"] = "Parent Password:"; $a->strings["Please enter the password of the parent account to legitimize your request."] = "Please enter the password of the parent account to authorize this request."; $a->strings["Parent User"] = "Parent user"; $a->strings["Parent users have total control about this account, including the account settings. Please double check whom you give this access."] = "Parent users have total control of this account, including core settings. Please double-check whom you grant such access."; +$a->strings["Save Settings"] = "Save settings"; $a->strings["Delegate Page Management"] = "Delegate Page Management"; $a->strings["Delegates"] = "Delegates"; $a->strings["Delegates are able to manage all aspects of this account/page except for basic account settings. Please do not delegate your personal account to anybody that you do not trust completely."] = "Delegates are able to manage all aspects of this account except for key setting features. Please do not delegate your personal account to anybody that you do not trust completely."; @@ -735,7 +278,6 @@ $a->strings["Confirmation completed successfully."] = "Confirmation completed su $a->strings["Temporary failure. Please wait and try again."] = "Temporary failure. Please wait and try again."; $a->strings["Introduction failed or was revoked."] = "Introduction failed or was revoked."; $a->strings["Remote site reported: "] = "Remote site reported: "; -$a->strings["Unable to set contact photo."] = "Unable to set contact photo."; $a->strings["No user record found for '%s' "] = "No user record found for '%s' "; $a->strings["Our site encryption key is apparently messed up."] = "Our site encryption key is apparently messed up."; $a->strings["Empty site URL was provided or URL could not be decrypted by us."] = "An empty URL was provided, or the URL could not be decrypted by us."; @@ -765,6 +307,7 @@ $a->strings["You have already introduced yourself here."] = "You have already in $a->strings["Apparently you are already friends with %s."] = "Apparently you are already friends with %s."; $a->strings["Invalid profile URL."] = "Invalid profile URL."; $a->strings["Disallowed profile URL."] = "Disallowed profile URL."; +$a->strings["Blocked domain"] = "Blocked domain"; $a->strings["Failed to update contact record."] = "Failed to update contact record."; $a->strings["Your introduction has been sent."] = "Your introduction has been sent."; $a->strings["Remote subscription can't be done for your network. Please subscribe directly on your system."] = "Remote subscription can't be done for your network. Please subscribe directly on your system."; @@ -787,20 +330,12 @@ $a->strings["Diaspora (Socialhome, Hubzilla)"] = "diaspora* (Socialhome, Hubzill $a->strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - please do not use this form. Instead, enter %s into your diaspora* search bar."; $a->strings["Your Identity Address:"] = "My identity address:"; $a->strings["Submit Request"] = "Submit request"; -$a->strings["Location:"] = "Location:"; -$a->strings["Gender:"] = "Gender:"; -$a->strings["Status:"] = "Status:"; -$a->strings["Homepage:"] = "Homepage:"; -$a->strings["About:"] = "About:"; -$a->strings["Global Directory"] = "Global Directory"; -$a->strings["Find on this site"] = "Find on this site"; -$a->strings["Results for:"] = "Results for:"; -$a->strings["Site Directory"] = "Site directory"; -$a->strings["Find"] = "Find"; -$a->strings["No entries (some entries may be hidden)."] = "No entries (entries may be hidden)."; $a->strings["People Search - %s"] = "People search - %s"; $a->strings["Forum Search - %s"] = "Forum search - %s"; +$a->strings["Connect"] = "Connect"; $a->strings["No matches"] = "No matches"; +$a->strings["The requested item doesn't exist or has been deleted."] = "The requested item doesn't exist or has been deleted."; +$a->strings["The feed for this item is unavailable."] = "The feed for this item is unavailable."; $a->strings["Item not found"] = "Item not found"; $a->strings["Edit post"] = "Edit post"; $a->strings["Save"] = "Save"; @@ -823,9 +358,11 @@ $a->strings["Finish date/time is not known or not relevant"] = "Finish date/time $a->strings["Event Finishes:"] = "Event finishes:"; $a->strings["Adjust for viewer timezone"] = "Adjust for viewer's time zone"; $a->strings["Description:"] = "Description:"; +$a->strings["Location:"] = "Location:"; $a->strings["Title:"] = "Title:"; $a->strings["Share this event"] = "Share this event"; $a->strings["Basic"] = "Basic"; +$a->strings["Advanced"] = "Advanced"; $a->strings["Permissions"] = "Permissions"; $a->strings["Failed to remove event"] = "Failed to remove event"; $a->strings["Event removed"] = "Event removed"; @@ -833,89 +370,24 @@ $a->strings["Photos"] = "Photos"; $a->strings["Contact Photos"] = "Contact photos"; $a->strings["Upload"] = "Upload"; $a->strings["Files"] = "Files"; -$a->strings["You must be logged in to use this module"] = "You must be logged in to use this module"; -$a->strings["Source URL"] = "Source URL"; -$a->strings["- select -"] = "- select -"; $a->strings["The contact could not be added."] = "Contact could not be added."; $a->strings["You already added this contact."] = "You already added this contact."; $a->strings["Diaspora support isn't enabled. Contact can't be added."] = "diaspora* support isn't enabled. Contact can't be added."; $a->strings["OStatus support is disabled. Contact can't be added."] = "OStatus support is disabled. Contact can't be added."; $a->strings["The network type couldn't be detected. Contact can't be added."] = "The network type couldn't be detected. Contact can't be added."; +$a->strings["Profile URL"] = "Profile URL:"; $a->strings["Tags:"] = "Tags:"; $a->strings["Status Messages and Posts"] = "Status Messages and Posts"; -$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."; -$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Please visit Friendi.ca to learn more about the Friendica project."; -$a->strings["Bug reports and issues: please visit"] = "Bug reports and issues: please visit"; -$a->strings["the bugtracker at github"] = "the bugtracker at github"; -$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"; -$a->strings["Installed addons/apps:"] = "Installed addons/apps:"; -$a->strings["No installed addons/apps"] = "No installed addons/apps"; -$a->strings["Read about the Terms of Service of this node."] = "Read about the Terms of Service of this node."; -$a->strings["On this server the following remote servers are blocked."] = "On this server the following remote servers are blocked."; $a->strings["Friend suggestion sent."] = "Friend suggestion sent"; $a->strings["Suggest Friends"] = "Suggest friends"; $a->strings["Suggest a friend for %s"] = "Suggest a friend for %s"; -$a->strings["Group created."] = "Group created."; -$a->strings["Could not create group."] = "Could not create group."; -$a->strings["Group not found."] = "Group not found."; -$a->strings["Group name changed."] = "Group name changed."; -$a->strings["Permission denied"] = "Permission denied"; -$a->strings["Save Group"] = "Save group"; -$a->strings["Filter"] = "Filter"; -$a->strings["Create a group of contacts/friends."] = "Create a group of contacts/friends."; -$a->strings["Group Name: "] = "Group name: "; -$a->strings["Contacts not in any group"] = "Contacts not in any group"; -$a->strings["Group removed."] = "Group removed."; -$a->strings["Unable to remove group."] = "Unable to remove group."; -$a->strings["Delete Group"] = "Delete group"; -$a->strings["Edit Group Name"] = "Edit group name"; -$a->strings["Members"] = "Members"; -$a->strings["All Contacts"] = "All contacts"; -$a->strings["Group is empty"] = "Group is empty"; -$a->strings["Remove contact from group"] = "Remove contact from group"; -$a->strings["Click on a contact to add or remove."] = "Click on a contact to add or remove it."; -$a->strings["Add contact to group"] = "Add contact to group"; $a->strings["No profile"] = "No profile"; -$a->strings["Help:"] = "Help:"; -$a->strings["Help"] = "Help"; -$a->strings["Not Found"] = "Not found"; -$a->strings["Welcome to %s"] = "Welcome to %s"; -$a->strings["Total invitation limit exceeded."] = "Total invitation limit exceeded"; -$a->strings["%s : Not a valid email address."] = "%s : Not a valid email address"; -$a->strings["Please join us on Friendica"] = "Please join us on Friendica."; -$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Invitation limit is exceeded. Please contact your site administrator."; -$a->strings["%s : Message delivery failed."] = "%s : Message delivery failed"; -$a->strings["%d message sent."] = [ - 0 => "%d message sent.", - 1 => "%d messages sent.", -]; -$a->strings["You have no more invitations available"] = "You have no more invitations available."; -$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."; -$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "To accept this invitation, please sign up at %s or any other public Friendica website."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica sites are all inter-connected to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."; -$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Our apologies. This system is not currently configured to connect with other public sites or invite members."; -$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Friendica sites are all inter-connected to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks."; -$a->strings["To accept this invitation, please visit and register at %s."] = "To accept this invitation, please visit and register at %s."; -$a->strings["Send invitations"] = "Send invitations"; -$a->strings["Enter email addresses, one per line:"] = "Enter email addresses, one per line:"; -$a->strings["Your message:"] = "Your message:"; -$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."; -$a->strings["You will need to supply this invitation code: \$invite_code"] = "You will need to supply this invitation code: \$invite_code"; -$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Once you have signed up, please connect with me via my profile page at:"; -$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"; $a->strings["Unable to locate original post."] = "Unable to locate original post."; $a->strings["Empty post discarded."] = "Empty post discarded."; $a->strings["This message was sent to you by %s, a member of the Friendica social network."] = "This message was sent to you by %s, a member of the Friendica social network."; $a->strings["You may visit them online at %s"] = "You may visit them online at %s"; $a->strings["Please contact the sender by replying to this post if you do not wish to receive these messages."] = "Please contact the sender by replying to this post if you do not wish to receive these messages."; $a->strings["%s posted an update."] = "%s posted an update."; -$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; -$a->strings["Time Conversion"] = "Time conversion"; -$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica provides this service for sharing events with other networks and friends in unknown time zones."; -$a->strings["UTC time: %s"] = "UTC time: %s"; -$a->strings["Current timezone: %s"] = "Current time zone: %s"; -$a->strings["Converted localtime: %s"] = "Converted local time: %s"; -$a->strings["Please select your timezone:"] = "Please select your time zone:"; $a->strings["Remote privacy information not available."] = "Remote privacy information not available."; $a->strings["Visible to:"] = "Visible to:"; $a->strings["No valid account found."] = "No valid account found."; @@ -938,7 +410,6 @@ $a->strings["Your password may be changed from the Settings page after $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t"] = "\n\t\t\tDear %1\$s,\n\t\t\t\tYour password has been changed as requested. Please retain this\n\t\t\tinformation for your records (or change your password immediately to\n\t\t\tsomething that you will remember).\n\t\t"; $a->strings["\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t%2\$s\n\t\t\tPassword:\t%3\$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t"] = "\n\t\t\tYour login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t%2\$s\n\t\t\tPassword:\t%3\$s\n\n\t\t\tYou may change that password from your account settings page after logging in.\n\t\t"; $a->strings["Your password has been changed at %s"] = "Your password has been changed at %s"; -$a->strings["System down for maintenance"] = "Sorry, the system is currently down for maintenance."; $a->strings["Manage Identities and/or Pages"] = "Manage Identities and Pages"; $a->strings["Toggle between different identities or community/group pages which share your account details or which you have been granted \"manage\" permissions"] = "Accounts that I manage or own."; $a->strings["Select an identity to manage: "] = "Select identity:"; @@ -962,6 +433,7 @@ $a->strings["Please enter a link URL:"] = "Please enter a link URL:"; $a->strings["Send Private Message"] = "Send private message"; $a->strings["To:"] = "To:"; $a->strings["Subject:"] = "Subject:"; +$a->strings["Your message:"] = "Your message:"; $a->strings["No messages."] = "No messages."; $a->strings["Message not available."] = "Message not available."; $a->strings["Delete message"] = "Delete message"; @@ -985,6 +457,7 @@ $a->strings["Warning: This group contains %s member from a network that doesn't ]; $a->strings["Messages in this group won't be send to these receivers."] = "Messages in this group won't be sent to these receivers."; $a->strings["No such group"] = "No such group"; +$a->strings["Group is empty"] = "Group is empty"; $a->strings["Group: %s"] = "Group: %s"; $a->strings["Private messages to this person are at risk of public disclosure."] = "Private messages to this person are at risk of public disclosure."; $a->strings["Invalid contact."] = "Invalid contact."; @@ -1006,6 +479,7 @@ $a->strings["We would like to offer some tips and links to help make your experi $a->strings["Getting Started"] = "Getting started"; $a->strings["Friendica Walk-Through"] = "Friendica walk-through"; $a->strings["On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."] = "On your Quick Start page - find a brief introduction to your profile and network tabs, make some new connections, and find some groups to join."; +$a->strings["Settings"] = "Settings"; $a->strings["Go to Your Settings"] = "Go to your settings"; $a->strings["On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."] = "On your Settings page - change your initial password. Also make a note of your Identity Address. This looks just like an email address - and will be useful in making friends on the free social web."; $a->strings["Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."] = "Review the other settings, particularly the privacy settings. An unpublished directory listing is like having an unlisted phone number. In general, you should probably publish your listing - unless all of your friends and potential friends know exactly how to find you."; @@ -1035,7 +509,6 @@ $a->strings["Go to the Help Section"] = "Go to the help section"; $a->strings["Our help pages may be consulted for detail on other program features and resources."] = "Our help pages may be consulted for detail on other program features and resources."; $a->strings["Personal Notes"] = "Personal notes"; $a->strings["Invalid request identifier."] = "Invalid request identifier."; -$a->strings["Ignore"] = "Ignore"; $a->strings["Notifications"] = "Notifications"; $a->strings["Network Notifications"] = "Network notifications"; $a->strings["System Notifications"] = "System notifications"; @@ -1048,6 +521,7 @@ $a->strings["Hide Ignored Requests"] = "Hide ignored requests"; $a->strings["Notification type:"] = "Notification type:"; $a->strings["Suggested by:"] = "Suggested by:"; $a->strings["Hide this contact from others"] = "Hide this contact from others"; +$a->strings["Approve"] = "Approve"; $a->strings["Claims to be known to you: "] = "Says they know me:"; $a->strings["yes"] = "yes"; $a->strings["no"] = "no"; @@ -1058,6 +532,8 @@ $a->strings["Accepting %s as a sharer allows them to subscribe to your posts, bu $a->strings["Friend"] = "Friend"; $a->strings["Sharer"] = "Sharer"; $a->strings["Subscriber"] = "Subscriber"; +$a->strings["About:"] = "About:"; +$a->strings["Gender:"] = "Gender:"; $a->strings["Network:"] = "Network:"; $a->strings["No introductions."] = "No introductions."; $a->strings["No more %s notifications."] = "No more %s notifications."; @@ -1081,10 +557,8 @@ $a->strings["Upload New Photos"] = "Upload new photos"; $a->strings["everybody"] = "everybody"; $a->strings["Contact information unavailable"] = "Contact information unavailable"; $a->strings["Album not found."] = "Album not found."; -$a->strings["Delete Album"] = "Delete album"; -$a->strings["Do you really want to delete this photo album and all its photos?"] = "Do you really want to delete this photo album and all its photos?"; -$a->strings["Delete Photo"] = "Delete photo"; -$a->strings["Do you really want to delete this photo?"] = "Do you really want to delete this photo?"; +$a->strings["Album successfully deleted"] = "Album successfully deleted"; +$a->strings["Album was empty."] = "Album was empty."; $a->strings["a photo"] = "a photo"; $a->strings["%1\$s was tagged in %2\$s by %3\$s"] = "%1\$s was tagged in %2\$s by %3\$s"; $a->strings["Image exceeds size limit of %s"] = "Image exceeds size limit of %s"; @@ -1102,16 +576,22 @@ $a->strings["or select existing album:"] = "or select existing album:"; $a->strings["Do not show a status post for this upload"] = "Do not show a status post for this upload"; $a->strings["Show to Groups"] = "Show to groups"; $a->strings["Show to Contacts"] = "Show to contacts"; +$a->strings["Do you really want to delete this photo album and all its photos?"] = "Do you really want to delete this photo album and all its photos?"; +$a->strings["Delete Album"] = "Delete album"; $a->strings["Edit Album"] = "Edit album"; +$a->strings["Drop Album"] = "Drop album"; $a->strings["Show Newest First"] = "Show newest first"; $a->strings["Show Oldest First"] = "Show oldest first"; $a->strings["View Photo"] = "View photo"; $a->strings["Permission denied. Access to this item may be restricted."] = "Permission denied. Access to this item may be restricted."; $a->strings["Photo not available"] = "Photo not available"; +$a->strings["Do you really want to delete this photo?"] = "Do you really want to delete this photo?"; +$a->strings["Delete Photo"] = "Delete photo"; $a->strings["View photo"] = "View photo"; $a->strings["Edit photo"] = "Edit photo"; +$a->strings["Delete photo"] = "Delete photo"; $a->strings["Use as profile photo"] = "Use as profile photo"; -$a->strings["Private Message"] = "Private message"; +$a->strings["Private Photo"] = "Private photo"; $a->strings["View Full Size"] = "View full size"; $a->strings["Tags: "] = "Tags: "; $a->strings["[Select tags to remove]"] = "[Select tags to remove]"; @@ -1151,6 +631,7 @@ $a->strings["Sexual Preference"] = "Sexual preference"; $a->strings["XMPP"] = "XMPP"; $a->strings["Homepage"] = "Homepage"; $a->strings["Interests"] = "Interests"; +$a->strings["Address"] = "Address"; $a->strings["Location"] = "Location"; $a->strings["Profile updated."] = "Profile updated."; $a->strings["Hide contacts and friends:"] = "Hide contacts and friends:"; @@ -1229,8 +710,10 @@ $a->strings["Crop Image"] = "Crop Image"; $a->strings["Please adjust the image cropping for optimum viewing."] = "Please adjust the image cropping for optimum viewing."; $a->strings["Done Editing"] = "Done editing"; $a->strings["Image uploaded successfully."] = "Image uploaded successfully."; +$a->strings["Permission denied"] = "Permission denied"; $a->strings["Invalid profile identifier."] = "Invalid profile identifier."; $a->strings["Profile Visibility Editor"] = "Profile Visibility Editor"; +$a->strings["Click on a contact to add or remove."] = "Click on a contact to add or remove it."; $a->strings["Visible To"] = "Visible to"; $a->strings["All Contacts (with secure profile access)"] = "All contacts with secure profile access"; $a->strings["Account approved."] = "Account approved."; @@ -1245,15 +728,17 @@ $a->strings["Please enter your password for verification:"] = "Please enter your $a->strings["Resubscribing to OStatus contacts"] = "Resubscribing to OStatus contacts"; $a->strings["Error"] = "Error"; $a->strings["Only logged in users are permitted to perform a search."] = "Only logged in users are permitted to perform a search."; -$a->strings["Too Many Requests"] = "Too many requests"; $a->strings["Only one search per minute is permitted for not logged in users."] = "Only one search per minute is permitted for not-logged-in users."; $a->strings["Search"] = "Search"; $a->strings["Items tagged with: %s"] = "Items tagged with: %s"; $a->strings["Results for: %s"] = "Results for: %s"; $a->strings["Account"] = "Account"; +$a->strings["Two-factor authentication"] = "Two-factor authentication"; $a->strings["Profiles"] = "Profiles"; +$a->strings["Additional features"] = "Additional features"; $a->strings["Display"] = "Display"; $a->strings["Social Networks"] = "Social networks"; +$a->strings["Addons"] = "Addons"; $a->strings["Delegations"] = "Delegations"; $a->strings["Connected apps"] = "Connected apps"; $a->strings["Export personal data"] = "Export personal data"; @@ -1289,6 +774,8 @@ $a->strings["No name"] = "No name"; $a->strings["Remove authorization"] = "Remove authorization"; $a->strings["No Addon settings configured"] = "No addon settings configured"; $a->strings["Addon Settings"] = "Addon Settings"; +$a->strings["Off"] = "Off"; +$a->strings["On"] = "On"; $a->strings["Additional Features"] = "Additional Features"; $a->strings["Diaspora"] = "diaspora*"; $a->strings["enabled"] = "enabled"; @@ -1322,6 +809,7 @@ $a->strings["Action after import:"] = "Action after import:"; $a->strings["Mark as seen"] = "Mark as seen"; $a->strings["Move to folder"] = "Move to folder"; $a->strings["Move to folder:"] = "Move to folder:"; +$a->strings["No special theme for mobile devices"] = "No special theme for mobile devices"; $a->strings["%s - (Unsupported)"] = "%s - (Unsupported)"; $a->strings["%s - (Experimental)"] = "%s - (Experimental)"; $a->strings["Sunday"] = "Sunday"; @@ -1355,13 +843,21 @@ $a->strings["Unable to find your profile. Please contact your admin."] = "Unable $a->strings["Account Types"] = "Account types:"; $a->strings["Personal Page Subtypes"] = "Personal Page subtypes"; $a->strings["Community Forum Subtypes"] = "Community forum subtypes"; +$a->strings["Personal Page"] = "Personal Page"; $a->strings["Account for a personal profile."] = "Account for a personal profile."; +$a->strings["Organisation Page"] = "Organization Page"; $a->strings["Account for an organisation that automatically approves contact requests as \"Followers\"."] = "Account for an organization that automatically approves contact requests as \"Followers\"."; +$a->strings["News Page"] = "News Page"; $a->strings["Account for a news reflector that automatically approves contact requests as \"Followers\"."] = "Account for a news reflector that automatically approves contact requests as \"Followers\"."; +$a->strings["Community Forum"] = "Community Forum"; $a->strings["Account for community discussions."] = "Account for community discussions."; +$a->strings["Normal Account Page"] = "Standard"; $a->strings["Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."] = "Account for a regular personal profile that requires manual approval of \"Friends\" and \"Followers\"."; +$a->strings["Soapbox Page"] = "Soapbox"; $a->strings["Account for a public profile that automatically approves contact requests as \"Followers\"."] = "Account for a public profile that automatically approves contact requests as \"Followers\"."; +$a->strings["Public Forum"] = "Public forum"; $a->strings["Automatically approves all contact requests."] = "Automatically approves all contact requests."; +$a->strings["Automatic Friend Page"] = "Love-all"; $a->strings["Account for a popular profile that automatically approves contact requests as \"Friends\"."] = "Account for a popular profile that automatically approves contact requests as \"Friends\"."; $a->strings["Private Forum [Experimental]"] = "Private forum [Experimental]"; $a->strings["Requires manual approval of contact requests."] = "Requires manual approval of contact requests."; @@ -1442,8 +938,9 @@ $a->strings["Relocate"] = "Recent relocation"; $a->strings["If you have moved this profile from another server, and some of your contacts don't receive your updates, try pushing this button."] = "If you have moved this profile from another server and some of your contacts don't receive your updates:"; $a->strings["Resend relocate message to contacts"] = "Resend relocation message to contacts"; $a->strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s is following %2\$s's %3\$s"; -$a->strings["Do you really want to delete this suggestion?"] = "Do you really want to delete this suggestion?"; +$a->strings["Contact suggestion successfully ignored."] = "Contact suggestion successfully ignored."; $a->strings["No suggestions available. If this is a new site, please try again in 24 hours."] = "No suggestions available. If this is a new site, please try again in 24 hours."; +$a->strings["Do you really want to delete this suggestion?"] = "Do you really want to delete this suggestion?"; $a->strings["Ignore/Hide"] = "Ignore/Hide"; $a->strings["Friend Suggestions"] = "Friend suggestions"; $a->strings["Tag(s) removed"] = "Tag(s) removed"; @@ -1467,8 +964,6 @@ $a->strings["Unfollowing is currently not supported by your network."] = "Unfoll $a->strings["Contact unfollowed"] = "Contact unfollowed"; $a->strings["Disconnect/Unfollow"] = "Disconnect/Unfollow"; $a->strings["[Embedded content - reload page to view]"] = "[Embedded content - reload page to view]"; -$a->strings["Do you really want to delete this video?"] = "Do you really want to delete this video?"; -$a->strings["Delete Video"] = "Delete video"; $a->strings["No videos selected"] = "No videos selected"; $a->strings["View Video"] = "View video"; $a->strings["Recent Videos"] = "Recent videos"; @@ -1489,7 +984,18 @@ $a->strings["Wall Photos"] = "Wall photos"; $a->strings["Delete this item?"] = "Delete this item?"; $a->strings["toggle mobile"] = "Toggle mobile"; $a->strings["No system theme config value set."] = "No system theme configuration value set."; +$a->strings["You must be logged in to use addons. "] = "You must be logged in to use addons. "; $a->strings["The form security token was not correct. This probably happened because the form has been opened for too long (>3 hours) before submitting it."] = "The form security token was incorrect. This probably happened because the form has not been submitted within 3 hours."; +$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Could not find any unarchived contact entry for this URL (%s)"; +$a->strings["The contact entries have been archived"] = "The contact entries have been archived"; +$a->strings["Could not find any contact entry for this URL (%s)"] = "Could not find any contact entry for this URL (%s)"; +$a->strings["The contact has been blocked from the node"] = "This contact has been blocked from the node"; +$a->strings["Enter new password: "] = "Enter new password: "; +$a->strings["Post update version number has been set to %s."] = "Post update version number has been set to %s."; +$a->strings["Check for pending update actions."] = "Check for pending update actions."; +$a->strings["Done."] = "Done."; +$a->strings["Execute pending post updates."] = "Execute pending post updates."; +$a->strings["All pending post updates are done."] = "All pending post updates are done."; $a->strings["Frequently"] = "Frequently"; $a->strings["Hourly"] = "Hourly"; $a->strings["Twice daily"] = "Twice daily"; @@ -1499,6 +1005,7 @@ $a->strings["Monthly"] = "Monthly"; $a->strings["DFRN"] = "DFRN"; $a->strings["OStatus"] = "OStatus"; $a->strings["RSS/Atom"] = "RSS/Atom"; +$a->strings["Email"] = "Email"; $a->strings["Zot!"] = "Zot!"; $a->strings["LinkedIn"] = "LinkedIn"; $a->strings["XMPP/IM"] = "XMPP/IM"; @@ -1510,6 +1017,7 @@ $a->strings["Diaspora Connector"] = "diaspora* connector"; $a->strings["GNU Social Connector"] = "GNU Social Connector"; $a->strings["ActivityPub"] = "ActivityPub"; $a->strings["pnut"] = "pnut"; +$a->strings["No answer"] = "No answer"; $a->strings["Male"] = "Male"; $a->strings["Female"] = "Female"; $a->strings["Currently Male"] = "Currently male"; @@ -1614,11 +1122,13 @@ $a->strings["Your videos"] = "My videos"; $a->strings["Your events"] = "My events"; $a->strings["Personal notes"] = "Personal notes"; $a->strings["Your personal notes"] = "My personal notes"; +$a->strings["Login"] = "Login"; $a->strings["Sign in"] = "Sign in"; $a->strings["Home"] = "Home"; $a->strings["Home Page"] = "Home page"; $a->strings["Register"] = "Sign up now >>"; $a->strings["Create an account"] = "Create account"; +$a->strings["Help"] = "Help"; $a->strings["Help and documentation"] = "Help and documentation"; $a->strings["Apps"] = "Apps"; $a->strings["Addon applications, utilities, games"] = "Addon applications, utilities, games"; @@ -1630,8 +1140,11 @@ $a->strings["Conversations on this and other servers"] = "Conversations on this $a->strings["Events and Calendar"] = "Events and calendar"; $a->strings["Directory"] = "Directory"; $a->strings["People directory"] = "People directory"; +$a->strings["Information"] = "Information"; $a->strings["Information about this friendica instance"] = "Information about this Friendica instance"; +$a->strings["Terms of Service"] = "Terms of Service"; $a->strings["Terms of Service of this Friendica instance"] = "Terms of Service of this Friendica instance"; +$a->strings["Network"] = "Network"; $a->strings["Conversations from your friends"] = "My friends' conversations"; $a->strings["Network Reset"] = "Network reset"; $a->strings["Load Network page with no filters"] = "Load network page without filters"; @@ -1647,6 +1160,7 @@ $a->strings["Manage other pages"] = "Manage other pages"; $a->strings["Account settings"] = "Account settings"; $a->strings["Manage/Edit Profiles"] = "Manage/Edit profiles"; $a->strings["Manage/edit friends and contacts"] = "Manage/Edit friends and contacts"; +$a->strings["Admin"] = "Admin"; $a->strings["Site setup and configuration"] = "Site setup and configuration"; $a->strings["Navigation"] = "Navigation"; $a->strings["Site map"] = "Site map"; @@ -1686,9 +1200,11 @@ $a->strings["%d invitation available"] = [ $a->strings["Find People"] = "Find people"; $a->strings["Enter name or interest"] = "Enter name or interest"; $a->strings["Examples: Robert Morgenstein, Fishing"] = "Examples: Robert Morgenstein, fishing"; +$a->strings["Find"] = "Find"; $a->strings["Similar Interests"] = "Similar interests"; $a->strings["Random Profile"] = "Random profile"; $a->strings["Invite Friends"] = "Invite friends"; +$a->strings["Global Directory"] = "Global Directory"; $a->strings["Local Directory"] = "Local directory"; $a->strings["Protocols"] = "Protocols"; $a->strings["All Protocols"] = "All protocols"; @@ -1700,23 +1216,13 @@ $a->strings["%d contact in common"] = [ 1 => "%d contacts in common", ]; $a->strings["Post to Email"] = "Post to email"; -$a->strings["Hide your profile details from unknown viewers?"] = "Hide profile details from unknown viewers?"; -$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Connectors are disabled since \"%s\" is enabled."; $a->strings["Visible to everybody"] = "Visible to everybody"; $a->strings["show"] = "show"; $a->strings["don't show"] = "don't show"; +$a->strings["Connectors"] = "Connectors"; +$a->strings["Hide your profile details from unknown viewers?"] = "Hide profile details from unknown viewers?"; +$a->strings["Connectors disabled, since \"%s\" is enabled."] = "Connectors are disabled since \"%s\" is enabled."; $a->strings["Close"] = "Close"; -$a->strings["Welcome "] = "Welcome "; -$a->strings["Please upload a profile photo."] = "Please upload a profile photo."; -$a->strings["Welcome back "] = "Welcome back "; -$a->strings["Could not find any unarchived contact entry for this URL (%s)"] = "Could not find any unarchived contact entry for this URL (%s)"; -$a->strings["The contact entries have been archived"] = "The contact entries have been archived"; -$a->strings["Enter new password: "] = "Enter new password: "; -$a->strings["Post update version number has been set to %s."] = "Post update version number has been set to %s."; -$a->strings["Check for pending update actions."] = "Check for pending update actions."; -$a->strings["Done."] = "Done."; -$a->strings["Execute pending post updates."] = "Execute pending post updates."; -$a->strings["All pending post updates are done."] = "All pending post updates are done."; $a->strings["The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."] = "The database configuration file \"config/local.config.php\" could not be written. Please use the enclosed text to create a configuration file in your web server root."; $a->strings["You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."] = "You may need to import the file \"database.sql\" manually using phpmyadmin or mysql."; $a->strings["Please see the file \"INSTALL.txt\"."] = "Please see the file \"INSTALL.txt\"."; @@ -1755,6 +1261,8 @@ $a->strings["POSIX PHP module"] = "POSIX PHP module"; $a->strings["Error: POSIX PHP module required but not installed."] = "Error: POSIX PHP module required but not installed."; $a->strings["JSON PHP module"] = "JSON PHP module"; $a->strings["Error: JSON PHP module required but not installed."] = "Error: JSON PHP module is required but not installed."; +$a->strings["File Information PHP module"] = "File Information PHP module"; +$a->strings["Error: File Information PHP module required but not installed."] = "Error: File Information PHP module required but not installed."; $a->strings["The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server and it is unable to do so."] = "The web installer needs to be able to create a file called \"local.config.php\" in the \"config\" folder of your web server, but is unable to do so."; $a->strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "This is most often a permission setting issue, as the web server may not be able to write files in your directory - even if you can."; $a->strings["At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder."] = "At the end of this procedure, we will give you a text to save in a file named local.config.php in your Friendica \"config\" folder."; @@ -1831,21 +1339,13 @@ $a->strings["%s is now friends with %s"] = "%s is now friends with %s"; $a->strings["Friend Suggestion"] = "Friend suggestion"; $a->strings["Friend/Connect Request"] = "Friend/Contact request"; $a->strings["New Follower"] = "New follower"; -$a->strings["Error 400 - Bad Request"] = "Error 400 - Bad Request"; -$a->strings["Error 401 - Unauthorized"] = "Error 401 - Unauthorized"; -$a->strings["Error 403 - Forbidden"] = "Error 403 - Forbidden"; -$a->strings["Error 404 - Not Found"] = "Error 404 - Not Found"; -$a->strings["Error 500 - Internal Server Error"] = "Error 500 - Internal Server Error"; -$a->strings["Error 503 - Service Unavailable"] = "Error 503 - Service Unavailable"; -$a->strings["The server cannot or will not process the request due to an apparent client error."] = "The server cannot process the request due to an apparent client error."; -$a->strings["Authentication is required and has failed or has not yet been provided."] = "Authentication is required but has failed or not yet being provided."; -$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."; -$a->strings["The requested resource could not be found but may be available in the future."] = "The requested resource could not be found but may be available in the future."; -$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "An unexpected condition was encountered and no more specific message is available."; -$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "The server is currently unavailable (possibly because it is overloaded or down for maintenance). Please try again later."; +$a->strings["Welcome %s"] = "Welcome %s"; +$a->strings["Please upload a profile photo."] = "Please upload a profile photo."; +$a->strings["Welcome back %s"] = "Welcome back %s"; $a->strings["Update %s failed. See error logs."] = "Update %s failed. See error logs."; $a->strings["\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."] = "\n\t\t\t\tThe friendica developers released update %s recently,\n\t\t\t\tbut when I tried to install it, something went terribly wrong.\n\t\t\t\tThis needs to be fixed soon and I can't do it alone. Please contact a\n\t\t\t\tfriendica developer if you can not help me on your own. My database might be invalid."; $a->strings["The error message is\n[pre]%s[/pre]"] = "The error message is\n[pre]%s[/pre]"; +$a->strings["[Friendica Notify] Database update"] = "[Friendica Notify] Database update"; $a->strings["\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s."] = "\n\t\t\t\t\tThe friendica database was successfully updated from %s to %s."; $a->strings["Error decoding account file"] = "Error decoding account file"; $a->strings["Error! No version data in file! This is not a Friendica account file?"] = "Error! No version data in file! Is this a Friendica account file?"; @@ -1879,6 +1379,7 @@ $a->strings["Use mailto: in front of address to force email check."] = "Use mail $a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "The profile address specified belongs to a network which has been disabled on this site."; $a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Limited profile: This person will be unable to receive direct/private messages from you."; $a->strings["Unable to retrieve contact information."] = "Unable to retrieve contact information."; +$a->strings["l F d, Y \\@ g:i A"] = "l F d, Y \\@ g:i A"; $a->strings["Starts:"] = "Starts:"; $a->strings["Finishes:"] = "Finishes:"; $a->strings["all-day"] = "All-day"; @@ -1902,7 +1403,9 @@ $a->strings["Default privacy group for new contacts"] = "Default privacy group f $a->strings["Everybody"] = "Everybody"; $a->strings["edit"] = "edit"; $a->strings["Edit group"] = "Edit group"; +$a->strings["Contacts not in any group"] = "Contacts not in any group"; $a->strings["Create a new group"] = "Create new group"; +$a->strings["Group Name: "] = "Group name: "; $a->strings["Edit groups"] = "Edit groups"; $a->strings["activity"] = "activity"; $a->strings["comment"] = [ @@ -1915,11 +1418,11 @@ $a->strings["bytes"] = "bytes"; $a->strings["View on separate page"] = "View on separate page"; $a->strings["view on separate page"] = "view on separate page"; $a->strings["[no subject]"] = "[no subject]"; -$a->strings["Requested account is not available."] = "Requested account is unavailable."; -$a->strings["Requested profile is not available."] = "Requested profile is unavailable."; $a->strings["Edit profile"] = "Edit profile"; $a->strings["Atom feed"] = "Atom feed"; $a->strings["Manage/edit profiles"] = "Manage/Edit profiles"; +$a->strings["Status:"] = "Status:"; +$a->strings["Homepage:"] = "Homepage:"; $a->strings["XMPP:"] = "XMPP:"; $a->strings["g A l F d"] = "g A l F d"; $a->strings["F d"] = "F d"; @@ -1996,7 +1499,446 @@ $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Yo $a->strings["Registration at %s"] = "Registration at %s"; $a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"] = "\n\t\t\tDear %1\$s,\n\t\t\t\tThank you for registering at %2\$s. Your account has been created.\n\t\t"; $a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."] = "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%3\$s\n\t\t\tLogin Name:\t\t%1\$s\n\t\t\tPassword:\t\t%5\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %3\$s/removeme\n\n\t\t\tThank you and welcome to %2\$s."; +$a->strings["Registration details for %s"] = "Registration details for %s"; +$a->strings["Addon not found."] = "Addon not found."; +$a->strings["Addon %s disabled."] = "Addon %s disabled."; +$a->strings["Addon %s enabled."] = "Addon %s enabled."; +$a->strings["Disable"] = "Disable"; +$a->strings["Enable"] = "Enable"; +$a->strings["Administration"] = "Administration"; +$a->strings["Toggle"] = "Toggle"; +$a->strings["Author: "] = "Author: "; +$a->strings["Maintainer: "] = "Maintainer: "; +$a->strings["Addon %s failed to install."] = "Addon %s failed to install."; +$a->strings["Reload active addons"] = "Reload active addons"; +$a->strings["There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"] = "There are currently no addons available on your node. You can find the official addon repository at %1\$s and might find other interesting addons in the open addon registry at %2\$s"; +$a->strings["%s contact unblocked"] = [ + 0 => "%s contact unblocked", + 1 => "%s contacts unblocked", +]; +$a->strings["Remote Contact Blocklist"] = "Remote contact blocklist"; +$a->strings["This page allows you to prevent any message from a remote contact to reach your node."] = "This page allows you to prevent any message from a remote contact to reach your node."; +$a->strings["Block Remote Contact"] = "Block remote contact"; +$a->strings["select all"] = "select all"; +$a->strings["select none"] = "select none"; +$a->strings["Unblock"] = "Unblock"; +$a->strings["No remote contact is blocked from this node."] = "No remote contact is blocked from this node."; +$a->strings["Blocked Remote Contacts"] = "Blocked remote contacts"; +$a->strings["Block New Remote Contact"] = "Block new remote contact"; +$a->strings["Photo"] = "Photo"; +$a->strings["%s total blocked contact"] = [ + 0 => "%s total blocked contact", + 1 => "%s blocked contacts", +]; +$a->strings["URL of the remote contact to block."] = "URL of the remote contact to block."; +$a->strings["Server added to blocklist."] = "Server added to blocklist."; +$a->strings["Site blocklist updated."] = "Site blocklist updated."; +$a->strings["The blocked domain"] = "Blocked domain"; +$a->strings["Reason for the block"] = "Reason for the block"; +$a->strings["The reason why you blocked this domain."] = "Reason why you blocked this domain."; +$a->strings["Delete domain"] = "Delete domain"; +$a->strings["Check to delete this entry from the blocklist"] = "Check to delete this entry from the blocklist"; +$a->strings["Server Blocklist"] = "Server blocklist"; +$a->strings["This page can be used to define a black list of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."] = "This page can be used to define a blacklist of servers from the federated network that are not allowed to interact with your node. For all entered domains you should also give a reason why you have blocked the remote server."; +$a->strings["The list of blocked servers will be made publically available on the /friendica page so that your users and people investigating communication problems can find the reason easily."] = "The list of blocked servers will be available publicly on the Friendica page so that your users and people investigating communication problems can find the reason."; +$a->strings["Add new entry to block list"] = "Add new entry to block list"; +$a->strings["Server Domain"] = "Server domain"; +$a->strings["The domain of the new server to add to the block list. Do not include the protocol."] = "The domain of the new server to add to the block list. Do not include the protocol."; +$a->strings["Block reason"] = "Block reason"; +$a->strings["Add Entry"] = "Add entry"; +$a->strings["Save changes to the blocklist"] = "Save changes to the blocklist"; +$a->strings["Current Entries in the Blocklist"] = "Current entries in the blocklist"; +$a->strings["Delete entry from blocklist"] = "Delete entry from blocklist"; +$a->strings["Delete entry from blocklist?"] = "Delete entry from blocklist?"; +$a->strings["Update has been marked successful"] = "Update has been marked successful"; +$a->strings["Database structure update %s was successfully applied."] = "Database structure update %s was successfully applied."; +$a->strings["Executing of database structure update %s failed with error: %s"] = "Execution of database structure update %s failed with error: %s"; +$a->strings["Executing %s failed with error: %s"] = "Execution of %s failed with error: %s"; +$a->strings["Update %s was successfully applied."] = "Update %s was successfully applied."; +$a->strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s did not return a status. Unknown if it succeeded."; +$a->strings["There was no additional update function %s that needed to be called."] = "There was no additional update function %s that needed to be called."; +$a->strings["No failed updates."] = "No failed updates."; +$a->strings["Check database structure"] = "Check database structure"; +$a->strings["Failed Updates"] = "Failed updates"; +$a->strings["This does not include updates prior to 1139, which did not return a status."] = "This does not include updates prior to 1139, which did not return a status."; +$a->strings["Mark success (if update was manually applied)"] = "Mark success (if update was manually applied)"; +$a->strings["Attempt to execute this update step automatically"] = "Attempt to execute this update step automatically"; +$a->strings["Lock feature %s"] = "Lock feature %s"; +$a->strings["Manage Additional Features"] = "Manage additional features"; +$a->strings["unknown"] = "unknown"; +$a->strings["This page offers you some numbers to the known part of the federated social network your Friendica node is part of. These numbers are not complete but only reflect the part of the network your node is aware of."] = "This page offers statistics about the federated social network, of which your Friendica node is one part. These numbers do not represent the entire network, but merely the parts that are connected to your node.\""; +$a->strings["The Auto Discovered Contact Directory feature is not enabled, it will improve the data displayed here."] = "The Auto Discovered Contact Directory feature is not enabled; enabling it will improve the data displayed here."; +$a->strings["Federation Statistics"] = "Federation statistics"; +$a->strings["Currently this node is aware of %d nodes with %d registered users from the following platforms:"] = "Currently, this node is aware of %d nodes with %d registered users from the following platforms:"; +$a->strings["Item marked for deletion."] = "Item marked for deletion."; +$a->strings["Delete Item"] = "Delete item"; +$a->strings["Delete this Item"] = "Delete"; +$a->strings["On this page you can delete an item from your node. If the item is a top level posting, the entire thread will be deleted."] = "Here you can delete an item from this node. If the item is a top-level posting, the entire thread will be deleted."; +$a->strings["You need to know the GUID of the item. You can find it e.g. by looking at the display URL. The last part of http://example.com/display/123456 is the GUID, here 123456."] = "You need to know the global unique identifier (GUID) of the item, which you can find by looking at the display URL. The last part of http://example.com/display/123456 is the GUID: i.e. 123456."; +$a->strings["GUID"] = "GUID"; +$a->strings["The GUID of the item you want to delete."] = "GUID of item to be deleted."; +$a->strings["Item Guid"] = "Item Guid"; +$a->strings["Log settings updated."] = "Log settings updated."; +$a->strings["PHP log currently enabled."] = "PHP log currently enabled."; +$a->strings["PHP log currently disabled."] = "PHP log currently disabled."; +$a->strings["Logs"] = "Logs"; +$a->strings["Clear"] = "Clear"; +$a->strings["Enable Debugging"] = "Enable debugging"; +$a->strings["Log file"] = "Log file"; +$a->strings["Must be writable by web server. Relative to your Friendica top-level directory."] = "Must be writable by web server and relative to your Friendica top-level directory."; +$a->strings["Log level"] = "Log level"; +$a->strings["PHP logging"] = "PHP logging"; +$a->strings["To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."] = "To temporarily enable logging of PHP errors and warnings you can prepend the following to the index.php file of your installation. The filename set in the 'error_log' line is relative to the friendica top-level directory and must be writeable by the web server. The option '1' for 'log_errors' and 'display_errors' is to enable these options, set to '0' to disable them."; +$a->strings["Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."] = "Error trying to open %1\$s log file.\\r\\n
    Check to see if file %1\$s exist and is readable."; +$a->strings["Couldn't open %1\$s log file.\\r\\n
    Check to see if file %1\$s is readable."] = "Couldn't open %1\$s log file.\\r\\n
    Check if file %1\$s is readable."; +$a->strings["View Logs"] = "View logs"; +$a->strings["Inspect Deferred Worker Queue"] = "Inspect deferred worker queue"; +$a->strings["This page lists the deferred worker jobs. This are jobs that couldn't be executed at the first time."] = "This page lists the deferred worker jobs. These are jobs that couldn't initially be executed."; +$a->strings["Inspect Worker Queue"] = "Inspect worker queue"; +$a->strings["This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."] = "This page lists the currently queued worker jobs. These jobs are handled by the worker cronjob you've set up during install."; +$a->strings["ID"] = "ID"; +$a->strings["Job Parameters"] = "Job parameters"; +$a->strings["Created"] = "Created"; +$a->strings["Priority"] = "Priority"; +$a->strings["Can not parse base url. Must have at least ://"] = "Can not parse base URL. Must have at least ://"; +$a->strings["Invalid storage backend setting value."] = "Invalid storage backend setting."; +$a->strings["Site settings updated."] = "Site settings updated."; +$a->strings["No community page for local users"] = "No community page for local users"; +$a->strings["No community page"] = "No community page"; +$a->strings["Public postings from users of this site"] = "Public postings from users of this site"; +$a->strings["Public postings from the federated network"] = "Public postings from the federated network"; +$a->strings["Public postings from local users and the federated network"] = "Public postings from local users and the federated network"; +$a->strings["Disabled"] = "Disabled"; +$a->strings["Users"] = "Users"; +$a->strings["Users, Global Contacts"] = "Users, Global Contacts"; +$a->strings["Users, Global Contacts/fallback"] = "Users, Global Contacts/fallback"; +$a->strings["One month"] = "One month"; +$a->strings["Three months"] = "Three months"; +$a->strings["Half a year"] = "Half a year"; +$a->strings["One year"] = "One a year"; +$a->strings["Multi user instance"] = "Multi user instance"; +$a->strings["Closed"] = "Closed"; +$a->strings["Requires approval"] = "Requires approval"; +$a->strings["Open"] = "Open"; +$a->strings["No SSL policy, links will track page SSL state"] = "No SSL policy, links will track page SSL state"; +$a->strings["Force all links to use SSL"] = "Force all links to use SSL"; +$a->strings["Self-signed certificate, use SSL for local links only (discouraged)"] = "Self-signed certificate, use SSL for local links only (discouraged)"; +$a->strings["Don't check"] = "Don't check"; +$a->strings["check the stable version"] = "check for stable version updates"; +$a->strings["check the development version"] = "check for development version updates"; +$a->strings["Database (legacy)"] = "Database (legacy)"; +$a->strings["Site"] = "Site"; +$a->strings["Republish users to directory"] = "Republish users to directory"; +$a->strings["Registration"] = "Registration"; +$a->strings["File upload"] = "File upload"; +$a->strings["Policies"] = "Policies"; +$a->strings["Auto Discovered Contact Directory"] = "Auto-discovered contact directory"; +$a->strings["Performance"] = "Performance"; +$a->strings["Worker"] = "Worker"; +$a->strings["Message Relay"] = "Message relay"; +$a->strings["Relocate Instance"] = "Relocate Instance"; +$a->strings["Warning! Advanced function. Could make this server unreachable."] = "Warning! Advanced function that could make this server unreachable."; +$a->strings["Site name"] = "Site name"; +$a->strings["Sender Email"] = "Sender email"; +$a->strings["The email address your server shall use to send notification emails from."] = "The email address your server shall use to send notification emails from."; +$a->strings["Banner/Logo"] = "Banner/Logo"; +$a->strings["Shortcut icon"] = "Shortcut icon"; +$a->strings["Link to an icon that will be used for browsers."] = "Link to an icon that will be used for browsers."; +$a->strings["Touch icon"] = "Touch icon"; +$a->strings["Link to an icon that will be used for tablets and mobiles."] = "Link to an icon that will be used for tablets and mobiles."; +$a->strings["Additional Info"] = "Additional Info"; +$a->strings["For public servers: you can add additional information here that will be listed at %s/servers."] = "For public servers: You can add additional information here that will be listed at %s/servers."; +$a->strings["System language"] = "System language"; +$a->strings["System theme"] = "System theme"; +$a->strings["Default system theme - may be over-ridden by user profiles - Change default theme settings"] = "Default system theme - may be over-ridden by user profiles - Change default theme settings"; +$a->strings["Mobile system theme"] = "Mobile system theme"; +$a->strings["Theme for mobile devices"] = "Theme for mobile devices"; +$a->strings["SSL link policy"] = "SSL link policy"; +$a->strings["Determines whether generated links should be forced to use SSL"] = "Determines whether generated links should be forced to use SSL"; +$a->strings["Force SSL"] = "Force SSL"; +$a->strings["Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."] = "Force all Non-SSL requests to SSL - Attention: on some systems it could lead to endless loops."; +$a->strings["Hide help entry from navigation menu"] = "Hide help entry from navigation menu"; +$a->strings["Hides the menu entry for the Help pages from the navigation menu. You can still access it calling /help directly."] = "Hides the menu entry for the Help pages from the navigation menu. Help pages can still be accessed by calling ../help directly via its URL."; +$a->strings["Single user instance"] = "Single user instance"; +$a->strings["Make this instance multi-user or single-user for the named user"] = "Make this instance multi-user or single-user for the named user"; +$a->strings["File storage backend"] = "File storage backend"; +$a->strings["The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."] = "The backend used to store uploaded data. If you change the storage backend, you can manually move the existing files. If you do not do so, the files uploaded before the change will still be available at the old backend. Please see the settings documentation for more information about the choices and the moving procedure."; +$a->strings["Maximum image size"] = "Maximum image size"; +$a->strings["Maximum size in bytes of uploaded images. Default is 0, which means no limits."] = "Maximum size in bytes of uploaded images. Default is 0, which means no limits."; +$a->strings["Maximum image length"] = "Maximum image length"; +$a->strings["Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."] = "Maximum length in pixels of the longest side of uploaded images. Default is -1, which means no limits."; +$a->strings["JPEG image quality"] = "JPEG image quality"; +$a->strings["Uploaded JPEGS will be saved at this quality setting [0-100]. Default is 100, which is full quality."] = "Uploaded JPEGs will be saved at this quality setting [0-100]. Default is 100, which is the original quality level."; +$a->strings["Register policy"] = "Registration policy"; +$a->strings["Maximum Daily Registrations"] = "Maximum daily registrations"; +$a->strings["If registration is permitted above, this sets the maximum number of new user registrations to accept per day. If register is set to closed, this setting has no effect."] = "If open registration is permitted, this sets the maximum number of new registrations per day. This setting has no effect for registrations by approval."; +$a->strings["Register text"] = "Registration text"; +$a->strings["Will be displayed prominently on the registration page. You can use BBCode here."] = "Will be displayed prominently on the registration page. You may use BBCode here."; +$a->strings["Forbidden Nicknames"] = "Forbidden Nicknames"; +$a->strings["Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."] = "Comma separated list of nicknames that are forbidden from registration. Preset is a list of role names according RFC 2142."; +$a->strings["Accounts abandoned after x days"] = "Accounts abandoned after so many days"; +$a->strings["Will not waste system resources polling external sites for abandonded accounts. Enter 0 for no time limit."] = "Will not waste system resources polling external sites for abandoned accounts. Enter 0 for no time limit."; +$a->strings["Allowed friend domains"] = "Allowed friend domains"; +$a->strings["Comma separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Empty to allow any domains"] = "Comma-separated list of domains which are allowed to establish friendships with this site. Wildcards are accepted. Leave empty to allow any domains"; +$a->strings["Allowed email domains"] = "Allowed email domains"; +$a->strings["Comma separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Empty to allow any domains"] = "Comma-separated list of domains which are allowed in email addresses for registrations to this site. Wildcards are accepted. Leave empty to allow any domains"; +$a->strings["No OEmbed rich content"] = "No OEmbed rich content"; +$a->strings["Don't show the rich content (e.g. embedded PDF), except from the domains listed below."] = "Don't show rich content (e.g. embedded PDF), except from the domains listed below."; +$a->strings["Allowed OEmbed domains"] = "Allowed OEmbed domains"; +$a->strings["Comma separated list of domains which oembed content is allowed to be displayed. Wildcards are accepted."] = "Comma-separated list of domains from where OEmbed content is allowed. Wildcards are possible."; +$a->strings["Block public"] = "Block public"; +$a->strings["Check to block public access to all otherwise public personal pages on this site unless you are currently logged in."] = "Block public access to all otherwise public personal pages on this site, except for local users when logged in."; +$a->strings["Force publish"] = "Mandatory directory listing"; +$a->strings["Check to force all profiles on this site to be listed in the site directory."] = "Force all profiles on this site to be listed in the site directory."; +$a->strings["Enabling this may violate privacy laws like the GDPR"] = "Enabling this may violate privacy laws like the GDPR"; +$a->strings["Global directory URL"] = "Global directory URL"; +$a->strings["URL to the global directory. If this is not set, the global directory is completely unavailable to the application."] = "URL to the global directory: If this is not set, the global directory is completely unavailable to the application."; +$a->strings["Private posts by default for new users"] = "Private posts by default for new users"; +$a->strings["Set default post permissions for all new members to the default privacy group rather than public."] = "Set default post permissions for all new members to the default privacy group rather than public."; +$a->strings["Don't include post content in email notifications"] = "Don't include post content in email notifications"; +$a->strings["Don't include the content of a post/comment/private message/etc. in the email notifications that are sent out from this site, as a privacy measure."] = "Don't include the content of a post/comment/private message in the email notifications sent from this site, as a privacy measure."; +$a->strings["Disallow public access to addons listed in the apps menu."] = "Disallow public access to addons listed in the apps menu."; +$a->strings["Checking this box will restrict addons listed in the apps menu to members only."] = "Checking this box will restrict addons listed in the apps menu to members only."; +$a->strings["Don't embed private images in posts"] = "Don't embed private images in posts"; +$a->strings["Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."] = "Don't replace locally-hosted private photos in posts with an embedded copy of the image. This means that contacts who receive posts containing private photos will have to authenticate and load each image, which may take a while."; +$a->strings["Explicit Content"] = "Explicit Content"; +$a->strings["Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."] = "Set this to announce that your node is used mostly for explicit content that might not be suited for minors. This information will be published in the node information and might be used, e.g. by the global directory, to filter your node from listings of nodes to join. Additionally a note about this will be shown at the user registration page."; +$a->strings["Allow Users to set remote_self"] = "Allow users to set \"Remote self\""; +$a->strings["With checking this, every user is allowed to mark every contact as a remote_self in the repair contact dialog. Setting this flag on a contact causes mirroring every posting of that contact in the users stream."] = "This allows every user to mark contacts as a \"Remote self\" in the repair contact dialogue. Setting this flag on a contact will mirror every posting of that contact in the users stream."; +$a->strings["Block multiple registrations"] = "Block multiple registrations"; +$a->strings["Disallow users to register additional accounts for use as pages."] = "Disallow users to sign up for additional accounts."; +$a->strings["Disable OpenID"] = "Disable OpenID"; +$a->strings["Disable OpenID support for registration and logins."] = "Disable OpenID support for registration and logins."; +$a->strings["No Fullname check"] = "No full name check"; +$a->strings["Allow users to register without a space between the first name and the last name in their full name."] = "Allow users to register without a space between the first name and the last name in their full name."; +$a->strings["Community pages for visitors"] = "Community pages for visitors"; +$a->strings["Which community pages should be available for visitors. Local users always see both pages."] = "Which community pages should be available for visitors. Local users always see both pages."; +$a->strings["Posts per user on community page"] = "Posts per user on community page"; +$a->strings["The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"] = "The maximum number of posts per user on the community page. (Not valid for \"Global Community\")"; +$a->strings["Disable OStatus support"] = "Disable OStatus support"; +$a->strings["Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."] = "Disable built-in OStatus (StatusNet, GNU Social etc.) compatibility. All communications in OStatus are public, so privacy warnings will be occasionally displayed."; +$a->strings["Only import OStatus/ActivityPub threads from our contacts"] = "Only import OStatus/ActivityPub threads from our contacts"; +$a->strings["Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."] = "Normally we import every content from our OStatus and ActivityPub contacts. With this option we only store threads that are started by a contact that is known on our system."; +$a->strings["OStatus support can only be enabled if threading is enabled."] = "OStatus support can only be enabled if threading is enabled."; +$a->strings["Diaspora support can't be enabled because Friendica was installed into a sub directory."] = "diaspora* support can't be enabled because Friendica was installed into a sub directory."; +$a->strings["Enable Diaspora support"] = "Enable diaspora* support"; +$a->strings["Provide built-in Diaspora network compatibility."] = "Provide built-in diaspora* network compatibility."; +$a->strings["Only allow Friendica contacts"] = "Only allow Friendica contacts"; +$a->strings["All contacts must use Friendica protocols. All other built-in communication protocols disabled."] = "All contacts must use Friendica protocols. All other built-in communication protocols will be disabled."; +$a->strings["Verify SSL"] = "Verify SSL"; +$a->strings["If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."] = "If you wish, you can turn on strict certificate checking. This will mean you cannot connect (at all) to self-signed SSL sites."; +$a->strings["Proxy user"] = "Proxy user"; +$a->strings["Proxy URL"] = "Proxy URL"; +$a->strings["Network timeout"] = "Network timeout"; +$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Value is in seconds. Set to 0 for unlimited (not recommended)."; +$a->strings["Maximum Load Average"] = "Maximum load average"; +$a->strings["Maximum system load before delivery and poll processes are deferred - default %d."] = "Maximum system load before delivery and poll processes are deferred - default %d."; +$a->strings["Maximum Load Average (Frontend)"] = "Maximum load average (frontend)"; +$a->strings["Maximum system load before the frontend quits service - default 50."] = "Maximum system load before the frontend quits service (default 50)."; +$a->strings["Minimal Memory"] = "Minimal memory"; +$a->strings["Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."] = "Minimal free memory in MB for the worker. Needs access to /proc/meminfo - default 0 (deactivated)."; +$a->strings["Maximum table size for optimization"] = "Maximum table size for optimization"; +$a->strings["Maximum table size (in MB) for the automatic optimization. Enter -1 to disable it."] = "Maximum table size (in MB) for automatic optimization. Enter -1 to disable it."; +$a->strings["Minimum level of fragmentation"] = "Minimum level of fragmentation"; +$a->strings["Minimum fragmenation level to start the automatic optimization - default value is 30%."] = "Minimum fragmentation level to start the automatic optimization (default 30%)."; +$a->strings["Periodical check of global contacts"] = "Periodical check of global contacts"; +$a->strings["If enabled, the global contacts are checked periodically for missing or outdated data and the vitality of the contacts and servers."] = "This checks global contacts periodically for missing or outdated data and the vitality of the contacts and servers."; +$a->strings["Days between requery"] = "Days between enquiry"; +$a->strings["Number of days after which a server is requeried for his contacts."] = "Number of days after which a server is rechecked for contacts."; +$a->strings["Discover contacts from other servers"] = "Discover contacts from other servers"; +$a->strings["Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."] = "Periodically query other servers for contacts. You can choose between \"Users\": the users on the remote system, \"Global Contacts\": active contacts that are known on the system. The fallback is meant for Redmatrix servers and older Friendica servers, where global contacts weren't available. The fallback increases the server load, so the recommended setting is \"Users, Global Contacts\"."; +$a->strings["Timeframe for fetching global contacts"] = "Time-frame for fetching global contacts"; +$a->strings["When the discovery is activated, this value defines the timeframe for the activity of the global contacts that are fetched from other servers."] = "If discovery is activated, this value defines the time-frame for the activity of the global contacts that are fetched from other servers."; +$a->strings["Search the local directory"] = "Search the local directory"; +$a->strings["Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."] = "Search the local directory instead of the global directory. When searching locally, every search will be executed on the global directory in the background. This improves the search results when the search is repeated."; +$a->strings["Publish server information"] = "Publish server information"; +$a->strings["If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."] = "If enabled, general server and usage data will be published. The data contains the name and version of the server, number of users with public profiles, number of posts and the activated protocols and connectors. See the-federation.info for details."; +$a->strings["Check upstream version"] = "Check upstream version"; +$a->strings["Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."] = "Enables checking for new Friendica versions at github. If there is a new version, you will be informed in the admin panel overview."; +$a->strings["Suppress Tags"] = "Suppress tags"; +$a->strings["Suppress showing a list of hashtags at the end of the posting."] = "Suppress listed hashtags at the end of posts."; +$a->strings["Clean database"] = "Clean database"; +$a->strings["Remove old remote items, orphaned database records and old content from some other helper tables."] = "Remove old remote items, orphaned database records, and old content from some other helper tables."; +$a->strings["Lifespan of remote items"] = "Lifespan of remote items"; +$a->strings["When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items are always kept. 0 disables this behaviour."] = "When the database cleanup is enabled, this defines the days after which remote items will be deleted. Own items, and marked or filed items, are always kept. 0 disables this behavior."; +$a->strings["Lifespan of unclaimed items"] = "Lifespan of unclaimed items"; +$a->strings["When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."] = "When the database cleanup is enabled, this defines the days after which unclaimed remote items (mostly content from the relay) will be deleted. Default value is 90 days. Defaults to the general lifespan value of remote items if set to 0."; +$a->strings["Lifespan of raw conversation data"] = "Lifespan of raw conversation data"; +$a->strings["The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."] = "The conversation data is used for ActivityPub and OStatus, as well as for debug purposes. It should be safe to remove it after 14 days, default is 90 days."; +$a->strings["Path to item cache"] = "Path to item cache"; +$a->strings["The item caches buffers generated bbcode and external images."] = "The item cache retains expanded bbcode and external images."; +$a->strings["Cache duration in seconds"] = "Cache duration in seconds"; +$a->strings["How long should the cache files be hold? Default value is 86400 seconds (One day). To disable the item cache, set the value to -1."] = "How long should cache files be held? (Default 86400 seconds - one day; -1 disables item cache)"; +$a->strings["Maximum numbers of comments per post"] = "Maximum number of comments per post"; +$a->strings["How much comments should be shown for each post? Default value is 100."] = "How many comments should be shown for each post? (Default 100)"; +$a->strings["Temp path"] = "Temp path"; +$a->strings["If you have a restricted system where the webserver can't access the system temp path, enter another path here."] = "Enter a different temp path if your system restricts the webserver's access to the system temp path."; +$a->strings["Disable picture proxy"] = "Disable picture proxy"; +$a->strings["The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."] = "The picture proxy increases performance and privacy. It shouldn't be used on systems with very low bandwidth."; +$a->strings["Only search in tags"] = "Only search in tags"; +$a->strings["On large systems the text search can slow down the system extremely."] = "On large systems, the text search can slow down the system significantly."; +$a->strings["New base url"] = "New base URL"; +$a->strings["Change base url for this server. Sends relocate message to all Friendica and Diaspora* contacts of all users."] = "Change base URL for this server. Sends a relocate message to all Friendica and diaspora* contacts, for all users."; +$a->strings["RINO Encryption"] = "RINO Encryption"; +$a->strings["Encryption layer between nodes."] = "Encryption layer between nodes."; +$a->strings["Enabled"] = "Enabled"; +$a->strings["Maximum number of parallel workers"] = "Maximum number of parallel workers"; +$a->strings["On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."] = "On shared hosters set this to %d. On larger systems, values of %d are great. Default value is %d."; +$a->strings["Don't use \"proc_open\" with the worker"] = "Don't use \"proc_open\" with the worker"; +$a->strings["Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."] = "Enable this if your system doesn't allow the use of \"proc_open\". This can happen on shared hosters. If this is enabled you should increase the frequency of worker calls in your crontab."; +$a->strings["Enable fastlane"] = "Enable fast-lane"; +$a->strings["When enabed, the fastlane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."] = "The fast-lane mechanism starts an additional worker if processes with higher priority are blocked by processes of lower priority."; +$a->strings["Enable frontend worker"] = "Enable frontend worker"; +$a->strings["When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."] = "When enabled the Worker process is triggered when backend access is performed (e.g. messages being delivered). On smaller sites you might want to call %s/worker on a regular basis via an external cron job. You should only enable this option if you cannot utilize cron/scheduled jobs on your server."; +$a->strings["Subscribe to relay"] = "Subscribe to relay"; +$a->strings["Enables the receiving of public posts from the relay. They will be included in the search, subscribed tags and on the global community page."] = "Receive public posts from the specified relay. Post will be included in searches, subscribed tags, and on the global community page."; +$a->strings["Relay server"] = "Relay server"; +$a->strings["Address of the relay server where public posts should be send to. For example https://relay.diasp.org"] = "Address of the relay server where public posts should be sent. For example https://relay.diasp.org"; +$a->strings["Direct relay transfer"] = "Direct relay transfer"; +$a->strings["Enables the direct transfer to other servers without using the relay servers"] = "Enables direct transfer to other servers without using a relay server."; +$a->strings["Relay scope"] = "Relay scope"; +$a->strings["Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."] = "Can be \"all\" or \"tags\". \"all\" means that every public post should be received. \"tags\" means that only posts with selected tags should be received."; +$a->strings["all"] = "all"; +$a->strings["tags"] = "tags"; +$a->strings["Server tags"] = "Server tags"; +$a->strings["Comma separated list of tags for the \"tags\" subscription."] = "Comma separated list of tags for the \"tags\" subscription."; +$a->strings["Allow user tags"] = "Allow user tags"; +$a->strings["If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."] = "If enabled, the tags from the saved searches will used for the \"tags\" subscription in addition to the \"relay_server_tags\"."; +$a->strings["Start Relocation"] = "Start Relocation"; +$a->strings["Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "] = "Your DB still runs with MyISAM tables. You should change the engine type to InnoDB. As Friendica will use InnoDB-only features in the future, you should change this! See here for a guide that may be helpful converting the table engines. You may also use the command php bin/console.php dbstructure toinnodb of your Friendica installation for an automatic conversion.
    "; +$a->strings["There is a new version of Friendica available for download. Your current version is %1\$s, upstream version is %2\$s"] = "A new Friendica version is available now. Your current version is %1\$s, upstream version is %2\$s"; +$a->strings["The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear."] = "The database update failed. Please run \"php bin/console.php dbstructure update\" from the command line and check for errors that may appear."; +$a->strings["The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that might appear. (Some of the errors are possibly inside the logfile.)"] = "The last update failed. Please run \"php bin/console.php dbstructure update\" from the command line and have a look at the errors that may appear in the console and logfile output."; +$a->strings["The worker was never executed. Please check your database structure!"] = "The worker process has never been executed. Please check your database structure!"; +$a->strings["The last worker execution was on %s UTC. This is older than one hour. Please check your crontab settings."] = "The last worker process started at %s UTC. This is more than one hour ago. Please adjust your crontab settings."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from .htconfig.php. See the Config help page for help with the transition."] = "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition..htconfig.php. See the Config help page for help with the transition."; +$a->strings["Friendica's configuration now is stored in config/local.config.php, please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."] = "Friendica's configuration is now stored in config/local.config.php; please copy config/local-sample.config.php and move your config from config/local.ini.php. See the Config help page for help with the transition."; +$a->strings["%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."] = "%s is not reachable on your system. This is a severe configuration issue that prevents server to server communication. See the installation page for help."; +$a->strings["Friendica's system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."] = "The system.basepath was updated from '%s' to '%s'. Please remove the system.basepath from your db to avoid differences."; +$a->strings["Friendica's current system.basepath '%s' is wrong and the config file '%s' isn't used."] = "The current system.basepath '%s' is wrong and the config file '%s' isn't used."; +$a->strings["Friendica's current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."] = "The current system.basepath '%s' is not equal to the config file '%s'. Please fix your configuration."; +$a->strings["Normal Account"] = "Standard account"; +$a->strings["Automatic Follower Account"] = "Automatic follower account"; +$a->strings["Public Forum Account"] = "Public forum account"; +$a->strings["Automatic Friend Account"] = "Automatic friend account"; +$a->strings["Blog Account"] = "Blog account"; +$a->strings["Private Forum Account"] = "Private forum account"; +$a->strings["Message queues"] = "Message queues"; +$a->strings["Server Settings"] = "Server Settings"; +$a->strings["Summary"] = "Summary"; +$a->strings["Registered users"] = "Signed up users"; +$a->strings["Pending registrations"] = "Pending registrations"; +$a->strings["Version"] = "Version"; +$a->strings["Active addons"] = "Active addons"; +$a->strings["Theme settings updated."] = "Theme settings updated."; +$a->strings["Theme %s disabled."] = "Theme %s disabled."; +$a->strings["Theme %s successfully enabled."] = "Theme %s successfully enabled."; +$a->strings["Theme %s failed to install."] = "Theme %s failed to install."; +$a->strings["Screenshot"] = "Screenshot"; +$a->strings["Themes"] = "Theme selection"; +$a->strings["Unknown theme."] = "Unknown theme."; +$a->strings["Reload active themes"] = "Reload active themes"; +$a->strings["No themes found on the system. They should be placed in %1\$s"] = "No themes found on the system. They should be placed in %1\$s"; +$a->strings["[Experimental]"] = "[Experimental]"; +$a->strings["[Unsupported]"] = "[Unsupported]"; +$a->strings["The Terms of Service settings have been updated."] = "The Terms of Service settings have been updated."; +$a->strings["Display Terms of Service"] = "Display Terms of Service"; +$a->strings["Enable the Terms of Service page. If this is enabled a link to the terms will be added to the registration form and the general information page."] = "Enable the Terms of Service page. If this is enabled, a link to the terms will be added to the registration form and to the general information page."; +$a->strings["Display Privacy Statement"] = "Display Privacy Statement"; +$a->strings["Show some informations regarding the needed information to operate the node according e.g. to EU-GDPR."] = "Show some information needed, for example, to comply with EU-GDPR."; +$a->strings["Privacy Statement Preview"] = "Privacy Statement Preview"; +$a->strings["The Terms of Service"] = "Terms of Service"; +$a->strings["Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] and below."] = "Enter the Terms of Service for your node here. You can use BBCode. Headers of sections should be [h2] or less."; +$a->strings["\n\t\t\tDear %1\$s,\n\t\t\t\tthe administrator of %2\$s has set up an account for you."] = "\n\t\t\tDear %1\$s,\n\t\t\t\tThe administrator of %2\$s has set up an account for you."; +$a->strings["\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."] = "\n\t\t\tThe login details are as follows:\n\n\t\t\tSite Location:\t%1\$s\n\t\t\tLogin Name:\t\t%2\$s\n\t\t\tPassword:\t\t%3\$s\n\n\t\t\tYou may change your password from your account \"Settings\" page after logging\n\t\t\tin.\n\n\t\t\tPlease take a few moments to review the other account settings on that page.\n\n\t\t\tYou may also wish to add some basic information to your default profile\n\t\t\t(on the \"Profiles\" page) so that other people can easily find you.\n\n\t\t\tWe recommend setting your full name, adding a profile photo,\n\t\t\tadding some profile \"keywords\" (very useful in making new friends) - and\n\t\t\tperhaps what country you live in; if you do not wish to be more specific\n\t\t\tthan that.\n\n\t\t\tWe fully respect your right to privacy, and none of these items are necessary.\n\t\t\tIf you are new and do not know anybody here, they may help\n\t\t\tyou to make some new and interesting friends.\n\n\t\t\tIf you ever want to delete your account, you can do so at %1\$s/removeme\n\n\t\t\tThank you and welcome to %4\$s."; +$a->strings["%s user blocked"] = [ + 0 => "%s user blocked", + 1 => "%s users blocked", +]; +$a->strings["%s user unblocked"] = [ + 0 => "%s user unblocked", + 1 => "%s users unblocked", +]; +$a->strings["You can't remove yourself"] = "You can't remove yourself"; +$a->strings["%s user deleted"] = [ + 0 => "%s user deleted", + 1 => "%s users deleted", +]; +$a->strings["User \"%s\" deleted"] = "User \"%s\" deleted"; +$a->strings["User \"%s\" blocked"] = "User \"%s\" blocked"; +$a->strings["User \"%s\" unblocked"] = "User \"%s\" unblocked"; +$a->strings["Private Forum"] = "Private Forum"; +$a->strings["Relay"] = "Relay"; +$a->strings["Register date"] = "Registration date"; +$a->strings["Last login"] = "Last login"; +$a->strings["Last item"] = "Last item"; +$a->strings["Type"] = "Type"; +$a->strings["Add User"] = "Add user"; +$a->strings["User registrations waiting for confirm"] = "User registrations awaiting confirmation"; +$a->strings["User waiting for permanent deletion"] = "User awaiting permanent deletion"; +$a->strings["Request date"] = "Request date"; +$a->strings["No registrations."] = "No registrations."; +$a->strings["Note from the user"] = "Note from the user"; +$a->strings["Deny"] = "Deny"; +$a->strings["User blocked"] = "User blocked"; +$a->strings["Site admin"] = "Site admin"; +$a->strings["Account expired"] = "Account expired"; +$a->strings["New User"] = "New user"; +$a->strings["Permanent deletion"] = "Permanent deletion"; +$a->strings["Selected users will be deleted!\\n\\nEverything these users had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Selected users will be deleted!\\n\\nEverything these users have posted on this site will be permanently deleted!\\n\\nAre you sure?"; +$a->strings["The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "The user {0} will be deleted!\\n\\nEverything this user has posted on this site will be permanently deleted!\\n\\nAre you sure?"; +$a->strings["Name of the new user."] = "Name of the new user."; +$a->strings["Nickname"] = "Nickname"; +$a->strings["Nickname of the new user."] = "Nickname of the new user."; +$a->strings["Email address of the new user."] = "Email address of the new user."; +$a->strings["No friends to display."] = "No friends to display."; +$a->strings["No installed applications."] = "No installed applications."; +$a->strings["Applications"] = "Applications"; $a->strings["Item was not found."] = "Item was not found."; +$a->strings["Source input"] = "Source input"; +$a->strings["BBCode::toPlaintext"] = "BBCode::toPlaintext"; +$a->strings["BBCode::convert (raw HTML)"] = "BBCode::convert (raw HTML)"; +$a->strings["BBCode::convert"] = "BBCode::convert"; +$a->strings["BBCode::convert => HTML::toBBCode"] = "BBCode::convert => HTML::toBBCode"; +$a->strings["BBCode::toMarkdown"] = "BBCode::toMarkdown"; +$a->strings["BBCode::toMarkdown => Markdown::convert"] = "BBCode::toMarkdown => Markdown::convert"; +$a->strings["BBCode::toMarkdown => Markdown::toBBCode"] = "BBCode::toMarkdown => Markdown::toBBCode"; +$a->strings["BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"] = "BBCode::toMarkdown => Markdown::convert => HTML::toBBCode"; +$a->strings["Item Body"] = "Item body"; +$a->strings["Item Tags"] = "Item tags"; +$a->strings["Source input (Diaspora format)"] = "Source input (diaspora* format)"; +$a->strings["Markdown::convert (raw HTML)"] = "Markdown::convert (raw HTML)"; +$a->strings["Markdown::convert"] = "Markdown::convert"; +$a->strings["Markdown::toBBCode"] = "Markdown::toBBCode"; +$a->strings["Raw HTML input"] = "Raw HTML input"; +$a->strings["HTML Input"] = "HTML input"; +$a->strings["HTML::toBBCode"] = "HTML::toBBCode"; +$a->strings["HTML::toBBCode => BBCode::convert"] = "HTML::toBBCode => BBCode::convert"; +$a->strings["HTML::toBBCode => BBCode::convert (raw HTML)"] = "HTML::toBBCode => BBCode::convert (raw HTML)"; +$a->strings["HTML::toMarkdown"] = "HTML::toMarkdown"; +$a->strings["HTML::toPlaintext"] = "HTML::toPlaintext"; +$a->strings["Source text"] = "Source text"; +$a->strings["BBCode"] = "BBCode"; +$a->strings["Markdown"] = "Markdown"; +$a->strings["HTML"] = "HTML"; +$a->strings["Overview"] = "Overview"; +$a->strings["Configuration"] = "Configuration"; +$a->strings["Database"] = "Database"; +$a->strings["DB updates"] = "DB updates"; +$a->strings["Inspect Deferred Workers"] = "Inspect deferred workers"; +$a->strings["Inspect worker Queue"] = "Inspect worker queue"; +$a->strings["Tools"] = "Tools"; +$a->strings["Contact Blocklist"] = "Contact blocklist"; +$a->strings["Diagnostics"] = "Diagnostics"; +$a->strings["PHP Info"] = "PHP info"; +$a->strings["probe address"] = "Probe address"; +$a->strings["check webfinger"] = "Check webfinger"; +$a->strings["Item Source"] = "Item source"; +$a->strings["Babel"] = "Babel"; +$a->strings["Addon Features"] = "Addon features"; +$a->strings["User registrations waiting for confirmation"] = "User registrations awaiting confirmation"; +$a->strings["This page is missing a url parameter."] = "This page is missing a URL parameter."; +$a->strings["The post was created"] = "The post was created"; $a->strings["%d contact edited."] = [ 0 => "%d contact edited.", 1 => "%d contacts edited.", @@ -2055,6 +1997,7 @@ $a->strings["Comma separated list of keywords that should not be converted to ha $a->strings["Actions"] = "Actions"; $a->strings["Suggestions"] = "Suggestions"; $a->strings["Suggest potential friends"] = "Suggest potential friends"; +$a->strings["All Contacts"] = "All contacts"; $a->strings["Show all contacts"] = "Show all contacts"; $a->strings["Unblocked"] = "Unblocked"; $a->strings["Only show unblocked contacts"] = "Only show unblocked contacts"; @@ -2084,9 +2027,62 @@ $a->strings["Toggle Blocked status"] = "Toggle blocked status"; $a->strings["Toggle Ignored status"] = "Toggle ignored status"; $a->strings["Toggle Archive status"] = "Toggle archive status"; $a->strings["Delete contact"] = "Delete contact"; +$a->strings["Credits"] = "Credits"; +$a->strings["Friendica is a community project, that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"] = "Friendica is a community project that would not be possible without the help of many people. Here is a list of those who have contributed to the code or the translation of Friendica. Thank you all!"; +$a->strings["No entries (some entries may be hidden)."] = "No entries (entries may be hidden)."; +$a->strings["Find on this site"] = "Find on this site"; +$a->strings["Results for:"] = "Results for:"; +$a->strings["Site Directory"] = "Site directory"; +$a->strings["You must be logged in to use this module"] = "You must be logged in to use this module"; +$a->strings["Source URL"] = "Source URL"; +$a->strings["Filetag %s saved to item"] = "File-tag %s saved to item"; +$a->strings["- select -"] = "- select -"; +$a->strings["No given contact."] = "No given contact."; +$a->strings["Installed addons/apps:"] = "Installed addons/apps:"; +$a->strings["No installed addons/apps"] = "No installed addons/apps"; +$a->strings["Read about the Terms of Service of this node."] = "Read about the Terms of Service of this node."; +$a->strings["On this server the following remote servers are blocked."] = "On this server the following remote servers are blocked."; +$a->strings["This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."] = "This is Friendica, version %s that is running at the web location %s. The database version is %s, the post update version is %s."; +$a->strings["Please visit Friendi.ca to learn more about the Friendica project."] = "Please visit Friendi.ca to learn more about the Friendica project."; +$a->strings["Bug reports and issues: please visit"] = "Bug reports and issues: please visit"; +$a->strings["the bugtracker at github"] = "the bugtracker at github"; +$a->strings["Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"] = "Suggestions, praise, etc. - please email \"info\" at \"friendi - dot - ca"; +$a->strings["Group created."] = "Group created."; +$a->strings["Could not create group."] = "Could not create group."; +$a->strings["Group not found."] = "Group not found."; +$a->strings["Group name changed."] = "Group name changed."; +$a->strings["Unknown group."] = "Unknown group."; +$a->strings["Contact is unavailable."] = "Contact is unavailable."; +$a->strings["Contact is deleted."] = "Contact is deleted."; +$a->strings["Contact is blocked, unable to add it to a group."] = "Contact is blocked, unable to add it to a group."; +$a->strings["Unable to add the contact to the group."] = "Unable to add contact to group."; +$a->strings["Contact successfully added to group."] = "Contact successfully added to group."; +$a->strings["Unable to remove the contact from the group."] = "Unable to remove contact from group."; +$a->strings["Contact successfully removed from group."] = "Contact successfully removed from group."; +$a->strings["Unknown group command."] = "Unknown group command."; +$a->strings["Bad request."] = "Bad request."; +$a->strings["Save Group"] = "Save group"; +$a->strings["Filter"] = "Filter"; +$a->strings["Create a group of contacts/friends."] = "Create a group of contacts/friends."; +$a->strings["Group removed."] = "Group removed."; +$a->strings["Unable to remove group."] = "Unable to remove group."; +$a->strings["Delete Group"] = "Delete group"; +$a->strings["Edit Group Name"] = "Edit group name"; +$a->strings["Members"] = "Members"; +$a->strings["Remove contact from group"] = "Remove contact from group"; +$a->strings["Add contact to group"] = "Add contact to group"; +$a->strings["Help:"] = "Help:"; +$a->strings["Welcome to %s"] = "Welcome to %s"; $a->strings["Friendica Communications Server - Setup"] = "Friendica Communications Server - Setup"; $a->strings["System check"] = "System check"; $a->strings["Check again"] = "Check again"; +$a->strings["Base settings"] = "Base settings"; +$a->strings["Host name"] = "Host name"; +$a->strings["Overwrite this field in case the determinated hostname isn't right, otherweise leave it as is."] = "Overwrite this field in case the hostname is incorrect, otherwise leave it as is."; +$a->strings["Base path to installation"] = "Base path to installation"; +$a->strings["If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."] = "If the system cannot detect the correct path to your installation, enter the correct path here. This setting should only be set if you are using a restricted system and symbolic links to your webroot."; +$a->strings["Sub path of the URL"] = "URL Sub-path "; +$a->strings["Overwrite this field in case the sub path determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub path."] = "Overwrite this field in case the sub path determination isn't right, otherwise leave it as is. Leaving this field blank means the installation is at the base URL without sub-path."; $a->strings["Database connection"] = "Database connection"; $a->strings["In order to install Friendica we need to know how to connect to your database."] = "In order to install Friendica we need to know how to connect to your database."; $a->strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or site administrator if you have questions about these settings."; @@ -2096,10 +2092,10 @@ $a->strings["Database Login Name"] = "Database login name"; $a->strings["Database Login Password"] = "Database login password"; $a->strings["For security reasons the password must not be empty"] = "For security reasons the password must not be empty"; $a->strings["Database Name"] = "Database name"; -$a->strings["Site administrator email address"] = "Site administrator email address"; -$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel."; $a->strings["Please select a default timezone for your website"] = "Please select a default time zone for your website"; $a->strings["Site settings"] = "Site settings"; +$a->strings["Site administrator email address"] = "Site administrator email address"; +$a->strings["Your account email address must match this in order to use the web admin panel."] = "Your account email address must match this in order to use the web admin panel."; $a->strings["System Language:"] = "System language:"; $a->strings["Set the default language for your Friendica installation interface and to send emails."] = "Set the default language for your Friendica installation interface and email communication."; $a->strings["Your Friendica site database has been installed."] = "Your Friendica site database has been installed."; @@ -2107,7 +2103,34 @@ $a->strings["Installation finished"] = "Installation finished"; $a->strings["

    What next

    "] = "

    What next

    "; $a->strings["IMPORTANT: You will need to [manually] setup a scheduled task for the worker."] = "IMPORTANT: You will need to [manually] setup a scheduled task for the worker."; $a->strings["Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."] = "Go to your new Friendica node registration page and register as new user. Remember to use the same email you have entered as administrator email. This will allow you to enter the site admin panel."; -$a->strings["Item Guid"] = "Item Guid"; +$a->strings["Total invitation limit exceeded."] = "Total invitation limit exceeded"; +$a->strings["%s : Not a valid email address."] = "%s : Not a valid email address"; +$a->strings["Please join us on Friendica"] = "Please join us on Friendica."; +$a->strings["Invitation limit exceeded. Please contact your site administrator."] = "Invitation limit is exceeded. Please contact your site administrator."; +$a->strings["%s : Message delivery failed."] = "%s : Message delivery failed"; +$a->strings["%d message sent."] = [ + 0 => "%d message sent.", + 1 => "%d messages sent.", +]; +$a->strings["You have no more invitations available"] = "You have no more invitations available."; +$a->strings["Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."] = "Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks."; +$a->strings["To accept this invitation, please visit and register at %s or any other public Friendica website."] = "To accept this invitation, please sign up at %s or any other public Friendica website."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."] = "Friendica sites are all inter-connected to create a large privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join."; +$a->strings["Our apologies. This system is not currently configured to connect with other public sites or invite members."] = "Our apologies. This system is not currently configured to connect with other public sites or invite members."; +$a->strings["Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks."] = "Friendica sites are all inter-connected to create a huge privacy-enhanced social web that is owned and controlled by its members. Each site can also connect with many traditional social networks."; +$a->strings["To accept this invitation, please visit and register at %s."] = "To accept this invitation, please visit and register at %s."; +$a->strings["Send invitations"] = "Send invitations"; +$a->strings["Enter email addresses, one per line:"] = "Enter email addresses, one per line:"; +$a->strings["You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."] = "You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web."; +$a->strings["You will need to supply this invitation code: \$invite_code"] = "You will need to supply this invitation code: \$invite_code"; +$a->strings["Once you have registered, please connect with me via my profile page at:"] = "Once you have signed up, please connect with me via my profile page at:"; +$a->strings["For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"] = "For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca"; +$a->strings["Time Conversion"] = "Time conversion"; +$a->strings["Friendica provides this service for sharing events with other networks and friends in unknown timezones."] = "Friendica provides this service for sharing events with other networks and friends in unknown time zones."; +$a->strings["UTC time: %s"] = "UTC time: %s"; +$a->strings["Current timezone: %s"] = "Current time zone: %s"; +$a->strings["Converted localtime: %s"] = "Converted local time: %s"; +$a->strings["Please select your timezone:"] = "Please select your time zone:"; $a->strings["Create a New Account"] = "Create a new account"; $a->strings["Password: "] = "Password: "; $a->strings["Remember me"] = "Remember me"; @@ -2118,10 +2141,12 @@ $a->strings["terms of service"] = "Terms of service"; $a->strings["Website Privacy Policy"] = "Website Privacy Policy"; $a->strings["privacy policy"] = "Privacy policy"; $a->strings["Logged out."] = "Logged out."; +$a->strings["System down for maintenance"] = "Sorry, the system is currently down for maintenance."; +$a->strings["Page not found."] = "Page not found"; +$a->strings["Invalid photo with id %s."] = "Invalid photo with id %s."; $a->strings["%s's timeline"] = "%s's timeline"; $a->strings["%s's posts"] = "%s's posts"; $a->strings["%s's comments"] = "%s's comments"; -$a->strings["Bad Request."] = "Bad Request."; $a->strings["You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."] = "You may (optionally) fill in this form via OpenID by supplying your OpenID and clicking \"Register\"."; $a->strings["If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."] = "If you are not familiar with OpenID, please leave that field blank and fill in the rest of the items."; $a->strings["Your OpenID (optional): "] = "Your OpenID (optional): "; @@ -2142,11 +2167,64 @@ $a->strings["Failed to send email message. Here your accout details:
    login: $a->strings["Registration successful."] = "Registration successful."; $a->strings["Your registration can not be processed."] = "Your registration cannot be processed."; $a->strings["Your registration is pending approval by the site owner."] = "Your registration is pending approval by the site administrator."; +$a->strings["Two-factor authentication successfully disabled."] = "Two-factor authentication successfully disabled."; +$a->strings["

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "] = "

    Use an application on a mobile device to get two-factor authentication codes when prompted on login.

    "; +$a->strings["Authenticator app"] = "Authenticator app"; +$a->strings["Configured"] = "Configured"; +$a->strings["Not Configured"] = "Not configured"; +$a->strings["

    You haven't finished configuring your authenticator app.

    "] = "

    You haven't finished configuring your authenticator app.

    "; +$a->strings["

    Your authenticator app is correctly configured.

    "] = "

    Your authenticator app is correctly configured.

    "; +$a->strings["Recovery codes"] = "Recovery codes"; +$a->strings["Remaining valid codes"] = "Remaining valid codes"; +$a->strings["

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "] = "

    These one-use codes can replace an authenticator app code in case you have lost access to it.

    "; +$a->strings["Current password:"] = "Current password:"; +$a->strings["You need to provide your current password to change two-factor authentication settings."] = "You need to provide your current password to change two-factor authentication settings."; +$a->strings["Enable two-factor authentication"] = "Enable two-factor authentication"; +$a->strings["Disable two-factor authentication"] = "Disable two-factor authentication"; +$a->strings["Show recovery codes"] = "Show recovery codes"; +$a->strings["Finish app configuration"] = "Finish app configuration"; +$a->strings["Please enter your password to access this page."] = "Please enter your password to access this page."; +$a->strings["New recovery codes successfully generated."] = "New recovery codes successfully generated."; +$a->strings["Two-factor recovery codes"] = "Two-factor recovery codes"; +$a->strings["

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe spot! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "] = "

    Recovery codes can be used to access your account in the event you lose access to your device and cannot receive two-factor authentication codes.

    Put these in a safe place! If you lose your device and don’t have the recovery codes you will lose access to your account.

    "; +$a->strings["When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."] = "When you generate new recovery codes, you must copy the new codes. Your old codes won’t work anymore."; +$a->strings["Generate new recovery codes"] = "Generate new recovery codes"; +$a->strings["Next: Verification"] = "Next: Verification"; +$a->strings["Two-factor authentication successfully activated."] = "Two-factor authentication successfully activated."; +$a->strings["Invalid code, please retry."] = "Invalid code, please try again."; +$a->strings["

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "] = "

    Or you can submit the authentication settings manually:

    \n
    \n\t
    Issuer
    \n\t
    %s
    \n\t
    Account Name
    \n\t
    %s
    \n\t
    Secret Key
    \n\t
    %s
    \n\t
    Type
    \n\t
    Time-based
    \n\t
    Number of digits
    \n\t
    6
    \n\t
    Hashing algorithm
    \n\t
    SHA-1
    \n
    "; +$a->strings["Two-factor code verification"] = "Two-factor code verification"; +$a->strings["

    Please scan this QR Code with your authenticator app and submit the provided code.

    "] = "

    Please scan this QR Code with your authenticator app and submit the provided code.

    "; +$a->strings["

    Or you can open the following URL in your mobile devicde:

    %s

    "] = "

    Or you can open the following URL in your mobile device:

    %s

    "; +$a->strings["Please enter a code from your authentication app"] = "Please enter a code from your authentication app"; +$a->strings["Verify code and enable two-factor authentication"] = "Verify code and enable two-factor authentication"; +$a->strings["Bad Request"] = "Bad request"; +$a->strings["Unauthorized"] = "Unauthorized"; +$a->strings["Forbidden"] = "Forbidden"; +$a->strings["Not Found"] = "Not found"; +$a->strings["Internal Server Error"] = "Internal Server Error"; +$a->strings["Service Unavailable"] = "Service Unavailable"; +$a->strings["The server cannot or will not process the request due to an apparent client error."] = "The server cannot process the request due to an apparent client error."; +$a->strings["Authentication is required and has failed or has not yet been provided."] = "Authentication is required but has failed or not yet being provided."; +$a->strings["The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."] = "The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account."; +$a->strings["The requested resource could not be found but may be available in the future."] = "The requested resource could not be found but may be available in the future."; +$a->strings["An unexpected condition was encountered and no more specific message is suitable."] = "An unexpected condition was encountered and no more specific message is available."; +$a->strings["The server is currently unavailable (because it is overloaded or down for maintenance). Please try again later."] = "The server is currently unavailable (possibly because it is overloaded or down for maintenance). Please try again later."; +$a->strings["Go back"] = "Go back"; $a->strings["At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), an username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but wont be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."] = "At the time of registration, and for providing communications between the user account and their contacts, the user has to provide a display name (pen name), a username (nickname) and a working email address. The names will be accessible on the profile page of the account by any visitor of the page, even if other profile details are not displayed. The email address will only be used to send the user notifications about interactions, but won’t be visibly displayed. The listing of an account in the node's user directory or the global user directory is optional and can be controlled in the user settings, it is not necessary for communication."; $a->strings["This data is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional private data that may be transmitted to the communication partners accounts."] = "This information is required for communication and is passed on to the nodes of the communication partners and is stored there. Users can enter additional personal information that may be transmitted to the communication partner's accounts."; $a->strings["At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."] = "At any point in time a logged in user can export their account data from the account settings. If the user wants to delete their account they can do so at %1\$s/removeme. The deletion of the account will be permanent. Deletion of the data will also be requested from the nodes of the communication partners."; $a->strings["Privacy Statement"] = "Privacy Statement"; +$a->strings["Remaining recovery codes: %d"] = "Remaining recovery codes: %d"; +$a->strings["Two-factor recovery"] = "Two-factor recovery"; +$a->strings["

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "] = "

    You can enter one of your one-time recovery codes in case you lost access to your mobile device.

    "; +$a->strings["Don’t have your phone? Enter a two-factor recovery code"] = "Don’t have your phone? Enter a two-factor recovery code"; +$a->strings["Please enter a recovery code"] = "Please enter a recovery code"; +$a->strings["Submit recovery code and complete login"] = "Submit recovery code and complete login"; +$a->strings["

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "] = "

    Open the two-factor authentication app on your device to get an authentication code and verify your identity.

    "; +$a->strings["Verify code and complete login"] = "Verify code and complete login"; $a->strings["This entry was edited"] = "This entry was edited"; +$a->strings["Private Message"] = "Private message"; $a->strings["Delete locally"] = "Delete locally"; $a->strings["Delete globally"] = "Delete globally"; $a->strings["Remove locally"] = "Remove locally"; @@ -2218,6 +2296,8 @@ $a->strings["Custom"] = "Custom"; $a->strings["Note"] = "Note"; $a->strings["Check image permissions if all users are allowed to see the image"] = "Check image permissions that everyone is allowed to see the image"; $a->strings["Select color scheme"] = "Select color scheme"; +$a->strings["Copy or paste schemestring"] = "Copy or paste theme string"; +$a->strings["You can copy this string to share your theme with others. Pasting here applies the schemestring"] = "You can copy this string to share your theme with others. Pasting here applies the theme string"; $a->strings["Navigation bar background color"] = "Navigation bar background color:"; $a->strings["Navigation bar icon color "] = "Navigation bar icon color:"; $a->strings["Link color"] = "Link color:"; From 3cc9920aff7c26602d7ba6a32f3b9a015db4a83f Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 22 Jun 2019 03:49:58 -0400 Subject: [PATCH 641/653] Add log folder to project gitignore --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 49d08ba71..e70f651f5 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ favicon.* *.out *.version* home.html - *~ robots.txt @@ -74,3 +73,6 @@ venv/ #ignore filesystem storage default path /storage + +#Ignore log folder +/log From cdd23e5b6d1d5ca6af964f71cc3ba612e41375a5 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Thu, 20 Jun 2019 20:22:26 -0400 Subject: [PATCH 642/653] Escape all the HTML pre-formatted blocks in Smilies::replaceFromArray --- src/Content/Smilies.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Content/Smilies.php b/src/Content/Smilies.php index 9fbfd2d62..041662e1e 100644 --- a/src/Content/Smilies.php +++ b/src/Content/Smilies.php @@ -213,6 +213,7 @@ class Smilies return $text; } + $text = preg_replace_callback('/
    (.*?)<\/pre>/ism', 'self::encode', $text);
     		$text = preg_replace_callback('/(.*?)<\/code>/ism', 'self::encode', $text);
     
     		if ($no_images) {
    @@ -231,6 +232,7 @@ class Smilies
     		$text = self::strOrigReplace($smilies['texts'], $smilies['icons'], $text);
     
     		$text = preg_replace_callback('/(.*?)<\/code>/ism', 'self::decode', $text);
    +		$text = preg_replace_callback('/
    (.*?)<\/pre>/ism', 'self::decode', $text);
     
     		return $text;
     	}
    
    From b5e195b41526b12b292e0814a955ee5d0a8708ed Mon Sep 17 00:00:00 2001
    From: Dean Townsley 
    Date: Sat, 22 Jun 2019 12:24:30 -0500
    Subject: [PATCH 643/653] Add auth to load sequence for photos
    
    This allows private photos to load on any page.  Previously auth
    depended on some other thing like the enclosing page triggering the
    authentication of the specific contact for the photo owner.
    ---
     src/Model/Photo.php | 11 ++++++++++-
     1 file changed, 10 insertions(+), 1 deletion(-)
    
    diff --git a/src/Model/Photo.php b/src/Model/Photo.php
    index 68665126f..7df96fccd 100644
    --- a/src/Model/Photo.php
    +++ b/src/Model/Photo.php
    @@ -16,6 +16,7 @@ use Friendica\Database\DBA;
     use Friendica\Database\DBStructure;
     use Friendica\Model\Storage\IStorage;
     use Friendica\Object\Image;
    +use Friendica\Protocol\DFRN;
     use Friendica\Util\DateTimeFormat;
     use Friendica\Util\Network;
     use Friendica\Util\Security;
    @@ -133,8 +134,16 @@ class Photo extends BaseObject
     		if ($r === false) {
     			return false;
     		}
    +		$uid = $r["uid"];
     
    -		$sql_acl = Security::getPermissionsSQLByUserId($r["uid"]);
    +		// This is the first place, when retrieving just a photo, that we know who owns the photo.
    +		// Make sure that the requester's session is appropriately authenticated to that user
    +		// otherwise permissions checks done by getPermissionsSQLByUserId() won't work correctly
    +		$r = DBA::selectFirst("user", ["nickname"], ["uid" => $uid], []);
    +		// this will either just return (if auth all ok) or will redirect and exit (starting over)
    +		DFRN::autoRedir(self::getApp(), $r["nickname"]);
    +
    +		$sql_acl = Security::getPermissionsSQLByUserId($uid);
     
     		$conditions = [
     			"`resource-id` = ? AND `scale` <= ? " . $sql_acl,
    
    From 042fcfeb508cde2647fedee53c28f4037255c5ed Mon Sep 17 00:00:00 2001
    From: Dean Townsley 
    Date: Sat, 22 Jun 2019 12:34:54 -0500
    Subject: [PATCH 644/653] Enable multi-auth in dfrn autoRedir
    
    Update checks to account for a user being authenticated to multiple
    contacts on the local server at the same time.
    It was also necessary to remove a looping procection to make this work
    correcly with browsers that open multiple connections because the
    information about what contacts are authenticated is stored in the PHP
    session.
    ---
     src/Protocol/DFRN.php | 21 +++++++++++++++++++--
     1 file changed, 19 insertions(+), 2 deletions(-)
    
    diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php
    index ec4557e82..0e2bfc579 100644
    --- a/src/Protocol/DFRN.php
    +++ b/src/Protocol/DFRN.php
    @@ -2899,7 +2899,12 @@ class DFRN
     	{
     		// prevent looping
     		if (!empty($_REQUEST['redir'])) {
    -			return;
    +			Logger::log('autoRedir might be looping because is redir', Logger::DEBUG);
    +			// looping prevention also appears to sometimes prevent authentication for images
    +			// because browser may have multiple connections open and load an image on a connection
    +			// whose session wasn't updated when a previous redirect authenticated
    +			// Leaving commented in case looping reappears
    +			//return;
     		}
     
     		if ((! $contact_nick) || ($contact_nick === $a->user['nickname'])) {
    @@ -2923,6 +2928,9 @@ class DFRN
     			$baseurl = substr($baseurl, $domain_st + 3);
     			$nurl = Strings::normaliseLink($baseurl);
     
    +			$r = DBA::selectFirst("user", ["uid"], ["nickname" => DBA::escape($contact_nick)], []);
    +			$contact_uid = $r["uid"];
    +
     			/// @todo Why is there a query for "url" *and* "nurl"? Especially this normalising is strange.
     			$r = q("SELECT `id` FROM `contact` WHERE `uid` = (SELECT `uid` FROM `user` WHERE `nickname` = '%s' LIMIT 1)
     					AND `nick` = '%s' AND NOT `self` AND (`url` LIKE '%%%s%%' OR `nurl` LIKE '%%%s%%') AND NOT `blocked` AND NOT `pending` LIMIT 1",
    @@ -2931,9 +2939,18 @@ class DFRN
     				DBA::escape($baseurl),
     				DBA::escape($nurl)
     			);
    -			if ((! DBA::isResult($r)) || $r[0]['id'] == remote_user()) {
    +			if ((! DBA::isResult($r))) {
     				return;
     			}
    +			// test if redirect authentication already succeeded
    +			// Note that "contact" in the sense used in $contact_nick and the sense in the $remote[]["cid"]
    +			// in the session are opposite.  In the session variable the user currently fetching is the contact
    +			// while $contact_nick is the nick of tho user who owns the stuff being fetched.
    +			foreach (\Friendica\Core\Session::get('remote', []) as $visitor) {
    +				if ($visitor['uid'] == $contact_uid && $visitor['cid'] == $r[0]['id']) {
    +					return;
    +				}
    +			}
     
     			$r = q("SELECT * FROM contact WHERE nick = '%s'
     					AND network = '%s' AND uid = %d  AND url LIKE '%%%s%%' LIMIT 1",
    
    From 1883cfba24905f29e6d9c265813d9d5a5200aa02 Mon Sep 17 00:00:00 2001
    From: Michael Vogel 
    Date: Sat, 22 Jun 2019 22:06:43 +0200
    Subject: [PATCH 645/653] Revert "Escape all the HTML pre-formatted blocks in
     Smilies::replaceFromArray"
    
    ---
     src/Content/Smilies.php | 2 --
     1 file changed, 2 deletions(-)
    
    diff --git a/src/Content/Smilies.php b/src/Content/Smilies.php
    index 041662e1e..9fbfd2d62 100644
    --- a/src/Content/Smilies.php
    +++ b/src/Content/Smilies.php
    @@ -213,7 +213,6 @@ class Smilies
     			return $text;
     		}
     
    -		$text = preg_replace_callback('/
    (.*?)<\/pre>/ism', 'self::encode', $text);
     		$text = preg_replace_callback('/(.*?)<\/code>/ism', 'self::encode', $text);
     
     		if ($no_images) {
    @@ -232,7 +231,6 @@ class Smilies
     		$text = self::strOrigReplace($smilies['texts'], $smilies['icons'], $text);
     
     		$text = preg_replace_callback('/(.*?)<\/code>/ism', 'self::decode', $text);
    -		$text = preg_replace_callback('/
    (.*?)<\/pre>/ism', 'self::decode', $text);
     
     		return $text;
     	}
    
    From cf11f57a5b4f4ede0c743b074603e831985d9497 Mon Sep 17 00:00:00 2001
    From: Hypolite Petovan 
    Date: Sat, 22 Jun 2019 18:20:43 -0400
    Subject: [PATCH 646/653] Escape HTML pre-formatted blocks before converting
     smilies
    
    ---
     src/Content/Smilies.php | 10 ++++++----
     1 file changed, 6 insertions(+), 4 deletions(-)
    
    diff --git a/src/Content/Smilies.php b/src/Content/Smilies.php
    index 9fbfd2d62..57d14633a 100644
    --- a/src/Content/Smilies.php
    +++ b/src/Content/Smilies.php
    @@ -213,7 +213,8 @@ class Smilies
     			return $text;
     		}
     
    -		$text = preg_replace_callback('/(.*?)<\/code>/ism', 'self::encode', $text);
    +		$text = preg_replace_callback('/<(pre)>(.*?)<\/pre>/ism', 'self::encode', $text);
    +		$text = preg_replace_callback('/<(code)>(.*?)<\/code>/ism', 'self::encode', $text);
     
     		if ($no_images) {
     			$cleaned = ['texts' => [], 'icons' => []];
    @@ -230,7 +231,8 @@ class Smilies
     		$text = preg_replace_callback('/<(3+)/', 'self::pregHeart', $text);
     		$text = self::strOrigReplace($smilies['texts'], $smilies['icons'], $text);
     
    -		$text = preg_replace_callback('/(.*?)<\/code>/ism', 'self::decode', $text);
    +		$text = preg_replace_callback('/<(code)>(.*?)<\/code>/ism', 'self::decode', $text);
    +		$text = preg_replace_callback('/<(pre)>(.*?)<\/pre>/ism', 'self::decode', $text);
     
     		return $text;
     	}
    @@ -242,7 +244,7 @@ class Smilies
     	 */
     	private static function encode($m)
     	{
    -		return '' . Strings::base64UrlEncode($m[1]) . '';
    +		return '<' . $m[1] . '>' . Strings::base64UrlEncode($m[2]) . '';
     	}
     
     	/**
    @@ -253,7 +255,7 @@ class Smilies
     	 */
     	private static function decode($m)
     	{
    -		return '' . Strings::base64UrlDecode($m[1]) . '';
    +		return '<' . $m[1] . '>' . Strings::base64UrlDecode($m[2]) . '';
     	}
     
     
    
    From 449305e527dd3a95393ec606389213e674f47ee5 Mon Sep 17 00:00:00 2001
    From: Michael Vogel 
    Date: Sun, 23 Jun 2019 00:38:52 +0200
    Subject: [PATCH 647/653] Fix the processing of event activities
    
    ---
     src/Protocol/ActivityPub/Receiver.php | 3 +--
     1 file changed, 1 insertion(+), 2 deletions(-)
    
    diff --git a/src/Protocol/ActivityPub/Receiver.php b/src/Protocol/ActivityPub/Receiver.php
    index 4c34c5e15..1d425600d 100644
    --- a/src/Protocol/ActivityPub/Receiver.php
    +++ b/src/Protocol/ActivityPub/Receiver.php
    @@ -222,8 +222,7 @@ class Receiver
     
     			// We had been able to retrieve the object data - so we can trust the source
     			$trust_source = true;
    -		} elseif (in_array($type, ['as:Like', 'as:Dislike']) ||
    -			(($type == 'as:Follow') && in_array($object_type, self::CONTENT_TYPES))) {
    +		} elseif (in_array($type, array_merge(self::ACTIVITY_TYPES, ['as:Follow'])) && in_array($object_type, self::CONTENT_TYPES)) {
     			// Create a mostly empty array out of the activity data (instead of the object).
     			// This way we later don't have to check for the existence of ech individual array element.
     			$object_data = self::processObject($activity);
    
    From 9dff3d2b6d27a3917b7ca998c5d33c7b7cbaa84a Mon Sep 17 00:00:00 2001
    From: Dean Townsley 
    Date: Sat, 22 Jun 2019 18:56:33 -0500
    Subject: [PATCH 648/653] Use User:: API insteadd of direct database read
    
    ---
     src/Protocol/DFRN.php | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php
    index 0e2bfc579..e47cfc72c 100644
    --- a/src/Protocol/DFRN.php
    +++ b/src/Protocol/DFRN.php
    @@ -2928,7 +2928,7 @@ class DFRN
     			$baseurl = substr($baseurl, $domain_st + 3);
     			$nurl = Strings::normaliseLink($baseurl);
     
    -			$r = DBA::selectFirst("user", ["uid"], ["nickname" => DBA::escape($contact_nick)], []);
    +			$r = User::getByNickname($contact_nick, ["uid"]);
     			$contact_uid = $r["uid"];
     
     			/// @todo Why is there a query for "url" *and* "nurl"? Especially this normalising is strange.
    
    From 0c6a0942cc220128b448b922aba2a5777b47a360 Mon Sep 17 00:00:00 2001
    From: Dean Townsley 
    Date: Sat, 22 Jun 2019 19:08:34 -0500
    Subject: [PATCH 649/653] Clarify comment and log message
    
    ---
     src/Protocol/DFRN.php | 7 ++++---
     1 file changed, 4 insertions(+), 3 deletions(-)
    
    diff --git a/src/Protocol/DFRN.php b/src/Protocol/DFRN.php
    index e47cfc72c..91ca2545d 100644
    --- a/src/Protocol/DFRN.php
    +++ b/src/Protocol/DFRN.php
    @@ -2899,7 +2899,7 @@ class DFRN
     	{
     		// prevent looping
     		if (!empty($_REQUEST['redir'])) {
    -			Logger::log('autoRedir might be looping because is redir', Logger::DEBUG);
    +			Logger::log('autoRedir might be looping because redirect has been redirected', Logger::DEBUG);
     			// looping prevention also appears to sometimes prevent authentication for images
     			// because browser may have multiple connections open and load an image on a connection
     			// whose session wasn't updated when a previous redirect authenticated
    @@ -2943,8 +2943,9 @@ class DFRN
     				return;
     			}
     			// test if redirect authentication already succeeded
    -			// Note that "contact" in the sense used in $contact_nick and the sense in the $remote[]["cid"]
    -			// in the session are opposite.  In the session variable the user currently fetching is the contact
    +			// Note that "contact" in the sense used in the $contact_nick argument to this function
    +			// and the sense in the $remote[]["cid"] in the session are opposite.
    +			// In the session variable the user currently fetching is the contact
     			// while $contact_nick is the nick of tho user who owns the stuff being fetched.
     			foreach (\Friendica\Core\Session::get('remote', []) as $visitor) {
     				if ($visitor['uid'] == $contact_uid && $visitor['cid'] == $r[0]['id']) {
    
    From f84e2e9d932f171dab1bc97360ea670d2ba86254 Mon Sep 17 00:00:00 2001
    From: Michael Vogel 
    Date: Sun, 23 Jun 2019 08:41:49 +0200
    Subject: [PATCH 650/653] Fix for distribution of event deletions
    
    ---
     src/Model/Event.php | 2 +-
     src/Model/Item.php  | 8 +++++---
     2 files changed, 6 insertions(+), 4 deletions(-)
    
    diff --git a/src/Model/Event.php b/src/Model/Event.php
    index d8657c1e9..42742f18e 100644
    --- a/src/Model/Event.php
    +++ b/src/Model/Event.php
    @@ -226,7 +226,7 @@ class Event extends BaseObject
     			return;
     		}
     
    -		DBA::delete('event', ['id' => $event_id]);
    +		DBA::delete('event', ['id' => $event_id], ['cascade' => false]);
     		Logger::log("Deleted event ".$event_id, Logger::DEBUG);
     	}
     
    diff --git a/src/Model/Item.php b/src/Model/Item.php
    index 579d2f68e..059838bdb 100644
    --- a/src/Model/Item.php
    +++ b/src/Model/Item.php
    @@ -1080,9 +1080,11 @@ class Item extends BaseObject
     		}
     		// When the permission set will be used in photo and events as well,
     		// this query here needs to be extended.
    -		if (!empty($item['psid']) && !self::exists(['psid' => $item['psid'], 'deleted' => false])) {
    -			DBA::delete('permissionset', ['id' => $item['psid']], ['cascade' => false]);
    -		}
    +		// Currently deactivated. We need the permission set in the deletion process.
    +		// This is a reminder to add the removal somewhere else.
    +		//if (!empty($item['psid']) && !self::exists(['psid' => $item['psid'], 'deleted' => false])) {
    +		//	DBA::delete('permissionset', ['id' => $item['psid']], ['cascade' => false]);
    +		//}
     
     		// If it's the parent of a comment thread, kill all the kids
     		if ($item['id'] == $item['parent']) {
    
    From 955926607510ae13b820edc6926e18ff2dbbd9c7 Mon Sep 17 00:00:00 2001
    From: Michael Vogel 
    Date: Sun, 23 Jun 2019 12:01:14 +0200
    Subject: [PATCH 651/653] todo added
    
    ---
     src/Model/Item.php | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/src/Model/Item.php b/src/Model/Item.php
    index 059838bdb..3c503dd67 100644
    --- a/src/Model/Item.php
    +++ b/src/Model/Item.php
    @@ -1080,7 +1080,7 @@ class Item extends BaseObject
     		}
     		// When the permission set will be used in photo and events as well,
     		// this query here needs to be extended.
    -		// Currently deactivated. We need the permission set in the deletion process.
    +		// @todo Currently deactivated. We need the permission set in the deletion process.
     		// This is a reminder to add the removal somewhere else.
     		//if (!empty($item['psid']) && !self::exists(['psid' => $item['psid'], 'deleted' => false])) {
     		//	DBA::delete('permissionset', ['id' => $item['psid']], ['cascade' => false]);
    
    From e4714cc504ba762481a4a8bfdb30d0c28d6d23e6 Mon Sep 17 00:00:00 2001
    From: Hypolite Petovan 
    Date: Sun, 23 Jun 2019 15:26:48 -0400
    Subject: [PATCH 652/653] Updated CHANGELOG for 2019.06 release
    
    ---
     CHANGELOG | 39 ++++++++++++++++++++++++++++++---------
     1 file changed, 30 insertions(+), 9 deletions(-)
    
    diff --git a/CHANGELOG b/CHANGELOG
    index 16ba3f841..6fcb33786 100644
    --- a/CHANGELOG
    +++ b/CHANGELOG
    @@ -1,17 +1,20 @@
    -Version 2019.06 (UNRELEASED) (2019-06-?)
    +Version 2019.06 (UNRELEASED) (2019-06-23)
       Friendica Core:
    -    Update to the tranlation (CS, DE, ET, PL, PT-BR, SV) [translation teams]
    -    Update to the documentation [nupplaphil, realkinetix]
    +    Update to the tranlation (CS, DE, EN-GB, EN-US, ET, FR, IT, PL, PT-BR, SV) [translation teams]
    +    Update to the documentation [nupplaphil, realkinetix, MrPetovan]
         Update to the themes (frio, vier) [BinkaDroid, MrPetovan, tobiasd]
         Enhancements to the API [annando, MrPetovan]
         Enhancements to the way reshares are handled [annando]
         Enhancements to the redis configuration [nupplaphil]
         Enhancements to the federation stats display in the admin panel [tobiasd]
         Enhancements to the processing of changed storage engine [MrPetovan]
    +    Enhancements to ActivityPub support [annando, MrPetovan]
    +    Enhancements to code security [MrPetovan]
    +    Enhancements to delivery counter [annando]
         Fixed the notification order [JeroenED]
         Fixed the timezone of Friendica logs [nupplaphil]
         Fixed tag completion painfully slow [AlfredSK]
    -    Fixed a regression in notifications [MrPetovan]
    +    Fixed a regression in notifications [MrPetovan, annando]
         Fixed an issue with smilies and code blocks [MrPetovan]
         Fixed an AP issue with unavailable local profiles [MrPetovan]
         Fixed an issue with the File to Folder feature [MrPetovan]
    @@ -20,34 +23,52 @@ Version 2019.06 (UNRELEASED) (2019-06-?)
         Fixed an issue occuring when the BasePath was not set [tobiasd]
         Fixed an issue with additionally opened Sessions [MrPetovan]
         Fixed an issue with legacy loglevel mapping [nupplaphil]
    +    Fixed contact suggestions [annando]
    +    Fixed an issue with frio hovercard [nupplaphil]
    +	Fixed event interaction federation [annando]
    +	Fixed remote image permission [deantownsley]
         General Code cleaning and restructuring [annando, nupplaphil, tobiasd]
         Added frio color scheme sharing [JeroenED]
         Added syslog and stream Logger [nupplaphil]
         Added storage move cronjob [MrPetovan]
         Added collapsible panel for connector permission fields [MrPetovan]
         Added rule-based router [MrPetovan]
    -    Added Estinian translation [Rain Hawk]
    +    Added Estonian translation [Rain Hawk]
         Added APCu caching [nupplaphil]
         Added BlockServer command to the Friendica console [nupplaphil]
    +    Added reshare count [annando]
    +    Added rule-based router [MrPetovan, nupplaphil]
    +    Added themed error pages with mascot [MrPetovan, lostinlight]
    +    Added contact relationship filter [MrPetovan]
         Removed the old queue mechanism (deferred workers are now used) [annando]
         Removed BasePath and Hostname settings from the admin panel [nupplaphil]
    +    Remove support for defunct F-Droid Friendica app [MrPetovan]
     
       Friendica Addons:
         Update to the tranlation (ET, SV, ZH_CN) [translation teams]
         botdetection:
    -      Added a new addon for preventing access by bots [nupplaphil]
    +      Added a new addon for preventing access by bots [nupplaphil, annando]
         buffer:
           Traces of Google+ were removed [annando]
         curweather:
           Fixed a problem with the display of the correct temperature unit [tobiasd]
         fromgplus:
           Deprecated the addon as Google+ was closed [tobiasd]
    +    fortunate:
    +      Deprecated addon for incompatibility with latest Friendica version [MrPetovan]
         phpmailer:
    -      Added a new addon to use external SMTP for email [M-arcus]
    +      Added a new addon to use external SMTP for email [M-arcus, kecalcze, MrPetovan]
    +	pledgie:
    +      Deprecated addon as service was discontinued [M-arcus]
    +    xmpp:
    +      Marked addon as unsupported because of various incompatibilities with themes [MrPetovan]
    +
     
       Closed Issues:
    -    5011, 5047, 5850, 6303, 6319, 6478, 6319, 6720, 6815, 6864, 6879,
    -    6903, 6921, 6927, 6936, 6941, 6943, 6947, 6948, 6952
    +    1012, 2209, 2528, 3309, 3717, 3816, 3869, 4453, 4999, 5011, 5047, 5276, 5850, 5983, 6303, 6319, 6379, 6410, 6477,
    +	6478, 6720, 6799, 6813, 6819, 6861, 6864, 6879, 6903, 6916, 6917, 6918, 6921, 6927, 6929, 6936, 6938, 6941, 6943,
    +	6947, 6948, 6950, 6952, 6983, 6999, 7023, 7036, 7047, 7106, 7112, 7119, 7128, 7130, 7131, 7141, 7142, 7150, 7171,
    +	7183, 7196, 7209, 7223, 7226, 7240, 7241, 7249, 7264, 7269, 7271, 7275, 7300, 7303
     
     Version 2019.03 (2019-03-22)
       Friendica Core:
    
    From a25ed827c96e6f10dd84f5b7cb104c793c95340d Mon Sep 17 00:00:00 2001
    From: Hypolite Petovan 
    Date: Sun, 23 Jun 2019 15:28:38 -0400
    Subject: [PATCH 653/653] Updated version constants for 2019.06 release
    
    ---
     VERSION  | 2 +-
     boot.php | 2 +-
     2 files changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/VERSION b/VERSION
    index 6952a8d6e..4eda9a567 100644
    --- a/VERSION
    +++ b/VERSION
    @@ -1 +1 @@
    -2019.06-rc
    +2019.06
    diff --git a/boot.php b/boot.php
    index eb04732c5..4ade9eb14 100644
    --- a/boot.php
    +++ b/boot.php
    @@ -31,7 +31,7 @@ use Friendica\Util\DateTimeFormat;
     
     define('FRIENDICA_PLATFORM',     'Friendica');
     define('FRIENDICA_CODENAME',     'Dalmatian Bellflower');
    -define('FRIENDICA_VERSION',      '2019.06-rc');
    +define('FRIENDICA_VERSION',      '2019.06');
     define('DFRN_PROTOCOL_VERSION',  '2.23');
     define('NEW_UPDATE_ROUTINE_VERSION', 1170);