diff --git a/wp-content/languages/admin-cy.mo b/wp-content/languages/admin-cy.mo index 422fa5fdfe24db5a24c4b900ada06e4c33d7a9ff..5ef3f57277b796e8f69a1649dc3e98eeb6223ab8 100644 Binary files a/wp-content/languages/admin-cy.mo and b/wp-content/languages/admin-cy.mo differ diff --git a/wp-content/languages/admin-cy.po b/wp-content/languages/admin-cy.po index 110c69dde9391e630eb0c124f996085ce312f26f..90a93055ce49e3a39ed06aef7792a49db71e3ee7 100644 --- a/wp-content/languages/admin-cy.po +++ b/wp-content/languages/admin-cy.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-07-20 09:08:11+0000\n" +"PO-Revision-Date: 2017-09-19 16:27:32+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,39 +26,39 @@ msgctxt "start of week" msgid "1" msgstr "1" -#: wp-admin/about.php:196 +#: wp-admin/about.php:218 msgid "New capabilities have been introduced to 4.8 with an eye towards removing calls to <code>is_super_admin()</code>. Additionally, new hooks and tweaks to more granularly control site and user counts per network have been added." msgstr "Mae galluoedd newydd wedi'u cyflwyno i 4.8 gyda golwg tuag at ddileu'r galw i <code>is_super_admin()</code>. Yn ogystal, mae bachau a newidiadau newydd ar gyfer rheolaeth fanylach ar gyfrifon gwefannau a defnyddwyr yn ôl rhwydwaith wedi'u hychwanegu." -#: wp-admin/about.php:151 +#: wp-admin/about.php:173 msgid "Being part of the community can help you improve your WordPress skills and network with people you wouldn’t otherwise meet. Now you can easily find your local events just by logging in to your dashboard and looking at the new Events and News dashboard widget." msgstr "Mae bod yn rhan o gymuned yn gallu'ch helpu i wella'ch sgiliau WordPress a rhwydweithio gyda phobl na fyddech fel arall yn eu cyfarfod. Bellach gallwch ganfod eich digwyddiadau lleol drwy fewngofnodi i'ch bwrdd rheoli ac edrych ar declyn newydd bwrdd rheoli Digwyddiadau a Newyddion." -#: wp-admin/about.php:149 +#: wp-admin/about.php:171 msgid "This is quickly becoming one of our favorite features. While you are in the dashboard (because you’re running updates and writing posts, right?) all upcoming WordCamps and WordPress Meetups — local to you — will be displayed." msgstr "Dyma un o'n hoff nodweddion. Tra byddwch yn y bwrdd gwaith (gan eich bod wrthi'n rhedeg diweddariadau ac ysgrifennu cofnodion, iawn?) bydd pob WordCamp a Meetups WordPress sy'n — lleol i chi — yn ymddangos." -#: wp-admin/about.php:147 +#: wp-admin/about.php:169 msgid "Did you know that WordPress has a thriving offline community with groups meeting regularly in more than 400 cities around the world? WordPress now draws your attention to the events that help you continue improving your WordPress skills, meet friends, and, of course, publish!" msgstr "Oeddech chi'n gwybod fod gan WordPress gymuned all-lein ffyniannus gyda grwpiau yn cyfarfod yn rheolaidd mewn mwy na 400 o ddinasoedd ar draws y byd? Mae WordPress eisiau tynnu eich sylw at y digwyddiadau hyn i'ch helpu i barhau i wella eich sgiliau WordPress, i gwrdd â ffrindiau ac, wrth gwrs, i gyhoeddi!" -#: wp-admin/about.php:126 +#: wp-admin/about.php:148 msgid "Have you ever tried updating a link, or the text around a link, and found you can’t seem to edit it correctly? When you edit the text after the link, your new text also ends up linked. Or you edit the text in the link, but your text ends up outside of it. This can be frustrating! With link boundaries, a great new feature, the process is streamlined and your links will work well. You’ll be happier. We promise." msgstr "Ydych chi erioed wedi ceisio diweddaru dolen, neu destun o amgylch dolen, ac wedi darganfod nad oes modd i chi ei olygu'n iawn? Pan fyddwch yn golygu'r testun ar ôl y ddolen, mae eich testun newydd hefyd yn dod yn rhan o'r ddolen. Neu rydych yn golygu'r testun yn y ddolen, ond mae eich testun yn symud y tu allan iddo. Gall hyn fod yn rhwystredig! Gyda ffiniau dolenni, nodwedd newydd gwych, mae'r broses yn symlach a bydd eich dolenni'n gweithio'n dda. A byddwch chi'n hapusach. Addo... :-)." -#: wp-admin/about.php:117 +#: wp-admin/about.php:139 msgid "This feature deserves a parade down the center of town! Rich-text editing capabilities are now native for Text widgets. Add a widget anywhere and format away. Create lists, add emphasis, and quickly and easily insert links. Have fun with your newfound formatting powers, and watch what you can accomplish in a short amount of time." msgstr "Mae'r nodwedd hon yn haeddu gorymdaith ar hyd canol dre! Mae galluoedd golygu testun cyfoethog bellach yn frodorol i declynnau Testun. Ychwanegwch declyn yn unrhyw le a gallwch ei fformatio'n syth. Crëwch restrau, ychwanegu pwyslais, a mewnosod dolenni'n gyflym a hawdd. Mwynhewch eich pwerau fformatio newydd a gweld beth alwch ei gyflawni mewn byr o dro." -#: wp-admin/about.php:109 +#: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." msgstr "Mae fideo croeso yn ffordd wych o wneud brandio'ch gwefan yn fwy cyfeillgar. Nawr gallwch ychwanegu unrhyw fideo o'r Llyfrgell Cyfryngau i far ochr eich gwefan gyda'r teclyn fideo newydd. Defnyddiwch hwn i arddangos fideo croeso i gyflwyno ymwelwyr i'ch gwefan neu i hyrwyddo eich cynnwys diweddaraf a gorau." -#: wp-admin/about.php:105 +#: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." msgstr "Mae ychwanegu delwedd at declyn bellach yn dasg syml sy'n gyraeddadwy i unrhyw ddefnyddiwr WordPress heb fod angen i chi drin y cod. Yn syml, rhowch eich ddelwedd o fewn lleoliadau'r teclyn. Ceisiwch ychwanegu rhywbeth fel lun camera pen neu lun o'ch antur penwythnos diweddaraf - a'i weld yn ymddangos yn awtomatig." -#: wp-admin/about.php:50 +#: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." msgstr "Er bod rhai diweddariadau yn ymddangos yn rhai mân, maen nhw wedi cael eu hadeiladu gan gannoedd o gyfranwyr gyda <em>chi</em> mewn golwg. Byddwch yn barod ar gyfer nodweddion newydd y byddwch yn eu croesawu'n fawr: Gwelliannau i ddolenni, <em>tri</em> teclyn cyfryngau newydd sy'n cwmpasu delweddau, sain, a fideo, teclyn testun wedi ei ddiweddaru sy'n cefnogi golygu gweledol, ac adran newyddion wedi ei uwchraddio yn eich bwrdd gwaith sy'n dangos digwyddiadau WordPress cyfagos neu rhai sydd ar y gweill." @@ -66,59 +66,59 @@ msgstr "Er bod rhai diweddariadau yn ymddangos yn rhai mân, maen nhw wedi cael msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." msgstr "Diolch am ddiweddaru i'r fersiwn diweddaraf! Mae WordPress%s yn ychwanegu mwy o ffyrdd i chi fynegi eich hun ac i gynrychioli eich brand." -#: wp-admin/about.php:204 +#: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." msgstr "Mae cyflwyno sgema API cyfryngau sylfaen teclyn REST newydd i 4.8 yn agor posibiliadau ar gyfer hyd yn oed mwy o declynnau cyfryngau (fel orielau neu restrau chwarae) yn y dyfodol. Mae'r tri theclyn cyfryngau newydd yn cael eu pweru gan ddosbarth sylfaen wedi ei rannu sy'n cynnwys y rhan fwyaf o'r rhyngweithio gyda'r moddol cyfryngau. Mae'r dosbarth hwnnw hefyd yn ei gwneud yn haws i greu teclynnau cyfryngau newydd ac i baratoi'r ffordd ar gyfer mwy yn y dyfodol." -#: wp-admin/about.php:203 +#: wp-admin/about.php:225 msgid "Media Widgets API" msgstr "API Teclynnau Cyfryngau" -#: wp-admin/about.php:208 +#: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." msgstr "Llawenhewch! Mae torbwyntiau ymatebol newydd wedi cael eu hychwanegu at y far ochr y Cyfaddaswr i'w wneud yn ehangach ar sgriniau cydraniad uchel. Dylai rheoli'r Cyfaddaswr ddefnyddio lled sy'n seiliedig ar ganran yn hytrach na picseli." -#: wp-admin/about.php:207 +#: wp-admin/about.php:229 msgid "Customizer Width Variable" msgstr "Cyfaddaswr Lled Amrywiol" -#: wp-admin/about.php:200 +#: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" msgstr "Gydag ychwanegiad TinyMCE i'r teclyn testun yn 4.8 daw API JavaScript newydd ar gyfer enghreifftio'r golygydd ar ôl llwytho'r dudalen. Gall hyn gael ei ddefnyddio i ychwanegu enghraifft golygydd i unrhyw ardal testun a'i gyfaddasu gyda botymau a swyddogaethau. Gwych ar gyfer awduron ategion !" -#: wp-admin/about.php:199 +#: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" msgstr "API Golygydd Testun JavaScript" -#: wp-admin/about.php:195 +#: wp-admin/about.php:217 msgid "Multisite Updates" msgstr "Diweddariadau Gwefannau Lluosog" -#: wp-admin/about.php:192 +#: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." msgstr "Gan fod llai o borwyr yn cefnogi Silverlight, mae fformatau ffeil sy'n gofyn am bresenoldeb yr ategyn Silverlight yn cael eu tynnu o'r gefnogaeth graidd. Bydd y ffeiliau'n dal i gael eu harddangos fel dolen llwytho i lawr, ond heb eu hymgorffori'n awtomatig." -#: wp-admin/about.php:191 +#: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" msgstr "Tynnu Cefnogaeth Craidd ar gyfer Ffeiliau WMV a WMA" -#: wp-admin/about.php:188 +#: wp-admin/about.php:210 msgid "New CSS rules mean extraneous content (like “Add New” links) no longer need to be included in admin-area headings. These panel headings improve the experience for people using assistive technologies." msgstr "Mae rheolau CSS newydd yn golygu nad oes angen cynnwys cynnwys allanol (fel dolenni \"Ychwanegu\") o fewn penawdau maes gweinyddol bellach. Mae penawdau'r panel yn gwella'r profiad i bobl sy'n defnyddio technoleg gynorthwyol." -#: wp-admin/about.php:187 +#: wp-admin/about.php:209 msgid "More Accessible Admin Panel Headings" msgstr "Penawdau Panel Gweinyddol Mwy Hygyrch" -#: wp-admin/about.php:56 +#: wp-admin/about.php:78 msgid "Exciting Widget Updates" msgstr "Diweddariadau Teclynnau Cyffrous" -#: wp-admin/about.php:49 +#: wp-admin/about.php:71 msgid "WordPress 4.8 adds some great new features. Gear up for a more intuitive WordPress!" msgstr "Mae WordPress 4.8 yn ychwanegu nodweddion newydd gwych. Paratowch ar gyfer WordPress mwy sythweledol!" -#: wp-admin/about.php:48 +#: wp-admin/about.php:70 msgid "An Update with You in Mind" msgstr "Diweddariad ar eich cyfer Chi" @@ -127,19 +127,19 @@ msgstr "Diweddariad ar eich cyfer Chi" msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" msgstr "Does dim digwyddiadau wedi eu trefnu yn eich ardal chi ar hyn o bryd. Hoffech chi <a href=\"%s\">drefnu un</a>?" -#: wp-admin/about.php:145 +#: wp-admin/about.php:167 msgid "Nearby WordPress Events" msgstr "Digwyddiadau WordPress Lleol" -#: wp-admin/about.php:116 +#: wp-admin/about.php:138 msgid "Rich Text Widget" msgstr "Teclyn Testun Cyfoethog" -#: wp-admin/about.php:113 +#: wp-admin/about.php:135 msgid "Are you a podcaster, musician, or avid blogger? Adding a widget with your audio file has never been easier. Upload your audio file to the Media Library, go to the widget settings, select your file, and you’re ready for listeners. This would be a easy way to add a more personal welcome message, too!" msgstr "Ydych chi'n bodlediwr, cerddor, neu flogiwr brwd? D'yw ychwanegu teclyn gyda'ch ffeil sain erioed wedi bod yn haws. Llwythwch eich ffeil sain i Lyfrgell Cyfryngau, ewch i osodiadau'r teclyn, dewiswch eich ffeil, ac rydych yn barod ar gyfer eich gwrandawyr. Mae hyn yn ffordd hawdd i ychwanegu neges groeso mwy personol, hefyd!" -#: wp-admin/about.php:125 +#: wp-admin/about.php:147 msgid "Link Boundaries" msgstr "Ffiniau Dolenni" @@ -218,7 +218,7 @@ msgid "Assign a parent term to create a hierarchy. The term Jazz, for example, w msgstr "Neilltuo term rhiant i greu hierarchaeth. Mae'r term Jazz, er enghraifft, yn rhiant i Bebop a Big Band." #. translators: %s: smiling face with smiling eyes emoji -#: wp-admin/about.php:180 +#: wp-admin/about.php:202 msgid "Even More Developer Happiness %s" msgstr "Mwy fyth o Hapusrwydd i Ddatblygwyr %s" @@ -1290,7 +1290,7 @@ msgid "Welcome to %s. This is your first post. Edit or delete it, then start blo msgstr "Croeso i %s. Dyma eich cofnod cyntaf. Gallwch olygu neu ddileu hwn, a chychwyn blogio!" #. translators: %s: WordPress version number -#: wp-admin/about.php:242 +#: wp-admin/about.php:264 msgid "<strong>Version %s</strong> addressed one security issue." msgstr "Roedd <strong>Fersiwn %s</strong> yn ymdrin ag un mater diogelwch." @@ -1307,15 +1307,15 @@ msgstr "Gallwch newid eich llun proffil ar <a href=\"%s\">Gravatar</a>." msgid "Profile Picture" msgstr "Llun Proffil" -#: wp-admin/about.php:239 +#: wp-admin/about.php:261 msgid "Maintenance and Security Releases" msgstr "Fersiynau Cynnal a Chadw a Diogelwch" -#: wp-admin/about.php:236 +#: wp-admin/about.php:258 msgid "Security Releases" msgstr "Fersiynau Diogelwch" -#: wp-admin/about.php:233 +#: wp-admin/about.php:255 msgid "Maintenance Releases" msgstr "Fersiynau Cynnal a Chadw" @@ -5454,7 +5454,7 @@ msgid "Contributing Developers" msgstr "Datblygwyr Cefnogol" #. translators: 1: WordPress version number, 2: plural number of bugs. -#: wp-admin/about.php:247 +#: wp-admin/about.php:52 wp-admin/about.php:269 msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "Mae <strong>Fersiwn %1$s</strong> wedi cywiro %2$s gwall." @@ -5464,7 +5464,7 @@ msgstr[3] "Mae <strong>Fersiwn %1$s</strong> wedi cywiro %2$s gwall." #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. -#: wp-admin/about.php:255 +#: wp-admin/about.php:277 msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs." msgstr[0] "Mae <strong>Fersiwn %1$s</strong> wedi ymateb i fater diogelwch a thrwsio %2$s gwall." @@ -5473,13 +5473,13 @@ msgstr[2] "Mae <strong>Fersiwn %1$s</strong> wedi ymateb i faterion diogelwch a msgstr[3] "Mae <strong>Fersiwn %1$s</strong> wedi ymateb i faterion diogelwch a thrwsio %2$s gwall." #. translators: %s: Codex URL -#: wp-admin/about.php:259 +#: wp-admin/about.php:63 wp-admin/about.php:281 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "Am ragor o wybodaeth, gw, <a href=\"%s\">nodiadau ryddhau</a>." #. translators: 1: WordPress version number, 2: plural number of bugs. Singular #. security issue. -#: wp-admin/about.php:251 +#: wp-admin/about.php:273 msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs." msgstr[0] "Mae <strong>Fersiwn %1$s</strong> wedi ymateb i fater diogelwch a thrwsio %2$s gwall." @@ -5492,15 +5492,15 @@ msgid "Welcome to your WordPress Dashboard! This is the screen you will see when msgstr "Croeso i Fwrdd Rheoli WordPress! Hwn yw'r sgrin fyddwch yn ei weld wrth fewngofnodi i'ch gwefan ac mae'n rhoi mynediad i holl nodweddion rheoli gwefan WordPress. Mae modd cael cymorth ar gyfer unrhyw sgrin drwy glicio'r tab Cymorth yn y gornel uchaf." #. translators: %s: WordPress version number -#: wp-admin/about.php:244 +#: wp-admin/about.php:266 msgid "<strong>Version %s</strong> addressed some security issues." msgstr "Roedd <strong>Fersiwn %s</strong> yn ymdrin a materion diogelwch." -#: wp-admin/about.php:232 +#: wp-admin/about.php:47 wp-admin/about.php:254 msgid "Maintenance Release" msgstr "Ryddhad Cynnal a Chadw" -#: wp-admin/about.php:235 +#: wp-admin/about.php:257 msgid "Security Release" msgstr "Ryddhad Diogelwch" @@ -5508,7 +5508,7 @@ msgstr "Ryddhad Diogelwch" msgid "What’s New" msgstr "Beth sy'n Newydd" -#: wp-admin/about.php:238 +#: wp-admin/about.php:260 msgid "Maintenance and Security Release" msgstr "Ryddhad Diogelwch a Cynnal a Chadw" @@ -5520,7 +5520,7 @@ msgstr "Mae'r sgrin yma'n caniatáu i chi ddewis eich strwythur dolen barhaol. M msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>." msgstr "Croeso i WordPress %1$s. <a href=\"%2$s\">Dysgu rhagor</a>." -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Updates" msgstr "Dychwelyd i Diweddaru" @@ -5800,11 +5800,11 @@ msgstr "Cynnwys mewnosod tebygol wp-admin/includes/template.php er mwyn defnyddi msgid "Welcome to WordPress %s" msgstr "Croeso i WordPress %s" -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Dashboard → Updates" msgstr "Dychwelyd i'r Bwrdd Rheoli a Diweddaru" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard → Home" msgstr "Mynd i Cartref a'r Bwrdd Rheoli" @@ -6292,11 +6292,11 @@ msgstr "Ailosod Nawr" #: wp-admin/includes/file.php:296 msgid "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form." -msgstr "Mae'r ffeil llwythwyd i fyny yn fwy na'r cyfarwyddid MAX_FILE_SIZE pennwyd yn y ffurflen HTML." +msgstr "Mae'r ffeil llwythwyd i fyny yn fwy na'r cyfarwyddyd MAX_FILE_SIZE pennwyd yn y ffurflen HTML." #: wp-admin/includes/file.php:295 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." -msgstr "Mae'r ffeil llwythwyd i fyny yn fwy na'r cyfarwyddid upload_max_filesize yn php.ini." +msgstr "Mae'r ffeil llwythwyd i fyny yn fwy na'r cyfarwyddyd upload_max_filesize yn php.ini." #: wp-admin/credits.php:125 msgid "External Libraries" @@ -7687,7 +7687,7 @@ msgstr "Y Cyfan" msgid "Please enter a valid menu name." msgstr "Rho enw dewislen dilys." -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard" msgstr "Mynd i'r Bwrdd Rheoli" @@ -8032,7 +8032,7 @@ msgstr "Gosod yr Ategyn o ffeil sydd wedi ei llwytho i fyny: %s" #: wp-admin/includes/class-wp-plugin-install-list-table.php:100 #: wp-admin/plugin-install.php:122 wp-admin/update.php:151 msgid "Upload Plugin" -msgstr "Diweddaru'r Ategyn" +msgstr "Llwytho Ategyn i Fyny" #: wp-admin/update.php:128 msgid "Installing Plugin: %s" diff --git a/wp-content/languages/admin-da_DK.mo b/wp-content/languages/admin-da_DK.mo index cd3fc9e65a08f38035dae1a760fca9756c7cd610..18359f1dfa43e2a5b2b78af855d1115e085729f3 100644 Binary files a/wp-content/languages/admin-da_DK.mo and b/wp-content/languages/admin-da_DK.mo differ diff --git a/wp-content/languages/admin-da_DK.po b/wp-content/languages/admin-da_DK.po index bf4288d14d0f504997791b35ecb1a941614d4da0..4ff147e05f30089e308c83df8478ca1fa858886c 100644 --- a/wp-content/languages/admin-da_DK.po +++ b/wp-content/languages/admin-da_DK.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-14 21:32:06+0000\n" +"PO-Revision-Date: 2017-09-27 18:31:14+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -671,7 +671,7 @@ msgstr "Information" #: wp-admin/includes/meta-boxes.php:872 msgid "Need help? Use the Help tab above the screen title." -msgstr "Brug for hjælp? Benyt Hjælp-fanebladet ovenover skærmtitlen." +msgstr "Brug for hjælp? Brug Hjælp-fanebladet ovenover skærmtitlen." #: wp-admin/includes/menu.php:342 wp-admin/my-sites.php:16 msgid "Sorry, you are not allowed to access this page." @@ -769,7 +769,7 @@ msgstr "Du har desværre ikke tilladelse til at eksportere indholdet på dette w #: wp-admin/edit.php:201 msgid "You can filter the list of posts by post status using the text links above the posts list to only show posts with that status. The default view is to show all posts." -msgstr "Du kan filtrere listen af indlæg efter indlægstatus ved at benytte tekstlinks ovenover indlægslisten , så der kun vises indlæg med den status. Standardvisningen er at alle indlæg vises." +msgstr "Du kan filtrere listen af indlæg efter indlægstatus ved at bruge tekstlinks ovenover indlægslisten , så der kun vises indlæg med den status. Standardvisningen er at alle indlæg vises." #. translators: %s: taxonomy name #: wp-admin/edit-tag-form.php:79 @@ -1025,7 +1025,7 @@ msgstr "Anmeldelser" #: wp-admin/includes/plugin-install.php:355 msgid "You are using a development version of WordPress. These feature plugins are also under development. <a href=\"%s\">Learn more</a>." -msgstr "Du benytter en udviklerversion af WordPress. Disse udvalgte plugins er også under udvikling. <a href=\"%s\">Lær mere</a>." +msgstr "Du bruger en udviklerversion af WordPress. Disse udvalgte plugins er også under udvikling. <a href=\"%s\">Lær mere</a>." #: wp-admin/includes/image-edit.php:150 msgid "Thumbnail Settings Help" @@ -1267,7 +1267,7 @@ msgstr "Send brugernotifikation" #: wp-admin/nav-menus.php:822 msgctxt "menu location" msgid "(Currently set to: %s)" -msgstr "(Nuværende sat til: %s)" +msgstr "(på nuværende tidspunkt sat til: %s)" #. translators: %s: site link #: wp-admin/includes/schema.php:1013 wp-admin/includes/upgrade.php:163 @@ -1878,7 +1878,7 @@ msgstr "Svar på %s." #: wp-admin/includes/user.php:478 msgid "You’re using the auto-generated password for your account. Would you like to change it?" -msgstr "Du benytter en automatisk genereret adgangskode for din konto. Vil du ændre den?" +msgstr "Du bruger en automatisk genereret adgangskode for din konto. Vil du ændre den?" #: wp-admin/users.php:365 msgid "You have specified this user for removal:" @@ -2037,7 +2037,7 @@ msgstr "https://codex.wordpress.org/First_Steps_With_WordPress" #: wp-admin/edit-form-advanced.php:436 msgid "<strong>Format</strong> — Post Formats designate how your theme will display a specific post. For example, you could have a <em>standard</em> blog post with a title and paragraphs, or a short <em>aside</em> that omits the title and contains a short text blurb. Please refer to the Codex for <a href=\"https://codex.wordpress.org/Post_Formats#Supported_Formats\">descriptions of each post format</a>. Your theme could enable all or some of 10 possible formats." -msgstr "<strong>Format</strong> — Indlægsformat angiver, hvordan dit tema vil vise et specifikt indlæg. For eksempel kunne du have et <em>standard</em>-blogindlæg med en titel og afsnit, eller en kort <em>sidebemærkning</em>, som udelader titlen og indeholder en kort (status) meddelelse. Kig i kodekset for <a href=\"https://codex.wordpress.org/Post_Formats#Supported_Formats\">at se beskrivelser af hvert indlægsformat</a>. Dit tema giver mulighed for at bruge alle eller nogle af de ti mulige indlægsformater." +msgstr "<strong>Format</strong> — Indlægsformat angiver, hvordan dit tema vil vise et specifikt indlæg. For eksempel kunne du have et <em>standard</em>-blogindlæg med en titel og afsnit, eller en kort <em>sidebemærkning</em>, som udelader titlen og indeholder en kort (status) meddelelse. Kig i kodekset for <a href=\"https://codex.wordpress.org/Post_Formats#Supported_Formats\">at se beskrivelser af hvert indlægsformat</a>. Dit tema giver mulighed for at bruge alle eller nogle af de ti mulige indlægsformater." #: wp-admin/options-writing.php:177 msgid "WordPress is not notifying any <a href=\"https://codex.wordpress.org/Update_Services\">Update Services</a> because of your site’s <a href=\"%s\">visibility settings</a>." @@ -3079,7 +3079,7 @@ msgstr "Flere detaljer" #: wp-admin/includes/theme.php:214 wp-admin/includes/update.php:413 #: wp-admin/includes/update.php:558 msgid "Update %s now" -msgstr "Updater %s nu" +msgstr "Opdater %s nu" #. translators: 1: Plugin name and version. #: wp-admin/includes/class-wp-plugin-install-list-table.php:458 @@ -3223,11 +3223,11 @@ msgstr "https://wordpress.org/support/forum/how-to-and-troubleshooting" #: wp-admin/index.php:69 msgid "<strong>At A Glance</strong> — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using." -msgstr "<strong>Overblik</strong> — Viser en opsummering af indholdet på dine websteder og finder ud af, hvilket tema og hvilken WordPress-version du bruger." +msgstr "<strong>Overblik</strong> — Viser en opsummering af indholdet på dine websteder og finder ud af, hvilket tema og hvilken WordPress-version du bruger." #: wp-admin/index.php:59 msgid "<strong>Box Controls</strong> — Click the title bar of the box to expand or collapse it. Some boxes added by plugins may have configurable content, and will show a “Configure” link in the title bar if you hover over it." -msgstr "<strong>Bokskontroller</strong> — Tryk på boksens overskrift for at udvide eller klappe den sammen. Nogle bokse tilføjet af plugins kan have indstillingsmuligheder og vil have et “Tilpas”-link i titelbaren, hvis du holder musen henover den." +msgstr "<strong>Bokskontroller</strong> — Tryk på boksens overskrift for at udvide eller klappe den sammen. Nogle bokse tilføjet af plugins kan have indstillingsmuligheder og vil have et “Tilpas”-link i titelbaren, hvis du holder musen henover den." #: wp-admin/users.php:52 msgid "Remove allows you to remove a user from your site. It does not delete their content. You can also remove multiple users at once by using Bulk Actions." @@ -3481,15 +3481,15 @@ msgstr "" #: wp-admin/index.php:72 msgid "<strong>Quick Draft</strong> — Allows you to create a new post and save it as a draft. Also displays links to the 5 most recent draft posts you've started." -msgstr "<strong>Hurtigt udkast</strong> — Giver dig mulighed for at tilføje et nyt indlæg og gemme det som udkast. Viser også links til de fem nyeste udkast, som du har påbegyndt." +msgstr "<strong>Hurtigt udkast</strong> — Giver dig mulighed for at tilføje et nyt indlæg og gemme det som udkast. Viser også links til de fem nyeste udkast, som du har påbegyndt." #: wp-admin/index.php:70 msgid "<strong>Activity</strong> — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them." -msgstr "<strong>Aktivitet</strong> — Viser kommende, planlagte indlæg, nyligt udgivne indlæg og de seneste kommentarer til dine indlæg, og giver dig mulighed for bedømme dem." +msgstr "<strong>Aktivitet</strong> — Viser kommende, planlagte indlæg, nyligt udgivne indlæg og de seneste kommentarer til dine indlæg, og giver dig mulighed for bedømme dem." #: wp-admin/index.php:57 msgid "<strong>Screen Options</strong> — Use the Screen Options tab to choose which Dashboard boxes to show." -msgstr "<strong>Skærmindstillinger</strong> — Brug fanebladet Skærmindstillinger for at vælge, hvilke kontrolpanelbokse der skal vises." +msgstr "<strong>Skærmindstillinger</strong> — Brug fanebladet Skærmindstillinger for at vælge, hvilke kontrolpanelbokse der skal vises." #: wp-admin/post.php:72 msgid "Unable to submit this form, please refresh and try again." @@ -4366,7 +4366,7 @@ msgstr "Når du skifter temaer, er der ofte en vis variation i antallet og opsæ #: wp-admin/edit-tags.php:250 msgid "<strong>Parent</strong> — Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown." -msgstr "<strong>Forælder</strong> — Kategorier kan, i modsætning til tags, være hierarkiske. Du kan fx have kategorien Jazz og under den underkategorier for Bebop og Big Band. Helt valgfrit. For at oprette en underkategori vælger du blot en anden kategori fra Forælder dropdown-menuen." +msgstr "<strong>Forælder</strong> — Kategorier kan, i modsætning til tags, være hierarkiske. Du kan fx have kategorien Jazz og under den underkategorier for Bebop og Big Band. Helt valgfrit. For at oprette en underkategori vælger du blot en anden kategori fra Forælder dropdown-menuen." #: wp-admin/edit-form-advanced.php:448 msgid "Publish Settings" @@ -5631,7 +5631,7 @@ msgstr "<strong>Træk og slip</strong> dine filer ind i området nedenfor. Flere #: wp-admin/edit-comments.php:180 msgid "Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more." -msgstr "Mange bruger tastaturgenveje til at moderere deres kommentarer hurtigere. Benyt linket nedenfor for at lære hvordan." +msgstr "Mange bruger tastaturgenveje til at moderere deres kommentarer hurtigere. Brug linket nedenfor for at lære hvordan." #: wp-admin/edit-form-advanced.php:385 wp-admin/edit.php:237 msgid "Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the “Parent” of the other, creating a group of pages." @@ -5901,7 +5901,7 @@ msgstr "Du har følgende muligheder for at arrangere dit skærmbillede i kontrol #: wp-admin/index.php:58 msgid "<strong>Drag and Drop</strong> — To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box." -msgstr "<strong>Træk og slip</strong> ‒ Benyt træk og slip for at omarrangere boksene ved at klikke på titellinjen på den valgte boks og slippe, når du ser en grå stiplet firkant, hvor du ønsker boksen placeret." +msgstr "<strong>Træk og slip</strong> ‒ Brug træk og slip for at omarrangere boksene ved at klikke på titellinjen på den valgte boks og slippe, når du ser en grå stiplet firkant, hvor du ønsker boksen placeret." #: wp-admin/index.php:52 msgid "Navigation" @@ -6449,18 +6449,13 @@ msgid "" "As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to delete this page and create new pages for your content. Have fun!" msgstr "" "Dette er en eksempelside. Den er forskellig fra et blogindlæg, fordi den vil forblive det samme sted og være en del af dit websteds navigation (i de fleste temaer). De fleste vil lægge ud med en Om-side, der præsenterer dem til potentielle besøgende. Ordlyden kunne være noget i retning af:\n" -" \n" -" \n" -" \n" +"\n" "<blockquote>Hejsa! Jeg er cykelbud om dagen, prøver at blive skuespiller om aftenen og dette er min blog. Jeg bor i København, har en dejlig hund, der hedder King, og jeg kan lide Mojitos. (og at blive overrasket af regnvejr.)</blockquote>\n" -" \n" -" \n" +"\n" "... eller noget i retning af:\n" -" \n" "\n" "<blockquote>XYZ Dingenot fabrikken blev grundlagt i 1971 og har leveret kvalitetsdingenoter til offentligheden lige siden. Beliggende i Andeby, har 2.000 ansatte og bidrager med alverdens seje tiltag i lokalområdet.</blockquote>\n" -" \n" -" \n" +"\n" "Som ny WordPress bruger, bør du gå til <a href=\"%s\">dit kontrolpanel</a> for at slette denne side og oprette nye sider til dit indhold. God fornøjelse!" #: wp-admin/user-edit.php:380 @@ -6789,7 +6784,7 @@ msgstr "Mange temaer viser visse sidebjælke-widgets som standard, indtil du æn #: wp-admin/options-permalink.php:30 msgid "If you pick an option other than Plain, your general URL path with structure tags (terms surrounded by <code>%</code>) will also appear in the custom structure field and your path can be further modified there." -msgstr "Hvis du vælger noget andet end Almindelig, vil din URL-sti med strukturtags og termer omgivet af <code>%</code> også blive vist i tekstfeltet Egen struktur, og du kan ændre din sti yderligere der." +msgstr "Hvis du vælger noget andet end Almindelig, vil din URL-sti med strukturtags (termer omgivet af <code>%</code>) også blive vist i tekstfeltet Egen struktur, og du kan ændre din sti yderligere der." #: wp-admin/options-permalink.php:31 msgid "When you assign multiple categories or tags to a post, only one can show up in the permalink: the lowest numbered category. This applies if your custom structure includes <code>%category%</code> or <code>%tag%</code>." diff --git a/wp-content/languages/admin-de_DE.mo b/wp-content/languages/admin-de_DE.mo index b658658252d4dcc4bfec98de4a2a8b50fdcf7c5b..d4f0626781d4644dbf376cf200633599fceb839f 100644 Binary files a/wp-content/languages/admin-de_DE.mo and b/wp-content/languages/admin-de_DE.mo differ diff --git a/wp-content/languages/admin-de_DE.po b/wp-content/languages/admin-de_DE.po index 8aa86beffd6a42f89e6f1f7ae543609af4f80ef6..f5f915df64dbd82fa31cf6e63257a949d0253b38 100644 --- a/wp-content/languages/admin-de_DE.po +++ b/wp-content/languages/admin-de_DE.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-23 09:22:46+0000\n" +"PO-Revision-Date: 2017-09-30 13:36:31+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -4264,7 +4264,7 @@ msgstr "Das Backup dieses Beitrags in deinem Browser stimmt nicht mit der unten #. translators: 1: Post creation date, 2: Post creation time #: wp-admin/includes/ajax-actions.php:1302 msgid "Draft created on %1$s at %2$s" -msgstr "Entwurf erstellt am %1$s um %2$s" +msgstr "Entwurf erstellt am %1$s um %2$s Uhr" #: wp-admin/post.php:218 msgid "You cannot move this item to the Trash. %s is currently editing." @@ -4499,7 +4499,7 @@ msgstr "Wenn du weißt, wonach du suchst, dann nutze die Suchfunktion. Damit kan #: wp-admin/install.php:199 wp-admin/options-reading.php:138 msgid "It is up to search engines to honor this request." -msgstr "Es liegt an den Suchmaschinen, diese Anfrage zu akzeptieren." +msgstr "Es liegt an den Suchmaschinen, diese Aufforderung zu akzeptieren." #: wp-admin/install.php:191 wp-admin/install.php:198 #: wp-admin/options-reading.php:117 wp-admin/options-reading.php:137 @@ -7590,8 +7590,8 @@ msgstr "Menüeintrag bearbeiten" #: wp-admin/includes/class-wp-plugins-list-table.php:429 msgid "Drop-ins <span class=\"count\">(%s)</span>" msgid_plural "Drop-ins <span class=\"count\">(%s)</span>" -msgstr[0] "DropIns <span class=\"count\">(%s)</span>" -msgstr[1] "DropIns <span class=\"count\">(%s)</span>" +msgstr[0] "Drop-ins <span class=\"count\">(%s)</span>" +msgstr[1] "Drop-ins <span class=\"count\">(%s)</span>" #: wp-admin/options-general.php:260 msgid "This timezone does not observe daylight saving time." @@ -10594,13 +10594,13 @@ msgstr "Kommentar aktualisieren" #. translators: 1: Post edited date, 2: Post edited time #: wp-admin/edit-form-advanced.php:645 wp-admin/includes/ajax-actions.php:2337 msgid "Last edited on %1$s at %2$s" -msgstr "Zuletzt geändert am %1$s um %2$s" +msgstr "Zuletzt geändert am %1$s um %2$s Uhr" #. translators: 1: Name of most recent post author, 2: Post edited date, 3: #. Post edited time #: wp-admin/edit-form-advanced.php:642 wp-admin/includes/ajax-actions.php:2335 msgid "Last edited by %1$s on %2$s at %3$s" -msgstr "Zuletzt geändert von %1$s am %2$s um %3$s" +msgstr "Zuletzt geändert von %1$s am %2$s um %3$s Uhr" #: wp-admin/edit-form-advanced.php:309 wp-admin/edit-tag-form.php:126 #: wp-admin/edit-tags.php:397 @@ -10924,7 +10924,7 @@ msgstr "Entwurf wurde um %s Uhr gespeichert." #. translators: draft saved date format, see https://secure.php.net/date #: wp-admin/includes/misc.php:885 msgid "g:i:s a" -msgstr "H:i:s Uhr" +msgstr "H:i:s" #: wp-admin/includes/ajax-actions.php:1315 #: wp-admin/includes/ajax-actions.php:1320 diff --git a/wp-content/languages/admin-el.po b/wp-content/languages/admin-el.po index f89a5c47a7ec50eb7d5e7c930c67b69fab7ea668..380c523f8bdd79dcf22c2523bf18aab65c80064a 100644 --- a/wp-content/languages/admin-el.po +++ b/wp-content/languages/admin-el.po @@ -26,39 +26,39 @@ msgctxt "start of week" msgid "1" msgstr "1" -#: wp-admin/about.php:196 +#: wp-admin/about.php:218 msgid "New capabilities have been introduced to 4.8 with an eye towards removing calls to <code>is_super_admin()</code>. Additionally, new hooks and tweaks to more granularly control site and user counts per network have been added." msgstr "Νέες δυνατότητες έχουν εισαχθεί στην έκδοση 4.8 με σκοπό να απομακρυνθούν κλήσεις προς την <code>is_super_admin()</code>. Επιπλέον, έχουν προστεθεί νέα hooks και τροποποιήσεις ώστε να μπορεί κανείς να ελέγχει με μεγαλύτερη ακρίβεια τον αριθμό των ιστοτόπων και των χρηστών ανά δίκτυο. " -#: wp-admin/about.php:151 +#: wp-admin/about.php:173 msgid "Being part of the community can help you improve your WordPress skills and network with people you wouldn’t otherwise meet. Now you can easily find your local events just by logging in to your dashboard and looking at the new Events and News dashboard widget." msgstr "Η συμμετοχή στην κοινότητα μπορεί να σας βοηθήσει να βελτιώσετε τις δεξιότητές σας και να συνδεθείτε με ανθρώπους που δε θα συναντούσατε διαφορετικά. Τώρα μπορείτε εύκολα να βρείτε τις τοπικές σας εκδηλώσεις απλώς και μόνο συνδεόμενοι στον πίνακα ελέγχου σας και αναζητώντας τη νέα μικροεφαρμογή Εκδηλώσεων και Νέων." -#: wp-admin/about.php:149 +#: wp-admin/about.php:171 msgid "This is quickly becoming one of our favorite features. While you are in the dashboard (because you’re running updates and writing posts, right?) all upcoming WordCamps and WordPress Meetups — local to you — will be displayed." msgstr "Αυτό εδώ εξελίσσεται ταχύτατα σε ένα από τα αγαπημένα μας χαρακτηριστικά. Ενώ είστε στον πίνακα ελέγχου σας (γιατί κάνετε τις αναβαθμίσεις ή γράφετε τα άρθρα σας) θα εμφανίζονται όλα τα επερχόμενα WordCamps και WordPress meetups — που βρίσκονται κοντά σας —." -#: wp-admin/about.php:147 +#: wp-admin/about.php:169 msgid "Did you know that WordPress has a thriving offline community with groups meeting regularly in more than 400 cities around the world? WordPress now draws your attention to the events that help you continue improving your WordPress skills, meet friends, and, of course, publish!" msgstr "Γνωρίζατε ότι το WordPress διαθέτει μια ανθηρή κοινότητα ανθρώπων με ομάδες που συναντιούνται σε περισσότερες από 400 πόλεις του κόσμου; Το WordPress τώρα σας εφιστά την προσοχή σε εκδηλώσεις που θα σας βοηθήσουν να βελτιώσετε τις δεξιότητές σας σε αυτό, να κάνετε φίλους και, φυσικά, να δημοσιεύσετε το περιεχόμενό σας." -#: wp-admin/about.php:126 +#: wp-admin/about.php:148 msgid "Have you ever tried updating a link, or the text around a link, and found you can’t seem to edit it correctly? When you edit the text after the link, your new text also ends up linked. Or you edit the text in the link, but your text ends up outside of it. This can be frustrating! With link boundaries, a great new feature, the process is streamlined and your links will work well. You’ll be happier. We promise." msgstr "Έχετε ποτέ προσπαθήσει να ενημερώσετε ένα σύνδεσμο ή το κείμενο γύρω από ένα σύνδεσμο και ανακαλύψατε ότι δεν μπορείτε να το κάνετε σωστά; Όταν επεξεργάζεστε το κείμενο μετά το σύνδεσμο, το νέο κείμενο καταλήγει μέρος του συνδέσμου. Ή επεξεργάζεστε το κείμενο του συνδέσμου αλλά το κείμενο καταλήγει εκτός συνδέσμου. Αυτό είναι απογοητευτικό! Με τα όρια συνδέσμων, ένα σπουδαίο νέο χαρακτηριστικό, η διαδικασία είναι βελτιστοποιημένη και οι σύνδεσμοί σας θα δουλεύουν καλά. Θα είστε πιο χαρούμενοι. Το υποσχόμαστε." -#: wp-admin/about.php:117 +#: wp-admin/about.php:139 msgid "This feature deserves a parade down the center of town! Rich-text editing capabilities are now native for Text widgets. Add a widget anywhere and format away. Create lists, add emphasis, and quickly and easily insert links. Have fun with your newfound formatting powers, and watch what you can accomplish in a short amount of time." msgstr "Αυτό το χαρακτηριστικό αξίζει παρέλαση στο κέντρο της πόλης! Οι δυνατότητες επεξεργασίας εμπλουτισμένου κειμένου είναι τώρα εγγενείς στις μικροεφαρμογές Κειμένου. Προσθέστε μια μικροεφαρμογή οπουδήποτε και επεξεργαστείτε τη. Δημιουργήστε λίστες, προσθέστε έμφαση και εισάγετε συνδέσμους εύκολα και γρήγορα. Διασκεδάστε με τις νέες σας δυνατότητες επεξεργασίας και δείτε τι μπορείτε επιτύχετε μέσα σε λίγο χρόνο." -#: wp-admin/about.php:109 +#: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." msgstr "Ένα βίντεο καλωσορίσματος είναι ένας σπουδαίος τρόπος να βελτιώσετε την ταυτότητα του ιστοτόπου σας. Μπορείτε τώρα να προσθέσετε οποιοδήποτε βίντεο από τη Βιβλιοθήκη πολυμέσων σε μια πλευρική στήλη στον ιστότοπό σας με τη νέα μικροεφαρμογή Βίντεο. Χρησιμοποιείστε τη για να αναδείξετε ένα βίντεο καλωσορίσματος για να ξεναγήσετε τους επισκέπτες στον ιστότοπό σας ή για να προωθήσετε το καινούριο και σπουδαίο σας περιεχόμενο." -#: wp-admin/about.php:105 +#: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." msgstr "Η προσθήκη εικόνας σε μια μικροεφαρμογή είναι τώρα απλή για οποιονδήποτε χρήστη του WordPress χωρίς να χρειάζεται να ξέρει προγραμματισμό. Απλά εισάγετε την εικόνα σας κατευθείαν στις ρυθμίσεις της μικροεφαρμογής. Δοκιμάστε να προσθέσετε κάτι όπως το πρόσωπό σας ή μια φωτογραφία από το τελευταίο σας Σαββατοκύριακου και δείτε τη να εμφανίζεται αυτόματα." -#: wp-admin/about.php:50 +#: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." msgstr "Παρόλο που μερικές ενημερώσεις δείχνουν ήσσονος σημασίας, έχουν φτιαχτεί από εκατοντάδες ανθρώπους με <em>εσάς</em> κατά νου. Ετοιμαστείτε για νέα χαρακτηριστικά που θα καλωσορίσετε σαν παλιούς φίλους: βελτιώσεις στους συνδέσμους, <em>τρεις</em> νέες μικροεφαρμογές για εικόνες, ήχο και βίντεο, μια αναβαθμισμένη μικροεφαρμογή κειμένου που υποστηρίζει οπτική επεξεργασία και μια αναβαθμισμένη ενότητα στον πίνακα ελέγχου σας που σας δείχνει τις επερχόμενες εκδηλώσεις κοντά σας για το WordPress." @@ -66,59 +66,59 @@ msgstr "Παρόλο που μερικές ενημερώσεις δείχνου msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." msgstr "Ευχαριστούμε για την αναβάθμιση στην τελευταία έκδοση! WordPress %s προσθέτει νέους τρόπους για να εκφράσετε τον εαυτό σας ή να εκπροσωπείσετε την εταιρία σας." -#: wp-admin/about.php:204 +#: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." msgstr "Η εισαγωγή των νέων βασικών REST API schema μικροεφαρμογών πολυμέσων στο 4.8 ανοίγει νέες δυνατότητες για ακόμη περισσότερες μικροεφαρμογές πολυμέσων (όπως συλλογές ή λίστες μουσικής) στο μέλλον. Οι τρεις νέες μικροεφαρμογές είναι βασισμένες στις διαμοιρασμένες κλάσεις που καλύπτουν τις περισσότερες συσχετίσεις με τα πολυμέσα. Η κλάση αυτή επίσης κάνει ευκολότερη την δημιουργία νέων μικροεφαρμογών πολυμέσων και ανοίγει το δρόμο για περισσότερα." -#: wp-admin/about.php:203 +#: wp-admin/about.php:225 msgid "Media Widgets API" msgstr "API μικροεφαρμογών πολυμέσων" -#: wp-admin/about.php:208 +#: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." msgstr "Αναγαλλιάστε! Νέα responsive σημεία ελέγχου έχουν προστεθεί στην στήλη προσαρμογέα ώστε να την κάνουν πλατύτερη στις οθόνες υψηλής ανάλυσης. Τα χειριστήρια προσαρμογέα βασίζονται σε ποσοστιαίο πλάτος αντί για εικονοστοιχεία." -#: wp-admin/about.php:207 +#: wp-admin/about.php:229 msgid "Customizer Width Variable" msgstr "Μεταβλητό πλάτος προσαρμογέα" -#: wp-admin/about.php:200 +#: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" msgstr "Με την προσθήκη του TinyMCE στις μικροεφαρμογές κειμένου στο 4.8 τα νέα JavaScript API για να προετοιμάζουν τον διορθωτή μετά την φόρτωση της σελίδας. Αυτό μπορεί να χρησιμοποιηθεί ως παράδειγμα σε κάθε περιοχή κειμένου, και να προσαρμοστεί με κουμπιά και λειτουργίες. Καταπληκτικό για τους δημιουργούς προσθέτων!" -#: wp-admin/about.php:199 +#: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" msgstr "JavaScript API Διορθωτή" -#: wp-admin/about.php:195 +#: wp-admin/about.php:217 msgid "Multisite Updates" msgstr "Ενημερώσεις πολλαπλών ιστότοπων" -#: wp-admin/about.php:192 +#: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." msgstr "Καθώς όλο και λιγότερα προγράμματα περιήγησης υποστηρίζουν το Silverlight, οι τύποι αρχείων που απαιτούν την παρουσία του προσθέτου Silverlight, αφαιρούνται από την βασική υποστήριξη. Τα αρχεία θα εξακολουθούν να εμφανίζονται ως σύνδεσμοι λήψης αλλά δεν θα ενσωματώνονται πια αυτόματα." -#: wp-admin/about.php:191 +#: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" msgstr "Αφαίρεση της υποστήριξης από τον πυρήνα των αρχείων WMV και WMA." -#: wp-admin/about.php:188 +#: wp-admin/about.php:210 msgid "New CSS rules mean extraneous content (like “Add New” links) no longer need to be included in admin-area headings. These panel headings improve the experience for people using assistive technologies." msgstr "Οι νέοι κανόνες CSS αφαιρούν το εξωτερικό περιεχόμενο (όπως “Προσθήκη νέων” συνδέσμων) δεν χρειάζεται πλέον να περιλαμβάνεται στις κεφαλίδες της διαχείρισης. Οι κεφαλίδες των πλαισίων βελτιώνουν την εμπειρία για όσους χρησιμοποιούν βοηθητικές τεχνολογίες." -#: wp-admin/about.php:187 +#: wp-admin/about.php:209 msgid "More Accessible Admin Panel Headings" msgstr "Περισσότερα προσβάσιμες Κεφαλίδες Πλαισίων Διαχείρισης" -#: wp-admin/about.php:56 +#: wp-admin/about.php:78 msgid "Exciting Widget Updates" msgstr "Συναρπαστικές αναβαθμίσεις μικροεφαρμογών" -#: wp-admin/about.php:49 +#: wp-admin/about.php:71 msgid "WordPress 4.8 adds some great new features. Gear up for a more intuitive WordPress!" msgstr "Το WordPress 4.8 προσθέτει μερικές υπέροχες νέες δυνατότητες. Ετοιμαστείτε για ένα πιο διαισθητικό WordPress!" -#: wp-admin/about.php:48 +#: wp-admin/about.php:70 msgid "An Update with You in Mind" msgstr "Μια αναβάθμιση σκεπτόμενοι εσάς" @@ -127,19 +127,19 @@ msgstr "Μια αναβάθμιση σκεπτόμενοι εσάς" msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" msgstr "Δεν υπάρχουν εκδηλώσεις κοντά σας για την ώρα. Θα θέλατε να <a href=\"%s\">διοργανώσετε ένα</a>;" -#: wp-admin/about.php:145 +#: wp-admin/about.php:167 msgid "Nearby WordPress Events" msgstr "Κοντινές εκδηλώσεις WordPress" -#: wp-admin/about.php:116 +#: wp-admin/about.php:138 msgid "Rich Text Widget" msgstr "Μικροεφαρμογή εμπλουτισμένου διορθωτή" -#: wp-admin/about.php:113 +#: wp-admin/about.php:135 msgid "Are you a podcaster, musician, or avid blogger? Adding a widget with your audio file has never been easier. Upload your audio file to the Media Library, go to the widget settings, select your file, and you’re ready for listeners. This would be a easy way to add a more personal welcome message, too!" msgstr "Είστε ένας podcaster, μουσικός, ή ένας αεικίνητος blogger; Η προσθήκη μικροεφαρμογής με ήχο δεν ήταν ποτέ ευκολότερη. Μεταφορτώστε το αρχείο ήχου στην βιβλιοθήκη πολυμέσων, πηγαίνετε στις ρυθμίσεις μικροεφαρμογής, επιλέξτε το αρχείο και είστε έτοιμος για τους ακροατές σας. Αυτό θα μπορούσε να είναι ένας εύκολος τρόπος να προσθέσετε ένα προσωπικό μήνυμα καλωσορίσματος επίσης." -#: wp-admin/about.php:125 +#: wp-admin/about.php:147 msgid "Link Boundaries" msgstr "Δυνατότητες συνδέσμων" @@ -218,7 +218,7 @@ msgid "Assign a parent term to create a hierarchy. The term Jazz, for example, w msgstr "Ορίστε έναν γονικό όρο για να δημιουργήσετε μια ιεράρχηση. Ο όρος Τζαζ, παραδείγματος χάριν, θα ήταν γονικός για τους Bebop και Big Band." #. translators: %s: smiling face with smiling eyes emoji -#: wp-admin/about.php:180 +#: wp-admin/about.php:202 msgid "Even More Developer Happiness %s" msgstr "Ακόμα Πιο Ευτυχισμένοι Προγραμματιστές %s" @@ -1275,7 +1275,7 @@ msgid "Welcome to %s. This is your first post. Edit or delete it, then start blo msgstr "Καλώς ήλθατε στο %s. Αυτό είναι το πρώτο σας άρθρο. Αλλάξτε το ή διαγράψτε το και αρχίστε να γράφετε!" #. translators: %s: WordPress version number -#: wp-admin/about.php:242 +#: wp-admin/about.php:264 msgid "<strong>Version %s</strong> addressed one security issue." msgstr "Στην <strong>έκδοση %s</strong> παρουσιάστηκε ένα σφάλμα ασφαλείας." @@ -1292,15 +1292,15 @@ msgstr "Μπορείτε να αλλάξετε την εικόνα του προ msgid "Profile Picture" msgstr "Εικόνα προφίλ" -#: wp-admin/about.php:239 +#: wp-admin/about.php:261 msgid "Maintenance and Security Releases" msgstr "Εκδόσεις συντήρησης και ασφάλειας" -#: wp-admin/about.php:236 +#: wp-admin/about.php:258 msgid "Security Releases" msgstr "Εκδόσεις Ασφαλείας" -#: wp-admin/about.php:233 +#: wp-admin/about.php:255 msgid "Maintenance Releases" msgstr "Έκδοση Συντήρησης" @@ -5393,7 +5393,7 @@ msgid "Contributing Developers" msgstr "Συνεισφέροντες προγραμματιστές" #. translators: 1: WordPress version number, 2: plural number of bugs. -#: wp-admin/about.php:247 +#: wp-admin/about.php:52 wp-admin/about.php:269 msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "H <strong>έκδοση %1$s</strong> επιλύει %2$s πρόβλημα." @@ -5401,20 +5401,20 @@ msgstr[1] "H <strong>έκδοση %1$s</strong> επιλύει %2$s προβλή #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. -#: wp-admin/about.php:255 +#: wp-admin/about.php:277 msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs." msgstr[0] "Η <strong>έκδοση %1$s</strong> αντιμετωπίζει ορισμένα θέματα ασφαλείας και επιλύει %2$s πρόβλημα." msgstr[1] "Η <strong>έκδοση %1$s</strong> αντιμετωπίζει ορισμένα θέματα ασφαλείας και επιλύει %2$s προβλήματα." #. translators: %s: Codex URL -#: wp-admin/about.php:259 +#: wp-admin/about.php:63 wp-admin/about.php:281 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "Για περισσότερα δείτε το <a href=\"%s\">σχετικό σημείωμα</a>." #. translators: 1: WordPress version number, 2: plural number of bugs. Singular #. security issue. -#: wp-admin/about.php:251 +#: wp-admin/about.php:273 msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs." msgstr[0] "Η <strong>έκδοση %1$s</strong> αντιμετωπίζει ένα θέμα ασφαλείας και επιλύει %2$s πρόβλημα." @@ -5425,15 +5425,15 @@ msgid "Welcome to your WordPress Dashboard! This is the screen you will see when msgstr "Καλώς ήρθατε στον πίνακα ελέγχου του WordPress! Ο πίνακας ελέγχου είναι η οθόνη που βλέπετε κάθε φορά που συνδέεστε στον ιστότοπό σας — από εδώ έχετε πρόσβαση σε όλα τα υπόλοιπα μέρη του WordPress. Μπορείτε να βρείτε βοήθεια για κάθε διαχειριστική σελίδα πατώντας την καρτέλα Βοήθεια στην πάνω από τον τίτλο της οθόνης." #. translators: %s: WordPress version number -#: wp-admin/about.php:244 +#: wp-admin/about.php:266 msgid "<strong>Version %s</strong> addressed some security issues." msgstr "H <strong>έκδοση %s</strong> αφορά μερικά θέματα ασφαλείας." -#: wp-admin/about.php:232 +#: wp-admin/about.php:47 wp-admin/about.php:254 msgid "Maintenance Release" msgstr "Αναβάθμιση επιδιορθώσεων" -#: wp-admin/about.php:235 +#: wp-admin/about.php:257 msgid "Security Release" msgstr "Έκδοση ασφαλείας" @@ -5441,7 +5441,7 @@ msgstr "Έκδοση ασφαλείας" msgid "What’s New" msgstr "Νέες βελτιώσεις" -#: wp-admin/about.php:238 +#: wp-admin/about.php:260 msgid "Maintenance and Security Release" msgstr "Έκδοση ασφαλείας και διορθώσεων" @@ -5453,7 +5453,7 @@ msgstr "Aυτή η οθόνη σας επιτρέπει να επιλέγετε msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>." msgstr "Καλώς ήρθατε στο WordPress %1$s. <a href=\"%2$s\">Αλλαγές στο WordPress %1$s</a>." -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Updates" msgstr "Επιστροφή στις Ενημερώσεις" @@ -5733,11 +5733,11 @@ msgstr "Πιθανή απευθείας συμπερίληψη του wp-admin/i msgid "Welcome to WordPress %s" msgstr "Καλώς ήρθατε στο WordPress %s" -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Dashboard → Updates" msgstr "Επιστροφή στις Ενημερώσεις" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard → Home" msgstr "Επιστροφή στον Πίνακα ελέγχου" @@ -7604,7 +7604,7 @@ msgstr "Προβολή όλων" msgid "Please enter a valid menu name." msgstr "Συμπληρώστε έγκυρο όνομα μενού." -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard" msgstr "Επιστροφή στον Πίνακα Ελέγχου" diff --git a/wp-content/languages/admin-es_ES.mo b/wp-content/languages/admin-es_ES.mo index a04f4f3acd80c73cf8707c86d51d0d206b8a0e09..6574b499d8095788dce69b286ee410fb991bf9d0 100644 Binary files a/wp-content/languages/admin-es_ES.mo and b/wp-content/languages/admin-es_ES.mo differ diff --git a/wp-content/languages/admin-es_ES.po b/wp-content/languages/admin-es_ES.po index 2f7d5611e19d2aeb7fc31af6525f893a1bb6f369..feb17c57bb875c73ec023dc709fe786acd942bee 100644 --- a/wp-content/languages/admin-es_ES.po +++ b/wp-content/languages/admin-es_ES.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-07-25 07:43:08+0000\n" +"PO-Revision-Date: 2017-09-18 14:39:36+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -1781,7 +1781,7 @@ msgstr "Puedes ver las entradas en una lista simple de títulos o con el extract #. translators: %s: default category #: wp-admin/edit-tags.php:545 msgid "Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category %s." -msgstr "Borrar una categoría no hará que se borren sus entradas. Las entradas que sólo estuvieran asignadas a la categoría borrada serán asignadas a la categoría %s." +msgstr "Borrar una categoría no hará que se borren sus entradas. Las entradas que solo estuvieran asignadas a la categoría borrada serán asignadas a la categoría %s." #. translators: %s: comment date #: wp-admin/edit-form-comment.php:98 @@ -2029,7 +2029,7 @@ msgstr "<a href=\"https://codex.wordpress.org/Revision_Management\">Gestión de #: wp-admin/edit-form-advanced.php:420 msgid "You can also embed media from many popular websites including Twitter, YouTube, Flickr and others by pasting the media URL on its own line into the content of your post/page. Please refer to the Codex to <a href=\"https://codex.wordpress.org/Embeds\">learn more about embeds</a>." -msgstr "Puedes incrustar contenidos de muchos sitios web como Twitter, You Tube, Flickr y otros sólo con poner la URL del contenido en una línea (sólo la URL en el párrafo) en la entrada o página. Por favor, consulta el Codex <a href=\"https://codex.wordpress.org/Embeds\">para saber más sobre contenido incrustado</a>" +msgstr "Puedes incrustar contenidos de muchos sitios web como Twitter, YouTube, Flickr y otros solo con poner la URL del medio en una línea propia en el contenido de tu entrada/página. Por favor, consulta el Codex <a href=\"https://codex.wordpress.org/Embeds\">para saber más sobre contenido incrustado</a>" #: wp-admin/includes/dashboard.php:1606 msgid "https://codex.wordpress.org/First_Steps_With_WordPress" @@ -2476,12 +2476,12 @@ msgstr "" "Hace poco hiciste clic en el enlace \"Borrar sitio\" y rellenaste\n" "el formulario de esa página.\n" "\n" -"Si es lo que quieres hacer, haz clic en el siguiente enlace.No se volverá a pedir confirmación,\n" -"haz clic en este enlace sólo si estás totalmente seguro:\n" +"Si es lo que quieres hacer, haz clic en el siguiente enlace.No se te volverá a pedir confirmación,\n" +"haz clic en este enlace solo si estás totalmente seguro:\n" "###URL_DELETE###\n" "\n" "Si has borrado tu sitio, considera abrirte un sitio nuevo aquí\n" -"en el futuro! (Pero recuerda que tu sitio actual y tu nombre de usuario\n" +"en el futuro! (pero recuerda que tu sitio actual y tu nombre de usuario\n" "han desaparecido para siempre.)\n" "\n" "Gracias por utilizar el sitio,\n" @@ -3153,7 +3153,7 @@ msgstr "Una línea roja a la izquierda indica que el comentario está esperando #: wp-admin/includes/image-edit.php:52 msgid "You can proportionally scale the original image. For best results, scaling should be done before you crop, flip, or rotate. Images can only be scaled down, not up." -msgstr "Puedes escalar proporcionalmente la imagen original. Para obtener los mejores resultados, la escala se debe hacer antes de recortar, girar o rotar. Las imágenes sólo se pueden escalar hacia abajo, no hacia arriba." +msgstr "Puedes escalar proporcionalmente la imagen original. Para obtener los mejores resultados, la escala se debe hacer antes de recortar, girar o rotar. Las imágenes solo se pueden escalar hacia abajo, no hacia arriba." #: wp-admin/includes/image-edit.php:105 msgid "To crop the image, click on it and drag to make your selection." @@ -3392,7 +3392,7 @@ msgstr "Esta pantalla se utiliza para gestionar los temas que tienes instalados. #: wp-admin/widgets.php:395 msgid "To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back." -msgstr "Para activar un widget, arrástralo a la barra lateral o haz clic en él. Para desactivar un widget y borrar su configuración, arrástralo de vuelta a su lugar de origen." +msgstr "Para activar un widget, arrástralo a la barra lateral o haz clic en él. Para desactivar un widget y borrar sus ajustes, arrástralo de vuelta a su lugar de origen." #. translators: 1: The rating #: wp-admin/includes/template.php:2127 @@ -3656,7 +3656,7 @@ msgstr "Tu sitio %1$s ha experimentado un fallo crítico mientras se intentaba a #: wp-admin/includes/class-wp-automatic-updater.php:653 #: wp-admin/includes/class-wp-automatic-updater.php:670 msgid "Updating is easy and only takes a few moments:" -msgstr "La actualización es fácil y sólo dura un momento:" +msgstr "Actualizar es fácil y solo dura un momento:" #: wp-admin/includes/class-wp-automatic-updater.php:668 msgid "We tried but were unable to update your site automatically." @@ -4346,7 +4346,7 @@ msgstr "%s está editando en este momento" #: wp-admin/edit-form-advanced.php:419 msgid "You can upload and insert media (images, audio, documents, etc.) by clicking the Add Media button. You can select from the images and files already uploaded to the Media Library, or upload new media to add to your page or post. To create an image gallery, select the images to add and click the “Create a new gallery” button." -msgstr "Puedes subir e insertar archivos multimedia (imágenes, audios, documentos, etc.) con sólo hacer click en el botón \"Añadir medio\". Puedes elegir entre las imágenes ya subidas a la biblioteca multimedia o subir nuevos archivos. Para crear una galería de imágenes, sólo tienes que seleccionar algunas y hacer clic en el botón “Crear nueva galería”" +msgstr "Puedes subir e insertar archivos multimedia (imágenes, audios, documentos, etc.) con solo hacer clic en el botón \"Añadir medio\". Puedes elegir entre las imágenes ya subidas a la biblioteca multimedia o subir nuevos archivos. Para crear una galería de imágenes, solo tienes que seleccionar algunas y hacer clic en el botón “Crear nueva galería”" #: wp-admin/includes/image-edit.php:194 msgid "Image rotation is not supported by your web host." @@ -4362,7 +4362,7 @@ msgstr "Gestiona <a href=\"%1$s\">widgets</a> o <a href=\"%2$s\">menús</a>" #: wp-admin/widgets.php:71 msgid "When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved." -msgstr "Al cambiar de tema, a menudo hay algunos cambios en el número y configuración de las áreas y barras laterales de los widgets, y a veces estos conflictos hacen que el cambio sea un poco menos fácil. Si has cambiado de tema y parece que se hubiesen perdido widgets, ve al final de esta página al área de Widgets inactivos, donde se guardan todos tus widgets inactivos, con sus configuraciones." +msgstr "Al cambiar de tema, a menudo hay algunos cambios en el número y configuración de las áreas y barras laterales de los widgets, y a veces estos conflictos hacen que el cambio sea un poco menos fácil. Si has cambiado de tema y parece que se hubiesen perdido widgets, ve al final de esta página al área de Widgets inactivos, donde se guardan todos tus widgets inactivos, con sus ajustes." #: wp-admin/edit-tags.php:250 msgid "<strong>Parent</strong> — Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown." @@ -4370,7 +4370,7 @@ msgstr "<strong>Superior</strong> — Las categorías, al contrario que las #: wp-admin/edit-form-advanced.php:448 msgid "Publish Settings" -msgstr "Configuración de publicación" +msgstr "Ajustes de publicación" #: wp-admin/edit-form-advanced.php:430 msgid "Several boxes on this screen contain settings for how your content will be published, including:" @@ -5308,7 +5308,7 @@ msgstr "Fallo al reparar la tabla %1$s. Error: %2$s" #: wp-admin/export.php:48 msgid "You can export a file of your site’s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status." -msgstr "Puedes exportar un archivo del contenido de tu sitio para que puedas importarlo a otra instalación o plataforma. El archivo de exportación será un archivo en formato XML llamado WXR. Entradas, páginas, comentarios, campos personalizados, categorías y etiquetas serán incluidas. Puedes elegir incluir en el archivo WXR sólo cierta entradas o páginas con los filtros desplegables para limitar la exportación por categorías, autor, rango de fechas por mes o estado de plublicación." +msgstr "Puedes exportar un archivo del contenido de tu sitio para que puedas importarlo a otra instalación o plataforma. El archivo de exportación será un archivo XML en un formato llamado WXR. Se incluirán entradas, páginas, comentarios, campos personalizados, categorías y etiquetas. Puedes elegir incluir en el archivo WXR solo cierta entradas o páginas con los filtros desplegables para limitar la exportación por categorías, autor, rango de fechas por mes o estado de publicación." #: wp-admin/user-new.php:183 msgid "New users will receive an email letting them know they’ve been added as a user for your site. This email will also contain their password. Check the box if you don’t want the user to receive a welcome email." @@ -5320,7 +5320,7 @@ msgstr "El plugin ha provocado una <strong>salida inesperada</strong> de %d cara #: wp-admin/import.php:24 msgid "In previous versions of WordPress, all importers were built-in. They have been turned into plugins since most people only use them once or infrequently." -msgstr "En las versiones anteriores de WordPress todos los importadores estaban incluidos. Se han convertido en plugins porque la mayoría de la gente los usa sólo una vez o pocas veces." +msgstr "En las versiones anteriores de WordPress todos los importadores estaban incluidos. Se han convertido en plugins porque la mayoría de la gente los usa solo una vez o pocas veces." #: wp-admin/includes/image-edit.php:227 msgid "There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to return to the Image Editor." @@ -5487,7 +5487,7 @@ msgstr "Añadiendo plugins" #: wp-admin/edit.php:222 msgid "You can also edit or move multiple posts to the trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk Actions menu and click Apply." -msgstr "También puedes editar o mover varias entradas a la papelera a la vez. Selecciona los mensajes sobre los que deseas actuar utilizando las casillas de verificación. A continuación selecciona la acción a realizar en el menú Acciones en bloque y haz clic en Aplicar." +msgstr "También puedes editar o mover varias entradas a la papelera a la vez. Selecciona los mensajes sobre los que deseas actuar utilizando las casillas de verificación. A continuación selecciona la acción a realizar en el menú Acciones en lote y haz clic en Aplicar." #: wp-admin/edit.php:192 msgid "This screen provides access to all of your posts. You can customize the display of this screen to suit your workflow." @@ -5507,7 +5507,7 @@ msgstr "Acciones disponibles" #: wp-admin/edit.php:223 msgid "When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the x next to its name in the Bulk Edit area that appears." -msgstr "Si usas la edición por bloques, podrás cambiar los metadatos (categorías, autor, etc.) para los todas las entradas seleccionadas de una tacada. Para eliminar una entrada de esa selección, sólo tienes que hacer clic en la x que hay junto a nombre en el área de edición por bloques que aparece." +msgstr "Si usas la edición por lotes puedes cambiar los metadatos (categorías, autor, etc.) para los todas las entradas seleccionadas de una vez. Para eliminar una entrada de ese agrupamiento, solo tienes que hacer clic en la x que hay junto a nombre en el área de edición por lotes que aparece." #: wp-admin/import.php:197 msgid "If the importer you need is not listed, <a href=\"%s\">search the plugin directory</a> to see if an importer is available." @@ -5575,11 +5575,11 @@ msgstr "La subida de archivo te permite elegir la carpeta y la ruta donde guarda #: wp-admin/themes.php:90 msgid "Installing themes on Multisite can only be done from the Network Admin section." -msgstr "La instalación de temas en el multisitio sólo se puede hacer desde la sección de Administrador de red." +msgstr "La instalación de temas en multisitio solo se puede hacer desde la sección de administrador de red." #: wp-admin/options-general.php:30 msgid "If you want site visitors to be able to register themselves, as opposed to by the site administrator, check the membership box. A default user role can be set for all new users, whether self-registered or registered by the site admin." -msgstr "Si quieres que los visitantes puedan registrarse sólos, no que sea el administrador el que lo haga, marca la caja de miembros. Puede definirse un rol de usuario por defecto para todos los usuarios, ya sean de registro propio o por el administrador." +msgstr "Si quieres que los visitantes puedan registrarse por su cuenta, no que sea el administrador el que lo haga, marca la caja de miembros. Puede definirse un perfil de usuario por defecto para todos los usuarios, ya sean de registro propio o por el administrador." #: wp-admin/options-writing.php:39 msgid "If desired, WordPress will automatically alert various services of your new posts." @@ -5649,7 +5649,7 @@ msgstr "Si un archivo no se ha adjuntado a ningún contenido podrás verlo en la #: wp-admin/edit.php:244 msgid "You can also perform the same types of actions, including narrowing the list by using the filters, acting on a page using the action links that appear when you hover over a row, or using the Bulk Actions menu to edit the metadata for multiple pages at once." -msgstr "Puedes realizar el mismo tipo de acciones, incluyendo disminuir la lista utilizando filtros, utilizar los enlaces de acción que aparecen al pasar sobre una fila, o utilizando el menú de Acciones en Bloque para editar los metadatos de varias páginas a la vez. " +msgstr "Puedes realizar el mismo tipo de acciones, incluyendo disminuir la lista utilizando filtros, utilizar los enlaces de acción que aparecen al pasar sobre una fila, o utilizando el menú de Acciones en lote para editar los metadatos de varias páginas a la vez. " #: wp-admin/edit.php:243 msgid "Managing pages is very similar to managing posts, and the screens can be customized in the same way." @@ -5673,7 +5673,7 @@ msgstr "En la columna de <strong>Autor</strong>, además del nombre del autor, d #: wp-admin/edit-comments.php:169 msgid "You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions." -msgstr "Puedes gestionar los comentarios de tu sitio igual que gestionas tus artículos y el resto de tu contenido. Esta pantalla es configurable de la misma forma que el resto de pantallas de gestión, pudiendo utilizar las acciones que aparecen al pasar sobre los comentarios, o las Acciones en Bloque." +msgstr "Puedes gestionar los comentarios de tu sitio igual que gestionas tus artículos y el resto de tu contenido. Esta pantalla es configurable de la misma forma que el resto de pantallas de gestión, pudiendo utilizar las acciones que aparecen al pasar sobre los comentarios, o las Acciones en lote." #: wp-admin/link-manager.php:54 msgid "Links may be separated into Link Categories; these are different than the categories used on your posts." @@ -6417,7 +6417,7 @@ msgstr "Las cajas en tu Escritorio son:" msgid "Press This is a bookmarklet that makes it easy to blog about something you come across on the web. You can use it to just grab a link, or to post an excerpt. Press This will even allow you to choose from images included on the page and use them in your post. Just drag the Press This link on this screen to your bookmarks bar in your browser, and you’ll be on your way to easier content creation. Clicking on it while on another website opens a popup window with all these options." msgstr "" "Publicar esto es un marcador de enlaces que hace fácil bloguear sobre algo con lo que te hayas topado en la web. Puedes usarlo para guardar un enlace, para publicar un resumen del mismo. Publicar esto te permite elegir de entre las imágenes de esa página cuál se utilizará para tu entrada. \n" -"Sólo tienes que arrastrar el enlace de Publicar esto de esta pantalla a la barra de enlaces favoritos de tu navegador y tendrás la forma más fácil de crear contenido. Haciendo clic en él mientras estés visitando cualquier sitio web se abre una ventana emergente con las opciones mencionadas. " +"Solo tienes que arrastrar el enlace de Publicar esto de esta pantalla a la barra de enlaces favoritos de tu navegador y tendrás la forma más fácil de crear contenido. Haciendo clic en él mientras estés visitando cualquier web se abre una ventana emergente con las opciones mencionadas. " #: wp-admin/includes/upgrade.php:242 msgid "Sample Page" @@ -6434,11 +6434,11 @@ msgstr "Retro (generado)" #: wp-admin/includes/class-wp-themes-list-table.php:101 msgid "You only have one theme enabled for this site right now. Visit the Network Admin to <a href=\"%1$s\">enable</a> more themes." -msgstr "Sólo tienes un tema activado para este sitio. Ve a la administración de la red para <a href=\"%1$s\">activar</a> más temas." +msgstr "Solo tienes un tema activado para este sitio. Ve a la administración de la red para <a href=\"%1$s\">activar</a> más temas." #: wp-admin/includes/class-wp-themes-list-table.php:97 msgid "You only have one theme enabled for this site right now. Visit the Network Admin to <a href=\"%1$s\">enable</a> or <a href=\"%2$s\">install</a> more themes." -msgstr "Sólo tienes un tema activado para este sitio. Ve a la administración de la red para <a href=\"%1$s\">activar</a> or <a href=\"%2$s\">instalar</a> más temas." +msgstr "Solo tienes un tema activado para este sitio. Ve a la administración de la red para <a href=\"%1$s\">activar</a> or <a href=\"%2$s\">instalar</a> más temas." #: wp-admin/includes/upgrade.php:224 msgid "" @@ -6468,7 +6468,7 @@ msgstr "Los privilegios del Super admin no se pueden eliminar porque este usuari #: wp-admin/includes/class-wp-themes-list-table.php:108 msgid "You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress Theme Directory at any time: just click on the <a href=\"%s\">Install Themes</a> tab above." -msgstr "Tienes sólo un tema instalado ahora mismo. ¡Disfruta de la vida! Puedes elegir entre más de 1.000 temas gratuitos en el directorio de temas de WordPress.org cuando quieras: sólo tienes que hacer clic en la pestaña <a href=\"%s\">Instalar temas</a> de arriba." +msgstr "Tienes solo un tema instalado ahora mismo. ¡Disfruta de la vida! Puedes elegir entre más de 1.000 temas gratuitos en el directorio de temas de WordPress.org cuando quieras: sólo tienes que hacer clic en la pestaña <a href=\"%s\">Instalar temas</a> de arriba." #: wp-admin/maint/repair.php:160 msgid "One or more database tables are unavailable. To allow WordPress to attempt to repair these tables, press the “Repair Database” button. Repairing can take a while, so please be patient." @@ -6592,7 +6592,7 @@ msgstr "Esta pantalla te permite editar cinco campos para metadatos de un archiv #: wp-admin/edit-form-advanced.php:406 wp-admin/media.php:76 msgid "For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information." -msgstr "(Sólo para imágenes) Puedes hacer clic en editar imágenes, debajo de la miniatura, para obtener el menú de edición de imágenes y recortar, rotar o invertir la imagen, así como deshacer y rehacer. Las cajas de la derecha te dan más opciones para escalar y recortar la imagen; y para recortar la miniatura de forma diferente de la imagen original. Puedes hacer clic en la ayuda en esas cajas para obtener más información." +msgstr "(Solo para imágenes) Puedes hacer clic en editar imágenes, debajo de la miniatura, para obtener el menú de edición de imágenes y recortar, rotar o invertir la imagen, así como deshacer y rehacer. Las cajas de la derecha te dan más opciones para escalar y recortar la imagen; y para recortar la miniatura de forma diferente de la imagen original. Puedes hacer clic en la ayuda en esas cajas para obtener más información." #: wp-admin/edit-form-advanced.php:407 wp-admin/media.php:77 msgid "Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping." @@ -6729,7 +6729,7 @@ msgstr "https://es.wordpress.org/news/" #: wp-admin/options-discussion.php:68 msgid "(Signup has been disabled. Only members of this site can comment.)" -msgstr "(El registro ha sido deshabilitado. Sólo los miembros de este sitio pueden comentar.)" +msgstr "(El registro ha sido desactivado. Solo los miembros de este sitio pueden comentar.)" #. translators: 1: theme name, 2: theme details URL, 3: additional link #. attributes, 4: version number @@ -6792,7 +6792,7 @@ msgstr "Si eliges cualquier opción distinta de Simple tu ruta general de URL co #: wp-admin/options-permalink.php:31 msgid "When you assign multiple categories or tags to a post, only one can show up in the permalink: the lowest numbered category. This applies if your custom structure includes <code>%category%</code> or <code>%tag%</code>." -msgstr "Cuando asignas varias categorías o etiquetas a una entrada sólo se puede mostrar una en el enlace permanente: la categoría con el número más bajo. Esto es así si tu estructura personalizada contiene <code>%category%</code> o <code>%tag%</code>." +msgstr "Cuando asignas varias categorías o etiquetas a una entrada solo se puede mostrar una en el enlace permanente: la categoría con el número más bajo. Esto es así si tu estructura personalizada contiene <code>%category%</code> o <code>%tag%</code>." #: wp-admin/options-permalink.php:38 msgid "The Optional fields let you customize the “category” and “tag” base names that will appear in archive URLs. For example, the page listing all posts in the “Uncategorized” category could be <code>/topics/uncategorized</code> instead of <code>/category/uncategorized</code>." @@ -6893,7 +6893,7 @@ msgstr "Recuerda hacer click en el botón actualizar Perfil cuando acabes." #: wp-admin/user-edit.php:50 msgid "Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so." -msgstr "Los campos necesarios están marcados. El resto son opcionales. El perfil sólo será mostrado si tu tema está configurado para ello." +msgstr "Los campos necesarios están marcados; el resto son opcionales. El perfil solo se mostrará si tu tema está configurado para ello." #: wp-admin/user-edit.php:48 msgid "Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts." @@ -6968,7 +6968,7 @@ msgstr "Volver a los importadores" #: wp-admin/edit-link-form.php:58 msgid "You can add or edit links on this screen by entering information in each of the boxes. Only the link’s web address and name (the text you want to display on your site as the link) are required fields." -msgstr "Puede añadir o editar enlaces desde esta pantalla introduciendo la información en cada caja. Sólo son necesarios el enlace a la web y el nombre (el texto que quieres mostrar en el enlace en tu sitio)." +msgstr "Puede añadir o editar enlaces desde esta pantalla introduciendo la información en cada caja. Solo son necesarios el enlace a la web y el nombre (el texto que quieres mostrar en el enlace en tu sitio)." #: wp-admin/edit-tags.php:552 msgid "Categories can be selectively converted to tags using the <a href=\"%s\">category to tag converter</a>." @@ -7013,7 +7013,7 @@ msgstr "<strong>Advertencia:</strong> piensa detenidamente en la posibilidad de #: wp-admin/widgets.php:55 msgid "Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them." -msgstr "Los widgets son secciones independientes de contenido que pueden ser colocados en cualquier parte de tu tema que esté preparado para ello (comúnmente llamados barras laterales/sidebars). Para colocar en tus áreas laterales/widgets con widgets de forma individual, arrastra y suelta la barra del título del widget al área deseada. Por defecto, sólo la primera área está desplegada. Para poner widgets en otras aéreas haz clic en el barra del título para desplegarlas." +msgstr "Los widgets son secciones independientes de contenido que pueden ser colocados en cualquier parte de tu tema que esté preparado para ello (comúnmente llamados barras laterales/sidebars). Para colocar en tus áreas laterales/widgets con widgets de forma individual, arrastra y suelta la barra del título del widget al área deseada. Por defecto, solo la primera área está desplegada. Para poner widgets en otras aéreas haz clic en el barra del título para desplegarlas." #: wp-admin/theme-editor.php:28 msgid "Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box." @@ -7161,7 +7161,7 @@ msgstr "Puedes esconder/mostrar columnas basándote en tus necesidades y decidir #: wp-admin/edit.php:203 msgid "You can refine the list to show only posts in a specific category or from a specific month by using the dropdown menus above the posts list. Click the Filter button after making your selection. You also can refine the list by clicking on the post author, category or tag in the posts list." -msgstr "Puedes refinar lo que muestra el listado de entradas haciendo que sólo se muestren las de una categoría específica o de un mes determinado usando el menú desplegable que encontrarás sobre el listado de entradas. Realiza un clic sobre el botón Filtro después de realizar tu selección. También puedes refinar el listado haciendo clic sobre el autor de una entrada, categoría o etiqueta del listado de entradas." +msgstr "Puedes refinar lo que muestra el listado de entradas haciendo que solo se muestren las de una categoría específica o de un mes determinado usando el menú desplegable que encontrarás sobre el listado de entradas. Realiza un clic sobre el botón Filtro después de realizar tu selección. También puedes refinar el listado haciendo clic sobre el autor de una entrada, categoría o etiqueta del listado de entradas." #: wp-admin/plugins.php:539 msgid "Search Installed Plugins" @@ -7430,7 +7430,7 @@ msgstr "Esto eliminará la imagen de fondo. No podrás restaurar ninguna persona #: wp-admin/includes/class-wp-themes-list-table.php:114 msgid "Only the current theme is available to you. Contact the %s administrator for information about accessing additional themes." -msgstr "Para ti sólo está disponible el tema actual. Contacta con el administrador de %s para obtener información sobre cómo acceder a temas adicionales." +msgstr "Para ti solo está disponible el tema actual. Contacta con el administrador de %s para obtener información sobre cómo acceder a temas adicionales." #: wp-admin/includes/file.php:30 msgid "Tag Template" @@ -8530,7 +8530,7 @@ msgstr "Avatares" #: wp-admin/options-discussion.php:169 msgid "When a comment contains any of these words in its content, name, URL, email, or IP, it will be put in the trash. One word or IP per line. It will match inside words, so “press” will match “WordPress”." -msgstr "Cuando un comentario contenga alguna de las siguientes palabras en su contenido, nombre, URL o IP, se mandará a la papelera. Pon sólo una palabra o IP por línea. Incluye el interior de las palabras, por lo que “press” incluye “WordPress”." +msgstr "Cuando un comentario contenga alguna de las siguientes palabras en su contenido, nombre, URL o IP, se mandará a la papelera. Pon solo una palabra o IP por línea. Incluirá las palabras incluidas, por lo que “press” incluirá también “WordPress”." #: wp-admin/options-discussion.php:167 wp-admin/options-discussion.php:168 msgid "Comment Blacklist" @@ -8837,7 +8837,7 @@ msgstr "Sin categoría" #: wp-admin/includes/upgrade.php:77 msgid "<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you." -msgstr "¡<strong><em>Anota la contraseña</em></strong> cuidadosamente! Es una contraseña <em>aleatoria</em> que ha sido generada sólo para ti." +msgstr "¡<strong><em>Anota la contraseña</em></strong> cuidadosamente! Es una contraseña <em>aleatoria</em> que ha sido generada solo para ti." #: wp-admin/includes/update.php:618 msgid "An automated WordPress update has failed to complete! Please notify the site administrator." @@ -9109,7 +9109,7 @@ msgstr "— Sin cambios —" #: wp-admin/includes/class-wp-posts-list-table.php:1404 msgid "Bulk Edit" -msgstr "Edición masiva" +msgstr "Edición en lote" #: wp-admin/includes/class-wp-links-list-table.php:132 msgid "Visible" @@ -9972,7 +9972,7 @@ msgstr "No se ha subido ningún archivo." #: wp-admin/includes/file.php:297 msgid "The uploaded file was only partially uploaded." -msgstr "Sólo se ha podido subir una parte del archivo." +msgstr "Solo se ha podido subir una parte del archivo." #: wp-admin/includes/file.php:62 msgid "Popup Comments Template" @@ -10566,7 +10566,7 @@ msgstr "La descripción no suele mostrarse por defecto, sin embargo hay algunos #: wp-admin/edit-tag-form.php:144 wp-admin/edit-tags.php:399 msgid "The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens." -msgstr "El “slug” es la versión amigable de la URL del nombre. Suele estar en minúsculas y contiene sólo letras, números y guiones." +msgstr "El “slug” es la versión amigable de la URL del nombre. Suele estar en minúsculas y contiene solo letras, números y guiones." #: wp-admin/edit-form-comment.php:53 msgid "URL:" diff --git a/wp-content/languages/admin-fi.po b/wp-content/languages/admin-fi.po index d4713ad514a24f0ff47c857604803298d8f79633..1825606ea0b326d0fe1eb27122f2a152c453cd00 100644 --- a/wp-content/languages/admin-fi.po +++ b/wp-content/languages/admin-fi.po @@ -26,39 +26,39 @@ msgctxt "start of week" msgid "1" msgstr "1" -#: wp-admin/about.php:196 +#: wp-admin/about.php:218 msgid "New capabilities have been introduced to 4.8 with an eye towards removing calls to <code>is_super_admin()</code>. Additionally, new hooks and tweaks to more granularly control site and user counts per network have been added." msgstr "4.8:ssa on uusia käyttöoikeuksia, jotka mahdollistavat <code>is_super_admin()</code> -kutsujen käytön vähentämisen. Lisäksi mm. uusia koukkuja ja viilauksia on tehty sivustojen ja käyttäjien verkkokohtaisten lukumäärien yksityiskohtaisempaan hallintaan." -#: wp-admin/about.php:151 +#: wp-admin/about.php:173 msgid "Being part of the community can help you improve your WordPress skills and network with people you wouldn’t otherwise meet. Now you can easily find your local events just by logging in to your dashboard and looking at the new Events and News dashboard widget." msgstr "Yhteisöön osallistumalla voit kehittää omia WordPress-taitojasi ja verkostoitua ihmisten kanssa, joita et muuten kohtaisi. Voit nyt helposti löytää paikalliset tapahtumat kirjautumalla ohjauspaneeliin ja katsomalla uutta Tapahtumat ja uutiset -vimpainta." -#: wp-admin/about.php:149 +#: wp-admin/about.php:171 msgid "This is quickly becoming one of our favorite features. While you are in the dashboard (because you’re running updates and writing posts, right?) all upcoming WordCamps and WordPress Meetups — local to you — will be displayed." msgstr "Tästä on nopeasti tulossa yksi suosikkiominaisuuksistamme. Kun olet ohjauspaneelissa (koska olet tekemässä päivityksiä ja kirjoittamassa artikkeleita, eikö?), näytetään siellä kaikki tulevat – sinua lähimmät – WordCampit ja WordPress-meetupit." -#: wp-admin/about.php:147 +#: wp-admin/about.php:169 msgid "Did you know that WordPress has a thriving offline community with groups meeting regularly in more than 400 cities around the world? WordPress now draws your attention to the events that help you continue improving your WordPress skills, meet friends, and, of course, publish!" msgstr "Tiesitkö, että WordPressillä on kukoistava yhteisö, jonka ryhmät tapaavat kasvotusten säännöllisesti yli 400 eri kaupungissa ympäri maailman? Nyt WordPress kohdistaa huomion tapahtumiin, jotka auttavat parantamaan WordPress-taitojasi, tapaamaan ystäviä ja tietenkin julkaisemaan!" -#: wp-admin/about.php:126 +#: wp-admin/about.php:148 msgid "Have you ever tried updating a link, or the text around a link, and found you can’t seem to edit it correctly? When you edit the text after the link, your new text also ends up linked. Or you edit the text in the link, but your text ends up outside of it. This can be frustrating! With link boundaries, a great new feature, the process is streamlined and your links will work well. You’ll be happier. We promise." msgstr "Oletko koskaan yrittänyt päivittää linkkiä tai tekstiä linkin ympärillä ja todennut, ettei se ihan toimi? Kun muokkaat tekstiä linkin perässä, myös uusi teksti tulee osaksi linkkiä. Tai kun muokkaat tekstiä linkin sisällä, teksti päätyy linkin ulkopuolelle. Tämä voi olla turhauttavaa! Uuden ominaisuuden, linkkirajojen, avulla tämä prosessi virtaviivaistuu ja linkit toimivat hyvin. Sinä olet onnellisempi. Me lupaamme." -#: wp-admin/about.php:117 +#: wp-admin/about.php:139 msgid "This feature deserves a parade down the center of town! Rich-text editing capabilities are now native for Text widgets. Add a widget anywhere and format away. Create lists, add emphasis, and quickly and easily insert links. Have fun with your newfound formatting powers, and watch what you can accomplish in a short amount of time." msgstr "Tekstivimpaimissa on nyt graafinen editori. Voit lisätä vimpaimen mille tahansa vimpainalueelle ja tuottaa muotoiltua tekstiä vaivattomasti. Luo listoja, lihavoi tai kursivoi tekstiä, ja lisää helposti ja nopeasti linkkejä. " -#: wp-admin/about.php:109 +#: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." msgstr "Video on mainio tapa toivottaa sivustosi kävijät tervetulleiksi. Voit nyt lisätä minkä tahansa videon mediakirjastosta sivustosi sivupalkkiin uuden videovimpaimen avulla. " -#: wp-admin/about.php:105 +#: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." msgstr "Kuvan lisääminen vimpaimeen on nyt yksinkertaista kenelle tahansa eikä vaadi koodaustaitoja. Lisää vimpaimen asetuksissa vaikka kuva omasta naamataulustasi tai viimeisimmältä viikonloppuseikkailultasi." -#: wp-admin/about.php:50 +#: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." msgstr "Vaikka osa päivityksistä tuntuvat pieniltä, niitä on ollut luomassa sadat kehittäjät. Parannuksia linkkien lisäämiseen ja muokkaamiseen, <em>kolme</em> uutta mediavimpainta kuville, audiolle ja videolle, graafisella editorilla päivitetty tekstivimpain ja päivitetty uutisosio ohjauspaneelissa josta näet lähistöllä olevat ja tulevat WordPress-tapahtumat." @@ -66,59 +66,59 @@ msgstr "Vaikka osa päivityksistä tuntuvat pieniltä, niitä on ollut luomassa msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." msgstr "Kiitos kun päivitit uusimpaan versioon! WordPress %s lisää uusia tapoja ilmaista itseäsi ja edustaa brändiäsi." -#: wp-admin/about.php:204 +#: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." msgstr "Uusi REST API -pohjaskeema mediavimpaimille avaa mahdollisuuden uusille mediavimpaimille tulevaisuudessa (kuten gallerioille ja soittolistoille). Kolme uutta mediavimpainta käyttävät samaa pohjakoodia joka vastaa suurimmasta osasta vuorovaikutuksesta mediamodaalin kanssa. Yhteinen luokka helpottaa uusien mediavimpainten luomista ja luo pohjaa tulevaisuuden kehitykselle." -#: wp-admin/about.php:203 +#: wp-admin/about.php:225 msgid "Media Widgets API" msgstr "Mediavimpainten API" -#: wp-admin/about.php:208 +#: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." msgstr "Mukauttimen sivupalkki on nyt leveämpi korkearesoluutioilla näytöillä. Mukauttimeen toteutettavien kontrollien tulisi käyttää prosenttipohjaisia leveyksiä pikseliarvojen sijasta." -#: wp-admin/about.php:207 +#: wp-admin/about.php:229 msgid "Customizer Width Variable" msgstr "Mukauttimen mukautuva leveys" -#: wp-admin/about.php:200 +#: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" msgstr "TinyMCE:n tekstivimpaimeen lisäämisen myötä 4.8 sisältää uuden JavaScript API:n tekstieditorin alustamiseen sivun lataamisen jälkeen. Tätä voidaan käyttää editorin lisäämiseen mihin tahansa textarea-elementtiin ja sen kustomointiin painikkeilla ja lisätoiminnoilla. Hyvä uutinen lisäosien kehittäjille!" -#: wp-admin/about.php:199 +#: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" msgstr "Tekstieditorin JavaScript API" -#: wp-admin/about.php:195 +#: wp-admin/about.php:217 msgid "Multisite Updates" msgstr "Multisite-päivitykset" -#: wp-admin/about.php:192 +#: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." msgstr "Yhä harvempi selain tukee Silverlight-selainlaajennusta, joten sen vaatimien tiedostomuotojen tuki päättyy. Tiedostot esitetään yhä latauslinkkinä, mutta niitä ei enää upoteta automaattisesti." -#: wp-admin/about.php:191 +#: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" msgstr "WMV- ja WMA-tiedostomuotojen tuen päättyminen" -#: wp-admin/about.php:188 +#: wp-admin/about.php:210 msgid "New CSS rules mean extraneous content (like “Add New” links) no longer need to be included in admin-area headings. These panel headings improve the experience for people using assistive technologies." msgstr "Uusien CSS-sääntöjen ansiosta ylimääräistä sisältöä (kuten Lisää uusi -linkkejä) ei enää tarvitse lisätä ylläpitonäkymän otsikoihin. Tämä parantaa käyttökokemusta ihmisille, jotka hyödyntävät avustavaa teknologiaa." -#: wp-admin/about.php:187 +#: wp-admin/about.php:209 msgid "More Accessible Admin Panel Headings" msgstr "Parannuksia hallintanäkymän paneelien otsikoiden esteettömyyteen" -#: wp-admin/about.php:56 +#: wp-admin/about.php:78 msgid "Exciting Widget Updates" msgstr "Jännittävät vimpainpäivitykset" -#: wp-admin/about.php:49 +#: wp-admin/about.php:71 msgid "WordPress 4.8 adds some great new features. Gear up for a more intuitive WordPress!" msgstr "WordPress 4.8 sisältää joitakin hienoja uusia ominaisuuksia. Valmistaudu intuitiivisempaan WordPressiin!" -#: wp-admin/about.php:48 +#: wp-admin/about.php:70 msgid "An Update with You in Mind" msgstr "Päivitys, joka on tehtyä sinua ajatellen" @@ -127,19 +127,19 @@ msgstr "Päivitys, joka on tehtyä sinua ajatellen" msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" msgstr "Lähistölläsi ei ole yhtään tulevaa tapahtumaa. Haluaisitko <a href=\"%s\">järjestää sellaisen</a> itse?" -#: wp-admin/about.php:145 +#: wp-admin/about.php:167 msgid "Nearby WordPress Events" msgstr "WordPress-tapahtumat lähelläsi" -#: wp-admin/about.php:116 +#: wp-admin/about.php:138 msgid "Rich Text Widget" msgstr "Graafinen tekstieditori vimpaimessa" -#: wp-admin/about.php:113 +#: wp-admin/about.php:135 msgid "Are you a podcaster, musician, or avid blogger? Adding a widget with your audio file has never been easier. Upload your audio file to the Media Library, go to the widget settings, select your file, and you’re ready for listeners. This would be a easy way to add a more personal welcome message, too!" msgstr "Oletko podcastaaja, muusikko tai innokas bloggaaja? Äänivimpaimen avulla lisäät äänitiedostoja sivullesi helpommin kuin koskaan aiemmin. Lataa äänitiedosto mediakirjastoon, mene vimpainasetuksiin, valitse lataamasi tiedosto ja olet valmis. Tällä tavoin voit vaikkapa lisätä persoonallisen tervetuloviestin sivuillesi!" -#: wp-admin/about.php:125 +#: wp-admin/about.php:147 msgid "Link Boundaries" msgstr "Linkkirajat" @@ -218,7 +218,7 @@ msgid "Assign a parent term to create a hierarchy. The term Jazz, for example, w msgstr "Määritä ylemmän tason termi luodaksesi hierarkian. Esimerkiksi termien \"Bepop\" ja \"Big Band\" ylemmän tason termi voisi olla \"Jazz\"." #. translators: %s: smiling face with smiling eyes emoji -#: wp-admin/about.php:180 +#: wp-admin/about.php:202 msgid "Even More Developer Happiness %s" msgstr "Uusia herkkuja kehittäjille %s" @@ -1275,7 +1275,7 @@ msgid "Welcome to %s. This is your first post. Edit or delete it, then start blo msgstr "Tervetuloa sivustolle %s. Tämä on ensimmäinen artikkelisi. Muokkaa sitä tai poista se, ja aloita bloggaaminen!" #. translators: %s: WordPress version number -#: wp-admin/about.php:242 +#: wp-admin/about.php:264 msgid "<strong>Version %s</strong> addressed one security issue." msgstr "<strong>Versio %s</strong> paikkasi yhden tietoturva-aukon." @@ -1292,15 +1292,15 @@ msgstr "Voit vaihtaa profiilikuvasi <a href=\"%s\">Gravatarissa</a>." msgid "Profile Picture" msgstr "Profiilikuva" -#: wp-admin/about.php:239 +#: wp-admin/about.php:261 msgid "Maintenance and Security Releases" msgstr "Ylläpito- ja tietoturvapäivitykset" -#: wp-admin/about.php:236 +#: wp-admin/about.php:258 msgid "Security Releases" msgstr "Tietoturvapäivitykset" -#: wp-admin/about.php:233 +#: wp-admin/about.php:255 msgid "Maintenance Releases" msgstr "Ylläpitopäivitykset" @@ -5388,7 +5388,7 @@ msgid "Contributing Developers" msgstr "Avustavat kehittäjät" #. translators: 1: WordPress version number, 2: plural number of bugs. -#: wp-admin/about.php:247 +#: wp-admin/about.php:52 wp-admin/about.php:269 msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "<strong>Versio %1$s</strong> korjasi %2$s bugin." @@ -5396,20 +5396,20 @@ msgstr[1] "<strong>Versio %1$s</strong> korjasi %2$s bugia." #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. -#: wp-admin/about.php:255 +#: wp-admin/about.php:277 msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs." msgstr[0] "<strong>Versio %1$s</strong> paikkasi joitakin tietoturva-aukkoja ja korjasi %2$s bugin." msgstr[1] "<strong>Versio %1$s</strong> paikkasi joitakin tietoturva-aukkoja ja korjasi %2$s bugia." #. translators: %s: Codex URL -#: wp-admin/about.php:259 +#: wp-admin/about.php:63 wp-admin/about.php:281 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "<a href=\"%s\">Lisätietoja tästä päivityksestä</a>." #. translators: 1: WordPress version number, 2: plural number of bugs. Singular #. security issue. -#: wp-admin/about.php:251 +#: wp-admin/about.php:273 msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs." msgstr[0] "<strong>Versio %1$s</strong> paikkasi tietoturva-aukon ja korjasi %2$s bugin." @@ -5420,15 +5420,15 @@ msgid "Welcome to your WordPress Dashboard! This is the screen you will see when msgstr "Tervetuloa WordPressin ohjausnäkymään! Näet tämän aina kun kirjaudut sisään, ja pääset tätä kautta kaikkiin sivuston hallintaominaisuuksiin. Saat tarvittaessa apua oikean yläkulman Ohje-välilehdeltä." #. translators: %s: WordPress version number -#: wp-admin/about.php:244 +#: wp-admin/about.php:266 msgid "<strong>Version %s</strong> addressed some security issues." msgstr "<strong>Versio %s</strong> paikkasi tietoturva-aukon." -#: wp-admin/about.php:232 +#: wp-admin/about.php:47 wp-admin/about.php:254 msgid "Maintenance Release" msgstr "Huoltopäivitys" -#: wp-admin/about.php:235 +#: wp-admin/about.php:257 msgid "Security Release" msgstr "Tietoturvapäivitys" @@ -5436,7 +5436,7 @@ msgstr "Tietoturvapäivitys" msgid "What’s New" msgstr "Uudet ominaisuudet" -#: wp-admin/about.php:238 +#: wp-admin/about.php:260 msgid "Maintenance and Security Release" msgstr "Huolto- ja tietoturvapäivitys" @@ -5448,7 +5448,7 @@ msgstr "Tällä ruudulla pystyt valitsemaan kestolinkin rakenteen. Voit valita j msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>." msgstr "Tervetuloa käyttämään WordPressin versiota %1$s. <a href=\"%2$s\">Lue lisää</a>." -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Updates" msgstr "Palaa päivitykset -kohtaan" @@ -5728,11 +5728,11 @@ msgstr "Tiedostoon wp-admin/includes/template.php on viitattu suoraan luultavast msgid "Welcome to WordPress %s" msgstr "Tervetuloa käyttämään WordPress-versiota %s" -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Dashboard → Updates" msgstr "Palaa sivulle Ohjausnäkymä → Päivitykset" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard → Home" msgstr "Mene ohjausnäkymän etusivulle" @@ -7603,7 +7603,7 @@ msgstr "Näytä kaikki" msgid "Please enter a valid menu name." msgstr "Anna valikolle kelvollinen nimi." -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard" msgstr "Palaa Ohjausnäkymä-sivulle" diff --git a/wp-content/languages/admin-fr_FR.mo b/wp-content/languages/admin-fr_FR.mo index 3b72df4860fa48755d5a2365bfb4951b176747a3..eb4b4cca62e9d166c99ea6aa28dc73502dfa768c 100644 Binary files a/wp-content/languages/admin-fr_FR.mo and b/wp-content/languages/admin-fr_FR.mo differ diff --git a/wp-content/languages/admin-fr_FR.po b/wp-content/languages/admin-fr_FR.po index be909d8edba6c6fea83d82eaef79b4b00b47532c..9fb6189b54f80e00ac2baf9933b6006843d12ab6 100644 --- a/wp-content/languages/admin-fr_FR.po +++ b/wp-content/languages/admin-fr_FR.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-26 13:33:05+0000\n" +"PO-Revision-Date: 2017-10-03 08:16:57+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -52,11 +52,11 @@ msgstr "Cette fonctionnalité mérite un défilé en centre-ville ! Les wid #: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." -msgstr "Une vidéo de bienvenue est un excellent moyen d'humaniser l'image de marque de votre site. Vous pouvez maintenant ajouter n'importe quelle vidéo de la Bibliothèque de médias à une barre latérale sur votre site avec le nouveau widget Vidéo. Utilisez ceci pour diffuser une vidéo de bienvenue afin de présenter votre site aux visiteurs ou promouvoir votre dernier et meilleur contenu." +msgstr "Une vidéo de bienvenue est un excellent moyen d’humaniser l’image de marque de votre site. Vous pouvez maintenant ajouter n’importe quelle vidéo de la bibliothèque de médias à une colonne latérale sur votre site avec le nouveau widget vidéo. Utilisez-le pour diffuser une vidéo de bienvenue afin de présenter votre site aux visiteurs ou promouvoir votre dernier et meilleur contenu." #: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." -msgstr "Ajouter une image à un widget est maintenant un jeu d’enfant, à la portée de n’importe quel utilisateur WordPress, sans qu'il ait besoin de savoir coder. Insérez simplement votre image dans les réglages du widget. Essayez d’ajouter un portrait ou une photo des aventures de votre dernier week-end et voyez comme l’image apparaît automatiquement." +msgstr "Ajouter une image à un widget est maintenant un jeu d’enfant, à la portée de n’importe quel utilisateur WordPress, sans qu’il ait besoin de savoir coder. Insérez simplement votre image dans les réglages du widget. Essayez d’ajouter un portrait ou une photo des aventures de votre dernier week-end et voyez comme l’image apparaît automatiquement." #: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." @@ -64,11 +64,11 @@ msgstr "Même si certaines mises à jour ont l’air mineures, elles ont ét #: wp-admin/about.php:37 wp-admin/credits.php:23 wp-admin/freedoms.php:22 msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." -msgstr "Merci à vous d’avoir mis à jour dans la dernière version ! WordPress %s ajoute encore plus de façons de vous exprimer et de représenter votre marque." +msgstr "Merci à vous d’avoir mis à jour dans la dernière version ! WordPress %s ajoute encore plus de façons de vous exprimer et de représenter votre marque." #: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." -msgstr "L'intégration dans la version 4.8 d'un nouveau schéma de l’API REST dédié aux widgets médias offre, à l’avenir, beaucoup de possibilités aux widgets de médias (tels que des galeries ou les playlists). Les trois nouveaux widgets multimédias sont gérés par une même classe qui recouvre la plupart des interactions avec le mode média. Cette classe facilite également la création de nouveaux widgets de médias et ouvre la voie à bien plus encore." +msgstr "L’intégration dans la version 4.8 d’un nouveau schéma de l’API REST dédié aux widgets médias offre, à l’avenir, beaucoup de possibilités aux widgets de médias (tels que des galeries ou les playlists). Les trois nouveaux widgets multimédias sont gérés par une même classe qui recouvre la plupart des interactions avec le mode média. Cette classe facilite également la création de nouveaux widgets de médias et ouvre la voie à bien plus encore." #: wp-admin/about.php:225 msgid "Media Widgets API" @@ -76,15 +76,15 @@ msgstr "API pour les Widgets Media" #: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." -msgstr "Réjouissez vous ! De nouveaux points d'arrêt responsives ont été ajoutés à la barre latérale de la personnalisation afin de l'élargir sur les écrans haute résolution. Les contrôles ajoutés à l’outil de personnalisation devraient utiliser des largeurs en pourcentage plutôt que des dimensions en pixels." +msgstr "Réjouissez-vous ! De nouveaux points d’arrêt responsives ont été ajoutés à la colonne latérale de la personnalisation afin de l’élargir sur les écrans haute résolution. Les contrôles ajoutés à l’outil de personnalisation devraient utiliser des largeurs en pourcentage plutôt que des dimensions en pixels." #: wp-admin/about.php:229 msgid "Customizer Width Variable" -msgstr "Largeur variable de l'Outil de personnalisation" +msgstr "Largeur variable de l’outil de personnalisation" #: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" -msgstr "L’ajout de TinyMCE au widget texte dans la version 4.8 embarque une nouvelle API JavaScript chargée d’instancier l’éditeur après le chargement de la page. Cette API peut être utilisée pour ajouter une instance de l’éditeur à n'importe quelle zone de texte et la personnaliser avec des boutons et des fonctions. C'est super pour les auteurs d’extension !" +msgstr "L’ajout de TinyMCE au widget texte dans la version 4.8 embarque une nouvelle API JavaScript chargée d’instancier l’éditeur après le chargement de la page. Cette API peut être utilisée pour ajouter une instance de l’éditeur à n’importe quelle zone de texte et la personnaliser avec des boutons et des fonctions. C’est super pour les auteurs d’extension !" #: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" @@ -125,7 +125,7 @@ msgstr "Une mise à jour sur laquelle nous avons pensé à vous" #. translators: meetup organization documentation URL. #: wp-admin/includes/dashboard.php:1262 msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" -msgstr "Il n’y a aucun évènement planifié proche de vous pour le moment. Voulez vous en <a href=\"%s\">organiser un</a> ?" +msgstr "Il n’y a aucun évènement planifié proche de vous pour le moment. Voulez-vous en <a href=\"%s\">organiser un</a> ?" #: wp-admin/about.php:167 msgid "Nearby WordPress Events" @@ -160,7 +160,7 @@ msgstr "https://make.wordpress.org/community/handbook/meetup-organizer/welcome/" #. documentation URL #: wp-admin/includes/dashboard.php:1254 msgid "There aren’t any events scheduled near %1$s at the moment. Would you like to <a href=\"%2$s\">organize one</a>?" -msgstr "Il n’y a aucun évènement planifié près de %1$s pour le moment. Voudriez vous <a href=\"%2$s\">en organiser un</a> ?" +msgstr "Il n’y a aucun évènement planifié près de %1$s pour le moment. Voulez-vous <a href=\"%2$s\">en organiser un</a> ?" #. translators: %s is a placeholder for the name of a city. #: wp-admin/includes/dashboard.php:1211 @@ -228,7 +228,7 @@ msgstr "Désolé, vous n’avez pas l’autorisation de supprimer des utilisateu #: wp-admin/user-new.php:23 wp-admin/user-new.php:117 msgid "Sorry, you are not allowed to create users." -msgstr "Désolé, vous n’avez pas l'autorisation de créer des utilisateurs." +msgstr "Désolé, vous n’avez pas l’autorisation de créer des utilisateurs." #: wp-admin/customize.php:163 msgid "The Customizer allows you to preview changes to your site before publishing them. You can navigate to different pages on your site within the preview. Edit shortcuts are shown for some editable elements." @@ -454,7 +454,7 @@ msgstr "Par défaut, les nouveaux utilisateurs recevront un message leur indiqua #: wp-admin/user-new.php:185 msgid "New users are automatically assigned a password, which they can change after logging in. You can view or edit the assigned password by clicking the Show Password button. The username cannot be changed once the user has been added." -msgstr "Les nouveaux utilisateurs reçoivent automatiquement un mot de passe, qui peut être changé après connexion. Vous pouvez afficher le mot de passe ou le modifier en cliquant sur le bouton « Afficher le mot de passe ». L'identifiant ne peut pas être modifié une fois que le compte utilisateur a été créé." +msgstr "Les nouveaux utilisateurs reçoivent automatiquement un mot de passe, qui peut être changé après connexion. Vous pouvez afficher le mot de passe ou le modifier en cliquant sur le bouton « Afficher le mot de passe ». L’identifiant ne peut pas être modifié une fois que le compte utilisateur a été créé." #. translators: %s: Plugin name #: wp-admin/includes/update.php:747 @@ -600,7 +600,7 @@ msgstr "%s extension mise à jour." #. translators: 1: Codex URL to release notes, 2: new WordPress version #: wp-admin/includes/update.php:257 msgid "<a href=\"%1$s\">WordPress %2$s</a> is available! Please notify the site administrator." -msgstr "<a href=\"%1$s\">WordPress %2$s</a> est disponible ! Veuillez informer l’administrateur du site." +msgstr "<a href=\"%1$s\">WordPress %2$s</a> est disponible ! Veuillez informer l’administrateur du site." #: wp-admin/includes/update.php:252 msgid "Please update WordPress now" @@ -615,7 +615,7 @@ msgstr "https://codex.wordpress.org/Version_%s" #. to network admin, 4: accessibility text #: wp-admin/includes/update.php:244 msgid "<a href=\"%1$s\">WordPress %2$s</a> is available! <a href=\"%3$s\" aria-label=\"%4$s\">Please update now</a>." -msgstr "<a href=\"%1$s\">WordPress %2$s</a> est disponible ! <a href=\"%3$s\" aria-label=\"%4$s\">Veuillez le mettre à jour maintenant</a>." +msgstr "<a href=\"%1$s\">WordPress %2$s</a> est disponible ! <a href=\"%3$s\" aria-label=\"%4$s\">Veuillez le mettre à jour maintenant</a>." #: wp-admin/includes/theme.php:280 msgid "Portfolio" @@ -671,7 +671,7 @@ msgstr "Info" #: wp-admin/includes/meta-boxes.php:872 msgid "Need help? Use the Help tab above the screen title." -msgstr "Besoin d’aide ? Utilisez l’onglet Aide au dessus du titre de l’écran." +msgstr "Besoin d’aide ? Utilisez l’onglet « Aide » au dessus du titre de l’écran." #: wp-admin/includes/menu.php:342 wp-admin/my-sites.php:16 msgid "Sorry, you are not allowed to access this page." @@ -1855,7 +1855,7 @@ msgstr "Dans la colonne <strong>Envoyé le</strong>, vous trouverez la date et l #: wp-admin/edit-comments.php:177 msgid "In the <strong>Comment</strong> column, hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment." -msgstr "Dans la colonne <strong>Commentaire</strong>, survolez n’importe quel commentaire avec votre souris afin d'afficher les liens pour approuver ce commentaire, y répondre (en l’approuvant), le modifier rapidement, le marquer comme indésirable, ou le mettre à la corbeille." +msgstr "Dans la colonne <strong>Commentaire</strong>, survolez n’importe quel commentaire avec votre souris afin d’afficher les liens pour approuver ce commentaire, y répondre (en l’approuvant), le modifier rapidement, le marquer comme indésirable, ou le mettre à la corbeille." #. translators: 1: comments count 2: post title #: wp-admin/edit-comments.php:141 @@ -2473,15 +2473,15 @@ msgid "" msgstr "" "Chèr·e ###USERNAME###,\n" "\n" -"Vous avez récemment cliqué sur le lien « Supprimer le site » pour votre propre site, \n" +"Vous avez récemment cliqué sur le lien « Supprimer le site » pour votre propre site, \n" "et avez complété le formulaire présent sur cette même page.\n" "\n" "Si vous confirmez la suppression de votre site, cliquez sur le lien ci-dessous.\n" "Aucune confirmation ne vous sera demandée par la suite, soyez donc totalement \n" -"certain·e de ce que vous faites :\n" +"certain·e de ce que vous faites :\n" "###URL_DELETE###\n" "\n" -"Si vous effacez votre site, n’hésitez pas à revenir créer un autre site à l’avenir ! \n" +"Si vous effacez votre site, n’hésitez pas à revenir créer un autre site à l’avenir ! \n" "(mais souvenez-vous que votre site actuel et votre identifiant\n" "ne seront plus jamais disponibles)\n" "\n" @@ -2631,16 +2631,16 @@ msgid "" "\n" "Thanks! -- The WordPress Team" msgstr "" -"BETA TESTEUR ?\n" +"BETA TESTEUR ?\n" "==============\n" "\n" -"Ce message de débogage est envoyé lorsque vous utilisez une version de développement de WordPress.\n" +"Cet e-mail de débogage est envoyé lorsque vous utilisez une version de développement de WordPress.\n" "\n" -"Si vous pensez que ces erreurs puissent être dues à un problème du côté de WordPress, pourriez-vous nous les signaler ?\n" -"* Ouvrez une discussion sur le forum de support en anglais : https://wordpress.org/support/forum/alphabeta\n" -"* Ou, si rédiger un rapport de bogue ne vous fait pas peur : http://core.trac.wordpress.org/\n" +"Si vous pensez que ces erreurs puissent être dues à un problème du côté de WordPress, pourriez-vous nous les signaler ?\n" +"* Ouvrez une discussion sur le forum de support en anglais : https://wordpress.org/support/forum/alphabeta\n" +"* Ou, si rédiger un rapport de bug ne vous fait pas peur : http://core.trac.wordpress.org/\n" "\n" -"Merci ! -- L’équipe WordPress" +"Merci ! -- L’équipe WordPress" #: wp-admin/includes/class-wp-automatic-updater.php:856 msgid "" @@ -2767,7 +2767,7 @@ msgstr "Envoyé le" #: wp-admin/edit-form-advanced.php:369 msgid "You can enable distraction-free writing mode using the icon to the right. This feature is not available for old browsers or devices with small screens, and requires that the full-height editor be enabled in Screen Options." -msgstr "Vous pouvez activer le mode d’écriture sans distraction en cliquant sur l’icône à droite. Cette fonctionnalité n’est pas disponible pour les anciens navigateurs ou les appareils à petits écrans, et requiert l’activation de l'éditeur plein-écran dans les options de l’écran." +msgstr "Vous pouvez activer le mode d’écriture sans distraction en cliquant sur l’icône à droite. Cette fonctionnalité n’est pas disponible pour les anciens navigateurs ou les appareils à petits écrans, et requiert l’activation de l’éditeur plein-écran dans les options de l’écran." #: wp-admin/includes/plugin-install.php:351 msgid "These suggestions are based on the plugins you and other users have installed." @@ -2805,24 +2805,24 @@ msgid "" "--The WordPress Team\n" "https://wordpress.org/\n" msgstr "" -"Votre nouveau site WordPress a bien été installé à l’adresse :\n" +"Votre nouveau site WordPress a bien été installé à l’adresse :\n" "\n" "%1$s\n" "\n" -"Vous pouvez vous y connecter en tant qu’administrateur avec les informations suivantes :\n" +"Vous pouvez vous y connecter en tant qu’administrateur avec les informations suivantes :\n" "\n" -"Identifiant : %2$s\n" -"Mot de passe : %3$s\n" -"Connectez-vous ici : %4$s\n" +"Identifiant : %2$s\n" +"Mot de passe : %3$s\n" +"Connectez-vous ici : %4$s\n" "\n" -"Nous espérons que vous aimerez votre nouveau site ! Merci à vous !\n" +"Nous espérons que vous aimerez votre nouveau site ! Merci à vous !\n" "\n" "--L’équipe WordPress\n" "https://wordpress.org/\n" #: wp-admin/install.php:128 msgid "Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods, and the @ symbol." -msgstr "Les identifiants ne peuvent utiliser que des caractères alphanumériques, des espaces, des tirets bas (\"_\"), des traits d'union (\"-\"), des points et le symbole @." +msgstr "Les identifiants ne peuvent utiliser que des caractères alphanumériques, des espaces, des tirets bas (\"_\"), des traits d’union (\"-\"), des points et le symbole @." #: wp-admin/options-discussion.php:229 msgid "Mystery Person" @@ -3146,7 +3146,7 @@ msgstr "Les proportions d’une image sont le rapport entre sa largeur et sa #: wp-admin/edit-form-advanced.php:370 msgid "Keyboard users: When you’re working in the visual editor, you can use <kbd>Alt + F10</kbd> to access the toolbar." -msgstr "Utilisateurs du clavier : lorsque vous travaillez dans l’éditeur visuel, vous pouvez utiliser <kbd>Alt + F10</kbd> pour accéder à la barre d'outils." +msgstr "Utilisateurs du clavier : lorsque vous travaillez dans l’éditeur visuel, vous pouvez utiliser <kbd>Alt + F10</kbd> pour accéder à la barre d’outils." #: wp-admin/edit-comments.php:175 msgid "A red bar on the left means the comment is waiting for you to moderate it." @@ -3393,7 +3393,7 @@ msgstr "Cet écran est utilisé pour gérer vos thèmes installés. En dehors de #: wp-admin/widgets.php:395 msgid "To activate a widget drag it to a sidebar or click on it. To deactivate a widget and delete its settings, drag it back." -msgstr "Pour activer un widget, glissez-le dans la barre latérale ou cliquez dessus. Pour désactiver un widget et supprimer ses réglages, enlevez-le de la barre latérale." +msgstr "Pour activer un widget, glissez-le dans la colonne latérale ou cliquez dessus. Pour désactiver un widget et supprimer ses réglages, enlevez-le de la colonne latérale." #. translators: 1: The rating #: wp-admin/includes/template.php:2127 @@ -3478,7 +3478,7 @@ msgid "" msgstr "" "Confirmez-vous la suppression de ce thème ?\n" "\n" -"« Annuler » pour arrêter, « OK » pour supprimer." +"« Annuler » pour arrêter, « OK » pour supprimer." #: wp-admin/index.php:72 msgid "<strong>Quick Draft</strong> — Allows you to create a new post and save it as a draft. Also displays links to the 5 most recent draft posts you've started." @@ -3644,7 +3644,7 @@ msgstr "Pour des questions de sécurité, il est important de garder votre site #: wp-admin/includes/class-wp-automatic-updater.php:682 msgid "Please check out your site now. It's possible that everything is working. If it says you need to update, you should do so:" -msgstr "Veuillez vérifier votre site immédiatement. Il se peut que tout fonctionne. S’il affiche que vous devez faire une mise à jour, vous devriez suivre son conseil :" +msgstr "Veuillez vérifier votre site immédiatement. Il se peut que tout fonctionne. S’il affiche que vous devez faire une mise à jour, vous devriez suivre son conseil :" #: wp-admin/includes/class-wp-automatic-updater.php:680 msgid "This means your site may be offline or broken. Don't panic; this can be fixed." @@ -3677,7 +3677,7 @@ msgstr "Vous n’avez rien de plus à faire." #: wp-admin/includes/class-wp-automatic-updater.php:641 msgid "Howdy! Your site at %1$s has been updated automatically to WordPress %2$s." -msgstr "Salutations ! Votre site à l’adresse %1$s a été automatiquement mis à jour vers WordPress %2$s." +msgstr "Salutations ! Votre site à l’adresse %1$s a été automatiquement mis à jour vers WordPress %2$s." #. translators: 1: Site name. #: wp-admin/includes/class-wp-automatic-updater.php:626 @@ -3687,7 +3687,7 @@ msgstr "[%1$s] URGENT : suite à une mise à jour échouée, votre site est peut #. translators: 1: Site name, 2: WordPress version number. #: wp-admin/includes/class-wp-automatic-updater.php:621 msgid "[%1$s] WordPress %2$s is available. Please update!" -msgstr "[%1$s] WordPress %2$s est disponible. Veuillez faire une mise à jour !" +msgstr "[%1$s] WordPress %2$s est disponible. Veuillez faire une mise à jour !" #. translators: 1: Site name, 2: WordPress version number. #: wp-admin/includes/class-wp-automatic-updater.php:615 @@ -3768,7 +3768,7 @@ msgstr "Les menus peuvent être affichés à des emplacements définis par votre #: wp-admin/nav-menus.php:517 msgid "Your theme does not natively support menus, but you can use them in sidebars by adding a “Custom Menu” widget on the <a href=\"%s\">Widgets</a> screen." -msgstr "Votre thème ne peut pas utiliser les menus nativement, mais vous pouvez les utiliser dans la barre latérale en ajoutant le widget “Menu personnalisé” depuis l’écran <a href=\"%s\">Widgets</a>." +msgstr "Votre thème ne peut pas utiliser les menus nativement, mais vous pouvez les utiliser dans la colonne latérale en ajoutant le widget “Menu personnalisé” depuis l’écran <a href=\"%s\">Widgets</a>." #: wp-admin/install.php:365 msgid "Sorry, that isn’t a valid email address. Email addresses look like <code>username@example.com</code>." @@ -4901,7 +4901,7 @@ msgstr "Version : " #: wp-admin/includes/class-wp-theme-install-list-table.php:342 #: wp-admin/theme-install.php:63 wp-admin/theme-install.php:341 msgid "Collapse Sidebar" -msgstr "Réduire la barre latérale" +msgstr "Réduire la colonne latérale" #: wp-admin/includes/class-wp-plugins-list-table.php:386 msgid "Plugin" @@ -5244,12 +5244,12 @@ msgstr "WordPress › Fichier de configuration" #. translators: %s: install.php #: wp-admin/setup-config.php:64 msgid "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>." -msgstr "Le fichier 'wp-config.php' existe déjà, un niveau au-dessus de votre installation WordPress. Si vous devez mettre à zéro vos éléments de configuration, veuillez d’abord effacer ce fichier. Vous pouvez essayer de <a href='%s'>lancer l’installation</a>." +msgstr "Le fichier 'wp-config.php' existe déjà, un niveau au-dessus de votre installation WordPress. Si vous devez mettre à zéro vos éléments de configuration, veuillez d’abord effacer ce fichier. Vous pouvez essayer de <a href='%s'>lancer l’installation</a>." #. translators: %s: install.php #: wp-admin/setup-config.php:55 msgid "The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>." -msgstr "Le fichier <code>wp-config.php</code> existe déjà. Si vous devez mettre à zéro n’importe quelle valeur de configuration dans ce fichier, veuillez commencer par le supprimer. Vous pouvez <a href='%s'>essayer l’installation maintenant</a>." +msgstr "Le fichier <code>wp-config.php</code> existe déjà. Si vous devez mettre à zéro n’importe quelle valeur de configuration dans ce fichier, veuillez commencer par le supprimer. Vous pouvez <a href='%s'>essayer l’installation maintenant</a>." #: wp-admin/setup-config.php:49 msgid "Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file to your WordPress installation." @@ -5325,7 +5325,7 @@ msgstr "Dans les versions précédentes de WordPress, tous les importateurs éta #: wp-admin/includes/image-edit.php:227 msgid "There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to return to the Image Editor." -msgstr "Les modifications qui n’ont pas été enregistrées seront perdues. « OK » pour continuer, « Annuler » pour revenir à l’éditeur d’images." +msgstr "Les modifications qui n’ont pas été enregistrées seront perdues. « OK » pour continuer, « Annuler » pour revenir à l’éditeur d’images." #: wp-admin/options-writing.php:30 msgid "Post via email settings allow you to send your WordPress install an email with the content of your post. You must set up a secret email account with POP3 access to use this, and any mail received at this address will be posted, so it’s a good idea to keep this address very secret." @@ -5600,11 +5600,11 @@ msgstr "Vous pouvez modifier votre mot de passe, activer les raccourcis clavier, #: wp-admin/widgets.php:100 msgid "This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar." -msgstr "Cette barre latérale n’est plus disponible, et ne s’affiche nulle part sur le site. Vous pouvez en retirer les widgets ci-dessous afin de la supprimer totalement." +msgstr "Cette colonne latérale n’est plus disponible, et ne s’affiche nulle part sur le site. Vous pouvez en retirer les widgets ci-dessous afin de la supprimer totalement." #: wp-admin/widgets.php:97 msgid "Inactive Sidebar (not used)" -msgstr "Barre latérale inactive (inutilisée)" +msgstr "Colonne latérale inactive (inutilisée)" #: wp-admin/widgets.php:68 msgid "Missing Widgets" @@ -5763,9 +5763,9 @@ msgid "" msgstr "" "Bonjour,\n" "\n" -"Vous avez été invité·e à rejoindre « %1$s » sur\n" +"Vous avez été invité·e à rejoindre « %1$s » sur\n" "%2$s en tant que %3$s. \n" -"Veuillez cliquer sur le lien suivant pour confirmer l’invitation :\n" +"Veuillez cliquer sur le lien suivant pour confirmer l’invitation :\n" "%4$s" #: wp-admin/credits.php:124 @@ -6146,12 +6146,12 @@ msgid "" "%%s" msgstr "" "Bonjour,\n" -"Vous avez été invité·e à rejoindre « %1$s » sur\n" +"Vous avez été invité·e à rejoindre « %1$s » sur\n" "%2$s en tant que %3$s. \n" "Si vous ne souhaitez pas rejoindre ce site, veuillez ignorer\n" -"ce message. L’invitation expirera dans quelques jours.\n" +"cet e-mail. L’invitation expirera dans quelques jours.\n" "\n" -"Veuillez cliquer sur le lien suivant pour activer votre compte utilisateur :\n" +"Veuillez cliquer sur le lien suivant pour activer votre compte utilisateur :\n" "%%s" #: wp-admin/includes/theme.php:257 @@ -6600,7 +6600,7 @@ msgstr "Pensez bien à cliquer sur le bouton « Mettre à jour le fich #: wp-admin/widgets.php:56 msgid "The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget." -msgstr "La section « Widgets disponibles » contient tous les widgets que vous pouvez utiliser. Une fois le widget glissé dans la barre latérale, il s’ouvrira pour vous permettre d’en modifier les réglages. Quand vous êtes satisfait de vos réglages, cliquez sur le bouton « Enregistrer » et le widget sera lancé sur votre site. Si vous cliquez sur « Supprimer », le widget sera enlevé du site." +msgstr "La section « Widgets disponibles » contient tous les widgets que vous pouvez utiliser. Une fois le widget glissé dans la colonne latérale, il s’ouvrira pour vous permettre d’en modifier les réglages. Quand vos réglages vous satisfont, cliquez sur le bouton « Enregistrer » et le widget sera lancé sur votre site. Si vous cliquez sur « Supprimer », le widget sera enlevé du site." #: wp-admin/user-new.php:322 msgid "Email or Username" @@ -6780,7 +6780,7 @@ msgstr "Mot de passe FTP" #: wp-admin/widgets.php:70 msgid "Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area." -msgstr "De nombreux thèmes affichent par défaut quelques widgets dans la barre latérale, jusqu’à ce que vous la modifiez vous-mêmes. Ces widgets par défaut ne sont pas automatiquement affichés dans le gestionnaire de barre latérale. Après avoir fait vos propres modifications de widgets, vous pouvez rajouter les widgets par défaut depuis la section « Widgets Disponibles »." +msgstr "De nombreux thèmes affichent par défaut quelques widgets dans la colonne latérale, jusqu’à ce que vous la modifiez vous-mêmes. Ces widgets par défaut ne sont pas automatiquement affichés dans le gestionnaire de colonne latérale. Après avoir fait vos propres modifications de widgets, vous pouvez rajouter les widgets par défaut depuis la section « Widgets Disponibles »." #: wp-admin/options-permalink.php:30 msgid "If you pick an option other than Plain, your general URL path with structure tags (terms surrounded by <code>%</code>) will also appear in the custom structure field and your path can be further modified there." @@ -7009,7 +7009,7 @@ msgstr "<strong>Conseil :</strong> gardez bien en tête que si vous modifie #: wp-admin/widgets.php:55 msgid "Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them." -msgstr "Les widgets sont des conteneurs de contenu indépendants, qui peuvent être placés dans n’importe quelle zone à widgets de votre thème (le plus souvent, la barre latérale). Pour remplir les zones à widgets de votre barre latérale, glissez/déposez les barres de titre dans la zone désirée. Par défaut, seule la première zone de widgets sera ouverte. Pour remplir les autres zones à widgets, cliquez sur leur barre de titre afin de les ouvrir." +msgstr "Les widgets sont des conteneurs de contenu indépendants, qui peuvent être placés dans n’importe quelle zone à widgets de votre thème (le plus souvent, la colonne latérale). Pour remplir les zones à widgets de votre colonne latérale, glissez/déposez les barres de titre dans la zone désirée. Par défaut, seule la première zone de widgets sera ouverte. Pour remplir les autres zones à widgets, cliquez sur leur barre de titre afin de les ouvrir." #: wp-admin/theme-editor.php:28 msgid "Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box." @@ -7326,7 +7326,7 @@ msgstr "Les autres utilisateurs ont été supprimés." #: wp-admin/users.php:464 msgid "You can't remove the current user." -msgstr "Vous ne pouvez pas supprimer l’utilisateur courant." +msgstr "Vous ne pouvez pas supprimer l’utilisateur courant." #: wp-admin/users.php:391 msgid "There are no valid users selected for removal." @@ -8009,8 +8009,8 @@ msgid "" "You are about to delete this theme '%s'\n" " 'Cancel' to stop, 'OK' to delete." msgstr "" -"Vous êtes sur le point de supprimer le thème « %s ».\n" -" « Annuler » pour arrêter, « OK » pour supprimer." +"Vous êtes sur le point de supprimer le thème « %s ».\n" +"« Annuler » pour arrêter, « OK » pour supprimer." #: wp-admin/includes/theme.php:656 wp-admin/themes.php:451 msgid "Current Theme" @@ -8819,7 +8819,7 @@ msgstr "bonjour-tout-le-monde" #: wp-admin/includes/upgrade.php:183 msgid "Hello world!" -msgstr "Bonjour tout le monde !" +msgstr "Bonjour tout le monde !" #: wp-admin/includes/upgrade.php:174 msgid "Welcome to WordPress. This is your first post. Edit or delete it, then start writing!" @@ -9502,8 +9502,8 @@ msgid "" "You are about to delete this link '%s'\n" " 'Cancel' to stop, 'OK' to delete." msgstr "" -"Vous êtes sur le point de supprimer le lien « %s ».\n" -"« Annuler » pour arrêter, « OK » pour supprimer." +"Vous êtes sur le point de supprimer le lien « %s ».\n" +"« Annuler » pour arrêter, « OK » pour supprimer." #: wp-admin/includes/meta-boxes.php:908 msgid "Keep this link private" diff --git a/wp-content/languages/admin-it_IT.mo b/wp-content/languages/admin-it_IT.mo index 6c27137a8a9131c2b90f72e573f893d13379ba16..202e2698ae60a17e0aef069fccafc06d36217a13 100644 Binary files a/wp-content/languages/admin-it_IT.mo and b/wp-content/languages/admin-it_IT.mo differ diff --git a/wp-content/languages/admin-it_IT.po b/wp-content/languages/admin-it_IT.po index ad1d693baf7b7236c05a6388601a5514677ac429..ff035e3e00d0d5a6b762b2df9f63cfd6b8eb03b2 100644 --- a/wp-content/languages/admin-it_IT.po +++ b/wp-content/languages/admin-it_IT.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-04 08:40:32+0000\n" +"PO-Revision-Date: 2017-09-07 12:08:05+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -2811,7 +2811,7 @@ msgstr "" "\n" "Nome utente: %2$s\n" "Password: %3$s\n" -"Effettua il login qui %4$s\n" +"Accedi qui %4$s\n" "\n" "Ti auguriamo buon divertimento con il tuo nuovo sito. Grazie!\n" "\n" @@ -4488,7 +4488,7 @@ msgstr "$image deve essere un oggetto WP_Image_Editor" #: wp-admin/setup-config.php:371 msgid "After you’ve done that, click “Run the install.”" -msgstr "Una volta che hai teminato fai clic su “Eseguire l’installazione.”" +msgstr "Una volta che hai teminato fai clic su “Esegui l’installazione.”" #: wp-admin/setup-config.php:186 msgid "Below you should enter your database connection details. If you’re not sure about these, contact your host." @@ -5120,11 +5120,11 @@ msgstr "Hai cercato di accedere alla bacheca \"%1$s\", ma al momento non disponi #: wp-admin/includes/ms.php:690 msgid "If you reached this screen by accident and meant to visit one of your own sites, here are some shortcuts to help you find your way." -msgstr "Se si è arrivati a questa schermata per caso e lo scopo era di visitare uno dei propri siti, qui ci sono alcune scorciatoie per trovare la strada corretta." +msgstr "Se sei arrivato a questa schermata per caso e vuoi andare in uno dei tuoi siti, qui ci sono alcune scorciatoie per trovare la strada corretta." #: wp-admin/includes/ms.php:692 msgid "Your Sites" -msgstr "I vostri siti" +msgstr "I tuoi siti" #: wp-admin/includes/ms.php:698 msgid "Visit Dashboard" @@ -5180,7 +5180,7 @@ msgstr "Si deve essere membri di almeno un sito per poter utilizzare questa pagi #: wp-admin/setup-config.php:372 wp-admin/setup-config.php:404 msgid "Run the install" -msgstr "Eseguire l’installazione" +msgstr "Esegui l’installazione" #: wp-admin/setup-config.php:214 msgid "If you want to run multiple WordPress installations in a single database, change this." @@ -7554,7 +7554,7 @@ msgstr "Utente già esistente. La password è stata ereditata." #: wp-admin/includes/upgrade.php:98 msgid "The password you chose during the install." -msgstr "La password che hai scelto durante l’installazione." +msgstr "La password che hai scelto durante l'installazione." #: wp-admin/plugins.php:131 wp-admin/update-core.php:241 #: wp-admin/update-core.php:328 wp-admin/update-core.php:681 diff --git a/wp-content/languages/admin-network-da_DK.mo b/wp-content/languages/admin-network-da_DK.mo index 6637d51c903bb7ea07733b87d785d8ea7e2c5c4e..2f4bc8dd397131c23e03068779302eec94e32c46 100644 Binary files a/wp-content/languages/admin-network-da_DK.mo and b/wp-content/languages/admin-network-da_DK.mo differ diff --git a/wp-content/languages/admin-network-da_DK.po b/wp-content/languages/admin-network-da_DK.po index a78b04235b2bc60a49769c68f42d915d0ebed683..9be19f379dad58880bb1070d9966ba4781ca921d 100644 --- a/wp-content/languages/admin-network-da_DK.po +++ b/wp-content/languages/admin-network-da_DK.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration - Network Admin package. msgid "" msgstr "" -"PO-Revision-Date: 2017-06-19 12:49:03+0000\n" +"PO-Revision-Date: 2017-10-03 23:17:11+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -39,6 +39,10 @@ msgctxt "theme" msgid "Delete %s" msgstr "Slet %s" +#: wp-admin/network/sites.php:245 +msgid "Sorry, you are not allowed to delete that site." +msgstr "Du har desværre ikke tilladelse til at slette det websted." + #: wp-admin/network/themes.php:90 msgid "Sorry, you are not allowed to delete themes for this site." msgstr "Du har desværre ikke tilladelse til at slette temaer på dette websted." @@ -47,26 +51,24 @@ msgstr "Du har desværre ikke tilladelse til at slette temaer på dette websted. msgid "Sorry, you are not allowed to manage network themes." msgstr "Du har desværre ikke tilladelse til at håndtere netværkstemaer." -#: wp-admin/network/sites.php:245 -msgid "Sorry, you are not allowed to delete that site." -msgstr "Du har desværre ikke tilladelse til at slette det websted." - -#: wp-admin/network/site-themes.php:14 -msgid "Sorry, you are not allowed to manage themes for this site." -msgstr "Du har desværre ikke tilladelse til at håndtere temaer på dette websted." +#: wp-admin/network/site-info.php:14 wp-admin/network/site-settings.php:14 +#: wp-admin/network/site-users.php:14 +msgid "Sorry, you are not allowed to edit this site." +msgstr "Du har desværre ikke tilladelse til at redigere dette websted." #: wp-admin/network/site-new.php:17 msgid "Sorry, you are not allowed to add sites to this network." msgstr "Du har desværre ikke tilladelse til at tilføje websteder til dette netværk." -#: wp-admin/network/site-info.php:14 wp-admin/network/site-settings.php:14 -#: wp-admin/network/site-users.php:14 -msgid "Sorry, you are not allowed to edit this site." -msgstr "Du har desværre ikke tilladelse til at redigere dette websted." +#: wp-admin/network/site-themes.php:14 +msgid "Sorry, you are not allowed to manage themes for this site." +msgstr "Du har desværre ikke tilladelse til at håndtere temaer på dette websted." -#: wp-admin/network/settings.php:270 -msgid "The email address of the first comment author on a new site." -msgstr "E-mailadressen på den første, der har kommenteret på et nyt websted." +#. translators: 1: wp-config.php 2: location of wp-config file, 3: translated +#. version of "That's all, stop editing! Happy blogging." +#: wp-admin/includes/network.php:419 +msgid "Add the following to your %1$s file in %2$s <strong>above</strong> the line reading %3$s:" +msgstr "Tilføj følgende til filen %1$s i %2$s <strong>ovenover</strong> linjen med %3$s:" #: wp-admin/network/settings.php:266 msgid "First Comment Email" @@ -80,11 +82,9 @@ msgstr "E-mailadresse på første kommentar" msgid "That’s all, stop editing! Happy blogging." msgstr "Det var alt, stop med at redigere! God blogging." -#. translators: 1: wp-config.php 2: location of wp-config file, 3: translated -#. version of "That's all, stop editing! Happy blogging." -#: wp-admin/includes/network.php:419 -msgid "Add the following to your %1$s file in %2$s <strong>above</strong> the line reading %3$s:" -msgstr "Tilføj følgende til filen %1$s i %2$s <strong>ovenover</strong> linjen med %3$s:" +#: wp-admin/network/settings.php:270 +msgid "The email address of the first comment author on a new site." +msgstr "E-mailadressen på den første, der har kommenteret på et nyt websted." #. translators: 1: theme name, 2: theme author #: wp-admin/network/themes.php:138 @@ -97,24 +97,34 @@ msgstr "%1$s af %2$s" msgid "User added. <a href=\"%s\">Edit user</a>" msgstr "Bruger tilføjet. <a href=\"%s\">Rediger bruger</a>" -#: wp-admin/network/site-new.php:206 -msgid "Only lowercase letters (a-z), numbers, and hyphens are allowed." -msgstr "Kun små bogstaver (a-z), tal og bindestreger er tilladt." +#. translators: 1: wp-config.php +#: wp-admin/includes/network.php:464 +msgid "This unique authentication key is also missing from your %s file." +msgstr "Den unikke bekræftelsesnøgle mangler også fra din %s-fil." + +#. translators: 1: wp-config.php +#: wp-admin/includes/network.php:470 +msgid "These unique authentication keys are also missing from your %s file." +msgstr "Disse unikke bekræftelsesnøgler mangler også fra din %s-fil." #: wp-admin/network/site-new.php:156 msgctxt "email \"From\" field" msgid "Site Admin" msgstr "Webstedsadministrator" -#. translators: 1: wp-config.php -#: wp-admin/includes/network.php:470 -msgid "These unique authentication keys are also missing from your %s file." -msgstr "Disse unikke bekræftelsesnøgler mangler også fra din %s-fil." +#: wp-admin/network/site-new.php:206 +msgid "Only lowercase letters (a-z), numbers, and hyphens are allowed." +msgstr "Kun små bogstaver (a-z), tal og bindestreger er tilladt." -#. translators: 1: wp-config.php -#: wp-admin/includes/network.php:464 -msgid "This unique authentication key is also missing from your %s file." -msgstr "Den unikke bekræftelsesnøgle mangler også fra din %s-fil." +#. translators: 1: localhost 2: localhost.localdomain +#: wp-admin/includes/network.php:264 +msgid "Because you are using %1$s, the sites in your WordPress network must use sub-directories. Consider using %2$s if you wish to use sub-domains." +msgstr "Fordi du bruger %1$s, skal webstederne i dit WordPress-netværk bruge undermapper. Overvej at bruge %2$s, hvis du ønsker at bruge underdomæner." + +#. translators: %s: host name +#: wp-admin/includes/network.php:248 wp-admin/includes/network.php:297 +msgid "The internet address of your network will be %s." +msgstr "Internetadressen for dit netværk vil være %s." #. translators: 1: wp-config.php #: wp-admin/includes/network.php:408 @@ -127,16 +137,6 @@ msgstr "Vi anbefaler, at du sikkerhedskopierer din eksisterende fil, %s." msgid "We recommend you back up your existing %1$s and %2$s files." msgstr "Vi anbefaler, at du sikkerhedskopierer dine eksisterende filer, %1$s og %2$s." -#. translators: 1: localhost 2: localhost.localdomain -#: wp-admin/includes/network.php:264 -msgid "Because you are using %1$s, the sites in your WordPress network must use sub-directories. Consider using %2$s if you wish to use sub-domains." -msgstr "Fordi du bruger %1$s, skal webstederne i dit WordPress-netværk bruge undermapper. Overvej at bruge %2$s, hvis du ønsker at bruge underdomæner." - -#. translators: %s: host name -#: wp-admin/includes/network.php:248 wp-admin/includes/network.php:297 -msgid "The internet address of your network will be %s." -msgstr "Internetadressen for dit netværk vil være %s." - #. translators: 1: site url 2: host name 3. www #: wp-admin/includes/network.php:237 msgid "We recommend you change your siteurl to %1$s before enabling the network feature. It will still be possible to visit your site using the %3$s prefix with an address like %2$s but any links will not have the %3$s prefix." @@ -171,97 +171,29 @@ msgstr "Sørg venligst for at Apache %s modulet er installeret, da det skal brug msgid "You cannot use port numbers such as %s." msgstr "Du kan ikke bruge portnumre såsom %s." -#: wp-admin/includes/class-wp-ms-users-list-table.php:172 -msgctxt "user" -msgid "Registered" -msgstr "Oprettet" - -#: wp-admin/includes/class-wp-ms-users-list-table.php:142 -msgid "Super Admin <span class=\"count\">(%s)</span>" -msgid_plural "Super Admins <span class=\"count\">(%s)</span>" -msgstr[0] "Superadministrator <span class=\"count\">(%s)</span>" -msgstr[1] "Superadministratorer <span class=\"count\">(%s)</span>" - -#: wp-admin/includes/class-wp-ms-users-list-table.php:114 -msgctxt "user" -msgid "Not Spam" -msgstr "Ikke spam" - -#: wp-admin/includes/class-wp-ms-users-list-table.php:113 -msgctxt "user" -msgid "Mark as Spam" -msgstr "Marker som spam" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:573 -msgid "Visit Theme Site" -msgstr "Besøg temaets websted" - -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:568 -msgid "Visit %s homepage" -msgstr "Besøg startsiden for %s" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:541 -msgid "Broken Theme:" -msgstr "Ødelagt tema:" - -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:457 -msgid "Open %s in the Theme Editor" -msgstr "Åbn %s i tema-editoren" - -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:441 -msgid "Network Disable %s" -msgstr "Deaktiver %s på netværk" - -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:438 -msgid "Disable %s" -msgstr "Deaktiver %s" - -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:419 -msgid "Network Enable %s" -msgstr "Aktiver %s på netværk" - -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:416 -msgid "Enable %s" -msgstr "Aktiver %s" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:335 -#: wp-admin/includes/class-wp-ms-themes-list-table.php:447 -msgid "Network Disable" -msgstr "Deaktiver netværk" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:335 -#: wp-admin/includes/class-wp-ms-themes-list-table.php:447 -msgid "Disable" -msgstr "Deaktiver" - #: wp-admin/includes/class-wp-ms-themes-list-table.php:333 #: wp-admin/includes/class-wp-ms-themes-list-table.php:425 msgid "Enable" msgstr "Aktiver" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:302 -msgid "Broken <span class=\"count\">(%s)</span>" -msgid_plural "Broken <span class=\"count\">(%s)</span>" -msgstr[0] "Ødelagt <span class=\"count\">(%s)</span>" -msgstr[1] "Ødelagte <span class=\"count\">(%s)</span>" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:43 +#: wp-admin/network/site-info.php:189 +msgid "Deleted" +msgstr "Slettet" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:296 -msgid "Disabled <span class=\"count\">(%s)</span>" -msgid_plural "Disabled <span class=\"count\">(%s)</span>" -msgstr[0] "Deaktiveret <span class=\"count\">(%s)</span>" -msgstr[1] "Deaktiveret <span class=\"count\">(%s)</span>" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:365 +msgid "Never" +msgstr "Aldrig" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:293 -msgid "Enabled <span class=\"count\">(%s)</span>" -msgid_plural "Enabled <span class=\"count\">(%s)</span>" -msgstr[0] "Aktiver <span class=\"count\">(%s)</span>" -msgstr[1] "Aktiver <span class=\"count\">(%s)</span>" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:41 +#: wp-admin/network/site-info.php:187 +msgid "Archived" +msgstr "Arkiveret" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:44 +#: wp-admin/network/site-info.php:191 +msgid "Mature" +msgstr "Voksen" #: wp-admin/includes/class-wp-ms-themes-list-table.php:290 msgctxt "themes" @@ -270,35 +202,27 @@ msgid_plural "All <span class=\"count\">(%s)</span>" msgstr[0] "Alle <span class=\"count\">(%s)</span>" msgstr[1] "Alle <span class=\"count\">(%s)</span>" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:247 -msgid "Theme" -msgstr "Tema" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:236 -msgid "You do not appear to have any themes available at this time." -msgstr "Du ser ikke ud til at have nogen temaer tilgængelige på nuværende tidspunkt." - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:234 -msgid "No themes found." -msgstr "Ingen temaer fundet." +#: wp-admin/includes/class-wp-ms-sites-list-table.php:204 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:542 +msgctxt "site" +msgid "Not Spam" +msgstr "Ikke spam" #: wp-admin/includes/class-wp-ms-sites-list-table.php:538 msgctxt "verb; site" msgid "Archive" msgstr "Arkiv" -#: wp-admin/includes/class-wp-ms-sites-list-table.php:536 -msgid "Unarchive" -msgstr "Fjern fra arkiv" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:365 -msgid "Never" -msgstr "Aldrig" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:42 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:544 +#: wp-admin/network/site-info.php:188 +msgctxt "site" +msgid "Spam" +msgstr "Spam" -#. translators: 1: site name, 2: site tagline. -#: wp-admin/includes/class-wp-ms-sites-list-table.php:337 -msgid "%1$s – %2$s" -msgstr "%1$s – %2$s" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:192 +msgid "No sites found." +msgstr "Ingen websteder fundet." #: wp-admin/includes/class-wp-ms-sites-list-table.php:231 #: wp-admin/network/site-info.php:177 @@ -306,47 +230,123 @@ msgctxt "site" msgid "Registered" msgstr "Oprettet" +#: wp-admin/includes/class-wp-ms-users-list-table.php:172 +msgctxt "user" +msgid "Registered" +msgstr "Oprettet" + #: wp-admin/includes/class-wp-ms-sites-list-table.php:230 #: wp-admin/network/site-info.php:181 msgid "Last Updated" msgstr "Sidst opdateret" -#: wp-admin/includes/class-wp-ms-sites-list-table.php:204 -#: wp-admin/includes/class-wp-ms-sites-list-table.php:542 -msgctxt "site" -msgid "Not Spam" -msgstr "Ikke spam" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:536 +msgid "Unarchive" +msgstr "Fjern fra arkiv" #: wp-admin/includes/class-wp-ms-sites-list-table.php:203 msgctxt "site" msgid "Mark as Spam" msgstr "Marker som spam" -#: wp-admin/includes/class-wp-ms-sites-list-table.php:192 -msgid "No sites found." -msgstr "Ingen websteder fundet." +#: wp-admin/includes/class-wp-ms-themes-list-table.php:541 +msgid "Broken Theme:" +msgstr "Ødelagt tema:" -#: wp-admin/includes/class-wp-ms-sites-list-table.php:44 -#: wp-admin/network/site-info.php:191 -msgid "Mature" -msgstr "Voksen" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:247 +msgid "Theme" +msgstr "Tema" -#: wp-admin/includes/class-wp-ms-sites-list-table.php:43 -#: wp-admin/network/site-info.php:189 -msgid "Deleted" -msgstr "Slettet" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:302 +msgid "Broken <span class=\"count\">(%s)</span>" +msgid_plural "Broken <span class=\"count\">(%s)</span>" +msgstr[0] "Ødelagt <span class=\"count\">(%s)</span>" +msgstr[1] "Ødelagte <span class=\"count\">(%s)</span>" -#: wp-admin/includes/class-wp-ms-sites-list-table.php:42 -#: wp-admin/includes/class-wp-ms-sites-list-table.php:544 -#: wp-admin/network/site-info.php:188 -msgctxt "site" -msgid "Spam" -msgstr "Spam" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:234 +msgid "No themes found." +msgstr "Ingen temaer fundet." -#: wp-admin/includes/class-wp-ms-sites-list-table.php:41 -#: wp-admin/network/site-info.php:187 -msgid "Archived" -msgstr "Arkiveret" +#: wp-admin/includes/class-wp-ms-users-list-table.php:114 +msgctxt "user" +msgid "Not Spam" +msgstr "Ikke spam" + +#: wp-admin/includes/class-wp-ms-users-list-table.php:113 +msgctxt "user" +msgid "Mark as Spam" +msgstr "Marker som spam" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:447 +msgid "Disable" +msgstr "Deaktiver" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:293 +msgid "Enabled <span class=\"count\">(%s)</span>" +msgid_plural "Enabled <span class=\"count\">(%s)</span>" +msgstr[0] "Aktiver <span class=\"count\">(%s)</span>" +msgstr[1] "Aktiver <span class=\"count\">(%s)</span>" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:236 +msgid "You do not appear to have any themes available at this time." +msgstr "Du ser ikke ud til at have nogen temaer tilgængelige på nuværende tidspunkt." + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:296 +msgid "Disabled <span class=\"count\">(%s)</span>" +msgid_plural "Disabled <span class=\"count\">(%s)</span>" +msgstr[0] "Deaktiveret <span class=\"count\">(%s)</span>" +msgstr[1] "Deaktiveret <span class=\"count\">(%s)</span>" + +#: wp-admin/includes/class-wp-ms-users-list-table.php:142 +msgid "Super Admin <span class=\"count\">(%s)</span>" +msgid_plural "Super Admins <span class=\"count\">(%s)</span>" +msgstr[0] "Superadministrator <span class=\"count\">(%s)</span>" +msgstr[1] "Superadministratorer <span class=\"count\">(%s)</span>" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:573 +msgid "Visit Theme Site" +msgstr "Besøg temaets websted" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:447 +msgid "Network Disable" +msgstr "Deaktiver netværk" + +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:416 +msgid "Enable %s" +msgstr "Aktiver %s" + +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:419 +msgid "Network Enable %s" +msgstr "Aktiver %s på netværk" + +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:438 +msgid "Disable %s" +msgstr "Deaktiver %s" + +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:441 +msgid "Network Disable %s" +msgstr "Deaktiver %s på netværk" + +#. translators: 1: site name, 2: site tagline. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:337 +msgid "%1$s – %2$s" +msgstr "%1$s – %2$s" + +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:457 +msgid "Open %s in the Theme Editor" +msgstr "Åbn %s i tema-editoren" + +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:568 +msgid "Visit %s homepage" +msgstr "Besøg startsiden for %s" #: wp-admin/network/site-users.php:339 wp-admin/network/user-new.php:117 msgid "A password reset link will be sent to the user via email." @@ -357,15 +357,6 @@ msgstr "Et link til nulstilling af adgangskoden vil blive sendt til brugeren via msgid "If registration is disabled, please set %1$s in %2$s to a URL you will redirect visitors to if they visit a non-existent site." msgstr "Hvis registrering er deaktiveret, så sæt venligst %1$s i %2$s til en URL, som du vil viderestille besøgende til, hvis de besøger et ikke eksisterende websted." -#. translators: 1: WP_ALLOW_MULTISITE 2: wp-config.php -#: wp-admin/network.php:44 -msgid "You must define the %1$s constant as true in your %2$s file to allow creation of a Network." -msgstr "Du skal definere konstanten %1$s til true i din %2$s-fil for at tillade oprettelse af et netværk." - -#: wp-admin/network/themes.php:235 -msgid "Themes list navigation" -msgstr "Navigation for temaliste" - #: wp-admin/network/sites.php:48 msgid "Sites list" msgstr "Webstedsliste" @@ -382,9 +373,14 @@ msgstr "Brugerliste til websted" msgid "Site users list navigation" msgstr "Navigation for brugerliste til websted" -#: wp-admin/network/site-users.php:37 -msgid "Filter site users list" -msgstr "Filtrer brugerliste til websted" +#: wp-admin/network/themes.php:235 +msgid "Themes list navigation" +msgstr "Navigation for temaliste" + +#. translators: 1: WP_ALLOW_MULTISITE 2: wp-config.php +#: wp-admin/network.php:44 +msgid "You must define the %1$s constant as true in your %2$s file to allow creation of a Network." +msgstr "Du skal definere konstanten %1$s til true i din %2$s-fil for at tillade oprettelse af et netværk." #: wp-admin/network/site-themes.php:36 msgid "Site themes list" @@ -394,14 +390,18 @@ msgstr "Temaliste til websted" msgid "Site themes list navigation" msgstr "Navigation for temaliste til websted" -#: wp-admin/network/site-themes.php:34 -msgid "Filter site themes list" -msgstr "Filtrer temaliste til websted" - #: wp-admin/network/site-new.php:111 msgid "The domain or path entered conflicts with an existing username." msgstr "Det indtastede domæne eller sti er i konflikt med et eksisterende brugernavn." +#: wp-admin/network/site-users.php:37 +msgid "Filter site users list" +msgstr "Filtrer brugerliste til websted" + +#: wp-admin/network/site-themes.php:34 +msgid "Filter site themes list" +msgstr "Filtrer temaliste til websted" + #: wp-admin/network/sites.php:75 msgid "The requested action is not valid." msgstr "Den anmodede handling er ikke gyldig." @@ -486,17 +486,11 @@ msgstr "<a href=\"https://codex.wordpress.org/Network_Admin_Settings_Screen\">Do msgid "Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s" msgstr "Advarsel! Problem under opdatering af %1$s. Din server er muligvis ikke i stand til at oprette forbindelse til websteder, der bruger det. Fejlmeddelelse: %2$s" -#: wp-admin/network/themes.php:131 -msgid "You are about to remove the following themes:" -msgstr "Du er i gang med at fjerne følgende temaer:" - -#: wp-admin/network/themes.php:130 -msgid "These themes may be active on other sites in the network." -msgstr "Disse temaer kan være aktive på andre websteder i netværket." - -#: wp-admin/network/themes.php:146 -msgid "Are you sure you wish to delete this theme?" -msgstr "Er du sikker på, du ønsker at slette dette tema?" +#: wp-admin/network/site-themes.php:189 wp-admin/network/themes.php:271 +msgid "%s theme enabled." +msgid_plural "%s themes enabled." +msgstr[0] "%s tema aktiveret." +msgstr[1] "%s temaer aktiveret." #: wp-admin/network/site-themes.php:197 wp-admin/network/themes.php:279 msgid "%s theme disabled." @@ -504,17 +498,17 @@ msgid_plural "%s themes disabled." msgstr[0] "%s tema deaktiveret." msgstr[1] "%s temaer deaktiveret." -#: wp-admin/network/site-themes.php:189 wp-admin/network/themes.php:271 -msgid "%s theme enabled." -msgid_plural "%s themes enabled." -msgstr[0] "%s tema aktiveret." -msgstr[1] "%s temaer aktiveret." +#: wp-admin/network/themes.php:146 +msgid "Are you sure you wish to delete this theme?" +msgstr "Er du sikker på, du ønsker at slette dette tema?" -#: wp-admin/network/themes.php:287 -msgid "%s theme deleted." -msgid_plural "%s themes deleted." -msgstr[0] "%s tema slettet." -msgstr[1] "%s temaer slettet." +#: wp-admin/network/themes.php:130 +msgid "These themes may be active on other sites in the network." +msgstr "Disse temaer kan være aktive på andre websteder i netværket." + +#: wp-admin/network/themes.php:131 +msgid "You are about to remove the following themes:" +msgstr "Du er i gang med at fjerne følgende temaer:" #: wp-admin/network/themes.php:163 msgid "Yes, delete these themes" @@ -524,26 +518,32 @@ msgstr "Ja, slet disse temaer" msgid "Delete Themes" msgstr "Slet temaer" -#: wp-admin/network/settings.php:132 -msgid "New registrations settings" -msgstr "Indstillinger for nye registreringer" +#: wp-admin/network/themes.php:287 +msgid "%s theme deleted." +msgid_plural "%s themes deleted." +msgstr[0] "%s tema slettet." +msgstr[1] "%s temaer slettet." -#: wp-admin/network/settings.php:317 -msgid "Size in kilobytes" -msgstr "Størrelse i kilobytes" +#: wp-admin/network/site-info.php:197 +msgid "Set site attributes" +msgstr "Indstil webstedsattributter" #: wp-admin/network/settings.php:301 msgid "Allowed file types. Separate types by spaces." msgstr "Tilladte filtyper. Separer typer med mellemrum." -#: wp-admin/network/site-info.php:197 -msgid "Set site attributes" -msgstr "Indstil webstedsattributter" +#: wp-admin/network/settings.php:132 +msgid "New registrations settings" +msgstr "Indstillinger for nye registreringer" #: wp-admin/network/settings.php:380 msgid "Enable menus" msgstr "Aktiver menuer" +#: wp-admin/network/settings.php:317 +msgid "Size in kilobytes" +msgstr "Størrelse i kilobytes" + #. translators: 1: a filename like .htaccess. 2: a file path. #: wp-admin/includes/network.php:539 wp-admin/includes/network.php:579 msgid "Add the following to your %1$s file in %2$s, <strong>replacing</strong> other WordPress rules:" @@ -577,26 +577,14 @@ msgstr "For at tilføje er nyt websted, <strong>klik på Opret nyt websted</stro msgid "To add a new user, <strong>click Create a New User</strong>." msgstr "For at tilføje en ny bruger, <strong>klik på Opret ny bruger</strong>." -#: wp-admin/network/index.php:44 -msgid "Quick Tasks" -msgstr "Lynopgaver" - -#: wp-admin/network/index.php:38 -msgid "To search for a user or site, use the search boxes." -msgstr "For at søge efter en bruger eller et websted, så brug søgefelterne." - -#: wp-admin/network/index.php:35 -msgid "The Right Now widget on this screen provides current user and site counts on your network." -msgstr "Din Lige nu widget i dette skærmbillede giver nuværende bruger- og webstedopgørelser på dit netværk." - -#: wp-admin/network/index.php:27 -msgid "Modify global network settings" -msgstr "Rediger overordnede netværksindstillinger" - #: wp-admin/network/index.php:26 msgid "Update your network" msgstr "Opdater dit netværk" +#: wp-admin/network/index.php:23 +msgid "From here you can:" +msgstr "Herfra kan du:" + #: wp-admin/network/index.php:25 msgid "Install and activate themes or plugins" msgstr "Installer og aktiver temaer eller plugins" @@ -605,14 +593,31 @@ msgstr "Installer og aktiver temaer eller plugins" msgid "Add and manage sites or users" msgstr "Tilføj og administrer websteder eller brugere" -#: wp-admin/network/index.php:23 -msgid "From here you can:" -msgstr "Herfra kan du:" +#: wp-admin/network/index.php:27 +msgid "Modify global network settings" +msgstr "Rediger overordnede netværksindstillinger" + +#: wp-admin/network/index.php:35 +msgid "The Right Now widget on this screen provides current user and site counts on your network." +msgstr "Din Lige nu widget i dette skærmbillede giver nuværende bruger- og webstedopgørelser på dit netværk." + +#: wp-admin/network/index.php:38 +msgid "To search for a user or site, use the search boxes." +msgstr "For at søge efter en bruger eller et websted, så brug søgefelterne." + +#: wp-admin/network/index.php:44 +msgid "Quick Tasks" +msgstr "Lynopgaver" #: wp-admin/network/index.php:22 msgid "Welcome to your Network Admin. This area of the Administration Screens is used for managing all aspects of your Multisite Network." msgstr "Velkommen til din netværksadministration. Dette område af administrationen bruges til at håndtere alle dele af dit Multisite-netværk." +#: wp-admin/network/menu.php:22 wp-admin/network/upgrade.php:15 +#: wp-admin/network/upgrade.php:40 wp-admin/network/upgrade.php:131 +msgid "Upgrade Network" +msgstr "Opgrader netværk" + #: wp-admin/network/upgrade.php:127 msgid "WordPress has been updated! Before we send you on your way, we need to individually upgrade the sites in your network." msgstr "WordPress er blevet opdateret! Før vi sender dig af sted, så skal vi opdatere alle webstederne i dit netværk individuelt." @@ -621,11 +626,6 @@ msgstr "WordPress er blevet opdateret! Før vi sender dig af sted, så skal vi o msgid "Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Upgrade Network button will step through each site in the network, five at a time, and make sure any database updates are applied." msgstr "Brug kun dette skærmbillede efter du har opdateret til den seneste version af WordPress gennem Opdateringer/Tilgængelige opdateringer (via Netværksadministrationens navigationsmenu eller værktøjslinjen). Hvis du klikker på Opgrader netværk-knappen vil du trinvist komme gennem hvert websted i netværket, fem ad gangen, og sikre at databaseopdateringerne gennemføres." -#: wp-admin/network/menu.php:22 wp-admin/network/upgrade.php:15 -#: wp-admin/network/upgrade.php:40 wp-admin/network/upgrade.php:131 -msgid "Upgrade Network" -msgstr "Opgrader netværk" - #. translators: 1: user login, 2: site url, 3: site name/title #: wp-admin/network/site-new.php:146 msgid "" @@ -639,108 +639,70 @@ msgstr "" "Adresse: %2$s\n" "Navn: %3$s" +#: wp-admin/network.php:62 +msgid "Add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules)." +msgstr "Tilføj de viste linjer kode i din wp-config.php (lige før <code>/*...stop editing...*/</code>) og <code>.htaccess</code> (erstat alle eksisterende WordPress-regler)." + #: wp-admin/includes/network.php:229 wp-admin/includes/network.php:545 #: wp-admin/includes/network.php:585 msgid "Subdirectory networks may not be fully compatible with custom wp-content directories." msgstr "Undermappe netværk er måske ikke helt kompatible med brugertilpassede wp-content-mapper." -#: wp-admin/network.php:62 -msgid "Add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules)." -msgstr "Tilføj de viste linjer kode i din wp-config.php (lige før <code>/*...stop editing...*/</code>) og <code>.htaccess</code> (erstat alle eksisterende WordPress-regler)." +#: wp-admin/network/site-users.php:256 +msgid "User created." +msgstr "Bruger oprettet." -#: wp-admin/network/settings.php:35 -msgid "Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges." -msgstr "Superadministratorer kan ikke længere tilføjes i skærmbilledet Indstillinger. Du skal gå til listen over eksisterende brugere under Netværkets administrator > Brugere og klikke på et brugernavn eller rediger-linket under navnet. Det fører til en rediger bruger side, hvor du kan sætte flueben i en boks, der giver superadministrator rettigheder." +#: wp-admin/network/site-users.php:253 +msgid "Select a user to remove." +msgstr "Vælg bruger som skal slettes." -#: wp-admin/network/menu.php:19 -msgid "Updates" -msgstr "Opdateringer" +#: wp-admin/network/site-users.php:247 +msgid "Select a user to change role." +msgstr "Vælg en bruger for at ændre rolle." -#: wp-admin/network/site-new.php:24 -msgid "This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings." -msgstr "Dette skærmbillede giver Superadministratorer mulighed for at tilføje nye websteder til netværket. Dette er ikke påvirket af registreringsindstillingerne." +#: wp-admin/network/user-new.php:49 +msgid "Cannot add user." +msgstr "Kan ikke tilføje bruger." -#: wp-admin/network/sites.php:31 -msgid "An Edit link to a separate Edit Site screen." -msgstr "Et Rediger link til en separat Rediger websted skærmbillede." - -#: wp-admin/network/themes.php:224 -msgid "Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes." -msgstr "Temaer kan aktiveres websted for websted af netværksadministrator i Rediger websted-visningen(som har et Temaer-faneblad); kom dertil via redigerlinket på Alle websteder-visningen. Kun netværksadministratorer kan installere eller redigere temaer." - -#: wp-admin/network/sites.php:34 -msgid "Delete which is a permanent action after the confirmation screens." -msgstr "Slet hvilket er en permanent handling efter bekræftelsesskærmene." - -#: wp-admin/network/sites.php:37 -msgid "Clicking on bold headings can re-sort this table." -msgstr "Ved at klikke på overskrifterne med fed kan du sortere i tabellen." - -#: wp-admin/network/menu.php:41 wp-admin/network/themes.php:253 -msgctxt "theme" -msgid "Add New" -msgstr "Tilføj nyt" - -#: wp-admin/network/sites.php:28 -msgid "Add New takes you to the Add New Site screen. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page." -msgstr "Tilføj ny fører dig til et Tilføj nyt websted-skærmbillede. Du kan søge efter et websted på navn, ID-nummer eller IP-adresse. Skærmindstillinger giver mulighed for at vælge, hvor mange websteder der vises på en side." - -#. translators: 1: dashboard url, 2: network admin edit url -#: wp-admin/network/site-new.php:173 -msgid "Site added. <a href=\"%1$s\">Visit Dashboard</a> or <a href=\"%2$s\">Edit Site</a>" -msgstr "Websted tilføjet. <a href=\"%1$s\">Gå til Kontrolpanel</a> eller <a href=\"%2$s\">Rediger websted</a>" - -#: wp-admin/network/menu.php:28 -msgid "All Sites" -msgstr "Alle websteder" - -#: wp-admin/network/menu.php:36 -msgid "Themes %s" -msgstr "Temaer %s" - -#: wp-admin/network/menu.php:40 -msgid "Installed Themes" -msgstr "Installerede temaer" +#: wp-admin/network/site-users.php:307 wp-admin/network/user-new.php:129 +msgid "Add User" +msgstr "Tilføj bruger" -#: wp-admin/network/site-settings.php:80 -msgid "Site options updated." -msgstr "Webstedets indstillinger er blevet opdateret." +#: wp-admin/network/site-users.php:259 +msgid "Enter the username and email." +msgstr "Skriv brugernavn og e-mail." -#: wp-admin/network/settings.php:328 -msgid "Language Settings" -msgstr "Sprogindstillinger" +#: wp-admin/network/menu.php:19 +msgid "Updates" +msgstr "Opdateringer" -#: wp-admin/network/settings.php:164 -msgid "Allow site administrators to add new users to their site via the \"Users → Add New\" page." -msgstr "Tillad webstedets administratorer at tilføje nye brugere til deres websted via \"Brugere → Tilføj ny\" siden." +#: wp-admin/network/site-users.php:241 +msgid "Enter the username of an existing user." +msgstr "Skriv brugernavnet på en eksisterende bruger." -#: wp-admin/network/sites.php:32 -msgid "Dashboard leads to the Dashboard for that site." -msgstr "Kontrolpanel fører til kontrolpanelet for webstedet." +#: wp-admin/network/themes.php:293 +msgid "You cannot delete a theme while it is active on the main site." +msgstr "Du kan ikke slette et tema mens det er i brug på hovedwebstedet." -#: wp-admin/network/site-info.php:21 wp-admin/network/site-settings.php:20 -#: wp-admin/network/site-themes.php:20 wp-admin/network/site-users.php:23 -msgid "The menu is for editing information specific to individual sites, particularly if the admin area of a site is unavailable." -msgstr "Menuen er til at ændre specifik information for de forskellige websteder, særligt hvis administrationsområder for webstedet er utilgængeligt." +#: wp-admin/network/themes.php:148 +msgid "Are you sure you wish to delete these themes?" +msgstr "Er du sikker på, at du vil slette disse temaer?" -#: wp-admin/network/site-info.php:23 wp-admin/network/site-settings.php:22 -#: wp-admin/network/site-themes.php:22 wp-admin/network/site-users.php:25 -msgid "<strong>Users</strong> — This displays the users associated with this site. You can also change their role, reset their password, or remove them from the site. Removing the user from the site does not remove the user from the network." -msgstr "<strong>Brugere</strong> — Dette viser brugerne, der er tilknyttet dette websted. Du kan også ændre deres rolle, nulstille deres adgangskode eller fjerne dem fra webstedet. At fjerne en bruger fra et websted fjerner dem ikke fra netværket." +#: wp-admin/network/themes.php:161 +msgid "Yes, delete this theme" +msgstr "Ja, slet dette tema" -#: wp-admin/network/site-info.php:22 wp-admin/network/site-settings.php:21 -#: wp-admin/network/site-themes.php:21 wp-admin/network/site-users.php:24 -msgid "<strong>Info</strong> — The site URL is rarely edited as this can cause the site to not work properly. The Registered date and Last Updated date are displayed. Network admins can mark a site as archived, spam, deleted and mature, to remove from public listings or disable." -msgstr "<strong>Info</strong> — Webstedets URL ændres sjældent, da det kan gøre, at webstedet ikke fungerer ordentligt. Datoen Registreret og Sidst opdateret bliver vist. Netværksadministratorer kan markere et websted som arkiveret, spam, slettet og modent, fjerne det fra offentligt tilgængeligt eller deaktivere det." +#: wp-admin/network/site-themes.php:204 +msgid "Network enabled themes are not shown on this screen." +msgstr "Netværksaktiverede temaer vises ikke på dette skærmbillede." -#: wp-admin/network/site-info.php:25 wp-admin/network/site-settings.php:24 -#: wp-admin/network/site-themes.php:24 wp-admin/network/site-users.php:27 -msgid "<strong>Settings</strong> — This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database." -msgstr "<strong>Settings</strong> — Denne side viser en liste over alle indstillingerne på dette websted. Nogle er lavet af WordPress og andre er lavet af plugins, du har aktiveret. Bemærk at nogle felter er grålige og siger Serialized Data. Du kan ikke ændre disse værdier på grund af måden, indstillingerne er gemt i databasen." +#: wp-admin/network/site-themes.php:195 wp-admin/network/themes.php:277 +msgid "Theme disabled." +msgstr "Tema deaktiveret." -#: wp-admin/network/themes.php:171 -msgid "No, return me to the theme list" -msgstr "Nej, vend tilbage til listen over temaer" +#: wp-admin/network/site-themes.php:201 wp-admin/network/themes.php:291 +msgid "No theme selected." +msgstr "Intet tema valgt." #. translators: %s: site name #: wp-admin/network/site-info.php:131 wp-admin/network/site-settings.php:84 @@ -748,273 +710,255 @@ msgstr "Nej, vend tilbage til listen over temaer" msgid "Edit Site: %s" msgstr "Rediger websted: %s" -#: wp-admin/network/site-info.php:24 wp-admin/network/site-settings.php:23 -#: wp-admin/network/site-themes.php:23 wp-admin/network/site-users.php:26 -msgid "<strong>Themes</strong> — This area shows themes that are not already enabled across the network. Enabling a theme in this menu makes it accessible to this site. It does not activate the theme, but allows it to show in the site’s Appearance menu. To enable a theme for the entire network, see the <a href=\"%s\">Network Themes</a> screen." -msgstr "<strong>Temaer</strong> — Dette område viser temaer, der endnu ikke er aktiveret i netværket. Hvis et tema aktiveres i denne menu, vil det være tilgængeligt på dette websted. Det aktiverer ikke temaet, men tillader, at det vises i webstedets Udseende skærmbillede. For at aktivere et tema i hele netværket, så gå til skærmbilledet for <a href=\"%s\">Netværkstemaer</a>." +#: wp-admin/network/themes.php:171 +msgid "No, return me to the theme list" +msgstr "Nej, vend tilbage til listen over temaer" -#: wp-admin/network/site-themes.php:201 wp-admin/network/themes.php:291 -msgid "No theme selected." -msgstr "Intet tema valgt." +#: wp-admin/network/menu.php:41 wp-admin/network/themes.php:253 +msgctxt "theme" +msgid "Add New" +msgstr "Tilføj nyt" -#: wp-admin/network/site-themes.php:187 wp-admin/network/themes.php:269 -msgid "Theme enabled." -msgstr "Tema aktiveret." +#: wp-admin/network/sites.php:37 +msgid "Clicking on bold headings can re-sort this table." +msgstr "Ved at klikke på overskrifterne med fed kan du sortere i tabellen." -#: wp-admin/network/site-info.php:37 wp-admin/network/site-settings.php:36 -#: wp-admin/network/site-themes.php:57 wp-admin/network/site-users.php:52 -msgid "Invalid site ID." -msgstr "Ugyldigt websted-ID." +#: wp-admin/network/sites.php:34 +msgid "Delete which is a permanent action after the confirmation screens." +msgstr "Slet hvilket er en permanent handling efter bekræftelsesskærmene." -#: wp-admin/network/site-themes.php:195 wp-admin/network/themes.php:277 -msgid "Theme disabled." -msgstr "Tema deaktiveret." +#: wp-admin/network/sites.php:31 +msgid "An Edit link to a separate Edit Site screen." +msgstr "Et Rediger link til en separat Rediger websted skærmbillede." -#: wp-admin/network/user-new.php:20 -msgid "Add User will set up a new user account on the network and send that person an email with username and password." -msgstr "Tilføj bruger vil oprette en ny brugerkonto på netværket og personen vil få tilsendt en e-mail med brugernavn og adgangskode." +#: wp-admin/network/site-new.php:24 +msgid "This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings." +msgstr "Dette skærmbillede giver Superadministratorer mulighed for at tilføje nye websteder til netværket. Dette er ikke påvirket af registreringsindstillingerne." -#: wp-admin/network/site-themes.php:204 -msgid "Network enabled themes are not shown on this screen." -msgstr "Netværksaktiverede temaer vises ikke på dette skærmbillede." +#: wp-admin/network/settings.php:35 +msgid "Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges." +msgstr "Superadministratorer kan ikke længere tilføjes i skærmbilledet Indstillinger. Du skal gå til listen over eksisterende brugere under Netværkets administrator > Brugere og klikke på et brugernavn eller rediger-linket under navnet. Det fører til en rediger bruger side, hvor du kan sætte flueben i en boks, der giver superadministrator rettigheder." -#: wp-admin/network/menu.php:55 wp-admin/network/settings.php:19 -msgid "Network Settings" -msgstr "Netværksindstillinger" +#: wp-admin/network/site-info.php:21 wp-admin/network/site-settings.php:20 +#: wp-admin/network/site-themes.php:20 wp-admin/network/site-users.php:23 +msgid "The menu is for editing information specific to individual sites, particularly if the admin area of a site is unavailable." +msgstr "Menuen er til at ændre specifik information for de forskellige websteder, særligt hvis administrationsområder for webstedet er utilgængeligt." -#: wp-admin/network/themes.php:125 -msgid "Delete Theme" -msgstr "Slet tema" +#: wp-admin/network/sites.php:32 +msgid "Dashboard leads to the Dashboard for that site." +msgstr "Kontrolpanel fører til kontrolpanelet for webstedet." -#: wp-admin/network/themes.php:126 -msgid "This theme may be active on other sites in the network." -msgstr "Dette tema kan være aktivt på andre websteder i netværket." +#: wp-admin/network/settings.php:164 +msgid "Allow site administrators to add new users to their site via the \"Users → Add New\" page." +msgstr "Tillad webstedets administratorer at tilføje nye brugere til deres websted via \"Brugere → Tilføj ny\" siden." -#: wp-admin/network/themes.php:127 -msgid "You are about to remove the following theme:" -msgstr "Du er i gang med at fjerne følgende tema:" +#: wp-admin/network/site-settings.php:80 +msgid "Site options updated." +msgstr "Webstedets indstillinger er blevet opdateret." -#: wp-admin/network/themes.php:161 -msgid "Yes, delete this theme" -msgstr "Ja, slet dette tema" +#: wp-admin/network/menu.php:28 +msgid "All Sites" +msgstr "Alle websteder" -#: wp-admin/network/themes.php:148 -msgid "Are you sure you wish to delete these themes?" -msgstr "Er du sikker på, at du vil slette disse temaer?" +#. translators: 1: dashboard url, 2: network admin edit url +#: wp-admin/network/site-new.php:173 +msgid "Site added. <a href=\"%1$s\">Visit Dashboard</a> or <a href=\"%2$s\">Edit Site</a>" +msgstr "Websted tilføjet. <a href=\"%1$s\">Gå til Kontrolpanel</a> eller <a href=\"%2$s\">Rediger websted</a>" -#: wp-admin/network/site-new.php:179 wp-admin/network/site-new.php:189 -msgid "Add New Site" -msgstr "Tilføj nyt websted" +#: wp-admin/network/themes.php:125 +msgid "Delete Theme" +msgstr "Slet tema" -#: wp-admin/network/themes.php:293 -msgid "You cannot delete a theme while it is active on the main site." -msgstr "Du kan ikke slette et tema mens det er i brug på hovedwebstedet." +#: wp-admin/network/menu.php:55 wp-admin/network/settings.php:19 +msgid "Network Settings" +msgstr "Netværksindstillinger" -#: wp-admin/network/site-users.php:241 -msgid "Enter the username of an existing user." -msgstr "Skriv brugernavnet på en eksisterende bruger." +#: wp-admin/network/settings.php:328 +msgid "Language Settings" +msgstr "Sprogindstillinger" -#: wp-admin/network/site-info.php:126 -msgid "Site info updated." -msgstr "Webstedsinformation opdateret." +#: wp-admin/network/menu.php:40 +msgid "Installed Themes" +msgstr "Installerede temaer" + +#: wp-admin/network/menu.php:36 +msgid "Themes %s" +msgstr "Temaer %s" #: wp-admin/network/site-users.php:238 msgid "User is already a member of this site." msgstr "Brugeren er allerede oprettet på dette websted." +#: wp-admin/network/site-new.php:179 wp-admin/network/site-new.php:189 +msgid "Add New Site" +msgstr "Tilføj nyt websted" + #: wp-admin/network/sites.php:144 msgid "Sorry, you are not allowed to delete the site." msgstr "Du har desværre ikke tilladelse til at slette webstedet." -#: wp-admin/network/user-new.php:49 -msgid "Cannot add user." -msgstr "Kan ikke tilføje bruger." +#: wp-admin/network/site-info.php:126 +msgid "Site info updated." +msgstr "Webstedsinformation opdateret." -#: wp-admin/network/site-users.php:307 wp-admin/network/user-new.php:129 -msgid "Add User" -msgstr "Tilføj bruger" +#: wp-admin/network/site-themes.php:187 wp-admin/network/themes.php:269 +msgid "Theme enabled." +msgstr "Tema aktiveret." -#: wp-admin/network/site-users.php:256 -msgid "User created." -msgstr "Bruger oprettet." +#: wp-admin/network/user-new.php:20 +msgid "Add User will set up a new user account on the network and send that person an email with username and password." +msgstr "Tilføj bruger vil oprette en ny brugerkonto på netværket og personen vil få tilsendt en e-mail med brugernavn og adgangskode." -#: wp-admin/network/site-users.php:253 -msgid "Select a user to remove." -msgstr "Vælg bruger som skal slettes." +#: wp-admin/network/site-info.php:37 wp-admin/network/site-settings.php:36 +#: wp-admin/network/site-themes.php:57 wp-admin/network/site-users.php:52 +msgid "Invalid site ID." +msgstr "Ugyldigt websted-ID." -#: wp-admin/network/site-users.php:247 -msgid "Select a user to change role." -msgstr "Vælg en bruger for at ændre rolle." +#: wp-admin/network/sites.php:28 +msgid "Add New takes you to the Add New Site screen. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page." +msgstr "Tilføj ny fører dig til et Tilføj nyt websted-skærmbillede. Du kan søge efter et websted på navn, ID-nummer eller IP-adresse. Skærmindstillinger giver mulighed for at vælge, hvor mange websteder der vises på en side." -#: wp-admin/network/site-users.php:259 -msgid "Enter the username and email." -msgstr "Skriv brugernavn og e-mail." +#: wp-admin/network/themes.php:127 +msgid "You are about to remove the following theme:" +msgstr "Du er i gang med at fjerne følgende tema:" -#: wp-admin/network.php:63 -msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar." -msgstr "Lige så snart du har tilføjet denne kode og genindlæser siden, burde Multisite være oprettet. Dette skærmbillede, nu i netværksadministrator navigationsmenuen, vil beholde et arkiv af den tilføjede kode. Du kan skifte mellem netværksadministration og webstedsadministration ved at klikke på Netværksadministrator eller et af webstedsnavnene under Mine websteder dropdown-menuen i værktøjslinjen." +#: wp-admin/network/themes.php:126 +msgid "This theme may be active on other sites in the network." +msgstr "Dette tema kan være aktivt på andre websteder i netværket." -#: wp-admin/includes/network.php:140 -msgid "ERROR: The network could not be created." -msgstr "FEJL: Netværket kunne ikke oprettes." +#: wp-admin/network/themes.php:224 +msgid "Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes." +msgstr "Temaer kan aktiveres websted for websted af netværksadministrator i Rediger websted-visningen(som har et Temaer-faneblad); kom dertil via redigerlinket på Alle websteder-visningen. Kun netværksadministratorer kan installere eller redigere temaer." -#: wp-admin/includes/network.php:216 -msgid "Sub-directories" -msgstr "Undermapper" +#: wp-admin/network/site-info.php:23 wp-admin/network/site-settings.php:22 +#: wp-admin/network/site-themes.php:22 wp-admin/network/site-users.php:25 +msgid "<strong>Users</strong> — This displays the users associated with this site. You can also change their role, reset their password, or remove them from the site. Removing the user from the site does not remove the user from the network." +msgstr "<strong>Brugere</strong> — Dette viser brugerne, der er tilknyttet dette websted. Du kan også ændre deres rolle, nulstille deres adgangskode eller fjerne dem fra webstedet. At fjerne en bruger fra et websted fjerner dem ikke fra netværket." -#: wp-admin/network.php:71 -msgid "Network" -msgstr "Netværk" +#: wp-admin/network/site-info.php:22 wp-admin/network/site-settings.php:21 +#: wp-admin/network/site-themes.php:21 wp-admin/network/site-users.php:24 +msgid "<strong>Info</strong> — The site URL is rarely edited as this can cause the site to not work properly. The Registered date and Last Updated date are displayed. Network admins can mark a site as archived, spam, deleted and mature, to remove from public listings or disable." +msgstr "<strong>Info</strong> — Webstedets URL ændres sjældent, da det kan gøre, at webstedet ikke fungerer ordentligt. Datoen Registreret og Sidst opdateret bliver vist. Netværksadministratorer kan markere et websted som arkiveret, spam, slettet og modent, fjerne det fra offentligt tilgængeligt eller deaktivere det." -#. translators: 1: hostname -#: wp-admin/includes/network.php:211 -msgctxt "subdomain examples" -msgid "like <code>site1.%1$s</code> and <code>site2.%1$s</code>" -msgstr "som <code>websted1.%1$s</code> og <code>websted2.%1$s</code>" +#: wp-admin/network/site-info.php:25 wp-admin/network/site-settings.php:24 +#: wp-admin/network/site-themes.php:24 wp-admin/network/site-users.php:27 +msgid "<strong>Settings</strong> — This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database." +msgstr "<strong>Settings</strong> — Denne side viser en liste over alle indstillingerne på dette websted. Nogle er lavet af WordPress og andre er lavet af plugins, du har aktiveret. Bemærk at nogle felter er grålige og siger Serialized Data. Du kan ikke ændre disse værdier på grund af måden, indstillingerne er gemt i databasen." -#: wp-admin/includes/network.php:201 -msgid "Addresses of Sites in your Network" -msgstr "Adresserne på webstederne i dit netværk" +#: wp-admin/network/site-info.php:24 wp-admin/network/site-settings.php:23 +#: wp-admin/network/site-themes.php:23 wp-admin/network/site-users.php:26 +msgid "<strong>Themes</strong> — This area shows themes that are not already enabled across the network. Enabling a theme in this menu makes it accessible to this site. It does not activate the theme, but allows it to show in the site’s Appearance menu. To enable a theme for the entire network, see the <a href=\"%s\">Network Themes</a> screen." +msgstr "<strong>Temaer</strong> — Dette område viser temaer, der endnu ikke er aktiveret i netværket. Hvis et tema aktiveres i denne menu, vil det være tilgængeligt på dette websted. Det aktiverer ikke temaet, men tillader, at det vises i webstedets Udseende skærmbillede. For at aktivere et tema i hele netværket, så gå til skærmbilledet for <a href=\"%s\">Netværkstemaer</a>." #: wp-admin/includes/network.php:113 wp-admin/includes/network.php:373 #: wp-admin/includes/network.php:545 wp-admin/includes/network.php:585 msgid "Warning:" msgstr "Advarsel:" -#: wp-admin/network.php:29 -msgid "The Network creation panel is not for WordPress MU networks." -msgstr "Panelet for oprettelse af netværk er ikke til WordPress MU netværk." +#: wp-admin/network.php:71 +msgid "Network" +msgstr "Netværk" -#: wp-admin/includes/network.php:128 -msgid "Return to Dashboard" -msgstr "Vend tilbage til Kontrolpanelet" +#: wp-admin/includes/network.php:216 +msgid "Sub-directories" +msgstr "Undermapper" #: wp-admin/network.php:55 msgid "Create a Network of WordPress Sites" msgstr "Opret et netværk af WordPress websteder" -#: wp-admin/network.php:59 -msgid "This screen allows you to configure a network as having subdomains (<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</code>). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it." -msgstr "Dette skærmbillede giver dig mulighed for at konfigurere et netværk med subdomæner. (<code>websted1.eksempel.dk</code>) eller undermapper (<code>eksempel.dk/websted1</code>). Subdomæner kræver at subdomæner med jokertegn er aktiveret i Apache og DNS-records, hvis din udbyder tillader det." - -#: wp-admin/includes/network.php:260 wp-admin/includes/network.php:275 -msgid "Sub-directory Install" -msgstr "Undermapper installering" - -#: wp-admin/includes/network.php:113 -msgid "Please <a href=\"%s\">deactivate your plugins</a> before enabling the Network feature." -msgstr "Vær venlig at <a href=\"%s\">deaktivere dine plugins</a> før du aktiverer netværksmuligheden." - -#: wp-admin/includes/network.php:113 -msgid "Once the network is created, you may reactivate your plugins." -msgstr "Når først netværket er oprettet, kan du genaktivere dine plugins." - -#: wp-admin/network.php:64 -msgid "The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with “/blog/” from the main site. This disabling will be addressed in a future version." -msgstr "Valget af websteder med undermapper bliver deaktiveret hvis opsætningen er mere end en måned gammel på grund af problemer med “/blog/” fra hovedwebstedet. Denne deaktivering vil der blive taget hånd om i en senere version." +#: wp-admin/network.php:29 +msgid "The Network creation panel is not for WordPress MU networks." +msgstr "Panelet for oprettelse af netværk er ikke til WordPress MU netværk." -#: wp-admin/includes/network.php:160 -msgid "Welcome to the Network installation process!" -msgstr "Velkommen til netværksinstallationen!" +#: wp-admin/includes/network.php:140 +msgid "ERROR: The network could not be created." +msgstr "FEJL: Netværket kunne ikke oprettes." #: wp-admin/includes/network.php:256 -msgid "Network Details" -msgstr "Netværksdetaljer" - -#: wp-admin/includes/network.php:105 -msgid "The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network." -msgstr "Konstanten DO_NOT_UPGRADE_GLOBAL_TABLES kan ikke defineres når du opretter et netværk." - -#: wp-admin/includes/network.php:594 -msgid "Once you complete these steps, your network is enabled and configured. You will have to log in again." -msgstr "Når du har gennemført disse trin, vil dit netværk være aktiveret og konfigureret. Du vil skulle logge ind igen." - -#: wp-admin/network.php:61 -msgid "The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files." -msgstr "Det næste skærmbillede for Netværksopsætning vil give dig nogle genererede linjer kode, som skal tilføjes din wp-config.php og .htaccess-filer. Vær opmærksom på at dit ftp-program skal vise skjulte filer og filer der starter med et punktum, så du kan finde .htaccess; du skal måske oprette filen hvis den rent faktisk ikke er der. Tag backup af disse to filer." - -#: wp-admin/network.php:60 -msgid "Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your install. Fill out the network details, and click install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories)." -msgstr "Vælg subdomæner eller undermapper; dette kan kun ændres efterfølgende ved at genkonfigurere din installation. Udfyld netværksdetaljerne og klik på installer. Hvis dette ikke virker, så skal du tilføje DNS-record med jokertegn (for subdomæner) eller skifte til en anden indstilling i Permanente links (for undermapper)." +msgid "Network Details" +msgstr "Netværksdetaljer" -#: wp-admin/includes/network.php:475 -msgid "To make your installation more secure, you should also add:" -msgstr "For at gøre din installation mere sikker, burde du også tilføje:" +#: wp-admin/includes/network.php:234 wp-admin/includes/network.php:244 +#: wp-admin/includes/network.php:293 +msgid "Server Address" +msgstr "Serveradresse" -#: wp-admin/includes/network.php:208 -msgid "Sub-domains" -msgstr "Underdomæner" +#: wp-admin/includes/network.php:304 wp-admin/network/settings.php:105 +msgid "Network Title" +msgstr "Netværkstitel" #: wp-admin/includes/network.php:180 wp-admin/includes/network.php:229 #: wp-admin/includes/network.php:270 wp-admin/includes/network.php:280 msgid "Warning!" msgstr "Advarsel!" -#: wp-admin/includes/network.php:204 -msgid "You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality." -msgstr "Du behøver en jokertegn DNS-record, hvis du har tænkt dig at bruge funktionaliteten virtuel vært (subdomæne)." +#: wp-admin/network.php:63 +msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar." +msgstr "Lige så snart du har tilføjet denne kode og genindlæser siden, burde Multisite være oprettet. Dette skærmbillede, nu i netværksadministrator navigationsmenuen, vil beholde et arkiv af den tilføjede kode. Du kan skifte mellem netværksadministration og webstedsadministration ved at klikke på Netværksadministrator eller et af webstedsnavnene under Mine websteder dropdown-menuen i værktøjslinjen." -#: wp-admin/includes/network.php:122 -msgid "You cannot install a network of sites with your server address." -msgstr "Du kan ikke installere et netværk af websteder med den serveradresse, som du har." +#: wp-admin/includes/network.php:317 +msgid "Your email address." +msgstr "Din e-mailadresse." -#: wp-admin/includes/network.php:161 -msgid "Fill in the information below and you’ll be on your way to creating a network of WordPress sites. We will create configuration files in the next step." -msgstr "Udfyld informationerne nedenunder og du vil være på vej til at oprette et netværk af WordPress-websteder. Vi will oprette konfigurationsfilerne i det næste trin." +#: wp-admin/includes/network.php:594 +msgid "Once you complete these steps, your network is enabled and configured. You will have to log in again." +msgstr "Når du har gennemført disse trin, vil dit netværk være aktiveret og konfigureret. Du vil skulle logge ind igen." -#: wp-admin/includes/network.php:386 -msgid "Complete the following steps to enable the features for creating a network of sites." -msgstr "Fuldfør de følgende trin for at aktivere mulighederne for at oprette et netværk af websteder." +#: wp-admin/includes/network.php:475 +msgid "To make your installation more secure, you should also add:" +msgstr "For at gøre din installation mere sikker, burde du også tilføje:" #: wp-admin/includes/network.php:385 msgid "Enabling the Network" msgstr "Aktiverer netværket" -#: wp-admin/includes/network.php:374 -msgid "Please complete the configuration steps. To create a new network, you will need to empty or remove the network database tables." -msgstr "Fuldfør venligst konfigurationstrinene. For at oprette et nyt netværk, bliver du nødt til at tømme eller fjerne databasetabellerne." - -#: wp-admin/includes/network.php:373 -msgid "An existing WordPress network was detected." -msgstr "Et eksisterende WordPress-netværk blev opdaget." +#: wp-admin/includes/network.php:386 +msgid "Complete the following steps to enable the features for creating a network of sites." +msgstr "Fuldfør de følgende trin for at aktivere mulighederne for at oprette et netværk af websteder." -#: wp-admin/includes/network.php:368 -msgid "The original configuration steps are shown here for reference." -msgstr "De oprindelige konfigurationstrin er vist her som reference." +#: wp-admin/includes/network.php:208 +msgid "Sub-domains" +msgstr "Underdomæner" -#: wp-admin/includes/network.php:317 -msgid "Your email address." -msgstr "Din e-mailadresse." +#: wp-admin/includes/network.php:286 +msgid "Because your install is not new, the sites in your WordPress network must use sub-domains." +msgstr "Fordi din installation ikke er ny, skal webstederne i dit WordPress-netværk bruge subdomæner." #: wp-admin/includes/network.php:308 msgid "What would you like to call your network?" msgstr "Hvad ønsker du at kalde dit netværk?" -#: wp-admin/includes/network.php:304 wp-admin/network/settings.php:105 -msgid "Network Title" -msgstr "Netværkstitel" - -#: wp-admin/includes/network.php:286 -msgid "Because your install is not new, the sites in your WordPress network must use sub-domains." -msgstr "Fordi din installation ikke er ny, skal webstederne i dit WordPress-netværk bruge subdomæner." +#: wp-admin/includes/network.php:368 +msgid "The original configuration steps are shown here for reference." +msgstr "De oprindelige konfigurationstrin er vist her som reference." -#: wp-admin/includes/network.php:285 -msgid "Sub-domain Install" -msgstr "Subdomæne installering" +#: wp-admin/includes/network.php:373 +msgid "An existing WordPress network was detected." +msgstr "Et eksisterende WordPress-netværk blev opdaget." #: wp-admin/includes/network.php:277 msgid "Because your install is in a directory, the sites in your WordPress network must use sub-directories." msgstr "Fordi din installation er i en mappe, skal webstederne i dit WordPress-netværk bruge undermapper." +#: wp-admin/includes/network.php:285 +msgid "Sub-domain Install" +msgstr "Subdomæne installering" + #: wp-admin/includes/network.php:270 wp-admin/includes/network.php:280 #: wp-admin/includes/network.php:287 msgid "The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links." msgstr "Hovedwebstedet i en undermappe bliver nødt til at bruge en ændret permalink-struktur, som potentielt kan ødelægge eksisterende links." -#: wp-admin/includes/network.php:234 wp-admin/includes/network.php:244 -#: wp-admin/includes/network.php:293 -msgid "Server Address" -msgstr "Serveradresse" +#: wp-admin/includes/network.php:260 wp-admin/includes/network.php:275 +msgid "Sub-directory Install" +msgstr "Undermapper installering" + +#. translators: 1: hostname +#: wp-admin/includes/network.php:211 +msgctxt "subdomain examples" +msgid "like <code>site1.%1$s</code> and <code>site2.%1$s</code>" +msgstr "som <code>websted1.%1$s</code> og <code>websted2.%1$s</code>" #. translators: 1: hostname #: wp-admin/includes/network.php:219 @@ -1022,30 +966,90 @@ msgctxt "subdirectory examples" msgid "like <code>%1$s/site1</code> and <code>%1$s/site2</code>" msgstr "som <code>%1$s/websted1</code> og <code>%1$s/websted2</code>" +#: wp-admin/includes/network.php:201 +msgid "Addresses of Sites in your Network" +msgstr "Adresserne på webstederne i dit netværk" + +#: wp-admin/includes/network.php:161 +msgid "Fill in the information below and you’ll be on your way to creating a network of WordPress sites. We will create configuration files in the next step." +msgstr "Udfyld informationerne nedenunder og du vil være på vej til at oprette et netværk af WordPress-websteder. Vi will oprette konfigurationsfilerne i det næste trin." + +#: wp-admin/includes/network.php:160 +msgid "Welcome to the Network installation process!" +msgstr "Velkommen til netværksinstallationen!" + +#: wp-admin/includes/network.php:105 +msgid "The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network." +msgstr "Konstanten DO_NOT_UPGRADE_GLOBAL_TABLES kan ikke defineres når du opretter et netværk." + +#: wp-admin/includes/network.php:113 +msgid "Please <a href=\"%s\">deactivate your plugins</a> before enabling the Network feature." +msgstr "Vær venlig at <a href=\"%s\">deaktivere dine plugins</a> før du aktiverer netværksmuligheden." + +#: wp-admin/includes/network.php:113 +msgid "Once the network is created, you may reactivate your plugins." +msgstr "Når først netværket er oprettet, kan du genaktivere dine plugins." + +#: wp-admin/includes/network.php:122 +msgid "You cannot install a network of sites with your server address." +msgstr "Du kan ikke installere et netværk af websteder med den serveradresse, som du har." + +#: wp-admin/includes/network.php:204 +msgid "You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality." +msgstr "Du behøver en jokertegn DNS-record, hvis du har tænkt dig at bruge funktionaliteten virtuel vært (subdomæne)." + +#: wp-admin/network.php:64 +msgid "The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with “/blog/” from the main site. This disabling will be addressed in a future version." +msgstr "Valget af websteder med undermapper bliver deaktiveret hvis opsætningen er mere end en måned gammel på grund af problemer med “/blog/” fra hovedwebstedet. Denne deaktivering vil der blive taget hånd om i en senere version." + +#: wp-admin/includes/network.php:128 +msgid "Return to Dashboard" +msgstr "Vend tilbage til Kontrolpanelet" + +#: wp-admin/includes/network.php:374 +msgid "Please complete the configuration steps. To create a new network, you will need to empty or remove the network database tables." +msgstr "Fuldfør venligst konfigurationstrinene. For at oprette et nyt netværk, bliver du nødt til at tømme eller fjerne databasetabellerne." + +#: wp-admin/network.php:60 +msgid "Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your install. Fill out the network details, and click install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories)." +msgstr "Vælg subdomæner eller undermapper; dette kan kun ændres efterfølgende ved at genkonfigurere din installation. Udfyld netværksdetaljerne og klik på installer. Hvis dette ikke virker, så skal du tilføje DNS-record med jokertegn (for subdomæner) eller skifte til en anden indstilling i Permanente links (for undermapper)." + +#: wp-admin/network.php:61 +msgid "The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files." +msgstr "Det næste skærmbillede for Netværksopsætning vil give dig nogle genererede linjer kode, som skal tilføjes din wp-config.php og .htaccess-filer. Vær opmærksom på at dit FTP-program skal vise skjulte filer og filer der starter med et punktum, så du kan finde .htaccess; du skal måske oprette filen hvis den rent faktisk ikke er der. Tag backup af disse to filer." + +#: wp-admin/network.php:59 +msgid "This screen allows you to configure a network as having subdomains (<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</code>). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it." +msgstr "Dette skærmbillede giver dig mulighed for at konfigurere et netværk med subdomæner (<code>websted1.eksempel.dk</code>) eller undermapper (<code>eksempel.dk/websted1</code>). Subdomæner kræver at subdomæner med jokertegn er aktiveret i Apache og DNS-records, hvis din udbyder tillader det." + #: wp-admin/network/users.php:70 msgid "Warning! User cannot be modified. The user %s is a network administrator." msgstr "Advarsel! Brugeren kan ikke ændres. Bruger %s er netværksadministrator." -#: wp-admin/network/sites.php:30 -msgid "Hovering over each site reveals seven options (three for the primary site):" -msgstr "Hold musen over et websted og du får syv valgmuligheder (tre for hovedsiden):" - -#: wp-admin/network/sites.php:36 -msgid "The site ID is used internally, and is not shown on the front end of the site or to users/viewers." -msgstr "Webstedets ID bliver brugt internt, og vises ikke i på selve webstedet eller til brugere/gæster." +#: wp-admin/network/site-new.php:25 +msgid "If the admin email for the new site does not exist in the database, a new user will also be created." +msgstr "Hvis administratorens e-mail for det nye websted, ikke findes i databasen, bliver der også oprettet en ny bruger." #: wp-admin/network/sites.php:33 msgid "Deactivate, Archive, and Spam which lead to confirmation screens. These actions can be reversed later." msgstr "Deaktiver, Arkiver og Spam som fører til en bekræftelses-side. Disse handlinger kan laves om senere." -#: wp-admin/network/site-new.php:25 -msgid "If the admin email for the new site does not exist in the database, a new user will also be created." -msgstr "Hvis administratorens e-mail for det nye websted, ikke findes i databasen, bliver der også oprettet en ny bruger." +#: wp-admin/network/sites.php:36 +msgid "The site ID is used internally, and is not shown on the front end of the site or to users/viewers." +msgstr "Webstedets ID bliver brugt internt, og vises ikke i på selve webstedet eller til brugere/gæster." + +#: wp-admin/network/sites.php:30 +msgid "Hovering over each site reveals seven options (three for the primary site):" +msgstr "Hold musen over et websted og du får syv valgmuligheder (tre for hovedsiden):" #: wp-admin/network/settings.php:29 msgid "Operational settings has fields for the network’s name and admin email." msgstr "Operationelle indstillinger har felter til netværkets navn og administrator e-mail." +#: wp-admin/network/users.php:171 +msgid "You can also go to the user’s profile page by clicking on the individual username." +msgstr "Du kan også gå til brugerens profilside ved at klikke på brugernavnet." + #: wp-admin/network/settings.php:32 msgid "Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only)." msgstr "Upload indstillinger bestemmer størrelsen af uploadede filer og mængden af tilgængelig upload-plads til hvert websted. Du kan ændre standardindstillingen for de enkelte websteder, når du redigerer dem. Tilladte filtyper er også listet (adskilt med mellemrum)." @@ -1054,61 +1058,57 @@ msgstr "Upload indstillinger bestemmer størrelsen af uploadede filer og mængde msgid "The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses." msgstr "Med massehandling kan du permanent slette udvalgte brugere eller tilføje/fjerne markeringen ved dem, der udvalgt som spam. Spam-brugeres indlæg vil blive slettet, og de vil ikke kunne tilmelde sig igen med samme e-mailadresse." -#: wp-admin/network/users.php:171 -msgid "You can also go to the user’s profile page by clicking on the individual username." -msgstr "Du kan også gå til brugerens profilside ved at klikke på brugernavnet." - #: wp-admin/network/sites.php:35 msgid "Visit to go to the front-end site live." msgstr "Besøg webstedet for at se hvordan det ser ud." -#: wp-admin/network/users.php:174 -msgid "You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege." -msgstr "Du kan gøre en eksisterende bruger til superadministrator ved at gå ind i brugerens profilside og markere feltet, der giver brugere rolle som superadministrator." - #: wp-admin/network/users.php:169 msgid "This table shows all users across the network and the sites to which they are assigned." msgstr "Denne tabel viser alle brugere i hele netværket og de websteder, som de er blevet knyttet til." -#: wp-admin/network/upgrade.php:23 -msgid "If a version update to core has not happened, clicking this button won’t affect anything." -msgstr "Hvis opdatering af kernekoden til den nyeste version ikke er gennemført, så vil det ikke påvirke noget at klikke på denne knap." +#: wp-admin/network/themes.php:222 +msgid "This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using." +msgstr "Dette skærmbillede aktiverer og deaktiverer rækken af temaer, der kan vælges under menupunktet Udseende for hvert websted. Det er ikke muligt, på dette skærmbillede, at aktivere eller deaktivere det tema et givent websted bruger i øjeblikket." -#: wp-admin/network/upgrade.php:24 -msgid "If this process fails for any reason, users logging in to their sites will force the same update." -msgstr "Hvis denne proces, af en eller anden grund, ikke gennemføres, så vil brugere, der logger på deres websted, fremtvinge den samme opdatering." +#: wp-admin/network/themes.php:223 +msgid "If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site’s Appearance > Themes screen." +msgstr "Hvis netværkets administrator deaktiverer et tema der er i brug, kan det stadig være aktivt på et eller flere websteder. Hvis en andet tema er vælges, vil det deaktiverede tema dog ikke længere vises i webstedets Udseende > Temaer skærmbillede." -#: wp-admin/network/users.php:172 -msgid "You can sort the table by clicking on any of the table headings and switch between list and excerpt views by using the icons above the users list." -msgstr "Du kan sortere tabellen ved at klikke på en af tabeloverskrifterne og skifte mellem liste- og uddragsvisning ved hjælp af ikonerne ovenover brugerlisten." +#: wp-admin/network/settings.php:28 +msgid "This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site’s options." +msgstr "Dette skærmbillede indstiller og ændrer mulighederne for hele netværket. Det første websted i netværket er hovedwebstedet og er det vigtigste websted i netværket. Alle netværkets indstillinger bliver hentet fra dette oprindelige websted." -#: wp-admin/network/user-new.php:21 -msgid "Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them." -msgstr "Brugere, der er tilmeldt til netværket uden et websted, er tilføjet som abonnenter på hovedwebstedet i kontrolpanelet, og de vil have en profilside, hvor de kan håndtere deres brugerkonto. Disse brugere vil kun se Kontrolpanelet og Mine websteder i hovednavigationen indtil et websted er oprettet til dem." +#: wp-admin/network/settings.php:30 +msgid "Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network." +msgstr "Oprettelsesindstillingerne kan slå offentlige tilmeldinger til eller fra. Hvis du lader andre tilmelde sig til et websted, skal du installere spam-plugins. Mellemrum, og ikke kommaer, bør adskille navnene på de websteder, der er blokeret i netværket." + +#: wp-admin/network/settings.php:34 +msgid "Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins." +msgstr "Menuindstillingen aktiverer/deaktiverer pluginmenuer til at vises for ikke-superadministratorer, så det kun er superadministratorer, ikke webstedadministratorer, der har adgang til at aktivere plugins." #: wp-admin/network/sites.php:29 msgid "This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table." msgstr "Dette er hovedoversigten over alle websteder på dette netværk. Skift mellem liste- og uddragsvisning ved hjælp af ikonerne foroven i tabellens højre side." -#: wp-admin/network/settings.php:34 -msgid "Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins." -msgstr "Menuindstillingen aktiverer/deaktiverer pluginmenuer til at vises for ikke-superadministratorer, så det kun er superadministratorer, ikke webstedadministratorer, der har adgang til at aktivere plugins." +#: wp-admin/network/user-new.php:21 +msgid "Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them." +msgstr "Brugere, der er tilmeldt til netværket uden et websted, er tilføjet som abonnenter på hovedwebstedet i kontrolpanelet, og de vil have en profilside, hvor de kan håndtere deres brugerkonto. Disse brugere vil kun se Kontrolpanelet og Mine websteder i hovednavigationen indtil et websted er oprettet til dem." -#: wp-admin/network/settings.php:30 -msgid "Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network." -msgstr "Oprettelsesindstillingerne kan slå offentlige tilmeldinger til eller fra. Hvis du lader andre tilmelde sig til et websted, skal du installere spam-plugins. Mellemrum, og ikke kommaer, bør adskille navnene på de websteder, der er blokeret i netværket." +#: wp-admin/network/upgrade.php:24 +msgid "If this process fails for any reason, users logging in to their sites will force the same update." +msgstr "Hvis denne proces, af en eller anden grund, ikke gennemføres, så vil brugere, der logger på deres websted, fremtvinge den samme opdatering." -#: wp-admin/network/settings.php:28 -msgid "This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site’s options." -msgstr "Dette skærmbillede indstiller og ændrer mulighederne for hele netværket. Det første websted i netværket er hovedwebstedet og er det vigtigste websted i netværket. Alle netværkets indstillinger bliver hentet fra dette oprindelige websted." +#: wp-admin/network/upgrade.php:23 +msgid "If a version update to core has not happened, clicking this button won’t affect anything." +msgstr "Hvis opdatering af kernekoden til den nyeste version ikke er gennemført, så vil det ikke påvirke noget at klikke på denne knap." -#: wp-admin/network/themes.php:223 -msgid "If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site’s Appearance > Themes screen." -msgstr "Hvis netværkets administrator deaktiverer et tema der er i brug, kan det stadig være aktivt på et eller flere websteder. Hvis en andet tema er vælges, vil det deaktiverede tema dog ikke længere vises i webstedets Udseende > Temaer skærmbillede." +#: wp-admin/network/users.php:174 +msgid "You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege." +msgstr "Du kan gøre en eksisterende bruger til superadministrator ved at gå ind i brugerens profilside og markere feltet, der giver brugere rolle som superadministrator." -#: wp-admin/network/themes.php:222 -msgid "This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using." -msgstr "Dette skærmbillede aktiverer og deaktiverer rækken af temaer, der kan vælges under menupunktet Udseende for hvert websted. Det er ikke muligt, på dette skærmbillede, at aktivere eller deaktivere det tema et givent websted bruger i øjeblikket." +#: wp-admin/network/users.php:172 +msgid "You can sort the table by clicking on any of the table headings and switch between list and excerpt views by using the icons above the users list." +msgstr "Du kan sortere tabellen ved at klikke på en af tabeloverskrifterne og skifte mellem liste- og uddragsvisning ved hjælp af ikonerne ovenover brugerlisten." #: wp-admin/network/settings.php:31 msgid "New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what᾿s put in the first post, page, comment, comment author, and comment URL." @@ -1119,14 +1119,14 @@ msgstr "Indstillingerne for Nyt websted er nogle standardindstillinger, der anve msgid "The following words are reserved for use by WordPress functions and cannot be used as blog names: %s" msgstr "Følgende ord er reserveret til brug af WordPress-funktioner og kan ikke bruges som blognavne: %s" -#: wp-admin/network/upgrade.php:112 -msgid "If your browser doesn’t start loading the next page automatically, click this link:" -msgstr "Hvis din browser ikke henter den næste side automatisk, skal du klikke på dette link:" - #: wp-admin/network/site-new.php:38 msgid "Can’t create an empty site." msgstr "Kan ikke oprette et tomt websted." +#: wp-admin/network/upgrade.php:112 +msgid "If your browser doesn’t start loading the next page automatically, click this link:" +msgstr "Hvis din browser ikke henter den næste side automatisk, skal du klikke på dette link:" + #: wp-admin/network/settings.php:197 msgid "If you want to ban domains from site registrations. One domain per line." msgstr "Hvis du ønsker at blokere domæner fra at blive oprettet. Et domæne per linje." @@ -1135,29 +1135,33 @@ msgstr "Hvis du ønsker at blokere domæner fra at blive oprettet. Et domæne pe msgid "If you want to limit site registrations to certain domains. One domain per line." msgstr "Hvis du ønsker at begrænse oprettelser fra bestemte domæner. Et domæne per linje." -#: wp-admin/network/sites.php:260 -msgid "Site removed from spam." -msgstr "Websted fjernet fra spam." +#: wp-admin/network/sites.php:263 +msgid "Site marked as spam." +msgstr "Webstedet er markeret som spam." -#: wp-admin/network/users.php:203 -msgid "Users removed from spam." -msgstr "Brugerne er fjernet fra spam." +#: wp-admin/network/sites.php:236 +msgid "Sites marked as spam." +msgstr "Webstederne er markerede som spam." #: wp-admin/network/sites.php:233 msgid "Sites removed from spam." msgstr "Webstederne er fjernet fra spam." -#: wp-admin/network/sites.php:236 -msgid "Sites marked as spam." -msgstr "Webstederne er markerede som spam." +#: wp-admin/network/users.php:203 +msgid "Users removed from spam." +msgstr "Brugerne er fjernet fra spam." -#: wp-admin/network/sites.php:263 -msgid "Site marked as spam." -msgstr "Webstedet er markeret som spam." +#: wp-admin/network/sites.php:260 +msgid "Site removed from spam." +msgstr "Websted fjernet fra spam." -#: wp-admin/network/sites.php:248 -msgid "Site archived." -msgstr "Webstedet er blevet arkiveret." +#: wp-admin/network/sites.php:257 +msgid "Site deactivated." +msgstr "Websted deaktiveret." + +#: wp-admin/network/sites.php:254 +msgid "Site activated." +msgstr "Websted aktiveret." #: wp-admin/network/users.php:206 msgid "Users deleted." @@ -1167,34 +1171,30 @@ msgstr "Brugere slettet." msgid "Site unarchived." msgstr "Websted er ikke længere arkiveret." -#: wp-admin/network/sites.php:254 -msgid "Site activated." -msgstr "Websted aktiveret." - -#: wp-admin/network/sites.php:257 -msgid "Site deactivated." -msgstr "Websted deaktiveret." +#: wp-admin/network/sites.php:248 +msgid "Site archived." +msgstr "Webstedet er blevet arkiveret." -#: wp-admin/network/users.php:200 -msgid "Users marked as spam." -msgstr "Brugere markeret som spam." +#: wp-admin/network/sites.php:239 +msgid "Sites deleted." +msgstr "Websteder slettet." #: wp-admin/network/sites.php:242 msgid "Site deleted." msgstr "Websted slettet." -#: wp-admin/network/sites.php:239 -msgid "Sites deleted." -msgstr "Websteder slettet." - -#: wp-admin/network/sites.php:91 wp-admin/network/sites.php:157 -msgid "Sorry, you are not allowed to change the current site." -msgstr "Du har desværre ikke tilladelse til at ændre det nuværende websted." +#: wp-admin/network/users.php:200 +msgid "Users marked as spam." +msgstr "Brugere markeret som spam." #: wp-admin/network/site-new.php:116 msgid "There was an error creating the user." msgstr "Der opstod en fejl under oprettelsen af brugeren." +#: wp-admin/network/sites.php:91 wp-admin/network/sites.php:157 +msgid "Sorry, you are not allowed to change the current site." +msgstr "Du har desværre ikke tilladelse til at ændre det nuværende websted." + #: wp-admin/network/settings.php:297 msgid "Upload file types" msgstr "Upload filtyper" @@ -1203,45 +1203,49 @@ msgstr "Upload filtyper" msgid "Limit total size of files uploaded to %s MB" msgstr "Begræns den samlede størrelse af filer uploadet til %s MB" -#: wp-admin/network/settings.php:279 -msgid "The URL for the first comment on a new site." -msgstr "URL'en for den første kommentar på et nyt websted." +#: wp-admin/network/settings.php:261 +msgid "The author of the first comment on a new site." +msgstr "Forfatteren af den første kommentar på et nyt websted." -#: wp-admin/network/settings.php:252 -msgid "The first comment on a new site." -msgstr "Den første kommentar på et nyt websted." +#: wp-admin/network/settings.php:232 +msgid "The first post on a new site." +msgstr "Det første indlæg på et nyt websted." #: wp-admin/network/settings.php:242 msgid "The first page on a new site." msgstr "Den første side på et nyt websted." -#: wp-admin/network/settings.php:232 -msgid "The first post on a new site." -msgstr "Det første indlæg på et nyt websted." +#: wp-admin/network/settings.php:252 +msgid "The first comment on a new site." +msgstr "Den første kommentar på et nyt websted." -#: wp-admin/network/settings.php:261 -msgid "The author of the first comment on a new site." -msgstr "Forfatteren af den første kommentar på et nyt websted." +#: wp-admin/network/settings.php:279 +msgid "The URL for the first comment on a new site." +msgstr "URL'en for den første kommentar på et nyt websted." #: wp-admin/network/upgrade.php:68 msgid "All done!" msgstr "Helt færdig!" -#: wp-admin/network/settings.php:133 -msgid "Registration is disabled." -msgstr "Oprettelser er deaktiveret." +#: wp-admin/network/settings.php:135 +msgid "Logged in users may register new sites." +msgstr "Brugere, der er logget ind, kan oprette nye websteder." + +#: wp-admin/network/settings.php:136 +msgid "Both sites and user accounts can be registered." +msgstr "Både websteder og brugerkonti kan oprettes." #: wp-admin/network/settings.php:134 msgid "User accounts may be registered." msgstr "Brugerkonti kan oprettes." -#: wp-admin/network/settings.php:136 -msgid "Both sites and user accounts can be registered." -msgstr "Både websteder og brugerkonti kan oprettes." +#: wp-admin/network/settings.php:133 +msgid "Registration is disabled." +msgstr "Oprettelser er deaktiveret." -#: wp-admin/network/settings.php:135 -msgid "Logged in users may register new sites." -msgstr "Brugere, der er logget ind, kan oprette nye websteder." +#: wp-admin/network/settings.php:102 +msgid "Operational Settings" +msgstr "Operationelle indstillinger" #: wp-admin/network/settings.php:121 msgid "Registration Settings" @@ -1251,139 +1255,135 @@ msgstr "Indstillinger for oprettelser" msgid "New Site Settings" msgstr "Indstillinger for nye websteder" -#: wp-admin/network/settings.php:284 -msgid "Upload Settings" -msgstr "Indstillinger for upload" - -#: wp-admin/network/settings.php:102 -msgid "Operational Settings" -msgstr "Operationelle indstillinger" - #: wp-admin/network/settings.php:358 msgid "Enable administration menus" msgstr "Aktiver administrationsmenuer" -#: wp-admin/network/site-new.php:81 -msgid "Missing email address." -msgstr "Manglende e-mailadresse." +#: wp-admin/network/settings.php:284 +msgid "Upload Settings" +msgstr "Indstillinger for upload" #: wp-admin/network/site-new.php:78 msgid "Missing or invalid site address." msgstr "Manglende eller ugyldig webstedsadresse." +#: wp-admin/network/site-new.php:81 +msgid "Missing email address." +msgstr "Manglende e-mailadresse." + #: wp-admin/network/upgrade.php:112 msgid "Next Sites" msgstr "Næste websteder" -#: wp-admin/network/settings.php:173 -msgid "Users are not allowed to register these sites. Separate names by spaces." -msgstr "Brugerne har ikke tilladelse til at oprette disse websteder. Adskil navne med mellemrum." +#. translators: %s: network name +#: wp-admin/network/site-new.php:141 +msgid "[%s] New Site Created" +msgstr "[%s] Nyt websted oprettet" -#: wp-admin/network/settings.php:157 -msgid "Send the network admin an email notification every time someone registers a site or user account." -msgstr "Send netværkets administrator en besked via e-mail hver gang nogen opretter et websted eller en brugerkonto." +#: wp-admin/network/settings.php:212 +msgid "The welcome email sent to new site owners." +msgstr "Den velkomst e-mail der sendes til nye ejere af websteder." #: wp-admin/network/settings.php:287 msgid "Site upload space" msgstr "Webstedets upload-plads" -#: wp-admin/network/settings.php:212 -msgid "The welcome email sent to new site owners." -msgstr "Den velkomst e-mail der sendes til nye ejere af websteder." +#: wp-admin/network/settings.php:157 +msgid "Send the network admin an email notification every time someone registers a site or user account." +msgstr "Send netværkets administrator en besked via e-mail hver gang nogen opretter et websted eller en brugerkonto." -#. translators: %s: network name -#: wp-admin/network/site-new.php:141 -msgid "[%s] New Site Created" -msgstr "[%s] Nyt websted oprettet" +#: wp-admin/network/settings.php:173 +msgid "Users are not allowed to register these sites. Separate names by spaces." +msgstr "Brugerne har ikke tilladelse til at oprette disse websteder. Adskil navne med mellemrum." #: wp-admin/includes/network.php:313 wp-admin/network/settings.php:112 msgid "Network Admin Email" msgstr "Netværksadministratorens e-mail" -#: wp-admin/network/site-new.php:248 -msgid "The username and password will be mailed to this email address." -msgstr "Dit brugernavn og adgangskode vil blive sendt til denne e-mailadresse." - -#: wp-admin/network/site-new.php:248 -msgid "A new user will be created if the above email address is not in the database." -msgstr "En ny bruger vil blive oprettet hvis ovennævnte e-mailadresse ikke findes i databasen." - -#: wp-admin/network/site-new.php:244 -msgid "Admin Email" -msgstr "Administrator e-mail" +#: wp-admin/network/sites.php:107 +msgid "Confirm" +msgstr "Bekræft" -#: wp-admin/network/site-new.php:260 -msgid "Add Site" -msgstr "Tilføj websted" +#: wp-admin/network/settings.php:247 +msgid "First Comment" +msgstr "Første kommentar" #: wp-admin/network/settings.php:331 msgid "Default Language" msgstr "Standardsprog" -#: wp-admin/network/settings.php:307 -msgid "Max upload file size" -msgstr "Maksimal størrelse på filer der uploades" +#: wp-admin/network/user-new.php:37 +msgid "Cannot create an empty user." +msgstr "Kan ikke oprette en tom bruger." -#: wp-admin/network/settings.php:275 -msgid "First Comment URL" -msgstr "Første kommentar-URL" +#: wp-admin/network/settings.php:124 +msgid "Allow new registrations" +msgstr "Tillad nye registreringer" -#: wp-admin/network/settings.php:257 -msgid "First Comment Author" -msgstr "Første kommentar forfatter" +#: wp-admin/network/settings.php:162 +msgid "Add New Users" +msgstr "Tilføj nye brugere" -#: wp-admin/network/settings.php:247 -msgid "First Comment" -msgstr "Første kommentar" +#: wp-admin/network/settings.php:169 +msgid "Banned Names" +msgstr "Blokerede navne" #: wp-admin/network/settings.php:237 msgid "First Page" msgstr "Første side" -#: wp-admin/network/settings.php:222 -msgid "The welcome email sent to new users." -msgstr "Den velkomst e-mail der sendes til nye brugere." +#: wp-admin/network/site-new.php:260 +msgid "Add Site" +msgstr "Tilføj websted" -#: wp-admin/network/settings.php:217 -msgid "Welcome User Email" -msgstr "Velkomst til bruger e-mail" +#: wp-admin/network/site-new.php:244 +msgid "Admin Email" +msgstr "Administrator e-mail" + +#: wp-admin/network/settings.php:151 +msgid "Registration notification" +msgstr "Besked om oprettelser" #: wp-admin/network/settings.php:207 msgid "Welcome Email" msgstr "Velkomst e-mail" -#: wp-admin/network/settings.php:192 -msgid "Banned Email Domains" -msgstr "Blokerede e-maildomæner" +#: wp-admin/network/settings.php:217 +msgid "Welcome User Email" +msgstr "Velkomst til bruger e-mail" -#: wp-admin/network/settings.php:179 -msgid "Limited Email Registrations" -msgstr "Begrænsning i oprettelser i forhold til e-mailadresser" +#: wp-admin/network/settings.php:222 +msgid "The welcome email sent to new users." +msgstr "Den velkomst e-mail der sendes til nye brugere." -#: wp-admin/network/settings.php:169 -msgid "Banned Names" -msgstr "Blokerede navne" +#: wp-admin/network/settings.php:257 +msgid "First Comment Author" +msgstr "Første kommentar forfatter" -#: wp-admin/network/settings.php:162 -msgid "Add New Users" -msgstr "Tilføj nye brugere" +#: wp-admin/network/settings.php:307 +msgid "Max upload file size" +msgstr "Maksimal størrelse på filer der uploades" -#: wp-admin/network/settings.php:151 -msgid "Registration notification" -msgstr "Besked om oprettelser" +#: wp-admin/network/settings.php:192 +msgid "Banned Email Domains" +msgstr "Blokerede e-maildomæner" -#: wp-admin/network/settings.php:124 -msgid "Allow new registrations" -msgstr "Tillad nye registreringer" +#: wp-admin/network/site-new.php:248 +msgid "A new user will be created if the above email address is not in the database." +msgstr "En ny bruger vil blive oprettet hvis ovennævnte e-mailadresse ikke findes i databasen." #: wp-admin/network/site-users.php:262 msgid "Duplicated username or email address." msgstr "Gentaget brugernavn eller e-mailadresse." -#: wp-admin/network/user-new.php:37 -msgid "Cannot create an empty user." -msgstr "Kan ikke oprette en tom bruger." +#: wp-admin/network/settings.php:179 +msgid "Limited Email Registrations" +msgstr "Begrænsning i oprettelser i forhold til e-mailadresser" -#: wp-admin/network/sites.php:107 -msgid "Confirm" -msgstr "Bekræft" +#: wp-admin/network/settings.php:275 +msgid "First Comment URL" +msgstr "Første kommentar-URL" + +#: wp-admin/network/site-new.php:248 +msgid "The username and password will be mailed to this email address." +msgstr "Dit brugernavn og adgangskode vil blive sendt til denne e-mailadresse." diff --git a/wp-content/languages/admin-network-de_DE.mo b/wp-content/languages/admin-network-de_DE.mo index 02f41813407a54e21abcafe2213ac81f26332c74..57fb97ef01d4becdaac6be7f56772f55aa76cdb2 100644 Binary files a/wp-content/languages/admin-network-de_DE.mo and b/wp-content/languages/admin-network-de_DE.mo differ diff --git a/wp-content/languages/admin-network-de_DE.po b/wp-content/languages/admin-network-de_DE.po index 0a61105cbd174473e11645920ea8a0fa27d87893..d6da4abaaa7b610fad19af3687a86de4431e1c39 100644 --- a/wp-content/languages/admin-network-de_DE.po +++ b/wp-content/languages/admin-network-de_DE.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration - Network Admin package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-16 19:31:38+0000\n" +"PO-Revision-Date: 2017-10-01 18:14:59+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -854,7 +854,7 @@ msgstr "Bitte Benutzername und E-Mail-Adresse eingeben." #: wp-admin/network.php:63 msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar." -msgstr "Sobald du diesen Code hinzugefügt hast und deinen Browser neu lädst, sollte die Multisite aktiviert sein. Dieser Bereich zeigt nun das Netzwerk-Administrationsmenü und enthält eine Archivierung des zusätzlichen Codes. Du kannst zwischen der Netzwerk-Administration und Website-Administration wechseln durch Klicken auf „Netzwerkverwaltung“ oder der individuellen Website unter dem „Meine Websites“-Aufklappmenü in der Werkzeugleiste." +msgstr "Sobald du diesen Code hinzugefügt hast und deinen Browser neu lädst, sollte das Netzwerk aktiviert sein. Dieser Bereich zeigt nun das Netzwerk-Administrationsmenü und enthält eine Archivierung des zusätzlichen Codes. Du kannst zwischen der Netzwerk-Administration und Website-Administration wechseln durch Klicken auf „Netzwerkverwaltung“ oder der individuellen Website unter dem „Meine Websites“-Aufklappmenü in der Werkzeugleiste." #: wp-admin/includes/network.php:140 msgid "ERROR: The network could not be created." @@ -1104,7 +1104,7 @@ msgstr "" #: wp-admin/network/settings.php:28 msgid "This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site’s options." -msgstr "In diesem Bildschirm werden die Einstellungen für das gesamte Netzwerk verwaltet. Die erste bei der Installation des WordPress-Netzwerks erstellte Website ist die Haupt-Website. Von dieser werden die Einstellungen für alle weiteren Sites übernommen." +msgstr "In diesem Bildschirm werden die Einstellungen für das gesamte Netzwerk verwaltet. Die zuerst bei der Installation des WordPress-Netzwerks erstellte Website ist die Haupt-Website. Von deren Optionen werden auch die Netzwerk-Optionen übernommen." #: wp-admin/network/themes.php:223 msgid "If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site’s Appearance > Themes screen." diff --git a/wp-content/languages/admin-network-ja.po b/wp-content/languages/admin-network-ja.po index 7928e4c4c69198c6010c9820cfe082df58bacec4..4424cb57d244d0f93cfc903e96e5470bb6f70ded 100644 --- a/wp-content/languages/admin-network-ja.po +++ b/wp-content/languages/admin-network-ja.po @@ -43,35 +43,37 @@ msgstr "%s を削除" msgid "Sorry, you are not allowed to delete themes for this site." msgstr "このサイトのテーマを削除する権限がありません。" -#: wp-admin/network/themes.php:14 -msgid "Sorry, you are not allowed to manage network themes." -msgstr "サイトネットワークのテーマを管理する権限がありません。" - #: wp-admin/network/sites.php:245 msgid "Sorry, you are not allowed to delete that site." msgstr "そのサイトを削除する権限がありません。" -#: wp-admin/network/site-themes.php:14 -msgid "Sorry, you are not allowed to manage themes for this site." -msgstr "このサイトのテーマを管理する権限がありません。" - -#: wp-admin/network/site-new.php:17 -msgid "Sorry, you are not allowed to add sites to this network." -msgstr "このサイトネットワークにサイトを追加する権限がありません。" +#: wp-admin/network/themes.php:14 +msgid "Sorry, you are not allowed to manage network themes." +msgstr "サイトネットワークのテーマを管理する権限がありません。" #: wp-admin/network/site-info.php:14 wp-admin/network/site-settings.php:14 #: wp-admin/network/site-users.php:14 msgid "Sorry, you are not allowed to edit this site." msgstr "このサイトを編集する権限がありません。" -#: wp-admin/network/settings.php:270 -msgid "The email address of the first comment author on a new site." -msgstr "新規サイトの最初のコメント投稿者のメールアドレス。 " +#: wp-admin/network/site-themes.php:14 +msgid "Sorry, you are not allowed to manage themes for this site." +msgstr "このサイトのテーマを管理する権限がありません。" #: wp-admin/network/settings.php:266 msgid "First Comment Email" msgstr "最初のコメントのメールアドレス" +#: wp-admin/network/settings.php:270 +msgid "The email address of the first comment author on a new site." +msgstr "新規サイトの最初のコメント投稿者のメールアドレス。 " + +#. translators: 1: wp-config.php 2: location of wp-config file, 3: translated +#. version of "That's all, stop editing! Happy blogging." +#: wp-admin/includes/network.php:419 +msgid "Add the following to your %1$s file in %2$s <strong>above</strong> the line reading %3$s:" +msgstr "%2$s にある %1$s ファイルの %3$s という行の<strong>上に</strong>、次の内容を追加してください:" + #. translators: This string should only be translated if wp-config-sample.php #. is localized. You can check the localized release package or #. https://i18n.svn.wordpress.org/<locale code>/branches/<wp @@ -80,11 +82,9 @@ msgstr "最初のコメントのメールアドレス" msgid "That’s all, stop editing! Happy blogging." msgstr "編集が必要なのはここまでです ! WordPress でブログをお楽しみください。" -#. translators: 1: wp-config.php 2: location of wp-config file, 3: translated -#. version of "That's all, stop editing! Happy blogging." -#: wp-admin/includes/network.php:419 -msgid "Add the following to your %1$s file in %2$s <strong>above</strong> the line reading %3$s:" -msgstr "%2$s にある %1$s ファイルの %3$s という行の<strong>上に</strong>、次の内容を追加してください:" +#: wp-admin/network/site-new.php:17 +msgid "Sorry, you are not allowed to add sites to this network." +msgstr "このサイトネットワークにサイトを追加する権限がありません。" #. translators: 1: theme name, 2: theme author #: wp-admin/network/themes.php:138 @@ -97,40 +97,24 @@ msgstr "%2$s の %1$s" msgid "User added. <a href=\"%s\">Edit user</a>" msgstr "ユーザーを追加しました。 <a href=\"%s\">ユーザーを編集</a>" -#: wp-admin/network/site-new.php:206 -msgid "Only lowercase letters (a-z), numbers, and hyphens are allowed." -msgstr "半角小文字 (a-z)、数字、ハイフンのみが使用できます。" - -#: wp-admin/network/site-new.php:156 -msgctxt "email \"From\" field" -msgid "Site Admin" -msgstr "サイト管理者" - -#. translators: 1: wp-config.php -#: wp-admin/includes/network.php:470 -msgid "These unique authentication keys are also missing from your %s file." -msgstr "ユニーク認証キーが %s ファイルに見つかりません。" - #. translators: 1: wp-config.php #: wp-admin/includes/network.php:464 msgid "This unique authentication key is also missing from your %s file." msgstr "ユニーク認証キーが %s ファイルに見つかりません。" #. translators: 1: wp-config.php -#: wp-admin/includes/network.php:408 -msgid "We recommend you back up your existing %s file." -msgstr "既存の %s ファイルをバックアップしておくことをお勧めします。" +#: wp-admin/includes/network.php:470 +msgid "These unique authentication keys are also missing from your %s file." +msgstr "ユニーク認証キーが %s ファイルに見つかりません。" -#. translators: 1: wp-config.php 2: .htaccess -#. translators: 1: wp-config.php 2: web.config -#: wp-admin/includes/network.php:392 wp-admin/includes/network.php:400 -msgid "We recommend you back up your existing %1$s and %2$s files." -msgstr "既存の %1$s と %2$s ファイルをバックアップしておくことをお勧めします。" +#: wp-admin/network/site-new.php:206 +msgid "Only lowercase letters (a-z), numbers, and hyphens are allowed." +msgstr "半角小文字 (a-z)、数字、ハイフンのみが使用できます。" -#. translators: 1: localhost 2: localhost.localdomain -#: wp-admin/includes/network.php:264 -msgid "Because you are using %1$s, the sites in your WordPress network must use sub-directories. Consider using %2$s if you wish to use sub-domains." -msgstr "%1$s を使用しているため、WordPress サイトネットワーク内のサイトはサブディレクトリを使う必要があります。サブドメインを使いたい場合は %2$s を使用してください。" +#: wp-admin/network/site-new.php:156 +msgctxt "email \"From\" field" +msgid "Site Admin" +msgstr "サイト管理者" #. translators: %s: host name #: wp-admin/includes/network.php:248 wp-admin/includes/network.php:297 @@ -142,6 +126,22 @@ msgstr "サイトネットワークのインターネットアドレスは %s msgid "We recommend you change your siteurl to %1$s before enabling the network feature. It will still be possible to visit your site using the %3$s prefix with an address like %2$s but any links will not have the %3$s prefix." msgstr "サイトネットワークの機能を有効にする前に siteurl を %1$s に変更することをおすすめします。%2$s のようなアドレスの前に %3$s を追加してもサイトへ行けますが、リンクには %3$s 接頭辞がつきません。" +#. translators: 1: localhost 2: localhost.localdomain +#: wp-admin/includes/network.php:264 +msgid "Because you are using %1$s, the sites in your WordPress network must use sub-directories. Consider using %2$s if you wish to use sub-domains." +msgstr "%1$s を使用しているため、WordPress サイトネットワーク内のサイトはサブディレクトリを使う必要があります。サブドメインを使いたい場合は %2$s を使用してください。" + +#. translators: 1: wp-config.php 2: .htaccess +#. translators: 1: wp-config.php 2: web.config +#: wp-admin/includes/network.php:392 wp-admin/includes/network.php:400 +msgid "We recommend you back up your existing %1$s and %2$s files." +msgstr "既存の %1$s と %2$s ファイルをバックアップしておくことをお勧めします。" + +#. translators: 1: wp-config.php +#: wp-admin/includes/network.php:408 +msgid "We recommend you back up your existing %s file." +msgstr "既存の %s ファイルをバックアップしておくことをお勧めします。" + #: wp-admin/includes/network.php:203 msgid "You cannot change this later." msgstr "これは後で変更することができません。" @@ -161,58 +161,157 @@ msgstr "%1$s が無効化されている場合は、システム管理者に有 msgid "It looks like the Apache %s module is not installed." msgstr "Apache の %s モジュールがインストールされていないようです。" +#. translators: %s: port number +#: wp-admin/includes/network.php:125 +msgid "You cannot use port numbers such as %s." +msgstr "%s のようなポート番号は使用できません。" + #. translators: %s: mod_rewrite #: wp-admin/includes/network.php:175 msgid "Please make sure the Apache %s module is installed as it will be used at the end of this installation." msgstr "Apache %s モジュールがインストールされているか確認してください。インストールの最後に必要になります。" -#. translators: %s: port number -#: wp-admin/includes/network.php:125 -msgid "You cannot use port numbers such as %s." -msgstr "%s のようなポート番号は使用できません。" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:230 +#: wp-admin/network/site-info.php:181 +msgid "Last Updated" +msgstr "最終更新日時" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:41 +#: wp-admin/network/site-info.php:187 +msgid "Archived" +msgstr "アーカイブ化" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:44 +#: wp-admin/network/site-info.php:191 +msgid "Mature" +msgstr "成人向け" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:43 +#: wp-admin/network/site-info.php:189 +msgid "Deleted" +msgstr "削除" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:536 +msgid "Unarchive" +msgstr "アーカイブ化解除" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:365 +msgid "Never" +msgstr "なし" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:231 +#: wp-admin/network/site-info.php:177 +msgctxt "site" +msgid "Registered" +msgstr "作成日時" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:42 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:544 +#: wp-admin/network/site-info.php:188 +msgctxt "site" +msgid "Spam" +msgstr "スパム" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:538 +msgctxt "verb; site" +msgid "Archive" +msgstr "アーカイブ化" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:192 +msgid "No sites found." +msgstr "サイトは見つかりません。" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:333 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:425 +msgid "Enable" +msgstr "有効" #: wp-admin/includes/class-wp-ms-users-list-table.php:172 msgctxt "user" msgid "Registered" msgstr "作成日時" +#: wp-admin/includes/class-wp-ms-sites-list-table.php:203 +msgctxt "site" +msgid "Mark as Spam" +msgstr "スパムとしてマーク" + +#: wp-admin/includes/class-wp-ms-sites-list-table.php:204 +#: wp-admin/includes/class-wp-ms-sites-list-table.php:542 +msgctxt "site" +msgid "Not Spam" +msgstr "スパムを解除" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:290 +msgctxt "themes" +msgid "All <span class=\"count\">(%s)</span>" +msgid_plural "All <span class=\"count\">(%s)</span>" +msgstr[0] "すべて <span class=\"count\">(%s)</span>" + #: wp-admin/includes/class-wp-ms-users-list-table.php:142 msgid "Super Admin <span class=\"count\">(%s)</span>" msgid_plural "Super Admins <span class=\"count\">(%s)</span>" msgstr[0] "特権管理者 <span class=\"count\">(%s)</span>" -#: wp-admin/includes/class-wp-ms-users-list-table.php:114 -msgctxt "user" -msgid "Not Spam" -msgstr "スパムを解除" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:335 +#: wp-admin/includes/class-wp-ms-themes-list-table.php:447 +msgid "Disable" +msgstr "無効化" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:573 +msgid "Visit Theme Site" +msgstr "テーマサイトを表示" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:293 +msgid "Enabled <span class=\"count\">(%s)</span>" +msgid_plural "Enabled <span class=\"count\">(%s)</span>" +msgstr[0] "有効 <span class=\"count\">(%s)</span>" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:234 +msgid "No themes found." +msgstr "テーマは見つかりませんでした。" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:236 +msgid "You do not appear to have any themes available at this time." +msgstr "現在ご利用いただけるテーマがないようです。" + +#: wp-admin/includes/class-wp-ms-themes-list-table.php:296 +msgid "Disabled <span class=\"count\">(%s)</span>" +msgid_plural "Disabled <span class=\"count\">(%s)</span>" +msgstr[0] "無効 <span class=\"count\">(%s)</span>" #: wp-admin/includes/class-wp-ms-users-list-table.php:113 msgctxt "user" msgid "Mark as Spam" msgstr "スパムとしてマーク" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:573 -msgid "Visit Theme Site" -msgstr "テーマサイトを表示" +#: wp-admin/includes/class-wp-ms-users-list-table.php:114 +msgctxt "user" +msgid "Not Spam" +msgstr "スパムを解除" -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:568 -msgid "Visit %s homepage" -msgstr "%s のホームページを表示" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:247 +msgid "Theme" +msgstr "テーマ名" #: wp-admin/includes/class-wp-ms-themes-list-table.php:541 msgid "Broken Theme:" msgstr "修正が必要なテーマ:" -#. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:457 -msgid "Open %s in the Theme Editor" -msgstr "%s をテーマエディターで開く" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:302 +msgid "Broken <span class=\"count\">(%s)</span>" +msgid_plural "Broken <span class=\"count\">(%s)</span>" +msgstr[0] "要修正 <span class=\"count\">(%s)</span>" + +#. translators: 1: site name, 2: site tagline. +#: wp-admin/includes/class-wp-ms-sites-list-table.php:337 +msgid "%1$s – %2$s" +msgstr "%1$s – %2$s" #. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:441 -msgid "Network Disable %s" -msgstr "%s をサイトネットワークで無効化" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:416 +msgid "Enable %s" +msgstr "%s を有効化" #. translators: %s: theme name #: wp-admin/includes/class-wp-ms-themes-list-table.php:438 @@ -220,128 +319,29 @@ msgid "Disable %s" msgstr "%s を無効化" #. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:419 -msgid "Network Enable %s" -msgstr "%s をサイトネットワークで有効化" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:457 +msgid "Open %s in the Theme Editor" +msgstr "%s をテーマエディターで開く" #. translators: %s: theme name -#: wp-admin/includes/class-wp-ms-themes-list-table.php:416 -msgid "Enable %s" -msgstr "%s を有効化" +#: wp-admin/includes/class-wp-ms-themes-list-table.php:568 +msgid "Visit %s homepage" +msgstr "%s のホームページを表示" #: wp-admin/includes/class-wp-ms-themes-list-table.php:335 #: wp-admin/includes/class-wp-ms-themes-list-table.php:447 msgid "Network Disable" msgstr "サイトネットワーク無効化" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:335 -#: wp-admin/includes/class-wp-ms-themes-list-table.php:447 -msgid "Disable" -msgstr "無効化" +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:441 +msgid "Network Disable %s" +msgstr "%s をサイトネットワークで無効化" -#: wp-admin/includes/class-wp-ms-themes-list-table.php:333 -#: wp-admin/includes/class-wp-ms-themes-list-table.php:425 -msgid "Enable" -msgstr "有効" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:302 -msgid "Broken <span class=\"count\">(%s)</span>" -msgid_plural "Broken <span class=\"count\">(%s)</span>" -msgstr[0] "要修正 <span class=\"count\">(%s)</span>" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:296 -msgid "Disabled <span class=\"count\">(%s)</span>" -msgid_plural "Disabled <span class=\"count\">(%s)</span>" -msgstr[0] "無効 <span class=\"count\">(%s)</span>" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:293 -msgid "Enabled <span class=\"count\">(%s)</span>" -msgid_plural "Enabled <span class=\"count\">(%s)</span>" -msgstr[0] "有効 <span class=\"count\">(%s)</span>" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:290 -msgctxt "themes" -msgid "All <span class=\"count\">(%s)</span>" -msgid_plural "All <span class=\"count\">(%s)</span>" -msgstr[0] "すべて <span class=\"count\">(%s)</span>" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:247 -msgid "Theme" -msgstr "テーマ名" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:236 -msgid "You do not appear to have any themes available at this time." -msgstr "現在ご利用いただけるテーマがないようです。" - -#: wp-admin/includes/class-wp-ms-themes-list-table.php:234 -msgid "No themes found." -msgstr "テーマは見つかりませんでした。" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:538 -msgctxt "verb; site" -msgid "Archive" -msgstr "アーカイブ化" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:536 -msgid "Unarchive" -msgstr "アーカイブ化解除" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:365 -msgid "Never" -msgstr "なし" - -#. translators: 1: site name, 2: site tagline. -#: wp-admin/includes/class-wp-ms-sites-list-table.php:337 -msgid "%1$s – %2$s" -msgstr "%1$s – %2$s" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:231 -#: wp-admin/network/site-info.php:177 -msgctxt "site" -msgid "Registered" -msgstr "作成日時" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:230 -#: wp-admin/network/site-info.php:181 -msgid "Last Updated" -msgstr "最終更新日時" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:204 -#: wp-admin/includes/class-wp-ms-sites-list-table.php:542 -msgctxt "site" -msgid "Not Spam" -msgstr "スパムを解除" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:203 -msgctxt "site" -msgid "Mark as Spam" -msgstr "スパムとしてマーク" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:192 -msgid "No sites found." -msgstr "サイトは見つかりません。" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:44 -#: wp-admin/network/site-info.php:191 -msgid "Mature" -msgstr "成人向け" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:43 -#: wp-admin/network/site-info.php:189 -msgid "Deleted" -msgstr "削除" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:42 -#: wp-admin/includes/class-wp-ms-sites-list-table.php:544 -#: wp-admin/network/site-info.php:188 -msgctxt "site" -msgid "Spam" -msgstr "スパム" - -#: wp-admin/includes/class-wp-ms-sites-list-table.php:41 -#: wp-admin/network/site-info.php:187 -msgid "Archived" -msgstr "アーカイブ化" +#. translators: %s: theme name +#: wp-admin/includes/class-wp-ms-themes-list-table.php:419 +msgid "Network Enable %s" +msgstr "%s をサイトネットワークで有効化" #: wp-admin/network/site-users.php:339 wp-admin/network/user-new.php:117 msgid "A password reset link will be sent to the user via email." @@ -352,55 +352,51 @@ msgstr "ユーザーにパスワードリセット用リンクがメールで送 msgid "If registration is disabled, please set %1$s in %2$s to a URL you will redirect visitors to if they visit a non-existent site." msgstr "ユーザー登録が無効になっている場合、存在しないブログにアクセスした場合にリダイレクトする URL を %2$s の %1$s に記入して下さい。" +#: wp-admin/network/sites.php:48 +msgid "Sites list" +msgstr "サイト一覧" + +#: wp-admin/network/site-users.php:39 +msgid "Site users list" +msgstr "サイトのユーザー一覧" + #. translators: 1: WP_ALLOW_MULTISITE 2: wp-config.php #: wp-admin/network.php:44 msgid "You must define the %1$s constant as true in your %2$s file to allow creation of a Network." msgstr "サイトネットワークを作成するには %2$s ファイルで %1$s 定数を true として定義しなければいけません。" -#: wp-admin/network/themes.php:235 -msgid "Themes list navigation" -msgstr "テーマ一覧のナビゲーション" - -#: wp-admin/network/sites.php:48 -msgid "Sites list" -msgstr "サイト一覧" - #: wp-admin/network/sites.php:47 msgid "Sites list navigation" msgstr "サイト一覧のナビゲーション" -#: wp-admin/network/site-users.php:39 -msgid "Site users list" -msgstr "サイトのユーザー一覧" +#: wp-admin/network/themes.php:235 +msgid "Themes list navigation" +msgstr "テーマ一覧のナビゲーション" #: wp-admin/network/site-users.php:38 msgid "Site users list navigation" msgstr "サイトのユーザー一覧ナビゲーション" -#: wp-admin/network/site-users.php:37 -msgid "Filter site users list" -msgstr "サイトのユーザー一覧を絞り込み" - #: wp-admin/network/site-themes.php:36 msgid "Site themes list" msgstr "サイトのテーマ一覧" +#: wp-admin/network/site-new.php:111 +msgid "The domain or path entered conflicts with an existing username." +msgstr "入力されたドメインやパスは既存のユーザ名と重複しています。" + #: wp-admin/network/site-themes.php:35 msgid "Site themes list navigation" msgstr "サイトのテーマ一覧ナビゲーション" +#: wp-admin/network/site-users.php:37 +msgid "Filter site users list" +msgstr "サイトのユーザー一覧を絞り込み" + #: wp-admin/network/site-themes.php:34 msgid "Filter site themes list" msgstr "サイトのテーマ一覧を絞り込み" -#: wp-admin/network/site-new.php:111 -msgid "The domain or path entered conflicts with an existing username." -msgstr "入力されたドメインやパスは既存のユーザ名と重複しています。" - -#: wp-admin/network/sites.php:75 -msgid "The requested action is not valid." -msgstr "リクエストされた操作は無効です。" - #: wp-admin/network/sites.php:67 msgid "You are about to mark the site %s as not mature." msgstr "サイト %s を非成人向けとしてマークしようとしています。" @@ -409,6 +405,10 @@ msgstr "サイト %s を非成人向けとしてマークしようとしてい msgid "You are about to mark the site %s as mature." msgstr "サイト %s を成人向けとしてマークしようとしています。" +#: wp-admin/network/sites.php:75 +msgid "The requested action is not valid." +msgstr "リクエストされた操作は無効です。" + #: wp-admin/network/sites.php:65 msgid "You are about to delete the site %s." msgstr "このサイト %s を削除しようとしています。" @@ -481,23 +481,23 @@ msgstr "<a href=\"https://wpdocs.osdn.jp/Network_Admin_Settings_Screen\">サイ msgid "Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: %2$s" msgstr "注意してください!%1$s の更新中に問題が発生しました。サーバーは稼働しているサイトに接続できないようです。エラーメッセージ: %2$s" +#: wp-admin/network/themes.php:163 +msgid "Yes, delete these themes" +msgstr "はい、これらのテーマを削除します" + #: wp-admin/network/themes.php:131 msgid "You are about to remove the following themes:" msgstr "以下のテーマを削除しようとしています:" -#: wp-admin/network/themes.php:130 -msgid "These themes may be active on other sites in the network." -msgstr "これらのテーマはサイトネットワークの他のサイトで有効かもしれません。" - -#: wp-admin/network/themes.php:146 -msgid "Are you sure you wish to delete this theme?" -msgstr "本当にこのテーマを削除してもよろしいですか?" - #: wp-admin/network/site-themes.php:197 wp-admin/network/themes.php:279 msgid "%s theme disabled." msgid_plural "%s themes disabled." msgstr[0] "%s個のテーマが無効化されました。" +#: wp-admin/network/themes.php:146 +msgid "Are you sure you wish to delete this theme?" +msgstr "本当にこのテーマを削除してもよろしいですか?" + #: wp-admin/network/site-themes.php:189 wp-admin/network/themes.php:271 msgid "%s theme enabled." msgid_plural "%s themes enabled." @@ -508,17 +508,13 @@ msgid "%s theme deleted." msgid_plural "%s themes deleted." msgstr[0] "%s個のテーマが削除されました。" -#: wp-admin/network/themes.php:163 -msgid "Yes, delete these themes" -msgstr "はい、これらのテーマを削除します" - #: wp-admin/network/themes.php:129 msgid "Delete Themes" msgstr "テーマの削除" -#: wp-admin/network/settings.php:132 -msgid "New registrations settings" -msgstr "新しい登録設定" +#: wp-admin/network/themes.php:130 +msgid "These themes may be active on other sites in the network." +msgstr "これらのテーマはサイトネットワークの他のサイトで有効かもしれません。" #: wp-admin/network/settings.php:317 msgid "Size in kilobytes" @@ -532,6 +528,10 @@ msgstr "許可するファイルの種類。半角スペースで区切って入 msgid "Set site attributes" msgstr "サイトの属性を設定" +#: wp-admin/network/settings.php:132 +msgid "New registrations settings" +msgstr "新しい登録設定" + #: wp-admin/network/settings.php:380 msgid "Enable menus" msgstr "メニューを有効化" @@ -561,34 +561,18 @@ msgstr "サイトを検索するには<strong>ドメインまたはパスを入 msgid "To search for a user, <strong>enter an email address or username</strong>. Use a wildcard to search for a partial username, such as user*." msgstr "ユーザーを検索するには<strong>メールアドレスまたはユーザー名</strong>を入力してください。user* などのワイルドカードを利用してユーザー名の一部から検索することもできます。" -#: wp-admin/network/index.php:37 -msgid "To add a new site, <strong>click Create a New Site</strong>." -msgstr "サイトを新しく追加するには<strong>新規サイトを作成</strong>をクリックしてください。" - #: wp-admin/network/index.php:36 msgid "To add a new user, <strong>click Create a New User</strong>." msgstr "ユーザーを新しく追加するには<strong>新規ユーザーを作成</strong>をクリックしてください。" +#: wp-admin/network/index.php:37 +msgid "To add a new site, <strong>click Create a New Site</strong>." +msgstr "サイトを新しく追加するには<strong>新規サイトを作成</strong>をクリックしてください。" + #: wp-admin/network/index.php:44 msgid "Quick Tasks" msgstr "クイックタスク" -#: wp-admin/network/index.php:38 -msgid "To search for a user or site, use the search boxes." -msgstr "ユーザーまたはサイトを検索するには、検索ボックスを使用してください。" - -#: wp-admin/network/index.php:35 -msgid "The Right Now widget on this screen provides current user and site counts on your network." -msgstr "この画面の「現在の状況」は、サイトネットワーク内の現在のユーザーとサイト数を表示します。" - -#: wp-admin/network/index.php:27 -msgid "Modify global network settings" -msgstr "サイトネットワーク全体設定を編集" - -#: wp-admin/network/index.php:26 -msgid "Update your network" -msgstr "サイトネットワークを更新" - #: wp-admin/network/index.php:25 msgid "Install and activate themes or plugins" msgstr "テーマまたはプラグインのインストール・有効化" @@ -597,10 +581,26 @@ msgstr "テーマまたはプラグインのインストール・有効化" msgid "Add and manage sites or users" msgstr "サイトまたはユーザーの追加・管理" +#: wp-admin/network/index.php:38 +msgid "To search for a user or site, use the search boxes." +msgstr "ユーザーまたはサイトを検索するには、検索ボックスを使用してください。" + #: wp-admin/network/index.php:23 msgid "From here you can:" msgstr "ここでは以下のようなことができます。" +#: wp-admin/network/index.php:26 +msgid "Update your network" +msgstr "サイトネットワークを更新" + +#: wp-admin/network/index.php:35 +msgid "The Right Now widget on this screen provides current user and site counts on your network." +msgstr "この画面の「現在の状況」は、サイトネットワーク内の現在のユーザーとサイト数を表示します。" + +#: wp-admin/network/index.php:27 +msgid "Modify global network settings" +msgstr "サイトネットワーク全体設定を編集" + #: wp-admin/network/index.php:22 msgid "Welcome to your Network Admin. This area of the Administration Screens is used for managing all aspects of your Multisite Network." msgstr "サイトネットワーク管理画面へようこそ。この画面は、マルチサイトネットワーク向け各種設定の管理に使います。" @@ -609,15 +609,15 @@ msgstr "サイトネットワーク管理画面へようこそ。この画面は msgid "WordPress has been updated! Before we send you on your way, we need to individually upgrade the sites in your network." msgstr "WordPress を更新しました。使い始める前にサイトネットワーク内の各サイトをアップグレードする必要があります。" -#: wp-admin/network/upgrade.php:22 -msgid "Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Upgrade Network button will step through each site in the network, five at a time, and make sure any database updates are applied." -msgstr "この画面は、サイトネットワーク管理メニューまたはツールバーから「更新 / 利用可能な更新」を使って新バージョンの WordPress へアップグレードした際にのみご利用ください。「サイトネットワークをアップグレード」をクリックすると、ネットワーク内の各サイトを5つずつチェックしてデータベースの更新を適用します。" - #: wp-admin/network/menu.php:22 wp-admin/network/upgrade.php:15 #: wp-admin/network/upgrade.php:40 wp-admin/network/upgrade.php:131 msgid "Upgrade Network" msgstr "サイトネットワークをアップグレード" +#: wp-admin/network/upgrade.php:22 +msgid "Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Upgrade Network button will step through each site in the network, five at a time, and make sure any database updates are applied." +msgstr "この画面は、サイトネットワーク管理メニューまたはツールバーから「更新 / 利用可能な更新」を使って新バージョンの WordPress へアップグレードした際にのみご利用ください。「サイトネットワークをアップグレード」をクリックすると、ネットワーク内の各サイトを5つずつチェックしてデータベースの更新を適用します。" + #. translators: 1: user login, 2: site url, 3: site name/title #: wp-admin/network/site-new.php:146 msgid "" @@ -631,90 +631,186 @@ msgstr "" "アドレス: %2$s\n" "名前: %3$s" +#: wp-admin/network.php:62 +msgid "Add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules)." +msgstr "wp-config.php (<code>/*...編集が必要なのはここまでです...*/</code> の直前に) と <code>.htaccess</code> (既存の WordPress のルールを置き換えて) に、コードの所定の行を追加してください。" + #: wp-admin/includes/network.php:229 wp-admin/includes/network.php:545 #: wp-admin/includes/network.php:585 msgid "Subdirectory networks may not be fully compatible with custom wp-content directories." msgstr "サブディレクトリ型のサイトネットワークは、カスタマイズした wp-content ディレクトリと完全に互換性がない場合があります。" -#: wp-admin/network.php:62 -msgid "Add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules)." -msgstr "wp-config.php (<code>/*...編集が必要なのはここまでです...*/</code> の直前に) と <code>.htaccess</code> (既存の WordPress のルールを置き換えて) に、コードの所定の行を追加してください。" +#: wp-admin/network/site-users.php:307 wp-admin/network/user-new.php:129 +msgid "Add User" +msgstr "ユーザーを追加" -#: wp-admin/network/settings.php:35 -msgid "Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges." -msgstr "設定画面から特権管理者を追加することはできません。「サイトネットワーク管理 > ユーザー」画面の既存ユーザー一覧で、ユーザー名またはその下の「編集」リンクをクリックしてください。次のユーザープロフィール編集画面で、特権管理者に昇格させるためのチェックボックスを有効化できます。" +#: wp-admin/network/user-new.php:49 +msgid "Cannot add user." +msgstr "ユーザーを追加できません。" -#: wp-admin/network/menu.php:19 -msgid "Updates" -msgstr "更新" +#: wp-admin/network/sites.php:144 +msgid "Sorry, you are not allowed to delete the site." +msgstr "サイトを削除する権限がありません。" -#: wp-admin/network/site-new.php:24 -msgid "This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings." -msgstr "この画面は特権管理者がサイトネットワークにサイトを追加するために使われます。登録設定には影響を受けません。" +#: wp-admin/network/site-new.php:179 wp-admin/network/site-new.php:189 +msgid "Add New Site" +msgstr "サイトを追加" -#: wp-admin/network/sites.php:31 -msgid "An Edit link to a separate Edit Site screen." -msgstr "別のサイト編集画面への「編集」リンク。" +#: wp-admin/network/themes.php:148 +msgid "Are you sure you wish to delete these themes?" +msgstr "ほんとうにこれらのテーマを削除しますか ?" -#: wp-admin/network/themes.php:224 -msgid "Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes." -msgstr "テーマは、サイト編集画面のテーマタブからサイトごとに有効化できます。この画面にはサイト一覧画面の「編集」操作リンクからアクセスできます。テーマのインストールや編集ができるのはサイトネットワーク管理者のみです。" +#: wp-admin/network/themes.php:125 +msgid "Delete Theme" +msgstr "テーマを削除" -#: wp-admin/network/sites.php:34 -msgid "Delete which is a permanent action after the confirmation screens." -msgstr "「削除」は確認画面の後に実行される、元に戻すことができない操作です。" +#: wp-admin/network/site-themes.php:201 wp-admin/network/themes.php:291 +msgid "No theme selected." +msgstr "テーマが選択されていません。" -#: wp-admin/network/sites.php:37 -msgid "Clicking on bold headings can re-sort this table." -msgstr "太字の見出しをクリックして、この表の並べ替えができます。" +#. translators: %s: site name +#: wp-admin/network/site-info.php:131 wp-admin/network/site-settings.php:84 +#: wp-admin/network/site-themes.php:167 wp-admin/network/site-users.php:200 +msgid "Edit Site: %s" +msgstr "サイトを編集: %s" + +#: wp-admin/network/themes.php:171 +msgid "No, return me to the theme list" +msgstr "いいえ、テーマ一覧に戻ります" + +#: wp-admin/network/settings.php:328 +msgid "Language Settings" +msgstr "言語の設定" + +#: wp-admin/network/menu.php:40 +msgid "Installed Themes" +msgstr "インストールされているテーマ" + +#: wp-admin/network/menu.php:36 +msgid "Themes %s" +msgstr "テーマ %s" #: wp-admin/network/menu.php:41 wp-admin/network/themes.php:253 msgctxt "theme" msgid "Add New" msgstr "新規追加" -#: wp-admin/network/sites.php:28 -msgid "Add New takes you to the Add New Site screen. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page." -msgstr "「新規追加」をクリックすると、「新規サイトを追加」画面へ移動します。サイト名、ID、IP アドレスのいずれかでサイトを検索できます。表示オプションを使って、1ページに表示されるサイト数を選択できます。" +#: wp-admin/network/menu.php:19 +msgid "Updates" +msgstr "更新" -#. translators: 1: dashboard url, 2: network admin edit url -#: wp-admin/network/site-new.php:173 -msgid "Site added. <a href=\"%1$s\">Visit Dashboard</a> or <a href=\"%2$s\">Edit Site</a>" -msgstr "サイトを追加しました。<a href=\"%1$s\">ダッシュボードを表示</a>するか、または<a href=\"%2$s\">サイトを編集</a>してください。" +#: wp-admin/network/site-users.php:259 +msgid "Enter the username and email." +msgstr "ユーザー名とメールアドレスを入力してください。" -#: wp-admin/network/menu.php:28 -msgid "All Sites" -msgstr "すべてのサイト" +#: wp-admin/network/site-users.php:247 +msgid "Select a user to change role." +msgstr "権限を変更するユーザーを選択してください。" -#: wp-admin/network/menu.php:36 -msgid "Themes %s" -msgstr "テーマ %s" +#: wp-admin/network/site-users.php:256 +msgid "User created." +msgstr "ユーザーを作成しました。" -#: wp-admin/network/menu.php:40 -msgid "Installed Themes" -msgstr "インストールされているテーマ" +#: wp-admin/network/site-users.php:238 +msgid "User is already a member of this site." +msgstr "ユーザーは既にこのサイトのメンバーです。" + +#: wp-admin/network/site-info.php:126 +msgid "Site info updated." +msgstr "サイト情報を更新しました。" + +#: wp-admin/network/site-users.php:241 +msgid "Enter the username of an existing user." +msgstr "既存のユーザーのユーザー名を入力してください。" + +#: wp-admin/network/themes.php:293 +msgid "You cannot delete a theme while it is active on the main site." +msgstr "メインのサイトで使用中のテーマは削除できません。" + +#: wp-admin/network/site-themes.php:195 wp-admin/network/themes.php:277 +msgid "Theme disabled." +msgstr "%s 個のテーマを無効化しました。" + +#: wp-admin/network/site-info.php:37 wp-admin/network/site-settings.php:36 +#: wp-admin/network/site-themes.php:57 wp-admin/network/site-users.php:52 +msgid "Invalid site ID." +msgstr "無効なサイト ID です。" + +#: wp-admin/network/site-themes.php:187 wp-admin/network/themes.php:269 +msgid "Theme enabled." +msgstr "%s 個のテーマを有効化しました。" #: wp-admin/network/site-settings.php:80 msgid "Site options updated." msgstr "サイトのオプションを更新しました。" -#: wp-admin/network/settings.php:328 -msgid "Language Settings" -msgstr "言語の設定" +#: wp-admin/network/menu.php:28 +msgid "All Sites" +msgstr "すべてのサイト" -#: wp-admin/network/settings.php:164 -msgid "Allow site administrators to add new users to their site via the \"Users → Add New\" page." -msgstr "「ユーザー → 新規追加」ページからサイト管理者がユーザーを追加できるようにする。" +#. translators: 1: dashboard url, 2: network admin edit url +#: wp-admin/network/site-new.php:173 +msgid "Site added. <a href=\"%1$s\">Visit Dashboard</a> or <a href=\"%2$s\">Edit Site</a>" +msgstr "サイトを追加しました。<a href=\"%1$s\">ダッシュボードを表示</a>するか、または<a href=\"%2$s\">サイトを編集</a>してください。" -#: wp-admin/network/sites.php:32 -msgid "Dashboard leads to the Dashboard for that site." -msgstr "「ダッシュボード」は各サイトのダッシュボードにリンクされています。" +#: wp-admin/network/sites.php:28 +msgid "Add New takes you to the Add New Site screen. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page." +msgstr "「新規追加」をクリックすると、「新規サイトを追加」画面へ移動します。サイト名、ID、IP アドレスのいずれかでサイトを検索できます。表示オプションを使って、1ページに表示されるサイト数を選択できます。" + +#: wp-admin/network/sites.php:37 +msgid "Clicking on bold headings can re-sort this table." +msgstr "太字の見出しをクリックして、この表の並べ替えができます。" + +#: wp-admin/network/sites.php:34 +msgid "Delete which is a permanent action after the confirmation screens." +msgstr "「削除」は確認画面の後に実行される、元に戻すことができない操作です。" + +#: wp-admin/network/sites.php:31 +msgid "An Edit link to a separate Edit Site screen." +msgstr "別のサイト編集画面への「編集」リンク。" + +#: wp-admin/network/site-info.php:25 wp-admin/network/site-settings.php:24 +#: wp-admin/network/site-themes.php:24 wp-admin/network/site-users.php:27 +msgid "<strong>Settings</strong> — This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database." +msgstr "<strong>設定</strong> - このページでは、このサイトに関連する設定をすべて表示しています。WordPress が作成したものもあれば、有効化したプラグインが作成したものもあります。一部のフィールドはシリアライズ化データのためグレーの背景になっていることにご注意ください。これらの設定をデータベースに保管している形式の関係で、ここで値を変更することはできません。" #: wp-admin/network/site-info.php:21 wp-admin/network/site-settings.php:20 #: wp-admin/network/site-themes.php:20 wp-admin/network/site-users.php:23 msgid "The menu is for editing information specific to individual sites, particularly if the admin area of a site is unavailable." msgstr "このメニューは各サイトに特定の情報を編集するためのものです。特に、サイトの管理画面が使えない場合に利用できます。" +#: wp-admin/network/sites.php:32 +msgid "Dashboard leads to the Dashboard for that site." +msgstr "「ダッシュボード」は各サイトのダッシュボードにリンクされています。" + +#: wp-admin/network/settings.php:164 +msgid "Allow site administrators to add new users to their site via the \"Users → Add New\" page." +msgstr "「ユーザー → 新規追加」ページからサイト管理者がユーザーを追加できるようにする。" + +#: wp-admin/network/themes.php:127 +msgid "You are about to remove the following theme:" +msgstr "次のテーマを削除しようとしています:" + +#: wp-admin/network/site-users.php:253 +msgid "Select a user to remove." +msgstr "削除するユーザーを選択してください。" + +#: wp-admin/network/themes.php:161 +msgid "Yes, delete this theme" +msgstr "はい、このテーマを削除します" + +#: wp-admin/network/settings.php:35 +msgid "Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges." +msgstr "設定画面から特権管理者を追加することはできません。「サイトネットワーク管理 > ユーザー」画面の既存ユーザー一覧で、ユーザー名またはその下の「編集」リンクをクリックしてください。次のユーザープロフィール編集画面で、特権管理者に昇格させるためのチェックボックスを有効化できます。" + +#: wp-admin/network/site-new.php:24 +msgid "This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings." +msgstr "この画面は特権管理者がサイトネットワークにサイトを追加するために使われます。登録設定には影響を受けません。" + +#: wp-admin/network/themes.php:224 +msgid "Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes." +msgstr "テーマは、サイト編集画面のテーマタブからサイトごとに有効化できます。この画面にはサイト一覧画面の「編集」操作リンクからアクセスできます。テーマのインストールや編集ができるのはサイトネットワーク管理者のみです。" + #: wp-admin/network/site-info.php:23 wp-admin/network/site-settings.php:22 #: wp-admin/network/site-themes.php:22 wp-admin/network/site-users.php:25 msgid "<strong>Users</strong> — This displays the users associated with this site. You can also change their role, reset their password, or remove them from the site. Removing the user from the site does not remove the user from the network." @@ -725,43 +821,11 @@ msgstr "<strong>ユーザー</strong> - このサイトに関連したユーザ msgid "<strong>Info</strong> — The site URL is rarely edited as this can cause the site to not work properly. The Registered date and Last Updated date are displayed. Network admins can mark a site as archived, spam, deleted and mature, to remove from public listings or disable." msgstr "<strong>情報</strong> - サイト URL を変更するとサイトが正しく動作しないため、変更することはほとんどないでしょう。登録日と最終更新日が表示されます。サイトネットワーク管理者はサイトをアーカイブ化、スパム、削除済み、アダルトとして指定して公開リストから除外したり利用を停止させたりできます。" -#: wp-admin/network/site-info.php:25 wp-admin/network/site-settings.php:24 -#: wp-admin/network/site-themes.php:24 wp-admin/network/site-users.php:27 -msgid "<strong>Settings</strong> — This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database." -msgstr "<strong>設定</strong> - このページでは、このサイトに関連する設定をすべて表示しています。WordPress が作成したものもあれば、有効化したプラグインが作成したものもあります。一部のフィールドはシリアライズ化データのためグレーの背景になっていることにご注意ください。これらの設定をデータベースに保管している形式の関係で、ここで値を変更することはできません。" - -#: wp-admin/network/themes.php:171 -msgid "No, return me to the theme list" -msgstr "いいえ、テーマ一覧に戻ります" - -#. translators: %s: site name -#: wp-admin/network/site-info.php:131 wp-admin/network/site-settings.php:84 -#: wp-admin/network/site-themes.php:167 wp-admin/network/site-users.php:200 -msgid "Edit Site: %s" -msgstr "サイトを編集: %s" - #: wp-admin/network/site-info.php:24 wp-admin/network/site-settings.php:23 #: wp-admin/network/site-themes.php:23 wp-admin/network/site-users.php:26 msgid "<strong>Themes</strong> — This area shows themes that are not already enabled across the network. Enabling a theme in this menu makes it accessible to this site. It does not activate the theme, but allows it to show in the site’s Appearance menu. To enable a theme for the entire network, see the <a href=\"%s\">Network Themes</a> screen." msgstr "<strong>テーマ</strong> - ここではまだサイトネットワーク全体で有効化されていないテーマを表示します。このメニューでテーマを有効化するとサイトからアクセスできるようになります。テーマの利用を開始するわけではなく、サイトの「外観」メニューに表示されるだけです。サイトネットワーク全体でテーマを有効化するには、<a href=\"%s\">サイトネットワークテーマ</a>画面をご覧ください。" -#: wp-admin/network/site-themes.php:201 wp-admin/network/themes.php:291 -msgid "No theme selected." -msgstr "テーマが選択されていません。" - -#: wp-admin/network/site-themes.php:187 wp-admin/network/themes.php:269 -msgid "Theme enabled." -msgstr "%s 個のテーマを有効化しました。" - -#: wp-admin/network/site-info.php:37 wp-admin/network/site-settings.php:36 -#: wp-admin/network/site-themes.php:57 wp-admin/network/site-users.php:52 -msgid "Invalid site ID." -msgstr "無効なサイト ID です。" - -#: wp-admin/network/site-themes.php:195 wp-admin/network/themes.php:277 -msgid "Theme disabled." -msgstr "%s 個のテーマを無効化しました。" - #: wp-admin/network/user-new.php:20 msgid "Add User will set up a new user account on the network and send that person an email with username and password." msgstr "「ユーザーを追加」は、サイトネットワークにユーザーアカウントを作成し、その人にユーザー名とパスワードを知らせるメールを送信します。" @@ -774,89 +838,40 @@ msgstr "サイトネットワークで有効化されたテーマはこの画面 msgid "Network Settings" msgstr "サイトネットワークの設定" -#: wp-admin/network/themes.php:125 -msgid "Delete Theme" -msgstr "テーマを削除" - #: wp-admin/network/themes.php:126 msgid "This theme may be active on other sites in the network." msgstr "このテーマはサイトネットワークの他のサイトで使用中です。" -#: wp-admin/network/themes.php:127 -msgid "You are about to remove the following theme:" -msgstr "次のテーマを削除しようとしています:" - -#: wp-admin/network/themes.php:161 -msgid "Yes, delete this theme" -msgstr "はい、このテーマを削除します" - -#: wp-admin/network/themes.php:148 -msgid "Are you sure you wish to delete these themes?" -msgstr "ほんとうにこれらのテーマを削除しますか ?" - -#: wp-admin/network/site-new.php:179 wp-admin/network/site-new.php:189 -msgid "Add New Site" -msgstr "サイトを追加" - -#: wp-admin/network/themes.php:293 -msgid "You cannot delete a theme while it is active on the main site." -msgstr "メインのサイトで使用中のテーマは削除できません。" - -#: wp-admin/network/site-users.php:241 -msgid "Enter the username of an existing user." -msgstr "既存のユーザーのユーザー名を入力してください。" - -#: wp-admin/network/site-info.php:126 -msgid "Site info updated." -msgstr "サイト情報を更新しました。" - -#: wp-admin/network/site-users.php:238 -msgid "User is already a member of this site." -msgstr "ユーザーは既にこのサイトのメンバーです。" - -#: wp-admin/network/sites.php:144 -msgid "Sorry, you are not allowed to delete the site." -msgstr "サイトを削除する権限がありません。" - -#: wp-admin/network/user-new.php:49 -msgid "Cannot add user." -msgstr "ユーザーを追加できません。" - -#: wp-admin/network/site-users.php:307 wp-admin/network/user-new.php:129 -msgid "Add User" -msgstr "ユーザーを追加" - -#: wp-admin/network/site-users.php:256 -msgid "User created." -msgstr "ユーザーを作成しました。" - -#: wp-admin/network/site-users.php:253 -msgid "Select a user to remove." -msgstr "削除するユーザーを選択してください。" +#: wp-admin/includes/network.php:128 +msgid "Return to Dashboard" +msgstr "ダッシュボードに戻る" -#: wp-admin/network/site-users.php:247 -msgid "Select a user to change role." -msgstr "権限を変更するユーザーを選択してください。" +#: wp-admin/includes/network.php:113 wp-admin/includes/network.php:373 +#: wp-admin/includes/network.php:545 wp-admin/includes/network.php:585 +msgid "Warning:" +msgstr "警告:" -#: wp-admin/network/site-users.php:259 -msgid "Enter the username and email." -msgstr "ユーザー名とメールアドレスを入力してください。" +#: wp-admin/network.php:64 +msgid "The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with “/blog/” from the main site. This disabling will be addressed in a future version." +msgstr "この設定が1ヶ月以上前に行われた場合、メインサイトからの “blog” ディレクトリのパーマリンクに関連する問題のため、サブディレクトリサイトの選択肢が無効になっています。将来のバージョンでは対応する予定です。" -#: wp-admin/network.php:63 -msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar." -msgstr "このコードを追加してブラウザーで再読み込みを行うと、マルチサイトが有効化されます。追加コードのアーカイブは「サイトネットワーク管理」」ナビゲーションメニューからアクセスできるこの画面に保存されます。同メニューをクリックするか、ツールバードロップダウンにある「参加サイト」から各サイト名をクリックすることで、サイトネットワーク管理画面とサイト管理画面を切り替えられます。" +#: wp-admin/includes/network.php:204 +msgid "You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality." +msgstr "バーチャルホスト (サブドメイン) 機能を使う場合は、ワイルドカード DNS レコードが必要です。" -#: wp-admin/includes/network.php:140 -msgid "ERROR: The network could not be created." -msgstr "エラー: サイトネットワークが作成できませんでした。" +#: wp-admin/includes/network.php:208 +msgid "Sub-domains" +msgstr "サブドメイン" -#: wp-admin/includes/network.php:216 -msgid "Sub-directories" -msgstr "サブディレクトリ" +#: wp-admin/includes/network.php:475 +msgid "To make your installation more secure, you should also add:" +msgstr "インストールをさらに安全にするため、次を追加するとよいでしょう。" -#: wp-admin/network.php:71 -msgid "Network" -msgstr "サイトネットワーク" +#. translators: 1: hostname +#: wp-admin/includes/network.php:219 +msgctxt "subdirectory examples" +msgid "like <code>%1$s/site1</code> and <code>%1$s/site2</code>" +msgstr "例: <code>%1$s/site1</code>, <code>%1$s/site2</code> など" #. translators: 1: hostname #: wp-admin/includes/network.php:211 @@ -864,155 +879,140 @@ msgctxt "subdomain examples" msgid "like <code>site1.%1$s</code> and <code>site2.%1$s</code>" msgstr "例: <code>site1.%1$s</code>, <code>site2.%1$s</code> など" -#: wp-admin/includes/network.php:201 -msgid "Addresses of Sites in your Network" -msgstr "サイトネットワーク内のサイトアドレス" +#: wp-admin/includes/network.php:216 +msgid "Sub-directories" +msgstr "サブディレクトリ" -#: wp-admin/includes/network.php:113 wp-admin/includes/network.php:373 -#: wp-admin/includes/network.php:545 wp-admin/includes/network.php:585 -msgid "Warning:" -msgstr "警告:" +#: wp-admin/includes/network.php:594 +msgid "Once you complete these steps, your network is enabled and configured. You will have to log in again." +msgstr "これらの手順を完了すると設定されたサイトネットワークを有効化します。あなたは再度ログインする必要があります。" -#: wp-admin/network.php:29 -msgid "The Network creation panel is not for WordPress MU networks." -msgstr "サイトネットワーク作成パネルは WordPress MU ネットワーク向けではありません。" +#: wp-admin/includes/network.php:386 +msgid "Complete the following steps to enable the features for creating a network of sites." +msgstr "サイトネットワーク作成機能を有効化するには、次の手順を実行します。" -#: wp-admin/includes/network.php:128 -msgid "Return to Dashboard" -msgstr "ダッシュボードに戻る" +#: wp-admin/includes/network.php:385 +msgid "Enabling the Network" +msgstr "サイトネットワークで使用中" -#: wp-admin/network.php:55 -msgid "Create a Network of WordPress Sites" -msgstr "WordPress サイトネットワークの作成" +#: wp-admin/includes/network.php:285 +msgid "Sub-domain Install" +msgstr "サブドメインインストール" -#: wp-admin/network.php:59 -msgid "This screen allows you to configure a network as having subdomains (<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</code>). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it." -msgstr "この画面では、サブドメイン (<code>site1.example.com</code>) あるいはサブディレクトリ (<code>example.com/site1</code>) を持つサイトネットワークを設定できます。ホスティングサイトが許可している場合、サブドメインを使うには Apache と DNS レコードでワイルドカードサブドメインを有効化する必要があります。" +#: wp-admin/includes/network.php:234 wp-admin/includes/network.php:244 +#: wp-admin/includes/network.php:293 +msgid "Server Address" +msgstr "サーバーアドレス" #: wp-admin/includes/network.php:260 wp-admin/includes/network.php:275 msgid "Sub-directory Install" msgstr "サブディレクトリインストール" -#: wp-admin/includes/network.php:113 -msgid "Please <a href=\"%s\">deactivate your plugins</a> before enabling the Network feature." -msgstr "サイトネットワーク機能を有効化する前に<a href=\"%s\">プラグインを無効化</a>してください。" - -#: wp-admin/includes/network.php:113 -msgid "Once the network is created, you may reactivate your plugins." -msgstr "サイトネットワークを作成後、プラグインを再有効化できます。" - -#: wp-admin/network.php:64 -msgid "The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with “/blog/” from the main site. This disabling will be addressed in a future version." -msgstr "この設定が1ヶ月以上前に行われた場合、メインサイトからの “blog” ディレクトリのパーマリンクに関連する問題のため、サブディレクトリサイトの選択肢が無効になっています。将来のバージョンでは対応する予定です。" - -#: wp-admin/includes/network.php:160 -msgid "Welcome to the Network installation process!" -msgstr "サイトネットワークのインストールプロセスへようこそ。" - #: wp-admin/includes/network.php:256 msgid "Network Details" msgstr "サイトネットワークの詳細" -#: wp-admin/includes/network.php:105 -msgid "The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network." -msgstr "サイトネットワークを作成する際に定数 DO_NOT_UPGRADE_GLOBAL_TABLES を定義できませんでした。" - -#: wp-admin/includes/network.php:594 -msgid "Once you complete these steps, your network is enabled and configured. You will have to log in again." -msgstr "これらの手順を完了すると設定されたサイトネットワークを有効化します。あなたは再度ログインする必要があります。" - -#: wp-admin/network.php:61 -msgid "The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files." -msgstr "次の「サイトネットワークの設置」画面では、wp-config.php と .htaccess に追加するコードが表示されます。.htaccess ファイルを見つけられるよう、FTP クライアントの設定でファイル名がドットで始まる不可視ファイルを表示するようにしておいてください。まだこのファイルがない場合は作成する必要があるかもしれません。これら2つのファイルは、バックアップコピーをとっておいてください。" - -#: wp-admin/network.php:60 -msgid "Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your install. Fill out the network details, and click install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories)." -msgstr "サブドメインまたはサブディレクトリを選択してください。これは、インストール設定を変更しない限り後から切り替えることはできません。サイトネットワーク詳細を記入し、インストールボタンをクリックしてください。うまくいかなかった場合、ワイルドカード DNS レコードを追加する (サブドメインの場合) か、パーマリンクの設定を別のものに変更する (サブディレクトリの場合) する必要があるかもしれません。" +#: wp-admin/includes/network.php:160 +msgid "Welcome to the Network installation process!" +msgstr "サイトネットワークのインストールプロセスへようこそ。" -#: wp-admin/includes/network.php:475 -msgid "To make your installation more secure, you should also add:" -msgstr "インストールをさらに安全にするため、次を追加するとよいでしょう。" +#: wp-admin/includes/network.php:373 +msgid "An existing WordPress network was detected." +msgstr "既存の WordPress サイトネットワークが検知されました。" -#: wp-admin/includes/network.php:208 -msgid "Sub-domains" -msgstr "サブドメイン" +#: wp-admin/includes/network.php:113 +msgid "Please <a href=\"%s\">deactivate your plugins</a> before enabling the Network feature." +msgstr "サイトネットワーク機能を有効化する前に<a href=\"%s\">プラグインを無効化</a>してください。" #: wp-admin/includes/network.php:180 wp-admin/includes/network.php:229 #: wp-admin/includes/network.php:270 wp-admin/includes/network.php:280 msgid "Warning!" msgstr "警告!" -#: wp-admin/includes/network.php:204 -msgid "You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality." -msgstr "バーチャルホスト (サブドメイン) 機能を使う場合は、ワイルドカード DNS レコードが必要です。" +#: wp-admin/includes/network.php:113 +msgid "Once the network is created, you may reactivate your plugins." +msgstr "サイトネットワークを作成後、プラグインを再有効化できます。" -#: wp-admin/includes/network.php:122 -msgid "You cannot install a network of sites with your server address." -msgstr "このサーバーアドレスにはサイトネットワークをインストールできません。" +#: wp-admin/includes/network.php:286 +msgid "Because your install is not new, the sites in your WordPress network must use sub-domains." +msgstr "新規インストールではないため、WordPressのサイトネットワーク内のサイトはサブドメインを使用する必要があります。" + +#: wp-admin/includes/network.php:201 +msgid "Addresses of Sites in your Network" +msgstr "サイトネットワーク内のサイトアドレス" #: wp-admin/includes/network.php:161 msgid "Fill in the information below and you’ll be on your way to creating a network of WordPress sites. We will create configuration files in the next step." msgstr "以下の情報を記入すれば WordPress サイトネットワークの作成を開始できます。次のステップで設定ファイルを作成します。" -#: wp-admin/includes/network.php:386 -msgid "Complete the following steps to enable the features for creating a network of sites." -msgstr "サイトネットワーク作成機能を有効化するには、次の手順を実行します。" - -#: wp-admin/includes/network.php:385 -msgid "Enabling the Network" -msgstr "サイトネットワークで使用中" - #: wp-admin/includes/network.php:374 msgid "Please complete the configuration steps. To create a new network, you will need to empty or remove the network database tables." msgstr "設定手順を完了してください。新しいサイトネットワークを作成するには、サイトネットワークのデータベーステーブルを空にするか削除する必要があります。" -#: wp-admin/includes/network.php:373 -msgid "An existing WordPress network was detected." -msgstr "既存の WordPress サイトネットワークが検知されました。" +#: wp-admin/includes/network.php:304 wp-admin/network/settings.php:105 +msgid "Network Title" +msgstr "サイトネットワーク名" -#: wp-admin/includes/network.php:368 -msgid "The original configuration steps are shown here for reference." -msgstr "参考のため、元の設定手順をここに表示します。" +#: wp-admin/includes/network.php:270 wp-admin/includes/network.php:280 +#: wp-admin/includes/network.php:287 +msgid "The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links." +msgstr "サブディレクトリ内にインストールされたメインサイトは、既存のパーマリンクを壊す可能性があるため、パーマリンクの修正が必要になります。" + +#: wp-admin/includes/network.php:140 +msgid "ERROR: The network could not be created." +msgstr "エラー: サイトネットワークが作成できませんでした。" #: wp-admin/includes/network.php:317 msgid "Your email address." msgstr "あなたのメールアドレス。" -#: wp-admin/includes/network.php:308 -msgid "What would you like to call your network?" -msgstr "サイトネットワークを何と呼びますか ?" - -#: wp-admin/includes/network.php:304 wp-admin/network/settings.php:105 -msgid "Network Title" -msgstr "サイトネットワーク名" - -#: wp-admin/includes/network.php:286 -msgid "Because your install is not new, the sites in your WordPress network must use sub-domains." -msgstr "新規インストールではないため、WordPressのサイトネットワーク内のサイトはサブドメインを使用する必要があります。" +#: wp-admin/includes/network.php:122 +msgid "You cannot install a network of sites with your server address." +msgstr "このサーバーアドレスにはサイトネットワークをインストールできません。" -#: wp-admin/includes/network.php:285 -msgid "Sub-domain Install" -msgstr "サブドメインインストール" +#: wp-admin/includes/network.php:368 +msgid "The original configuration steps are shown here for reference." +msgstr "参考のため、元の設定手順をここに表示します。" #: wp-admin/includes/network.php:277 msgid "Because your install is in a directory, the sites in your WordPress network must use sub-directories." msgstr "この WordPress はディレクトリにインストールされているため、サイトネットワーク内のサイトはサブディレクトリを使う必要があります。" -#: wp-admin/includes/network.php:270 wp-admin/includes/network.php:280 -#: wp-admin/includes/network.php:287 -msgid "The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links." -msgstr "サブディレクトリ内にインストールされたメインサイトは、既存のパーマリンクを壊す可能性があるため、パーマリンクの修正が必要になります。" +#: wp-admin/network.php:63 +msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar." +msgstr "このコードを追加してブラウザーで再読み込みを行うと、マルチサイトが有効化されます。追加コードのアーカイブは「サイトネットワーク管理」」ナビゲーションメニューからアクセスできるこの画面に保存されます。同メニューをクリックするか、ツールバードロップダウンにある「参加サイト」から各サイト名をクリックすることで、サイトネットワーク管理画面とサイト管理画面を切り替えられます。" -#: wp-admin/includes/network.php:234 wp-admin/includes/network.php:244 -#: wp-admin/includes/network.php:293 -msgid "Server Address" -msgstr "サーバーアドレス" +#: wp-admin/network.php:71 +msgid "Network" +msgstr "サイトネットワーク" -#. translators: 1: hostname -#: wp-admin/includes/network.php:219 -msgctxt "subdirectory examples" -msgid "like <code>%1$s/site1</code> and <code>%1$s/site2</code>" -msgstr "例: <code>%1$s/site1</code>, <code>%1$s/site2</code> など" +#: wp-admin/network.php:29 +msgid "The Network creation panel is not for WordPress MU networks." +msgstr "サイトネットワーク作成パネルは WordPress MU ネットワーク向けではありません。" + +#: wp-admin/network.php:55 +msgid "Create a Network of WordPress Sites" +msgstr "WordPress サイトネットワークの作成" + +#: wp-admin/network.php:59 +msgid "This screen allows you to configure a network as having subdomains (<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</code>). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it." +msgstr "この画面では、サブドメイン (<code>site1.example.com</code>) あるいはサブディレクトリ (<code>example.com/site1</code>) を持つサイトネットワークを設定できます。ホスティングサイトが許可している場合、サブドメインを使うには Apache と DNS レコードでワイルドカードサブドメインを有効化する必要があります。" + +#: wp-admin/includes/network.php:105 +msgid "The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network." +msgstr "サイトネットワークを作成する際に定数 DO_NOT_UPGRADE_GLOBAL_TABLES を定義できませんでした。" + +#: wp-admin/network.php:61 +msgid "The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files." +msgstr "次の「サイトネットワークの設置」画面では、wp-config.php と .htaccess に追加するコードが表示されます。.htaccess ファイルを見つけられるよう、FTP クライアントの設定でファイル名がドットで始まる不可視ファイルを表示するようにしておいてください。まだこのファイルがない場合は作成する必要があるかもしれません。これら2つのファイルは、バックアップコピーをとっておいてください。" + +#: wp-admin/network.php:60 +msgid "Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your install. Fill out the network details, and click install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories)." +msgstr "サブドメインまたはサブディレクトリを選択してください。これは、インストール設定を変更しない限り後から切り替えることはできません。サイトネットワーク詳細を記入し、インストールボタンをクリックしてください。うまくいかなかった場合、ワイルドカード DNS レコードを追加する (サブドメインの場合) か、パーマリンクの設定を別のものに変更する (サブディレクトリの場合) する必要があるかもしれません。" + +#: wp-admin/includes/network.php:308 +msgid "What would you like to call your network?" +msgstr "サイトネットワークを何と呼びますか ?" #: wp-admin/network/users.php:70 msgid "Warning! User cannot be modified. The user %s is a network administrator." @@ -1026,14 +1026,14 @@ msgstr "各サイトをマウスオーバーするとオプションが7つ表 msgid "The site ID is used internally, and is not shown on the front end of the site or to users/viewers." msgstr "サイト ID は 内部で使われます。サイトや、ユーザー/訪問者のフロントエンドには表示されません。" -#: wp-admin/network/sites.php:33 -msgid "Deactivate, Archive, and Spam which lead to confirmation screens. These actions can be reversed later." -msgstr "「停止」「アーカイブ」「スパム」をクリックすると確認画面に移動します。これらの操作は後から元に戻すことができます。" - #: wp-admin/network/site-new.php:25 msgid "If the admin email for the new site does not exist in the database, a new user will also be created." msgstr "新規サイトの管理者のメールアドレスがデータベースに存在しない場合、新規ユーザーも作られます。" +#: wp-admin/network/sites.php:33 +msgid "Deactivate, Archive, and Spam which lead to confirmation screens. These actions can be reversed later." +msgstr "「停止」「アーカイブ」「スパム」をクリックすると確認画面に移動します。これらの操作は後から元に戻すことができます。" + #: wp-admin/network/settings.php:29 msgid "Operational settings has fields for the network’s name and admin email." msgstr "運用設定には、サイトネットワーク名と管理者メールアドレスの記入欄があります。" @@ -1042,49 +1042,53 @@ msgstr "運用設定には、サイトネットワーク名と管理者メール msgid "Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only)." msgstr "アップロード設定ではアップロードされるファイルのサイズと、それぞれのサイトで利用できるアップロード容量を調整できます。特定のサイトを編集するときに、そのサイトのデフォルト値を変更できます。許可されたファイルタイプをリストに入力します (スペースで区切ります)。" -#: wp-admin/network/users.php:173 -msgid "The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses." -msgstr "一括操作により、選択したユーザーを永久に削除したり、スパム判定を切り替えることができます。スパムユーザーの投稿は削除され、同じメールアドレスでは再び登録できなくなります。" - #: wp-admin/network/users.php:171 msgid "You can also go to the user’s profile page by clicking on the individual username." msgstr "ユーザーの名前をクリックして、各々のユーザーのプロフィール画面にいくこともできます。" +#: wp-admin/network/users.php:173 +msgid "The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses." +msgstr "一括操作により、選択したユーザーを永久に削除したり、スパム判定を切り替えることができます。スパムユーザーの投稿は削除され、同じメールアドレスでは再び登録できなくなります。" + #: wp-admin/network/sites.php:35 msgid "Visit to go to the front-end site live." msgstr "「表示」は稼働中のフロントエンドのサイトにアクセスします。" +#: wp-admin/network/settings.php:34 +msgid "Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins." +msgstr "メニュー設定で、特権管理者以外のユーザーに対してプラグインメニューを表示または非表示にできます。非表示にすると、特権管理者ではないサイト管理者はプラグインの有効化操作ができなくなります。" + +#: wp-admin/network/themes.php:222 +msgid "This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using." +msgstr "この画面では、テーマを各サイトの「外観」パネルで選択できる、またはできないようにします。現在サイトが使用しているテーマの有効化または停止ではありません。" + #: wp-admin/network/users.php:174 msgid "You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege." msgstr "ユーザープロフィール編集画面にいき、チェックボックスにチェックして権限を昇格させることで、既存のユーザーを追加の特権管理者にすることができます。" -#: wp-admin/network/users.php:169 -msgid "This table shows all users across the network and the sites to which they are assigned." -msgstr "このテーブルでは、サイトネットワーク上のすべてのユーザーと所属するサイトを表示しています。" +#: wp-admin/network/upgrade.php:24 +msgid "If this process fails for any reason, users logging in to their sites will force the same update." +msgstr "何らかの理由でこのプロセスが失敗した場合、ユーザーのサイトへのログインと同時に更新を行います。" #: wp-admin/network/upgrade.php:23 msgid "If a version update to core has not happened, clicking this button won’t affect anything." msgstr "コアに対するバージョンの更新がない場合は、このボタンをクリックしても何も起きません。" -#: wp-admin/network/upgrade.php:24 -msgid "If this process fails for any reason, users logging in to their sites will force the same update." -msgstr "何らかの理由でこのプロセスが失敗した場合、ユーザーのサイトへのログインと同時に更新を行います。" - #: wp-admin/network/users.php:172 msgid "You can sort the table by clicking on any of the table headings and switch between list and excerpt views by using the icons above the users list." msgstr "見出しをクリックすればテーブルを並び替えられます。ユーザー一覧の上のアイコンを使って、一覧・抜粋表示を切り替えられます。" -#: wp-admin/network/user-new.php:21 -msgid "Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them." -msgstr "サイトを作成せずサイトネットワークに登録したユーザーは、メインダッシュボードサイトの購読者として追加され、同サイト上でアカウント管理用のプロフィールページが与えられます。サイトを作成するまでは、これらのユーザーにはメインナビゲーションでダッシュボードと参加サイトのみが表示されます。" - #: wp-admin/network/sites.php:29 msgid "This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table." msgstr "これはサイトネットワーク上の全サイトのメインテーブルです。テーブル右上のアイコンを使って一覧・概要表示を切り替えることができます。" -#: wp-admin/network/settings.php:34 -msgid "Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins." -msgstr "メニュー設定で、特権管理者以外のユーザーに対してプラグインメニューを表示または非表示にできます。非表示にすると、特権管理者ではないサイト管理者はプラグインの有効化操作ができなくなります。" +#: wp-admin/network/users.php:169 +msgid "This table shows all users across the network and the sites to which they are assigned." +msgstr "このテーブルでは、サイトネットワーク上のすべてのユーザーと所属するサイトを表示しています。" + +#: wp-admin/network/user-new.php:21 +msgid "Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them." +msgstr "サイトを作成せずサイトネットワークに登録したユーザーは、メインダッシュボードサイトの購読者として追加され、同サイト上でアカウント管理用のプロフィールページが与えられます。サイトを作成するまでは、これらのユーザーにはメインナビゲーションでダッシュボードと参加サイトのみが表示されます。" #: wp-admin/network/settings.php:30 msgid "Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network." @@ -1098,10 +1102,6 @@ msgstr "この画面でサイトネットワーク全体の設定を指定、変 msgid "If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site’s Appearance > Themes screen." msgstr "サイトネットワーク管理者が利用中のテーマを停止した場合、そのテーマをサイト上で使い続けることはできます。その後に他のテーマを選ぶと、停止されたテーマはサイトの「外観 > テーマ」画面に表示されなくなります。" -#: wp-admin/network/themes.php:222 -msgid "This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using." -msgstr "この画面では、テーマを各サイトの「外観」パネルで選択できる、またはできないようにします。現在サイトが使用しているテーマの有効化または停止ではありません。" - #: wp-admin/network/settings.php:31 msgid "New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what᾿s put in the first post, page, comment, comment author, and comment URL." msgstr "新規サイト設定は、新しいサイトがサイトネットワークに作られるときに適用されるデフォルトの状態です。これには、新しいサイトやアカウントが登録された時のようこそメールや、最初の投稿、ページ、コメント、コメントの作成者、コメント URL も含まれます。" @@ -1111,50 +1111,54 @@ msgstr "新規サイト設定は、新しいサイトがサイトネットワー msgid "The following words are reserved for use by WordPress functions and cannot be used as blog names: %s" msgstr "以下の語句は WordPress の機能によって予約されており、ブログ名として使うことはできません: %s" -#: wp-admin/network/upgrade.php:112 -msgid "If your browser doesn’t start loading the next page automatically, click this link:" -msgstr "次のページに自動で移動しない場合は、以下のリンクをクリックしてください。" - #: wp-admin/network/site-new.php:38 msgid "Can’t create an empty site." msgstr "空のサイトは作成できません。" -#: wp-admin/network/settings.php:197 -msgid "If you want to ban domains from site registrations. One domain per line." -msgstr "特定のドメインからのサイト登録を禁止したい場合、禁止するドメインを改行で区切って入力してください。" +#: wp-admin/network/settings.php:186 +msgid "If you want to limit site registrations to certain domains. One domain per line." +msgstr "特定のドメインからのみのサイト登録を許可したい場合、許可するドメインを改行で区切って入力してください。" + +#: wp-admin/network/settings.php:197 +msgid "If you want to ban domains from site registrations. One domain per line." +msgstr "特定のドメインからのサイト登録を禁止したい場合、禁止するドメインを改行で区切って入力してください。" + +#: wp-admin/network/upgrade.php:112 +msgid "If your browser doesn’t start loading the next page automatically, click this link:" +msgstr "次のページに自動で移動しない場合は、以下のリンクをクリックしてください。" + +#: wp-admin/network/sites.php:236 +msgid "Sites marked as spam." +msgstr "サイトをスパムとしてマークしました。" -#: wp-admin/network/settings.php:186 -msgid "If you want to limit site registrations to certain domains. One domain per line." -msgstr "特定のドメインからのみのサイト登録を許可したい場合、許可するドメインを改行で区切って入力してください。" +#: wp-admin/network/sites.php:263 +msgid "Site marked as spam." +msgstr "サイトをスパムとしてマークしました。" -#: wp-admin/network/sites.php:260 -msgid "Site removed from spam." +#: wp-admin/network/sites.php:233 +msgid "Sites removed from spam." msgstr "サイトのスパム判定を解除しました。" #: wp-admin/network/users.php:203 msgid "Users removed from spam." msgstr "ユーザーのスパマー判定を解除しました。" -#: wp-admin/network/sites.php:233 -msgid "Sites removed from spam." +#: wp-admin/network/sites.php:260 +msgid "Site removed from spam." msgstr "サイトのスパム判定を解除しました。" -#: wp-admin/network/sites.php:236 -msgid "Sites marked as spam." -msgstr "サイトをスパムとしてマークしました。" +#: wp-admin/network/sites.php:239 +msgid "Sites deleted." +msgstr "サイトを削除しました。" -#: wp-admin/network/sites.php:263 -msgid "Site marked as spam." -msgstr "サイトをスパムとしてマークしました。" +#: wp-admin/network/sites.php:242 +msgid "Site deleted." +msgstr "サイトを削除しました。" #: wp-admin/network/sites.php:248 msgid "Site archived." msgstr "サイトをアーカイブ化しました。" -#: wp-admin/network/users.php:206 -msgid "Users deleted." -msgstr "ユーザーを削除しました。" - #: wp-admin/network/sites.php:251 msgid "Site unarchived." msgstr "サイトのアーカイブ化を解除しました。" @@ -1163,30 +1167,26 @@ msgstr "サイトのアーカイブ化を解除しました。" msgid "Site activated." msgstr "サイトを有効化しました。" -#: wp-admin/network/sites.php:257 -msgid "Site deactivated." -msgstr "サイトを停止しました。" - #: wp-admin/network/users.php:200 msgid "Users marked as spam." msgstr "ユーザーをスパマーとしてマークしました。" -#: wp-admin/network/sites.php:242 -msgid "Site deleted." -msgstr "サイトを削除しました。" - -#: wp-admin/network/sites.php:239 -msgid "Sites deleted." -msgstr "サイトを削除しました。" +#: wp-admin/network/users.php:206 +msgid "Users deleted." +msgstr "ユーザーを削除しました。" -#: wp-admin/network/sites.php:91 wp-admin/network/sites.php:157 -msgid "Sorry, you are not allowed to change the current site." -msgstr "このサイトを変更する権限がありません。" +#: wp-admin/network/sites.php:257 +msgid "Site deactivated." +msgstr "サイトを停止しました。" #: wp-admin/network/site-new.php:116 msgid "There was an error creating the user." msgstr "誤りがあったためユーザーを作成できませんでした。" +#: wp-admin/network/sites.php:91 wp-admin/network/sites.php:157 +msgid "Sorry, you are not allowed to change the current site." +msgstr "このサイトを変更する権限がありません。" + #: wp-admin/network/settings.php:297 msgid "Upload file types" msgstr "アップロード可能なファイル形式" @@ -1195,26 +1195,26 @@ msgstr "アップロード可能なファイル形式" msgid "Limit total size of files uploaded to %s MB" msgstr "アップロードファイルの合計を %s MB に制限" -#: wp-admin/network/settings.php:279 -msgid "The URL for the first comment on a new site." -msgstr "新規サイトの最初のコメント投稿者サイト URL。" - -#: wp-admin/network/settings.php:252 -msgid "The first comment on a new site." -msgstr "新規サイトの最初のコメント。" +#: wp-admin/network/settings.php:232 +msgid "The first post on a new site." +msgstr "新規サイトの最初の投稿。" #: wp-admin/network/settings.php:242 msgid "The first page on a new site." msgstr "新規サイトの最初の固定ページ。" -#: wp-admin/network/settings.php:232 -msgid "The first post on a new site." -msgstr "新規サイトの最初の投稿。" +#: wp-admin/network/settings.php:252 +msgid "The first comment on a new site." +msgstr "新規サイトの最初のコメント。" #: wp-admin/network/settings.php:261 msgid "The author of the first comment on a new site." msgstr "新規サイトの最初のコメント投稿者名。" +#: wp-admin/network/settings.php:279 +msgid "The URL for the first comment on a new site." +msgstr "新規サイトの最初のコメント投稿者サイト URL。" + #: wp-admin/network/upgrade.php:68 msgid "All done!" msgstr "すべて完了しました。" @@ -1227,13 +1227,17 @@ msgstr "新規登録を許可しない。" msgid "User accounts may be registered." msgstr "ユーザーアカウントの新規登録を許可する。" +#: wp-admin/network/settings.php:135 +msgid "Logged in users may register new sites." +msgstr "ログイン中のユーザーによる新規サイト登録を許可する。" + #: wp-admin/network/settings.php:136 msgid "Both sites and user accounts can be registered." msgstr "新規サイトおよびユーザーアカウントの登録をどちらも許可する。" -#: wp-admin/network/settings.php:135 -msgid "Logged in users may register new sites." -msgstr "ログイン中のユーザーによる新規サイト登録を許可する。" +#: wp-admin/network/settings.php:284 +msgid "Upload Settings" +msgstr "アップロード設定" #: wp-admin/network/settings.php:121 msgid "Registration Settings" @@ -1243,25 +1247,34 @@ msgstr "登録の設定" msgid "New Site Settings" msgstr "新規サイト設定" -#: wp-admin/network/settings.php:284 -msgid "Upload Settings" -msgstr "アップロード設定" +#: wp-admin/network/settings.php:358 +msgid "Enable administration menus" +msgstr "管理メニューを有効化" #: wp-admin/network/settings.php:102 msgid "Operational Settings" msgstr "運用設定" -#: wp-admin/network/settings.php:358 -msgid "Enable administration menus" -msgstr "管理メニューを有効化" +#: wp-admin/network/site-new.php:78 +msgid "Missing or invalid site address." +msgstr "サイトのアドレスがないか、または間違っています。" #: wp-admin/network/site-new.php:81 msgid "Missing email address." msgstr "メールアドレスがありません。" -#: wp-admin/network/site-new.php:78 -msgid "Missing or invalid site address." -msgstr "サイトのアドレスがないか、または間違っています。" +#. translators: %s: network name +#: wp-admin/network/site-new.php:141 +msgid "[%s] New Site Created" +msgstr "[%s] 新しいサイトを作成しました" + +#: wp-admin/network/settings.php:212 +msgid "The welcome email sent to new site owners." +msgstr "新規サイト所有者に送信される案内メール。" + +#: wp-admin/network/settings.php:287 +msgid "Site upload space" +msgstr "サイトのアップロード容量" #: wp-admin/network/upgrade.php:112 msgid "Next Sites" @@ -1271,111 +1284,98 @@ msgstr "次のサイトへ" msgid "Users are not allowed to register these sites. Separate names by spaces." msgstr "登録できないサイト名。半角スペースで区切ってください。" +#: wp-admin/includes/network.php:313 wp-admin/network/settings.php:112 +msgid "Network Admin Email" +msgstr "サイトネットワーク管理者のメールアドレス" + #: wp-admin/network/settings.php:157 msgid "Send the network admin an email notification every time someone registers a site or user account." msgstr "新しいサイトまたはユーザーが登録されたらサイトネットワーク管理者にメールで通知する。" -#: wp-admin/network/settings.php:287 -msgid "Site upload space" -msgstr "サイトのアップロード容量" +#: wp-admin/network/sites.php:107 +msgid "Confirm" +msgstr "確認" -#: wp-admin/network/settings.php:212 -msgid "The welcome email sent to new site owners." -msgstr "新規サイト所有者に送信される案内メール。" +#: wp-admin/network/site-users.php:262 +msgid "Duplicated username or email address." +msgstr "このユーザー名もしくはメールアドレスは使用されています。" -#. translators: %s: network name -#: wp-admin/network/site-new.php:141 -msgid "[%s] New Site Created" -msgstr "[%s] 新しいサイトを作成しました" +#: wp-admin/network/settings.php:151 +msgid "Registration notification" +msgstr "登録通知" -#: wp-admin/includes/network.php:313 wp-admin/network/settings.php:112 -msgid "Network Admin Email" -msgstr "サイトネットワーク管理者のメールアドレス" +#: wp-admin/network/settings.php:162 +msgid "Add New Users" +msgstr "新規ユーザーの追加" -#: wp-admin/network/site-new.php:248 -msgid "The username and password will be mailed to this email address." -msgstr "ユーザー名とパスワードがこのメールアドレスに送信されます。" +#: wp-admin/network/settings.php:169 +msgid "Banned Names" +msgstr "禁止名" -#: wp-admin/network/site-new.php:248 -msgid "A new user will be created if the above email address is not in the database." -msgstr "上記メールアドレスがデータベースになければ新規ユーザーが作成されます。" +#: wp-admin/network/settings.php:192 +msgid "Banned Email Domains" +msgstr "登録を拒否するメールのドメイン" -#: wp-admin/network/site-new.php:244 -msgid "Admin Email" -msgstr "管理者メールアドレス" +#: wp-admin/network/settings.php:207 +msgid "Welcome Email" +msgstr "案内メール" -#: wp-admin/network/site-new.php:260 -msgid "Add Site" -msgstr "サイトを追加" +#: wp-admin/network/settings.php:217 +msgid "Welcome User Email" +msgstr "新ユーザー案内メール" -#: wp-admin/network/settings.php:331 -msgid "Default Language" -msgstr "初期設定言語:" +#: wp-admin/network/settings.php:222 +msgid "The welcome email sent to new users." +msgstr "新規ユーザーに送信される案内メール。" -#: wp-admin/network/settings.php:307 -msgid "Max upload file size" -msgstr "アップロードファイルの最大サイズ" +#: wp-admin/network/settings.php:237 +msgid "First Page" +msgstr "最初の固定ページ" -#: wp-admin/network/settings.php:275 -msgid "First Comment URL" -msgstr "最初のコメントの URL" +#: wp-admin/network/settings.php:247 +msgid "First Comment" +msgstr "最初のコメント" #: wp-admin/network/settings.php:257 msgid "First Comment Author" msgstr "最初のコメントの投稿者" -#: wp-admin/network/settings.php:247 -msgid "First Comment" -msgstr "最初のコメント" +#: wp-admin/network/settings.php:275 +msgid "First Comment URL" +msgstr "最初のコメントの URL" -#: wp-admin/network/settings.php:237 -msgid "First Page" -msgstr "最初の固定ページ" +#: wp-admin/network/settings.php:307 +msgid "Max upload file size" +msgstr "アップロードファイルの最大サイズ" -#: wp-admin/network/settings.php:222 -msgid "The welcome email sent to new users." -msgstr "新規ユーザーに送信される案内メール。" +#: wp-admin/network/settings.php:331 +msgid "Default Language" +msgstr "初期設定言語:" -#: wp-admin/network/settings.php:217 -msgid "Welcome User Email" -msgstr "新ユーザー案内メール" +#: wp-admin/network/site-new.php:244 +msgid "Admin Email" +msgstr "管理者メールアドレス" -#: wp-admin/network/settings.php:207 -msgid "Welcome Email" -msgstr "案内メール" +#: wp-admin/network/site-new.php:248 +msgid "A new user will be created if the above email address is not in the database." +msgstr "上記メールアドレスがデータベースになければ新規ユーザーが作成されます。" -#: wp-admin/network/settings.php:192 -msgid "Banned Email Domains" -msgstr "登録を拒否するメールのドメイン" +#: wp-admin/network/site-new.php:248 +msgid "The username and password will be mailed to this email address." +msgstr "ユーザー名とパスワードがこのメールアドレスに送信されます。" + +#: wp-admin/network/user-new.php:37 +msgid "Cannot create an empty user." +msgstr "空のユーザーは作成できません。" + +#: wp-admin/network/site-new.php:260 +msgid "Add Site" +msgstr "サイトを追加" #: wp-admin/network/settings.php:179 msgid "Limited Email Registrations" msgstr "登録メールアドレスの制限" -#: wp-admin/network/settings.php:169 -msgid "Banned Names" -msgstr "禁止名" - -#: wp-admin/network/settings.php:162 -msgid "Add New Users" -msgstr "新規ユーザーの追加" - -#: wp-admin/network/settings.php:151 -msgid "Registration notification" -msgstr "登録通知" - #: wp-admin/network/settings.php:124 msgid "Allow new registrations" msgstr "新規登録の許可" - -#: wp-admin/network/site-users.php:262 -msgid "Duplicated username or email address." -msgstr "このユーザー名もしくはメールアドレスは使用されています。" - -#: wp-admin/network/user-new.php:37 -msgid "Cannot create an empty user." -msgstr "空のユーザーは作成できません。" - -#: wp-admin/network/sites.php:107 -msgid "Confirm" -msgstr "確認" diff --git a/wp-content/languages/admin-network-nn_NO.mo b/wp-content/languages/admin-network-nn_NO.mo index 9d4db555d478be60071d3466aef2c761564cd636..ee593a1e7b2292d002c7e9533fdf298acfba3a19 100644 Binary files a/wp-content/languages/admin-network-nn_NO.mo and b/wp-content/languages/admin-network-nn_NO.mo differ diff --git a/wp-content/languages/admin-network-nn_NO.po b/wp-content/languages/admin-network-nn_NO.po index 9dd51e2b2e01df56cb7cf14352f819f794b5d073..77719d42cb8db96f33fd7c2e814dd51ba4bfa970 100644 --- a/wp-content/languages/admin-network-nn_NO.po +++ b/wp-content/languages/admin-network-nn_NO.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration - Network Admin package. msgid "" msgstr "" -"PO-Revision-Date: 2016-11-10 21:48:09+0000\n" +"PO-Revision-Date: 2017-09-25 09:12:43+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -148,7 +148,7 @@ msgstr "Du kan ikkje endre dette på eit seinare tidspunkt." #: wp-admin/includes/network.php:202 msgid "Please choose whether you would like sites in your WordPress network to use sub-domains or sub-directories." -msgstr "Velg om du ønskjer at nettstadene i WordPress-nettverket skal bruke sub-domener eller undermapper." +msgstr "Vel om du ønskjer at nettstadene i WordPress-nettverket skal bruke sub-domene eller undermapper." #. translators: 1: mod_rewrite, 2: mod_rewrite documentation URL, 3: Google #. search for mod_rewrite diff --git a/wp-content/languages/admin-network-ro_RO.mo b/wp-content/languages/admin-network-ro_RO.mo index 20b734f5f1439f07593eb2b5aa85008a7698d3ae..f4c1f09cfb85ac076b644c2ab3209c173ab94506 100644 Binary files a/wp-content/languages/admin-network-ro_RO.mo and b/wp-content/languages/admin-network-ro_RO.mo differ diff --git a/wp-content/languages/admin-network-ro_RO.po b/wp-content/languages/admin-network-ro_RO.po index d5ec62d634610d87bdd74095b04c4fbd8469d1b5..1416fc72c2cc57024b807fd659d74e1f8bb33159 100644 --- a/wp-content/languages/admin-network-ro_RO.po +++ b/wp-content/languages/admin-network-ro_RO.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration - Network Admin package. msgid "" msgstr "" -"PO-Revision-Date: 2017-06-09 08:41:58+0000\n" +"PO-Revision-Date: 2017-09-09 07:52:28+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -271,9 +271,9 @@ msgstr[2] "Activate <span class=\"count\">(%s)</span>" msgctxt "themes" msgid "All <span class=\"count\">(%s)</span>" msgid_plural "All <span class=\"count\">(%s)</span>" -msgstr[0] "În total <span class=\"count\">(%s)</span>" -msgstr[1] "În total <span class=\"count\">(%s)</span>" -msgstr[2] "În total <span class=\"count\">(%s)</span>" +msgstr[0] "Toate <span class=\"count\">(%s)</span>" +msgstr[1] "Toate <span class=\"count\">(%s)</span>" +msgstr[2] "Toate <span class=\"count\">(%s)</span>" #: wp-admin/includes/class-wp-ms-themes-list-table.php:247 msgid "Theme" diff --git a/wp-content/languages/admin-nn_NO.mo b/wp-content/languages/admin-nn_NO.mo index 9ee7b7612695e194103d874900789f247780ff59..b2a2c412c409dc1dc7c67339f9550189c43e76ef 100644 Binary files a/wp-content/languages/admin-nn_NO.mo and b/wp-content/languages/admin-nn_NO.mo differ diff --git a/wp-content/languages/admin-nn_NO.po b/wp-content/languages/admin-nn_NO.po index a17cd5634c13e3fb8295e28fe155268dc88b5f3b..f2bb6209bb806803214859083423e2d2e01090d6 100644 --- a/wp-content/languages/admin-nn_NO.po +++ b/wp-content/languages/admin-nn_NO.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-01 07:32:10+0000\n" +"PO-Revision-Date: 2017-09-25 10:02:16+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,39 +26,39 @@ msgctxt "start of week" msgid "1" msgstr "1" -#: wp-admin/about.php:196 +#: wp-admin/about.php:218 msgid "New capabilities have been introduced to 4.8 with an eye towards removing calls to <code>is_super_admin()</code>. Additionally, new hooks and tweaks to more granularly control site and user counts per network have been added." msgstr "Med versjon 4.8 er det introdusert nye funksjonar for å fjerne oppkallingar til <code>is_super_admin()</code>. I tillegg er det lagt til nye hooks og justeringar for betre kontroll over nettstaden, samt talet på brukarar per nettverk." -#: wp-admin/about.php:151 +#: wp-admin/about.php:173 msgid "Being part of the community can help you improve your WordPress skills and network with people you wouldn’t otherwise meet. Now you can easily find your local events just by logging in to your dashboard and looking at the new Events and News dashboard widget." msgstr "Ved å delta i fellesskapet kan du forbetre WordPress-kunnskapane dine og skape nettverk med menneske du elles ikkje ville møtt. No kan du på ein enkel måte finne lokale arrangement ved å logge inn på kontrollpanelet og sjå på den nye widgeten «Arrangement og nyheiter»." -#: wp-admin/about.php:149 +#: wp-admin/about.php:171 msgid "This is quickly becoming one of our favorite features. While you are in the dashboard (because you’re running updates and writing posts, right?) all upcoming WordCamps and WordPress Meetups — local to you — will be displayed." msgstr "Dette har raskt blitt ein av favorittfunksjonane våre. Når du er i kontrollpanelet (for du køyrer oppgraderingar og skriv innlegg, ikkje sant?), vil alle WordCamps og WordPress Meetups – i nærleiken – visast." -#: wp-admin/about.php:147 +#: wp-admin/about.php:169 msgid "Did you know that WordPress has a thriving offline community with groups meeting regularly in more than 400 cities around the world? WordPress now draws your attention to the events that help you continue improving your WordPress skills, meet friends, and, of course, publish!" msgstr "Visste du at WordPress har eit aktivt offline fellesskap, med grupper som treffest regelmessig, i meir enn 400 byar over heile verda? No hjelper WordPress deg å oppdage arrangement som aukar WordPress-ferdigheitene dine, lar deg møte nye vener, og – sjølvsagt – publisere!" -#: wp-admin/about.php:126 +#: wp-admin/about.php:148 msgid "Have you ever tried updating a link, or the text around a link, and found you can’t seem to edit it correctly? When you edit the text after the link, your new text also ends up linked. Or you edit the text in the link, but your text ends up outside of it. This can be frustrating! With link boundaries, a great new feature, the process is streamlined and your links will work well. You’ll be happier. We promise." msgstr "Har du forsøkt å oppdatere ei lenke, eller teksten rundt ei lenke og hatt problem med å redigere den korrekt? F. eks. at når teksten etter ei lenke vert endra blir denne nye teksten òg klikkbar? Eller at når teksten inne i lenka vert redigert så hamnar deler av denne på utsida av det klikkbare området? Dette kan vere frustrerande! Den nye funksjonen lenkeavgrensning straumlinjeformar denne prosessen og frå no av vil lenkene dine virke perfekt. Du vert lukkelegare – vi lovar!" -#: wp-admin/about.php:117 +#: wp-admin/about.php:139 msgid "This feature deserves a parade down the center of town! Rich-text editing capabilities are now native for Text widgets. Add a widget anywhere and format away. Create lists, add emphasis, and quickly and easily insert links. Have fun with your newfound formatting powers, and watch what you can accomplish in a short amount of time." msgstr "Denne funksjonen fortjener ei parade gjennom hovudgata i byen! Rik tekst-redigering er no innebygd òg for tekst-widgetar. Legg til ein widget kor som helst, og formater i veg. Lag lister, uthev tekst, legg til lenker – raskt og enkelt. Kos deg med dei nye formateringsmoglegheitene og sjå kva du no på kort tid kan oppnå." -#: wp-admin/about.php:109 +#: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." msgstr "Ein velkomstvideo er ein fin måte å vise korleis nettsida di framstår. Du kan legge til video frå mediebiblioteket ved å bruke den nye video-widgeten. Bruk video for å introdusere besøkande for sida di eller til å promotere det nyaste og beste innhaldet ditt." -#: wp-admin/about.php:105 +#: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." msgstr "Det å legge til eit bilete i ein widget er no ei enkel oppgåve som kan utførast av einkvar WordPress-brukar, sjølv utan kunnskap om HTML. Du kan enkelt sette inn bilete ved hjelp av widgeten sine innstillingar. Forsøk å legge til eit portrett eller eit bilete frå den siste utflukta di – og sjå at det vert vist automatisk." -#: wp-admin/about.php:50 +#: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." msgstr "Sjølv om nokre oppgraderingar kan virke små, er dei utvikla av hundrevis av bidragsytarar med <em>deg</em> i tankane. Gjer deg klar for nye funksjonar du kjem til å ønske velkommen som du ville gjort med ein gammal ven: lenkeforbetringar, <em>tre</em> nye media-widgetar for bilete, lyd og video, ein oppdatert tekst-widget som støttar visuell redigeringsmodus, samt ein oppdatert nyheitsseksjon på kontrollpanelet si forside som tipsar deg om lokale WordPress-arrangement." @@ -66,59 +66,59 @@ msgstr "Sjølv om nokre oppgraderingar kan virke små, er dei utvikla av hundrev msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." msgstr "Takk for at du oppdaterte til den nyaste versjonen! WordPress %s legg til fleire måtar du kan uttrykke deg på og representere merkevaren din." -#: wp-admin/about.php:204 +#: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." msgstr "Innføringen av eit nytt grunnleggande REST-API for media-widgetar opnar opp moglegheiter for fleire typar media-widgetar (slik som galleri eller spelelister) i framtida. Dei tre nye media-widgetane vert drivne av ein delt basisklasse som dekkar dei fleste av interaksjonane med mediamodalen. Denne klassen gjer det òg enklare å lage nye media-widgetar og banar veg for at det kjem meir." -#: wp-admin/about.php:203 +#: wp-admin/about.php:225 msgid "Media Widgets API" msgstr "API for media-widgetar" -#: wp-admin/about.php:208 +#: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." msgstr "Gled deg! Nye reponsive brytningspunkt er lagde til i sidepanelet til tilpassaren for å gjere den breiare på skjermar med høg oppløysing. Tilpassar-kontrollar bør bruke prosentbaserte breidder i staden for pikslar." -#: wp-admin/about.php:207 +#: wp-admin/about.php:229 msgid "Customizer Width Variable" msgstr "Redigeringspanel breiddevariabel" -#: wp-admin/about.php:200 +#: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" msgstr "Med 4.8-versjonens introduksjon av TinyMCE i tekst-widgetar kjem òg eit nytt JavaScript-API som opprettar ein instans av tekstbehandlaren etter at sida er lasta. Dette kan nyttast til å legge til ein tekstbehandlar-instans til eit kvart tekstfelt og tilpasse dette med knappar og funksjonar. Kjekt å ha for utviklarar av innstikk!" -#: wp-admin/about.php:199 +#: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" msgstr "Tekstbehandlars JavaScript-API" -#: wp-admin/about.php:195 +#: wp-admin/about.php:217 msgid "Multisite Updates" msgstr "Multisite-oppdateringar" -#: wp-admin/about.php:192 +#: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." msgstr "Sidan færre og færre nettlesarar støttar Silverlight, vert filformata som krevar Silverlight i nettleseren fjerna frå kjernestøtta. Filer vil framleis vert viste som ei nedlastbar lenke, men vil ikkje lenger byggast inn automatisk." -#: wp-admin/about.php:191 +#: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" msgstr "Fjerning av kjernestøtte for WMV- og WMA-filer" -#: wp-admin/about.php:188 +#: wp-admin/about.php:210 msgid "New CSS rules mean extraneous content (like “Add New” links) no longer need to be included in admin-area headings. These panel headings improve the experience for people using assistive technologies." msgstr "Nye CSS-reglar betyr at tilleggsopplysningar (som “Legg til”-lenker) ikkje lenger treng å inkluderast i admin-området sine titlar. Desse paneltitlane aukar brukervennlegheiten for dei som nyttar assisterande teknologi." -#: wp-admin/about.php:187 +#: wp-admin/about.php:209 msgid "More Accessible Admin Panel Headings" msgstr "Bedte universell utforming for overskrifter i administrasjonspanel" -#: wp-admin/about.php:56 +#: wp-admin/about.php:78 msgid "Exciting Widget Updates" msgstr "Spennande widget-oppdateringar" -#: wp-admin/about.php:49 +#: wp-admin/about.php:71 msgid "WordPress 4.8 adds some great new features. Gear up for a more intuitive WordPress!" msgstr "WordPress 4.8 legg til nokre flotte nye funksjonar. Gjer deg klar for ein meir intuitiv WordPress!" -#: wp-admin/about.php:48 +#: wp-admin/about.php:70 msgid "An Update with You in Mind" msgstr "Ei oppdatering med deg i tankane" @@ -127,19 +127,19 @@ msgstr "Ei oppdatering med deg i tankane" msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" msgstr "Det er ingen arrangement på timeplanen i nærleiken av deg nett no. Har du lyst til å <a href=\"%s\">arrangere eit</a>?" -#: wp-admin/about.php:145 +#: wp-admin/about.php:167 msgid "Nearby WordPress Events" msgstr "WordPress-arrangement i nærleiken" -#: wp-admin/about.php:116 +#: wp-admin/about.php:138 msgid "Rich Text Widget" msgstr "Riktekst-widget" -#: wp-admin/about.php:113 +#: wp-admin/about.php:135 msgid "Are you a podcaster, musician, or avid blogger? Adding a widget with your audio file has never been easier. Upload your audio file to the Media Library, go to the widget settings, select your file, and you’re ready for listeners. This would be a easy way to add a more personal welcome message, too!" msgstr "Er du podcastar, musikar eller ivrig bloggar? Å legge til ein widget med ei lydfil har aldri vore enklare. Last opp lydfila til Mediabiblioteket, gå til widget-området, velg fila og du er klar for nye lyttarar. Dette vil òg vere ein enkel måte å legge til ei mer personleg velkomsthelsing!" -#: wp-admin/about.php:125 +#: wp-admin/about.php:147 msgid "Link Boundaries" msgstr "Lenkegrenser" @@ -218,7 +218,7 @@ msgid "Assign a parent term to create a hierarchy. The term Jazz, for example, w msgstr "Tilordne ein overordna term for å lage eit hierarki. Termen «jazz», for eksempel, vil vere overordna «bebop» og «storband»." #. translators: %s: smiling face with smiling eyes emoji -#: wp-admin/about.php:180 +#: wp-admin/about.php:202 msgid "Even More Developer Happiness %s" msgstr "Endå meir godsaker for utviklarar %s" @@ -562,7 +562,7 @@ msgid "" "Hi, this is a comment.\n" "To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\n" "Commenter avatars come from <a href=\"https://gravatar.com\">Gravatar</a>." -msgstr "Hei, dette er ein kommentar men på nynorsk vert det kalla for innspel. For å starte med moderering, redigering og sletting av innspel, kan du gå til Innspel-skjermen i kontrollpanelet. Innspel-avatarer kjem frå <a href=\"https://gravatar.com\">Gravatar</a>." +msgstr "Hei, dette er ein kommentar. For å starte med moderering, redigering og sletting av kommentarar, kan du gå til Kommentar-skjermen i kontrollpanelet. Kommentar-avatarer kjem frå <a href=\"https://gravatar.com\">Gravatar</a>." #: wp-admin/includes/upgrade.php:204 msgid "A WordPress Commenter" @@ -1086,7 +1086,7 @@ msgstr "Fjern nettlesarvarselpanelet" #: wp-admin/includes/dashboard.php:927 msgid "View more comments" -msgstr "Vis fleire innspel" +msgstr "Vis fleire kommentarar" #. translators: 1: type of comment, 2: post link, 3: notification if the #. comment is pending @@ -1097,15 +1097,15 @@ msgstr "%1$s på %2$s %3$s" #: wp-admin/includes/dashboard.php:644 msgid "View this comment" -msgstr "Sjå dette innspelet" +msgstr "Sjå denne kommentaren" #. translators: Number of comments in moderation #: wp-admin/includes/dashboard.php:283 msgctxt "comments" msgid "%s comment in moderation" msgid_plural "%s comments in moderation" -msgstr[0] "%s innspel til moderasjon" -msgstr[1] "%s innspel til moderasjon" +msgstr[0] "%s kommentar til moderasjon" +msgstr[1] "%s kommentarar til moderasjon" #: wp-admin/includes/class-core-upgrader.php:31 msgid "Another update is currently in progress." @@ -1196,16 +1196,16 @@ msgstr "PHP-tillegget ssh2 er tilgjengeleg, men vi krevar PHP5-funksjonen %s" #: wp-admin/includes/class-wp-comments-list-table.php:593 msgid "Quick edit this comment inline" -msgstr "Hurtigrediger dette innspelet inline" +msgstr "Hurtigrediger denne kommentaren inline" #: wp-admin/includes/class-wp-comments-list-table.php:589 #: wp-admin/includes/dashboard.php:634 msgid "Edit this comment" -msgstr "Rediger dette innspelet" +msgstr "Rediger denne kommentaren" #: wp-admin/includes/class-wp-comments-list-table.php:575 msgid "Restore this comment from the spam" -msgstr "Gjenopprett dette innspelet frå spam" +msgstr "Gjenopprett denne kommentaren frå søpla" #. translators: 1: user_login, 2: user_email #: wp-admin/includes/ajax-actions.php:291 @@ -1272,7 +1272,7 @@ msgid "Welcome to %s. This is your first post. Edit or delete it, then start blo msgstr "Velkommen til %s. Dette er det første innlegget. Du kan slette eller redigere det, så kan du starte blogginga." #. translators: %s: WordPress version number -#: wp-admin/about.php:242 +#: wp-admin/about.php:264 msgid "<strong>Version %s</strong> addressed one security issue." msgstr "<strong>Versjon %s</strong> fiksa ein sikkerheitsfeil." @@ -1289,15 +1289,15 @@ msgstr "Du kan endre profilbiletet på <a href=\"%s\">Gravatar</a>." msgid "Profile Picture" msgstr "Profilbilete" -#: wp-admin/about.php:239 +#: wp-admin/about.php:261 msgid "Maintenance and Security Releases" msgstr "Vedlikehalds- og sikkerheitsutgåver" -#: wp-admin/about.php:236 +#: wp-admin/about.php:258 msgid "Security Releases" msgstr "Sikkerheitsutgåver" -#: wp-admin/about.php:233 +#: wp-admin/about.php:255 msgid "Maintenance Releases" msgstr "Vedlikehaldsutgåver" @@ -1919,31 +1919,31 @@ msgstr "Dette passordet er naudsynt for å logge inn. Ta godt vare på det. #: wp-admin/includes/class-wp-list-table.php:672 msgid "No approved comments" -msgstr "Ingen godkjende innspel" +msgstr "Ingen godkjende kommentarar" #: wp-admin/includes/class-wp-list-table.php:660 #: wp-admin/includes/class-wp-list-table.php:672 #: wp-admin/includes/class-wp-list-table.php:685 msgid "No comments" -msgstr "Inkje innspel" +msgstr "Ingen kommentarar" #: wp-admin/includes/class-wp-list-table.php:655 msgid "%s pending comment" msgid_plural "%s pending comments" -msgstr[0] "%s innpel ventar på godkjenning" -msgstr[1] "%s innspel ventar på godkjenning" +msgstr[0] "%s kommentar ventar på godkjenning" +msgstr[1] "%s kommentarar ventar på godkjenning" #: wp-admin/includes/class-wp-list-table.php:654 msgid "%s approved comment" msgid_plural "%s approved comments" -msgstr[0] "%s godkjend innspel" -msgstr[1] "%s godkjende innspel" +msgstr[0] "%s godkjend kommentar" +msgstr[1] "%s godkjende kommentarar" #: wp-admin/includes/class-wp-list-table.php:653 msgid "%s comment" msgid_plural "%s comments" -msgstr[0] "%s innspel" -msgstr[1] "%s innspel" +msgstr[0] "%s kommentar" +msgstr[1] "%s kommentarar" #: wp-admin/includes/ajax-actions.php:3231 msgid "Image could not be processed." @@ -2014,7 +2014,7 @@ msgstr "Dato og tid" #: wp-admin/edit-form-comment.php:84 msgid "Comment status" -msgstr "Status for innspel" +msgstr "Kommentarstatus" #: wp-admin/options-general.php:77 msgid "Enter the address here if you <a href=\"https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory\">want your site home page to be different from your WordPress installation directory.</a>" @@ -2130,7 +2130,7 @@ msgstr "<a href=\"https://codex.wordpress.org/Users_Screen\">Hjelp om å handter #: wp-admin/comment.php:51 wp-admin/edit-comments.php:185 msgid "<a href=\"https://codex.wordpress.org/Administration_Screens#Comments\">Documentation on Comments</a>" -msgstr "<a href=\"https://codex.wordpress.org/Administration_Screens#Comments\">Hjelp om innspel</a>" +msgstr "<a href=\"https://codex.wordpress.org/Administration_Screens#Comments\">Hjelp om kommentarar</a>" #: wp-admin/edit-form-advanced.php:381 msgid "<a href=\"https://codex.wordpress.org/Posts_Add_New_Screen\">Documentation on Writing and Editing Posts</a>" @@ -3153,7 +3153,7 @@ msgstr "Du kan proporsjonalt skalere det originale biletet. Biletet bør skalera #: wp-admin/includes/image-edit.php:105 msgid "To crop the image, click on it and drag to make your selection." -msgstr "For å beskjere biletet, klikk på det og dra for å velge område." +msgstr "For å klippe bildet, klikk på det og dra for å velje område." #: wp-admin/includes/class-wp-comments-list-table.php:334 msgid "All comment types" @@ -3481,7 +3481,7 @@ msgstr "<strong>Hurtigkladd</strong> — Let deg skrive eit nytt innlegg og #: wp-admin/index.php:70 msgid "<strong>Activity</strong> — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them." -msgstr "<strong>Aktivitet</strong> — Viser innlegg som skal leggjast ut, innlegg som nett er lagde ut, og dei siste innspela på innlegg og sider, slik at du kan godkjenna eller avvisa dei." +msgstr "<strong>Aktivitet</strong> — Viser innlegg som skal leggjast ut, innlegg som nett er lagde ut, og dei siste kommentarane på innlegg og sider, slik at du kan godkjenna eller avvisa dei." #: wp-admin/index.php:57 msgid "<strong>Screen Options</strong> — Use the Screen Options tab to choose which Dashboard boxes to show." @@ -3749,7 +3749,7 @@ msgstr "Storleikane under avgjer den største punktstorleiken som skal brukast n #: wp-admin/options-discussion.php:150 msgid "Comment must be manually approved" -msgstr "Du må godkjenna innspelet manuelt" +msgstr "Du må godkjenna kommentaren manuelt" #: wp-admin/nav-menus.php:545 msgid "<strong>Clicking the arrow to the right of any menu item</strong> in the editor will reveal a standard group of settings. Additional settings such as link target, CSS classes, link relationships, and link descriptions can be enabled and disabled via the Screen Options tab." @@ -3831,8 +3831,8 @@ msgstr[1] "Henta fram att %s sider frå søpla." #: wp-admin/edit.php:285 msgid "%s page moved to the Trash." msgid_plural "%s pages moved to the Trash." -msgstr[0] "Kasta %s side i søpelet." -msgstr[1] "Kasta %s sider i søpelet." +msgstr[0] "Kasta %s side i søppelet." +msgstr[1] "Kasta %s sider i søppelet." #: wp-admin/edit.php:284 msgid "%s page permanently deleted." @@ -3855,14 +3855,14 @@ msgstr[1] "Oppdaterte %s sider." #: wp-admin/edit.php:278 msgid "%s post restored from the Trash." msgid_plural "%s posts restored from the Trash." -msgstr[0] "Henta %s innlegg fram att frå søpelet." -msgstr[1] "Henta %s innlegg fram att frå søpelet." +msgstr[0] "Henta %s innlegg fram att frå søppelet." +msgstr[1] "Henta %s innlegg fram att frå søppelet." #: wp-admin/edit.php:277 msgid "%s post moved to the Trash." msgid_plural "%s posts moved to the Trash." -msgstr[0] "Kasta %s innlegg i søpelet." -msgstr[1] "Kasta %s innlegg i søpelet." +msgstr[0] "Kasta %s innlegg i søppelet." +msgstr[1] "Kasta %s innlegg i søppelet." #: wp-admin/edit.php:276 msgid "%s post permanently deleted." @@ -4273,7 +4273,7 @@ msgstr "Kladden vart oppretta %1$s kl. %2$s" #: wp-admin/post.php:218 msgid "You cannot move this item to the Trash. %s is currently editing." -msgstr "Du kan ikkje kasta denne i søpelkorga. %s redigerer teksten no." +msgstr "Du kan ikkje kasta denne i søppelkorga. %s redigerer teksten no." #: wp-admin/includes/post.php:1622 msgid "Take over" @@ -4439,7 +4439,7 @@ msgstr "Lær meir om å koma i gang" #: wp-admin/includes/dashboard.php:1604 msgid "Turn comments on or off" -msgstr "Skru innspel på eller av" +msgstr "Skru kommentarar på eller av" #: wp-admin/includes/dashboard.php:1589 msgid "More Actions" @@ -4451,7 +4451,7 @@ msgstr "Filadresse:" #: wp-admin/edit-comments.php:178 msgid "In the <strong>In Response To</strong> column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows the number of approved comments that post has received. If there are pending comments, a red notification circle with the number of pending comments is displayed. Clicking the notification circle will filter the comments screen to show only pending comments on that post." -msgstr "I spalta <strong>Svar til</strong> er det tre element. Teksten er tittelen på innlegget som fekk eit innspel, og lenkjene til den som skreiv innlegget. Sjå innlegg-lenkja leier til innlegget på nettstaden din. Bobla med tal i viser til kor mange godkjende innspel innlegget har fått. Viss bobla er grå, har du sett gjennom alle innspela for innlegget. Viss ho er blå, er det innspel som ventar. Viss du klikkar på bobla, vil du få opp innspela for berre det aktuelle innlegget." +msgstr "I spalta <strong>Svar til</strong> er det tre element. Teksten er tittelen på innlegget som fekk ein kommentar, og lenkjene til den som skreiv innlegget. Sjå innlegg-lenkja leier til innlegget på nettstaden din. Bobla med tal i viser til kor mange godkjende kommentarar innlegget har fått. Viss bobla er grå, har du sett gjennom alle kommentarane for innlegget. Viss ho er blå, er det kommentarar som ventar. Viss du klikkar på bobla, vil du få opp kommentarane for berre det aktuelle innlegget." #. translators: 1: user id, 2: user login #: wp-admin/users.php:255 wp-admin/users.php:381 @@ -4696,7 +4696,7 @@ msgstr "Vel %s" #: wp-admin/includes/class-wp-comments-list-table.php:632 msgid "Select comment" -msgstr "Vel innspel" +msgstr "Vel kommentar" #: wp-admin/custom-header.php:110 msgid "You can set a custom image header for your site. Simply upload the image and crop it, and the new header will go live immediately. Alternatively, you can use an image that has already been uploaded to your Media Library by clicking the “Choose Image” button." @@ -4880,7 +4880,7 @@ msgstr "Skalere" #: wp-admin/includes/meta-boxes.php:729 msgid "No comments yet." -msgstr "Ingen innspel så langt." +msgstr "Ingen kommentarar enno." #: wp-admin/includes/dashboard.php:198 wp-admin/includes/dashboard.php:1184 #: wp-admin/setup-config.php:219 @@ -4939,7 +4939,7 @@ msgstr "Skriv tittel her" #: wp-admin/edit-comments.php:289 wp-admin/edit-comments.php:295 msgid "Edit comment" -msgstr "Endra innspel" +msgstr "Endra kommentar" #: wp-admin/about.php:28 msgid "About" @@ -4999,15 +4999,15 @@ msgstr "Av %s." #: wp-admin/includes/template.php:428 msgid "Add Comment" -msgstr "Legg til innspel" +msgstr "Legg til kommentar" #: wp-admin/includes/template.php:398 msgid "Add new Comment" -msgstr "Legg til nytt innspel" +msgstr "Legg til ny kommentar" #: wp-admin/includes/meta-boxes.php:721 msgid "Add comment" -msgstr "Legg til innspel" +msgstr "Legg til kommentar" #. Author URI of the plugin/theme msgid "http://ma.tt/" @@ -5257,7 +5257,7 @@ msgstr "For å gje denne sida løyve til å reparera databaseproblem automatisk, #: wp-admin/includes/class-wp-comments-list-table.php:187 msgid "No comments awaiting moderation." -msgstr "Ingen innspel ventar på godkjenning." +msgstr "Ingen kommentarar ventar på godkjenning." #: wp-admin/includes/plugin-install.php:493 msgctxt "Plugin installer section title" @@ -5340,7 +5340,7 @@ msgstr "<strong>Åtvaring:</strong> Me rår frå at du endrar innstikk som er i #: wp-admin/options-discussion.php:180 msgid "An avatar is an image that follows you from weblog to weblog appearing beside your name when you comment on avatar enabled sites. Here you can enable the display of avatars for people who comment on your site." -msgstr "Ein avatar er eit bilete som fylgjer deg frå blogg til blogg. Biletet står ved sida av namnet ditt når du skriv innspel til nettstader med avatar-funksjon. Her kan du skru på avatarvising for folk som gjev innspel på nettstaden din." +msgstr "Ein avatar er eit bilete som fylgjer deg frå blogg til blogg. Biletet står ved sida av namnet ditt når du skriv kommentarar til nettstader med avatar-funksjon. Her kan du skru på avatarvising for folk som kommenterer på nettstaden din." #: wp-admin/user-new.php:321 msgid "Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite." @@ -5385,7 +5385,7 @@ msgid "Contributing Developers" msgstr "Medverkande utviklarar" #. translators: 1: WordPress version number, 2: plural number of bugs. -#: wp-admin/about.php:247 +#: wp-admin/about.php:52 wp-admin/about.php:269 msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "<strong>Versjon %1$s</strong> lyska bort %2$s lus." @@ -5393,20 +5393,20 @@ msgstr[1] "<strong>Versjon %1$s</strong> lyska bort %2$s lus." #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. -#: wp-admin/about.php:255 +#: wp-admin/about.php:277 msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs." msgstr[0] "<strong>Versjon %1$s</strong> ordna fleire tryggleiksproblem og lyska bort %2$s lus." msgstr[1] "<strong>Versjon %1$s</strong> ordna fleire tryggleiksproblem og lyska bort %2$s lus." #. translators: %s: Codex URL -#: wp-admin/about.php:259 +#: wp-admin/about.php:63 wp-admin/about.php:281 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "Les <a href=\"%s\">utgjevingsmerknadene</a> for fleire opplysningar." #. translators: 1: WordPress version number, 2: plural number of bugs. Singular #. security issue. -#: wp-admin/about.php:251 +#: wp-admin/about.php:273 msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs." msgstr[0] "<strong>Versjon %1$s</strong> ordna eit tryggleiksproblem og lyska bort %2$s lus." @@ -5417,15 +5417,15 @@ msgid "Welcome to your WordPress Dashboard! This is the screen you will see when msgstr "Velkomen til WordPress-styringspanelet ditt! Denne sida er den fyrste du ser når du har logga inn på nettstaden din. Det gjev deg tilgang til alle styringsfunksjonane til WordPress. Du kan får hjelp til kvar side ved å klikka på Hjelp-fana i øvste hjørna." #. translators: %s: WordPress version number -#: wp-admin/about.php:244 +#: wp-admin/about.php:266 msgid "<strong>Version %s</strong> addressed some security issues." msgstr "<strong>Versjon %1$s</strong> ordna eit tryggleiksproblem." -#: wp-admin/about.php:232 +#: wp-admin/about.php:47 wp-admin/about.php:254 msgid "Maintenance Release" msgstr "Vedlikehaldsutgåve" -#: wp-admin/about.php:235 +#: wp-admin/about.php:257 msgid "Security Release" msgstr "Tryggleiksutgåve" @@ -5433,7 +5433,7 @@ msgstr "Tryggleiksutgåve" msgid "What’s New" msgstr "Siste nytt" -#: wp-admin/about.php:238 +#: wp-admin/about.php:260 msgid "Maintenance and Security Release" msgstr "Vedlikehalds- og tryggleiksutgåve" @@ -5445,7 +5445,7 @@ msgstr "På denne sida kan du velje fastlenkjestrukturen din. Du kan velje mello msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>." msgstr "Velkomen til WordPress %1$s. <a href=\"%2$s\">Lær meir</a>." -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Updates" msgstr "Tilbake til oppdateringar" @@ -5483,7 +5483,7 @@ msgstr "Leggja til innstikk" #: wp-admin/edit.php:222 msgid "You can also edit or move multiple posts to the trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk Actions menu and click Apply." -msgstr "Du kan endra eller flytta fleire innlegg til søpelet på ein gong. Vel innlegga du vil endra med krysseboksane. Så vel du handlinga du vil utføra frå massehandlingar-menyen, og klikkar på utfør." +msgstr "Du kan endra eller flytta fleire innlegg til søppelet på ein gong. Vel innlegga du vil endra med krysseboksane. Så vel du handlinga du vil utføra frå massehandlingar-menyen, og klikkar på utfør." #: wp-admin/edit.php:192 msgid "This screen provides access to all of your posts. You can customize the display of this screen to suit your workflow." @@ -5511,11 +5511,11 @@ msgstr "Viss importen du treng ikkje står på denne lista, kan du <a href=\"%s\ #: wp-admin/user-new.php:203 msgid "Subscribers can read comments/comment/receive newsletters, etc. but cannot create regular site content." -msgstr "Abonnentar kan lesa innspel, kommentera og få nyhendebrev osfr., men die kan ikkje laga vanleg innhald på nettstaden." +msgstr "Abonnentar kan lesa kommentarar, kommentera og få nyhendebrev osfr., men dei kan ikkje laga vanleg innhald på nettstaden." #: wp-admin/edit-comments.php:173 msgid "Moderating Comments" -msgstr "Handtera innspel" +msgstr "Handterer kommentarar" #: wp-admin/user-new.php:179 msgid "To add a new user to your site, fill in the form on this screen and click the Add New User button at the bottom." @@ -5587,7 +5587,7 @@ msgstr "Legg inn med epost" #: wp-admin/options-discussion.php:22 msgid "This screen provides many options for controlling the management and display of comments and links to your posts/pages. So many, in fact, they won’t all fit here! :) Use the documentation links to get information on what each discussion setting does." -msgstr "På denne sida finn du innstillingar for å kontrollera korleis innspela og lenkjene til innlegga eller sidene dine blir synte. Det er faktisk så mange val at det ikkje er plass til alle her! :) Bruk hjelpelenkjene for fleire opplysingar om kva dei ulike ordskifte-innstillingane gjer." +msgstr "På denne sida finn du innstillingar for å kontrollera korleis kommentarane og lenkjene til innlegga eller sidene dine blir synte. Det er faktisk så mange val at det ikkje er plass til alle her! :) Bruk hjelpelenkjene for fleire opplysingar om kva dei ulike ordskifte-innstillingane gjer." #: wp-admin/user-edit.php:46 msgid "You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens." @@ -5627,7 +5627,7 @@ msgstr "<strong>Dra og slepp</strong> filene dine i feltet under. Du kan dra fle #: wp-admin/edit-comments.php:180 msgid "Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more." -msgstr "Mange bruker snøggtastar for å handtera innspel raskare. Bruk lenkja ved sidan av for å læra meir." +msgstr "Mange bruker snøggtastar for å handtera kommentarar raskare. Bruk lenkja ved sidan av for å læra meir." #: wp-admin/edit-form-advanced.php:385 wp-admin/edit.php:237 msgid "Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the “Parent” of the other, creating a group of pages." @@ -5663,11 +5663,11 @@ msgstr "Lenkjer i verktylina øvst på skjermen koplar styringspanelet ditt til #: wp-admin/edit-comments.php:176 msgid "In the <strong>Author</strong> column, in addition to the author’s name, email address, and blog URL, the commenter’s IP address is shown. Clicking on this link will show you all the comments made from this IP address." -msgstr "I <strong>forfattar</strong>-spalta blir namnet, epostadressa, bloggadressa og IP-adressa til forfattaren synte. Om du klikkar på denne lenkja, vil du sjå alle innspel frå same IP-adressa." +msgstr "I <strong>forfattar</strong>-spalta blir namnet, epostadressa, bloggadressa og IP-adressa til forfattaren synte. Om du klikkar på denne lenkja, vil du sjå alle kommentarar frå same IP-adressa." #: wp-admin/edit-comments.php:169 msgid "You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions." -msgstr "Du kan handtera innspel på denne nettstaden på same måten som du handterer innlegg og anna innhald. Du kan stilla inn utsjånaden på denne sida på same måten som dei andre styringssidene, og du kan handtera innspela med sprett-opp-lenkjene eller massehandlingar." +msgstr "Du kan handtera kommentarar på denne nettstaden på same måten som du handterer innlegg og anna innhald. Du kan stilla inn utsjånaden på denne sida på same måten som dei andre styringssidene, og du kan handtera kommentarane med sprett-opp-lenkjene eller massehandlingar." #: wp-admin/link-manager.php:54 msgid "Links may be separated into Link Categories; these are different than the categories used on your posts." @@ -5695,7 +5695,7 @@ msgstr "<strong>Snøggendring</strong> gjev deg rask tilgang til opplysningane o #: wp-admin/edit.php:214 msgid "<strong>Trash</strong> removes your post from this list and places it in the trash, from which you can permanently delete it." -msgstr "<strong>Søpel</strong> - fjernar innlegget ditt frå denne lista, og legg det i søpelkorga. Du kan sletta det for alltid derifrå." +msgstr "<strong>Søpel</strong> - fjernar innlegget ditt frå denne lista, og legg det i søppelkorga. Du kan sletta det for alltid derifrå." #: wp-admin/users.php:47 msgid "Hovering over a row in the users list will display action links that allow you to manage users. You can perform the following actions:" @@ -5725,11 +5725,11 @@ msgstr "Truleg direkte innlemming av wp-admin/includes/template.php for å bruka msgid "Welcome to WordPress %s" msgstr "Velkomen til WordPress %s" -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Dashboard → Updates" msgstr "Gå tilbake til styringspanelet → oppdateringar" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard → Home" msgstr "Gå til styringspanelet → heim" @@ -5864,11 +5864,11 @@ msgstr "<strong>FEIL:</strong> Tilkoplingsfeil til tenaren. Sjå etter om innsti #: wp-admin/includes/ajax-actions.php:1080 #: wp-admin/includes/ajax-actions.php:1165 msgid "ERROR: please type a comment." -msgstr "FEIL: skriv inn eit innspel." +msgstr "FEIL: skriv inn ein kommentar." #: wp-admin/includes/ajax-actions.php:1056 msgid "ERROR: you are replying to a comment on a draft post." -msgstr "FEIL: du svarar på eit innspel til ein kladd." +msgstr "FEIL: du svarar på ein kommentar til ein kladd." #: wp-admin/comment.php:43 wp-admin/custom-background.php:90 #: wp-admin/custom-header.php:100 wp-admin/edit-comments.php:167 @@ -6261,7 +6261,7 @@ msgstr "Eit <a href=\"%1$s\">verdsfemnande lag</a> ivrige bidragsytarar lagar Wo #: wp-admin/menu.php:87 msgid "All Comments" -msgstr "Alle innspel" +msgstr "Alle kommentarar" #: wp-admin/credits.php:117 msgid "Core Contributors to WordPress %s" @@ -6567,7 +6567,7 @@ msgstr "Vel kva du vil eksportera" #: wp-admin/export.php:167 msgid "This will contain all of your posts, pages, comments, custom fields, terms, navigation menus, and custom posts." -msgstr "Dette inneheld alle innlegg, sider, innspel, eigne felt, uttrykk, navigeringsmenyar og eigne innlegg." +msgstr "Dette inneheld alle innlegg, sider, kommentarar, eigne felt, uttrykk, navigeringsmenyar og eigne innlegg." #: wp-admin/export.php:191 wp-admin/export.php:233 wp-admin/export.php:265 msgid "Date range:" @@ -6721,7 +6721,7 @@ msgstr "http://wordpress.org/news/" #: wp-admin/options-discussion.php:68 msgid "(Signup has been disabled. Only members of this site can comment.)" -msgstr "(Registreringa er skrudd av. Berre medlemmer av denne nettstaden kan koma med innspel.)" +msgstr "(Registreringa er skrudd av. Berre medlemmer av denne nettstaden kan kommentere.)" #. translators: 1: theme name, 2: theme details URL, 3: additional link #. attributes, 4: version number @@ -6893,11 +6893,11 @@ msgstr "Du kan ikkje endra brukarnamnet ditt, men du kan bruka dei andre felta t #: wp-admin/comment.php:45 msgid "You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error." -msgstr "Du kan redigera innspela om det trengst. Det er ofte nyttig når du oppdagar skrivefeil i eit innspel." +msgstr "Du kan redigera kommentarane om det trengst. Det er ofte nyttig når du oppdagar skrivefeil i ein kommentar." #: wp-admin/comment.php:46 msgid "You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment." -msgstr "Du kan endra innspelet frå denne sida med å bruka statusboksen. Der kan du òg endra datostempelet for innspelet." +msgstr "Du kan endra kommentaren frå denne sida med å bruka statusboksen. Der kan du òg endra datostempelet for kommentaren." #: wp-admin/options-general.php:29 msgid "The WordPress URL and the Site URL can be the same (example.com) or different; for example, having the WordPress core files (example.com/wordpress) in a subdirectory instead of the root directory." @@ -7118,7 +7118,7 @@ msgstr "Plukk dette elementet opp frå papirkorga" #: wp-admin/includes/meta-boxes.php:677 msgid "Allow comments" -msgstr "Gje løyve til å koma med innspel." +msgstr "Gje løyve til å kommentera" #: wp-admin/includes/class-bulk-plugin-upgrader-skin.php:50 #: wp-admin/includes/class-bulk-theme-upgrader-skin.php:50 @@ -7128,7 +7128,7 @@ msgstr "Tilbake til WordPress-oppdateringar" #: wp-admin/edit-form-advanced.php:453 msgid "<strong>Discussion</strong> — You can turn comments and pings on or off, and if there are comments on the post, you can see them here and moderate them." -msgstr "<strong>Ordskifte</strong> — Du kan slå på og av innspel og pingar. Viss det finst innspel til innlegga dine, kan du sjå på og endra dei her." +msgstr "<strong>Ordskifte</strong> — Du kan slå på og av kommentarar og pingar. Viss det finst kommentarar til innlegga dine, kan du sjå på og endra dei her." #: wp-admin/edit-form-advanced.php:364 msgid "<strong>Title</strong> — Enter a title for your post. After you enter a title, you’ll see the permalink below, which you can edit." @@ -7195,7 +7195,7 @@ msgstr "Stilar" #: wp-admin/includes/class-wp-comments-list-table.php:297 msgctxt "comment" msgid "Mark as Spam" -msgstr "Merk som søpel" +msgstr "Merk som søppel" #: wp-admin/includes/media.php:2241 msgctxt "verb" @@ -7226,7 +7226,7 @@ msgstr "Du har utgåve %1$s installert. Oppdater til %2$s." #: wp-admin/includes/class-wp-comments-list-table.php:575 msgctxt "comment" msgid "Not Spam" -msgstr "Ikkje søpel" +msgstr "Ikkje søppel" #: wp-admin/custom-background.php:309 msgid "This will restore the original background image. You will not be able to restore any customizations." @@ -7278,7 +7278,7 @@ msgstr "Du har ikkje løyve til å skriva innlegg eller kladdar på denne nettst #: wp-admin/import.php:68 msgid "If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:" -msgstr "Viss du har innlegg eller innspel i eit anna system, kan WordPress importera dei til denne nettstaden. Start med å velja eit system du vil importera frå under:" +msgstr "Viss du har innlegg eller kommentarar i eit anna system, kan WordPress importera dei til denne nettstaden. Start med å velja eit system du vil importera frå under:" #: wp-admin/includes/nav-menu.php:345 wp-admin/includes/nav-menu.php:630 msgid "No items." @@ -7374,15 +7374,15 @@ msgstr "Du har ikkje løyve til å kasta dette i papirkorga." #: wp-admin/edit-comments.php:273 msgid "%s comment moved to the Trash." msgid_plural "%s comments moved to the Trash." -msgstr[0] "%s innspel kasta i papirkorga." -msgstr[1] "%s innspel kasta i papirkorga." +msgstr[0] "%s kommentar kasta i papirkorga." +msgstr[1] "%s kommentarar kasta i papirkorga." #. translators: %s: number of comments restored from the Trash #: wp-admin/edit-comments.php:278 msgid "%s comment restored from the Trash" msgid_plural "%s comments restored from the Trash" -msgstr[0] "%s innspel plukka oppatt or papirkorga." -msgstr[1] "%s innspel plukka oppatt or papirkorga." +msgstr[0] "%s kommentar plukka oppatt or papirkorga." +msgstr[1] "%s kommentarar plukka oppatt or papirkorga." #: wp-admin/edit.php:114 wp-admin/post.php:222 wp-admin/upload.php:140 msgid "Error in moving to Trash." @@ -7598,7 +7598,7 @@ msgstr "Sjå alle" msgid "Please enter a valid menu name." msgstr "Skriv inn eit gyldig menynamn." -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard" msgstr "Gå til styringspanelet" @@ -7675,7 +7675,7 @@ msgstr "Blir køyrt før Multisite lastar." #: wp-admin/edit-comments.php:295 msgid "This comment is already marked as spam." -msgstr "Innspelet er allereie merkt som søpel." +msgstr "Innspelet er allereie merkt som søppel." #: wp-admin/edit-comments.php:292 msgid "View Trash" @@ -7683,27 +7683,27 @@ msgstr "Sjå gjennom papirkorga" #: wp-admin/edit-comments.php:292 msgid "This comment is already in the Trash." -msgstr "Dette innspelet er allereie i papirkorga." +msgstr "Denne kommentaren er allereie i papirkorga." #: wp-admin/comment.php:141 msgid "This comment is currently in the Trash." -msgstr "Dette innspelet er i papirkorga no." +msgstr "Denne kommentaren er i papirkorga no." #: wp-admin/edit-comments.php:289 msgid "This comment is already approved." -msgstr "Dette innspelet er allereie godkjent." +msgstr "Denne kommentaren er allereie godkjend." #: wp-admin/comment.php:135 msgid "This comment is currently approved." -msgstr "Dette innspelet er godkjent." +msgstr "Denne kommentaren er godkjend." #: wp-admin/comment.php:80 msgid "Moderate Comment" -msgstr "Endra innspel" +msgstr "Endra kommentaren" #: wp-admin/comment.php:138 msgid "This comment is currently marked as spam." -msgstr "Innspelet er merkt som søpel." +msgstr "Innspelet er merkt som søppel." #: wp-admin/export.php:172 msgid "Categories:" @@ -7859,7 +7859,7 @@ msgstr "Fornamn" #: wp-admin/user-edit.php:273 msgid "Enable keyboard shortcuts for comment moderation." -msgstr "Slå på snøggtastar for å handtera innspel" +msgstr "Slå på snøggtastar for å handtera kommentarar" #: wp-admin/includes/misc.php:659 wp-admin/user-edit.php:252 msgid "Admin Color Scheme" @@ -8522,7 +8522,7 @@ msgstr "Avatarar" #: wp-admin/options-discussion.php:169 msgid "When a comment contains any of these words in its content, name, URL, email, or IP, it will be put in the trash. One word or IP per line. It will match inside words, so “press” will match “WordPress”." -msgstr "Når eit innspel inneheld eit av desse orda i innhaldet, namnet, URL-en, epostadressa eller IP-en, vil det bli merka som søppelinnspel. Eitt ord eller IP per line. Det vil leita inni ord òg, så \"press\" vil gje treff på \"WordPress\"." +msgstr "Når ein kommentar inneheld eit av desse orda i innhaldet, namnet, URL-en, epostadressa eller IP-en, vil det bli merka som søppelkommentar. Eitt ord eller IP per line. Det vil leita inni ord òg, så \"press\" vil gje treff på \"WordPress\"." #: wp-admin/options-discussion.php:167 wp-admin/options-discussion.php:168 msgid "Comment Blacklist" @@ -8530,11 +8530,11 @@ msgstr "Innspel-svarteliste" #: wp-admin/options-discussion.php:160 msgid "When a comment contains any of these words in its content, name, URL, email, or IP, it will be held in the <a href=\"edit-comments.php?comment_status=moderated\">moderation queue</a>. One word or IP per line. It will match inside words, so “press” will match “WordPress”." -msgstr "Når eit innspel inneheld eit av desse orda i teksten, namnet, URL-en, epostadressa eller IP-en, vil det bli halde att i <a href=\"edit-comments.php?comment_status=moderated\">moderatorkøen</a>. Eitt ord eller IP per line. Søket vil leita inni ord òg, så \"press\" vil gje treff på \"WordPress\"." +msgstr "Når ein kommentar inneheld eit av desse orda i teksten, namnet, URL-en, epostadressa eller IP-en, vil det bli halde att i <a href=\"edit-comments.php?comment_status=moderated\">moderatorkøen</a>. Eitt ord eller IP per line. Søket vil leita inni ord òg, så \"press\" vil gje treff på \"WordPress\"." #: wp-admin/options-discussion.php:158 msgid "Hold a comment in the queue if it contains %s or more links. (A common characteristic of comment spam is a large number of hyperlinks.)" -msgstr "Hald eit innspel i køen dersom det inneheld meir enn %s lenkjer. (Eit vanleg symptom på søppelinnspel er mange hyperlenkjer.)" +msgstr "Hald ein kommentar i køen dersom det inneheld meir enn %s lenkjer. (Eit vanleg symptom på søppelkommentarar er mange hyperlenkjer.)" #: wp-admin/options-discussion.php:156 wp-admin/options-discussion.php:157 msgid "Comment Moderation" @@ -8542,19 +8542,19 @@ msgstr "Innspelmoderering" #: wp-admin/options-discussion.php:152 msgid "Comment author must have a previously approved comment" -msgstr "Innspelforfattar må ha eit tidlegare godkjent innspel" +msgstr "Innspelforfattar må ha ein tidlegare godkjent kommentar" #: wp-admin/options-discussion.php:146 wp-admin/options-discussion.php:147 msgid "Before a comment appears" -msgstr "Før eit innspel vert synleg:" +msgstr "Før ein kommentar vert synleg:" #: wp-admin/options-discussion.php:142 msgid "A comment is held for moderation" -msgstr "Eit innspel er halde att for gjennomsyn" +msgstr "Ein kommentar ligg til gjennomsyn" #: wp-admin/options-discussion.php:138 msgid "Anyone posts a comment" -msgstr "Nokon gjev innspel til innlegget" +msgstr "Nokon kommenterer innlegget" #: wp-admin/options-discussion.php:134 wp-admin/options-discussion.php:135 msgid "Email me whenever" @@ -8562,7 +8562,7 @@ msgstr "Varsle meg på epost når" #: wp-admin/options-discussion.php:128 msgid "Comments should be displayed with the %s comments at the top of each page" -msgstr "Innspel vert synt fram med det %s innspelet på toppen av kvar side" +msgstr "Kommentarar vert synt fram med den %s kommentaren på toppen av kvar side" #: wp-admin/options-discussion.php:126 msgid "newer" @@ -8576,7 +8576,7 @@ msgstr "eldste" #. page, 2: Form field control for the 'first' or 'last' page #: wp-admin/options-discussion.php:114 msgid "Break comments into pages with %1$s top level comments per page and the %2$s page displayed by default" -msgstr "Bryt innspela opp i sider, med %1$s toppnivåinnspel per side, og %2$s sida vist som standard " +msgstr "Bryt kommentarane opp i sider, med %1$s toppnivåkommentarar per side, og %2$s sida vist som standard " #: wp-admin/options-discussion.php:111 msgid "first" @@ -8588,15 +8588,15 @@ msgstr "seinaste" #: wp-admin/options-discussion.php:100 msgid "Enable threaded (nested) comments %s levels deep" -msgstr "Slå på innspeltråd (nysting) %s nivå djup" +msgstr "Slå på kommentartrådar (nysting) på %s nivå" #: wp-admin/options-discussion.php:75 msgid "Automatically close comments on articles older than %s days" -msgstr "Steng automatisk innspel på innlegg eldre enn %s dagar" +msgstr "Steng automatisk kommentarar på innlegg eldre enn %s dagar" #: wp-admin/options-discussion.php:67 msgid "Users must be registered and logged in to comment" -msgstr "Brukarar må vere registrerte og innlogga for å kunne gje innspel" +msgstr "Brukarar må vere registrerte og innlogga for å kommentere" #: wp-admin/options-discussion.php:63 msgid "Comment author must fill out name and email" @@ -8604,7 +8604,7 @@ msgstr "Innspelforfattaren må fylle ut namn og epost" #: wp-admin/options-discussion.php:61 wp-admin/options-discussion.php:62 msgid "Other comment settings" -msgstr "Amdre innspelinnstillingar" +msgstr "Amdre kommentarinnstillingar" #: wp-admin/options-discussion.php:57 msgid "These settings may be overridden for individual articles." @@ -9028,7 +9028,7 @@ msgstr "Verdi" #: wp-admin/includes/template.php:469 msgid "Comment by %s marked as spam." -msgstr "Innspelet av %s vart merkt som søpel." +msgstr "Innspelet av %s vart merkt som søppel." #: wp-admin/includes/template.php:466 msgid "Comment by %s moved to the trash." @@ -9040,7 +9040,7 @@ msgstr "Send inn svar" #: wp-admin/includes/template.php:397 msgid "Reply to Comment" -msgstr "Svar til innspel" +msgstr "Svar til kommentar" #: wp-admin/includes/class-wp-posts-list-table.php:1004 msgid "Last Modified" @@ -9070,7 +9070,7 @@ msgstr "Godta pingar" #: wp-admin/includes/class-wp-posts-list-table.php:1628 msgid "Allow Comments" -msgstr "Godta innspel" +msgstr "Gje lov til å kommentere" #: wp-admin/includes/class-wp-posts-list-table.php:1607 #: wp-admin/includes/class-wp-posts-list-table.php:1616 @@ -9525,7 +9525,7 @@ msgstr "Forelder" #: wp-admin/includes/meta-boxes.php:739 msgid "Show comments" -msgstr "Vis innspel" +msgstr "Vis kommentarar" #: wp-admin/includes/meta-boxes.php:623 msgid "Separate multiple URLs with spaces" @@ -9968,7 +9968,7 @@ msgstr "Den opplasta fila vart berre delvis lasta opp." #: wp-admin/includes/file.php:62 msgid "Popup Comments Template" -msgstr "Mal for innspel i sprettoppvindauge" +msgstr "Mal for kommentarar i sprettoppvindauge" #: wp-admin/includes/file.php:61 msgid "Comments Template" @@ -10066,36 +10066,36 @@ msgstr "Frå %1$s til %2$s%3$s" #: wp-admin/includes/class-wp-comments-list-table.php:585 #: wp-admin/includes/dashboard.php:641 msgid "Move this comment to the Trash" -msgstr "Kast dette innspelet i papirkorga" +msgstr "Kast denne kommentaren i papirkorga" #. translators: mark as spam link #: wp-admin/includes/class-wp-comments-list-table.php:573 #: wp-admin/includes/dashboard.php:636 msgctxt "verb" msgid "Spam" -msgstr "Søppelinnspel" +msgstr "Søpelkommentar" #: wp-admin/includes/class-wp-comments-list-table.php:573 #: wp-admin/includes/dashboard.php:636 msgid "Mark this comment as spam" -msgstr "Merk dette innspelet som søppel" +msgstr "Merk denne kommentaren som søppel" #: wp-admin/includes/class-wp-comments-list-table.php:595 #: wp-admin/includes/dashboard.php:635 msgid "Reply to this comment" -msgstr "Svar til dette innspelet" +msgstr "Svar til denne kommentaren" #: wp-admin/includes/class-wp-comments-list-table.php:563 #: wp-admin/includes/class-wp-comments-list-table.php:569 #: wp-admin/includes/dashboard.php:633 msgid "Unapprove this comment" -msgstr "Avvis dette innspelet" +msgstr "Avvis denne kommentaren" #: wp-admin/includes/class-wp-comments-list-table.php:565 #: wp-admin/includes/class-wp-comments-list-table.php:568 #: wp-admin/includes/dashboard.php:632 msgid "Approve this comment" -msgstr "Godkjenn dette innspelet" +msgstr "Godkjenn denne kommentaren" #: wp-admin/includes/class-wp-press-this.php:1525 #: wp-admin/includes/meta-boxes.php:275 wp-admin/includes/meta-boxes.php:276 @@ -10452,7 +10452,7 @@ msgstr "Last ned eksportfil" #: wp-admin/export.php:158 msgid "This format, which we call WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags." -msgstr "Dette formatet, som me kallar WordPress eXtended RSS eller WXR, inneheld innlegga, sidene, innspela, dei eigendefinerte felta, kategoriane og merkelappane." +msgstr "Dette formatet, som me kallar WordPress eXtended RSS eller WXR, inneheld innlegga, sidene, kommentarane, dei eigendefinerte felta, kategoriane og merkelappane." #: wp-admin/export.php:157 msgid "When you click the button below WordPress will create an XML file for you to save to your computer." @@ -10578,7 +10578,7 @@ msgstr "Namn:" #: wp-admin/includes/template.php:429 msgid "Update Comment" -msgstr "Oppdater innspel" +msgstr "Oppdater kommentaren" #. translators: 1: Post edited date, 2: Post edited time #: wp-admin/edit-form-advanced.php:645 wp-admin/includes/ajax-actions.php:2337 @@ -10644,7 +10644,7 @@ msgstr "Det eigendefinerte feltet vart oppdatert." #: wp-admin/includes/class-wp-comments-list-table.php:189 msgid "No comments found." -msgstr "Fann ingen innspel" +msgstr "Fann ingen kommentarar" #: wp-admin/includes/class-wp-comments-list-table.php:364 #: wp-admin/includes/class-wp-media-list-table.php:181 @@ -10699,14 +10699,14 @@ msgstr "Viser %s–%s av %s" #: wp-admin/edit-comments.php:309 msgid "Search Comments" -msgstr "Søk i innspel" +msgstr "Søk i kommentarar" #. translators: %s: number of comments permanently deleted #: wp-admin/edit-comments.php:283 msgid "%s comment permanently deleted" msgid_plural "%s comments permanently deleted" -msgstr[0] "%s innspel sletta for alltid" -msgstr[1] "%s innspel sletta for alltid" +msgstr[0] "%s kommentar sletta for alltid" +msgstr[1] "%s kommentarar sletta for alltid" #. translators: %s: number of comments restored from the spam #: wp-admin/edit-comments.php:267 @@ -10719,15 +10719,15 @@ msgstr[1] "%s kommentar henta framatt frå søpla." #: wp-admin/edit-comments.php:262 msgid "%s comment marked as spam." msgid_plural "%s comments marked as spam." -msgstr[0] "Innspelet av %s vart merkt som søpel." -msgstr[1] "%s innspel merkte som søpel." +msgstr[0] "Kommentaren av %s vart merkt som søppel." +msgstr[1] "%s kommentarar merkte som søppel." #. translators: %s: number of comments approved #: wp-admin/edit-comments.php:256 msgid "%s comment approved" msgid_plural "%s comments approved" -msgstr[0] "%s innspel godkjent" -msgstr[1] "%s innspel godkjent" +msgstr[0] "%s kommentar godkjend" +msgstr[1] "%s kommentarar godkjende" #: wp-admin/includes/class-wp-media-list-table.php:154 #: wp-admin/includes/class-wp-media-list-table.php:514 @@ -10815,36 +10815,36 @@ msgstr "Ukjend handling." #: wp-admin/comment.php:127 msgid "Approve Comment" -msgstr "Godkjenn innspel" +msgstr "Godkjenn kommentaren" #: wp-admin/comment.php:126 msgid "You are about to approve the following comment:" -msgstr "Du er i ferd med å godkjenne dette innspelet:" +msgstr "Du er i ferd med å godkjenne denne kommentaren:" #: wp-admin/comment.php:123 msgid "Permanently Delete Comment" -msgstr "Slett innspelet for alltid" +msgstr "Slett kommentaren for alltid" #: wp-admin/comment.php:122 msgid "You are about to delete the following comment:" -msgstr "Du skal til å sletta dette innspelet:" +msgstr "Du skal til å sletta denne kommentaren:" #: wp-admin/comment.php:118 msgid "You are about to move the following comment to the Trash:" -msgstr "Du skal til å kasta dette innspelet i papirkorga:" +msgstr "Du skal til å kasta denne kommentaren i papirkorga:" #: wp-admin/comment.php:114 msgid "You are about to mark the following comment as spam:" -msgstr "Du er i ferd med å merke dette innspelet som søppel:" +msgstr "Du er i ferd med å merke denne kommentaren som søppel:" #: wp-admin/comment.php:67 msgid "This comment is in the Trash. Please move it out of the Trash if you want to edit it." -msgstr "Dette innspelet er i papirkorga. Plukk det opp or papirkorga viss du vil endra det." +msgstr "Denne kommentaren er i papirkorga. Plukk han opp or papirkorga viss du vil endra han." #: wp-admin/comment.php:257 wp-admin/edit-comments.php:237 #: wp-admin/includes/comment.php:49 msgid "Sorry, you are not allowed to edit comments on this post." -msgstr "Du har ikkje tilgang til å endre innspel til dette innlegget." +msgstr "Du har ikkje tilgang til å endre kommentarar til dette innlegget." #: wp-admin/comment.php:61 wp-admin/comment.php:255 #: wp-admin/includes/post.php:1546 @@ -10854,7 +10854,7 @@ msgstr "Gå tilbake" #: wp-admin/comment.php:39 wp-admin/edit-form-comment.php:16 #: wp-admin/includes/template.php:396 msgid "Edit Comment" -msgstr "Endra innspel" +msgstr "Endra kommentaren" #: wp-admin/admin.php:286 wp-admin/import.php:18 wp-admin/menu.php:242 msgid "Import" @@ -10923,7 +10923,7 @@ msgstr "Skriv inn ein verdi til det eigenlaga feltet." #: wp-admin/includes/ajax-actions.php:1076 msgid "Sorry, you must be logged in to reply to a comment." -msgstr "Du må nok vera innlogga for å kunna svara på innspel." +msgstr "Du må vera innlogga for å kunna svara på kommentarar." #: wp-admin/includes/taxonomy.php:116 msgid "You did not enter a category name." diff --git a/wp-content/languages/admin-pt_BR.po b/wp-content/languages/admin-pt_BR.po index 4032e2ac8b0004aaf0410a8990e17a8452fbfe25..1c0c5e4254b7981dfd6a0f7149f913a9da0b0191 100644 --- a/wp-content/languages/admin-pt_BR.po +++ b/wp-content/languages/admin-pt_BR.po @@ -26,39 +26,39 @@ msgctxt "start of week" msgid "1" msgstr "0" -#: wp-admin/about.php:196 +#: wp-admin/about.php:218 msgid "New capabilities have been introduced to 4.8 with an eye towards removing calls to <code>is_super_admin()</code>. Additionally, new hooks and tweaks to more granularly control site and user counts per network have been added." msgstr "Novas capacidades foram introduzidas na versão 4.8 com a intenção de remover chamadas para <code>is_super_admin()</code>. Além disso, foram adicionados novos ganchos e ajustes para uma maior granularidade no controle dos sites e na contagem de usuários por rede." -#: wp-admin/about.php:151 +#: wp-admin/about.php:173 msgid "Being part of the community can help you improve your WordPress skills and network with people you wouldn’t otherwise meet. Now you can easily find your local events just by logging in to your dashboard and looking at the new Events and News dashboard widget." msgstr "Fazer parte da comunidade pode ajudar a melhorar suas habilidades no WordPress e a encontrar pessoas que você não encontraria de outra forma. Agora você pode encontrar eventos locais com facilidade, é só fazer login e dar uma olhada no novo widget de eventos e notícias no próprio painel." -#: wp-admin/about.php:149 +#: wp-admin/about.php:171 msgid "This is quickly becoming one of our favorite features. While you are in the dashboard (because you’re running updates and writing posts, right?) all upcoming WordCamps and WordPress Meetups — local to you — will be displayed." msgstr "Este está se tornando rapidamente um dos nossos recursos favoritos. Enquanto você está no painel (porque você está atualizando seu site e escrevendo seus posts, certo?) todos os WordCamps e Meetups do WordPress perto de você serão exibidos." -#: wp-admin/about.php:147 +#: wp-admin/about.php:169 msgid "Did you know that WordPress has a thriving offline community with groups meeting regularly in more than 400 cities around the world? WordPress now draws your attention to the events that help you continue improving your WordPress skills, meet friends, and, of course, publish!" msgstr "Você sabia que o WordPress tem uma próspera comunidade offline com grupos se encontrando regularmente em mais de 400 cidades pelo mundo? O WordPress agora chama sua atenção para eventos que podem lhe ajudar a melhorar ainda mais suas habilidades com o WordPress, fazer amigos e, claro, publicar!" -#: wp-admin/about.php:126 +#: wp-admin/about.php:148 msgid "Have you ever tried updating a link, or the text around a link, and found you can’t seem to edit it correctly? When you edit the text after the link, your new text also ends up linked. Or you edit the text in the link, but your text ends up outside of it. This can be frustrating! With link boundaries, a great new feature, the process is streamlined and your links will work well. You’ll be happier. We promise." msgstr "Você já tentou atualizar um link ou o texto de um link e achou que não conseguiria editá-lo de forma correta? Quando você edita o texto após o link, seu novo texto também acaba vinculado. Ou você edita um texto no link, que acaba ficando fora deste. Isso é frustrante! Com limites de link, uma nova funcionalidade, o processo é simplificado e seus links funcionarão corretamente. Isso vai facilitar a sua vida e você ficará mais feliz, nós prometemos!" -#: wp-admin/about.php:117 +#: wp-admin/about.php:139 msgid "This feature deserves a parade down the center of town! Rich-text editing capabilities are now native for Text widgets. Add a widget anywhere and format away. Create lists, add emphasis, and quickly and easily insert links. Have fun with your newfound formatting powers, and watch what you can accomplish in a short amount of time." msgstr "Este recurso merece uma chuva de confetes na avenida principal! Agora é possível usar o editor visual no widget de texto. Adicione um widget em qualquer lugar e saia formatando. Crie listas, adicione ênfase e de maneira rápida e fácil insira links. Divirta-se com seus novos poderes de formatação e repare em tudo o que você pode alcançar em um tempo bem pequeno." -#: wp-admin/about.php:109 +#: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." msgstr "Um vídeo de boas vindas é uma ótima maneira de humanizar a marca do seu site. Agora você pode adicionar qualquer vídeo da biblioteca de mídia do seu site à sua barra lateral com o novo widget de vídeo. Use um vídeo de boas vindas para apresentar seu site aos seus visitantes ou para promover seus conteúdos mais recentes." -#: wp-admin/about.php:105 +#: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." msgstr "Agora adicionar uma imagem a um widget é uma tarefa simples, possível para qualquer usuário do WordPress, sem necessidade de conhecimento de código. Simplesmente insira sua imagem direto nas configurações do widget. Tente adicionar uma foto de perfil ou uma imagem da sua aventura no último fim de semana e ela aparecerá automaticamente no seu site." -#: wp-admin/about.php:50 +#: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." msgstr "Embora algumas atualizações pareçam pequenas, elas foram feitas por centenas de contribuidores pensando em <em>você</em>. Prepare-se para novos recursos que você receberá de braços abertos: melhorias nos links, <em>três</em> novos widgets de mídia para imagens, áudio e vídeo, um widget de texto atualizado com suporte a edição visual e uma seção de notícias remodelada no seu painel, que traz os próximos eventos do WordPress perto da sua localidade." @@ -66,59 +66,59 @@ msgstr "Embora algumas atualizações pareçam pequenas, elas foram feitas por c msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." msgstr "Obrigado por atualizar para a versão mais recente! O WordPress %s adiciona mais maneiras para você se expressar e representar sua marca." -#: wp-admin/about.php:204 +#: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." msgstr "A introdução na versão 4.8 de um novo esquema para o widget de mídia na API REST cria novas possibilidades para outros widgets desse tipo no futuro, como galerias ou listas de reprodução. Uma classe básica é compartilhada pelos três novos widgets de mídia e cobre a maior parte das interações com a janela de mídia. Esta classe também torna mais fácil criar novos widgets de mídia e abre caminho para outras inovações." -#: wp-admin/about.php:203 +#: wp-admin/about.php:225 msgid "Media Widgets API" msgstr "API dos widgets de mídia" -#: wp-admin/about.php:208 +#: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." msgstr "Novos pontos de quebra no layout responsivo foram adicionados à barra lateral do Personalizar para torná-lo mais largo em telas de alta resolução. Os controles do Personalizar agora usam tamanhos baseados em porcentagem, ao invés de píxeis." -#: wp-admin/about.php:207 +#: wp-admin/about.php:229 msgid "Customizer Width Variable" msgstr "Largura variável no Personalizar" -#: wp-admin/about.php:200 +#: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" msgstr "Com a adição do TinyMCE no widget de texto na versão 4.8 vem uma nova API JavaScript para instanciar o editor depois que a página for carregada. Isso pode ser usado para adicionar uma instância do editor em qualquer área de texto e personalizá-la com botões e funções." -#: wp-admin/about.php:199 +#: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" msgstr "API JavaScript para o editor de texto" -#: wp-admin/about.php:195 +#: wp-admin/about.php:217 msgid "Multisite Updates" msgstr "Atualizações no multisite" -#: wp-admin/about.php:192 +#: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." msgstr "Como cada vez menos navegadores dão suporte para o Silverlight, formatos de arquivo que necessitam da presença do plugin não recebem mais suporte pelos arquivos básicos. Os arquivos continuarão sendo exibidos como um link para download, mas não serão mais incorporados automaticamente." -#: wp-admin/about.php:191 +#: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" msgstr "Remoção do suporte para arquivos WMV e WMA" -#: wp-admin/about.php:188 +#: wp-admin/about.php:210 msgid "New CSS rules mean extraneous content (like “Add New” links) no longer need to be included in admin-area headings. These panel headings improve the experience for people using assistive technologies." msgstr "Devido a novas regras de CSS, conteúdo alheio ao cabeçalho da área de administração, como links de “Adicionar novo”, não precisam mais estar nestas áreas. Isso melhora a acessibilidade para aqueles que usam tecnologias assistivas." -#: wp-admin/about.php:187 +#: wp-admin/about.php:209 msgid "More Accessible Admin Panel Headings" msgstr "Cabeçalhos mais acessíveis no painel de administração." -#: wp-admin/about.php:56 +#: wp-admin/about.php:78 msgid "Exciting Widget Updates" msgstr "Atualizações emocionantes nos widgets" -#: wp-admin/about.php:49 +#: wp-admin/about.php:71 msgid "WordPress 4.8 adds some great new features. Gear up for a more intuitive WordPress!" msgstr "O WordPress 4.8 traz novos e maravilhosos recursos — prepare-se para um WordPress mais intuitivo!" -#: wp-admin/about.php:48 +#: wp-admin/about.php:70 msgid "An Update with You in Mind" msgstr "Uma atualização pensando em você" @@ -127,19 +127,19 @@ msgstr "Uma atualização pensando em você" msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" msgstr "Não existe nenhum evento agendado próximo a você no momento. Você gostaria de <a href=\"%s\">organizar um</a>?" -#: wp-admin/about.php:145 +#: wp-admin/about.php:167 msgid "Nearby WordPress Events" msgstr "Eventos WordPress perto de você" -#: wp-admin/about.php:116 +#: wp-admin/about.php:138 msgid "Rich Text Widget" msgstr "Widget de texto rico" -#: wp-admin/about.php:113 +#: wp-admin/about.php:135 msgid "Are you a podcaster, musician, or avid blogger? Adding a widget with your audio file has never been easier. Upload your audio file to the Media Library, go to the widget settings, select your file, and you’re ready for listeners. This would be a easy way to add a more personal welcome message, too!" msgstr "É músico ou produz podcast? Adicionar um widget com seu arquivo de áudio nunca foi tão fácil. Faça o upload do seu arquivo de áudio na biblioteca de mídia, vá até as configurações do widget, selecione seu arquivo e está tudo pronto. Esta pode ser uma boa forma de adicionar uma mensagem de boas vindas mais convidativa também!" -#: wp-admin/about.php:125 +#: wp-admin/about.php:147 msgid "Link Boundaries" msgstr "Limites dos links" @@ -218,7 +218,7 @@ msgid "Assign a parent term to create a hierarchy. The term Jazz, for example, w msgstr "Atribua um termo ascendente para criar uma hierarquia. O termo Jazz, por exemplo, pode ser ascendente de Bebop ou Big Band." #. translators: %s: smiling face with smiling eyes emoji -#: wp-admin/about.php:180 +#: wp-admin/about.php:202 msgid "Even More Developer Happiness %s" msgstr "Ainda mais felicidade para os desenvolvedores %s" @@ -1275,7 +1275,7 @@ msgid "Welcome to %s. This is your first post. Edit or delete it, then start blo msgstr "Bem-vindo ao %s. Esse é o seu primeiro post. Edite-o ou exclua-o, e então comece a escrever!" #. translators: %s: WordPress version number -#: wp-admin/about.php:242 +#: wp-admin/about.php:264 msgid "<strong>Version %s</strong> addressed one security issue." msgstr "A <strong>versão %s</strong> resolveu um problema de segurança." @@ -1292,15 +1292,15 @@ msgstr "Você pode trocar sua foto de perfil no <a href=\"%s\">Gravatar</a>." msgid "Profile Picture" msgstr "Foto do perfil" -#: wp-admin/about.php:239 +#: wp-admin/about.php:261 msgid "Maintenance and Security Releases" msgstr "Versões de segurança e manutenção" -#: wp-admin/about.php:236 +#: wp-admin/about.php:258 msgid "Security Releases" msgstr "Atualizações de segurança" -#: wp-admin/about.php:233 +#: wp-admin/about.php:255 msgid "Maintenance Releases" msgstr "Versões de manutenção" @@ -5387,7 +5387,7 @@ msgid "Contributing Developers" msgstr "Desenvolvedores que também contribuem" #. translators: 1: WordPress version number, 2: plural number of bugs. -#: wp-admin/about.php:247 +#: wp-admin/about.php:52 wp-admin/about.php:269 msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "A <strong>versão %1$s</strong> corrigiu %2$s bug." @@ -5395,20 +5395,20 @@ msgstr[1] "A <strong>versão %1$s</strong> corrigiu %2$s bugs." #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. -#: wp-admin/about.php:255 +#: wp-admin/about.php:277 msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs." msgstr[0] "A <strong>versão %1$s</strong> corrigiu alguns problemas de segurança e %2$s bug." msgstr[1] "A <strong>versão %1$s</strong> corrigiu alguns problemas de segurança e %2$s bugs." #. translators: %s: Codex URL -#: wp-admin/about.php:259 +#: wp-admin/about.php:63 wp-admin/about.php:281 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "Para mais informações, veja <a href=\"%s\">as notas de lançamento</a>." #. translators: 1: WordPress version number, 2: plural number of bugs. Singular #. security issue. -#: wp-admin/about.php:251 +#: wp-admin/about.php:273 msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs." msgstr[0] "A <strong>versão %1$s</strong> corrigiu um problema de segurança e %2$s bug." @@ -5419,15 +5419,15 @@ msgid "Welcome to your WordPress Dashboard! This is the screen you will see when msgstr "Boas-vindas ao Painel do seu WordPress! Esta é a tela que você vai ver quando fizer login em seu site e que dá acesso a todos os recursos de gerenciamento do WordPress. Você pode obter ajuda em qualquer tela clicando na aba Ajuda acima do título da tela." #. translators: %s: WordPress version number -#: wp-admin/about.php:244 +#: wp-admin/about.php:266 msgid "<strong>Version %s</strong> addressed some security issues." msgstr "A <strong>versão %s</strong> corrigiu alguns problemas de segurança." -#: wp-admin/about.php:232 +#: wp-admin/about.php:47 wp-admin/about.php:254 msgid "Maintenance Release" msgstr "Versão de manutenção" -#: wp-admin/about.php:235 +#: wp-admin/about.php:257 msgid "Security Release" msgstr "Versão de segurança" @@ -5435,7 +5435,7 @@ msgstr "Versão de segurança" msgid "What’s New" msgstr "O que há de novo" -#: wp-admin/about.php:238 +#: wp-admin/about.php:260 msgid "Maintenance and Security Release" msgstr "Versão de segurança e manutenção" @@ -5447,7 +5447,7 @@ msgstr "Esta tela permite que você escolha a estrutura padrão para seu links p msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>." msgstr "Bem-vindo ao WordPress%1$s. <a href=\"%2$s\">Saiba mais</a>." -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Updates" msgstr "Voltar às atualizações" @@ -5727,11 +5727,11 @@ msgstr "Há inclusão direta em wp-admin/includes/template.php para usar add_met msgid "Welcome to WordPress %s" msgstr "Boas-vindas ao WordPress %s" -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Dashboard → Updates" msgstr "Voltar ao Painel → Atualizações" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard → Home" msgstr "Ir para Painel → Início" @@ -7599,7 +7599,7 @@ msgstr "Ver tudo" msgid "Please enter a valid menu name." msgstr "Digite um nome de menu válido." -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard" msgstr "Ir para o painel" diff --git a/wp-content/languages/admin-ro_RO.mo b/wp-content/languages/admin-ro_RO.mo index e1d6e949058c9e202b6d5c2bbc4b3b47de6520ab..a8878e797fb936d6a4e7d8c76031683e4bae1c65 100644 Binary files a/wp-content/languages/admin-ro_RO.mo and b/wp-content/languages/admin-ro_RO.mo differ diff --git a/wp-content/languages/admin-ro_RO.po b/wp-content/languages/admin-ro_RO.po index c30df888e7fe3f6b60b505082a94ad20f025a415..af1111c293ad26101db44bfd60422c3dd130906c 100644 --- a/wp-content/languages/admin-ro_RO.po +++ b/wp-content/languages/admin-ro_RO.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-07-28 07:05:51+0000\n" +"PO-Revision-Date: 2017-09-19 13:05:58+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -26,39 +26,39 @@ msgctxt "default GMT offset or timezone string" msgid "0" msgstr "Europa/București" -#: wp-admin/about.php:196 +#: wp-admin/about.php:218 msgid "New capabilities have been introduced to 4.8 with an eye towards removing calls to <code>is_super_admin()</code>. Additionally, new hooks and tweaks to more granularly control site and user counts per network have been added." msgstr "În 4.8 au fost introduse capabilități noi cu scopul de a înlătura apelările către <code>is_super_admin()</code>. În plus, au fost adăugate cârlige noi și ajustări fine pentru a controla situl în detaliu precum și numărarea utilizatorilor per rețea." -#: wp-admin/about.php:151 +#: wp-admin/about.php:173 msgid "Being part of the community can help you improve your WordPress skills and network with people you wouldn’t otherwise meet. Now you can easily find your local events just by logging in to your dashboard and looking at the new Events and News dashboard widget." msgstr "Să faci parte din comunitate te poate ajuta în a-ți îmbunătăți cunoștințele de WordPress și a putea să intri în legătură cu persoane pe care nu le-ai fi putut întâlni altfel. Acum poți găsi cu ușurință evenimente locale doar prin autentificarea în panoul tău de control și privind piesa evenimente și știri." -#: wp-admin/about.php:149 +#: wp-admin/about.php:171 msgid "This is quickly becoming one of our favorite features. While you are in the dashboard (because you’re running updates and writing posts, right?) all upcoming WordCamps and WordPress Meetups — local to you — will be displayed." msgstr "Aceasta devine rapid una dintre funcționalitățile noastre preferate. În timp ce ești în panoul de control (deoarece faci actualizări și scrii articole, nu-i așa?) vor fi afișate toate WordCamp-urile și Meetup-urile WordPress viitoare — din apropierea ta." -#: wp-admin/about.php:147 +#: wp-admin/about.php:169 msgid "Did you know that WordPress has a thriving offline community with groups meeting regularly in more than 400 cities around the world? WordPress now draws your attention to the events that help you continue improving your WordPress skills, meet friends, and, of course, publish!" msgstr "Știai că WordPress are o comunitate offline înfloritoare cu grupuri care se întâlnesc în mod regulat în peste 400 de orașe din întreaga lume? Acum WordPress îți atrage atenția asupra evenimentelor care te ajută să continui îmbunătățirea cunoștințelor tale de WordPress, să te întâlnești cu prietenii și, bineînțeles, să publici!" -#: wp-admin/about.php:126 +#: wp-admin/about.php:148 msgid "Have you ever tried updating a link, or the text around a link, and found you can’t seem to edit it correctly? When you edit the text after the link, your new text also ends up linked. Or you edit the text in the link, but your text ends up outside of it. This can be frustrating! With link boundaries, a great new feature, the process is streamlined and your links will work well. You’ll be happier. We promise." msgstr "Ai încercat vreodată să actualizezi o legătură sau textul adiacent unei legături și să ai impresia că nu o poți face corect? Când editezi textul după legătură, noul text se adaugă celui al legăturii. Sau când editezi textul din legătură, ce ai adăugat ajunge în afara ei. Acest lucru poate fi frustrant! Cu limitele legăturii, o nouă funcționalitate importantă, procesul este simplificat și legăturile tale vor funcționa bine. Vei fi mulțumit. Promitem." -#: wp-admin/about.php:117 +#: wp-admin/about.php:139 msgid "This feature deserves a parade down the center of town! Rich-text editing capabilities are now native for Text widgets. Add a widget anywhere and format away. Create lists, add emphasis, and quickly and easily insert links. Have fun with your newfound formatting powers, and watch what you can accomplish in a short amount of time." msgstr "Această funcționalitate merită o paradă în centrul orașului! Posibilitatea de a edita a textului îmbogățit este acum nativă pentru piesele Text. Adaugi oriunde o piesă și o formatezi. Creezi liste, adaugi sublinieri și introduci rapid și ușor legături. Distrează-te cu noua ta putere de a formata și vezi câte poți face într-o scurtă perioadă de timp." -#: wp-admin/about.php:109 +#: wp-admin/about.php:131 msgid "A welcome video is a great way to humanize the branding of your website. You can now add any video from the Media Library to a sidebar on your site with the new Video widget. Use this to showcase a welcome video to introduce visitors to your site or promote your latest and greatest content." msgstr "Un video de bun venit este o modalitate excelentă de a umaniza personalizarea sitului tău web. Acum poți adăuga oricare video din Biblioteca media într-o bară laterală de pe situl tău cu noua piesă Video. Folosește-o pentru a afișa un video de întâmpinare pentru a-ți prezenta situl vizitatorilor tăi sau pentru a-ți promova cel mai recent și important conținut." -#: wp-admin/about.php:105 +#: wp-admin/about.php:127 msgid "Adding an image to a widget is now a simple task that is achievable for any WordPress user without needing to know code. Simply insert your image right within the widget settings. Try adding something like a headshot or a photo of your latest weekend adventure — and see it appear automatically." msgstr "Adăugarea unei imagini într-o piesă este acum o treabă simplă care poate fi realizată de orice utilizator WordPress fără cunoștințe de programare. Pur și simplu introduci imaginea direct în setările piesei. Încearcă să adaugi ceva, un portret sau o fotografie făcută în ultimul weekend — și ea va apărea automat." -#: wp-admin/about.php:50 +#: wp-admin/about.php:72 msgid "Though some updates seem minor, they’ve been built by hundreds of contributors with <em>you</em> in mind. Get ready for new features you’ll welcome like an old friend: link improvements, <em>three</em> new media widgets covering images, audio, and video, an updated text widget that supports visual editing, and an upgraded news section in your dashboard which brings in nearby and upcoming WordPress events." msgstr "Deși unele actualizări par minore, ele au fost construite de sute de contributori cu gândul la <em>tine</em>. Pregătește-te pentru funcționalități noi pe care le vei primi ca pe un vechi prieten: îmbunătățiri pentru legături, <em>trei</em> noi piese media pentru imagini, audio și video, o piesă pentru text îmbunătățită care suportă editarea vizuală și o secțiune de știri actualizată în panoul tău de control care îți aduce viitoare evenimente WordPress din apropierea ta." @@ -66,59 +66,59 @@ msgstr "Deși unele actualizări par minore, ele au fost construite de sute de c msgid "Thank you for updating to the latest version! WordPress %s adds more ways for you to express yourself and represent your brand." msgstr "Îți mulțumim pentru că ai făcut actualizarea la ultima versiune! WordPress %s îți oferă acum mai multe modalități de a te exprima și de a-ți face cunoscută imaginea." -#: wp-admin/about.php:204 +#: wp-admin/about.php:226 msgid "The introduction of a new base media widget REST API schema to 4.8 opens up possibilities for even more media widgets (like galleries or playlists) in the future. The three new media widgets are powered by a shared base class that covers most of the interactions with the media modal. That class also makes it easier to create new media widgets and paves the way for more to come." msgstr "Introducerea în 4.8 a unei scheme REST API pentru noua piesă media de bază deschide acum posibilități pentru și mai multe piese media pe viitor (cum ar fi galerii sau liste de redare). Cele trei piese media noi sunt propulsate de o clasă de bază comună care acoperă majoritatea interacțiunilor cu un modal media. Această clasă ușurează de asemenea crearea de noi piese media și deschide calea spre și mai multe pe viitor." -#: wp-admin/about.php:203 +#: wp-admin/about.php:225 msgid "Media Widgets API" msgstr "API piese media" -#: wp-admin/about.php:208 +#: wp-admin/about.php:230 msgid "Rejoice! New responsive breakpoints have been added to the customizer sidebar to make it wider on high-resolution screens. Customizer controls should use percentage-based widths instead of pixels." msgstr "Bucură-te! Au fost adăugate puncte noi de comutare responsivă în bara laterală a personalizatorului pentru a-l face mai lat pe ecranele cu rezoluție mare. Comenzile personalizatorului ar trebui să folosească lățimi bazate pe procente în loc de pixeli." -#: wp-admin/about.php:207 +#: wp-admin/about.php:229 msgid "Customizer Width Variable" msgstr "Lățime variabilă pentru personalizator" -#: wp-admin/about.php:200 +#: wp-admin/about.php:222 msgid "With the addition of TinyMCE to the text widget in 4.8 comes a new JavaScript API for instantiating the editor after page load. This can be used to add an editor instance to any text area, and customize it with buttons and functions. Great for plugin authors!" msgstr "Prin adăugarea lui TinyMCE la piesa text în 4.8 apare un nou JavaScript API pentru instanțierea editorului după încărcarea paginii. Acesta poate fi folosit pentru a adăuga o instanță de editor oricărei zone de text și pentru a o personaliza cu butoane și funcții. Excelent pentru autorii de module!" -#: wp-admin/about.php:199 +#: wp-admin/about.php:221 msgid "Text-Editor JavaScript API" msgstr "JavaScript API pentru editor text" -#: wp-admin/about.php:195 +#: wp-admin/about.php:217 msgid "Multisite Updates" msgstr "Actualizări multi-sit" -#: wp-admin/about.php:192 +#: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." msgstr "Deoarece tot mai puține navigatoare oferă suport Silverlight, formatele de fișier care necesită prezența modulului Silverlight sunt înlăturate din suportul nucleului. Fișierele vor fi afișate în continuare ca o legătură de descărcare, dar nu vor mai fi înglobate automat." -#: wp-admin/about.php:191 +#: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" msgstr "Înlăturarea suportului nucleului pentru fișiere WMV și WMA" -#: wp-admin/about.php:188 +#: wp-admin/about.php:210 msgid "New CSS rules mean extraneous content (like “Add New” links) no longer need to be included in admin-area headings. These panel headings improve the experience for people using assistive technologies." msgstr "Noi reguli CSS înseamnă că un conținut extern (cum ar fi o legătură „Adaugă nou”) nu mai trebuie să fie incluse în antetele zonelor administrative. Aceste antete de panouri oferă acum o experiența îmbunătățită persoanelor care folosesc tehnologii asistențiale." -#: wp-admin/about.php:187 +#: wp-admin/about.php:209 msgid "More Accessible Admin Panel Headings" msgstr "Antete mai accesibile ale panourilor de administrare" -#: wp-admin/about.php:56 +#: wp-admin/about.php:78 msgid "Exciting Widget Updates" msgstr "Actualizări incitante de piese" -#: wp-admin/about.php:49 +#: wp-admin/about.php:71 msgid "WordPress 4.8 adds some great new features. Gear up for a more intuitive WordPress!" msgstr "WordPress 4.8 adaugă câteva noi funcționalități grozave. Echipează-te pentru un WordPress mult mai intuitiv!" -#: wp-admin/about.php:48 +#: wp-admin/about.php:70 msgid "An Update with You in Mind" msgstr "O actualizare cu Tine în gând" @@ -127,19 +127,19 @@ msgstr "O actualizare cu Tine în gând" msgid "There aren’t any events scheduled near you at the moment. Would you like to <a href=\"%s\">organize one</a>?" msgstr "În acest moment nu există evenimente programate în apropierea ta. Vrei să <a href=\"%s\">organizezi tu unul</a>?" -#: wp-admin/about.php:145 +#: wp-admin/about.php:167 msgid "Nearby WordPress Events" msgstr "Evenimente WordPress în apropiere" -#: wp-admin/about.php:116 +#: wp-admin/about.php:138 msgid "Rich Text Widget" msgstr "Piesă text îmbogățit" -#: wp-admin/about.php:113 +#: wp-admin/about.php:135 msgid "Are you a podcaster, musician, or avid blogger? Adding a widget with your audio file has never been easier. Upload your audio file to the Media Library, go to the widget settings, select your file, and you’re ready for listeners. This would be a easy way to add a more personal welcome message, too!" msgstr "Ești un producător de podcast, un muzician sau un bloger pasionat? Adăugarea unei piese cu fișierul tău audio nu a fost niciodată mai ușoară. Încarcă-ți fișierul audio în Biblioteca media, du-te la setările piesei, selectează fișierul și ești gata pentru ascultători. Aceasta ar putea fi și o modalitate ușoară de a adăuga un mesaj de întâmpinare mai personal!" -#: wp-admin/about.php:125 +#: wp-admin/about.php:147 msgid "Link Boundaries" msgstr "Limite legătură" @@ -218,7 +218,7 @@ msgid "Assign a parent term to create a hierarchy. The term Jazz, for example, w msgstr "Atribuie un termen părinte pentru a crea o ierarhie. De exemplu, termenul Muzică ar fi părinte pentru Jazz și Latino." #. translators: %s: smiling face with smiling eyes emoji -#: wp-admin/about.php:180 +#: wp-admin/about.php:202 msgid "Even More Developer Happiness %s" msgstr "Și mai multă fericire pentru dezvoltator %s" @@ -1277,7 +1277,7 @@ msgid "(Currently set to: %s)" msgstr "(Acum este setată: %s)" #. translators: %s: WordPress version number -#: wp-admin/about.php:242 +#: wp-admin/about.php:264 msgid "<strong>Version %s</strong> addressed one security issue." msgstr "<strong>Versiunea %s</strong> a rezolvat o problemă de securitate." @@ -1299,15 +1299,15 @@ msgstr "Îți poți schimba poza de profil în <a href=\"%s\">Gravatar</a>." msgid "Profile Picture" msgstr "Poză de profil" -#: wp-admin/about.php:236 +#: wp-admin/about.php:258 msgid "Security Releases" msgstr "Lansări de securitate" -#: wp-admin/about.php:233 +#: wp-admin/about.php:255 msgid "Maintenance Releases" msgstr "Lansări de mentenanță" -#: wp-admin/about.php:239 +#: wp-admin/about.php:261 msgid "Maintenance and Security Releases" msgstr "Lansări de mentenanță și securitate" @@ -1765,15 +1765,6 @@ msgstr "Filtrare listă elemente" msgid "Failed to initialize a SFTP subsystem session with the SSH2 Server %s" msgstr "Nu am putut inițializa o sesiune a subsistemului SFTP cu serverul SSH2 %s" -#. translators: %s: all comments count -#: wp-admin/includes/class-wp-comments-list-table.php:207 -msgctxt "comments" -msgid "All <span class=\"count\">(%s)</span>" -msgid_plural "All <span class=\"count\">(%s)</span>" -msgstr[0] "Doar <span class=\"count\">(%s)</span>" -msgstr[1] "Toate <span class=\"count\">(%s)</span>" -msgstr[2] "Toate <span class=\"count\">(%s)</span>" - #: wp-admin/includes/class-wp-plugins-list-table.php:619 msgid "Network Active" msgstr "Activ în rețea" @@ -1783,6 +1774,15 @@ msgstr "Activ în rețea" msgid "User %s added" msgstr "Utilizator %s adăugat" +#. translators: %s: all comments count +#: wp-admin/includes/class-wp-comments-list-table.php:207 +msgctxt "comments" +msgid "All <span class=\"count\">(%s)</span>" +msgid_plural "All <span class=\"count\">(%s)</span>" +msgstr[0] "Toate <span class=\"count\">(%s)</span>" +msgstr[1] "Toate <span class=\"count\">(%s)</span>" +msgstr[2] "Toate <span class=\"count\">(%s)</span>" + #: wp-admin/export.php:164 msgid "Content to export" msgstr "Conținut de exportat" @@ -5422,7 +5422,7 @@ msgid "Contributing Developers" msgstr "Contributori" #. translators: 1: WordPress version number, 2: plural number of bugs. -#: wp-admin/about.php:247 +#: wp-admin/about.php:52 wp-admin/about.php:269 msgid "<strong>Version %1$s</strong> addressed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed %2$s bugs." msgstr[0] "<strong>Versiunea %1$s</strong> a rezolvat %2$s eroare." @@ -5431,7 +5431,7 @@ msgstr[2] "<strong>Versiunea %1$s</strong> a rezolvat %2$s de erori." #. translators: 1: WordPress version number, 2: plural number of bugs. More #. than one security issue. -#: wp-admin/about.php:255 +#: wp-admin/about.php:277 msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs." msgstr[0] "<strong>Versiunea %1$s</strong> a rezolvat câteva probleme de securitate și %2$s eroare." @@ -5440,7 +5440,7 @@ msgstr[2] "<strong>Versiunea %1$s</strong> a rezolvat câteva probleme de securi #. translators: 1: WordPress version number, 2: plural number of bugs. Singular #. security issue. -#: wp-admin/about.php:251 +#: wp-admin/about.php:273 msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug." msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs." msgstr[0] "<strong>Versiunea %1$s</strong> a rezolvat o problemă de securitate și %2$s eroare." @@ -5448,7 +5448,7 @@ msgstr[1] "<strong>Versiunea %1$s</strong> a rezolvat o problemă de securitate msgstr[2] "<strong>Versiunea %1$s</strong> a rezolvat o problemă de securitate și %2$s de erori." #. translators: %s: Codex URL -#: wp-admin/about.php:259 +#: wp-admin/about.php:63 wp-admin/about.php:281 msgid "For more information, see <a href=\"%s\">the release notes</a>." msgstr "Pentru mai multe informații, vezi <a href=\"%s\">notele de lansare</a>." @@ -5461,19 +5461,19 @@ msgid "What’s New" msgstr "Noutăți" #. translators: %s: WordPress version number -#: wp-admin/about.php:244 +#: wp-admin/about.php:266 msgid "<strong>Version %s</strong> addressed some security issues." msgstr "<strong>Versiunea %s</strong> a rezolvat câteva probleme de securitate." -#: wp-admin/about.php:235 +#: wp-admin/about.php:257 msgid "Security Release" msgstr "Actualizare de securitate" -#: wp-admin/about.php:232 +#: wp-admin/about.php:47 wp-admin/about.php:254 msgid "Maintenance Release" msgstr "Actualizare de mentenanță" -#: wp-admin/about.php:238 +#: wp-admin/about.php:260 msgid "Maintenance and Security Release" msgstr "Actualizare de mentenanță și securitate" @@ -5485,7 +5485,7 @@ msgstr "Acest ecran îți oferă posibilitatea să alegi structura ta de legătu msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>." msgstr "Bun venit pe WordPress %1$s. <a href=\"%2$s\">Află mai multe</a>." -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Updates" msgstr "Înapoi la actualizări" @@ -5765,11 +5765,11 @@ msgstr "Probabil includerea directă a wp-admin/includes/template.php în scopul msgid "Welcome to WordPress %s" msgstr "Bun venit pe WordPress %s" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard → Home" msgstr "Mergi la Panou control → Prima pagină" -#: wp-admin/about.php:218 +#: wp-admin/about.php:240 msgid "Return to Dashboard → Updates" msgstr "Înapoi la Panou control → Actualizări" @@ -7622,7 +7622,7 @@ msgstr "Actualizări WordPress" msgid "Edit menu item" msgstr "Editează element meniu" -#: wp-admin/about.php:221 +#: wp-admin/about.php:243 msgid "Go to Dashboard" msgstr "Mergi la panoul de control" @@ -10113,14 +10113,6 @@ msgstr "persoană dragă" msgid "The description is not prominent by default; however, some themes may show it." msgstr "Descrierea nu este absolut necesară, cu toate acestea unele teme o pot afișa." -#: wp-admin/includes/class-wp-posts-list-table.php:317 -msgctxt "posts" -msgid "All <span class=\"count\">(%s)</span>" -msgid_plural "All <span class=\"count\">(%s)</span>" -msgstr[0] "În total <span class=\"count\">(%s)</span>" -msgstr[1] "În total <span class=\"count\">(%s)</span>" -msgstr[2] "În total <span class=\"count\">(%s)</span>" - #: wp-admin/includes/class-wp-comments-list-table.php:593 #: wp-admin/includes/class-wp-posts-list-table.php:1253 #: wp-admin/includes/class-wp-terms-list-table.php:449 @@ -10495,10 +10487,6 @@ msgstr "Situl intră în mentenanță…" msgid "Visit site" msgstr "Vizitează sit" -#: wp-admin/includes/file.php:36 -msgid "Single Post" -msgstr "Un singur articol" - #: wp-admin/includes/class-wp-comments-list-table.php:585 #: wp-admin/includes/dashboard.php:641 msgid "Move this comment to the Trash" @@ -10888,6 +10876,18 @@ msgstr "Descarc actualizarea de la <span class=\"code\">%s</span>…" msgid "Date/Time" msgstr "Dată/oră" +#: wp-admin/includes/class-wp-posts-list-table.php:317 +msgctxt "posts" +msgid "All <span class=\"count\">(%s)</span>" +msgid_plural "All <span class=\"count\">(%s)</span>" +msgstr[0] "Toate <span class=\"count\">(%s)</span>" +msgstr[1] "Toate <span class=\"count\">(%s)</span>" +msgstr[2] "Toate <span class=\"count\">(%s)</span>" + +#: wp-admin/includes/file.php:36 +msgid "Single Post" +msgstr "Articol singular" + #: wp-admin/admin.php:286 wp-admin/import.php:18 wp-admin/menu.php:242 msgid "Import" msgstr "Import" diff --git a/wp-content/languages/admin-ru_RU.mo b/wp-content/languages/admin-ru_RU.mo index f3e57de9287b8b91ee6cc280cffa83dff3eb4151..ee7f14e2d8b8fd51805c4d0e46dcb93494301db1 100644 Binary files a/wp-content/languages/admin-ru_RU.mo and b/wp-content/languages/admin-ru_RU.mo differ diff --git a/wp-content/languages/admin-ru_RU.po b/wp-content/languages/admin-ru_RU.po index 9ad220d635563bb2c41e9858be34c96d5ee75247..07bca9eace9e8de46f450a63137fadef20507211 100644 --- a/wp-content/languages/admin-ru_RU.po +++ b/wp-content/languages/admin-ru_RU.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-10 10:38:14+0000\n" +"PO-Revision-Date: 2017-08-29 20:32:20+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -96,7 +96,7 @@ msgstr "Обновления для режима сети" #: wp-admin/about.php:214 msgid "As fewer and fewer browsers support Silverlight, file formats which require the presence of the Silverlight plugin are being removed from core support. Files will still display as a download link, but will no longer be embedded automatically." -msgstr "Так как все меньше браузеров поддерживают Silverlight, файловые форматы требующие наличия Silverlight плагина более не поддерживаются ядром. Файлы будут отображаться как ссылка на загрузку, но не будут автоматически встраиваться." +msgstr "Так как все меньше браузеров поддерживают Silverlight, файловые форматы, требующие наличия Silverlight плагина, больше не поддерживаются ядром. Файлы будут отображаться как ссылка на загрузку, но не будут автоматически встраиваться." #: wp-admin/about.php:213 msgid "Removal of Core Support for WMV and WMA Files" diff --git a/wp-content/languages/admin-sk_SK.mo b/wp-content/languages/admin-sk_SK.mo index dbb2d0f69f96bc57b34260f7d0daa3fce1043766..7871934f6df73d447034ab126bbe45e0707e250a 100644 Binary files a/wp-content/languages/admin-sk_SK.mo and b/wp-content/languages/admin-sk_SK.mo differ diff --git a/wp-content/languages/admin-sk_SK.po b/wp-content/languages/admin-sk_SK.po index 6ca34e3607139b3ec78df86d9ce11170fab6290c..d7f072f23371dc5451eed26cb0e050d9c874bd71 100644 --- a/wp-content/languages/admin-sk_SK.po +++ b/wp-content/languages/admin-sk_SK.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x - Administration package. msgid "" msgstr "" -"PO-Revision-Date: 2017-07-26 12:04:33+0000\n" +"PO-Revision-Date: 2017-09-30 08:21:26+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -6305,7 +6305,7 @@ msgstr "Všetky komentáre" #: wp-admin/credits.php:117 msgid "Core Contributors to WordPress %s" -msgstr "Hlavný prispievatelia do WordPress %s" +msgstr "Hlavní prispievatelia do WordPress %s" #: wp-admin/credits.php:119 msgid "Cofounder, Project Lead" @@ -7273,7 +7273,7 @@ msgstr "Nie je spam" #: wp-admin/custom-background.php:309 msgid "This will restore the original background image. You will not be able to restore any customizations." -msgstr "Toto obnoví pôvodný obrázok pozadia. Po vykonaní nebude možné obnoviť žiadny vaše úpravy." +msgstr "Toto obnoví pôvodný obrázok pozadia. Po vykonaní nebude možné obnoviť žiadne vaše úpravy." #: wp-admin/includes/dashboard.php:1306 msgid "WordPress Blog" @@ -7369,7 +7369,7 @@ msgstr "Nemôžete odstrániť tohoto užívateľa." #: wp-admin/users.php:391 msgid "There are no valid users selected for removal." -msgstr "Neexistujú žiadny platní užívatelia vybraní na odstránenie." +msgstr "Neexistujú žiadni platní používatelia vybraní na odstránenie." #: wp-admin/users.php:389 msgid "Confirm Removal" @@ -8672,7 +8672,7 @@ msgstr "Nastavenie komentárov" #: wp-admin/includes/class-wp-users-list-table.php:155 #: wp-admin/includes/deprecated.php:561 msgid "No users found." -msgstr "Neboli nájdený žiadny užívatelia" +msgstr "Neboli nájdení žiadni používatelia" #: wp-admin/update-core.php:351 wp-admin/update-core.php:399 #: wp-admin/update-core.php:714 wp-admin/update-core.php:719 diff --git a/wp-content/languages/da_DK.mo b/wp-content/languages/da_DK.mo index a9a3426c212f048c4ba9e3c20e44f929980782dc..de1b779f8b78f890b15cbea78f59b47e80f2d3d9 100644 Binary files a/wp-content/languages/da_DK.mo and b/wp-content/languages/da_DK.mo differ diff --git a/wp-content/languages/da_DK.po b/wp-content/languages/da_DK.po index e57719dba889584e1bb2cf224b628c6e87bc7870..0b42265929e31788f6655d67c94064b65c00a0cf 100644 --- a/wp-content/languages/da_DK.po +++ b/wp-content/languages/da_DK.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-14 21:22:21+0000\n" +"PO-Revision-Date: 2017-10-03 23:25:51+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -42,7 +42,7 @@ msgstr "Denne widget kan have indeholdt kode, der vil virke bedre i den nye HTML #: wp-includes/widgets/class-wp-widget-text.php:419 msgid "Hey there, looks like you just pasted HTML into the “Visual” tab of the Text widget. You may want to paste your code into the “Text” tab instead. Alternately, try out the new “Custom HTML” widget!" -msgstr "Det ser ud som om, du lige har sat HTML ind i “Visuel”-fanen i en Tekst-widget\". Det er nok bedre at indsætte din kode i “Tekst”-fanen i stedet for. Alternativt kan du afprøve vores nye “Brugerdefineret HTML”-widget!" +msgstr "Det ser ud som om, du lige har sat HTML ind i “Visuel”-fanen i en Tekst-widget. Det er nok bedre at indsætte din kode i “Tekst”-fanen i stedet for. Alternativt kan du afprøve vores nye “Brugerdefineret HTML”-widget!" #: wp-includes/widgets/class-wp-widget-text.php:418 msgid "Did you just paste HTML?" @@ -450,55 +450,55 @@ msgstr "Det forespurgte sidenummer er større end antallet af tilgængelige side msgid "You need to define an include parameter to order by include." msgstr "Du skal definere et inkluderingsparameter for at sortere efter inkludering." +#: wp-includes/post.php:1388 +msgctxt "post" +msgid "Set featured image" +msgstr "Vælg udvalgt billede" + +#: wp-includes/post.php:1388 +msgctxt "page" +msgid "Set featured image" +msgstr "Vælg udvalgt billede" + +#: wp-includes/post.php:1387 +msgctxt "post" +msgid "Featured Image" +msgstr "Udvalgt billede" + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:79 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:101 +msgid "The password for the parent post of the comment (if the post is password protected)." +msgstr "Kodeordet for hovedindlægget for kommentaren (hvis indlægget er kodeordsbeskyttet)." + #: wp-includes/post.php:1390 msgctxt "page" msgid "Use as featured image" -msgstr "Benyt som fremhævet billede" +msgstr "Brug som udvalgt billede" #: wp-includes/post.php:1390 msgctxt "post" msgid "Use as featured image" -msgstr "Benyt som fremhævet billede" +msgstr "Brug som udvalgt billede" #: wp-includes/post.php:1389 msgctxt "page" msgid "Remove featured image" -msgstr "Fjern fremhævet billede" +msgstr "Fjern udvalgt billede" #: wp-includes/post.php:1389 msgctxt "post" msgid "Remove featured image" -msgstr "Fjern fremhævet billede" +msgstr "Fjern udvalgt billede" #: wp-includes/post.php:1387 msgctxt "page" msgid "Featured Image" -msgstr "Fremhævet billede" +msgstr "Udvalgt billede" #. translators: 1: $sanitize_callback, 2: register_setting() #: wp-includes/option.php:1989 msgid "%1$s is deprecated. The callback from %2$s is used instead." -msgstr "%1$s er forældet. Callback fra %2$s er benyttet i stedet." - -#: wp-includes/post.php:1388 -msgctxt "post" -msgid "Set featured image" -msgstr "Vælg udvalgt billede" - -#: wp-includes/post.php:1388 -msgctxt "page" -msgid "Set featured image" -msgstr "Vælg udvalgt billede" - -#: wp-includes/post.php:1387 -msgctxt "post" -msgid "Featured Image" -msgstr "Udvalgt billede" - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:79 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:101 -msgid "The password for the parent post of the comment (if the post is password protected)." -msgstr "Kodeordet for hovedindlægget for kommentaren (hvis indlægget er kodeordsbeskyttet)." +msgstr "%1$s er forældet. Callback fra %2$s bruges i stedet." #: wp-includes/functions.php:2132 wp-includes/script-loader.php:283 msgid "Sorry, this file type is not permitted for security reasons." @@ -1625,7 +1625,7 @@ msgstr "HTML-uddrag for objektet, transformeret for visning." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1967 msgid "The ID of the featured media for the object." -msgstr "ID'et for objektets fremhævede medie." +msgstr "ID'et for objektets udvalgte medie." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1945 msgid "Excerpt for the object, as it exists in the database." @@ -1704,10 +1704,6 @@ msgstr "Dato, objektet blev udgivet, i GMT-tid." msgid "The date the object was published, in the site's timezone." msgstr "Datoen, objektet blev udgivet, i webstedets tidszone." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1160 -msgid "Invalid featured media ID." -msgstr "Ugyldigt fremhævet medie-ID." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1051 msgid "A sticky post can not be password protected." msgstr "Et fastgjort indlæg kan ikke beskyttes med adgangskode." @@ -1721,6 +1717,10 @@ msgstr "Ugyldig ID for overordnet indlæg." msgid "A password protected post can not be set to sticky." msgstr "Et adgangskodebeskyttet indlæg kan ikke fastgøres." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1160 +msgid "Invalid featured media ID." +msgstr "Ugyldigt udvalgt medie-ID." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1047 msgid "A post can not be sticky and have a password." msgstr "Et indlæg kan ikke være fastgjort og have adgangskode." @@ -3064,7 +3064,7 @@ msgstr "Luk dialog" #. 4: __construct() method #: wp-includes/functions.php:3893 msgid "The called constructor method for %1$s in %2$s is <strong>deprecated</strong> since version %3$s! Use %4$s instead." -msgstr "Den kaldte constructor-metode for %1$s i %2$s er <strong>forældet</strong> siden version %3$s! Benyt %4$s i stedet." +msgstr "Den kaldte constructor-metode for %1$s i %2$s er <strong>forældet</strong> siden version %3$s! Brug i stedet %4$s." #. translators: %s: document.write() #: wp-includes/customize/class-wp-customize-selective-refresh.php:209 @@ -3181,7 +3181,7 @@ msgstr "(nuværende: %s)" #: wp-includes/class-wp-customize-nav-menus.php:417 msgctxt "menu" msgid "(Currently set to: %s)" -msgstr "(nuværende sat til: %s)" +msgstr "(på nuværende tidspunkt sat til: %s)" #: wp-includes/ms-load.php:486 msgid "https://codex.wordpress.org/Debugging_a_WordPress_Network" @@ -4054,11 +4054,6 @@ msgstr "Menuer kan vises ved placeringer defineret af dit tema eller i <a href=\ msgid "The %s directory of the develop repository must be used for RTL." msgstr "Mappen %s af develop-repository'en skal bruges til RTL." -#. translators: 1: PHP class name, 2: version number, 3: __construct() method -#: wp-includes/functions.php:3897 -msgid "The called constructor method for %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." -msgstr "Den kaldte constructor-metode for %1$s er <strong>forældet</strong> siden version %2$s! Benyt %3$s i stedet." - #: wp-includes/class-wp-customize-nav-menus.php:437 #: wp-includes/class-wp-customize-widgets.php:795 msgid "Reorder mode closed" @@ -4082,6 +4077,11 @@ msgstr "Når du er i omorganiseringsstilstand, vil yderligere værktøjer til at msgid "Reorder menu items" msgstr "Omorganiser menuelementerne" +#. translators: 1: PHP class name, 2: version number, 3: __construct() method +#: wp-includes/functions.php:3897 +msgid "The called constructor method for %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." +msgstr "Den kaldte constructor-metode for %1$s er <strong>forældet</strong> siden version %2$s! Brug %3$s." + #. translators: User email change notification email subject. 1: Site name #: wp-includes/user.php:1893 msgid "[%s] Notice of Email Change" @@ -5243,10 +5243,6 @@ msgstr "Bitrate" msgid "Read more..." msgstr "Læs mere..." -#: wp-includes/class-wp-editor.php:1722 -msgid "Search or use up and down arrow keys to select an item." -msgstr "Søg eller benyt piletasterne op og ned til at vælge et element." - #: wp-includes/media-template.php:166 msgid "Close media panel" msgstr "Luk mediepanel" @@ -5295,10 +5291,6 @@ msgstr "Uhæftede" msgid "Search Media" msgstr "Søg medier" -#: wp-includes/class-wp-editor.php:1235 -msgid "Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser’s edit menu instead." -msgstr "Din browser understøtter ikke direkte adgang til udklipsholderen. Benyt venligst tastaturgenveje eller din browsers redigeringsmenu i stedet." - #: wp-includes/media.php:2188 msgid "Bitrate Mode" msgstr "Bitrate-tilstand" @@ -5315,6 +5307,14 @@ msgstr "Filtrer efter dato" msgid "Filter by type" msgstr "Filtrer efter type" +#: wp-includes/class-wp-editor.php:1722 +msgid "Search or use up and down arrow keys to select an item." +msgstr "Søg eller brug op- og ned-piletasterne til at vælge et element." + +#: wp-includes/class-wp-editor.php:1235 +msgid "Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser’s edit menu instead." +msgstr "Din browser understøtter ikke direkte adgang til udklipsholderen. Brug venligst tastaturgenveje eller din browsers redigeringsmenu i stedet." + #: wp-includes/comment.php:3101 msgid "<strong>ERROR</strong>: The comment could not be saved. Please try again later." msgstr "<strong>FEJL</strong>: Kommentaren kunne ikke gemmes. Prøv venligst igen senere." @@ -10865,10 +10865,6 @@ msgstr "Se side" msgid "Links" msgstr "Links" -#: wp-includes/category-template.php:148 -msgid "Uncategorized" -msgstr "Ikke kategoriseret" - #: wp-includes/class-wp-editor.php:1048 wp-includes/class-wp-editor.php:1687 #: wp-includes/script-loader.php:269 wp-includes/script-loader.php:351 #: wp-includes/script-loader.php:466 wp-includes/script-loader.php:986 @@ -11031,6 +11027,10 @@ msgstr "GD image library er ikke installeret." msgid "Recent Comments" msgstr "Seneste kommentarer" +#: wp-includes/category-template.php:148 +msgid "Uncategorized" +msgstr "Ikke-kategoriseret" + #: wp-includes/class-wp-customize-manager.php:412 #: wp-includes/class-wp-customize-manager.php:477 #: wp-includes/script-loader.php:467 diff --git a/wp-content/languages/de_DE.mo b/wp-content/languages/de_DE.mo index 27ab2659561a9f7d451b823ab3d4dee30b045e39..bf759408580da83cabcc20942a19c9f291f42b07 100644 Binary files a/wp-content/languages/de_DE.mo and b/wp-content/languages/de_DE.mo differ diff --git a/wp-content/languages/de_DE.po b/wp-content/languages/de_DE.po index aea90fa922f0aa4e92bfcb4a5a48f9df45bd586c..9b8620fc4d85d7c22885f7774ee698b2fdf8011a 100644 --- a/wp-content/languages/de_DE.po +++ b/wp-content/languages/de_DE.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-23 12:13:52+0000\n" +"PO-Revision-Date: 2017-09-24 16:11:38+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -56,10 +56,6 @@ msgstr "Hast du schon von dem neuen „HTML“-Widget gehört? Du findes msgid "Hey, did you hear we have a “Custom HTML” widget now? You can find it by pressing the “<a class=\"add-widget\" href=\"#\">Add a Widget</a>” button and searching for “HTML”. Check it out to add some custom code to your site!" msgstr "Hast du schon von dem neuen „HTML“-Widget gehört? Du findest es, indem du den Button „<a class=\"add-widget\" href=\"#\">Widget hinzufügen</a>“ anklickst und nach „HTML“ suchst. Probiere es aus und füge eigenen Code in deine Website ein!" -#: wp-includes/widgets/class-wp-widget-text.php:36 -msgid "Arbitrary text." -msgstr "Beliebiger Text." - #: wp-includes/widgets/class-wp-widget-text.php:399 msgid "New Custom HTML Widget" msgstr "Neues Widget für eigenes HTML" @@ -68,9 +64,9 @@ msgstr "Neues Widget für eigenes HTML" msgid "This widget may contain code that may work better in the new “Custom HTML” widget. How about trying that widget instead?" msgstr "Dein Widget scheint Code zu enthalten, der besser im neuen „HTML“-Widget funktioniert. Was hältst du davon, es auszuprobieren?" -#: wp-includes/default-widgets.php:96 -msgid "Arbitrary HTML code." -msgstr "Beliebiger HTML-Code." +#: wp-includes/widgets/class-wp-widget-text.php:36 +msgid "Arbitrary text." +msgstr "Beliebiger Text." #: wp-includes/default-widgets.php:207 msgid "Some HTML tags are not permitted, including:" @@ -80,6 +76,10 @@ msgstr "Einige HTML-Tags sind nicht erlaubt, darunter:" msgid "Custom HTML" msgstr "HTML" +#: wp-includes/default-widgets.php:96 +msgid "Arbitrary HTML code." +msgstr "Beliebiger HTML-Code." + #: wp-includes/widgets/class-wp-widget-tag-cloud.php:141 msgid "Show tag counts" msgstr "Schlagwortanzahl anzeigen" @@ -95,16 +95,16 @@ msgctxt "label for button in the media widget" msgid "Add Media" msgstr "Medien hinzufügen" -#: wp-includes/widgets/class-wp-widget-media-image.php:33 -msgctxt "label for button in the image widget" -msgid "Add Image" -msgstr "Bild hinzufügen" - #: wp-includes/widgets/class-wp-widget-media-video.php:33 msgctxt "label for button in the video widget" msgid "Add Video" msgstr "Video hinzufügen" +#: wp-includes/widgets/class-wp-widget-media-image.php:33 +msgctxt "label for button in the image widget" +msgid "Add Image" +msgstr "Bild hinzufügen" + #: wp-includes/widgets/class-wp-widget-media-audio.php:33 msgctxt "label for button in the audio widget" msgid "Add Audio" @@ -114,24 +114,11 @@ msgstr "Audio hinzufügen" msgid "(no author)" msgstr "(kein Autor)" -#: wp-includes/script-loader.php:360 -msgctxt "no captions/subtitles" -msgid "None" -msgstr "Keine" - #. translators: %s is the name of a city. #: wp-includes/script-loader.php:1062 msgid "City updated. Listing events near %s." msgstr "Stadt aktualisiert. Zeige Veranstaltungen in der Nähe von %s." -#: wp-includes/script-loader.php:1041 -msgid "Attend an upcoming event near you." -msgstr "Besuche eine bevorstehende Veranstaltung in deiner Nähe." - -#: wp-includes/script-loader.php:1039 -msgid "Enter your closest city to find nearby events." -msgstr "Gib deine nächste Stadt ein, um Veranstaltungen in deiner Umgebung zu finden." - #. translators: %s is the name of the city we couldn't locate. Replace the #. examples with cities related to your locale. Test that they match the #. expected location and have upcoming events before including them. If no @@ -143,83 +130,84 @@ msgstr "Gib deine nächste Stadt ein, um Veranstaltungen in deiner Umgebung zu f msgid "We couldn’t locate %s. Please try another nearby city. For example: Kansas City; Springfield; Portland." msgstr "Wir konnten %s nicht finden. Bitte versuche eine andere nahe gelegene Stadt. Zum Beispiel: Berlin; Köln; München." +#: wp-includes/script-loader.php:1041 +msgid "Attend an upcoming event near you." +msgstr "Besuche eine bevorstehende Veranstaltung in deiner Nähe." + #: wp-includes/script-loader.php:1040 msgid "An error occurred. Please try again." msgstr "Ein Fehler ist aufgetreten. Bitte versuche es noch einmal." -#: wp-includes/widgets/class-wp-widget-media.php:151 -msgid "Title for the widget" -msgstr "Titel für das Widget" - -#: wp-signup.php:826 -msgid "The network currently disallows registrations." -msgstr "Das Netzwerk erlaubt aktuell keine Registrierungen." - -#: wp-includes/widgets/class-wp-widget-media.php:71 -msgid "Add to Widget" -msgstr "Zu Widget hinzufügen" - -#: wp-includes/widgets/class-wp-widget-media.php:67 -msgid "No media selected" -msgstr "Keine Datei ausgewählt" +#: wp-includes/script-loader.php:1039 +msgid "Enter your closest city to find nearby events." +msgstr "Gib deine nächste Stadt ein, um Veranstaltungen in deiner Umgebung zu finden." -#: wp-includes/widgets/class-wp-widget-media.php:59 -msgid "A media item." -msgstr "Ein Medien-Element." +#: wp-includes/script-loader.php:360 +msgctxt "no captions/subtitles" +msgid "None" +msgstr "Keine" -#. translators: placeholder is URL to media library -#: wp-includes/widgets/class-wp-widget-media-video.php:38 -msgid "We can’t find that video. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." -msgstr "Wir können dieses Video nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass es nicht gelöscht wurde. " +#. translators: %s: network settings URL +#: wp-signup.php:842 +msgid "To change or disable registration go to your <a href=\"%s\">Options page</a>." +msgstr "Um die Registrierung zu ändern oder zu deaktivieren, öffne die <a href=\"%s\">Einstellungen</a>." -#: wp-signup.php:829 -msgid "The network currently allows site registrations." -msgstr "Das Netzwerk erlaubt aktuell Website-Registrierungen." +#: wp-signup.php:835 +msgid "The network currently allows both site and user registrations." +msgstr "Das Netzwerk erlaubt aktuell sowohl Website- als auch Benutzer-Registrierungen." #: wp-signup.php:832 msgid "The network currently allows user registrations." msgstr "Das Netzwerk erlaubt aktuell Benutzer-Registrierungen." -#: wp-signup.php:835 -msgid "The network currently allows both site and user registrations." -msgstr "Das Netzwerk erlaubt aktuell sowohl Website- als auch Benutzer-Registrierungen." +#: wp-signup.php:829 +msgid "The network currently allows site registrations." +msgstr "Das Netzwerk erlaubt aktuell Website-Registrierungen." -#: wp-includes/widgets/class-wp-widget-media.php:80 -msgid "Looks like this isn’t the correct kind of file. Please link to an appropriate file instead." -msgstr "Dies ist scheinbar nicht die korrekte Dateiart. Bitte verlinke stattdessen eine geeignete Datei." +#: wp-signup.php:826 +msgid "The network currently disallows registrations." +msgstr "Das Netzwerk erlaubt aktuell keine Registrierungen." #: wp-signup.php:821 msgid "Greetings Network Administrator!" msgstr "Hallo, Netzwerkadministrator!" -#. translators: %s: network settings URL -#: wp-signup.php:842 -msgid "To change or disable registration go to your <a href=\"%s\">Options page</a>." -msgstr "Um die Registrierung zu ändern oder zu deaktivieren, öffne die <a href=\"%s\">Einstellungen</a>." - -#. translators: placeholder is URL to media library -#: wp-includes/widgets/class-wp-widget-media.php:74 -msgid "We can’t find that file. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." -msgstr "Wir können diese Datei nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass sie nicht gelöscht wurde." - -#. translators: placeholder is a list of valid video file extensions -#: wp-includes/widgets/class-wp-widget-media-video.php:45 -msgid "Sorry, we can’t display the video file type selected. Please select a supported video file (%1$s) or stream (YouTube or Vimeo) instead." -msgstr "Leider können wir den ausgewählten Videodateityp nicht anzeigen. Bitte wähle stattdessen eine unterstützte Videodatei (%1$s) oder einen unterstützten Stream (YouTube oder Vimeo) aus." +#: wp-includes/widgets/class-wp-widget-media.php:151 +msgid "Title for the widget" +msgstr "Titel für das Widget" #: wp-includes/widgets/class-wp-widget-media.php:145 msgid "URL to the media file" msgstr "URL der Mediendatei" -#. translators: placeholder is video extension -#: wp-includes/widgets/class-wp-widget-media-video.php:93 -msgid "URL to the %s video source file" -msgstr "URL der %s-Quelldatei" - #: wp-includes/widgets/class-wp-widget-media.php:138 msgid "Attachment post ID" msgstr "Beitrags-ID des Anhangs" +#: wp-includes/widgets/class-wp-widget-media.php:80 +msgid "Looks like this isn’t the correct kind of file. Please link to an appropriate file instead." +msgstr "Dies ist scheinbar nicht die korrekte Dateiart. Bitte verlinke stattdessen eine geeignete Datei." + +#: wp-includes/widgets/class-wp-widget-media.php:79 +msgid "Media Widget" +msgstr "Medien-Widget" + +#. translators: %d is widget count +#: wp-includes/widgets/class-wp-widget-media.php:78 +msgid "Media Widget (%d)" +msgid_plural "Media Widget (%d)" +msgstr[0] "Medien-Widget (%d)" +msgstr[1] "Medien-Widgets (%d)" + +#. translators: placeholder is URL to media library +#: wp-includes/widgets/class-wp-widget-media.php:74 +msgid "We can’t find that file. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." +msgstr "Wir können diese Datei nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass sie nicht gelöscht wurde." + +#: wp-includes/widgets/class-wp-widget-media.php:71 +msgid "Add to Widget" +msgstr "Zu Widget hinzufügen" + #: wp-includes/widgets/class-wp-widget-media.php:70 msgctxt "label for button in the media widget; should preferably not be longer than ~13 characters long" msgid "Edit Media" @@ -230,14 +218,28 @@ msgctxt "label for button in the media widget; should preferably not be longer t msgid "Replace Media" msgstr "Medium ersetzen" +#: wp-includes/widgets/class-wp-widget-media.php:67 +msgid "No media selected" +msgstr "Keine Datei ausgewählt" + +#: wp-includes/widgets/class-wp-widget-media.php:59 +msgid "A media item." +msgstr "Ein Medien-Element." + +#. translators: placeholder is video extension +#: wp-includes/widgets/class-wp-widget-media-video.php:93 +msgid "URL to the %s video source file" +msgstr "URL der %s-Quelldatei" + +#. translators: placeholder is a list of valid video file extensions +#: wp-includes/widgets/class-wp-widget-media-video.php:45 +msgid "Sorry, we can’t display the video file type selected. Please select a supported video file (%1$s) or stream (YouTube or Vimeo) instead." +msgstr "Leider können wir den ausgewählten Videodateityp nicht anzeigen. Bitte wähle stattdessen eine unterstützte Videodatei (%1$s) oder einen unterstützten Stream (YouTube oder Vimeo) aus." + #: wp-includes/widgets/class-wp-widget-media-video.php:43 msgid "Video Widget" msgstr "Video-Widget" -#: wp-includes/widgets/class-wp-widget-media.php:79 -msgid "Media Widget" -msgstr "Medien-Widget" - #. translators: %d is widget count #: wp-includes/widgets/class-wp-widget-media-video.php:42 msgid "Video Widget (%d)" @@ -245,94 +247,90 @@ msgid_plural "Video Widget (%d)" msgstr[0] "Video-Widget (%d)" msgstr[1] "Video-Widgets (%d)" -#. translators: %d is widget count -#: wp-includes/widgets/class-wp-widget-media.php:78 -msgid "Media Widget (%d)" -msgid_plural "Media Widget (%d)" -msgstr[0] "Medien-Widget (%d)" -msgstr[1] "Medien-Widgets (%d)" +#. translators: placeholder is URL to media library +#: wp-includes/widgets/class-wp-widget-media-video.php:38 +msgid "We can’t find that video. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." +msgstr "Wir können dieses Video nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass es nicht gelöscht wurde. " + +#: wp-includes/widgets/class-wp-widget-media-video.php:35 +msgctxt "label for button in the video widget; should preferably not be longer than ~13 characters long" +msgid "Edit Video" +msgstr "Video bearbeiten" + +#: wp-includes/widgets/class-wp-widget-media-video.php:34 +msgctxt "label for button in the video widget; should preferably not be longer than ~13 characters long" +msgid "Replace Video" +msgstr "Video ersetzen" + +#: wp-includes/widgets/class-wp-widget-media-video.php:27 +msgid "Displays a video from the media library or from YouTube, Vimeo, or another provider." +msgstr "Zeigt ein Video aus der Mediathek oder von YouTube, Vimeo oder einem anderen Anbieter." #. translators: placeholder is image filename #: wp-includes/widgets/class-wp-widget-media-image.php:332 msgid "Current image: %s" msgstr "Aktuelles Bild: %s" -#: wp-includes/widgets/class-wp-widget-media-image.php:34 -msgctxt "label for button in the image widget; should preferably not be longer than ~13 characters long" -msgid "Replace Image" -msgstr "Bild ersetzen" +#: wp-includes/widgets/class-wp-widget-media-image.php:43 +msgid "Image Widget" +msgstr "Bild-Widget" + +#. translators: %d is widget count +#: wp-includes/widgets/class-wp-widget-media-image.php:42 +msgid "Image Widget (%d)" +msgid_plural "Image Widget (%d)" +msgstr[0] "Bild-Widget (%d)" +msgstr[1] "Bild-Widgets (%d)" + +#. translators: placeholder is URL to media library +#: wp-includes/widgets/class-wp-widget-media-image.php:38 +msgid "We can’t find that image. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." +msgstr "Wir können dieses Bild nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass es nicht gelöscht wurde. " #: wp-includes/widgets/class-wp-widget-media-image.php:35 msgctxt "label for button in the image widget; should preferably not be longer than ~13 characters long" msgid "Edit Image" msgstr "Bild bearbeiten" -#: wp-includes/script-loader.php:705 -msgctxt "theme" -msgid "Deleted!" -msgstr "Gelöscht!" - -#: wp-includes/script-loader.php:704 -msgctxt "plugin" -msgid "Deleted!" -msgstr "Gelöscht!" - -#: wp-includes/script-loader.php:675 -msgctxt "theme" -msgid "Installed!" -msgstr "Installiert!" - -#: wp-includes/script-loader.php:674 -msgctxt "plugin" -msgid "Installed!" -msgstr "Installiert!" - -#. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:658 -msgctxt "plugin" -msgid "Updating %s..." -msgstr "Aktualisiere %s..." - -#: wp-includes/script-loader.php:649 -msgctxt "theme" -msgid "Updated!" -msgstr "Aktualisiert!" - -#: wp-includes/widgets/class-wp-widget-media-video.php:35 -msgctxt "label for button in the video widget; should preferably not be longer than ~13 characters long" -msgid "Edit Video" -msgstr "Video bearbeiten" - -#: wp-includes/widgets/class-wp-widget-media-video.php:34 -msgctxt "label for button in the video widget; should preferably not be longer than ~13 characters long" -msgid "Replace Video" -msgstr "Video ersetzen" +#: wp-includes/widgets/class-wp-widget-media-image.php:34 +msgctxt "label for button in the image widget; should preferably not be longer than ~13 characters long" +msgid "Replace Image" +msgstr "Bild ersetzen" #: wp-includes/widgets/class-wp-widget-media-image.php:27 msgid "Displays an image." msgstr "Zeigt ein Bild an." -#: wp-includes/widgets/class-wp-widget-media-audio.php:27 -msgid "Displays an audio player." -msgstr "Zeigt einen Audioplayer." +#: wp-includes/widgets/class-wp-widget-media-audio.php:198 +#: wp-includes/widgets/class-wp-widget-media-image.php:325 +#: wp-includes/widgets/class-wp-widget-media-video.php:237 +msgid "Unable to preview media due to an unknown error." +msgstr "Medienvorschau aufgrund eines unbekannten Fehlers nicht möglich." -#. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:662 -msgctxt "plugin" -msgid "%s update failed" -msgstr "%s Aktualisierung fehlgeschlagen" +#. translators: placeholder is audio extension +#: wp-includes/widgets/class-wp-widget-media-audio.php:83 +msgid "URL to the %s audio source file" +msgstr "URL der %s-Quelldatei" -#. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:660 -msgctxt "plugin" -msgid "%s updated!" -msgstr "%s aktualisiert!" +#: wp-includes/widgets/class-wp-widget-media-audio.php:44 +msgid "Looks like this isn’t the correct kind of file. Please link to an audio file instead." +msgstr "Dies ist scheinbar nicht die korrekte Dateiart. Bitte verlinke stattdessen eine geeignete Audiodatei." -#. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:653 -msgctxt "plugin" -msgid "Update %s now" -msgstr "Aktualisiere %s jetzt" +#: wp-includes/widgets/class-wp-widget-media-audio.php:43 +msgid "Audio Widget" +msgstr "Audio-Widget" + +#. translators: %d is widget count +#: wp-includes/widgets/class-wp-widget-media-audio.php:42 +msgid "Audio Widget (%d)" +msgid_plural "Audio Widget (%d)" +msgstr[0] "Audio-Widget (%d)" +msgstr[1] "Audio-Widgets (%d)" + +#. translators: placeholder is URL to media library +#: wp-includes/widgets/class-wp-widget-media-audio.php:38 +msgid "We can’t find that audio file. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." +msgstr "Wir können diese Audiodatei nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass sie nicht gelöscht wurde." #: wp-includes/widgets/class-wp-widget-media-audio.php:35 msgctxt "label for button in the audio widget; should preferably not be longer than ~13 characters long" @@ -348,16 +346,29 @@ msgstr "Audio ersetzen" msgid "No audio selected" msgstr "Keine Audiodatei ausgewählt" -#: wp-includes/widgets/class-wp-widget-media-image.php:43 -msgid "Image Widget" -msgstr "Bild-Widget" +#: wp-includes/widgets/class-wp-widget-media-audio.php:27 +msgid "Displays an audio player." +msgstr "Zeigt einen Audioplayer." -#. translators: %d is widget count -#: wp-includes/widgets/class-wp-widget-media-image.php:42 -msgid "Image Widget (%d)" -msgid_plural "Image Widget (%d)" -msgstr[0] "Bild-Widget (%d)" -msgstr[1] "Bild-Widgets (%d)" +#: wp-includes/script-loader.php:705 +msgctxt "theme" +msgid "Deleted!" +msgstr "Gelöscht!" + +#: wp-includes/script-loader.php:704 +msgctxt "plugin" +msgid "Deleted!" +msgstr "Gelöscht!" + +#: wp-includes/script-loader.php:675 +msgctxt "theme" +msgid "Installed!" +msgstr "Installiert!" + +#: wp-includes/script-loader.php:674 +msgctxt "plugin" +msgid "Installed!" +msgstr "Installiert!" #. translators: %s: Plugin name #: wp-includes/script-loader.php:672 @@ -365,51 +376,45 @@ msgctxt "plugin" msgid "Install %s now" msgstr "%s jetzt installieren" -#. translators: placeholder is URL to media library -#: wp-includes/widgets/class-wp-widget-media-image.php:38 -msgid "We can’t find that image. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." -msgstr "Wir können dieses Bild nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass es nicht gelöscht wurde. " - -#: wp-includes/widgets/class-wp-widget-media-audio.php:44 -msgid "Looks like this isn’t the correct kind of file. Please link to an audio file instead." -msgstr "Dies ist scheinbar nicht die korrekte Dateiart. Bitte verlinke stattdessen eine geeignete Audiodatei." - -#. translators: placeholder is URL to media library -#: wp-includes/widgets/class-wp-widget-media-audio.php:38 -msgid "We can’t find that audio file. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." -msgstr "Wir können diese Audiodatei nicht finden. Prüfe deine <a href=\"%s\">Mediathek</a> und stelle sicher, dass sie nicht gelöscht wurde." - -#: wp-includes/widgets/class-wp-widget-media-audio.php:198 -#: wp-includes/widgets/class-wp-widget-media-image.php:325 -#: wp-includes/widgets/class-wp-widget-media-video.php:237 -msgid "Unable to preview media due to an unknown error." -msgstr "Medienvorschau aufgrund eines unbekannten Fehlers nicht möglich." +#. translators: %s: Plugin name and version +#: wp-includes/script-loader.php:662 +msgctxt "plugin" +msgid "%s update failed" +msgstr "%s Aktualisierung fehlgeschlagen" -#. translators: placeholder is audio extension -#: wp-includes/widgets/class-wp-widget-media-audio.php:83 -msgid "URL to the %s audio source file" -msgstr "URL der %s-Quelldatei" +#. translators: %s: Plugin name and version +#: wp-includes/script-loader.php:660 +msgctxt "plugin" +msgid "%s updated!" +msgstr "%s aktualisiert!" -#: wp-includes/widgets/class-wp-widget-media-audio.php:43 -msgid "Audio Widget" -msgstr "Audio-Widget" +#. translators: %s: Plugin name and version +#: wp-includes/script-loader.php:658 +msgctxt "plugin" +msgid "Updating %s..." +msgstr "Aktualisiere %s..." -#. translators: %d is widget count -#: wp-includes/widgets/class-wp-widget-media-audio.php:42 -msgid "Audio Widget (%d)" -msgid_plural "Audio Widget (%d)" -msgstr[0] "Audio-Widget (%d)" -msgstr[1] "Audio-Widgets (%d)" +#. translators: %s: Plugin name and version +#: wp-includes/script-loader.php:653 +msgctxt "plugin" +msgid "Update %s now" +msgstr "Aktualisiere %s jetzt" -#: wp-includes/widgets/class-wp-widget-media-video.php:27 -msgid "Displays a video from the media library or from YouTube, Vimeo, or another provider." -msgstr "Zeigt ein Video aus der Mediathek oder von YouTube, Vimeo oder einem anderen Anbieter." +#: wp-includes/script-loader.php:649 +msgctxt "theme" +msgid "Updated!" +msgstr "Aktualisiert!" #: wp-includes/script-loader.php:648 msgctxt "plugin" msgid "Updated!" msgstr "Aktualisiert!" +#. translators: 1: parameter, 2: maximum number +#: wp-includes/rest-api.php:1127 +msgid "%1$s must be less than or equal to %2$d" +msgstr "%1$s muss kleiner oder gleich %2$d sein" + #. translators: 1: parameter, 2: maximum number #: wp-includes/rest-api.php:1124 msgid "%1$s must be less than %2$d" @@ -425,35 +430,30 @@ msgstr "%1$s muss größer oder gleich %2$d sein" msgid "%1$s must be greater than %2$d" msgstr "%1$s muss größer als %2$d sein" -#. translators: 1: parameter, 2: maximum number -#: wp-includes/rest-api.php:1127 -msgid "%1$s must be less than or equal to %2$d" -msgstr "%1$s muss kleiner oder gleich %2$d sein" +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1361 +msgid "Limit result set to users with one or more specific slugs." +msgstr "Ergebnissatz auf Benutzer mit einer oder mehreren bestimmten Titelformen begrenzen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:980 +msgid "Limit result set to terms with one or more specific slugs." +msgstr "Ergebnissatz auf Begriffe mit einer oder mehreren bestimmten Titelformen begrenzen." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:335 msgid "The page number requested is larger than the number of pages available." msgstr "Die angeforderte Seitennummer ist größer als die Anzahl der verfügbaren Seiten." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:252 -msgid "All features, supported by the post type." -msgstr "Alle von diesem Inhaltstypen unterstützten Eigenschaften." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:163 msgid "You need to define an include parameter to order by include." msgstr "Du musst einen Include-Parameter definieren, um nach include sortieren zu können." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1361 -msgid "Limit result set to users with one or more specific slugs." -msgstr "Ergebnissatz auf Benutzer mit einer oder mehreren bestimmten Titelformen begrenzen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:980 -msgid "Limit result set to terms with one or more specific slugs." -msgstr "Ergebnissatz auf Begriffe mit einer oder mehreren bestimmten Titelformen begrenzen." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:252 +msgid "All features, supported by the post type." +msgstr "Alle von diesem Inhaltstypen unterstützten Eigenschaften." -#: wp-includes/post.php:1389 -msgctxt "page" -msgid "Remove featured image" -msgstr "Beitragsbild entfernen" +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:79 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:101 +msgid "The password for the parent post of the comment (if the post is password protected)." +msgstr "Das Passwort für den übergeordneten Beitrag des Kommentars (wenn der Beitrag passwortgeschützt ist)." #: wp-includes/post.php:1390 msgctxt "page" @@ -466,19 +466,14 @@ msgid "Use as featured image" msgstr "Als Beitragsbild nutzen" #: wp-includes/post.php:1389 -msgctxt "post" +msgctxt "page" msgid "Remove featured image" msgstr "Beitragsbild entfernen" -#: wp-includes/post.php:1387 -msgctxt "page" -msgid "Featured Image" -msgstr "Beitragsbild" - -#: wp-includes/post.php:1387 +#: wp-includes/post.php:1389 msgctxt "post" -msgid "Featured Image" -msgstr "Beitragsbild" +msgid "Remove featured image" +msgstr "Beitragsbild entfernen" #: wp-includes/post.php:1388 msgctxt "page" @@ -490,45 +485,55 @@ msgctxt "post" msgid "Set featured image" msgstr "Beitragsbild festlegen" -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:79 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:101 -msgid "The password for the parent post of the comment (if the post is password protected)." -msgstr "Das Passwort für den übergeordneten Beitrag des Kommentars (wenn der Beitrag passwortgeschützt ist)." +#: wp-includes/post.php:1387 +msgctxt "page" +msgid "Featured Image" +msgstr "Beitragsbild" + +#: wp-includes/post.php:1387 +msgctxt "post" +msgid "Featured Image" +msgstr "Beitragsbild" #. translators: 1: $sanitize_callback, 2: register_setting() #: wp-includes/option.php:1989 msgid "%1$s is deprecated. The callback from %2$s is used instead." msgstr "%1$s ist veraltet. Stattdessen wird der Callback von %2$s verwendet." -#: wp-includes/media.php:3522 +#: wp-includes/media.php:3523 wp-includes/script-loader.php:80 msgid "" -"You are about to permanently delete this item from your site.\n" +"You are about to permanently delete these items from your site.\n" "This action cannot be undone.\n" " 'Cancel' to stop, 'OK' to delete." msgstr "" -"Du bist dabei, dieses Element endgültig von deiner Website zu löschen.\n" +"Du bist dabei, diese Elemente endgültig von deiner Website zu löschen.\n" "Diese Aktion kann nicht rückgängig gemacht werden.\n" "Wähle „Abbrechen“ oder „OK“ zum Löschen." -#: wp-includes/media.php:3523 wp-includes/script-loader.php:80 +#: wp-includes/media.php:3522 msgid "" -"You are about to permanently delete these items from your site.\n" +"You are about to permanently delete this item from your site.\n" "This action cannot be undone.\n" " 'Cancel' to stop, 'OK' to delete." msgstr "" -"Du bist dabei, diese Elemente endgültig von deiner Website zu löschen.\n" +"Du bist dabei, dieses Element endgültig von deiner Website zu löschen.\n" "Diese Aktion kann nicht rückgängig gemacht werden.\n" "Wähle „Abbrechen“ oder „OK“ zum Löschen." -#: wp-includes/functions.php:2132 wp-includes/script-loader.php:283 -msgid "Sorry, this file type is not permitted for security reasons." -msgstr "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt." - #. translators: 1: suggested width number, 2: suggested height number. #: wp-includes/media-template.php:240 wp-includes/media.php:3572 msgid "Suggested image dimensions: %1$s by %2$s pixels." msgstr "Vorgeschlagene Bildmaße: %1$s auf %2$s Pixel." +#: wp-includes/functions.php:2132 wp-includes/script-loader.php:283 +msgid "Sorry, this file type is not permitted for security reasons." +msgstr "Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt." + +#. translators: 1: */, 2: /* +#: wp-includes/customize/class-wp-customize-custom-css-setting.php:248 +msgid "There is an extra %1$s, indicating an end to a comment. Be sure that there is an opening %2$s for every closing %1$s." +msgstr "Die Anwesenheit von %1$s zeigt das Ende eines Kommentars an. Stelle sicher, dass es für jedes schließende %1$s auch ein öffnendes %2$s gibt." + #. translators: 1: number of unclosed comments, 2: */ #: wp-includes/customize/class-wp-customize-custom-css-setting.php:236 msgid "There is %1$s unclosed code comment. Close each comment with %2$s." @@ -536,9 +541,10 @@ msgid_plural "There are %1$s unclosed code comments. Close each comment with %2$ msgstr[0] "Es gibt %1$s ungeschlossenen Code-Kommentar. Schließe jeden Kommentar mit %2$s." msgstr[1] "Es gibt %1$s ungeschlossene Code-Kommentare. Schließe jeden Kommentar mit %2$s." -#: wp-includes/class-wp-oembed-controller.php:141 -msgid "Sorry, you are not allowed to make proxied oEmbed requests." -msgstr "Du bist leider nicht berechtigt, oEmbed-Anfragen über Proxy zu machen." +#. translators: 1: " (double quote) +#: wp-includes/customize/class-wp-customize-custom-css-setting.php:216 +msgid "Your double quotes %1$s are uneven. Make sure there is a closing %1$s for every opening %1$s." +msgstr "Die Anzahl der doppelten Anführungszeichen %1$s ist ungerade. Stelle sicher, dass es für jedes öffnende %1$s auch ein schließendes %1$s gibt." #. translators: 1: (), 2: ), 3: ( #: wp-includes/customize/class-wp-customize-custom-css-setting.php:204 @@ -555,38 +561,17 @@ msgstr "Die Anzahl der eckigen Klammern %1$s ist ungerade. Stelle sicher, dass e msgid "Your curly brackets %1$s are imbalanced. Make sure there is a closing %2$s for every opening %3$s." msgstr "Die Anzahl der geschweiften Klammern %1$s ist ungerade. Stelle sicher, dass es für jede öffnende %3$s auch eine schließende %2$s gibt." -#. translators: 1: " (double quote) -#: wp-includes/customize/class-wp-customize-custom-css-setting.php:216 -msgid "Your double quotes %1$s are uneven. Make sure there is a closing %1$s for every opening %1$s." -msgstr "Die Anzahl der doppelten Anführungszeichen %1$s ist ungerade. Stelle sicher, dass es für jedes öffnende %1$s auch ein schließendes %1$s gibt." - -#. translators: 1: */, 2: /* -#: wp-includes/customize/class-wp-customize-custom-css-setting.php:248 -msgid "There is an extra %1$s, indicating an end to a comment. Be sure that there is an opening %2$s for every closing %1$s." -msgstr "Die Anwesenheit von %1$s zeigt das Ende eines Kommentars an. Stelle sicher, dass es für jedes schließende %1$s auch ein öffnendes %2$s gibt." - -#: wp-includes/class-wp-oembed-controller.php:89 -msgid "Whether to perform an oEmbed discovery request for non-whitelisted providers." -msgstr "Ob eine oEmbed Discovery-Anfrage für Anbieter, die nicht auf der Whitelist stehen, ausgeführt werden soll." - #: wp-includes/comment.php:3010 msgid "Sorry, comments are not allowed for this item." msgstr "Kommentare sind für diesen Beitrag nicht erlaubt." -#: wp-includes/class-wp-editor.php:1143 -msgctxt "Short for blue in RGB" -msgid "B" -msgstr "B" - -#: wp-includes/class-wp-editor.php:1142 -msgctxt "Short for green in RGB" -msgid "G" -msgstr "G" +#: wp-includes/class-wp-oembed-controller.php:141 +msgid "Sorry, you are not allowed to make proxied oEmbed requests." +msgstr "Du bist leider nicht berechtigt, oEmbed-Anfragen über Proxy zu machen." -#: wp-includes/class-wp-editor.php:1141 -msgctxt "Short for red in RGB" -msgid "R" -msgstr "R" +#: wp-includes/class-wp-oembed-controller.php:89 +msgid "Whether to perform an oEmbed discovery request for non-whitelisted providers." +msgstr "Ob eine oEmbed Discovery-Anfrage für Anbieter, die nicht auf der Whitelist stehen, ausgeführt werden soll." #: wp-includes/class-wp-oembed-controller.php:84 msgid "The maximum height of the embed frame in pixels." @@ -604,7 +589,30 @@ msgstr "Das zu verwendende oEmbed-Format." msgid "The URL of the resource for which to fetch oEmbed data." msgstr "Die URL der Ressource, für die oEmbed-Daten abgerufen werden sollen." -#: wp-includes/class-wp-editor.php:1095 +#: wp-includes/class-wp-editor.php:1143 +msgctxt "Short for blue in RGB" +msgid "B" +msgstr "B" + +#: wp-includes/class-wp-editor.php:1142 +msgctxt "Short for green in RGB" +msgid "G" +msgstr "G" + +#: wp-includes/class-wp-editor.php:1141 +msgctxt "Short for red in RGB" +msgid "R" +msgstr "R" + +#: wp-includes/class-wp-editor.php:1099 +msgid "Insert/edit media" +msgstr "Medien einfügen/bearbeiten" + +#: wp-includes/class-wp-editor.php:1096 +msgid "Insert/edit code sample" +msgstr "Beispielcode einfügen/bearbeiten" + +#: wp-includes/class-wp-editor.php:1095 msgid "Table of Contents" msgstr "Inhaltsverzeichnis" @@ -617,17 +625,6 @@ msgctxt "Id for link anchor (TinyMCE)" msgid "Id" msgstr "Id" -#: wp-includes/class-wp-editor.php:1099 -msgid "Insert/edit media" -msgstr "Medien einfügen/bearbeiten" - -#. translators: placeholder is the total number of widget areas registered -#: wp-includes/class-wp-customize-widgets.php:770 -msgid "Your theme has %s widget area, but this particular page doesn’t display it." -msgid_plural "Your theme has %s widget areas, but this particular page doesn’t display them." -msgstr[0] "Dein Theme hat %s Widget-Bereich, aber diese bestimmte Seite zeigt ihn nicht an." -msgstr[1] "Dein Theme hat %s Widget-Bereiche, aber diese bestimmte Seite zeigt sie nicht an." - #: wp-includes/class-wp-editor.php:1068 msgid "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores." msgstr "Die ID sollte mit einem Buchstaben beginnen, gefolgt von Buchstaben, Zahlen, Bindestrichen, Punkten, Doppelpunkten oder Unterstrichen." @@ -636,9 +633,17 @@ msgstr "Die ID sollte mit einem Buchstaben beginnen, gefolgt von Buchstaben, Zah msgid "You can navigate to other pages on your site while using the Customizer to view and edit the widgets displayed on those pages." msgstr "Du kannst zu anderen Seiten deiner Website navigieren, während du den Customizer verwendest, um die auf diesen Seiten verfügbaren Widgets anzuzeigen und zu bearbeiten." -#: wp-includes/class-wp-editor.php:1096 -msgid "Insert/edit code sample" -msgstr "Beispielcode einfügen/bearbeiten" +#. translators: placeholder is the total number of widget areas registered +#: wp-includes/class-wp-customize-widgets.php:770 +msgid "Your theme has %s widget area, but this particular page doesn’t display it." +msgid_plural "Your theme has %s widget areas, but this particular page doesn’t display them." +msgstr[0] "Dein Theme hat %s Widget-Bereich, aber diese bestimmte Seite zeigt ihn nicht an." +msgstr[1] "Dein Theme hat %s Widget-Bereiche, aber diese bestimmte Seite zeigt sie nicht an." + +#. translators: placeholder is the total number of widget areas registered +#: wp-includes/class-wp-customize-widgets.php:765 +msgid "Your theme has 1 widget area, but this particular page doesn’t display it." +msgstr "Dein Theme hat einen Widget-Bereich, aber diese bestimmte Seite zeigt ihn nicht an." #. translators: placeholder is the number of other widget areas registered but #. not rendered @@ -654,11 +659,6 @@ msgstr[1] "Dein Theme hat %s weitere Widget-Bereiche, aber diese bestimmte Seite msgid "Your theme has 1 other widget area, but this particular page doesn’t display it." msgstr "Dein Theme hat einen weiteren Widget-Bereich, aber diese bestimmte Seite zeigt ihn nicht an." -#. translators: placeholder is the total number of widget areas registered -#: wp-includes/class-wp-customize-widgets.php:765 -msgid "Your theme has 1 widget area, but this particular page doesn’t display it." -msgstr "Dein Theme hat einen Widget-Bereich, aber diese bestimmte Seite zeigt ihn nicht an." - #: wp-includes/option.php:1771 msgid "This address is used for admin purposes, like new user notification." msgstr "Diese Adresse wird für administrative Zwecke verwendet, wie Benachrichtigungen über neue Benutzer." @@ -672,6 +672,11 @@ msgstr "Eindeutige Kennung für den Begriff." msgid "Required to be true, as terms do not support trashing." msgstr "Setzen auf true erforderlich, denn Begriffe können nicht in den Papierkorb gelegt werden." +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:53 +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:274 +msgid "An alphanumeric identifier for the taxonomy." +msgstr "Eine alphanumerische Kennung für die Taxonomie." + #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:116 msgid "Required to be true, as revisions do not support trashing." msgstr "Setzen auf true erforderlich, denn Revisionen können nicht in den Papierkorb gelegt werden." @@ -680,11 +685,6 @@ msgstr "Setzen auf true erforderlich, denn Revisionen können nicht in den Papie msgid "REST base route for the post type." msgstr "REST-Basisroute für den Inhaltstyp." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:53 -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:274 -msgid "An alphanumeric identifier for the taxonomy." -msgstr "Eine alphanumerische Kennung für die Taxonomie." - #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:53 #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:246 msgid "An alphanumeric identifier for the post type." @@ -694,14 +694,14 @@ msgstr "Eine alphanumerische Kennung für den Inhaltstyp." msgid "Human-readable labels for the post type for various contexts." msgstr "Visuell lesbare Kennungen des Inhaltstyps für verschiedene Kontexte." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:222 -msgid "A human-readable description of the post type." -msgstr "Eine visuell lesbare Beschreibung des Inhaltstyps." - #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:228 msgid "Whether or not the post type should have children." msgstr "Ob der Inhaltstyp Kind-Elemente haben soll, oder nicht." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:222 +msgid "A human-readable description of the post type." +msgstr "Eine visuell lesbare Beschreibung des Inhaltstyps." + #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:216 msgid "All capabilities used by the post type." msgstr "Alle Fähigkeiten, die der Inhaltstyp benutzt." @@ -711,14 +711,14 @@ msgstr "Alle Fähigkeiten, die der Inhaltstyp benutzt." msgid "An alphanumeric identifier for the status." msgstr "Eine alphanumerische Kennung für den Status." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1326 -msgid "Limit response to comments published after a given ISO8601 compliant date." -msgstr "Antwort auf Kommentare einschränken, die nach einem gegebenen ISO8601-konformen Datum veröffentlicht wurden." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1355 msgid "Limit response to comments published before a given ISO8601 compliant date." msgstr "Antwort auf Kommentare einschränken, die vor einem gegebenen ISO8601-konformen Datum veröffentlicht wurden." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1326 +msgid "Limit response to comments published after a given ISO8601 compliant date." +msgstr "Antwort auf Kommentare einschränken, die nach einem gegebenen ISO8601-konformen Datum veröffentlicht wurden." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1289 msgid "Avatar URLs for the user." msgstr "Avatar-URLs für den Benutzer." @@ -731,6 +731,10 @@ msgstr "Rollen, die dem Benutzer zugewiesen sind." msgid "The nickname for the user." msgstr "Der Spitzname für den Benutzer." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1213 +msgid "Locale for the user." +msgstr "Sprachumgebung für den Benutzer." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1206 msgid "Author URL of the user." msgstr "Autor-URL des Benutzers." @@ -743,14 +747,6 @@ msgstr "Beschreibung des Benutzers." msgid "URL of the user." msgstr "URL des Benutzers." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1213 -msgid "Locale for the user." -msgstr "Sprachumgebung für den Benutzer." - -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1164 -msgid "Display name for the user." -msgstr "Anzeige-Name für den Benutzer." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1180 msgid "Last name for the user." msgstr "Nachname für den Benutzer." @@ -759,6 +755,10 @@ msgstr "Nachname für den Benutzer." msgid "First name for the user." msgstr "Vorname für den Benutzer." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1164 +msgid "Display name for the user." +msgstr "Anzeige-Name für den Benutzer." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1155 msgid "Login name for the user." msgstr "Anmeldename für den Benutzer." @@ -813,6 +813,10 @@ msgstr "Der Titel für den Inhaltstyp." msgid "Cannot view post type." msgstr "Kann den Inhaltstyp nicht anzeigen." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:257 +msgid "The title for the status." +msgstr "Der Titel für den Status." + #: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:140 msgid "Cannot view status." msgstr "Kann den Status nicht anzeigen." @@ -822,10 +826,6 @@ msgstr "Kann den Status nicht anzeigen." msgid "Invalid status." msgstr "Ungültiger Status." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:257 -msgid "The title for the status." -msgstr "Der Titel für den Status." - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:468 msgid "URL to the original attachment file." msgstr "URL der Originaldatei des Anhangs." @@ -844,7 +844,7 @@ msgstr "Die Beschreibung des Anhangs." #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:396 msgid "The attachment caption." -msgstr "Der Untertitel des Anhangs." +msgstr "Die Beschriftung des Anhangs." #: wp-includes/option.php:1820 msgid "Default post category." @@ -860,13 +860,6 @@ msgctxt "theme author" msgid "By %s" msgstr "Von %s" -#. translators: New site notification email subject. 1: Network name, 2: New -#. site URL -#: wp-includes/ms-functions.php:891 -msgctxt "New site notification email subject" -msgid "[%1$s] Activate %2$s" -msgstr "[%1$s] Aktiviere %2$s" - #. translators: New user notification email subject. 1: Network name, 2: New #. user login #: wp-includes/ms-functions.php:985 @@ -874,6 +867,13 @@ msgctxt "New user notification email subject" msgid "[%1$s] Activate %2$s" msgstr "[%1$s] Aktiviere %2$s" +#. translators: New site notification email subject. 1: Network name, 2: New +#. site URL +#: wp-includes/ms-functions.php:891 +msgctxt "New site notification email subject" +msgid "[%1$s] Activate %2$s" +msgstr "[%1$s] Aktiviere %2$s" + #: wp-includes/widgets.php:1236 wp-includes/widgets.php:1345 msgid "RSS Error:" msgstr "RSS-Fehler:" @@ -891,22 +891,22 @@ msgstr "Ungültige Titelform." msgid "Invalid email address." msgstr "Ungültige E-Mail-Adresse." -#: wp-includes/post.php:3136 wp-includes/rest-api.php:1094 -msgid "Invalid date." -msgstr "Ungültiges Datum." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:510 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:716 msgid "Invalid comment content." msgstr "Ungültiger Kommentarinhalt." +#: wp-includes/rest-api/class-wp-rest-server.php:294 +msgid "Invalid JSONP callback function." +msgstr "Ungültige JSONP-Callback-Funktion." + #: wp-includes/post.php:3416 msgid "Invalid page template." msgstr "Ungültiges Seiten-Template." -#: wp-includes/rest-api/class-wp-rest-server.php:294 -msgid "Invalid JSONP callback function." -msgstr "Ungültige JSONP-Callback-Funktion." +#: wp-includes/post.php:3136 wp-includes/rest-api.php:1094 +msgid "Invalid date." +msgstr "Ungültiges Datum." #: wp-includes/theme.php:1398 msgid "Video is playing." @@ -941,6 +941,11 @@ msgctxt "Theme starter content" msgid "You might be an artist who would like to introduce yourself and your work here or maybe you’re a business with a mission to describe." msgstr "Möglicherweise bist du künstlerisch tätig und möchtest dich und deine Arbeiten hier vorstellen. Oder hast du vielleicht ein Business mit einer Mission, die es zu beschreiben gilt?" +#: wp-includes/theme.php:2064 +msgctxt "Theme starter content" +msgid "Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time." +msgstr "Willkommen auf deiner Website! Das ist die Startseite, die die meisten deiner Besucher sehen werden, wenn sie deine Website zum ersten Mal aufrufen." + #: wp-includes/theme.php:1981 msgctxt "Theme starter content" msgid "Recent Posts" @@ -951,25 +956,25 @@ msgctxt "Theme starter content" msgid "Recent Comments" msgstr "Neueste Kommentare" -#: wp-includes/theme.php:2064 +#: wp-includes/theme.php:1975 msgctxt "Theme starter content" -msgid "Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time." -msgstr "Willkommen auf deiner Website! Das ist die Startseite, die die meisten deiner Besucher sehen werden, wenn sie deine Website zum ersten Mal aufrufen." +msgid "Meta" +msgstr "Meta" #: wp-includes/theme.php:1969 msgctxt "Theme starter content" msgid "Calendar" msgstr "Kalender" -#: wp-includes/theme.php:1975 -msgctxt "Theme starter content" -msgid "Meta" -msgstr "Meta" - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:687 msgid "Sorry, you are not allowed to change the comment type." msgstr "Du bist leider nicht berechtigt, den Kommentar-Typ zu ändern." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1060 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1070 +msgid "Sorry, you are not allowed to give users that role." +msgstr "Du bist leider nicht berechtigt, Benutzern diese Benutzerrolle zuzuweisen." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:191 msgid "Sorry, you are not allowed to order users by this parameter." msgstr "Du bist leider nicht berechtigt, Benutzer nach diesem Parameter zu sortieren." @@ -978,34 +983,27 @@ msgstr "Du bist leider nicht berechtigt, Benutzer nach diesem Parameter zu sorti msgid "Sorry, you are not allowed to filter users by role." msgstr "Du bist leider nicht berechtigt, Benutzer nach Benutzerrollen zu filtern." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1060 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1070 -msgid "Sorry, you are not allowed to give users that role." -msgstr "Du bist leider nicht berechtigt, Benutzern diese Benutzerrolle zuzuweisen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:360 -msgid "Sorry, you are not allowed to read this comment." -msgstr "Du bist leider nicht berechtigt, diesen Kommentar zu lesen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:782 +msgid "Sorry, you are not allowed to delete this comment." +msgstr "Du bist leider nicht berechtigt, diesen Kommentar zu löschen." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:126 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:364 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:469 -msgid "Sorry, you are not allowed to read the post for this comment." -msgstr "Du bist leider nicht berechtigt, den Beitrag zu diesem Kommentar zu lesen." +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:381 +msgid "Sorry, you are not allowed to create new terms." +msgstr "Du bist leider nicht berechtigt, neue Begriffe zu erstellen." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:452 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:457 -msgid "Sorry, you are not allowed to create this comment without a post." -msgstr "Du bist leider nicht berechtigt, diesen Kommentar ohne einen Beitrag zu erstellen." +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:164 +msgid "Sorry, you are not allowed to view revisions of this post." +msgstr "Du bist leider nicht berechtigt, Revisionen dieses Beitrags anzuschauen." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:461 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:465 msgid "Sorry, you are not allowed to create a comment on this post." msgstr "Du bist leider nicht berechtigt, einen Kommentar zu diesem Beitrag zu erstellen." -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:164 -msgid "Sorry, you are not allowed to view revisions of this post." -msgstr "Du bist leider nicht berechtigt, Revisionen dieses Beitrags anzuschauen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:452 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:457 +msgid "Sorry, you are not allowed to create this comment without a post." +msgstr "Du bist leider nicht berechtigt, diesen Kommentar ohne einen Beitrag zu erstellen." #. translators: %s: request parameter #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:428 @@ -1014,13 +1012,15 @@ msgstr "Du bist leider nicht berechtigt, Revisionen dieses Beitrags anzuschauen. msgid "Sorry, you are not allowed to edit '%s' for comments." msgstr "Du bist leider nicht berechtigt, '%s' für Kommentare zu bearbeiten." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:782 -msgid "Sorry, you are not allowed to delete this comment." -msgstr "Du bist leider nicht berechtigt, diesen Kommentar zu löschen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:126 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:364 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:469 +msgid "Sorry, you are not allowed to read the post for this comment." +msgstr "Du bist leider nicht berechtigt, den Beitrag zu diesem Kommentar zu lesen." -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:381 -msgid "Sorry, you are not allowed to create new terms." -msgstr "Du bist leider nicht berechtigt, neue Begriffe zu erstellen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:360 +msgid "Sorry, you are not allowed to read this comment." +msgstr "Du bist leider nicht berechtigt, diesen Kommentar zu lesen." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:128 msgid "Sorry, you are not allowed to read comments without a post." @@ -1051,22 +1051,16 @@ msgctxt "Theme starter content" msgid "Foursquare" msgstr "Foursquare" -#: wp-includes/class-wp-xmlrpc-server.php:1278 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:505 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:649 -msgid "Sorry, you are not allowed to make posts sticky." -msgstr "Du bist leider nicht berechtigt, Beiträge oben zu halten." +#: wp-includes/theme.php:1961 +msgctxt "Theme starter content" +msgid "This may be a good place to introduce yourself and your site or include some credits." +msgstr "Hier wäre ein guter Platz, um dich und deine Website vorzustellen oder weitere Informationen anzugeben." #: wp-includes/theme.php:1960 msgctxt "Theme starter content" msgid "About This Site" msgstr "Über diese Website" -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:513 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:653 -msgid "Sorry, you are not allowed to assign the provided terms." -msgstr "Du bist leider nicht berechtigt, die angegebenen Begriffe zuzuordnen." - #. translators: %s: custom field key #: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:183 #: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:219 @@ -1074,10 +1068,16 @@ msgstr "Du bist leider nicht berechtigt, die angegebenen Begriffe zuzuordnen." msgid "Sorry, you are not allowed to edit the %s custom field." msgstr "Du bist leider nicht berechtigt, das benutzerdefinierte Feld %s zu bearbeiten." -#: wp-includes/theme.php:1961 -msgctxt "Theme starter content" -msgid "This may be a good place to introduce yourself and your site or include some credits." -msgstr "Hier wäre ein guter Platz, um dich und deine Website vorzustellen oder weitere Informationen anzugeben." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:513 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:653 +msgid "Sorry, you are not allowed to assign the provided terms." +msgstr "Du bist leider nicht berechtigt, die angegebenen Begriffe zuzuordnen." + +#: wp-includes/class-wp-xmlrpc-server.php:1278 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:505 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:649 +msgid "Sorry, you are not allowed to make posts sticky." +msgstr "Du bist leider nicht berechtigt, Beiträge oben zu halten." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:100 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:135 @@ -1088,24 +1088,24 @@ msgstr "Die gelöschten Beiträge und Links des Benutzers dieser Benutzer-ID ern msgid "This theme doesn't support video headers on this page. Navigate to the front page or another page that supports video headers." msgstr "Dieses Theme unterstützt auf dieser Seite keine Video-Header. Gehe zur Startseite oder einer anderen Seite, die Video-Header unterstützt." -#: wp-includes/class-wp-customize-manager.php:4021 -#: wp-includes/widgets/class-wp-widget-media-video.php:32 -msgid "No video selected" -msgstr "Kein Video ausgewählt" +#: wp-includes/class-wp-customize-manager.php:4019 +#: wp-includes/class-wp-customize-manager.php:4022 +msgid "Select Video" +msgstr "Video auswählen" #: wp-includes/class-wp-customize-manager.php:4020 msgid "Change Video" msgstr "Video wechseln" +#: wp-includes/class-wp-customize-manager.php:4021 +#: wp-includes/widgets/class-wp-widget-media-video.php:32 +msgid "No video selected" +msgstr "Kein Video ausgewählt" + #: wp-includes/class-wp-customize-manager.php:4023 msgid "Choose Video" msgstr "Video wählen" -#: wp-includes/class-wp-customize-manager.php:4019 -#: wp-includes/class-wp-customize-manager.php:4022 -msgid "Select Video" -msgstr "Video auswählen" - #: wp-includes/theme.php:2087 msgctxt "Theme starter content" msgid "A homepage section" @@ -1116,30 +1116,30 @@ msgctxt "Theme starter content" msgid "Blog" msgstr "Blog" -#: wp-includes/theme.php:2020 -msgctxt "Theme starter content" -msgid "Email" -msgstr "E-Mail" - -#: wp-includes/theme.php:2036 -msgctxt "Theme starter content" -msgid "Instagram" -msgstr "Instagram" - #: wp-includes/theme.php:2073 msgctxt "Theme starter content" msgid "Contact" msgstr "Kontakt" +#: wp-includes/theme.php:2068 +msgctxt "Theme starter content" +msgid "About" +msgstr "Über mich" + #: wp-includes/theme.php:1990 wp-includes/theme.php:2063 msgctxt "Theme starter content" msgid "Home" msgstr "Startseite" -#: wp-includes/theme.php:2068 +#: wp-includes/theme.php:2020 msgctxt "Theme starter content" -msgid "About" -msgstr "Über mich" +msgid "Email" +msgstr "E-Mail" + +#: wp-includes/theme.php:2036 +msgctxt "Theme starter content" +msgid "Instagram" +msgstr "Instagram" #: wp-includes/theme.php:2048 msgctxt "Theme starter content" @@ -1156,6 +1156,16 @@ msgctxt "Theme starter content" msgid "Yelp" msgstr "Yelp" +#: wp-includes/theme.php:1972 +msgctxt "Theme starter content" +msgid "Categories" +msgstr "Kategorien" + +#: wp-includes/theme.php:1984 +msgctxt "Theme starter content" +msgid "Search" +msgstr "Suche" + #: wp-includes/theme.php:1954 msgctxt "Theme starter content" msgid "Saturday & Sunday: 11:00AM–3:00PM" @@ -1181,16 +1191,6 @@ msgctxt "Theme starter content" msgid "123 Main Street" msgstr "Große Straße 123" -#: wp-includes/theme.php:1972 -msgctxt "Theme starter content" -msgid "Categories" -msgstr "Kategorien" - -#: wp-includes/theme.php:1984 -msgctxt "Theme starter content" -msgid "Search" -msgstr "Suchen" - #: wp-includes/theme.php:1951 msgctxt "Theme starter content" msgid "Address" @@ -1201,14 +1201,14 @@ msgctxt "Theme starter content" msgid "Find Us" msgstr "Hier findest du uns" -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1124 -msgid "Passwords cannot be empty." -msgstr "Passwörter können nicht leer sein." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1128 msgid "Passwords cannot contain the \"\\\" character." msgstr "Passwörter können kein „\\“-Zeichen enthalten." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1124 +msgid "Passwords cannot be empty." +msgstr "Passwörter können nicht leer sein." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1094 msgid "Username contains invalid characters." msgstr "Benutzername enthält ungültige Zeichen." @@ -1236,35 +1236,35 @@ msgstr "Dokument-Vorschau" msgid "Header Media" msgstr "Header-Medien" +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:295 +msgid "REST base route for the taxonomy." +msgstr "REST-Basisroute für die Taxonomie." + #. translators: %s: add new page label #: wp-includes/class-wp-customize-control.php:620 msgid "+ %s" msgstr "+ %s" -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:295 -msgid "REST base route for the taxonomy." -msgstr "REST-Basisroute für die Taxonomie." - #: wp-includes/l10n.php:1198 msgctxt "default site language" msgid "Site Default" msgstr "Website-Einstellung" -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:426 -msgid "Description for the object, as it exists in the database." -msgstr "Beschreibung für das Objekt, wie sie in der Datenbank vorliegt." - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:431 msgid "HTML description for the object, transformed for display." msgstr "HTML-Beschreibung für das Objekt, transformiert für die Anzeige." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:404 -msgid "Caption for the attachment, as it exists in the database." -msgstr "Bildunterschrift für den Anhang, wie er in der Datenbank vorliegt." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:426 +msgid "Description for the object, as it exists in the database." +msgstr "Beschreibung für das Objekt, wie sie in der Datenbank vorliegt." #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:409 msgid "HTML caption for the attachment, transformed for display." -msgstr "Für die Anzeige umgewandelter HTML-Untertitel für den Anhang." +msgstr "Für die Anzeige umgewandelte HTML-Beschriftung für den Anhang." + +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:404 +msgid "Caption for the attachment, as it exists in the database." +msgstr "Beschriftung für den Anhang, wie sie in der Datenbank vorliegt." #: wp-includes/class-wp-customize-manager.php:4215 msgid "CSS allows you to customize the appearance and layout of your site with code. Separate CSS is saved for each of your themes. In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key." @@ -1282,25 +1282,25 @@ msgstr "Hauptmenü einblenden" msgid "Collapse Main menu" msgstr "Hauptmenü ausblenden" +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:747 +msgid "Users do not support trashing. Set force=true to delete." +msgstr "Benutzer unterstützen die Papierkorbfunktion nicht. Setze force=true, um sie zu löschen." + #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:594 msgid "Terms do not support trashing. Set force=true to delete." msgstr "Begriffe unterstützen die Papierkorbfunktion nicht. Setze force=true, um sie zu löschen." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:826 -msgid "The comment does not support trashing. Set force=true to delete." -msgstr "Der Kommentar unterstützt die Papierkorbfunktion nicht. Setze force=true, um ihn zu löschen." +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:302 +msgid "Revisions do not support trashing. Set force=true to delete." +msgstr "Revisionen unterstützen die Papierkorbfunktion nicht. Setze force=true, um sie zu löschen." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:823 msgid "The post does not support trashing. Set force=true to delete." msgstr "Der Beitrag unterstützt die Papierkorbfunktion nicht. Setze force=true, um ihn zu löschen." -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:302 -msgid "Revisions do not support trashing. Set force=true to delete." -msgstr "Revisionen unterstützen die Papierkorbfunktion nicht. Setze force=true, um sie zu löschen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:747 -msgid "Users do not support trashing. Set force=true to delete." -msgstr "Benutzer unterstützen die Papierkorbfunktion nicht. Setze force=true, um sie zu löschen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:826 +msgid "The comment does not support trashing. Set force=true to delete." +msgstr "Der Kommentar unterstützt die Papierkorbfunktion nicht. Setze force=true, um ihn zu löschen." #: wp-includes/class-wp-customize-manager.php:4031 msgid "Or, enter a YouTube URL:" @@ -1324,14 +1324,14 @@ msgstr "Ergebnissatz auf Beiträge begrenzen, denen ein oder mehrere Status zuge msgid "Comment field exceeds maximum length allowed." msgstr "Kommentarfeld übersteigt die maximal erlaubte Länge." -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:67 -msgid "Display Location" -msgstr "Anzeige-Position" - #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:258 msgid "Taxonomies associated with post type." msgstr "Taxonomien, die dem Beitragstyp zugeordnet sind." +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:67 +msgid "Display Location" +msgstr "Anzeige-Position" + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2171 msgid "Limit result set to posts with one or more specific slugs." msgstr "Ergebnissatz auf Beiträge mit einer oder mehreren bestimmten Titelformen begrenzen." @@ -1340,14 +1340,14 @@ msgstr "Ergebnissatz auf Beiträge mit einer oder mehreren bestimmten Titelforme msgid "Comment is required." msgstr "Kommentar ist erforderlich." -#: wp-includes/class-wp-customize-nav-menus.php:793 -msgid "Empty title" -msgstr "Leerer Titel" - #: wp-includes/class-wp-customize-nav-menus.php:796 msgid "Status is forbidden" msgstr "Status ist unzulässig" +#: wp-includes/class-wp-customize-nav-menus.php:793 +msgid "Empty title" +msgstr "Leerer Titel" + #: wp-trackback.php:125 msgid "We already have a ping from that URL for this post." msgstr "Für diesen Beitrag haben wir bereits einen Ping von dieser URL." @@ -1360,40 +1360,30 @@ msgstr "Trackbacks sind für diesen Beitrag geschlossen." msgid "I really need an ID for this to work." msgstr "Damit das funktioniert brauche ich wirklich eine ID." -#: wp-includes/script-loader.php:546 -msgid "Remove term:" -msgstr "Lösche Begriff: " - -#: wp-includes/script-loader.php:547 -msgid "Term selected." -msgstr "Begriff ausgewählt." +#: wp-includes/script-loader.php:549 +msgid "Term removed." +msgstr "Begriff entfernt." #: wp-includes/script-loader.php:548 msgid "Term added." msgstr "Begriff hinzugefügt." -#: wp-includes/script-loader.php:549 -msgid "Term removed." -msgstr "Begriff entfernt." +#: wp-includes/script-loader.php:547 +msgid "Term selected." +msgstr "Begriff ausgewählt." -#. translators: %s: IP address -#: wp-includes/rest-api.php:1106 -msgid "%s is not a valid IP address." -msgstr "%s ist keine gültige IP-Adresse." +#: wp-includes/script-loader.php:546 +msgid "Remove term:" +msgstr "Lösche Begriff: " #: wp-includes/script-loader.php:239 msgid "Item selected." msgstr "Eintrag ausgewählt." #. translators: 1: parameter, 2: minimum number, 3: maximum number -#: wp-includes/rest-api.php:1133 -msgid "%1$s must be between %2$d (exclusive) and %3$d (exclusive)" -msgstr "%1$s muss zwischen %2$d (exklusiv) und %3$d (exklusive) liegen" - -#. translators: 1: parameter, 2: minimum number, 3: maximum number -#: wp-includes/rest-api.php:1138 -msgid "%1$s must be between %2$d (inclusive) and %3$d (exclusive)" -msgstr "%1$s muss zwischen %2$d (inklusiv) und %3$d (exklusiv) liegen" +#: wp-includes/rest-api.php:1148 +msgid "%1$s must be between %2$d (inclusive) and %3$d (inclusive)" +msgstr "%1$s muss zwischen %2$d (inklusiv) und %3$d (inklusiv) liegen" #. translators: 1: parameter, 2: minimum number, 3: maximum number #: wp-includes/rest-api.php:1143 @@ -1401,13 +1391,19 @@ msgid "%1$s must be between %2$d (exclusive) and %3$d (inclusive)" msgstr "%1$s muss zwischen %2$d (exklusiv) und %3$d (inklusiv) liegen" #. translators: 1: parameter, 2: minimum number, 3: maximum number -#: wp-includes/rest-api.php:1148 -msgid "%1$s must be between %2$d (inclusive) and %3$d (inclusive)" -msgstr "%1$s muss zwischen %2$d (inklusiv) und %3$d (inklusiv) liegen" +#: wp-includes/rest-api.php:1138 +msgid "%1$s must be between %2$d (inclusive) and %3$d (exclusive)" +msgstr "%1$s muss zwischen %2$d (inklusiv) und %3$d (exklusiv) liegen" -#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:390 -msgid "Meta fields." -msgstr "Meta-Felder." +#. translators: 1: parameter, 2: minimum number, 3: maximum number +#: wp-includes/rest-api.php:1133 +msgid "%1$s must be between %2$d (exclusive) and %3$d (exclusive)" +msgstr "%1$s muss zwischen %2$d (exklusiv) und %3$d (exklusive) liegen" + +#. translators: %s: IP address +#: wp-includes/rest-api.php:1106 +msgid "%s is not a valid IP address." +msgstr "%s ist keine gültige IP-Adresse." #. translators: 1: parameter, 2: type name #: wp-includes/rest-api.php:1054 wp-includes/rest-api.php:1072 @@ -1421,9 +1417,9 @@ msgstr "%1$s ist nicht vom Typ %2$s." msgid "%1$s is not one of %2$s." msgstr "%1$s ist nicht eins von %2$s." -#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:191 -msgid "Could not delete meta value from database." -msgstr "Konnte den Meta-Wert in der Datenbank nicht löschen." +#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:390 +msgid "Meta fields." +msgstr "Meta-Felder." #: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:254 #: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:264 @@ -1431,6 +1427,10 @@ msgstr "Konnte den Meta-Wert in der Datenbank nicht löschen." msgid "Could not update meta value in database." msgstr "Konnte den Meta-Wert in der Datenbank nicht aktualisieren." +#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:191 +msgid "Could not delete meta value from database." +msgstr "Konnte den Meta-Wert in der Datenbank nicht löschen." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1369 msgid "Limit result set to users matching at least one specific role provided. Accepts csv list or single role." msgstr "Ergebnissatz auf Benutzer begrenzen, die mindestens einer bestimmten Rolle entsprechen. Akzeptiert eine CSV-Liste oder einzelne Rolle." @@ -1455,10 +1455,6 @@ msgstr "Registrierungsdatum für den Benutzer." msgid "The email address for the user." msgstr "Die E-Mail-Adresse für den Benutzer." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:610 -msgid "Username isn't editable." -msgstr "Benutzername ist nicht editierbar." - #. translators: %s: role key #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1046 msgid "The role %s does not exist." @@ -1472,9 +1468,9 @@ msgstr "Ungültige Benutzer-ID für eine erneute Zuweisung." msgid "Sorry, you are not allowed to delete this user." msgstr "Du bist leider nicht berechtigt, diesen Benutzer zu löschen." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:420 -msgid "You are not currently logged in." -msgstr "Du bist im Moment nicht angemeldet." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:610 +msgid "Username isn't editable." +msgstr "Benutzername ist nicht editierbar." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:578 msgid "Sorry, you are not allowed to edit roles of this user." @@ -1484,13 +1480,9 @@ msgstr "Du bist leider nicht berechtigt, Rollen dieses Benutzers zu bearbeiten." msgid "Cannot create existing user." msgstr "Kann einen bereits vorhandenen Benutzer nicht erstellen." -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:872 -msgid "Type attribution for the term." -msgstr "Typzuordnung für diesen Begriff." - -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:961 -msgid "Whether to hide terms not assigned to any posts." -msgstr "Ob Begriffe verborgen werden, die keinen Beiträgen zugewiesen sind." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:420 +msgid "You are not currently logged in." +msgstr "Du bist im Moment nicht angemeldet." #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:974 msgid "Limit result set to terms assigned to a specific post." @@ -1500,18 +1492,21 @@ msgstr "Ergebnissatz auf Begriffe begrenzen, die einem bestimmten Beitrag zugewi msgid "Limit result set to terms assigned to a specific parent." msgstr "Ergebnissatz auf Begriffe begrenzen, die einem bestimmten Eltern-Objekt zugewiesen sind." -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:864 -msgid "An alphanumeric identifier for the term unique to its type." -msgstr "Eine alphanumerische Kennung für den Begriff, die eindeutig für ihren Typ ist." +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:961 +msgid "Whether to hide terms not assigned to any posts." +msgstr "Ob Begriffe verborgen werden, die keinen Beiträgen zugewiesen sind." #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:946 msgid "Sort collection by term attribute." msgstr "Sortiere die Sammlung nach einem Attribut des Begriffs." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:70 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1149 -msgid "Unique identifier for the user." -msgstr "Eindeutige Kennung für den Benutzer." +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:872 +msgid "Type attribution for the term." +msgstr "Typzuordnung für diesen Begriff." + +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:864 +msgid "An alphanumeric identifier for the term unique to its type." +msgstr "Eine alphanumerische Kennung für den Begriff, die eindeutig für ihren Typ ist." #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:843 msgid "HTML description of the term." @@ -1521,25 +1516,10 @@ msgstr "HTML-Beschreibung des Begriffs." msgid "Number of published posts for the term." msgstr "Anzahl der veröffentlichten Beiträge für den Begriff." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2273 -msgid "Status is forbidden." -msgstr "Status ist unzulässig." - -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:179 -msgid "Invalid revision ID." -msgstr "Ungültige Revisions-ID." - -#: wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php:203 -msgid "The %s property has an invalid stored value, and cannot be updated to null." -msgstr "Die %s-Eigenschaft ist mit einem ungültigen Wert gespeichert, und kann nicht auf null aktualisiert werden." - -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:280 -msgid "Whether or not the term cloud should be displayed." -msgstr "Ob die Schlagwort-Wolke angezeigt werden soll, oder nicht." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2218 -msgid "Limit result set to items that are sticky." -msgstr "Ergebnissatz auf Elemente begrenzen, die oben gehalten werden." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:70 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1149 +msgid "Unique identifier for the user." +msgstr "Eindeutige Kennung für den Benutzer." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:96 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:131 @@ -1550,29 +1530,25 @@ msgstr "Setzen auf true erforderlich, denn Benutzer können nicht in den Papierk msgid "Limit results to taxonomies associated with a specific post type." msgstr "Ergebnisse auf Taxonomien begrenzen, die einem bestimmten Beitragstyp zugeordnet sind." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2076 -msgid "Ensure result set excludes posts assigned to specific authors." -msgstr "Stelle sicher, dass der Ergebnissatz Beiträge ausschließt, die bestimmten Autoren zugewiesen sind." +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:280 +msgid "Whether or not the term cloud should be displayed." +msgstr "Ob die Schlagwort-Wolke angezeigt werden soll, oder nicht." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1379 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2117 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:930 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1334 -msgid "Offset the result set by a specific number of items." -msgstr "Verschiebe den Ergebnissatz um eine bestimmte Anzahl von Elementen." +#: wp-includes/rest-api/endpoints/class-wp-rest-settings-controller.php:203 +msgid "The %s property has an invalid stored value, and cannot be updated to null." +msgstr "Die %s-Eigenschaft ist mit einem ungültigen Wert gespeichert, und kann nicht auf null aktualisiert werden." -#. translators: %s: taxonomy name -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2035 -msgid "The terms assigned to the object in the %s taxonomy." -msgstr "Die Begriffe, die dem Objekt in der Taxonomie %s zugewiesen sind." +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:179 +msgid "Invalid revision ID." +msgstr "Ungültige Revisions-ID." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2068 -msgid "Limit result set to posts assigned to specific authors." -msgstr "Ergebnissatz auf Beiträge begrenzen, die bestimmten Autoren zugewiesen sind." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2273 +msgid "Status is forbidden." +msgstr "Status ist unzulässig." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2153 -msgid "Limit result set to items with particular parent IDs." -msgstr "Ergebnissatz auf alle Elemente bestimmter Eltern-IDs begrenzen." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2218 +msgid "Limit result set to items that are sticky." +msgstr "Ergebnissatz auf Elemente begrenzen, die oben gehalten werden." #. translators: %s: taxonomy name #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2197 @@ -1583,120 +1559,126 @@ msgstr "Ergebnissatz auf alle Elemente begrenzen, die in der Taxonomie %s einen msgid "Limit result set to all items except those of a particular parent ID." msgstr "Ergebnissatz auf alle Elemente begrenzen, außer denen mit einer bestimmten Eltern-ID." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2153 +msgid "Limit result set to items with particular parent IDs." +msgstr "Ergebnissatz auf alle Elemente bestimmter Eltern-IDs begrenzen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1379 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2117 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:930 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1334 +msgid "Offset the result set by a specific number of items." +msgstr "Verschiebe den Ergebnissatz um eine bestimmte Anzahl von Elementen." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2111 msgid "Limit result set to posts with a specific menu_order value." msgstr "Ergebnissatz auf Beiträge begrenzen, die einem bestimmten menu_order-Wert haben." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1804 -msgid "A password to protect access to the content and excerpt." -msgstr "Ein Passwort, um vor Zugriff auf Inhalt und Textauszug zu schützen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1956 -msgid "Whether the excerpt is protected with a password." -msgstr "Ob der Textauszug durch ein Passwort geschützt ist." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2076 +msgid "Ensure result set excludes posts assigned to specific authors." +msgstr "Stelle sicher, dass der Ergebnissatz Beiträge ausschließt, die bestimmten Autoren zugewiesen sind." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2001 -msgid "The format for the object." -msgstr "Das Format des Objekts." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2068 +msgid "Limit result set to posts assigned to specific authors." +msgstr "Ergebnissatz auf Beiträge begrenzen, die bestimmten Autoren zugewiesen sind." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1975 -msgid "Whether or not comments are open on the object." -msgstr "Ob Kommentare für das Objekt geöffnet sind, oder nicht." +#. translators: %s: taxonomy name +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2035 +msgid "The terms assigned to the object in the %s taxonomy." +msgstr "Die Begriffe, die dem Objekt in der Taxonomie %s zugewiesen sind." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2024 msgid "The theme file to use to display the object." msgstr "Die Theme-Datei, die zur Anzeige des Objekts benutzt wird." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1981 -msgid "Whether or not the object can be pinged." -msgstr "Ob das Objekt gepingt werden kann, oder nicht." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1804 +msgid "A password to protect access to the content and excerpt." +msgstr "Ein Passwort, um vor Zugriff auf Inhalt und Textauszug zu schützen." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2017 msgid "Whether or not the object should be treated as sticky." msgstr "Ob das Objekt als oben gehalten behandelt werden soll, oder nicht." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2001 +msgid "The format for the object." +msgstr "Das Format des Objekts." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1990 msgid "The order of the object in relation to other object of its type." msgstr "Die Reihenfolge des Objekts im Verhältnis zu anderen Objekten seines Typs." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1950 -msgid "HTML excerpt for the object, transformed for display." -msgstr "HTML-Auszug für das Objekt, transformiert für die Anzeige." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1981 +msgid "Whether or not the object can be pinged." +msgstr "Ob das Objekt gepingt werden kann, oder nicht." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1975 +msgid "Whether or not comments are open on the object." +msgstr "Ob Kommentare für das Objekt geöffnet sind, oder nicht." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1967 msgid "The ID of the featured media for the object." msgstr "Die ID des hervorgehobenen Mediums für das Objekt." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1918 -msgid "Whether the content is protected with a password." -msgstr "Ob der Inhalt durch ein Passwort geschützt ist." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1956 +msgid "Whether the excerpt is protected with a password." +msgstr "Ob der Textauszug durch ein Passwort geschützt ist." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1875 -msgid "The title for the object." -msgstr "Der Titel für das Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1950 +msgid "HTML excerpt for the object, transformed for display." +msgstr "HTML-Auszug für das Objekt, transformiert für die Anzeige." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1798 -msgid "Type of Post for the object." -msgstr "Beitrags-Typ für das Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1945 +msgid "Excerpt for the object, as it exists in the database." +msgstr "Textauszug des Objekts, wie es in der Datenbank vorliegt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1937 +msgid "The excerpt for the object." +msgstr "Der Textauszug für dieses Objekt." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1929 #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:474 msgid "The ID for the author of the object." msgstr "Die ID für den Autor des Objekts." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1792 -msgid "A named status for the object." -msgstr "Ein benannter Status für das Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1918 +msgid "Whether the content is protected with a password." +msgstr "Ob der Inhalt durch ein Passwort geschützt ist." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1937 -msgid "The excerpt for the object." -msgstr "Der Textauszug für dieses Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1888 +msgid "HTML title for the object, transformed for display." +msgstr "HTML-Titel für das Objekt, transformiert für die Anzeige." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1883 msgid "Title for the object, as it exists in the database." msgstr "Titel für das Objekt, wie er in der Datenbank vorliegt." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1945 -msgid "Excerpt for the object, as it exists in the database." -msgstr "Textauszug des Objekts, wie es in der Datenbank vorliegt." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1875 +msgid "The title for the object." +msgstr "Der Titel für das Objekt." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1888 -msgid "HTML title for the object, transformed for display." -msgstr "HTML-Titel für das Objekt, transformiert für die Anzeige." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1798 +msgid "Type of Post for the object." +msgstr "Beitrags-Typ für das Objekt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1792 +msgid "A named status for the object." +msgstr "Ein benannter Status für das Objekt." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1784 #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:518 msgid "An alphanumeric identifier for the object unique to its type." msgstr "Eine alphanumerische Kennung für die Ressource, die eindeutig für ihren Typ ist." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1051 -msgid "A sticky post can not be password protected." -msgstr "Ein oben gehaltener Beitrag kann nicht passwortgeschützt sein." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1058 -msgid "A password protected post can not be set to sticky." -msgstr "Ein passwortgeschützter Beitrag kann nicht oben gehaltenen werden." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1069 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:134 -msgid "Invalid post parent ID." -msgstr "Ungültige Eltern-ID des Beitrags." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1777 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:507 +msgid "The date the object was last modified, as GMT." +msgstr "Das Datum in GMT, an dem das Objekt zuletzt geändert wurde." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1770 #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:501 msgid "The date the object was last modified, in the site's timezone." msgstr "Das Datum des letzten Änderung des Objekts, in der Zeitzone der Website." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1160 -msgid "Invalid featured media ID." -msgstr "Ungültige ID des hervorgehobenen Mediums." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1243 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1731 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:485 -msgid "The date the object was published, as GMT." -msgstr "Das Datum in GMT, an dem das Objekt veröffentlicht wurde." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1749 msgid "GUID for the object, transformed for display." msgstr "GUID für das Objekt, transformiert für die Anzeige." @@ -1710,35 +1692,53 @@ msgstr "GUID für das Objekt, wie er in der Datenbank vorliegt." msgid "The globally unique identifier for the object." msgstr "Die global eindeutige Kennung für das Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1243 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1731 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:485 +msgid "The date the object was published, as GMT." +msgstr "Das Datum in GMT, an dem das Objekt veröffentlicht wurde." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1237 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1725 #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:479 msgid "The date the object was published, in the site's timezone." msgstr "Das Datum der Veröffentlichung des Objekts, in der Zeitzone der Website." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1777 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:507 -msgid "The date the object was last modified, as GMT." -msgstr "Das Datum in GMT, an dem das Objekt zuletzt geändert wurde." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1160 +msgid "Invalid featured media ID." +msgstr "Ungültige ID des hervorgehobenen Mediums." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:828 -msgid "The post has already been deleted." -msgstr "Der Beitrag wurde bereits gelöscht." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1069 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:134 +msgid "Invalid post parent ID." +msgstr "Ungültige Eltern-ID des Beitrags." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1058 +msgid "A password protected post can not be set to sticky." +msgstr "Ein passwortgeschützter Beitrag kann nicht oben gehaltenen werden." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1051 +msgid "A sticky post can not be password protected." +msgstr "Ein oben gehaltener Beitrag kann nicht passwortgeschützt sein." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1047 msgid "A post can not be sticky and have a password." msgstr "Ein Beitrag kann nicht oben gehalten werden und ein Passwort haben." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:495 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:530 -msgid "Cannot create existing post." -msgstr "Kann den bestehenden Beitrag nicht erstellen." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:828 +msgid "The post has already been deleted." +msgstr "Der Beitrag wurde bereits gelöscht." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:134 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:354 msgid "Sorry, you are not allowed to edit comments." msgstr "Du bist leider nicht berechtigt, Kommentare zu bearbeiten." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:495 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:530 +msgid "Cannot create existing post." +msgstr "Kann den bestehenden Beitrag nicht erstellen." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:443 msgid "Sorry, you are not allowed to create new users." msgstr "Du bist leider nicht berechtigt, neue Benutzer anzulegen." @@ -1747,14 +1747,34 @@ msgstr "Du bist leider nicht berechtigt, neue Benutzer anzulegen." msgid "Incorrect post password." msgstr "Falsches Beitrags-Passwort." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:158 +msgid "You need to define a search term to order by relevance." +msgstr "Du musst einen Suchbegriff definieren, um nach Relevanz sortieren zu können." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1452 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:86 msgid "The password for the post if it is password protected." msgstr "Das Passwort für den Beitrag, falls dieser passwortgeschützt ist." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:158 -msgid "You need to define a search term to order by relevance." -msgstr "Du musst einen Suchbegriff definieren, um nach Relevanz sortieren zu können." +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:262 +msgid "Human-readable labels for the taxonomy for various contexts." +msgstr "Visuell lesbare Kennungen der Taxonomie für verschiedene Kontexte." + +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:256 +msgid "Whether or not the taxonomy should have children." +msgstr "Ob die Taxonomie Kind-Elemente haben soll, oder nicht." + +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:250 +msgid "A human-readable description of the taxonomy." +msgstr "Eine visuell lesbare Beschreibung der Taxonomie." + +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:244 +msgid "All capabilities used by the taxonomy." +msgstr "Alle Fähigkeiten, die die Taxonomie benutzt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1227 +msgid "An alphanumeric identifier for the user." +msgstr "Eine alphanumerische Kennung für den Benutzer." #: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:287 msgid "Whether to include posts in the edit listing for their post type." @@ -1768,29 +1788,29 @@ msgstr "Ob Beiträge mit diesem Status öffentlich abfragbar sein sollen." msgid "Whether posts of this status should be shown in the front end of the site." msgstr "Ob Beiträge dieses Status im Frontend der Website angezeigt werden sollen." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1227 -msgid "An alphanumeric identifier for the user." -msgstr "Eine alphanumerische Kennung für den Benutzer." - -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:250 -msgid "A human-readable description of the taxonomy." -msgstr "Eine visuell lesbare Beschreibung der Taxonomie." - #: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:269 msgid "Whether posts with this status should be protected." msgstr "Ob Beiträge mit diesem Status passwortgeschützt sein sollen." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:262 -msgid "Human-readable labels for the taxonomy for various contexts." -msgstr "Visuell lesbare Kennungen der Taxonomie für verschiedene Kontexte." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:263 +msgid "Whether posts with this status should be private." +msgstr "Ob Beiträge mit diesem Status privat sein sollen." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:244 -msgid "All capabilities used by the taxonomy." -msgstr "Alle Fähigkeiten, die die Taxonomie benutzt." +#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:355 +msgid "Scope under which the request is made; determines fields present in response." +msgstr "Geltungsbereich der Anfrage; ermittelt in der Antwort vorhandene Felder." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:256 -msgid "Whether or not the taxonomy should have children." -msgstr "Ob die Taxonomie Kind-Elemente haben soll, oder nicht." +#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:334 +msgid "Limit results to those matching a string." +msgstr "Ergebnisse auf alle begrenzen, die mit einer Zeichenkette übereinstimmen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:325 +msgid "Maximum number of items to be returned in result set." +msgstr "Maximale Anzahl an Elementen, die im Ergebnissatz zurückgegeben werden." + +#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:317 +msgid "Current page of the collection." +msgstr "Aktuelle Seite der Sammlung." #: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:55 #: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:68 @@ -1807,47 +1827,10 @@ msgstr "Ob die Taxonomie Kind-Elemente haben soll, oder nicht." msgid "Method '%s' not implemented. Must be overridden in subclass." msgstr "Methode '%s' nicht implementiert. Muss in Unterklasse überschrieben werden." -#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:317 -msgid "Current page of the collection." -msgstr "Aktuelle Seite der Sammlung." - -#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:355 -msgid "Scope under which the request is made; determines fields present in response." -msgstr "Geltungsbereich der Anfrage; ermittelt in der Antwort vorhandene Felder." - -#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:325 -msgid "Maximum number of items to be returned in result set." -msgstr "Maximale Anzahl an Elementen, die im Ergebnissatz zurückgegeben werden." - -#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:334 -msgid "Limit results to those matching a string." -msgstr "Ergebnisse auf alle begrenzen, die mit einer Zeichenkette übereinstimmen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:263 -msgid "Whether posts with this status should be private." -msgstr "Ob Beiträge mit diesem Status privat sein sollen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1419 -msgid "Ensure result set excludes specific parent IDs." -msgstr "Stelle sicher, dass der Ergebnissatz bestimmte Eltern-IDs ausschließt." - #: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:42 msgid "The register_routes() method must be overridden" msgstr "Die register_routes()-Methode muss überschrieben werden." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1384 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2122 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:936 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1340 -msgid "Order sort attribute ascending or descending." -msgstr "Attribut für aufsteigende oder absteigende Sortierung." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1394 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2129 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1347 -msgid "Sort collection by object attribute." -msgstr "Sortiere die Sammlung nach einem Attribut des Objekts." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1445 msgid "Limit result set to comments assigned a specific type. Requires authorization." msgstr "Ergebnissatz auf Kommentare begrenzen, denen ein bestimmter Typ zugewiesen ist. Erfordert eine Autorisierung." @@ -1856,34 +1839,30 @@ msgstr "Ergebnissatz auf Kommentare begrenzen, denen ein bestimmter Typ zugewies msgid "Limit result set to comments assigned a specific status. Requires authorization." msgstr "Ergebnissatz auf Kommentare begrenzen, denen ein bestimmter Status zugewiesen ist. Erfordert eine Autorisierung." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1410 -msgid "Limit result set to comments of specific parent IDs." -msgstr "Ergebnissatz auf Kommentare bestimmter Eltern-IDs begrenzen." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1428 msgid "Limit result set to comments assigned to specific post IDs." msgstr "Ergebnissatz auf Kommentare begrenzen, die bestimmten Beitrags-IDs zugewiesen sind." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1276 -msgid "Type of Comment for the object." -msgstr "Kommentar-Typ für das Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1419 +msgid "Ensure result set excludes specific parent IDs." +msgstr "Stelle sicher, dass der Ergebnissatz bestimmte Eltern-IDs ausschließt." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1361 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2092 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:911 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1316 -msgid "Ensure result set excludes specific IDs." -msgstr "Stelle sicher, dass der Ergebnissatz bestimmte IDs ausschließt." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1410 +msgid "Limit result set to comments of specific parent IDs." +msgstr "Ergebnissatz auf Kommentare bestimmter Eltern-IDs begrenzen." -#. translators: %d: avatar image size in pixels -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1291 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1281 -msgid "Avatar URL with image size of %d pixels." -msgstr "Avatar-URL mit einer Bildgröße von %d Pixel." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1394 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2129 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1347 +msgid "Sort collection by object attribute." +msgstr "Sortiere die Sammlung nach einem Attribut des Objekts." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1299 -msgid "Avatar URLs for the object author." -msgstr "Avatar-URLs für den Objekt-Autor." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1384 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2122 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:936 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1340 +msgid "Order sort attribute ascending or descending." +msgstr "Attribut für aufsteigende oder absteigende Sortierung." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1370 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2101 @@ -1892,48 +1871,54 @@ msgstr "Avatar-URLs für den Objekt-Autor." msgid "Limit result set to specific IDs." msgstr "Ergebnissatz auf bestimmte IDs begrenzen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1361 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2092 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:911 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1316 +msgid "Ensure result set excludes specific IDs." +msgstr "Stelle sicher, dass der Ergebnissatz bestimmte IDs ausschließt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2086 +msgid "Limit response to posts published before a given ISO8601 compliant date." +msgstr "Antwort auf Beiträge einschränken, die vor einem gegebenen ISO8601-konformen Datum veröffentlicht wurden." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1349 msgid "Limit result set to that from a specific author email. Requires authorization." msgstr "Ergebnissatz begrenzen, auf den einer speziellen E-Mail-Adresse eines Autoren. Erfordert eine Autorisierung." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1332 -msgid "Limit result set to comments assigned to specific user IDs. Requires authorization." -msgstr "Ergebnissatz auf Kommentare begrenzen, denen bestimmte Benutzer-IDs zugewiesen sind. Erfordert eine Autorisierung." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1340 msgid "Ensure result set excludes comments assigned to specific user IDs. Requires authorization." msgstr "Stelle sicher, dass der Ergebnissatz Kommentare ausschließt, die einer bestimmten Benutzer-ID zugewiesen sind. Erfordert eine Autorisierung." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1332 +msgid "Limit result set to comments assigned to specific user IDs. Requires authorization." +msgstr "Ergebnissatz auf Kommentare begrenzen, denen bestimmte Benutzer-IDs zugewiesen sind. Erfordert eine Autorisierung." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2061 msgid "Limit response to posts published after a given ISO8601 compliant date." msgstr "Antwort auf Beiträge einschränken, die nach einem gegebenen ISO8601-konformen Datum veröffentlicht wurden." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2086 -msgid "Limit response to posts published before a given ISO8601 compliant date." -msgstr "Antwort auf Beiträge einschränken, die vor einem gegebenen ISO8601-konformen Datum veröffentlicht wurden." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1299 +msgid "Avatar URLs for the object author." +msgstr "Avatar-URLs für den Objekt-Autor." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1216 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1899 -msgid "The content for the object." -msgstr "Der Inhalt des Objekts." +#. translators: %d: avatar image size in pixels +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1291 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1281 +msgid "Avatar URL with image size of %d pixels." +msgstr "Avatar-URL mit einer Bildgröße von %d Pixel." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1262 -msgid "The ID of the associated post object." -msgstr "Die ID des zugeordneten Beitragsobjekts." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1276 +msgid "Type of Comment for the object." +msgstr "Kommentar-Typ für das Objekt." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1268 msgid "State of the object." msgstr "Zustand des Objekts." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1229 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1912 -msgid "HTML content for the object, transformed for display." -msgstr "HTML-Inhalt für das Objekt, transformiert für die Anzeige." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1224 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1907 -msgid "Content for the object, as it exists in the database." -msgstr "Inhalt für das Objekt, wie er in der Datenbank vorliegt." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1262 +msgid "The ID of the associated post object." +msgstr "Die ID des zugeordneten Beitragsobjekts." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1256 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1815 @@ -1946,7 +1931,46 @@ msgstr "Die Eltern-ID des Objektes." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1249 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1763 msgid "URL to the object." -msgstr "URL des Objekts." +msgstr "URL zum Objekt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1229 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1912 +msgid "HTML content for the object, transformed for display." +msgstr "HTML-Inhalt für das Objekt, transformiert für die Anzeige." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1224 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1907 +msgid "Content for the object, as it exists in the database." +msgstr "Inhalt für das Objekt, wie er in der Datenbank vorliegt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1216 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1899 +msgid "The content for the object." +msgstr "Der Inhalt des Objekts." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1208 +msgid "User agent for the object author." +msgstr "User agent für den Autor des Objekts." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1202 +msgid "URL for the object author." +msgstr "URL für den Autor des Objekts." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1194 +msgid "Display name for the object author." +msgstr "Anzeige-Name für den Autor des Objekts." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1188 +msgid "IP address for the object author." +msgstr "IP-Adresse für den Autor des Objekts." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1178 +msgid "Email address for the object author." +msgstr "E-Mail-Adresse für den Autor des Objekts." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1173 +msgid "The ID of the user object, if author was a user." +msgstr "Die ID des Objekts des Benutzers, falls der Autor ein Benutzer war." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:68 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1167 @@ -1957,6 +1981,10 @@ msgstr "URL des Objekts." msgid "Unique identifier for the object." msgstr "Eindeutige Kennung für das Objekt." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1095 +msgid "Invalid comment author ID." +msgstr "Ungültige Kommentar-Autor-ID." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:839 msgid "The comment cannot be deleted." msgstr "Der Kommentar kann nicht gelöscht werden." @@ -1965,34 +1993,6 @@ msgstr "Der Kommentar kann nicht gelöscht werden." msgid "The comment has already been trashed." msgstr "Der Kommentar wurde bereits in den Papierkorb verschoben." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1095 -msgid "Invalid comment author ID." -msgstr "Ungültige Kommentar-Autor-ID." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1173 -msgid "The ID of the user object, if author was a user." -msgstr "Die ID des Objekts des Benutzers, falls der Autor ein Benutzer war." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1178 -msgid "Email address for the object author." -msgstr "E-Mail-Adresse für den Autor des Objekts." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1202 -msgid "URL for the object author." -msgstr "URL für den Autor des Objekts." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1188 -msgid "IP address for the object author." -msgstr "IP-Adresse für den Autor des Objekts." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1194 -msgid "Display name for the object author." -msgstr "Anzeige-Name für den Autor des Objekts." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1208 -msgid "User agent for the object author." -msgstr "User agent für den Autor des Objekts." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:730 msgid "Updating comment failed." msgstr "Aktualisierung des Kommentars fehlgeschlagen." @@ -2028,11 +2028,31 @@ msgstr "Abfrage-Parameter nicht erlaubt: %s" msgid "Whether to bypass trash and force deletion." msgstr "Ob der Papierkorb umgangen werden soll und das Löschen erzwungen." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:654 +msgid "Limit result set to attachments of a particular MIME type." +msgstr "Ergebnissatz auf Anhänge eines bestimmten MIME-Typs begrenzen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:647 +msgid "Limit result set to attachments of a particular media type." +msgstr "Ergebnissatz auf Anhänge eines bestimmten Medientyps begrenzen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:531 +msgid "Could not open file handle." +msgstr "Konnte Datei-Handle nicht öffnen." + #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:515 #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:702 msgid "Content hash did not match expected." msgstr "Der Inhalts-Hashwert war nicht wie erwartet." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:506 +msgid "Invalid Content-Disposition supplied. Content-Disposition needs to be formatted as `attachment; filename=\"image.png\"` or similar." +msgstr "Ungültige Content-Disposition bereitgestellt. Die Content-Disposition muss mit `attachment; filename=\"image.png\"` oder ähnlichem formatiert werden. " + +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:500 +msgid "No Content-Disposition supplied." +msgstr "Keine Content-Disposition bereitgestellt." + #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:496 msgid "No Content-Type supplied." msgstr "Kein Inhaltstyp bereitgestellt." @@ -2042,37 +2062,17 @@ msgstr "Kein Inhaltstyp bereitgestellt." msgid "No data supplied." msgstr "Keine Daten bereitgestellt." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:500 -msgid "No Content-Disposition supplied." -msgstr "Keine Content-Disposition bereitgestellt." - -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:506 -msgid "Invalid Content-Disposition supplied. Content-Disposition needs to be formatted as `attachment; filename=\"image.png\"` or similar." -msgstr "Ungültige Content-Disposition bereitgestellt. Die Content-Disposition muss mit `attachment; filename=\"image.png\"` oder ähnlichem formatiert werden. " - -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:531 -msgid "Could not open file handle." -msgstr "Konnte Datei-Handle nicht öffnen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:654 -msgid "Limit result set to attachments of a particular MIME type." -msgstr "Ergebnissatz auf Anhänge eines bestimmten MIME-Typs begrenzen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:647 -msgid "Limit result set to attachments of a particular media type." -msgstr "Ergebnissatz auf Anhänge eines bestimmten Medientyps begrenzen." - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:462 msgid "The ID for the associated post of the attachment." msgstr "Die ID des Beitrags, der dem Anhang zugeordnet ist." -#: wp-includes/post.php:1384 -msgid "Page Attributes" -msgstr "Seiten-Attribute" +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:455 +msgid "Details about the media file, specific to its type." +msgstr "Details zur Mediendatei, konkret zu ihrem Typ." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:75 -msgid "Sorry, you are not allowed to upload media on this site." -msgstr "Du bist leider nicht berechtigt, Medien auf diese Website hochzuladen." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:387 +msgid "Alternative text to display when attachment is not displayed." +msgstr "Alternativer Text, der anzeigt wird, wenn der Anhang nicht angezeigt wird." #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:103 #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:210 @@ -2083,18 +2083,18 @@ msgstr "Ungültiger Eltern-Typ." msgid "Sorry, you are not allowed to upload media to this post." msgstr "Du bist leider nicht berechtigt, Medien zu diesem Beitrag hochzuladen." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:455 -msgid "Details about the media file, specific to its type." -msgstr "Details zur Mediendatei, konkret zu ihrem Typ." - -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:387 -msgid "Alternative text to display when attachment is not displayed." -msgstr "Alternativer Text, der anzeigt wird, wenn der Anhang nicht angezeigt wird." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:75 +msgid "Sorry, you are not allowed to upload media on this site." +msgstr "Du bist leider nicht berechtigt, Medien auf diese Website hochzuladen." #: wp-includes/rest-api/class-wp-rest-server.php:272 msgid "The REST API can no longer be completely disabled, the rest_authentication_errors filter can be used to restrict access to the API, instead." msgstr "Die REST API kann nicht mehr länger komplett deaktiviert werden; stattdessen kann aber der \"rest_authentication_errors\" Filter genutzt werden, um den Zugriff zur API einzuschränken." +#: wp-includes/post.php:1384 +msgid "Page Attributes" +msgstr "Seiten-Attribute" + #: wp-includes/post.php:1384 msgid "Post Attributes" msgstr "Beitrags-Attribute" @@ -2107,53 +2107,50 @@ msgstr "Seiten ansehen" msgid "View Posts" msgstr "Beiträge ansehen" -#: wp-includes/post.php:160 -msgid "Add New Changeset" -msgstr "Neues Änderungs-Set hinzufügen" +#: wp-includes/post.php:167 +msgid "No changesets found in Trash." +msgstr "Keine Änderungs-Sets im Papierkorb gefunden." -#: wp-includes/post.php:161 -msgid "New Changeset" -msgstr "Neues Änderungs-Set" +#: wp-includes/post.php:166 +msgid "No changesets found." +msgstr "Keine Änderungs-Sets gefunden." -#: wp-includes/post.php:162 -msgid "Edit Changeset" -msgstr "Änderungs-Set bearbeiten" - -#: wp-includes/post.php:163 -msgid "View Changeset" -msgstr "Änderungs-Set anzeigen" +#: wp-includes/post.php:165 +msgid "Search Changesets" +msgstr "Änderungs-Sets suchen" #: wp-includes/post.php:164 msgid "All Changesets" msgstr "Alle Änderungs-Sets" -#: wp-includes/post.php:165 -msgid "Search Changesets" -msgstr "Änderungs-Sets suchen" - -#: wp-includes/post.php:166 -msgid "No changesets found." -msgstr "Keine Änderungs-Sets gefunden." +#: wp-includes/post.php:163 +msgid "View Changeset" +msgstr "Änderungs-Set anzeigen" -#: wp-includes/post.php:167 -msgid "No changesets found in Trash." -msgstr "Keine Änderungs-Sets im Papierkorb gefunden." +#: wp-includes/post.php:162 +msgid "Edit Changeset" +msgstr "Änderungs-Set bearbeiten" -#: wp-includes/post.php:69 -msgid "Attachment Attributes" -msgstr "Anhangs-Attribute" +#: wp-includes/post.php:161 +msgid "New Changeset" +msgstr "Neues Änderungs-Set" -#: wp-includes/post.php:126 wp-includes/post.php:127 -msgid "Custom CSS" -msgstr "Individuelles CSS" +#: wp-includes/post.php:160 +msgid "Add New Changeset" +msgstr "Neues Änderungs-Set hinzufügen" #: wp-includes/post.php:159 msgctxt "Customize Changeset" msgid "Add New" msgstr "Neu hinzufügen" -#: wp-includes/post.php:155 -msgctxt "post type general name" +#: wp-includes/post.php:158 +msgctxt "add new on admin bar" +msgid "Changeset" +msgstr "Änderungs-Set" + +#: wp-includes/post.php:157 +msgctxt "admin menu" msgid "Changesets" msgstr "Änderungs-Sets" @@ -2162,15 +2159,18 @@ msgctxt "post type singular name" msgid "Changeset" msgstr "Änderungs-Set" -#: wp-includes/post.php:157 -msgctxt "admin menu" +#: wp-includes/post.php:155 +msgctxt "post type general name" msgid "Changesets" msgstr "Änderungs-Sets" -#: wp-includes/post.php:158 -msgctxt "add new on admin bar" -msgid "Changeset" -msgstr "Änderungs-Set" +#: wp-includes/post.php:126 wp-includes/post.php:127 +msgid "Custom CSS" +msgstr "Individuelles CSS" + +#: wp-includes/post.php:69 +msgid "Attachment Attributes" +msgstr "Anhangs-Attribute" #. translators: post revision title: 1: author avatar, 2: author name, 3: time #. ago, 4: date @@ -2178,10 +2178,6 @@ msgstr "Änderungs-Set" msgid "%1$s %2$s, %3$s ago (%4$s)" msgstr "%1$s %2$s vor %3$s (%4$s)" -#: wp-includes/option.php:1853 -msgid "Allow people to post comments on new articles." -msgstr "Erlaube Besuchern, neue Beiträge zu kommentieren." - #. translators: %s: misc #. translators: %s: privacy #. translators: %s: misc @@ -2191,79 +2187,83 @@ msgstr "Erlaube Besuchern, neue Beiträge zu kommentieren." msgid "The \"%s\" options group has been removed. Use another settings group." msgstr "Die Optionsgruppe „%s“ wurde entfernt. Verwende eine andere Einstellungsgruppe." -#: wp-includes/option.php:1806 -msgid "WordPress locale code." -msgstr "WordPress-Ländercode." - -#: wp-includes/option.php:1813 -msgid "Convert emoticons like :-) and :-P to graphics on display." -msgstr "Emoticons wie :-) und :-P als Grafiken anzeigen." - -#: wp-includes/option.php:1792 -msgid "A time format for all time strings." -msgstr "Ein Zeitformat für alle zeitbasierten Zeichenfolgen." - -#: wp-includes/option.php:1786 -msgid "A date format for all date strings." -msgstr "Ein Zeitformat für alle datumsbasierten Zeichenfolgen." +#: wp-includes/option.php:1853 +msgid "Allow people to post comments on new articles." +msgstr "Besuchern erlauben, neue Beiträge zu kommentieren." #: wp-includes/option.php:1843 msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles." msgstr "Ermögliche Link-Benachrichtigungen von anderen Blogs (Pingbacks und Trackbacks) zu neuen Beiträgen. " +#: wp-includes/option.php:1832 +msgid "Blog pages show at most." +msgstr "Maximal angezeigte Beiträge." + #: wp-includes/option.php:1826 msgid "Default post format." msgstr "Standard-Beitragsformat." +#: wp-includes/option.php:1813 +msgid "Convert emoticons like :-) and :-P to graphics on display." +msgstr "Emoticons wie :-) und :-P als Grafiken anzeigen." + +#: wp-includes/option.php:1806 +msgid "WordPress locale code." +msgstr "WordPress-Ländercode." + #: wp-includes/option.php:1798 msgid "A day number of the week that the week should start on." msgstr "Die Zahl eines Wochentages, mit dem die Woche beginnen sollte." -#: wp-includes/option.php:1832 -msgid "Blog pages show at most." -msgstr "Maximal angezeigte Beiträge." +#: wp-includes/option.php:1792 +msgid "A time format for all time strings." +msgstr "Ein Zeitformat für alle zeitbasierten Zeichenfolgen." + +#: wp-includes/option.php:1786 +msgid "A date format for all date strings." +msgstr "Ein Zeitformat für alle datumsbasierten Zeichenfolgen." #: wp-includes/option.php:1780 msgid "A city in the same timezone as you." msgstr "Eine Stadt in deiner Zeitzone." -#: wp-includes/general-template.php:408 wp-login.php:538 wp-login.php:902 -msgid "Username or Email Address" -msgstr "Benutzername oder E-Mail-Adresse" - #: wp-includes/option.php:1738 msgid "Site title." msgstr "Website-Titel." -#: wp-includes/link-template.php:2534 -msgctxt "previous set of posts" -msgid "Previous" -msgstr "Vorherige" +#: wp-includes/media.php:3535 +msgid "Search media items..." +msgstr "Medien suchen …" #: wp-includes/link-template.php:2535 msgctxt "next set of posts" msgid "Next" msgstr "Nächste" -#: wp-includes/media.php:3535 -msgid "Search media items..." -msgstr "Medien suchen …" +#: wp-includes/link-template.php:2534 +msgctxt "previous set of posts" +msgid "Previous" +msgstr "Vorherige" + +#: wp-includes/general-template.php:408 wp-login.php:538 wp-login.php:902 +msgid "Username or Email Address" +msgstr "Benutzername oder E-Mail-Adresse" #: wp-includes/customize/class-wp-customize-selective-refresh.php:207 msgid "Click to edit this element." msgstr "Klick, zum Bearbeiten dieses Elements." -#: wp-includes/customize/class-wp-customize-selective-refresh.php:204 -msgid "Click to edit this menu." -msgstr "Klick, zum Bearbeiten des Menüs." +#: wp-includes/customize/class-wp-customize-selective-refresh.php:206 +msgid "Click to edit the site title." +msgstr "Klick, zum Bearbeiten des Website-Titels." #: wp-includes/customize/class-wp-customize-selective-refresh.php:205 msgid "Click to edit this widget." msgstr "Klick, zum Bearbeiten des Widgets." -#: wp-includes/customize/class-wp-customize-selective-refresh.php:206 -msgid "Click to edit the site title." -msgstr "Klick, zum Bearbeiten des Website-Titels." +#: wp-includes/customize/class-wp-customize-selective-refresh.php:204 +msgid "Click to edit this menu." +msgstr "Klick, zum Bearbeiten des Menüs." #: wp-includes/customize/class-wp-customize-header-image-control.php:176 msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, we recommend matching the size of your video." @@ -2282,6 +2282,10 @@ msgstr "Markup ist in CSS nicht erlaubt." msgid "Sorry, your entry could not be edited." msgstr "Dein Eintrag konnte leider nicht bearbeitet werden." +#: wp-includes/class-wp-xmlrpc-server.php:3500 +msgid "Sorry, the comment could not be edited." +msgstr "Der Kommentar konnte leider nicht bearbeitet werden." + #: wp-includes/class-wp-xmlrpc-server.php:2518 msgid "Invalid role." msgstr "Ungültige Benutzerrolle." @@ -2301,10 +2305,6 @@ msgstr "Du bist leider nicht berechtigt, diesen Begriff zu löschen." msgid "Sorry, you are not allowed to edit this term." msgstr "Du bist leider nicht berechtigt, diesen Begriff zu bearbeiten." -#: wp-includes/class-wp-xmlrpc-server.php:3500 -msgid "Sorry, the comment could not be edited." -msgstr "Der Kommentar konnte leider nicht bearbeitet werden." - #: wp-includes/class-wp-xmlrpc-server.php:1944 msgid "Sorry, your term could not be created." msgstr "Der Begriff konnte leider nicht erstellt werden." @@ -2315,15 +2315,6 @@ msgstr "Der Begriff konnte leider nicht erstellt werden." msgid "Sorry, your entry could not be posted." msgstr "Dein Eintrag konnte leider nicht veröffentlicht werden." -#: wp-includes/class-wp-customize-nav-menus.php:878 -msgid "Post" -msgstr "Beitrag" - -#. translators: %1$s is the post type name and %2$s is the error message. -#: wp-includes/class-wp-customize-nav-menus.php:883 -msgid "%1$s could not be created: %2$s" -msgstr "%1$s konnte nicht erstellt werden: %2$s" - #: wp-includes/class-wp-customize-widgets.php:799 #: wp-includes/class-wp-customize-widgets.php:854 msgid "No widgets found." @@ -2334,6 +2325,15 @@ msgstr "Keine Widgets gefunden." msgid "Number of widgets found: %d" msgstr "Anzahl gefundener Widgets: %d" +#. translators: %1$s is the post type name and %2$s is the error message. +#: wp-includes/class-wp-customize-nav-menus.php:883 +msgid "%1$s could not be created: %2$s" +msgstr "%1$s konnte nicht erstellt werden: %2$s" + +#: wp-includes/class-wp-customize-nav-menus.php:878 +msgid "Post" +msgstr "Beitrag" + #. translators: 1: .mp4, 2: .mov #: wp-includes/class-wp-customize-manager.php:4379 msgid "Only %1$s or %2$s files may be used for header video. Please convert your video file and try again, or, upload your video to YouTube and link it with the option below." @@ -2347,15 +2347,6 @@ msgstr "Die Video-Datei ist zu groß, um sie als Header-Video zu verwenden. Vers msgid "Unrecognized background setting." msgstr "Nicht erkannte Hintergrund-Einstellung." -#: wp-includes/class-wp-customize-manager.php:4211 -msgid "Additional CSS" -msgstr "Zusätzliches CSS" - -#. translators: accessibility text -#: wp-includes/class-wp-customize-manager.php:4219 -msgid "(opens in a new window)" -msgstr "(Link öffnet in neuem Tab/Fenster)" - #: wp-includes/class-wp-customize-manager.php:4324 #: wp-includes/class-wp-customize-manager.php:4328 msgid "Invalid value for background size." @@ -2369,14 +2360,14 @@ msgstr "Ungültiger Wert für Y-Position des Hintergrunds." msgid "Invalid value for background position X." msgstr "Ungültiger Wert für X-Position des Hintergrunds." +#: wp-includes/class-wp-customize-manager.php:4312 +msgid "Invalid value for background attachment." +msgstr "Ungültiger Wert für das Verhalten des Hintergrunds." + #: wp-includes/class-wp-customize-manager.php:4308 msgid "Invalid value for background repeat." msgstr "Ungültiger Wert für Wiederholung des Hintergrunds." -#: wp-includes/class-wp-customize-manager.php:4217 -msgid "Learn more about CSS" -msgstr "Mehr über CSS erfahren (engl.)" - #: wp-includes/class-wp-customize-manager.php:4225 msgid "" "You can add your own CSS here.\n" @@ -2387,18 +2378,31 @@ msgstr "" "\n" "Klicke auf das Hilfe-Symbol oben, um mehr zu erfahren." -#: wp-includes/class-wp-customize-manager.php:4312 -msgid "Invalid value for background attachment." -msgstr "Ungültiger Wert für das Verhalten des Hintergrunds." +#. translators: accessibility text +#: wp-includes/class-wp-customize-manager.php:4219 +msgid "(opens in a new window)" +msgstr "(Link öffnet in neuem Tab/Fenster)" -#: wp-includes/class-wp-customize-manager.php:4117 -msgid "Original" -msgstr "Original" +#: wp-includes/class-wp-customize-manager.php:4217 +msgid "Learn more about CSS" +msgstr "Mehr über CSS erfahren (engl.)" + +#: wp-includes/class-wp-customize-manager.php:4211 +msgid "Additional CSS" +msgstr "Zusätzliches CSS" #: wp-includes/class-wp-customize-manager.php:4142 msgid "Scroll with Page" msgstr "Mit Seite mitscrollen" +#: wp-includes/class-wp-customize-manager.php:4130 +msgid "Repeat Background Image" +msgstr "Hintergrundbild wiederholen" + +#: wp-includes/class-wp-customize-manager.php:4117 +msgid "Original" +msgstr "Original" + #: wp-includes/class-wp-customize-manager.php:4113 msgid "Image Size" msgstr "Bildgröße" @@ -2408,38 +2412,34 @@ msgstr "Bildgröße" msgid "Image Position" msgstr "Bildposition" -#: wp-includes/class-wp-customize-manager.php:4130 -msgid "Repeat Background Image" -msgstr "Hintergrundbild wiederholen" +#: wp-includes/class-wp-customize-manager.php:4081 +msgctxt "Custom Preset" +msgid "Custom" +msgstr "Benutzerdefiniert" #: wp-includes/class-wp-customize-manager.php:4080 msgctxt "Repeat Image" msgid "Repeat" msgstr "Wiederholen" -#: wp-includes/class-wp-customize-manager.php:4081 -msgctxt "Custom Preset" -msgid "Custom" -msgstr "Benutzerdefiniert" - #: wp-includes/class-wp-customize-manager.php:4079 #: wp-includes/class-wp-customize-manager.php:4118 msgid "Fit to Screen" msgstr "Bildschirmpassend" -#: wp-includes/class-wp-customize-manager.php:4013 -msgid "Header Video" -msgstr "Header-Video" +#: wp-includes/class-wp-customize-manager.php:4077 +msgctxt "Default Preset" +msgid "Default" +msgstr "Standard" #: wp-includes/class-wp-customize-manager.php:4073 msgctxt "Background Preset" msgid "Preset" msgstr "Voreinstellung" -#: wp-includes/class-wp-customize-manager.php:4077 -msgctxt "Default Preset" -msgid "Default" -msgstr "Standard" +#: wp-includes/class-wp-customize-manager.php:4013 +msgid "Header Video" +msgstr "Header-Video" #. translators: 1: .mp4, 2: header height in pixels #: wp-includes/class-wp-customize-manager.php:3960 @@ -2451,35 +2451,22 @@ msgstr "Lade dein Video im %1$s-Format hoch und minimiere die Größe, um das be msgid "Upload your video in %1$s format and minimize its file size for best results. Your theme recommends a width of %2$s pixels." msgstr "Lade dein Video im %1$s-Format hoch und minimiere die Größe, um das beste Ergebnis zu erhalten. Dein Theme empfiehlt eine Breite von %2$s Pixel." -#: wp-includes/class-wp-customize-manager.php:3935 -msgid "If you add a video, the image will be used as a fallback while the video loads." -msgstr "Falls du ein Video hinzufügst, wird das Bild während des Ladens des Videos als Platzhalter benutzt." - #. translators: 1: .mp4, 2: header size in pixels #: wp-includes/class-wp-customize-manager.php:3946 msgid "Upload your video in %1$s format and minimize its file size for best results. Your theme recommends dimensions of %2$s pixels." msgstr "Lade dein Video im %1$s-Format hoch und minimiere die Größe, um das beste Ergebnis zu erhalten. Dein Theme empfiehlt eine Größe von %2$s Pixel." -#: wp-includes/class-wp-customize-manager.php:2019 -msgid "Setting does not exist or is unrecognized." -msgstr "Einstellung existiert nicht oder wird nicht erkannt." +#: wp-includes/class-wp-customize-manager.php:3935 +msgid "If you add a video, the image will be used as a fallback while the video loads." +msgstr "Falls du ein Video hinzufügst, wird das Bild während des Ladens des Videos als Platzhalter benutzt." #: wp-includes/class-wp-customize-manager.php:2024 msgid "Unauthorized to modify setting due to capability." msgstr "Aufgrund der Benutzerrechte nicht autorisiert, die Einstellung zu verändern." -#. translators: %s: current user's display name -#: wp-includes/admin-bar.php:217 -msgid "Howdy, %s" -msgstr "Willkommen, %s" - -#: wp-includes/class-wp-customize-control.php:623 -msgid "New page title" -msgstr "Titel der neuen Seite" - -#: wp-includes/class-wp-customize-control.php:624 -msgid "New page title…" -msgstr "Titel der neuen Seite …" +#: wp-includes/class-wp-customize-manager.php:2019 +msgid "Setting does not exist or is unrecognized." +msgstr "Einstellung existiert nicht oder wird nicht erkannt." #: wp-includes/class-wp-customize-manager.php:1812 msgid "This form is not live-previewable." @@ -2493,18 +2480,31 @@ msgstr "Dieser Link lässt sich nicht in einer Live-Vorschau ansehen." msgid "Unauthorized. You may remove the customize_messenger_channel param to preview as frontend." msgstr "Nicht berechtigt. Du könntest den Parameter customize_messenger_channel entfernen, um eine Vorschau als Frontend zu erhalten." -#: wp-includes/IXR/class-IXR-message.php:48 wp-includes/atomlib.php:151 -#: wp-includes/feed.php:542 -msgid "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." -msgstr "Die XML-Erweiterung für PHP ist nicht verfügbar. Nimm Kontakt zum Support deines Webhostings auf und bitte darum, dass die XML-Erweiterung für PHP aktiviert wird." - +#: wp-includes/class-wp-customize-manager.php:513 +msgid "Non-existent changeset UUID." +msgstr "Nicht vorhandene Änderungs-Set-UUID." + #: wp-includes/class-wp-customize-manager.php:486 msgid "Invalid changeset UUID" msgstr "Ungültige Änderungs-Set-UUID." -#: wp-includes/class-wp-customize-manager.php:513 -msgid "Non-existent changeset UUID." -msgstr "Nicht vorhandene Änderungs-Set-UUID." +#: wp-includes/class-wp-customize-control.php:624 +msgid "New page title…" +msgstr "Titel der neuen Seite …" + +#: wp-includes/class-wp-customize-control.php:623 +msgid "New page title" +msgstr "Titel der neuen Seite" + +#: wp-includes/IXR/class-IXR-message.php:48 wp-includes/atomlib.php:151 +#: wp-includes/feed.php:542 +msgid "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." +msgstr "Die XML-Erweiterung für PHP ist nicht verfügbar. Nimm Kontakt zum Support deines Webhostings auf und bitte darum, dass die XML-Erweiterung für PHP aktiviert wird." + +#. translators: %s: current user's display name +#: wp-includes/admin-bar.php:217 +msgid "Howdy, %s" +msgstr "Willkommen, %s" #: wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 msgid "Edit selected menu" @@ -2526,38 +2526,38 @@ msgstr "Rich-Text-Bereich. Drücke Control + Option + H für Hilfe." msgid "Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds." msgstr "Benutze die Pfeiltasten Links/Rechts, um 1 Sekunde vorzuspringen, und die Pfeiltasten Hoch/Runter, um 10 Sekunden vorzuspringen." -#: wp-includes/script-loader.php:357 wp-includes/theme.php:1396 -msgid "Play" -msgstr "Abspielen" +#: wp-includes/script-loader.php:370 +msgid "Use Up/Down Arrow keys to increase or decrease volume." +msgstr "Pfeiltasten Hoch/Runter benutzen, um die Lautstärke zu regeln." -#: wp-includes/script-loader.php:358 wp-includes/theme.php:1395 -msgid "Pause" -msgstr "Pause" +#: wp-includes/script-loader.php:366 +msgid "Volume Slider" +msgstr "Lautstärkeregler" + +#: wp-includes/script-loader.php:365 +msgid "Audio Player" +msgstr "Audio-Player" + +#: wp-includes/script-loader.php:364 +msgid "Video Player" +msgstr "Video-Player" #. translators: %1: number of seconds (30 by default) #: wp-includes/script-loader.php:363 msgid "Skip back %1 seconds" msgstr "%1 Sekunde(n) zurück springen" -#: wp-includes/script-loader.php:366 -msgid "Volume Slider" -msgstr "Lautstärkeregler" - -#: wp-includes/script-loader.php:370 -msgid "Use Up/Down Arrow keys to increase or decrease volume." -msgstr "Pfeiltasten Hoch/Runter benutzen, um die Lautstärke zu regeln." - #: wp-includes/script-loader.php:361 msgid "Time Slider" msgstr "Zeit-Schieberegler" -#: wp-includes/script-loader.php:364 -msgid "Video Player" -msgstr "Video-Player" +#: wp-includes/script-loader.php:358 wp-includes/theme.php:1395 +msgid "Pause" +msgstr "Pause" -#: wp-includes/script-loader.php:365 -msgid "Audio Player" -msgstr "Audio-Player" +#: wp-includes/script-loader.php:357 wp-includes/theme.php:1396 +msgid "Play" +msgstr "Abspielen" #: wp-includes/taxonomy.php:1970 wp-includes/taxonomy.php:2596 msgid "A name is required for this term." @@ -2567,48 +2567,47 @@ msgstr "Für diesen Begriff ist ein Name erforderlich." msgid "Inexistent terms." msgstr "Nicht vorhandene Begriffe." -#. translators: %s: Activation URL -#: wp-includes/script-loader.php:694 -msgid "Importer installed successfully. <a href=\"%s\">Run importer</a>" -msgstr "Importer erfolgreich installiert. <a href=\"%s\">Importer ausführen</a>." +#. translators: %s: Importer name +#: wp-includes/script-loader.php:715 +msgid "Run %s" +msgstr "Ausführen von %s" #: wp-includes/script-loader.php:713 msgid "Run Importer" msgstr "Importer ausführen" -#. translators: %s: Importer name -#: wp-includes/script-loader.php:715 -msgid "Run %s" -msgstr "Ausführen von %s" +#. translators: %s: Activation URL +#: wp-includes/script-loader.php:694 +msgid "Importer installed successfully. <a href=\"%s\">Run importer</a>" +msgstr "Importer erfolgreich installiert. <a href=\"%s\">Importer ausführen</a>." #: wp-includes/script-loader.php:712 msgctxt "theme" msgid "Activate %s" msgstr "Aktiviere %s" -#. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:680 -msgctxt "plugin" -msgid "Installing %s..." -msgstr "Installiere %s..." - -#. translators: %s: Theme name and version -#: wp-includes/script-loader.php:682 +#. translators: %s: Theme name +#: wp-includes/script-loader.php:712 msgctxt "theme" -msgid "Installing %s..." -msgstr "Installiere %s..." +msgid "Network Activate %s" +msgstr "%s netzwerkweit aktivieren" -#. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:684 +#: wp-includes/script-loader.php:710 msgctxt "plugin" -msgid "%s installed!" -msgstr "%s installiert!" +msgid "Activate %s" +msgstr "Aktiviere %s" + +#. translators: %s: Plugin name +#: wp-includes/script-loader.php:710 +msgctxt "plugin" +msgid "Network Activate %s" +msgstr "%s netzwerkweit aktivieren" #. translators: %s: Theme name and version -#: wp-includes/script-loader.php:686 +#: wp-includes/script-loader.php:690 msgctxt "theme" -msgid "%s installed!" -msgstr "%s installiert!" +msgid "%s installation failed" +msgstr "%s Installation fehlgeschlagen" #. translators: %s: Plugin name and version #: wp-includes/script-loader.php:688 @@ -2617,27 +2616,28 @@ msgid "%s installation failed" msgstr "%s Installation fehlgeschlagen" #. translators: %s: Theme name and version -#: wp-includes/script-loader.php:690 +#: wp-includes/script-loader.php:686 msgctxt "theme" -msgid "%s installation failed" -msgstr "%s Installation fehlgeschlagen" +msgid "%s installed!" +msgstr "%s installiert!" -#: wp-includes/script-loader.php:710 +#. translators: %s: Plugin name and version +#: wp-includes/script-loader.php:684 msgctxt "plugin" -msgid "Activate %s" -msgstr "Aktiviere %s" +msgid "%s installed!" +msgstr "%s installiert!" -#. translators: %s: Theme name -#: wp-includes/script-loader.php:712 +#. translators: %s: Theme name and version +#: wp-includes/script-loader.php:682 msgctxt "theme" -msgid "Network Activate %s" -msgstr "%s netzwerkweit aktivieren" +msgid "Installing %s..." +msgstr "Installiere %s..." -#. translators: %s: Plugin name -#: wp-includes/script-loader.php:710 +#. translators: %s: Plugin name and version +#: wp-includes/script-loader.php:680 msgctxt "plugin" -msgid "Network Activate %s" -msgstr "%s netzwerkweit aktivieren" +msgid "Installing %s..." +msgstr "Installiere %s..." #: wp-includes/class-wp-xmlrpc-server.php:4457 msgid "Sorry, you are not allowed to access user data on this site." @@ -2647,20 +2647,20 @@ msgstr "Du bist leider nicht berechtigt, auf Benutzerdaten dieser Website zuzugr msgid "Number of plugins found: %d" msgstr "Anzahl gefundener Plugins: %d" -#: wp-includes/class-wp-xmlrpc-server.php:2444 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:574 -msgid "Sorry, you are not allowed to edit this user." -msgstr "Du bist leider nicht berechtigt, diesen Benutzer zu bearbeiten." +#: wp-includes/class-wp-xmlrpc-server.php:2732 +#: wp-includes/class-wp-xmlrpc-server.php:2934 +msgid "Sorry, you are not allowed to edit pages." +msgstr "Du bist leider nicht berechtigt, Seiten zu bearbeiten." #: wp-includes/class-wp-xmlrpc-server.php:2575 #: wp-includes/class-wp-xmlrpc-server.php:2621 msgid "Sorry, you are not allowed to edit your profile." msgstr "Du bist leider nicht berechtigt, dein Profil zu bearbeiten." -#: wp-includes/class-wp-xmlrpc-server.php:2732 -#: wp-includes/class-wp-xmlrpc-server.php:2934 -msgid "Sorry, you are not allowed to edit pages." -msgstr "Du bist leider nicht berechtigt, Seiten zu bearbeiten." +#: wp-includes/class-wp-xmlrpc-server.php:2444 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:574 +msgid "Sorry, you are not allowed to edit this user." +msgstr "Du bist leider nicht berechtigt, diesen Benutzer zu bearbeiten." #. translators: If comment number in your language requires declension, #. translate this to 'on'. Do not translate into your own language. @@ -2669,39 +2669,48 @@ msgctxt "Comment number declension: on or off" msgid "off" msgstr "off" -#: wp-includes/class-wp-theme.php:804 -msgid "Dark" -msgstr "Dunkel" +#: wp-includes/class-wp-theme.php:807 +msgid "Seasonal" +msgstr "Jahreszeitlich" -#: wp-includes/class-wp-theme.php:803 -msgid "Tan" -msgstr "Hellbraun" +#: wp-includes/class-wp-theme.php:807 +msgid "Photoblogging" +msgstr "Foto-Blog" -#: wp-includes/class-wp-theme.php:805 -msgid "Fixed Layout" -msgstr "Festes Layout" +#: wp-includes/class-wp-theme.php:806 +msgid "Responsive Layout" +msgstr "Responsives Layout" #: wp-includes/class-wp-theme.php:805 msgid "Fluid Layout" msgstr "Fließendes Layout" -#: wp-includes/class-wp-theme.php:806 -msgid "Responsive Layout" -msgstr "Responsives Layout" +#: wp-includes/class-wp-theme.php:805 +msgid "Fixed Layout" +msgstr "Festes Layout" -#: wp-includes/class-wp-theme.php:807 -msgid "Seasonal" -msgstr "Jahreszeitlich" +#: wp-includes/class-wp-theme.php:804 +msgid "Dark" +msgstr "Dunkel" -#: wp-includes/class-wp-theme.php:807 -msgid "Photoblogging" -msgstr "Foto-Blog" +#: wp-includes/class-wp-theme.php:803 +msgid "Tan" +msgstr "Hellbraun" #. translators: %s: Error string for a failed installation #: wp-includes/script-loader.php:678 msgid "Installation failed: %s" msgstr "Installation fehlgeschlagen: %s" +#: wp-includes/class-wp-xmlrpc-server.php:2691 +#: wp-includes/class-wp-xmlrpc-server.php:2888 +msgid "Sorry, you are not allowed to edit this page." +msgstr "Du bist leider nicht berechtigt, diese Seite zu bearbeiten." + +#: wp-includes/class-wp-xmlrpc-server.php:2826 +msgid "Sorry, you are not allowed to delete this page." +msgstr "Du bist leider nicht berechtigt, diese Seite zu löschen." + #: wp-includes/class-wp-xmlrpc-server.php:1663 #: wp-includes/class-wp-xmlrpc-server.php:4800 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:763 @@ -2709,28 +2718,25 @@ msgstr "Installation fehlgeschlagen: %s" msgid "Sorry, you are not allowed to delete this post." msgstr "Du bist leider nicht berechtigt, diesen Beitrag zu löschen." -#: wp-includes/class-wp-xmlrpc-server.php:2826 -msgid "Sorry, you are not allowed to delete this page." -msgstr "Du bist leider nicht berechtigt, diese Seite zu löschen." +#. translators: %s: site title +#: wp-login.php:230 +msgctxt "site" +msgid "← Back to %s" +msgstr "← Zurück zu %s" -#: wp-includes/class-wp-xmlrpc-server.php:2691 -#: wp-includes/class-wp-xmlrpc-server.php:2888 -msgid "Sorry, you are not allowed to edit this page." -msgstr "Du bist leider nicht berechtigt, diese Seite zu bearbeiten." +#: wp-includes/wp-db.php:1801 wp-includes/wp-db.php:1807 +msgid "Unable to retrieve the error message from MySQL" +msgstr "Kann die Fehlermeldung von MySQL nicht abrufen" + +#: wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 +#: wp-includes/widgets/class-wp-nav-menu-widget.php:153 +msgid "Edit Menu" +msgstr "Menü bearbeiten" #: wp-includes/script-loader.php:987 msgid "Today" msgstr "Heute" -#. translators: %s: Error string for a failed deletion -#: wp-includes/script-loader.php:703 -msgid "Deletion failed: %s" -msgstr "Löschen fehlgeschlagen: %s" - -#: wp-includes/script-loader.php:701 -msgid "Deleting..." -msgstr "Löschen …" - #: wp-includes/class-wp-xmlrpc-server.php:3631 #: wp-includes/script-loader.php:716 msgid "An unknown error occurred" @@ -2740,84 +2746,54 @@ msgstr "Ein unbekannter Fehler ist aufgetreten" msgid "Network Activate" msgstr "Netzwerkweit aktivieren" -#. translators: %s: site title -#: wp-login.php:230 -msgctxt "site" -msgid "← Back to %s" -msgstr "← Zurück zu %s" +#. translators: %s: Error string for a failed deletion +#: wp-includes/script-loader.php:703 +msgid "Deletion failed: %s" +msgstr "Löschen fehlgeschlagen: %s" + +#: wp-includes/script-loader.php:701 +msgid "Deleting..." +msgstr "Löschen …" + +#: wp-includes/script-loader.php:700 +msgid "Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?" +msgstr "Achtung: Diese Themes können auf anderen Websites des Netzwerks aktiv sein. Bist du sicher, dass du fortfahren möchtest?" #: wp-includes/script-loader.php:699 msgid "Are you sure you want to delete the selected plugins and their data?" msgstr "Bist du sicher, dass du die ausgewählten Plugins und deren Daten löschen möchtest?" -#: wp-includes/wp-db.php:1801 wp-includes/wp-db.php:1807 -msgid "Unable to retrieve the error message from MySQL" -msgstr "Kann die Fehlermeldung von MySQL nicht abrufen" - #. translators: %s: Plugin name #: wp-includes/script-loader.php:698 msgid "Are you sure you want to delete %s and its data?" msgstr "Bist du sicher, dass du %s und die dazugehörigen Daten löschen möchtest?" -#: wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 -#: wp-includes/widgets/class-wp-nav-menu-widget.php:153 -msgid "Edit Menu" -msgstr "Menü bearbeiten" - -#: wp-includes/script-loader.php:700 -msgid "Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?" -msgstr "Achtung: Diese Themes können auf anderen Websites des Netzwerks aktiv sein. Bist du sicher, dass du fortfahren möchtest?" - -#: wp-includes/script-loader.php:676 -msgid "Install Failed!" -msgstr "Installation fehlgeschlagen!" - #. translators: %s: Theme name #: wp-includes/script-loader.php:696 msgid "Are you sure you want to delete %s?" msgstr "Möchtest du %s wirklich löschen?" +#: wp-includes/script-loader.php:676 +msgid "Install Failed!" +msgstr "Installation fehlgeschlagen!" + #: wp-includes/script-loader.php:651 msgid "Update Now" msgstr "Jetzt aktualisieren" -#. translators: %s: user name -#: wp-includes/pluggable.php:1746 -msgid "Password changed for user: %s" -msgstr "Passwort geändert für Benutzer: %s" - -#. translators: %s: site title -#: wp-includes/pluggable.php:1751 -msgid "[%s] Password Changed" -msgstr "[%s] Passwort geändert" - #: wp-includes/script-loader.php:646 msgid "Please select at least one item to perform this action on." msgstr "Bitte wähle mindestens ein Element aus, auf das diese Aktion angewendet werden soll." -#: wp-includes/script-loader.php:401 -msgctxt "password strength" -msgid "Password strength unknown" -msgstr "Passwort-Stärke unbekannt" +#: wp-includes/script-loader.php:645 +msgid "You do not appear to have any plugins available at this time." +msgstr "Du hast zum jetzigen Zeitpunkt scheinbar keine verfügbaren Plugins." #. translators: %s: Search string #: wp-includes/script-loader.php:643 msgid "Search results for “%s”" msgstr "Suchergebnisse für „%s“" -#: wp-includes/script-loader.php:645 -msgid "You do not appear to have any plugins available at this time." -msgstr "Du hast zum jetzigen Zeitpunkt scheinbar keine verfügbaren Plugins." - -#: wp-includes/revision.php:550 -msgid "Sorry, you are not allowed to preview drafts." -msgstr "Du bist leider nicht berechtigt, Entwürfe anzusehen." - -#: wp-includes/rest-api/class-wp-rest-server.php:922 -#: wp-includes/script-loader.php:132 wp-includes/script-loader.php:517 -msgid "Sorry, you are not allowed to do that." -msgstr "Du bist leider nicht berechtigt, dies zu tun." - #: wp-includes/script-loader.php:528 msgid "" "Are you sure you want to do this?\n" @@ -2830,6 +2806,34 @@ msgstr "" msgid "Confirm use of weak password" msgstr "Bestätige die Verwendung eines schwachen Passworts." +#: wp-includes/script-loader.php:401 +msgctxt "password strength" +msgid "Password strength unknown" +msgstr "Passwort-Stärke unbekannt" + +#: wp-includes/rest-api/class-wp-rest-server.php:922 +#: wp-includes/script-loader.php:132 wp-includes/script-loader.php:517 +msgid "Sorry, you are not allowed to do that." +msgstr "Du bist leider nicht berechtigt, dies zu tun." + +#: wp-includes/revision.php:550 +msgid "Sorry, you are not allowed to preview drafts." +msgstr "Du bist leider nicht berechtigt, Entwürfe anzusehen." + +#. translators: %s: site title +#: wp-includes/pluggable.php:1751 +msgid "[%s] Password Changed" +msgstr "[%s] Passwort geändert" + +#. translators: %s: user name +#: wp-includes/pluggable.php:1746 +msgid "Password changed for user: %s" +msgstr "Passwort geändert für Benutzer: %s" + +#: wp-includes/media-template.php:1242 +msgid "Image crop area preview. Requires mouse interaction." +msgstr "Vorschau des Bereichs „Bilder zuschneiden“. Erfordert Maus-Interaktion." + #: wp-includes/formatting.php:4252 msgid "https://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_structure" msgstr "https://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_structure" @@ -2839,10 +2843,6 @@ msgstr "https://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_str msgid "A structure tag is required when using custom permalinks. <a href=\"%s\">Learn more</a>" msgstr "Um benutzerdefinierte Permalinks benutzen zu können, ist ein Struktur-Schlagwort erforderlich. <a href=\"%s\">Erfahre mehr</a>" -#: wp-includes/media-template.php:1242 -msgid "Image crop area preview. Requires mouse interaction." -msgstr "Vorschau des Bereichs „Bilder zuschneiden“. Erfordert Maus-Interaktion." - #: wp-includes/class-wp-xmlrpc-server.php:3963 #: wp-includes/class-wp-xmlrpc-server.php:4011 #: wp-includes/class-wp-xmlrpc-server.php:5838 @@ -2860,6 +2860,11 @@ msgstr "Du bist leider nicht berechtigt, eine Kategorie hinzuzufügen." msgid "Sorry, you are not allowed to list users." msgstr "Du bist leider nicht berechtigt, Benutzer aufzulisten." +#. translators: URL to the widgets panel of the customizer +#: wp-includes/class-wp-customize-nav-menus.php:585 +msgid "You can also place menus in <a href=\"%s\">widget areas</a> with the “Custom Menu” widget." +msgstr "Mit dem „Individuelles Menü“-Widget können Menüs auch in <a href=\"%s\">Widget-Bereichen</a> positioniert werden." + #: wp-includes/class-wp-customize-manager.php:2376 msgid "There is %s invalid setting." msgid_plural "There are %s invalid settings." @@ -2871,11 +2876,6 @@ msgstr[1] "Es gibt %s ungültige Einstellungen." msgid "Invalid value." msgstr "Ungültiger Wert." -#. translators: URL to the widgets panel of the customizer -#: wp-includes/class-wp-customize-nav-menus.php:585 -msgid "You can also place menus in <a href=\"%s\">widget areas</a> with the “Custom Menu” widget." -msgstr "Mit dem „Individuelles Menü“-Widget können Menüs auch in <a href=\"%s\">Widget-Bereichen</a> positioniert werden." - #: wp-includes/class-wp-customize-manager.php:478 #: wp-includes/script-loader.php:468 msgid "Sorry, you are not allowed to customize this site." @@ -2892,14 +2892,14 @@ msgstr "%1$s-Schlagwörter nicht an %2$s weitergeben." msgid "Link options" msgstr "Link-Optionen" -#: wp-includes/script-loader.php:433 -msgid "Link selected." -msgstr "Link ausgewählt." - #: wp-includes/script-loader.php:434 msgid "Link inserted." msgstr "Link eingefügt." +#: wp-includes/script-loader.php:433 +msgid "Link selected." +msgstr "Link ausgewählt." + #. translators: %s: ImageMagick method name #: wp-includes/class-wp-image-editor-imagick.php:706 #: wp-includes/class-wp-image-editor-imagick.php:711 @@ -2956,12 +2956,21 @@ msgstr "Das manuelle Entfernen von %1$s wird PHP-Warnungen verursachen. Nutze st msgid "The next group of formatting shortcuts are applied as you type or when you insert them around plain text in the same paragraph. Press Escape or the Undo button to undo." msgstr "Die nächste Gruppe von Formatierungs-Kürzeln wird angewendet, während du schreibst oder wenn du sie im selben Absatz, um einfachen Text herum, eingibst. Zum Rückgängigmachen drücke Escape oder den Rückgängig-Button." +#: wp-login.php:856 +msgid "Your session has expired. Please log in to continue where you left off." +msgstr "Deine Sitzung ist abgelaufen. Bitte melde dich an, um fortzufahren." + #. translators: 1: display name, 2: user_login #: wp-includes/user.php:1115 msgctxt "user dropdown" msgid "%1$s (%2$s)" msgstr "%1$s (%2$s)" +#. translators: %s: email address +#: wp-includes/user.php:238 +msgid "<strong>ERROR</strong>: The password you entered for the email address %s is incorrect." +msgstr "<strong>FEHLER</strong>: Das eingegebene Passwort für die E-Mail-Adresse %s ist nicht korrekt." + #: wp-includes/user.php:220 msgid "<strong>ERROR</strong>: Invalid email address." msgstr "<strong>FEHLER</strong>: Ungültige E-Mail-Adresse." @@ -2970,74 +2979,59 @@ msgstr "<strong>FEHLER</strong>: Ungültige E-Mail-Adresse." msgid "<strong>ERROR</strong>: The email field is empty." msgstr "<strong>FEHLER</strong>: Das E-Mail-Feld ist leer." -#: wp-login.php:856 -msgid "Your session has expired. Please log in to continue where you left off." -msgstr "Deine Sitzung ist abgelaufen. Bitte melde dich an, um fortzufahren." - -#. translators: %s: email address -#: wp-includes/user.php:238 -msgid "<strong>ERROR</strong>: The password you entered for the email address %s is incorrect." -msgstr "<strong>FEHLER</strong>: Das eingegebene Passwort für die E-Mail-Adresse %s ist nicht korrekt." - #: wp-includes/taxonomy.php:426 msgid "Unregistering a built-in taxonomy is not allowed" msgstr "Das Abmelden interner Taxonomien ist nicht erlaubt." +#: wp-includes/script-loader.php:538 +msgid "Drag boxes here" +msgstr "Boxen hierhin ziehen" + #: wp-includes/script-loader.php:473 msgid "(Untitled)" msgstr "(Ohne Titel)" -#: wp-includes/post.php:234 -msgctxt "post status" -msgid "Trash" -msgstr "Papierkorb" - -#: wp-includes/rest-api.php:42 -msgid "Routes must be namespaced with plugin or theme name and version." -msgstr "Routen müssen über Namen und Version des Plugins oder Themes einen Namensraum zugewiesen bekommen." - #: wp-includes/rest-api.php:45 msgid "Route must be specified." msgstr "Routen müssen angegeben werden." -#: wp-includes/script-loader.php:538 -msgid "Drag boxes here" -msgstr "Boxen hierhin ziehen" +#: wp-includes/rest-api.php:42 +msgid "Routes must be namespaced with plugin or theme name and version." +msgstr "Routen müssen über Namen und Version des Plugins oder Themes einen Namensraum zugewiesen bekommen." #: wp-includes/post.php:1167 msgid "Unregistering a built-in post type is not allowed" msgstr "Das Abmelden eines internen Inhaltstyps ist nicht erlaubt." -#. translators: 1: blog name, 2: separator(raquo), 3: term name, 4: taxonomy -#. singular name -#: wp-includes/general-template.php:2671 -msgid "%1$s %2$s %3$s %4$s Feed" -msgstr "%1$s %2$s %3$s %4$s Feed" - -#: wp-includes/post.php:213 -msgctxt "post status" -msgid "Draft" -msgstr "Entwurf" - -#: wp-includes/post.php:199 +#: wp-includes/post.php:234 msgctxt "post status" -msgid "Published" -msgstr "Veröffentlicht" +msgid "Trash" +msgstr "Papierkorb" #: wp-includes/post.php:227 msgctxt "post status" msgid "Private" msgstr "Privat" +#: wp-includes/post.php:220 +msgctxt "post status" +msgid "Pending" +msgstr "Ausstehend" + +#: wp-includes/post.php:213 +msgctxt "post status" +msgid "Draft" +msgstr "Entwurf" + #: wp-includes/post.php:206 msgctxt "post status" msgid "Scheduled" msgstr "Geplant" -#: wp-includes/post.php:220 +#: wp-includes/post.php:199 msgctxt "post status" -msgid "Pending" -msgstr "Ausstehend" +msgid "Published" +msgstr "Veröffentlicht" #: wp-includes/post-template.php:1603 msgctxt "post password form" @@ -3048,9 +3042,15 @@ msgstr "Absenden" msgid "<strong>ERROR</strong>: Invalid username, email address or incorrect password." msgstr "<strong>FEHLER</strong>: Ungültiger Benutzername, E-Mail-Adresse oder ungültiges Passwort." -#: wp-includes/class-wp-customize-manager.php:3873 -msgid "No logo selected" -msgstr "Kein Logo ausgewählt" +#. translators: 1: blog name, 2: separator(raquo), 3: term name, 4: taxonomy +#. singular name +#: wp-includes/general-template.php:2671 +msgid "%1$s %2$s %3$s %4$s Feed" +msgstr "%1$s %2$s %3$s %4$s Feed" + +#: wp-includes/functions.php:5262 +msgid "Close dialog" +msgstr "Dialog schließen" #. translators: 1: PHP class name, 2: PHP parent class name, 3: version number, #. 4: __construct() method @@ -3058,46 +3058,31 @@ msgstr "Kein Logo ausgewählt" msgid "The called constructor method for %1$s in %2$s is <strong>deprecated</strong> since version %3$s! Use %4$s instead." msgstr "Die verwendete Konstruktor-Methode für %1$s in %2$s ist seit Version %3$s <strong>veraltet</strong>! Verwende stattdessen %4$s." -#: wp-includes/functions.php:5262 -msgid "Close dialog" -msgstr "Dialog schließen" - #: wp-includes/class-wp-customize-manager.php:3875 msgid "Choose logo" msgstr "Logo auswählen" -#. translators: %s: document.write() -#: wp-includes/customize/class-wp-customize-selective-refresh.php:209 -msgid "%s is forbidden" -msgstr "%s ist nicht erlaubt" +#: wp-includes/class-wp-customize-manager.php:3873 +msgid "No logo selected" +msgstr "Kein Logo ausgewählt" #: wp-includes/class-wp-customize-manager.php:3870 msgid "Change logo" msgstr "Logo ändern" -#: wp-includes/customize/class-wp-customize-partial.php:221 -msgid "Partial render must echo the content or return the content string (or array), but not both." -msgstr "Die Methode für das partielle Rendering muss entweder den Inhalt ausgeben oder diesen als „String“ (oder „Array“) zurückgeben, jedoch nicht beides gleichzeitig." - #: wp-includes/class-wp-customize-manager.php:3869 #: wp-includes/class-wp-customize-manager.php:3874 msgid "Select logo" msgstr "Logo auswählen" -#: wp-includes/comment.php:243 -msgctxt "comment status" -msgid "Spam" -msgstr "Spam" - -#: wp-includes/comment.php:244 -msgctxt "comment status" -msgid "Trash" -msgstr "Papierkorb" +#. translators: %s: document.write() +#: wp-includes/customize/class-wp-customize-selective-refresh.php:209 +msgid "%s is forbidden" +msgstr "%s ist nicht erlaubt" -#: wp-includes/comment.php:242 -msgctxt "comment status" -msgid "Approved" -msgstr "Genehmigt" +#: wp-includes/customize/class-wp-customize-partial.php:221 +msgid "Partial render must echo the content or return the content string (or array), but not both." +msgstr "Die Methode für das partielle Rendering muss entweder den Inhalt ausgeben oder diesen als „String“ (oder „Array“) zurückgeben, jedoch nicht beides gleichzeitig." #: wp-includes/comment.php:1144 msgid "<strong>ERROR</strong>: your comment is too long." @@ -3115,27 +3100,42 @@ msgstr "<strong>FEHLER</strong>: Deine E-Mail-Adresse ist zu lang." msgid "<strong>ERROR</strong>: your name is too long." msgstr "<strong>FEHLER</strong>: Dein Name ist zu lang." -#: wp-includes/class-wp-customize-manager.php:3861 -msgid "Logo" -msgstr "Logo" +#: wp-includes/comment.php:244 +msgctxt "comment status" +msgid "Trash" +msgstr "Papierkorb" + +#: wp-includes/comment.php:243 +msgctxt "comment status" +msgid "Spam" +msgstr "Spam" + +#: wp-includes/comment.php:242 +msgctxt "comment status" +msgid "Approved" +msgstr "Genehmigt" #: wp-includes/class-wp-theme.php:278 msgid "https://codex.wordpress.org/Child_Themes" msgstr "https://codex.wordpress.org/Child_Themes" -#: wp-includes/class-wp-editor.php:1255 -msgid "Paste URL or type to search" -msgstr "URL einfügen oder zum Suchen tippen" +#. translators: 1: index.php, 2: Codex URL, 3: style.css +#: wp-includes/class-wp-theme.php:276 +msgid "Template is missing. Standalone themes need to have a %1$s template file. <a href=\"%2$s\">Child themes</a> need to have a Template header in the %3$s stylesheet." +msgstr "Fehlendes Template. Eigenständige Themes müssen über eine %1$s Datei verfügen. Für <a href=\"%2$s\">Child-Themes</a> muss ein Template-Header in der %3$s angelegt werden." #: wp-includes/class-wp-metadata-lazyloader.php:81 #: wp-includes/class-wp-metadata-lazyloader.php:122 msgid "Invalid object type" msgstr "Ungültiger Objekt-Typ" -#. translators: 1: index.php, 2: Codex URL, 3: style.css -#: wp-includes/class-wp-theme.php:276 -msgid "Template is missing. Standalone themes need to have a %1$s template file. <a href=\"%2$s\">Child themes</a> need to have a Template header in the %3$s stylesheet." -msgstr "Fehlendes Template. Eigenständige Themes müssen über eine %1$s Datei verfügen. Für <a href=\"%2$s\">Child-Themes</a> muss ein Template-Header in der %3$s angelegt werden." +#: wp-includes/class-wp-editor.php:1255 +msgid "Paste URL or type to search" +msgstr "URL einfügen oder zum Suchen tippen" + +#: wp-includes/class-wp-customize-manager.php:3861 +msgid "Logo" +msgstr "Logo" #: wp-includes/class-wp-customize-manager.php:3828 #: wp-includes/class-wp-customize-manager.php:3905 @@ -3146,23 +3146,23 @@ msgstr "Titel und Untertitel der Website anzeigen" msgid "Enter mobile preview mode" msgstr "Mobile Vorschau anzeigen" -#: wp-includes/class-wp-customize-manager.php:3700 -msgid "Enter desktop preview mode" -msgstr "Desktop-Vorschau anzeigen" - #: wp-includes/class-wp-customize-manager.php:3704 msgid "Enter tablet preview mode" msgstr "Tablet-Vorschau anzeigen" -#: wp-comments-post.php:29 -msgid "Comment Submission Failure" -msgstr "Fehler beim Senden des Kommentars" +#: wp-includes/class-wp-customize-manager.php:3700 +msgid "Enter desktop preview mode" +msgstr "Desktop-Vorschau anzeigen" #: wp-includes/class-wp-customize-manager.php:1810 #: wp-includes/customize/class-wp-customize-selective-refresh.php:203 msgid "Shift-click to edit this element." msgstr "Shift-Klick, um dieses Element zu bearbeiten." +#: wp-comments-post.php:29 +msgid "Comment Submission Failure" +msgstr "Fehler beim Senden des Kommentars" + #: wp-includes/user.php:2302 msgid "<strong>ERROR</strong>: Sorry, that username is not allowed." msgstr "<strong>FEHLER</strong>: Dieser Benutzername ist leider nicht erlaubt." @@ -3219,12 +3219,6 @@ msgstr "https://codex.wordpress.org/Editing_wp-config.php" msgid "Need more help? <a href='%s'>We got it</a>." msgstr "Brauchst du mehr Hilfe? <a href='%s'>Du findest sie hier</a>." -#. translators: %s: get_the_author() -#. translators: %s: get_trackback_url() -#: wp-includes/author-template.php:66 wp-includes/comment-template.php:1137 -msgid "Use %s instead if you do not want the value echoed." -msgstr "Verwende %s, wenn du den Wert nicht ausgeben möchtest." - #. translators: %s: wp-config.php #: wp-load.php:77 msgid "There doesn't seem to be a %s file. I need this before we can get started." @@ -3236,15 +3230,25 @@ msgstr "Es gibt anscheinend keine Datei %s. Ich brauche diese Datei, bevor wir l msgid "Use %s instead." msgstr "Verwende stattdessen %s." +#. translators: %s: get_the_author() +#. translators: %s: get_trackback_url() +#: wp-includes/author-template.php:66 wp-includes/comment-template.php:1137 +msgid "Use %s instead if you do not want the value echoed." +msgstr "Verwende %s, wenn du den Wert nicht ausgeben möchtest." + #: wp-includes/class-wp-term.php:166 msgid "Term ID is shared between multiple taxonomies" msgstr "Die Begriffs-ID wird unter mehreren Taxonomien geteilt." +#: wp-includes/taxonomy.php:1128 wp-includes/taxonomy.php:1210 +msgid "Term meta cannot be added to terms that are shared between taxonomies." +msgstr "Meta-Daten können nicht zu Begriffen hinzugefügt werden, die in Taxonomien geteilt werden." + #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:179 +#: wp-includes/class-wp-locale.php:183 msgctxt "genitive" -msgid "August" -msgstr "August" +msgid "December" +msgstr "Dezember" #. translators: month name, genitive #: wp-includes/class-wp-locale.php:182 @@ -3252,6 +3256,12 @@ msgctxt "genitive" msgid "November" msgstr "November" +#. translators: month name, genitive +#: wp-includes/class-wp-locale.php:181 +msgctxt "genitive" +msgid "October" +msgstr "Oktober" + #. translators: month name, genitive #: wp-includes/class-wp-locale.php:180 msgctxt "genitive" @@ -3259,10 +3269,10 @@ msgid "September" msgstr "September" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:177 +#: wp-includes/class-wp-locale.php:179 msgctxt "genitive" -msgid "June" -msgstr "Juni" +msgid "August" +msgstr "August" #. translators: month name, genitive #: wp-includes/class-wp-locale.php:178 @@ -3271,20 +3281,16 @@ msgid "July" msgstr "Juli" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:181 +#: wp-includes/class-wp-locale.php:177 msgctxt "genitive" -msgid "October" -msgstr "Oktober" +msgid "June" +msgstr "Juni" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:183 +#: wp-includes/class-wp-locale.php:176 msgctxt "genitive" -msgid "December" -msgstr "Dezember" - -#: wp-includes/taxonomy.php:1128 wp-includes/taxonomy.php:1210 -msgid "Term meta cannot be added to terms that are shared between taxonomies." -msgstr "Meta-Daten können nicht zu Begriffen hinzugefügt werden, die in Taxonomien geteilt werden." +msgid "May" +msgstr "Mai" #. translators: month name, genitive #: wp-includes/class-wp-locale.php:175 @@ -3292,30 +3298,24 @@ msgctxt "genitive" msgid "April" msgstr "April" -#. translators: month name, genitive -#: wp-includes/class-wp-locale.php:176 -msgctxt "genitive" -msgid "May" -msgstr "Mai" - #. translators: month name, genitive #: wp-includes/class-wp-locale.php:174 msgctxt "genitive" msgid "March" msgstr "März" -#. translators: month name, genitive -#: wp-includes/class-wp-locale.php:172 -msgctxt "genitive" -msgid "January" -msgstr "Januar" - #. translators: month name, genitive #: wp-includes/class-wp-locale.php:173 msgctxt "genitive" msgid "February" msgstr "Februar" +#. translators: month name, genitive +#: wp-includes/class-wp-locale.php:172 +msgctxt "genitive" +msgid "January" +msgstr "Januar" + #. translators: If months in your language require a genitive case, translate #. this to 'on'. Do not translate into your own language. #: wp-includes/functions.php:175 @@ -3327,49 +3327,49 @@ msgstr "off" msgid "Sharing options" msgstr "Einstellungen zum Teilen" -#: wp-includes/class-wp-xmlrpc-server.php:534 -msgid "Medium-Large size image width" -msgstr "Breite für mittelgroße Bilder" - #: wp-includes/class-wp-xmlrpc-server.php:539 msgid "Medium-Large size image height" msgstr "Höhe für mittelgroße Bilder" +#: wp-includes/class-wp-xmlrpc-server.php:534 +msgid "Medium-Large size image width" +msgstr "Breite für mittelgroße Bilder" + #. translators: %s: site link #: wp-includes/theme-compat/sidebar.php:78 msgid "You are currently browsing the %s blog archives." msgstr "Du befindest dich im Moment in den %s Blog-Archiven." -#. translators: 1: site link, 2: archive date -#: wp-includes/theme-compat/sidebar.php:46 -msgid "You are currently browsing the %1$s blog archives for the day %2$s." -msgstr "Du befindest dich im Moment in den %1$s Blog-Archiven für den Tag %2$s. " +#. translators: 1: site link, 2: archive year +#: wp-includes/theme-compat/sidebar.php:62 +msgid "You are currently browsing the %1$s blog archives for the year %2$s." +msgstr "Du befindest dich im Moment in den %1$s Blog-Archiven für das Jahr %2$s. " #. translators: 1: site link, 2: archive month #: wp-includes/theme-compat/sidebar.php:54 msgid "You are currently browsing the %1$s blog archives for %2$s." msgstr "Du befindest dich im Moment in den %1$s Blog-Archiven für %2$s. " -#. translators: 1: site link, 2: archive year -#: wp-includes/theme-compat/sidebar.php:62 -msgid "You are currently browsing the %1$s blog archives for the year %2$s." -msgstr "Du befindest dich im Moment in den %1$s Blog-Archiven für das Jahr %2$s. " +#. translators: 1: site link, 2: archive date +#: wp-includes/theme-compat/sidebar.php:46 +msgid "You are currently browsing the %1$s blog archives for the day %2$s." +msgstr "Du befindest dich im Moment in den %1$s Blog-Archiven für den Tag %2$s. " #. translators: %s: admin email link #: wp-includes/ms-load.php:103 msgid "This site has not been activated yet. If you are having problems activating your site, please contact %s." msgstr "Diese Website wurde noch nicht aktiviert. Wenn du Probleme mit der Aktivierung deiner Website hast, kontaktiere bitte %s." -#. translators: %s: menu name -#: wp-includes/nav-menu.php:292 wp-includes/nav-menu.php:305 -msgid "The menu name %s conflicts with another menu name. Please try another." -msgstr "Der Name des Menüs %s zeigt einen Konflikt mit einem anderen Menünamen. Bitte teste einen anderen Namen." - #. translators: %s: email address #: wp-signup.php:608 wp-signup.php:754 msgid "Check your inbox at %s and click the link given." msgstr "Bitte überprüfe deinen E-Mail-Posteingang %s und klicke auf den enthaltenen Link." +#. translators: %s: menu name +#: wp-includes/nav-menu.php:292 wp-includes/nav-menu.php:305 +msgid "The menu name %s conflicts with another menu name. Please try another." +msgstr "Der Name des Menüs %s zeigt einen Konflikt mit einem anderen Menünamen. Bitte teste einen anderen Namen." + #. translators: %s: site address #: wp-signup.php:901 msgid "The site you were looking for, %s, does not exist." @@ -3389,10 +3389,6 @@ msgstr "Ups! Diese Einbettung wurde nicht gefunden." msgid "Continue reading %s" msgstr "%s weiterlesen" -#: wp-mail.php:233 -msgid "Posted title:" -msgstr "Veröffentlichter Titel:" - #: wp-signup.php:146 msgid "Site Language:" msgstr "Sprache der Website:" @@ -3402,35 +3398,39 @@ msgstr "Sprache der Website:" msgid "Mission complete. Message %s deleted." msgstr "Mission erfüllt. Nachricht %s gelöscht." +#: wp-mail.php:233 +msgid "Posted title:" +msgstr "Veröffentlichter Titel:" + #: wp-mail.php:232 msgid "Author:" msgstr "Autor:" -#: wp-includes/wp-db.php:1595 wp-includes/wp-db.php:1698 -msgid "Are you sure that the database server is running?" -msgstr "Bist du sicher, dass der Datenbank-Server läuft?" - -#: wp-includes/wp-db.php:1689 -msgid "Error reconnecting to the database" -msgstr "Fehler beim erneuten Verbinden mit der Datenbank" - #: wp-includes/wp-db.php:1699 msgid "Are you sure that the database server is not under particularly heavy load?" msgstr "Bist du sicher, dass der Datenbank-Server nicht überlastet ist?" -#: wp-includes/wp-db.php:1594 -msgid "Are you sure that you have typed the correct hostname?" -msgstr "Bist du sicher, dass du den richtigen Hostnamen eingegeben hast?" +#. translators: %s: database host +#: wp-includes/wp-db.php:1693 +msgid "This means that we lost contact with the database server at %s. This could mean your host’s database server is down." +msgstr "Das bedeutet, dass wir die Verbindung zum Datenbank-Server unter %s verloren haben. Möglicherweise ist der Datenbank-Server deines Hostings derzeit nicht verfügbar." + +#: wp-includes/wp-db.php:1689 +msgid "Error reconnecting to the database" +msgstr "Fehler beim erneuten Verbinden mit der Datenbank" #. translators: %s: support forums URL #: wp-includes/wp-db.php:1600 wp-includes/wp-db.php:1704 msgid "If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href=\"%s\">WordPress Support Forums</a>." msgstr "Wenn du unsicher bist, was diese Begriffe bedeuten, solltest du lieber den Support deines Webhostings kontaktieren. Wenn du dann weiterhin Hilfe benötigst, kannst du stets die <a href=\"%s\">WordPress Support-Foren</a> besuchen." -#. translators: %s: database host -#: wp-includes/wp-db.php:1693 -msgid "This means that we lost contact with the database server at %s. This could mean your host’s database server is down." -msgstr "Das bedeutet, dass wir die Verbindung zum Datenbank-Server unter %s verloren haben. Möglicherweise ist der Datenbank-Server deines Hostings derzeit nicht verfügbar." +#: wp-includes/wp-db.php:1595 wp-includes/wp-db.php:1698 +msgid "Are you sure that the database server is running?" +msgstr "Bist du sicher, dass der Datenbank-Server läuft?" + +#: wp-includes/wp-db.php:1594 +msgid "Are you sure that you have typed the correct hostname?" +msgstr "Bist du sicher, dass du den richtigen Hostnamen eingegeben hast?" #: wp-includes/wp-db.php:1593 msgid "Are you sure you have the correct username and password?" @@ -3446,6 +3446,16 @@ msgstr "Das bedeutet entweder, dass die Information über den Benutzernamen und msgid "If you don’t know how to set up a database you should <strong>contact your host</strong>. If all else fails you may find help at the <a href=\"%s\">WordPress Support Forums</a>." msgstr "Wenn du nicht weißt, wie du eine Datenbank einrichtest, solltest du <strong>den Support deines Webhostings kontaktieren</strong>. Und wenn alles andere nicht funktioniert, könntest du in den <a href=\"%s\">WordPress Support-Foren</a> Hilfe erhalten." +#. translators: %s: database name +#: wp-includes/wp-db.php:1120 +msgid "On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?" +msgstr "In einigen Systemen ist der Name deiner Datenbank mit deinem Benutzernamen als Präfix versehen, das würde so aussehen: <code>benutzername_%1$s</code>. Könnte dies das Problem sein?" + +#. translators: 1: database user, 2: database name +#: wp-includes/wp-db.php:1113 +msgid "Does the user %1$s have permission to use the %2$s database?" +msgstr "Hat der Benutzer %1$s die Berechtigung, die Datenbank %2$s zu verwenden?" + #: wp-includes/wp-db.php:1109 msgid "Are you sure it exists?" msgstr "Bist du sicher, dass sie existiert?" @@ -3455,32 +3465,22 @@ msgstr "Bist du sicher, dass sie existiert?" msgid "We were able to connect to the database server (which means your username and password is okay) but not able to select the %s database." msgstr "Wir konnten die Verbindung zum Datenbank-Server herstellen (was bedeutet, dass Benutzername und Passwort in Ordnung sind), aber wir konnten die %s Datenbank nicht auswählen." -#. translators: %s: database name -#: wp-includes/wp-db.php:1120 -msgid "On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?" -msgstr "In einigen Systemen ist der Name deiner Datenbank mit deinem Benutzernamen als Präfix versehen, das würde so aussehen: <code>benutzername_%1$s</code>. Könnte dies das Problem sein?" - #: wp-includes/wp-db.php:1100 msgid "Can’t select database" msgstr "Datenbank konnte nicht ausgewählt werden" -#. translators: 1: database user, 2: database name -#: wp-includes/wp-db.php:1113 -msgid "Does the user %1$s have permission to use the %2$s database?" -msgstr "Hat der Benutzer %1$s die Berechtigung, die Datenbank %2$s zu verwenden?" - #: wp-includes/widgets/class-wp-widget-tag-cloud.php:148 msgid "The tag cloud will not be displayed since there are no taxonomies that support the tag cloud widget." msgstr "Die Schlagwort-Wolke konnte nicht angezeigt werden, da keine Taxonomien vorhanden sind, die das Schlagwort-Wolken-Widget unterstützen." -#: wp-includes/user.php:1485 -msgid "Nicename may not be longer than 50 characters." -msgstr "Der ausgeschriebene Name darf nicht länger als 50 Zeichen sein." - #: wp-includes/user.php:2140 msgid "Could not save password reset key to database." msgstr "Der Code zum Zurücksetzen des Passworts konnte nicht in der Datenbank gespeichert werden." +#: wp-includes/user.php:1485 +msgid "Nicename may not be longer than 50 characters." +msgstr "Der ausgeschriebene Name darf nicht länger als 50 Zeichen sein." + #. translators: %s: user name #: wp-includes/user.php:166 msgid "<strong>ERROR</strong>: The password you entered for the username %s is incorrect." @@ -3494,49 +3494,45 @@ msgstr "<strong>FEHLER</strong>: Ungültiger Benutzername." msgid "Categories list" msgstr "Kategorienliste" -#: wp-includes/taxonomy.php:512 -msgid "Categories list navigation" -msgstr "Navigation der Kategorienliste" - #: wp-includes/taxonomy.php:513 msgid "Tags list" msgstr "Schlagwörterliste" +#: wp-includes/taxonomy.php:512 +msgid "Categories list navigation" +msgstr "Navigation der Kategorienliste" + #: wp-includes/taxonomy.php:512 msgid "Tags list navigation" msgstr "Navigation der Schlagwörterliste" -#: wp-includes/script-loader.php:576 -msgid "Permalink saved" -msgstr "Permalink gespeichert" +#. translators: 1: shortcode name, 2: space separated list of reserved +#. characters +#: wp-includes/shortcodes.php:100 +msgid "Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s" +msgstr "Ungültiger Shortcode-Name: %1$s. Verwende keine Leerzeichen oder reservierte Zeichen: %2$s" #: wp-includes/shortcodes.php:93 msgid "Invalid shortcode name: Empty name given." msgstr "Ungültiger Shortcode-Name: Es wurde kein Name verwendet." +#: wp-includes/script-loader.php:576 +msgid "Permalink saved" +msgstr "Permalink gespeichert" + #: wp-includes/rest-api.php:749 msgid "Cookie nonce is invalid" msgstr "Das Cookie-Nonce ist ungültig" -#. translators: 1: shortcode name, 2: space separated list of reserved -#. characters -#: wp-includes/shortcodes.php:100 -msgid "Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s" -msgstr "Ungültiger Shortcode-Name: %1$s. Verwende keine Leerzeichen oder reservierte Zeichen: %2$s" - -#. translators: 1: function name, 2: WordPress version number -#: wp-includes/rest-api.php:505 wp-includes/rest-api.php:529 -msgid "%1$s (since %2$s; no alternative available)" -msgstr "%1$s (ab %2$s; keine Alternative verfügbar)" - #. translators: 1: function name, 2: WordPress version number, 3: error message #: wp-includes/rest-api.php:526 msgid "%1$s (since %2$s; %3$s)" msgstr "%1$s (ab %2$s; %3$s)" -#: wp-includes/rest-api/class-wp-rest-server.php:1076 -msgid "The specified namespace could not be found." -msgstr "Der gewählte Namensraum konnte nicht gefunden werden." +#. translators: 1: function name, 2: WordPress version number +#: wp-includes/rest-api.php:505 wp-includes/rest-api.php:529 +msgid "%1$s (since %2$s; no alternative available)" +msgstr "%1$s (ab %2$s; keine Alternative verfügbar)" #. translators: 1: function name, 2: WordPress version number, 3: new function #. name @@ -3544,6 +3540,10 @@ msgstr "Der gewählte Namensraum konnte nicht gefunden werden." msgid "%1$s (since %2$s; use %3$s instead)" msgstr "%1$s (ab %2$s; verwende stattdessen %3$s)" +#: wp-includes/rest-api/class-wp-rest-server.php:1076 +msgid "The specified namespace could not be found." +msgstr "Der gewählte Namensraum konnte nicht gefunden werden." + #: wp-includes/rest-api/class-wp-rest-server.php:986 msgid "No route was found matching the URL and request method" msgstr "Keine Route für URL und Request-Methode gefunden" @@ -3552,6 +3552,15 @@ msgstr "Keine Route für URL und Request-Methode gefunden" msgid "The handler for the route is invalid" msgstr "Der Handler für die Route ist ungültig" +#: wp-includes/rest-api/class-wp-rest-server.php:288 +msgid "JSONP support is disabled on this site." +msgstr "JSONP Unterstützung ist auf dieser Website deaktiviert." + +#: wp-includes/rest-api/class-wp-rest-request.php:849 +#: wp-includes/rest-api/class-wp-rest-request.php:916 +msgid "Invalid parameter(s): %s" +msgstr "Ungültige(r) Parameter: %s" + #: wp-includes/rest-api/class-wp-rest-request.php:888 msgid "Missing parameter(s): %s" msgstr "Fehlende(r) Parameter: %s" @@ -3562,18 +3571,9 @@ msgstr "Fehlende(r) Parameter: %s" msgid "In %1$s, use the %2$s method, not the %3$s function. See %4$s." msgstr "Verwende in %1$s die Methode %2$s, nicht die Funktion %3$s. Siehe %4$s." -#: wp-includes/rest-api/class-wp-rest-request.php:849 -#: wp-includes/rest-api/class-wp-rest-request.php:916 -msgid "Invalid parameter(s): %s" -msgstr "Ungültige(r) Parameter: %s" - -#: wp-includes/rest-api/class-wp-rest-server.php:288 -msgid "JSONP support is disabled on this site." -msgstr "JSONP Unterstützung ist auf dieser Website deaktiviert." - #: wp-includes/post.php:1393 msgid "Pages list" -msgstr "Seitenliste " +msgstr "Seitenliste" #: wp-includes/post.php:1393 msgid "Posts list" @@ -3583,25 +3583,25 @@ msgstr "Beitragsliste" msgid "Pages list navigation" msgstr "Navigation der Seitenliste" -#: wp-includes/post.php:1383 -msgid "Post Archives" -msgstr "Beitrags-Archive" +#: wp-includes/post.php:1392 +msgid "Posts list navigation" +msgstr "Navigation der Beitragsliste" -#: wp-includes/post.php:1383 -msgid "Page Archives" -msgstr "Seiten-Archive" +#: wp-includes/post.php:1391 +msgid "Filter pages list" +msgstr "Seitenliste filtern" #: wp-includes/post.php:1391 msgid "Filter posts list" msgstr "Beitragsliste filtern" -#: wp-includes/post.php:1391 -msgid "Filter pages list" -msgstr "Seitenliste filtern" +#: wp-includes/post.php:1383 +msgid "Page Archives" +msgstr "Seiten-Archive" -#: wp-includes/post.php:1392 -msgid "Posts list navigation" -msgstr "Navigation der Beitragsliste" +#: wp-includes/post.php:1383 +msgid "Post Archives" +msgstr "Beitrags-Archive" #: wp-includes/class-wp-customize-nav-menus.php:171 #: wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:335 @@ -3609,25 +3609,25 @@ msgstr "Navigation der Beitragsliste" msgid "Post Type Archive" msgstr "Inhaltstyp-Archiv" +#: wp-includes/ms-functions.php:574 +msgid "Site names can only contain lowercase letters (a-z) and numbers." +msgstr "Website-Namen dürfen nur aus Kleinbuchstaben (a-z) und Zahlen bestehen." + #: wp-includes/ms-functions.php:435 wp-includes/ms-functions.php:442 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1101 #: wp-includes/user.php:1475 msgid "Sorry, that username is not allowed." msgstr "Dieser Benutzername ist leider nicht erlaubt." -#: wp-includes/ms-functions.php:574 -msgid "Site names can only contain lowercase letters (a-z) and numbers." -msgstr "Website-Namen dürfen nur aus Kleinbuchstaben (a-z) und Zahlen bestehen." - #: wp-includes/ms-functions.php:420 msgid "Usernames can only contain lowercase letters (a-z) and numbers." msgstr "Benutzernamen dürfen nur kleingeschriebene Buchstaben (a-z) und Zahlen enthalten." -#. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:196 -msgctxt "November abbreviation" -msgid "Nov" -msgstr "Nov" +#. translators: playlist item title +#: wp-includes/media.php:1834 wp-includes/media.php:1849 +msgctxt "playlist item title" +msgid "“%s”" +msgstr "„%s“" #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:197 @@ -3635,11 +3635,11 @@ msgctxt "December abbreviation" msgid "Dec" msgstr "Dez" -#. translators: playlist item title -#: wp-includes/media.php:1834 wp-includes/media.php:1849 -msgctxt "playlist item title" -msgid "“%s”" -msgstr "„%s“" +#. translators: three-letter abbreviation of the month +#: wp-includes/class-wp-locale.php:196 +msgctxt "November abbreviation" +msgid "Nov" +msgstr "Nov" #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:195 @@ -3647,18 +3647,18 @@ msgctxt "October abbreviation" msgid "Oct" msgstr "Okt" -#. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:193 -msgctxt "August abbreviation" -msgid "Aug" -msgstr "Aug" - #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:194 msgctxt "September abbreviation" msgid "Sep" msgstr "Sep" +#. translators: three-letter abbreviation of the month +#: wp-includes/class-wp-locale.php:193 +msgctxt "August abbreviation" +msgid "Aug" +msgstr "Aug" + #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:192 msgctxt "July abbreviation" @@ -3666,22 +3666,16 @@ msgid "Jul" msgstr "Jul" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:186 -msgctxt "January abbreviation" -msgid "Jan" -msgstr "Jan" - -#. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:187 -msgctxt "February abbreviation" -msgid "Feb" -msgstr "Feb" +#: wp-includes/class-wp-locale.php:191 +msgctxt "June abbreviation" +msgid "Jun" +msgstr "Jun" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:188 -msgctxt "March abbreviation" -msgid "Mar" -msgstr "Mrz" +#: wp-includes/class-wp-locale.php:190 +msgctxt "May abbreviation" +msgid "May" +msgstr "Mai" #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:189 @@ -3690,28 +3684,28 @@ msgid "Apr" msgstr "Apr" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:190 -msgctxt "May abbreviation" -msgid "May" -msgstr "Mai" +#: wp-includes/class-wp-locale.php:188 +msgctxt "March abbreviation" +msgid "Mar" +msgstr "Mrz" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:191 -msgctxt "June abbreviation" -msgid "Jun" -msgstr "Jun" +#: wp-includes/class-wp-locale.php:187 +msgctxt "February abbreviation" +msgid "Feb" +msgstr "Feb" -#. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:143 -msgctxt "Wednesday initial" -msgid "W" -msgstr "M" +#. translators: three-letter abbreviation of the month +#: wp-includes/class-wp-locale.php:186 +msgctxt "January abbreviation" +msgid "Jan" +msgstr "Jan" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:144 -msgctxt "Thursday initial" -msgid "T" -msgstr "D" +#: wp-includes/class-wp-locale.php:146 +msgctxt "Saturday initial" +msgid "S" +msgstr "S" #. translators: one-letter abbreviation of the weekday #: wp-includes/class-wp-locale.php:145 @@ -3720,16 +3714,22 @@ msgid "F" msgstr "F" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:146 -msgctxt "Saturday initial" -msgid "S" -msgstr "S" +#: wp-includes/class-wp-locale.php:144 +msgctxt "Thursday initial" +msgid "T" +msgstr "D" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:140 -msgctxt "Sunday initial" -msgid "S" -msgstr "S" +#: wp-includes/class-wp-locale.php:143 +msgctxt "Wednesday initial" +msgid "W" +msgstr "M" + +#. translators: one-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:142 +msgctxt "Tuesday initial" +msgid "T" +msgstr "D" #. translators: one-letter abbreviation of the weekday #: wp-includes/class-wp-locale.php:141 @@ -3738,10 +3738,10 @@ msgid "M" msgstr "M" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:142 -msgctxt "Tuesday initial" -msgid "T" -msgstr "D" +#: wp-includes/class-wp-locale.php:140 +msgctxt "Sunday initial" +msgid "S" +msgstr "S" #: wp-includes/link-template.php:2822 msgid "Newer comments" @@ -3756,10 +3756,6 @@ msgstr "Ältere Kommentare" msgid "Posts published on %s" msgstr "Beiträge veröffentlicht am %s" -#: wp-includes/embed.php:1014 -msgid "Copy and paste this code into your site to embed" -msgstr "Füge diesen Code in deine Website ein, um ihn einzubinden" - #. translators: %s: 'document_title_separator' filter name #: wp-includes/feed.php:103 wp-includes/feed.php:129 msgid "Use the %s filter instead." @@ -3769,11 +3765,13 @@ msgstr "Benutze stattdessen den %s Filter." msgid "Close sharing dialog" msgstr "Teilen-Dialog schließen" -#: wp-includes/embed.php:951 -msgid "%s <span class=\"screen-reader-text\">Comment</span>" -msgid_plural "%s <span class=\"screen-reader-text\">Comments</span>" -msgstr[0] "%s <span class=\"screen-reader-text\">Kommentar</span>" -msgstr[1] "%s <span class=\"screen-reader-text\">Kommentare</span>" +#: wp-includes/embed.php:1014 +msgid "Copy and paste this code into your site to embed" +msgstr "Füge diesen Code in deine Website ein, um ihn einzubinden" + +#: wp-includes/embed.php:1007 +msgid "Copy and paste this URL into your WordPress site to embed" +msgstr "Füge diese URL in deine WordPress-Website ein, um sie einzubetten" #: wp-includes/embed.php:1000 msgid "HTML Embed" @@ -3787,9 +3785,11 @@ msgstr "WordPress-Einbettung" msgid "Open sharing dialog" msgstr "Teilen-Dialog öffnen" -#: wp-includes/embed.php:1007 -msgid "Copy and paste this URL into your WordPress site to embed" -msgstr "Füge diese URL in deine WordPress-Website ein, um sie einzubetten" +#: wp-includes/embed.php:951 +msgid "%s <span class=\"screen-reader-text\">Comment</span>" +msgid_plural "%s <span class=\"screen-reader-text\">Comments</span>" +msgstr[0] "%s <span class=\"screen-reader-text\">Kommentar</span>" +msgstr[1] "%s <span class=\"screen-reader-text\">Kommentare</span>" #: wp-includes/customize/class-wp-widget-area-customize-control.php:67 msgid "When in reorder mode, additional controls to reorder widgets will be available in the widgets list above." @@ -3828,12 +3828,9 @@ msgstr "Live-Vorschau: %s" msgid "The requested theme does not exist." msgstr "Das angeforderte Theme existiert nicht." -#. translators: 1: "type => link", 2: "taxonomy => link_category" -#. translators: 1: caller_get_posts, 2: ignore_sticky_posts -#: wp-includes/category-template.php:349 wp-includes/category.php:46 -#: wp-includes/class-wp-query.php:1718 -msgid "%1$s is deprecated. Use %2$s instead." -msgstr "%1$s ist veraltet. Verwende stattdessen %2$s." +#: wp-includes/class-wp-customize-manager.php:532 +msgid "Sorry, you are not allowed to edit theme options on this site." +msgstr "Du bist leider nicht berechtigt, Theme-Einstellungen auf dieser Website zu bearbeiten." #. translators: 1: post type, 2: capability name #: wp-includes/capabilities.php:83 wp-includes/capabilities.php:144 @@ -3841,9 +3838,12 @@ msgstr "%1$s ist veraltet. Verwende stattdessen %2$s." msgid "The post type %1$s is not registered, so it may not be reliable to check the capability \"%2$s\" against a post of that type." msgstr "Der Inhaltstyp %1$s wurde nicht registriert. Es könnte deshalb unzuverlässig sein, die Fähigkeit \"%2$s\" mit einem Inhalt dieses Typs abzugleichen." -#: wp-includes/class-wp-customize-manager.php:532 -msgid "Sorry, you are not allowed to edit theme options on this site." -msgstr "Du bist leider nicht berechtigt, Theme-Einstellungen auf dieser Website zu bearbeiten." +#. translators: 1: "type => link", 2: "taxonomy => link_category" +#. translators: 1: caller_get_posts, 2: ignore_sticky_posts +#: wp-includes/category-template.php:349 wp-includes/category.php:46 +#: wp-includes/class-wp-query.php:1718 +msgid "%1$s is deprecated. Use %2$s instead." +msgstr "%1$s ist veraltet. Verwende stattdessen %2$s." #: wp-includes/class-wp-customize-nav-menus.php:972 #: wp-includes/class-wp-customize-widgets.php:845 @@ -3868,14 +3868,6 @@ msgctxt "Word count type. Do not translate!" msgid "words" msgstr "words" -#: wp-includes/script-loader.php:411 -msgid "Your new password has not been saved." -msgstr "Dein neues Passwort wurde nicht gespeichert." - -#: wp-includes/class-wp-customize-nav-menus.php:1056 -msgid "Toggle section: Custom Links" -msgstr "Bereich umschalten: Individuelle Links" - #. translators: 1: Title of a menu item, 2: Type of a menu item #: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:77 msgid "Edit menu item: %1$s (%2$s)" @@ -3886,6 +3878,14 @@ msgstr "Menüeintrag bearbeiten: %1$s (%2$s)" msgid "Remove Menu Item: %1$s (%2$s)" msgstr "Menüeintrag entfernen: %1$s (%2$s)" +#: wp-includes/class-wp-customize-nav-menus.php:1056 +msgid "Toggle section: Custom Links" +msgstr "Bereich umschalten: Individuelle Links" + +#: wp-includes/script-loader.php:411 +msgid "Your new password has not been saved." +msgstr "Dein neues Passwort wurde nicht gespeichert." + #: wp-includes/script-loader.php:417 msgid "Hide password" msgstr "Passwort verbergen" @@ -3898,11 +3898,6 @@ msgstr "Passwort anzeigen" msgid "Menu Name" msgstr "Name des Menüs" -#: wp-includes/customize/class-wp-customize-site-icon-control.php:70 -#: wp-includes/media-template.php:1253 -msgid "Preview as a browser icon" -msgstr "Vorschau als Browser-Icon" - #: wp-includes/customize/class-wp-customize-site-icon-control.php:74 #: wp-includes/media-template.php:1260 msgid "Preview as an app icon" @@ -3912,6 +3907,11 @@ msgstr "Vorschau als App-Icon" msgid "As an app icon" msgstr "Als App-Icon" +#: wp-includes/customize/class-wp-customize-site-icon-control.php:70 +#: wp-includes/media-template.php:1253 +msgid "Preview as a browser icon" +msgstr "Vorschau als Browser-Icon" + #: wp-includes/media-template.php:1248 msgid "As a browser icon" msgstr "Als Browser-Icon" @@ -3952,14 +3952,6 @@ msgctxt "password strength" msgid "Very weak" msgstr "Ganz schwach" -#: wp-includes/customize/class-wp-customize-header-image-control.php:206 -msgid "Hide header image" -msgstr "Header-Bild ausblenden" - -#: wp-includes/customize/class-wp-customize-header-image-control.php:206 -msgid "Hide image" -msgstr "Bild ausblenden" - #: wp-includes/customize/class-wp-customize-header-image-control.php:207 msgid "Add new image" msgstr "Neues Bild hinzufügen" @@ -3968,15 +3960,23 @@ msgstr "Neues Bild hinzufügen" msgid "Add new header image" msgstr "Neues Header-Bild hinzufügen" -#: wp-includes/class-wp-customize-manager.php:3842 -msgid "Site Icon" -msgstr "Website-Icon" +#: wp-includes/customize/class-wp-customize-header-image-control.php:206 +msgid "Hide image" +msgstr "Bild ausblenden" + +#: wp-includes/customize/class-wp-customize-header-image-control.php:206 +msgid "Hide header image" +msgstr "Header-Bild ausblenden" #. translators: %s: site icon size in pixels #: wp-includes/class-wp-customize-manager.php:3845 msgid "The Site Icon is used as a browser and app icon for your site. Icons must be square, and at least %s pixels wide and tall." msgstr "Das Website-Icon wird als Browser- und App-Icon für deine Website genutzt. Icons müssen quadratisch und mindestens %s Pixel breit und hoch sein." +#: wp-includes/class-wp-customize-manager.php:3842 +msgid "Site Icon" +msgstr "Website-Icon" + #: wp-includes/class-wp-customize-manager.php:3793 msgid "Site Identity" msgstr "Website-Informationen" @@ -3990,97 +3990,97 @@ msgstr "Zum Menü hinzufügen: %1$s (%2$s)" msgid "When starting a new paragraph with one of these formatting shortcuts followed by a space, the formatting will be applied automatically. Press Backspace or Escape to undo." msgstr "Wenn ein neuer Absatz nach einem dieser Muster, gefolgt von einem Leerzeichen, anfängt, wird die Formatierung automatisch eingefügt. Drücke bitte die Löschen- oder die Escape-Taste, um das rückgängig zu machen." -#: wp-login.php:507 -msgid "Your password reset link appears to be invalid. Please request a new link below." -msgstr "Dein Link zum Zurücksetzen des Passworts scheint ungültig zu sein. Bitte fordere nachstehend einen neuen Link an." - #: wp-login.php:509 msgid "Your password reset link has expired. Please request a new link below." msgstr "Dein Link zum Zurücksetzen des Passworts ist abgelaufen. Bitte fordere nachstehend einen neuen Link an." +#: wp-login.php:507 +msgid "Your password reset link appears to be invalid. Please request a new link below." +msgstr "Dein Link zum Zurücksetzen des Passworts scheint ungültig zu sein. Bitte fordere nachstehend einen neuen Link an." + #: wp-includes/wp-db.php:1385 wp-includes/wp-db.php:1402 msgid "WordPress database error:" msgstr "WordPress-Datenbank-Fehler:" -#: wp-includes/ms-functions.php:455 wp-includes/user.php:1458 -msgid "Username may not be longer than 60 characters." -msgstr "Der Benutzername darf nicht länger als 60 Zeichen sein." - #: wp-includes/pluggable.php:1822 msgid "To set your password, visit the following address:" msgstr "Unter der folgenden Adresse kannst du dein Passwort festlegen:" -#: wp-includes/class-wp-customize-nav-menus.php:413 -#: wp-includes/customize/class-wp-customize-nav-menu-setting.php:447 -msgctxt "Missing menu name." -msgid "(unnamed)" -msgstr "(unbenannt)" - -#: wp-includes/class-wp-customize-nav-menus.php:436 -#: wp-includes/class-wp-customize-widgets.php:794 -msgid "Reorder mode enabled" -msgstr "Sortiermodus aktiviert" +#: wp-includes/ms-functions.php:455 wp-includes/user.php:1458 +msgid "Username may not be longer than 60 characters." +msgstr "Der Benutzername darf nicht länger als 60 Zeichen sein." -#: wp-includes/class-wp-customize-nav-menus.php:437 -#: wp-includes/class-wp-customize-widgets.php:795 -msgid "Reorder mode closed" -msgstr "Sortiermodus beendet" +#. translators: %s: Name of the directory (build) +#: wp-includes/class-wp-locale.php:247 +msgid "The %s directory of the develop repository must be used for RTL." +msgstr "Das Verzeichnis %s des Entwicklungs-Repository muss für die Rechts-nach-links-Schreibrichtung verwendet werden." -#: wp-includes/class-wp-customize-nav-menus.php:439 -msgid "Close reorder mode" -msgstr "Sortiermodus beenden" - -#: wp-includes/customize/class-wp-customize-themes-section.php:45 -#: wp-includes/customize/class-wp-customize-themes-section.php:64 -msgid "Previewing theme" -msgstr "Theme-Vorschau" - -#. translators: 1: original menu name, 2: duplicate count -#: wp-includes/customize/class-wp-customize-nav-menu-setting.php:531 -msgid "%1$s (%2$d)" -msgstr "%1$s (%2$d)" +#. translators: 1: PHP class name, 2: version number, 3: __construct() method +#: wp-includes/functions.php:3897 +msgid "The called constructor method for %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." +msgstr "Die verwendete Konstruktor-Methode für %1$s ist seit Version %2$s <strong>veraltet</strong>! Verwende stattdessen %3$s." #: wp-includes/class-wp-editor.php:1016 msgctxt "HTML tag" msgid "Preformatted" msgstr "Vorformatiert" -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:51 -msgid "Add or remove menu items" -msgstr "Menüeinträge hinzufügen oder entfernen" +#. translators: 1: original menu name, 2: duplicate count +#: wp-includes/customize/class-wp-customize-nav-menu-setting.php:531 +msgid "%1$s (%2$d)" +msgstr "%1$s (%2$d)" -#: wp-includes/class-wp-customize-nav-menus.php:438 -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:54 -msgid "Reorder menu items" -msgstr "Menüeinträge neu anordnen" +#: wp-includes/customize/class-wp-customize-themes-section.php:45 +#: wp-includes/customize/class-wp-customize-themes-section.php:64 +msgid "Previewing theme" +msgstr "Theme-Vorschau" #: wp-includes/customize/class-wp-customize-themes-section.php:43 #: wp-includes/customize/class-wp-customize-themes-section.php:62 msgid "Active theme" msgstr "Aktives Theme" -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:58 -msgid "When in reorder mode, additional controls to reorder menu items will be available in the items list above." -msgstr "Wird der Sortiermodus aufgerufen, stehen in der obigen Liste zusätzliche Bedienelemente zur Sortierung der Menüeinträge zur Verfügung." - -#. translators: 1: PHP class name, 2: version number, 3: __construct() method -#: wp-includes/functions.php:3897 -msgid "The called constructor method for %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." -msgstr "Die verwendete Konstruktor-Methode für %1$s ist seit Version %2$s <strong>veraltet</strong>! Verwende stattdessen %3$s." +#: wp-includes/class-wp-customize-nav-menus.php:564 +msgid "Menus can be displayed in locations defined by your theme." +msgstr "Menüs können in Bereichen angezeigt werden, die in deinem Theme festgelegt wurden." #. translators: URL to the widgets panel of the customizer #: wp-includes/class-wp-customize-nav-menus.php:562 msgid "Menus can be displayed in locations defined by your theme or in <a href=\"%s\">widget areas</a> by adding a “Custom Menu” widget." msgstr "Menüs können in Bereichen angezeigt werden, die in deinem Theme festgelegt wurden oder in den <a href=\"%s\">Widget-Bereichen</a> durch Hinzufügen des „Individuelles Menü“-Widgets." -#: wp-includes/class-wp-customize-nav-menus.php:564 -msgid "Menus can be displayed in locations defined by your theme." -msgstr "Menüs können in Bereichen angezeigt werden, die in deinem Theme festgelegt wurden." +#: wp-includes/class-wp-customize-nav-menus.php:437 +#: wp-includes/class-wp-customize-widgets.php:795 +msgid "Reorder mode closed" +msgstr "Sortiermodus beendet" -#. translators: %s: Name of the directory (build) -#: wp-includes/class-wp-locale.php:247 -msgid "The %s directory of the develop repository must be used for RTL." -msgstr "Das Verzeichnis %s des Entwicklungs-Repository muss für die Rechts-nach-links-Schreibrichtung verwendet werden." +#: wp-includes/class-wp-customize-nav-menus.php:436 +#: wp-includes/class-wp-customize-widgets.php:794 +msgid "Reorder mode enabled" +msgstr "Sortiermodus aktiviert" + +#: wp-includes/class-wp-customize-nav-menus.php:413 +#: wp-includes/customize/class-wp-customize-nav-menu-setting.php:447 +msgctxt "Missing menu name." +msgid "(unnamed)" +msgstr "(unbenannt)" + +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:58 +msgid "When in reorder mode, additional controls to reorder menu items will be available in the items list above." +msgstr "Wird der Sortiermodus aufgerufen, stehen in der obigen Liste zusätzliche Bedienelemente zur Sortierung der Menüeinträge zur Verfügung." + +#: wp-includes/class-wp-customize-nav-menus.php:439 +msgid "Close reorder mode" +msgstr "Sortiermodus beenden" + +#: wp-includes/class-wp-customize-nav-menus.php:438 +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:54 +msgid "Reorder menu items" +msgstr "Menüeinträge neu anordnen" + +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:51 +msgid "Add or remove menu items" +msgstr "Menüeinträge hinzufügen oder entfernen" #. translators: User email change notification email subject. 1: Site name #: wp-includes/user.php:1893 @@ -4151,26 +4151,19 @@ msgstr "" "von allen auf ###SITENAME###\n" "###SITEURL###" -#: wp-includes/script-loader.php:110 -msgid "Close inserted text tag" -msgstr "Tag für eingefügten Text schließen" +#: wp-includes/taxonomy.php:511 +msgid "No tags" +msgstr "Keine Schlagwörter" #. translators: %s: shortcode tag #: wp-includes/shortcodes.php:320 msgid "Attempting to parse a shortcode without a valid callback: %s" msgstr "Es wurde versucht, einen Shortcode ohne gültigen Callback zu parsen: %s" -#: wp-includes/script-loader.php:119 -msgid "Close code tag" -msgstr "Code-Tag schließen" - -#: wp-includes/script-loader.php:117 -msgid "Close list item tag" -msgstr "Tag für Listeneintrag schließen" - -#: wp-includes/script-loader.php:113 -msgid "Close bulleted list tag" -msgstr "Aufzählungs-Tag schließen" +#. translators: %s: Error string for a failed update +#: wp-includes/script-loader.php:656 +msgid "Update Failed: %s" +msgstr "Aktualisierung fehlgeschlagen: %s" #: wp-includes/script-loader.php:527 msgid "" @@ -4180,18 +4173,13 @@ msgstr "" "Bist du sicher, dass du diesen Kommentar bearbeiten möchtest?\n" "Deine Änderungen werden verworfen." -#: wp-includes/taxonomy.php:511 -msgid "No tags" -msgstr "Keine Schlagwörter" - -#: wp-includes/script-loader.php:109 -msgid "Inserted text" -msgstr "Eingefügter Text" +#: wp-includes/script-loader.php:119 +msgid "Close code tag" +msgstr "Code-Tag schließen" -#. translators: %s: Error string for a failed update -#: wp-includes/script-loader.php:656 -msgid "Update Failed: %s" -msgstr "Aktualisierung fehlgeschlagen: %s" +#: wp-includes/script-loader.php:117 +msgid "Close list item tag" +msgstr "Tag für Listeneintrag schließen" #: wp-includes/script-loader.php:116 msgid "List item" @@ -4201,47 +4189,59 @@ msgstr "Listeneintrag" msgid "Close numbered list tag" msgstr "Nummerierte-Liste-Tag schließen" -#: wp-includes/script-loader.php:106 -msgid "Close blockquote tag" -msgstr "Zitat-Tag schließen" +#: wp-includes/script-loader.php:113 +msgid "Close bulleted list tag" +msgstr "Aufzählungs-Tag schließen" + +#: wp-includes/script-loader.php:110 +msgid "Close inserted text tag" +msgstr "Tag für eingefügten Text schließen" + +#: wp-includes/script-loader.php:109 +msgid "Inserted text" +msgstr "Eingefügter Text" #: wp-includes/script-loader.php:108 msgid "Close deleted text tag" msgstr "Tag für gelöschten Text schließen" -#: wp-includes/script-loader.php:103 -msgid "Close italic tag" -msgstr "Kursiv-Tag schließen" - #: wp-includes/script-loader.php:107 msgid "Deleted text (strikethrough)" msgstr "Gelöschter Text (durchgestrichen)" +#: wp-includes/script-loader.php:106 +msgid "Close blockquote tag" +msgstr "Zitat-Tag schließen" + +#: wp-includes/script-loader.php:103 +msgid "Close italic tag" +msgstr "Kursiv-Tag schließen" + #: wp-includes/script-loader.php:101 msgid "Close bold tag" msgstr "Fettdruck-Tag schließen" -#: wp-includes/media-template.php:1167 -msgid "Remove poster image" -msgstr "Vorschaubild entfernen" - #: wp-includes/media-template.php:1199 msgctxt "media" msgid "Remove video track" msgstr "Video-Track entfernen" -#: wp-includes/formatting.php:125 -msgctxt "Comma-separated list of replacement words in your language" -msgid "’tain’t,’twere,’twas,’tis,’twill,’til,’bout,’nuff,’round,’cause,’em" -msgstr "’n,’s" +#: wp-includes/media-template.php:1167 +msgid "Remove poster image" +msgstr "Vorschaubild entfernen" + +#: wp-includes/media-template.php:1134 wp-includes/media-template.php:1146 +msgid "Remove video source" +msgstr "Video-Quelle entfernen" #: wp-includes/media-template.php:1051 wp-includes/media-template.php:1065 msgid "Remove audio source" msgstr "Audio-Quelle entfernen" -#: wp-includes/media-template.php:1134 wp-includes/media-template.php:1146 -msgid "Remove video source" -msgstr "Video-Quelle entfernen" +#: wp-includes/formatting.php:125 +msgctxt "Comma-separated list of replacement words in your language" +msgid "’tain’t,’twere,’twas,’tis,’twill,’til,’bout,’nuff,’round,’cause,’em" +msgstr "’n,’s" #. translators: This is a comma-separated list of words that defy the syntax of #. quotations in normal use, for example... 'We do not have enough words yet' @@ -4252,27 +4252,15 @@ msgctxt "Comma-separated list of words to texturize in your language" msgid "'tain't,'twere,'twas,'tis,'twill,'til,'bout,'nuff,'round,'cause,'em" msgstr "'n,'s" -#: wp-includes/class-wp-editor.php:1266 -msgid "Inline toolbar (when an image, link or preview is selected)" -msgstr "Inline-Werkzeugleiste (wenn ein Bild, ein Link oder die Vorschau ausgewählt ist)" - -#: wp-includes/class-wp-editor.php:1264 -msgid "Additional shortcuts," -msgstr "Zusätzliche Shortcuts," - #: wp-includes/default-widgets.php:195 #: wp-includes/widgets/class-wp-widget-text.php:370 #: wp-includes/widgets/class-wp-widget-text.php:431 msgid "Content:" msgstr "Inhalt:" -#: wp-includes/class-wp-editor.php:1263 -msgid "Default shortcuts," -msgstr "Standard-Shortcuts," - #: wp-includes/class-wp-xmlrpc-server.php:559 msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles" -msgstr "Erlaube Link-Benachrichtigungen von anderen Blogs (Pingbacks und Trackbacks) bei neuen Beiträgen" +msgstr "Link-Benachrichtigungen von anderen Blogs (Pingbacks und Trackbacks) bei neuen Beiträgen erlauben" #: wp-includes/class-wp-editor.php:1273 msgid "Ctrl + letter:" @@ -4290,6 +4278,18 @@ msgstr "Shift + Alt + Zeichen:" msgid "Ctrl + Alt + letter:" msgstr "Strg + Alt + Zeichen:" +#: wp-includes/class-wp-editor.php:1266 +msgid "Inline toolbar (when an image, link or preview is selected)" +msgstr "Inline-Werkzeugleiste (wenn ein Bild, ein Link oder die Vorschau ausgewählt ist)" + +#: wp-includes/class-wp-editor.php:1264 +msgid "Additional shortcuts," +msgstr "Zusätzliche Shortcuts," + +#: wp-includes/class-wp-editor.php:1263 +msgid "Default shortcuts," +msgstr "Standard-Shortcuts," + #: wp-includes/class-wp-customize-section.php:248 #: wp-includes/customize/class-wp-customize-themes-section.php:55 msgid "Customizing" @@ -4304,6 +4304,10 @@ msgstr "Menü-Einstellungen" msgid "Add to Menu" msgstr "Zum Menü hinzufügen" +#: wp-includes/class-wp-customize-nav-menus.php:1054 +msgid "Custom Links" +msgstr "Individuelle Links" + #: wp-includes/class-wp-customize-nav-menus.php:968 #: wp-includes/class-wp-customize-widgets.php:846 msgid "The search results will be updated as you type." @@ -4313,13 +4317,9 @@ msgstr "Die Suchergebnisse werden aktualisiert, während du schreibst." msgid "Search menu items…" msgstr "Menüeinträge suchen …" -#: wp-includes/class-wp-customize-nav-menus.php:1054 -msgid "Custom Links" -msgstr "Individuelle Links" - -#: wp-includes/class-wp-customize-nav-menus.php:675 -msgid "Add a Menu" -msgstr "Menü hinzufügen" +#: wp-includes/class-wp-customize-nav-menus.php:966 +msgid "Search Menu Items" +msgstr "Menüeinträge suchen" #: wp-includes/class-wp-customize-nav-menus.php:961 msgid "Add Menu Items" @@ -4334,26 +4334,26 @@ msgstr "Menüeinträge hinzufügen" msgid "Customizing ▸ %s" msgstr "Deine Anpassungen für ▸ %s" -#: wp-includes/class-wp-customize-nav-menus.php:966 -msgid "Search Menu Items" -msgstr "Menüeinträge suchen" +#: wp-includes/class-wp-customize-nav-menus.php:933 +msgid "Move one level down" +msgstr "Eine Ebene nach unten verschieben" #: wp-includes/class-wp-customize-nav-menus.php:932 msgid "Move one level up" msgstr "Eine Ebene nach oben verschieben" -#: wp-includes/class-wp-customize-nav-menus.php:933 -msgid "Move one level down" -msgstr "Eine Ebene nach unten verschieben" +#: wp-includes/class-wp-customize-nav-menus.php:687 +msgid "New menu name" +msgstr "Neuer Menüname" + +#: wp-includes/class-wp-customize-nav-menus.php:675 +msgid "Add a Menu" +msgstr "Menü hinzufügen" #: wp-includes/class-wp-customize-nav-menus.php:589 msgid "Menu Locations" msgstr "Menü-Positionen" -#: wp-includes/class-wp-customize-nav-menus.php:687 -msgid "New menu name" -msgstr "Neuer Menüname" - #: wp-includes/class-wp-customize-nav-menus.php:559 msgid "This panel is used for managing navigation menus for content you have already published on your site. You can create menus and add items for existing content such as pages, posts, categories, tags, formats, or custom links." msgstr "In diesem Bereich werden Navigations-Menüs für Inhalte verwaltet, die du bereits auf deiner Website veröffentlicht hast. Du kannst Menüs erstellen und Einträge für existierende Inhalte wie Seiten, Beiträge, Kategorien, Schlagwörter, Formate oder individuelle Links hinzufügen." @@ -4396,14 +4396,14 @@ msgstr "Ganz nach oben verschieben" msgid "Move down one" msgstr "Eins nach unten verschieben" -#: wp-includes/class-wp-customize-nav-menus.php:435 -msgid "Loading more results... please wait." -msgstr "Weitere Ergebnisse werden geladen … bitte warten." - #: wp-includes/class-wp-customize-nav-menus.php:456 msgid "Move up one" msgstr "Eins nach oben verschieben" +#: wp-includes/class-wp-customize-nav-menus.php:435 +msgid "Loading more results... please wait." +msgstr "Weitere Ergebnisse werden geladen … bitte warten." + #: wp-includes/class-wp-customize-nav-menus.php:434 msgid "Additional items found: %d" msgstr "Es wurden weitere Einträge gefunden: %d" @@ -4417,6 +4417,11 @@ msgstr "Anzahl gefundener Einträge: %d" msgid "%s (Pending)" msgstr "%s (Ausstehend)" +#. translators: %s: title of menu item which is invalid +#: wp-includes/class-wp-customize-nav-menus.php:430 +msgid "%s (Invalid)" +msgstr "%s (ungültig)" + #: wp-includes/class-wp-customize-nav-menus.php:426 msgid "Menu item is now a sub-item" msgstr "Menüeintrag ist nun ein untergeordneter Eintrag" @@ -4425,13 +4430,13 @@ msgstr "Menüeintrag ist nun ein untergeordneter Eintrag" msgid "Menu item moved out of submenu" msgstr "Menüeintrag aus dem Untermenü entfernt" -#: wp-includes/class-wp-customize-nav-menus.php:419 -msgid "Menu item added" -msgstr "Menüeintrag hinzugefügt" +#: wp-includes/class-wp-customize-nav-menus.php:424 +msgid "Menu item moved down" +msgstr "Menüeintrag nach unten verschoben" -#: wp-includes/class-wp-customize-nav-menus.php:420 -msgid "Menu item deleted" -msgstr "Menüeintrag gelöscht" +#: wp-includes/class-wp-customize-nav-menus.php:423 +msgid "Menu item moved up" +msgstr "Menüeintrag nach oben verschoben" #: wp-includes/class-wp-customize-nav-menus.php:422 msgid "Menu deleted" @@ -4441,18 +4446,13 @@ msgstr "Menü gelöscht" msgid "Menu created" msgstr "Menü erstellt" -#. translators: %s: title of menu item which is invalid -#: wp-includes/class-wp-customize-nav-menus.php:430 -msgid "%s (Invalid)" -msgstr "%s (ungültig)" +#: wp-includes/class-wp-customize-nav-menus.php:420 +msgid "Menu item deleted" +msgstr "Menüeintrag gelöscht" -#: wp-includes/class-wp-customize-nav-menus.php:423 -msgid "Menu item moved up" -msgstr "Menüeintrag nach oben verschoben" - -#: wp-includes/class-wp-customize-nav-menus.php:424 -msgid "Menu item moved down" -msgstr "Menüeintrag nach unten verschoben" +#: wp-includes/class-wp-customize-nav-menus.php:419 +msgid "Menu item added" +msgstr "Menüeintrag hinzugefügt" #: wp-includes/class-wp-customize-nav-menus.php:159 msgctxt "nav menu home label" @@ -4507,16 +4507,16 @@ msgstr "Menü löschen" msgid "Add Items" msgstr "Einträge hinzufügen" -#. translators: %s: site name -#: wp-includes/admin-bar.php:319 -msgid "User Dashboard: %s" -msgstr "Benutzer-Dashboard: %s" - #. translators: 1: error message, 2: line number #: wp-includes/atomlib.php:175 msgid "XML Error: %1$s at line %2$s" msgstr "XML-Fehler: %1$s in Zeile %2$s" +#. translators: %s: site name +#: wp-includes/admin-bar.php:319 +msgid "User Dashboard: %s" +msgstr "Benutzer-Dashboard: %s" + #. translators: %s: theme name #: wp-includes/customize/class-wp-customize-theme-control.php:99 msgid "<span>Active:</span> %s" @@ -4547,15 +4547,15 @@ msgstr "Die Verbindung zum Server wurde unterbrochen oder der Server ist ausgela msgid "Updates may not complete if you navigate away from this page." msgstr "Aktualisierungen werden möglicherweise nicht abgeschlossen, wenn du diese Seite verlässt." +#: wp-includes/script-loader.php:654 +msgid "Update Failed!" +msgstr "Aktualisierung fehlgeschlagen!" + #. translators: Accessibility text #: wp-includes/script-loader.php:668 msgid "Update canceled." msgstr "Aktualisierung abgebrochen." -#: wp-includes/script-loader.php:654 -msgid "Update Failed!" -msgstr "Aktualisierung fehlgeschlagen!" - #: wp-includes/customize/class-wp-customize-themes-section.php:50 msgctxt "theme" msgid "Change" @@ -4565,17 +4565,6 @@ msgstr "Wechseln" msgid "Dismiss this notice." msgstr "Diese Meldung verwerfen." -#. translators: 1: number of comments, 2: post title -#: wp-includes/theme-compat/comments.php:40 -msgid "%1$s response to %2$s" -msgid_plural "%1$s responses to %2$s" -msgstr[0] "%1$s Antwort zu %2$s" -msgstr[1] "%1$s Antworten zu %2$s" - -#: wp-includes/class-wp-customize-nav-menus.php:578 -msgid "Your theme supports one menu. Select which menu you would like to use." -msgstr "Dein Theme unterstützt ein Menü. Wähle aus, welches Menü genutzt werden soll." - #. translators: %s: number of menu locations #: wp-includes/class-wp-customize-nav-menus.php:581 msgid "Your theme supports %s menu. Select which menu appears in each location." @@ -4583,9 +4572,20 @@ msgid_plural "Your theme supports %s menus. Select which menu appears in each lo msgstr[0] "Dein Theme unterstützt %s Menü. Wähle aus, welches Menü an welcher Position genutzt werden soll." msgstr[1] "Dein Theme unterstützt %s Menüs. Wähle aus, welches Menü an welcher Position genutzt werden soll." -#: wp-includes/taxonomy.php:3489 -msgid "Could not split shared term." -msgstr "Der gemeinsam genutzte Begriff konnte nicht aufgeteilt werden." +#: wp-includes/class-wp-customize-nav-menus.php:578 +msgid "Your theme supports one menu. Select which menu you would like to use." +msgstr "Dein Theme unterstützt ein Menü. Wähle aus, welches Menü genutzt werden soll." + +#. translators: 1: number of comments, 2: post title +#: wp-includes/theme-compat/comments.php:40 +msgid "%1$s response to %2$s" +msgid_plural "%1$s responses to %2$s" +msgstr[0] "%1$s Antwort zu %2$s" +msgstr[1] "%1$s Antworten zu %2$s" + +#: wp-includes/script-loader.php:469 +msgid "Site Preview" +msgstr "Vorschau der Website" #. translators: %d: nth image found in a post #: wp-includes/script-loader.php:587 @@ -4597,47 +4597,85 @@ msgstr "Vorgeschlagenes Bild Nr. %d" msgid "Suggested embed #%d" msgstr "Vorgeschlagener Embed Nr. %d" -#: wp-includes/taxonomy.php:380 wp-includes/taxonomy.php:381 -msgid "Taxonomy names must be between 1 and 32 characters in length." -msgstr "Taxonomie-Namen müssen eine Länge zwischen 1 und 32 Zeichen haben." +#: wp-includes/script-loader.php:647 +msgid "Updating..." +msgstr "Aktualisiere …" -#: wp-includes/script-loader.php:469 -msgid "Site Preview" -msgstr "Vorschau der Website" +#: wp-includes/script-loader.php:670 +msgid "Install Now" +msgstr "Jetzt installieren" -#: wp-includes/theme.php:2975 -msgid "Customizer" -msgstr "Customizer" +#: wp-includes/script-loader.php:673 +msgid "Installing..." +msgstr "Installiere …" -#. translators: Accessibility text -#: wp-includes/script-loader.php:666 -msgid "Update completed successfully." -msgstr "Aktualisierung erfolgreich abgeschlossen." +#: wp-includes/script-loader.php:691 +msgid "Installing... please wait." +msgstr "Installiere … bitte warten." #. translators: Accessibility text #: wp-includes/script-loader.php:664 msgid "Updating... please wait." msgstr "Aktualisiere … bitte warten." -#: wp-includes/script-loader.php:647 -msgid "Updating..." -msgstr "Aktualisiere …" - -#: wp-includes/script-loader.php:673 -msgid "Installing..." -msgstr "Installiere …" - -#: wp-includes/script-loader.php:670 -msgid "Install Now" -msgstr "Jetzt installieren" +#. translators: Accessibility text +#: wp-includes/script-loader.php:666 +msgid "Update completed successfully." +msgstr "Aktualisierung erfolgreich abgeschlossen." #: wp-includes/script-loader.php:692 msgid "Installation completed successfully." msgstr "Installation erfolgreich abgeschlossen." -#: wp-includes/script-loader.php:691 -msgid "Installing... please wait." -msgstr "Installiere … bitte warten." +#: wp-includes/taxonomy.php:380 wp-includes/taxonomy.php:381 +msgid "Taxonomy names must be between 1 and 32 characters in length." +msgstr "Taxonomie-Namen müssen eine Länge zwischen 1 und 32 Zeichen haben." + +#: wp-includes/taxonomy.php:3489 +msgid "Could not split shared term." +msgstr "Der gemeinsam genutzte Begriff konnte nicht aufgeteilt werden." + +#: wp-includes/theme.php:2975 +msgid "Customizer" +msgstr "Customizer" + +#: wp-includes/media.php:3502 +msgid "Drag and drop to reorder media files." +msgstr "Nutze Drag & Drop zum Umsortieren der Medien-Dateien." + +#. translators: Do not translate USERNAME, SITE_NAME, BLOG_URL, PASSWORD: those +#. are placeholders. +#: wp-includes/ms-functions.php:1520 +msgid "" +"Howdy USERNAME,\n" +"\n" +"Your new SITE_NAME site has been successfully set up at:\n" +"BLOG_URL\n" +"\n" +"You can log in to the administrator account with the following information:\n" +"\n" +"Username: USERNAME\n" +"Password: PASSWORD\n" +"Log in here: BLOG_URLwp-login.php\n" +"\n" +"We hope you enjoy your new site. Thanks!\n" +"\n" +"--The Team @ SITE_NAME" +msgstr "" +"Hallo USERNAME,\n" +"\n" +"Deine neue Website SITE_NAME wurde erfolgreich eingerichtet:\n" +"BLOG_URL\n" +"\n" +"Du kannst dich mit den folgenden Angaben als Administrator anmelden:\n" +"\n" +"Benutzername: USERNAME\n" +"Passwort: PASSWORD\n" +"Melde dich hier an: BLOG_URLwp-login.php\n" +"\n" +"Wir hoffen, dir gefällt deine neue Website. Danke!\n" +"\n" +"--Das Team @ SITE_NAME" #. translators: Do not translate USERNAME, PASSWORD, LOGINLINK, SITE_NAME: #. those are placeholders. @@ -4667,6 +4705,11 @@ msgstr "" "\n" "-- Das Team @ SITE_NAME" +#. translators: %s: table name +#: wp-includes/ms-load.php:471 +msgid "<strong>Database tables are missing.</strong> This means that MySQL is not running, WordPress was not installed properly, or someone deleted %s. You really should look at your database now." +msgstr "<strong>Datenbanktabellen fehlen.</strong> Das heißt, dass MySQL nicht läuft, WordPress nicht richtig installiert wurde oder %s von jemandem gelöscht wurde. Du solltest jetzt ernsthaft einen Blick in deine Datenbank werfen." + #: wp-includes/class-wp-customize-nav-menus.php:161 #: wp-includes/class-wp-customize-nav-menus.php:414 #: wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:337 @@ -4674,17 +4717,10 @@ msgstr "" msgid "Custom Link" msgstr "Individueller Link" -#. translators: %s: table name -#: wp-includes/ms-load.php:471 -msgid "<strong>Database tables are missing.</strong> This means that MySQL is not running, WordPress was not installed properly, or someone deleted %s. You really should look at your database now." -msgstr "<strong>Datenbanktabellen fehlen.</strong> Das heißt, dass MySQL nicht läuft, WordPress nicht richtig installiert wurde oder %s von jemandem gelöscht wurde. Du solltest jetzt ernsthaft einen Blick in deine Datenbank werfen." - -#. translators: 1: comment author, 2: author IP, 3: author domain -#. translators: 1: Comment author name, 2: comment author's IP, 3: comment -#. author IP's hostname -#: wp-includes/pluggable.php:1488 wp-includes/pluggable.php:1648 -msgid "Author: %1$s (IP: %2$s, %3$s)" -msgstr "Autor: %1$s (IP: %2$s, %3$s)" +#. translators: 1: site url, 2: table name, 3: database name +#: wp-includes/ms-load.php:477 +msgid "<strong>Could not find site %1$s.</strong> Searched for table %2$s in database %3$s. Is that right?" +msgstr "<strong>Die Website %1$s wurde nicht gefunden.</strong> Es wurde Tabelle %2$s in Datenbank %3$s gesucht. Ist das richtig?" #. translators: 1: Trackback/pingback website name, 2: website IP, 3: website #. hostname @@ -4693,10 +4729,16 @@ msgstr "Autor: %1$s (IP: %2$s, %3$s)" msgid "Website: %1$s (IP: %2$s, %3$s)" msgstr "Website: %1$s (IP: %2$s, %3$s)" -#. translators: 1: site url, 2: table name, 3: database name -#: wp-includes/ms-load.php:477 -msgid "<strong>Could not find site %1$s.</strong> Searched for table %2$s in database %3$s. Is that right?" -msgstr "<strong>Die Website %1$s wurde nicht gefunden.</strong> Es wurde Tabelle %2$s in Datenbank %3$s gesucht. Ist das richtig?" +#. translators: 1: comment author, 2: author IP, 3: author domain +#. translators: 1: Comment author name, 2: comment author's IP, 3: comment +#. author IP's hostname +#: wp-includes/pluggable.php:1488 wp-includes/pluggable.php:1648 +msgid "Author: %1$s (IP: %2$s, %3$s)" +msgstr "Autor: %1$s (IP: %2$s, %3$s)" + +#: wp-includes/post.php:1116 wp-includes/post.php:1117 +msgid "Post type names must be between 1 and 20 characters in length." +msgstr "Der Name eines Inhaltstyps muss aus mindestens einem und maximal 20 Zeichen bestehen." #. translators: revision date format, see https://secure.php.net/date #: wp-includes/post-template.php:1701 wp-includes/post-template.php:1737 @@ -4704,68 +4746,15 @@ msgctxt "revision date format" msgid "F j, Y @ H:i:s" msgstr "j. F Y @ G:i:s" -#: wp-includes/post.php:1116 wp-includes/post.php:1117 -msgid "Post type names must be between 1 and 20 characters in length." -msgstr "Der Name eines Inhaltstyps muss aus mindestens einem und maximal 20 Zeichen bestehen." - -#. translators: Do not translate USERNAME, SITE_NAME, BLOG_URL, PASSWORD: those -#. are placeholders. -#: wp-includes/ms-functions.php:1520 -msgid "" -"Howdy USERNAME,\n" -"\n" -"Your new SITE_NAME site has been successfully set up at:\n" -"BLOG_URL\n" -"\n" -"You can log in to the administrator account with the following information:\n" -"\n" -"Username: USERNAME\n" -"Password: PASSWORD\n" -"Log in here: BLOG_URLwp-login.php\n" -"\n" -"We hope you enjoy your new site. Thanks!\n" -"\n" -"--The Team @ SITE_NAME" -msgstr "" -"Hallo USERNAME,\n" -"\n" -"Deine neue Website SITE_NAME wurde erfolgreich eingerichtet:\n" -"BLOG_URL\n" -"\n" -"Du kannst dich mit den folgenden Angaben als Administrator anmelden:\n" -"\n" -"Benutzername: USERNAME\n" -"Passwort: PASSWORD\n" -"Melde dich hier an: BLOG_URLwp-login.php\n" -"\n" -"Wir hoffen, dir gefällt deine neue Website. Danke!\n" -"\n" -"--Das Team @ SITE_NAME" - -#: wp-includes/media.php:3502 -msgid "Drag and drop to reorder media files." -msgstr "Nutze Drag & Drop zum Umsortieren der Medien-Dateien." - -#: wp-includes/widgets/class-wp-widget-archives.php:91 -msgid "Select Post" -msgstr "Beitrag auswählen" - -#: wp-includes/widgets/class-wp-widget-archives.php:88 -msgid "Select Week" -msgstr "Woche auswählen" - -#: wp-includes/widgets/class-wp-widget-archives.php:85 -msgid "Select Day" -msgstr "Tag auswählen" - -#: wp-includes/widgets/class-wp-widget-archives.php:79 -msgid "Select Year" -msgstr "Jahr auswählen" +#: wp-includes/class-wp-customize-nav-menus.php:1067 +#: wp-includes/class-wp-editor.php:1696 wp-includes/media-template.php:820 +msgid "Link Text" +msgstr "Link-Text" #. translators: %s: post title -#: wp-includes/comment-template.php:1515 -msgid "Comments Off<span class=\"screen-reader-text\"> on %s</span>" -msgstr "Kommentare deaktiviert<span class=\"screen-reader-text\"> für %s</span>" +#: wp-includes/comment-template.php:1504 +msgid "1 Comment<span class=\"screen-reader-text\"> on %s</span>" +msgstr "1 Kommentar<span class=\"screen-reader-text\"> zu %s</span>" #. translators: 1: Number of comments 2: post title #: wp-includes/comment-template.php:1509 @@ -4775,20 +4764,30 @@ msgstr[0] "%1$s Kommentar<span class=\"screen-reader-text\"> zu %2$s</span>" msgstr[1] "%1$s Kommentare<span class=\"screen-reader-text\"> zu %2$s</span>" #. translators: %s: post title -#: wp-includes/comment-template.php:1504 -msgid "1 Comment<span class=\"screen-reader-text\"> on %s</span>" -msgstr "1 Kommentar<span class=\"screen-reader-text\"> zu %s</span>" +#: wp-includes/comment-template.php:1515 +msgid "Comments Off<span class=\"screen-reader-text\"> on %s</span>" +msgstr "Kommentare deaktiviert<span class=\"screen-reader-text\"> für %s</span>" -#. translators: %s: post title -#: wp-includes/comment-template.php:1499 -msgid "No Comments<span class=\"screen-reader-text\"> on %s</span>" -msgstr "Keine Kommentare<span class=\"screen-reader-text\"> zu %s</span>" +#: wp-includes/widgets/class-wp-widget-archives.php:79 +msgid "Select Year" +msgstr "Jahr auswählen" -#. translators: 1: 'text_direction' argument, 2: bloginfo() function name, 3: -#. is_rtl() function name -#: wp-includes/general-template.php:725 -msgid "The %1$s option is deprecated for the family of %2$s functions. Use the %3$s function instead." -msgstr "Die %1$s Option ist veraltet für die %2$s Funktionsfamilie. %3$s sollte stattdessen verwendet werden." +#: wp-includes/widgets/class-wp-widget-archives.php:85 +msgid "Select Day" +msgstr "Tag auswählen" + +#: wp-includes/widgets/class-wp-widget-archives.php:88 +msgid "Select Week" +msgstr "Woche auswählen" + +#: wp-includes/widgets/class-wp-widget-archives.php:91 +msgid "Select Post" +msgstr "Beitrag auswählen" + +#. translators: %s: post title +#: wp-includes/comment-template.php:1499 +msgid "No Comments<span class=\"screen-reader-text\"> on %s</span>" +msgstr "Keine Kommentare<span class=\"screen-reader-text\"> zu %s</span>" #. translators: 1: 'siteurl'/'home' argument, 2: bloginfo() function name, 3: #. 'url' argument @@ -4796,21 +4795,22 @@ msgstr "Die %1$s Option ist veraltet für die %2$s Funktionsfamilie. %3$s sollte msgid "The %1$s option is deprecated for the family of %2$s functions. Use the %3$s option instead." msgstr "Die %1$s Optionen sind veraltet für die %2$s Funktionsfamilie. Stattdessen sollte die %3$s Option verwendet werden." -#: wp-includes/class-wp-customize-nav-menus.php:1067 -#: wp-includes/class-wp-editor.php:1696 wp-includes/media-template.php:820 -msgid "Link Text" -msgstr "Link-Text" - -#: wp-includes/customize/class-wp-customize-theme-control.php:87 -#: wp-includes/script-loader.php:706 -msgid "Live Preview" -msgstr "Live-Vorschau" +#. translators: 1: 'text_direction' argument, 2: bloginfo() function name, 3: +#. is_rtl() function name +#: wp-includes/general-template.php:725 +msgid "The %1$s option is deprecated for the family of %2$s functions. Use the %3$s function instead." +msgstr "Die %1$s Option ist veraltet für die %2$s Funktionsfamilie. %3$s sollte stattdessen verwendet werden." #: wp-includes/customize/class-wp-customize-theme-control.php:105 #: wp-includes/customize/class-wp-customize-themes-section.php:70 msgid "Theme Details" msgstr "Theme-Details" +#: wp-includes/customize/class-wp-customize-theme-control.php:87 +#: wp-includes/script-loader.php:706 +msgid "Live Preview" +msgstr "Live-Vorschau" + #: wp-includes/taxonomy.php:510 msgid "No categories found." msgstr "Keine Kategorien gefunden." @@ -4824,46 +4824,46 @@ msgstr "Modus für ablenkungsfreies Schreiben" msgid "Theme support for %1$s should be registered before the %2$s hook." msgstr "Theme-Unterstützung für %1$s sollte vor dem %2$s Hook registriert werden." -#: wp-includes/class-wp-customize-widgets.php:790 -msgid "Widget moved down" -msgstr "Widget nach unten verschoben" - #: wp-includes/class-wp-customize-widgets.php:789 msgid "Widget moved up" msgstr "Widget nach oben verschoben" -#: wp-includes/class-wp-editor.php:1278 -msgid "To move focus to other buttons use Tab or the arrow keys. To return focus to the editor press Escape or use one of the buttons." -msgstr "Verwende die Tab-Taste oder die Pfeiltasten, um den Fokus auf andere Buttons zu setzen. Verwende die Escape-Taste oder eine der Schaltflächen, um den Fokus wieder auf den Editor zu setzen." +#: wp-includes/class-wp-customize-widgets.php:790 +msgid "Widget moved down" +msgstr "Widget nach unten verschoben" -#: wp-includes/class-wp-editor.php:1268 -msgid "Editor toolbar" -msgstr "Editor-Werkzeugleiste" +#: wp-includes/class-wp-editor.php:1230 +msgid "Rich Text Area. Press Alt-Shift-H for help." +msgstr "Rich-Text-Bereich. Drücke Alt + Shift + H für Hilfe." + +#: wp-includes/class-wp-editor.php:1265 +msgid "Focus shortcuts:" +msgstr "Fokus-Tastenkombinationen:" #: wp-includes/class-wp-editor.php:1267 msgid "Editor menu (when enabled)" msgstr "Editor-Menü (falls aktiviert)" -#: wp-includes/class-wp-editor.php:1265 -msgid "Focus shortcuts:" -msgstr "Fokus-Tastenkombinationen:" +#: wp-includes/class-wp-editor.php:1268 +msgid "Editor toolbar" +msgstr "Editor-Werkzeugleiste" + +#: wp-includes/class-wp-editor.php:1278 +msgid "To move focus to other buttons use Tab or the arrow keys. To return focus to the editor press Escape or use one of the buttons." +msgstr "Verwende die Tab-Taste oder die Pfeiltasten, um den Fokus auf andere Buttons zu setzen. Verwende die Escape-Taste oder eine der Schaltflächen, um den Fokus wieder auf den Editor zu setzen." #: wp-includes/class-wp-editor.php:1269 msgid "Elements path" msgstr "Elemente-Pfad" -#: wp-includes/class-wp-editor.php:1230 -msgid "Rich Text Area. Press Alt-Shift-H for help." -msgstr "Rich-Text-Bereich. Drücke Alt + Shift + H für Hilfe." - #. translators: 1: month, 2: day of month #: wp-includes/date.php:460 msgid "The following values do not describe a valid date: month %1$s, day %2$s." msgstr "Die folgenden Werte beschreiben kein gültiges Datum: Tag %2$s, Monat %1$s." -#: wp-includes/theme.php:2267 -msgid "You need to pass an array of types." -msgstr "Du musst ein Array von Typen übergeben." +#: wp-includes/taxonomy.php:2059 +msgid "A term with the name provided already exists in this taxonomy." +msgstr "Ein Begriff mit dem angegebenen Namen existiert bereits in dieser Taxonomie." #. translators: %s: database access abstraction class, usually wpdb or a class #. extending wpdb @@ -4871,273 +4871,273 @@ msgstr "Du musst ein Array von Typen übergeben." msgid "%s must set a database connection for use with escaping." msgstr "%s muss eine Datenbank Verbindung setzen, die zum Maskieren benutzt werden soll." -#: wp-includes/taxonomy.php:2059 -msgid "A term with the name provided already exists in this taxonomy." -msgstr "Ein Begriff mit dem angegebenen Namen existiert bereits in dieser Taxonomie." - -#. translators: 1: Comment text -#: wp-includes/pluggable.php:1469 wp-includes/pluggable.php:1480 -#: wp-includes/pluggable.php:1491 wp-includes/pluggable.php:1654 -msgid "Comment: %s" -msgstr "Kommentar: %s" - -#. translators: 1: Trackback/pingback/comment author URL -#: wp-includes/pluggable.php:1468 wp-includes/pluggable.php:1479 -#: wp-includes/pluggable.php:1490 wp-includes/pluggable.php:1630 -#: wp-includes/pluggable.php:1640 wp-includes/pluggable.php:1652 -msgid "URL: %s" -msgstr "URL: %s" - -#: wp-includes/media.php:3520 -msgctxt "noun" -msgid "Trash" -msgstr "Papierkorb" +#: wp-includes/theme.php:2267 +msgid "You need to pass an array of types." +msgstr "Du musst ein Array von Typen übergeben." #: wp-includes/l10n.php:1191 msgctxt "translations" msgid "Installed" msgstr "Installiert" -#: wp-includes/media-template.php:598 -msgid "Edit Selection" -msgstr "Auswahl bearbeiten" +#: wp-includes/l10n.php:1222 +msgctxt "translations" +msgid "Available" +msgstr "Verfügbar" + +#: wp-includes/link-template.php:2480 +msgid "Older posts" +msgstr "Ältere Beiträge" + +#: wp-includes/link-template.php:2482 wp-includes/link-template.php:2536 +#: wp-includes/link-template.php:2580 +msgid "Posts navigation" +msgstr "Beitrags-Navigation" #: wp-includes/link-template.php:2481 msgid "Newer posts" msgstr "Neuere Beiträge" -#: wp-includes/link-template.php:2480 -msgid "Older posts" -msgstr "Ältere Beiträge" +#: wp-includes/script-loader.php:991 +msgid "Previous" +msgstr "Vorherige" -#: wp-includes/l10n.php:1222 -msgctxt "translations" -msgid "Available" -msgstr "Verfügbar" +#: wp-includes/media-template.php:598 +msgid "Edit Selection" +msgstr "Auswahl bearbeiten" -#: wp-includes/pluggable.php:1481 -msgid "You can see all pingbacks on this post here:" -msgstr "Hier findest du alle Pingbacks zu diesem Beitrag:" +#: wp-includes/media.php:3520 +msgctxt "noun" +msgid "Trash" +msgstr "Papierkorb" -#: wp-includes/pluggable.php:1492 -msgid "You can see all comments on this post here:" -msgstr "Hier findest du alle Kommentare zu diesem Beitrag:" +#. translators: 1: Trackback/pingback/comment author URL +#: wp-includes/pluggable.php:1468 wp-includes/pluggable.php:1479 +#: wp-includes/pluggable.php:1490 wp-includes/pluggable.php:1630 +#: wp-includes/pluggable.php:1640 wp-includes/pluggable.php:1652 +msgid "URL: %s" +msgstr "URL: %s" + +#. translators: 1: Comment text +#: wp-includes/pluggable.php:1469 wp-includes/pluggable.php:1480 +#: wp-includes/pluggable.php:1491 wp-includes/pluggable.php:1654 +msgid "Comment: %s" +msgstr "Kommentar: %s" #: wp-includes/pluggable.php:1470 msgid "You can see all trackbacks on this post here:" msgstr "Hier findest du alle Trackbacks zu diesem Beitrag:" -#: wp-includes/script-loader.php:991 -msgid "Previous" -msgstr "Vorherige" +#: wp-includes/pluggable.php:1481 +msgid "You can see all pingbacks on this post here:" +msgstr "Hier findest du alle Pingbacks zu diesem Beitrag:" -#: wp-includes/link-template.php:2482 wp-includes/link-template.php:2536 -#: wp-includes/link-template.php:2580 -msgid "Posts navigation" -msgstr "Beitrags-Navigation" +#: wp-includes/pluggable.php:1492 +msgid "You can see all comments on this post here:" +msgstr "Hier findest du alle Kommentare zu diesem Beitrag:" #: wp-includes/media-template.php:438 wp-includes/media-template.php:541 msgctxt "verb" msgid "Trash" msgstr "In Papierkorb legen" -#: wp-includes/general-template.php:1512 -msgctxt "post format archive title" -msgid "Audio" -msgstr "Audio" - -#: wp-includes/general-template.php:1514 -msgctxt "post format archive title" -msgid "Chats" -msgstr "Chats" +#: wp-includes/class-wp-editor.php:1161 +msgid "Add to Dictionary" +msgstr "Zum Wörterbuch hinzufügen" -#: wp-includes/general-template.php:1508 -msgctxt "post format archive title" -msgid "Links" -msgstr "Links" +#: wp-includes/class-wp-editor.php:1169 +msgid "Border color" +msgstr "Rahmenfarbe" -#. translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: -#. Current taxonomy term -#: wp-includes/general-template.php:1522 -msgid "%1$s: %2$s" -msgstr "%1$s: %2$s" +#: wp-includes/class-wp-editor.php:1198 +msgctxt "horizontal table cell alignment" +msgid "H Align" +msgstr "horiz. Ausrichtung" -#. translators: Post type archive title. 1: Post type name -#: wp-includes/general-template.php:1518 -msgid "Archives: %s" -msgstr "Archive: %s" +#: wp-includes/class-wp-editor.php:1203 +msgctxt "vertical table cell alignment" +msgid "V Align" +msgstr "vert. Ausrichtung" -#: wp-includes/class-wp-editor.php:1252 -msgid "No alignment" -msgstr "Keine Ausrichtung" +#. translators: Date query invalid date message: 1: invalid value, 2: type of +#. value, 3: minimum valid value, 4: maximum valid value +#: wp-includes/date.php:413 +msgid "Invalid value %1$s for %2$s. Expected value should be between %3$s and %4$s." +msgstr "Ungültiger Wert %1$s für %2$s. Der Wert sollte zwischen %3$s und %4$s liegen." -#: wp-includes/general-template.php:1506 -msgctxt "post format archive title" -msgid "Quotes" -msgstr "Zitate" +#. translators: Comment reply button text. 1: Comment author name +#: wp-includes/comment-template.php:1598 +msgid "Reply to %s" +msgstr "Antworte auf %s" -#: wp-includes/general-template.php:1500 -msgctxt "post format archive title" -msgid "Galleries" -msgstr "Galerien" +#. translators: 1: year, 2: month, 3: day of month +#: wp-includes/date.php:443 +msgid "The following values do not describe a valid date: year %1$s, month %2$s, day %3$s." +msgstr "Die folgende Werte beschreiben kein gültiges Datum: Tag %3$s, Monat %2$s, Jahr %1$s" -#: wp-includes/general-template.php:1502 -msgctxt "post format archive title" -msgid "Images" -msgstr "Bilder" +#. translators: Category archive title. 1: Category name +#: wp-includes/general-template.php:1480 +msgid "Category: %s" +msgstr "Kategorie: %s" -#. translators: Monthly archive title. 1: Month name and year -#: wp-includes/general-template.php:1492 -msgid "Month: %s" -msgstr "Monat: %s" +#. translators: Tag archive title. 1: Tag name +#: wp-includes/general-template.php:1483 +msgid "Tag: %s" +msgstr "Schlagwort: %s" -#. translators: Daily archive title. 1: Date -#: wp-includes/general-template.php:1495 -msgid "Day: %s" -msgstr "Tag: %s" +#. translators: Author archive title. 1: Author name +#: wp-includes/general-template.php:1486 +msgid "Author: %s" +msgstr "Autor: %s" #. translators: Yearly archive title. 1: Year #: wp-includes/general-template.php:1489 msgid "Year: %s" msgstr "Jahr: %s" -#. translators: Author archive title. 1: Author name -#: wp-includes/general-template.php:1486 -msgid "Author: %s" -msgstr "Autor: %s" +#: wp-includes/general-template.php:1498 +msgctxt "post format archive title" +msgid "Asides" +msgstr "Kurzmitteilungen" -#. translators: Tag archive title. 1: Tag name -#: wp-includes/general-template.php:1483 -msgid "Tag: %s" -msgstr "Schlagwort: %s" +#: wp-includes/general-template.php:1495 wp-includes/general-template.php:2075 +msgctxt "daily archives date format" +msgid "F j, Y" +msgstr "j. F Y" -#. translators: Category archive title. 1: Category name -#: wp-includes/general-template.php:1480 -msgid "Category: %s" -msgstr "Kategorie: %s" +#. translators: Daily archive title. 1: Date +#: wp-includes/general-template.php:1495 +msgid "Day: %s" +msgstr "Tag: %s" -#: wp-includes/general-template.php:1504 +#. translators: Monthly archive title. 1: Month name and year +#: wp-includes/general-template.php:1492 +msgid "Month: %s" +msgstr "Monat: %s" + +#: wp-includes/general-template.php:1502 msgctxt "post format archive title" -msgid "Videos" -msgstr "Videos" +msgid "Images" +msgstr "Bilder" -#. translators: Comment reply button text. 1: Comment author name -#: wp-includes/comment-template.php:1598 -msgid "Reply to %s" -msgstr "Antworte auf %s" +#: wp-includes/general-template.php:1500 +msgctxt "post format archive title" +msgid "Galleries" +msgstr "Galerien" -#: wp-includes/class-wp-editor.php:1203 -msgctxt "vertical table cell alignment" -msgid "V Align" -msgstr "vert. Ausrichtung" +#: wp-includes/general-template.php:1506 +msgctxt "post format archive title" +msgid "Quotes" +msgstr "Zitate" -#: wp-includes/class-wp-editor.php:1198 -msgctxt "horizontal table cell alignment" -msgid "H Align" -msgstr "horiz. Ausrichtung" +#: wp-includes/general-template.php:1504 +msgctxt "post format archive title" +msgid "Videos" +msgstr "Videos" -#: wp-includes/class-wp-editor.php:1161 -msgid "Add to Dictionary" -msgstr "Zum Wörterbuch hinzufügen" +#: wp-includes/general-template.php:1508 +msgctxt "post format archive title" +msgid "Links" +msgstr "Links" #: wp-includes/general-template.php:1510 msgctxt "post format archive title" msgid "Statuses" msgstr "Status" -#: wp-includes/general-template.php:1495 wp-includes/general-template.php:2075 -msgctxt "daily archives date format" -msgid "F j, Y" -msgstr "j. F Y" +#: wp-includes/general-template.php:1514 +msgctxt "post format archive title" +msgid "Chats" +msgstr "Chats" -#: wp-includes/class-wp-editor.php:1169 -msgid "Border color" -msgstr "Rahmenfarbe" +#: wp-includes/general-template.php:1512 +msgctxt "post format archive title" +msgid "Audio" +msgstr "Audio" -#. translators: 1: year, 2: month, 3: day of month -#: wp-includes/date.php:443 -msgid "The following values do not describe a valid date: year %1$s, month %2$s, day %3$s." -msgstr "Die folgende Werte beschreiben kein gültiges Datum: Tag %3$s, Monat %2$s, Jahr %1$s" +#. translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: +#. Current taxonomy term +#: wp-includes/general-template.php:1522 +msgid "%1$s: %2$s" +msgstr "%1$s: %2$s" -#. translators: Date query invalid date message: 1: invalid value, 2: type of -#. value, 3: minimum valid value, 4: maximum valid value -#: wp-includes/date.php:413 -msgid "Invalid value %1$s for %2$s. Expected value should be between %3$s and %4$s." -msgstr "Ungültiger Wert %1$s für %2$s. Der Wert sollte zwischen %3$s und %4$s liegen." +#. translators: Post type archive title. 1: Post type name +#: wp-includes/general-template.php:1518 +msgid "Archives: %s" +msgstr "Archive: %s" -#: wp-includes/general-template.php:1498 -msgctxt "post format archive title" -msgid "Asides" -msgstr "Kurzmitteilungen" +#: wp-includes/class-wp-editor.php:1252 +msgid "No alignment" +msgstr "Keine Ausrichtung" -#: wp-includes/customize/class-wp-customize-image-control.php:35 -#: wp-includes/customize/class-wp-customize-image-control.php:40 -msgid "Select Image" -msgstr "Bild auswählen" +#: wp-includes/customize/class-wp-customize-media-control.php:61 +msgid "Change File" +msgstr "Datei wechseln" #: wp-includes/customize/class-wp-customize-media-control.php:64 msgid "No file selected" msgstr "Keine Datei ausgewählt" -#: wp-includes/customize/class-wp-customize-media-control.php:61 -msgid "Change File" -msgstr "Datei wechseln" +#: wp-includes/customize/class-wp-customize-media-control.php:66 +msgid "Choose File" +msgstr "Datei auswählen" -#: wp-includes/class-wp-editor.php:1140 -msgid "No color" -msgstr "Keine Farbe" +#: wp-includes/customize/class-wp-customize-image-control.php:35 +#: wp-includes/customize/class-wp-customize-image-control.php:40 +msgid "Select Image" +msgstr "Bild auswählen" -#: wp-includes/class-wp-editor.php:1137 -msgid "Color" -msgstr "Farbe" +#: wp-includes/customize/class-wp-customize-image-control.php:39 +#: wp-includes/widgets/class-wp-widget-media-image.php:32 +msgid "No image selected" +msgstr "Kein Bild ausgewählt" #: wp-includes/class-wp-editor.php:1138 msgid "Custom color" msgstr "Individuelle Farbe" -#: wp-includes/customize/class-wp-customize-image-control.php:39 -#: wp-includes/widgets/class-wp-widget-media-image.php:32 -msgid "No image selected" -msgstr "Kein Bild ausgewählt" +#: wp-includes/class-wp-editor.php:1137 +msgid "Color" +msgstr "Farbe" #: wp-includes/class-wp-editor.php:1139 msgctxt "label for custom color" msgid "Custom..." msgstr "Individuelle …" -#: wp-includes/customize/class-wp-customize-media-control.php:66 -msgid "Choose File" -msgstr "Datei auswählen" - -#: wp-includes/post.php:64 -msgctxt "post type general name" -msgid "Media" -msgstr "Medien" +#: wp-includes/class-wp-editor.php:1140 +msgid "No color" +msgstr "Keine Farbe" -#: wp-includes/class-wp-editor.php:1244 -msgctxt "TinyMCE menu" -msgid "Format" -msgstr "Format" +#: wp-includes/class-wp-editor.php:1054 +msgctxt "list style" +msgid "Default" +msgstr "Standard" -#: wp-includes/post.php:23 +#: wp-includes/admin-bar.php:702 msgctxt "add new from admin bar" -msgid "Post" -msgstr "Beitrag" +msgid "Link" +msgstr "Link" #: wp-includes/post.php:43 msgctxt "add new from admin bar" msgid "Page" msgstr "Seite" -#: wp-includes/admin-bar.php:702 +#: wp-includes/post.php:23 msgctxt "add new from admin bar" -msgid "Link" -msgstr "Link" +msgid "Post" +msgstr "Beitrag" -#: wp-includes/class-wp-editor.php:1054 -msgctxt "list style" -msgid "Default" -msgstr "Standard" +#: wp-includes/class-wp-editor.php:1244 +msgctxt "TinyMCE menu" +msgid "Format" +msgstr "Format" + +#: wp-includes/post.php:64 +msgctxt "post type general name" +msgid "Media" +msgstr "Medien" #: wp-includes/post.php:66 msgctxt "add new media" @@ -5156,10 +5156,6 @@ msgstr "Auswahl wiederherstellen" msgid "Trash Selected" msgstr "Auswahl in den Papierkorb legen" -#: wp-includes/media-template.php:436 wp-includes/media-template.php:539 -msgid "Untrash" -msgstr "Wiederherstellen" - #: wp-includes/media.php:3524 msgid "" "You are about to trash these items.\n" @@ -5168,27 +5164,25 @@ msgstr "" "Du bist dabei, diese Einträge in den Papierkorb zu legen.\n" "Wähle „Abbrechen“ oder „OK“ zum Löschen." +#: wp-includes/media-template.php:436 wp-includes/media-template.php:539 +msgid "Untrash" +msgstr "Wiederherstellen" + #: wp-includes/class-wp-customize-panel.php:357 msgid "Press return or enter to open this panel" msgstr "Zum Öffnen dieses Bereichs Eingabetaste drücken" -#: wp-includes/media.php:3525 -msgid "Bulk Select" -msgstr "Mehrfachauswahl" +#: wp-includes/media.php:3529 +msgid "Delete Selected" +msgstr "Auswahl löschen" #: wp-includes/media.php:3526 msgid "Cancel Selection" msgstr "Auswahl abbrechen" -#: wp-includes/media.php:3529 -msgid "Delete Selected" -msgstr "Auswahl löschen" - -#: wp-includes/class-wp-customize-nav-menus.php:412 -#: wp-includes/script-loader.php:764 -msgctxt "missing menu item navigation label" -msgid "(no label)" -msgstr "(ohne Bezeichnung)" +#: wp-includes/media.php:3525 +msgid "Bulk Select" +msgstr "Mehrfachauswahl" #. translators: %s: taxonomy label, %l: list of terms formatted as per #. $term_template @@ -5196,125 +5190,131 @@ msgstr "(ohne Bezeichnung)" msgid "%s: %l." msgstr "%s: %l." -#: wp-includes/media.php:2187 -msgid "Bitrate" -msgstr "Bitrate" +#: wp-includes/class-wp-customize-nav-menus.php:412 +#: wp-includes/script-loader.php:764 +msgctxt "missing menu item navigation label" +msgid "(no label)" +msgstr "(ohne Bezeichnung)" -#: wp-includes/class-wp-editor.php:1250 -msgid "Read more..." -msgstr "Weiterlesen …" +#: wp-includes/ms-load.php:93 +msgid "This site is no longer available." +msgstr "Diese Website ist nicht mehr verfügbar." -#: wp-includes/class-wp-editor.php:1722 -msgid "Search or use up and down arrow keys to select an item." -msgstr "Verwende zur Auswahl eines Elements die Suche oder die Hoch-/Runter-Pfeiltasten." +#: wp-includes/script-loader.php:720 +msgid "No plugins found. Try a different search." +msgstr "Es wurden keine Plugins gefunden. Versuche es bitte mit einem anderen Suchbegriff." -#: wp-includes/media-template.php:166 -msgid "Close media panel" -msgstr "Medien-Bedienfeld schließen" +#: wp-includes/media.php:3534 +msgid "Search Media" +msgstr "Medien suchen" -#: wp-includes/media-template.php:187 -msgid "Close uploader" -msgstr "Bedienfeld zum Hochladen schließen" +#: wp-includes/media.php:3533 +msgid "Filter by type" +msgstr "Nach Typ filtern" -#: wp-includes/media-template.php:233 -msgid "Maximum upload file size: %s." -msgstr "Maximale Dateigröße für Uploads: %s." +#: wp-includes/media.php:3532 +msgid "Filter by date" +msgstr "Nach Datum filtern" -#: wp-includes/media-template.php:255 -msgid "List View" -msgstr "Listenansicht" +#: wp-includes/media.php:3519 +msgid "Unattached" +msgstr "Nicht angehängt" -#: wp-includes/media-template.php:284 -msgid "Edit previous media item" -msgstr "Vorheriges Medienelement bearbeiten" +#: wp-includes/media.php:3516 +msgid "All dates" +msgstr "Alle Daten" -#: wp-includes/media-template.php:285 -msgid "Edit next media item" -msgstr "Nächstes Medienelement bearbeiten" +#: wp-includes/media.php:2188 +msgid "Bitrate Mode" +msgstr "Bitraten-Modus" -#: wp-includes/media-template.php:343 -msgid "File name:" -msgstr "Dateiname:" +#: wp-includes/media-template.php:431 +msgid "Edit more details" +msgstr "Weitere Details bearbeiten" -#: wp-includes/media-template.php:345 -msgid "Uploaded on:" -msgstr "Hochgeladen am:" +#: wp-includes/media-template.php:429 +msgid "View attachment page" +msgstr "Anhang-Seite ansehen" -#: wp-includes/media-template.php:347 -msgid "File size:" -msgstr "Dateigröße:" +#: wp-includes/media-template.php:417 +msgid "Uploaded To" +msgstr "Hochgeladen zu" -#: wp-includes/media-template.php:350 -msgid "Dimensions:" -msgstr "Abmessungen:" +#: wp-includes/media-template.php:412 +msgid "Uploaded By" +msgstr "Hochgeladen von" #: wp-includes/media-template.php:360 msgid "Bitrate:" msgstr "Bitrate:" -#: wp-includes/media-template.php:429 -msgid "View attachment page" -msgstr "Anhang-Seite ansehen" +#: wp-includes/media-template.php:350 +msgid "Dimensions:" +msgstr "Abmessungen:" -#: wp-includes/media-template.php:431 -msgid "Edit more details" -msgstr "Weitere Details bearbeiten" +#: wp-includes/media-template.php:347 +msgid "File size:" +msgstr "Dateigröße:" -#: wp-includes/media.php:2188 -msgid "Bitrate Mode" -msgstr "Bitraten-Modus" +#: wp-includes/media-template.php:345 +msgid "Uploaded on:" +msgstr "Hochgeladen am:" -#: wp-includes/media.php:3516 -msgid "All dates" -msgstr "Alle Daten" +#: wp-includes/media-template.php:344 +msgid "File type:" +msgstr "Dateityp:" -#: wp-includes/media.php:3532 -msgid "Filter by date" -msgstr "Nach Datum filtern" +#: wp-includes/media-template.php:343 +msgid "File name:" +msgstr "Dateiname:" -#: wp-includes/media.php:3534 -msgid "Search Media" -msgstr "Medien suchen" +#: wp-includes/media-template.php:285 +msgid "Edit next media item" +msgstr "Nächstes Medienelement bearbeiten" -#: wp-includes/ms-load.php:93 -msgid "This site is no longer available." -msgstr "Diese Website ist nicht mehr verfügbar." +#: wp-includes/media-template.php:284 +msgid "Edit previous media item" +msgstr "Vorheriges Medienelement bearbeiten" #: wp-includes/media-template.php:258 msgid "Grid View" msgstr "Rasteransicht" -#: wp-includes/class-wp-editor.php:1235 -msgid "Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser’s edit menu instead." -msgstr "Dein Browser unterstützt keinen direkten Zugriff auf die Zwischenablage. Bitte verwende stattdessen Tastaturkürzel oder die Bearbeiten-Funktion deines Browsers." +#: wp-includes/media-template.php:255 +msgid "List View" +msgstr "Listenansicht" -#: wp-includes/media-template.php:412 -msgid "Uploaded By" -msgstr "Hochgeladen von" +#: wp-includes/media-template.php:233 +msgid "Maximum upload file size: %s." +msgstr "Maximale Dateigröße für Uploads: %s." -#: wp-includes/media-template.php:344 -msgid "File type:" -msgstr "Dateityp:" +#: wp-includes/media-template.php:187 +msgid "Close uploader" +msgstr "Bedienfeld zum Hochladen schließen" -#: wp-includes/media.php:3533 -msgid "Filter by type" -msgstr "Nach Typ filtern" +#: wp-includes/media-template.php:166 +msgid "Close media panel" +msgstr "Medien-Bedienfeld schließen" -#: wp-includes/media-template.php:417 -msgid "Uploaded To" -msgstr "Hochgeladen zu" +#: wp-includes/class-wp-editor.php:1722 +msgid "Search or use up and down arrow keys to select an item." +msgstr "Verwende zur Auswahl eines Elements die Suche oder die Hoch-/Runter-Pfeiltasten." -#: wp-includes/script-loader.php:720 -msgid "No plugins found. Try a different search." -msgstr "Es wurden keine Plugins gefunden. Versuche es bitte mit einem anderen Suchbegriff." +#: wp-includes/class-wp-editor.php:1250 +msgid "Read more..." +msgstr "Weiterlesen …" -#: wp-includes/media.php:3519 -msgid "Unattached" -msgstr "Nicht angehängt" +#: wp-includes/class-wp-editor.php:1235 +msgid "Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser’s edit menu instead." +msgstr "Dein Browser unterstützt keinen direkten Zugriff auf die Zwischenablage. Bitte verwende stattdessen Tastaturkürzel oder die Bearbeiten-Funktion deines Browsers." -#: wp-includes/comment.php:3101 -msgid "<strong>ERROR</strong>: The comment could not be saved. Please try again later." -msgstr "<strong>FEHLER</strong>: Der Kommentar konnte nicht gespeichert werden. Bitte versuche es später noch einmal." +#: wp-includes/media.php:2187 +msgid "Bitrate" +msgstr "Bitrate" + +#: wp-includes/class-wp-customize-widgets.php:436 +msgid "Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars)." +msgstr "Widgets sind eigenständige Inhaltsabschnitte. Widgets können in vorgesehenen Bereichen platziert werden, die von deinem Theme zur Verfügung gestellt werden (üblicherweise Seitenleiste genannt)." #. translators: %s: the site/panel title in the Customizer #: wp-includes/class-wp-customize-panel.php:382 @@ -5322,19 +5322,19 @@ msgstr "<strong>FEHLER</strong>: Der Kommentar konnte nicht gespeichert werden. msgid "You are customizing %s" msgstr "Deine Anpassungen für %s" -#: wp-includes/class-wp-customize-widgets.php:436 -msgid "Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars)." -msgstr "Widgets sind eigenständige Inhaltsabschnitte. Widgets können in vorgesehenen Bereichen platziert werden, die von deinem Theme zur Verfügung gestellt werden (üblicherweise Seitenleiste genannt)." +#. translators: %s: header height in pixels +#: wp-includes/customize/class-wp-customize-header-image-control.php:189 +msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header height of %s pixels." +msgstr "Nachdem du <strong>Neues Bild hinzufügen</strong> angeklickt hast, kannst du Bilder nach deinen Vorstellungen zuschneiden. Dein Theme empfiehlt jedoch eine Header-Höhe von %s Pixel." #. translators: %s: header width in pixels #: wp-includes/customize/class-wp-customize-header-image-control.php:184 msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header width of %s pixels." msgstr "Nachdem du <strong>Neues Bild hinzufügen</strong> angeklickt hast, kannst du Bilder nach deinen Vorstellungen zuschneiden. Dein Theme empfiehlt jedoch eine Header-Breite von %s Pixel." -#. translators: %s: header height in pixels -#: wp-includes/customize/class-wp-customize-header-image-control.php:189 -msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header height of %s pixels." -msgstr "Nachdem du <strong>Neues Bild hinzufügen</strong> angeklickt hast, kannst du Bilder nach deinen Vorstellungen zuschneiden. Dein Theme empfiehlt jedoch eine Header-Höhe von %s Pixel." +#: wp-includes/comment.php:3101 +msgid "<strong>ERROR</strong>: The comment could not be saved. Please try again later." +msgstr "<strong>FEHLER</strong>: Der Kommentar konnte nicht gespeichert werden. Bitte versuche es später noch einmal." #: wp-includes/update.php:130 wp-includes/update.php:322 #: wp-includes/update.php:500 @@ -5373,54 +5373,78 @@ msgstr "<strong>FEHLER</strong>: Cookies sind gesperrt oder werden von deinem Br msgid "<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For help, please see <a href=\"%1$s\">this documentation</a> or try the <a href=\"%2$s\">support forums</a>." msgstr "<strong>FEHLER</strong>: Cookies sind wegen einer unerwarteten Ausgabe gesperrt. Hilfe findest du in <a href=\"%1$s\">dieser Dokumentation</a> oder wende dich an die <a href=\"%2$s\">Support-Foren</a>." -#: wp-includes/media-template.php:912 -msgid "Display Settings" -msgstr "Einstellungen anzeigen" +#: wp-includes/media.php:3597 +msgid "Add to Audio Playlist" +msgstr "Zur Audio-Wiedergabeliste hinzufügen" -#: wp-includes/media-template.php:891 -msgid "Edit Original" -msgstr "Original bearbeiten" +#: wp-includes/media.php:3596 +msgid "Add to audio playlist" +msgstr "Zur Audio-Wiedergabeliste hinzufügen" -#: wp-includes/class-wp-editor.php:1202 -msgctxt "table cell alignment attribute" -msgid "None" -msgstr "Ohne" +#: wp-includes/media.php:3595 +msgid "Update audio playlist" +msgstr "Audio-Wiedergabeliste aktualisieren" -#: wp-includes/class-wp-editor.php:1192 -msgid "Split table cell" -msgstr "Tabellen-Zelle teilen" +#: wp-includes/media.php:3594 +msgid "Insert audio playlist" +msgstr "Audio-Wiedergabeliste einfügen" -#: wp-includes/media-template.php:994 -msgid "Advanced Options" -msgstr "Erweiterte Optionen" +#: wp-includes/media.php:3593 +msgid "← Cancel Audio Playlist" +msgstr "← Audio-Wiedergabeliste abbrechen" -#: wp-includes/media-template.php:1002 -#: wp-includes/widgets/class-wp-widget-media-image.php:115 -msgid "Image CSS Class" -msgstr "Bild-CSS-Klasse" +#: wp-includes/media.php:3592 +msgid "Edit Audio Playlist" +msgstr "Audio-Wiedergabeliste bearbeiten" -#: wp-includes/media-template.php:388 wp-includes/media-template.php:569 -#: wp-includes/media.php:2178 -msgid "Artist" -msgstr "Künstler" +#: wp-includes/media.php:3573 +msgid "There has been an error cropping your image." +msgstr "Beim Zuschneiden deines Bilds ist ein Fehler aufgetreten." + +#: wp-includes/media.php:2185 +msgctxt "video or audio" +msgid "Length" +msgstr "Länge" + +#: wp-includes/media.php:2184 +msgid "Year" +msgstr "Jahr" + +#: wp-includes/media.php:2183 +msgid "Genre" +msgstr "Genre" #: wp-includes/media-template.php:389 wp-includes/media-template.php:570 #: wp-includes/media.php:2179 msgid "Album" msgstr "Album" -#: wp-includes/media.php:2183 -msgid "Genre" -msgstr "Genre" +#: wp-includes/media-template.php:388 wp-includes/media-template.php:569 +#: wp-includes/media.php:2178 +msgid "Artist" +msgstr "Künstler" -#: wp-includes/media.php:2184 -msgid "Year" -msgstr "Jahr" +#: wp-includes/media-template.php:1002 +#: wp-includes/widgets/class-wp-widget-media-image.php:115 +msgid "Image CSS Class" +msgstr "Bild-CSS-Klasse" -#: wp-includes/media.php:2185 -msgctxt "video or audio" -msgid "Length" -msgstr "Länge" +#: wp-includes/media-template.php:998 +#: wp-includes/widgets/class-wp-widget-media-image.php:146 +msgid "Image Title Attribute" +msgstr "Bild title-Attribut" + +#: wp-includes/media-template.php:994 +msgid "Advanced Options" +msgstr "Erweiterte Optionen" + +#: wp-includes/media-template.php:959 +msgid "Custom Size" +msgstr "Individuelle Größe" + +#: wp-includes/class-wp-editor.php:1192 +msgid "Split table cell" +msgstr "Tabellen-Zelle teilen" #: wp-includes/class-wp-editor.php:1030 msgid "Font Sizes" @@ -5430,87 +5454,68 @@ msgstr "Schriftgröße" msgid "Font Family" msgstr "Schriftname" -#: wp-includes/media.php:3592 -msgid "Edit Audio Playlist" -msgstr "Audio-Wiedergabeliste bearbeiten" +#: wp-includes/class-wp-editor.php:1202 +msgctxt "table cell alignment attribute" +msgid "None" +msgstr "Ohne" -#: wp-includes/media-template.php:959 -msgid "Custom Size" -msgstr "Individuelle Größe" +#: wp-includes/media-template.php:891 +msgid "Edit Original" +msgstr "Original bearbeiten" -#: wp-includes/media.php:3593 -msgid "← Cancel Audio Playlist" -msgstr "← Audio-Wiedergabeliste abbrechen" +#: wp-includes/media-template.php:912 +msgid "Display Settings" +msgstr "Einstellungen anzeigen" -#: wp-includes/media.php:3594 -msgid "Insert audio playlist" -msgstr "Audio-Wiedergabeliste einfügen" - -#: wp-includes/media.php:3595 -msgid "Update audio playlist" -msgstr "Audio-Wiedergabeliste aktualisieren" - -#: wp-includes/media-template.php:795 -msgid "Show Video List" -msgstr "Zeige Video-Liste" - -#: wp-includes/media.php:3597 -msgid "Add to Audio Playlist" -msgstr "Zur Audio-Wiedergabeliste hinzufügen" - -#: wp-includes/media.php:3596 -msgid "Add to audio playlist" -msgstr "Zur Audio-Wiedergabeliste hinzufügen" - -#: wp-includes/media.php:3573 -msgid "There has been an error cropping your image." -msgstr "Beim Zuschneiden deines Bilds ist ein Fehler aufgetreten." - -#: wp-includes/media-template.php:998 -#: wp-includes/widgets/class-wp-widget-media-image.php:146 -msgid "Image Title Attribute" -msgstr "Bild title-Attribut" +#: wp-includes/media-template.php:795 +msgid "Show Video List" +msgstr "Zeige Video-Liste" #: wp-includes/media-template.php:1015 #: wp-includes/widgets/class-wp-widget-media-image.php:124 msgid "Link CSS Class" msgstr "Link-CSS-Klasse" -#: wp-includes/customize/class-wp-customize-header-image-control.php:108 -msgid "Set image" -msgstr "Bild auswählen" +#: wp-includes/class-wp-editor.php:1002 +msgctxt "TinyMCE" +msgid "Headings" +msgstr "Überschriften" + +#: wp-includes/class-wp-customize-widgets.php:843 +msgid "Search widgets…" +msgstr "Widgets suchen …" #: wp-includes/class-wp-customize-widgets.php:842 msgid "Search Widgets" msgstr "Widgets suchen" -#: wp-includes/class-wp-editor.php:1002 -msgctxt "TinyMCE" -msgid "Headings" -msgstr "Überschriften" +#: wp-includes/class-wp-customize-widgets.php:787 +msgid "Trash widget by moving it to the inactive widgets sidebar." +msgstr "Deaktiviere ein Widget, indem du es auf die Seitenleiste der inaktiven Widgets ziehst." #: wp-includes/class-wp-customize-widgets.php:785 msgid "Save and preview changes before publishing them." msgstr "Änderungen speichern und vor Veröffentlichung anschauen." +#: wp-includes/customize/class-wp-customize-header-image-control.php:108 +msgid "Set image" +msgstr "Bild auswählen" + #: wp-includes/class-wp-customize-widgets.php:723 msgctxt "Move widget" msgid "Move" msgstr "Verschieben" -#: wp-includes/class-wp-customize-widgets.php:843 -msgid "Search widgets…" -msgstr "Widgets suchen …" - -#: wp-includes/class-wp-customize-widgets.php:787 -msgid "Trash widget by moving it to the inactive widgets sidebar." -msgstr "Deaktiviere ein Widget, indem du es auf die Seitenleiste der inaktiven Widgets ziehst." - #: wp-includes/media-template.php:1084 wp-includes/media-template.php:1173 msgctxt "auto preload" msgid "Auto" msgstr "Automatisch" +#: wp-includes/media-template.php:1190 +#: wp-includes/widgets/class-wp-widget-media-video.php:81 +msgid "Tracks (subtitles, captions, descriptions, chapters, or metadata)" +msgstr "Titel (Untertitel, Beschriftungen, Beschreibungen, Kapitel oder Meta-Daten)" + #: wp-includes/media.php:3570 msgid "Cropping…" msgstr "Zuschneiden …" @@ -5519,35 +5524,115 @@ msgstr "Zuschneiden …" msgid "Move to another area…" msgstr "In einen anderen Bereich verschieben …" -#: wp-includes/media-template.php:1190 -#: wp-includes/widgets/class-wp-widget-media-video.php:81 -msgid "Tracks (subtitles, captions, descriptions, chapters, or metadata)" -msgstr "Titel (Untertitel, Beschriftungen, Beschreibungen, Kapitel oder Meta-Daten)" +#: wp-includes/class-wp-editor.php:1243 +msgctxt "TinyMCE menu" +msgid "Table" +msgstr "Tabelle" -#: wp-includes/class-wp-editor.php:1173 -msgctxt "table column" -msgid "Column" -msgstr "Spalte" +#: wp-includes/class-wp-editor.php:1242 +msgctxt "TinyMCE menu" +msgid "View" +msgstr "Ansicht" -#: wp-includes/class-wp-editor.php:1015 -msgctxt "HTML tag" -msgid "Pre" -msgstr "Pre" +#: wp-includes/class-wp-editor.php:1241 +msgctxt "TinyMCE menu" +msgid "Tools" +msgstr "Werkzeuge" -#: wp-includes/class-wp-editor.php:1014 -msgctxt "HTML tag" -msgid "Div" -msgstr "Div" +#: wp-includes/class-wp-editor.php:1240 +msgctxt "TinyMCE menu" +msgid "Edit" +msgstr "Bearbeiten" -#: wp-includes/class-wp-editor.php:1147 +#: wp-includes/class-wp-editor.php:1239 +msgctxt "TinyMCE menu" +msgid "File" +msgstr "Datei" + +#: wp-includes/class-wp-editor.php:1238 +msgctxt "TinyMCE menu" +msgid "Insert" +msgstr "Einfügen" + +#. translators: word count +#: wp-includes/class-wp-editor.php:1225 +msgid "Words: %s" +msgstr "Wörter: %s" + +#: wp-includes/class-wp-editor.php:1221 +msgctxt "editor button" +msgid "Show blocks" +msgstr "Zeige Blöcke" + +#: wp-includes/class-wp-editor.php:1217 +msgctxt "TinyMCE" +msgid "Templates" +msgstr "Vorlagen" + +#: wp-includes/class-wp-editor.php:1216 +msgctxt "TinyMCE" +msgid "Insert template" +msgstr "Vorlage einfügen" + +#: wp-includes/class-wp-editor.php:1179 +msgctxt "table footer" +msgid "Footer" +msgstr "Fußzeile" + +#: wp-includes/class-wp-editor.php:1178 +msgctxt "table body" +msgid "Body" +msgstr "Body" + +#: wp-includes/class-wp-editor.php:1177 +msgctxt "table header" +msgid "Header" +msgstr "Tabellen-Header" + +#: wp-includes/class-wp-editor.php:1175 +msgctxt "table cell" +msgid "Cell" +msgstr "Zelle" + +#: wp-includes/class-wp-editor.php:1174 +msgctxt "table columns" +msgid "Cols" +msgstr "Spalten" + +#: wp-includes/class-wp-editor.php:1160 +msgctxt "spellcheck" +msgid "Ignore" +msgstr "Ignorieren" + +#: wp-includes/class-wp-editor.php:1159 +msgctxt "spellcheck" +msgid "Ignore all" +msgstr "Alle ignorieren" + +#: wp-includes/class-wp-editor.php:1158 +msgctxt "spellcheck" +msgid "Finish" +msgstr "Beenden" + +#: wp-includes/class-wp-editor.php:1155 msgctxt "find/replace" -msgid "Replace" -msgstr "Ersetzen" +msgid "Replace all" +msgstr "Alle ersetzen" -#: wp-includes/class-wp-editor.php:1148 +#: wp-includes/class-wp-editor.php:1154 msgctxt "find/replace" -msgid "Next" -msgstr "Nächster" +msgid "Find" +msgstr "Suchen" + +#: wp-includes/class-wp-editor.php:1153 +msgctxt "find/replace" +msgid "Replace with" +msgstr "Ersetzen mit" + +#: wp-includes/class-wp-editor.php:1151 +msgctxt "find/replace" +msgid "Whole words" +msgstr "Ganze Wörter" #. translators: previous #: wp-includes/class-wp-editor.php:1150 @@ -5555,712 +5640,643 @@ msgctxt "find/replace" msgid "Prev" msgstr "Vorheriger" -#: wp-includes/class-wp-editor.php:1000 -msgctxt "TinyMCE" -msgid "Formats" -msgstr "Formate" +#: wp-includes/class-wp-editor.php:1148 +msgctxt "find/replace" +msgid "Next" +msgstr "Nächster" -#: wp-includes/class-wp-editor.php:1214 -msgctxt "table cell scope attribute" -msgid "Scope" -msgstr "Bereich" +#: wp-includes/class-wp-editor.php:1147 +msgctxt "find/replace" +msgid "Replace" +msgstr "Ersetzen" -#. translators: block tags -#: wp-includes/class-wp-editor.php:1011 -msgctxt "TinyMCE" -msgid "Blocks" -msgstr "Blöcke" +#: wp-includes/class-wp-editor.php:1109 +msgctxt "editor button" +msgid "Left to right" +msgstr "Links nach rechts" -#: wp-includes/class-wp-editor.php:1019 -msgctxt "HTML elements" -msgid "Inline" -msgstr "Inline" +#: wp-includes/class-wp-editor.php:1108 +msgctxt "editor button" +msgid "Right to left" +msgstr "Rechts nach links" -#: wp-includes/class-wp-editor.php:1051 wp-includes/script-loader.php:112 -msgid "Bulleted list" -msgstr "Aufzählung" +#: wp-includes/class-wp-editor.php:1066 +msgctxt "Link anchors (TinyMCE)" +msgid "Anchors" +msgstr "Anker" -#: wp-includes/class-wp-editor.php:1053 -msgctxt "list style" -msgid "Square" -msgstr "Quadrat" +#: wp-includes/class-wp-editor.php:1065 +msgctxt "Link anchor (TinyMCE)" +msgid "Anchor" +msgstr "Anker" -#: wp-includes/class-wp-editor.php:1055 +#: wp-includes/class-wp-editor.php:1064 +msgctxt "Name of link anchor (TinyMCE)" +msgid "Name" +msgstr "Name" + +#: wp-includes/class-wp-editor.php:1061 msgctxt "list style" -msgid "Circle" -msgstr "Kreis" +msgid "Lower Roman" +msgstr "Kleine römische Zahlen" -#: wp-includes/class-wp-editor.php:1056 +#: wp-includes/class-wp-editor.php:1060 msgctxt "list style" -msgid "Disc" -msgstr "Scheibe" +msgid "Upper Roman" +msgstr "Große römische Zahlen" -#: wp-includes/class-wp-editor.php:1057 +#: wp-includes/class-wp-editor.php:1059 msgctxt "list style" -msgid "Lower Greek" -msgstr "Kleine griechische Nummerierung" +msgid "Upper Alpha" +msgstr "Großbuchstaben" #: wp-includes/class-wp-editor.php:1058 msgctxt "list style" msgid "Lower Alpha" msgstr "Kleine alphabetische Nummerierung" -#: wp-includes/class-wp-editor.php:1060 +#: wp-includes/class-wp-editor.php:1057 msgctxt "list style" -msgid "Upper Roman" -msgstr "Große römische Zahlen" +msgid "Lower Greek" +msgstr "Kleine griechische Nummerierung" -#: wp-includes/class-wp-editor.php:1061 +#: wp-includes/class-wp-editor.php:1056 msgctxt "list style" -msgid "Lower Roman" -msgstr "Kleine römische Zahlen" - -#: wp-includes/class-wp-editor.php:1064 -msgctxt "Name of link anchor (TinyMCE)" -msgid "Name" -msgstr "Name" +msgid "Disc" +msgstr "Scheibe" -#: wp-includes/class-wp-editor.php:1065 -msgctxt "Link anchor (TinyMCE)" -msgid "Anchor" -msgstr "Anker" +#: wp-includes/class-wp-editor.php:1055 +msgctxt "list style" +msgid "Circle" +msgstr "Kreis" -#: wp-includes/class-wp-editor.php:1066 -msgctxt "Link anchors (TinyMCE)" -msgid "Anchors" -msgstr "Anker" +#: wp-includes/class-wp-editor.php:1053 +msgctxt "list style" +msgid "Square" +msgstr "Quadrat" -#: wp-includes/class-wp-editor.php:1108 -msgctxt "editor button" -msgid "Right to left" -msgstr "Rechts nach links" +#: wp-includes/class-wp-editor.php:1051 wp-includes/script-loader.php:112 +msgid "Bulleted list" +msgstr "Aufzählung" -#: wp-includes/class-wp-editor.php:1109 -msgctxt "editor button" -msgid "Left to right" -msgstr "Links nach rechts" +#: wp-includes/class-wp-editor.php:1019 +msgctxt "HTML elements" +msgid "Inline" +msgstr "Inline" -#: wp-includes/class-wp-editor.php:1151 -msgctxt "find/replace" -msgid "Whole words" -msgstr "Ganze Wörter" +#: wp-includes/class-wp-editor.php:1015 +msgctxt "HTML tag" +msgid "Pre" +msgstr "Pre" -#: wp-includes/class-wp-editor.php:1155 -msgctxt "find/replace" -msgid "Replace all" -msgstr "Alle ersetzen" +#: wp-includes/class-wp-editor.php:1014 +msgctxt "HTML tag" +msgid "Div" +msgstr "Div" -#: wp-includes/class-wp-editor.php:1158 -msgctxt "spellcheck" -msgid "Finish" -msgstr "Beenden" +#. translators: block tags +#: wp-includes/class-wp-editor.php:1011 +msgctxt "TinyMCE" +msgid "Blocks" +msgstr "Blöcke" -#: wp-includes/class-wp-editor.php:1159 -msgctxt "spellcheck" -msgid "Ignore all" -msgstr "Alle ignorieren" +#: wp-includes/class-wp-editor.php:1173 +msgctxt "table column" +msgid "Column" +msgstr "Spalte" -#: wp-includes/class-wp-editor.php:1160 -msgctxt "spellcheck" -msgid "Ignore" -msgstr "Ignorieren" +#: wp-includes/class-wp-editor.php:1214 +msgctxt "table cell scope attribute" +msgid "Scope" +msgstr "Bereich" -#: wp-includes/class-wp-editor.php:1174 -msgctxt "table columns" -msgid "Cols" -msgstr "Spalten" +#: wp-includes/class-wp-editor.php:1000 +msgctxt "TinyMCE" +msgid "Formats" +msgstr "Formate" -#: wp-includes/class-wp-editor.php:1175 -msgctxt "table cell" -msgid "Cell" -msgstr "Zelle" +#: wp-includes/media-template.php:1072 wp-includes/media-template.php:1154 +msgid "Add alternate sources for maximum HTML5 playback:" +msgstr "Füge alternative Quellen für maximale HTML5-Wiedergabe hinzu:" -#: wp-includes/class-wp-editor.php:1178 -msgctxt "table body" -msgid "Body" -msgstr "Body" +#: wp-includes/user.php:2050 +msgid "Hint: The password should be at least twelve characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )." +msgstr "Tipp: Das Passwort sollte mindestens zwölf Zeichen lang sein. Für ein stärkeres Passwort verwende Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen wie ! \" ? $ % ^ & )." -#: wp-includes/class-wp-editor.php:1179 -msgctxt "table footer" -msgid "Footer" -msgstr "Fußzeile" +#: wp-includes/wp-db.php:1297 +msgid "The query argument of %s must have a placeholder." +msgstr "Der Abfrage-Parameter %s benötigt einen Platzhalter." -#: wp-includes/class-wp-editor.php:1216 -msgctxt "TinyMCE" -msgid "Insert template" -msgstr "Vorlage einfügen" +#: wp-includes/nav-menu.php:377 +msgid "Invalid menu ID." +msgstr "Ungültige Menü-ID." -#: wp-includes/class-wp-editor.php:1217 -msgctxt "TinyMCE" -msgid "Templates" -msgstr "Vorlagen" +#: wp-includes/media.php:3607 +msgid "Add to Video Playlist" +msgstr "Zur Video-Wiedergabeliste hinzufügen" -#: wp-includes/class-wp-editor.php:1221 -msgctxt "editor button" -msgid "Show blocks" -msgstr "Zeige Blöcke" +#: wp-includes/media.php:3606 +msgid "Add to video playlist" +msgstr "Zur Video-Wiedergabeliste hinzufügen" -#. translators: word count -#: wp-includes/class-wp-editor.php:1225 -msgid "Words: %s" -msgstr "Wörter: %s" +#: wp-includes/media.php:3605 +msgid "Update video playlist" +msgstr "Video-Wiedergabeliste aktualisieren" -#: wp-includes/class-wp-editor.php:1238 -msgctxt "TinyMCE menu" -msgid "Insert" -msgstr "Einfügen" +#: wp-includes/media.php:3604 +msgid "Insert video playlist" +msgstr "Video-Wiedergabeliste einfügen" -#: wp-includes/class-wp-editor.php:1239 -msgctxt "TinyMCE menu" -msgid "File" -msgstr "Datei" +#: wp-includes/media.php:3603 +msgid "← Cancel Video Playlist" +msgstr "← Video-Wiedergabeliste abbrechen" -#: wp-includes/class-wp-editor.php:1240 -msgctxt "TinyMCE menu" -msgid "Edit" -msgstr "Bearbeiten" +#: wp-includes/media.php:3602 +msgid "Edit Video Playlist" +msgstr "Video-Wiedergabeliste bearbeiten" -#: wp-includes/class-wp-editor.php:1241 -msgctxt "TinyMCE menu" -msgid "Tools" -msgstr "Werkzeuge" +#: wp-includes/media.php:3601 +msgid "Create Video Playlist" +msgstr "Video-Wiedergabeliste erstellen" -#: wp-includes/class-wp-editor.php:1242 -msgctxt "TinyMCE menu" -msgid "View" -msgstr "Ansicht" +#: wp-includes/media.php:3600 +msgid "Drag and drop to reorder videos." +msgstr "Nutze Drag & Drop zum Umsortieren der Videos." -#: wp-includes/class-wp-editor.php:1243 -msgctxt "TinyMCE menu" -msgid "Table" -msgstr "Tabelle" +#: wp-includes/media.php:3591 +msgid "Create Audio Playlist" +msgstr "Audio-Wiedergabeliste erstellen" -#: wp-includes/class-wp-editor.php:1154 -msgctxt "find/replace" -msgid "Find" -msgstr "Suchen" +#: wp-includes/media.php:3590 +msgid "Drag and drop to reorder tracks." +msgstr "Nutze Drag & Drop zum Umsortieren der Titel." -#: wp-includes/class-wp-editor.php:1177 -msgctxt "table header" -msgid "Header" -msgstr "Tabellen-Header" +#: wp-includes/media.php:3587 +msgid "Add Subtitles" +msgstr "Untertitel hinzufügen" -#: wp-includes/class-wp-editor.php:1059 -msgctxt "list style" -msgid "Upper Alpha" -msgstr "Großbuchstaben" +#: wp-includes/media.php:3586 +msgid "Select Poster Image" +msgstr "Vorschaubild auswählen" -#: wp-includes/class-wp-editor.php:1153 -msgctxt "find/replace" -msgid "Replace with" -msgstr "Ersetzen mit" +#: wp-includes/media.php:3584 +msgid "Add Video Source" +msgstr "Video-Quelle hinzufügen" -#: wp-includes/media-template.php:1072 wp-includes/media-template.php:1154 -msgid "Add alternate sources for maximum HTML5 playback:" -msgstr "Füge alternative Quellen für maximale HTML5-Wiedergabe hinzu:" +#: wp-includes/media.php:3583 +msgid "Replace Video" +msgstr "Video ersetzen" -#: wp-includes/media.php:3559 -msgid "Image Details" -msgstr "Bild-Details" +#: wp-includes/media.php:3582 +msgid "Video Details" +msgstr "Video-Details" -#: wp-includes/class-wp-customize-nav-menus.php:952 -#: wp-includes/class-wp-customize-panel.php:378 -#: wp-includes/class-wp-customize-section.php:368 -#: wp-includes/class-wp-customize-widgets.php:831 -#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:75 -#: wp-includes/media.php:3496 -msgid "Back" -msgstr "Zurück" +#: wp-includes/media.php:3578 +msgid "Add Audio Source" +msgstr "Audio-Quelle hinzufügen" -#: wp-includes/media-template.php:797 -msgid "Show Tracklist" -msgstr "Zeige Titelliste" +#: wp-includes/media.php:3577 +msgid "Replace Audio" +msgstr "Audio ersetzen" -#: wp-includes/media-template.php:785 -msgid "Playlist Settings" -msgstr "Einstellungen Wiedergabeliste" +#: wp-includes/media.php:3576 +msgid "Audio Details" +msgstr "Audio-Details" -#: wp-includes/widgets/class-wp-widget-search.php:31 -msgctxt "Search widget" -msgid "Search" -msgstr "Suche" +#: wp-includes/media.php:3569 +msgid "Crop your image" +msgstr "Schneide dein Bild zu" -#. translators: used to join items in a list with more than 2 items -#: wp-includes/formatting.php:4483 -msgid "%s, %s" -msgstr "%s, %s" - -#. translators: used to join last two items in a list with more than 2 times -#: wp-includes/formatting.php:4485 -msgid "%s, and %s" -msgstr "%s und %s" - -#. translators: used to join items in a list with only 2 items -#: wp-includes/formatting.php:4487 -msgid "%s and %s" -msgstr "%s und %s" - -#: wp-includes/media-template.php:814 -msgid "Show Images" -msgstr "Zeige Bilder" - -#: wp-includes/media-template.php:1085 wp-includes/media-template.php:1174 -msgid "Metadata" -msgstr "Meta-Daten" +#: wp-includes/media.php:3568 +msgid "Crop Image" +msgstr "Bild zuschneiden" -#: wp-includes/media-template.php:1092 wp-includes/media-template.php:1181 -msgid "Autoplay" -msgstr "Autoplay" +#: wp-includes/media.php:3567 +msgid "Skip Cropping" +msgstr "Zuschneiden überspringen" -#: wp-includes/media-template.php:1203 -msgid "There are no associated subtitles." -msgstr "Es gibt keine zugehörigen Untertitel." +#: wp-includes/media.php:3566 +msgid "Select and Crop" +msgstr "Auswählen und zuschneiden" -#: wp-includes/media.php:3560 -msgid "Replace Image" -msgstr "Bild ersetzen" +#: wp-includes/customize/class-wp-customize-image-control.php:41 +#: wp-includes/media.php:3565 +msgid "Choose Image" +msgstr "Bild auswählen" #: wp-includes/media.php:3561 wp-includes/media.php:3579 #: wp-includes/media.php:3585 msgid "Cancel Edit" msgstr "Bearbeiten abbrechen" -#: wp-includes/media.php:3566 -msgid "Select and Crop" -msgstr "Auswählen und zuschneiden" - -#: wp-includes/media.php:3567 -msgid "Skip Cropping" -msgstr "Zuschneiden überspringen" +#: wp-includes/media.php:3560 +msgid "Replace Image" +msgstr "Bild ersetzen" -#: wp-includes/media.php:3568 -msgid "Crop Image" -msgstr "Bild zuschneiden" +#: wp-includes/media.php:3513 +msgid "Create a new video playlist" +msgstr "Neue Video-Wiedergabeliste erstellen" -#: wp-includes/media.php:3569 -msgid "Crop your image" -msgstr "Schneide dein Bild zu" +#: wp-includes/media.php:3512 +msgid "Create a new playlist" +msgstr "Neue Wiedergabeliste erstellen" -#: wp-includes/media.php:3576 -msgid "Audio Details" -msgstr "Audio-Details" +#: wp-includes/media-template.php:1203 +msgid "There are no associated subtitles." +msgstr "Es gibt keine zugehörigen Untertitel." -#: wp-includes/media.php:3577 -msgid "Replace Audio" -msgstr "Audio ersetzen" +#: wp-includes/media-template.php:1165 +msgid "Poster Image" +msgstr "Vorschaubild" -#: wp-includes/media.php:3578 -msgid "Add Audio Source" -msgstr "Audio-Quelle hinzufügen" +#: wp-includes/media-template.php:1092 wp-includes/media-template.php:1181 +msgid "Autoplay" +msgstr "Autoplay" -#: wp-includes/media.php:3582 -msgid "Video Details" -msgstr "Video-Details" +#: wp-includes/media-template.php:1085 wp-includes/media-template.php:1174 +msgid "Metadata" +msgstr "Meta-Daten" -#: wp-includes/media.php:3583 -msgid "Replace Video" -msgstr "Video ersetzen" +#: wp-includes/media-template.php:814 +msgid "Show Images" +msgstr "Zeige Bilder" -#: wp-includes/media.php:3584 -msgid "Add Video Source" -msgstr "Video-Quelle hinzufügen" +#: wp-includes/media-template.php:806 +msgid "Show Artist Name in Tracklist" +msgstr "Zeige Name des Künstlers in der Titelliste" -#: wp-includes/media.php:3587 -msgid "Add Subtitles" -msgstr "Untertitel hinzufügen" +#. translators: used to join items in a list with only 2 items +#: wp-includes/formatting.php:4487 +msgid "%s and %s" +msgstr "%s und %s" -#: wp-includes/media.php:3591 -msgid "Create Audio Playlist" -msgstr "Audio-Wiedergabeliste erstellen" +#. translators: used to join last two items in a list with more than 2 times +#: wp-includes/formatting.php:4485 +msgid "%s, and %s" +msgstr "%s und %s" -#: wp-includes/media.php:3601 -msgid "Create Video Playlist" -msgstr "Video-Wiedergabeliste erstellen" +#. translators: used to join items in a list with more than 2 items +#: wp-includes/formatting.php:4483 +msgid "%s, %s" +msgstr "%s, %s" -#: wp-includes/media.php:3603 -msgid "← Cancel Video Playlist" -msgstr "← Video-Wiedergabeliste abbrechen" +#: wp-includes/widgets/class-wp-widget-search.php:31 +msgctxt "Search widget" +msgid "Search" +msgstr "Suche" -#: wp-includes/media.php:3604 -msgid "Insert video playlist" -msgstr "Video-Wiedergabeliste einfügen" +#: wp-includes/media-template.php:785 +msgid "Playlist Settings" +msgstr "Einstellungen Wiedergabeliste" -#: wp-includes/media.php:3605 -msgid "Update video playlist" -msgstr "Video-Wiedergabeliste aktualisieren" +#: wp-includes/media-template.php:797 +msgid "Show Tracklist" +msgstr "Zeige Titelliste" -#: wp-includes/nav-menu.php:377 -msgid "Invalid menu ID." -msgstr "Ungültige Menü-ID." +#: wp-includes/class-wp-customize-nav-menus.php:952 +#: wp-includes/class-wp-customize-panel.php:378 +#: wp-includes/class-wp-customize-section.php:368 +#: wp-includes/class-wp-customize-widgets.php:831 +#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:75 +#: wp-includes/media.php:3496 +msgid "Back" +msgstr "Zurück" -#: wp-includes/wp-db.php:1297 -msgid "The query argument of %s must have a placeholder." -msgstr "Der Abfrage-Parameter %s benötigt einen Platzhalter." +#: wp-includes/media.php:3559 +msgid "Image Details" +msgstr "Bild-Details" -#: wp-includes/media.php:3606 -msgid "Add to video playlist" -msgstr "Zur Video-Wiedergabeliste hinzufügen" +#: wp-includes/class-wp-editor.php:1248 wp-includes/script-loader.php:120 +msgid "Insert Read More tag" +msgstr "Weiterlesen-Tag einfügen" -#: wp-includes/media.php:3607 -msgid "Add to Video Playlist" -msgstr "Zur Video-Wiedergabeliste hinzufügen" +#: wp-includes/class-wp-editor.php:1222 +msgid "Show invisible characters" +msgstr "Zeige unsichtbare Zeichen" -#: wp-includes/user.php:2050 -msgid "Hint: The password should be at least twelve characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )." -msgstr "Tipp: Das Passwort sollte mindestens zwölf Zeichen lang sein. Für ein stärkeres Passwort verwende Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen wie ! \" ? $ % ^ & )." +#: wp-includes/class-wp-editor.php:1220 +msgid "Text color" +msgstr "Textfarbe" -#: wp-includes/media.php:3590 -msgid "Drag and drop to reorder tracks." -msgstr "Nutze Drag & Drop zum Umsortieren der Titel." +#: wp-includes/class-wp-editor.php:1219 +msgid "Background color" +msgstr "Hintergrundfarbe" -#: wp-includes/media.php:3600 -msgid "Drag and drop to reorder videos." -msgstr "Nutze Drag & Drop zum Umsortieren der Videos." +#: wp-includes/class-wp-editor.php:1188 +msgid "Delete column" +msgstr "Spalte löschen" -#: wp-includes/media.php:3586 -msgid "Select Poster Image" -msgstr "Vorschaubild auswählen" +#: wp-includes/class-wp-editor.php:1208 +msgid "Row group" +msgstr "Zeilen-Gruppe" -#: wp-includes/media-template.php:1165 -msgid "Poster Image" -msgstr "Vorschaubild" +#: wp-includes/class-wp-editor.php:1211 +msgid "Cell type" +msgstr "Zellentyp" -#: wp-includes/media-template.php:806 -msgid "Show Artist Name in Tracklist" -msgstr "Zeige Name des Künstlers in der Titelliste" +#: wp-includes/class-wp-editor.php:1176 +msgid "Header cell" +msgstr "Tabellen-Kopfzelle" -#: wp-includes/customize/class-wp-customize-image-control.php:41 -#: wp-includes/media.php:3565 -msgid "Choose Image" -msgstr "Bild auswählen" +#: wp-includes/class-wp-editor.php:1164 +msgid "Insert table" +msgstr "Tabelle einfügen" -#: wp-includes/media.php:3513 -msgid "Create a new video playlist" -msgstr "Neue Video-Wiedergabeliste erstellen" +#: wp-includes/class-wp-editor.php:1210 +msgid "Row type" +msgstr "Zeilentyp" -#: wp-includes/media.php:3512 -msgid "Create a new playlist" -msgstr "Neue Wiedergabeliste erstellen" +#: wp-includes/class-wp-editor.php:1213 +msgid "Cell spacing" +msgstr "Zellen-Außenabstand" -#: wp-includes/media.php:3602 -msgid "Edit Video Playlist" -msgstr "Video-Wiedergabeliste bearbeiten" +#: wp-includes/class-wp-editor.php:1212 +msgid "Cell padding" +msgstr "Zellen-Innenabstand" -#: wp-includes/class-wp-editor.php:1209 -msgid "Column group" -msgstr "Spalten-Gruppe" +#: wp-includes/class-wp-editor.php:1172 +msgid "Rows" +msgstr "Zeilen" -#: wp-includes/class-wp-editor.php:1092 wp-includes/script-loader.php:111 -msgid "Insert image" -msgstr "Bild einfügen" +#: wp-includes/class-wp-editor.php:1156 +msgid "Match case" +msgstr "Auf Groß- und Kleinschreibung achten" -#: wp-includes/class-wp-editor.php:1090 -msgid "Style" -msgstr "Stil" +#: wp-includes/class-wp-editor.php:1152 +msgid "Find and replace" +msgstr "Suchen und Ersetzen" -#: wp-includes/class-wp-editor.php:1101 -msgid "Alternative source" -msgstr "Alternative Quelle" +#: wp-includes/media-template.php:892 wp-includes/media.php:3494 +msgid "Replace" +msgstr "Ersetzen" -#: wp-includes/class-wp-editor.php:1075 -msgid "Keywords" -msgstr "Schlagwörter" +#: wp-includes/class-wp-editor.php:1113 +msgid "Paste as text" +msgstr "Als Text einfügen" -#: wp-includes/class-wp-customize-widgets.php:788 -#: wp-includes/script-loader.php:718 wp-includes/script-loader.php:742 -msgid "An error has occurred. Please reload the page and try again." -msgstr "Ein Fehler ist aufgetreten. Bitte lade die Seite neu und versuche es noch einmal." +#: wp-includes/class-wp-editor.php:1112 +msgid "Page break" +msgstr "Seitenumbruch" -#: wp-includes/class-wp-editor.php:1052 wp-includes/script-loader.php:114 -msgid "Numbered list" -msgstr "Nummerierte Liste" +#: wp-includes/class-wp-editor.php:1111 +msgid "Nonbreaking space" +msgstr "Geschütztes Leerzeichen" -#: wp-includes/class-wp-editor.php:1036 -msgid "Increase indent" -msgstr "Einzug erhöhen" +#: wp-includes/class-wp-editor.php:1104 +msgid "Embed" +msgstr "Embed" -#: wp-includes/class-wp-editor.php:1024 -msgid "Clear formatting" -msgstr "Formatierung löschen" +#: wp-includes/class-wp-editor.php:1103 +msgid "Insert video" +msgstr "Video einfügen" -#: wp-includes/class-wp-editor.php:1037 -msgid "Decrease indent" -msgstr "Einzug verringern" +#: wp-includes/class-wp-editor.php:1102 +msgid "Paste your embed code below:" +msgstr "Embed-Code unten einfügen:" -#: wp-includes/class-wp-editor.php:1035 -msgid "Justify" -msgstr "Blocksatz" +#: wp-includes/class-wp-editor.php:1129 +msgid "New window" +msgstr "Neues Fenster" -#: wp-includes/class-wp-editor.php:1049 -msgid "Visual aids" -msgstr "Visuelle Hilfen" +#: wp-includes/class-wp-editor.php:1130 +msgid "Text to display" +msgstr "Anzeigetext" -#: wp-includes/class-wp-editor.php:1120 -msgid "Restore last draft" -msgstr "Letzten Entwurf wiederherstellen" +#: wp-includes/class-wp-editor.php:1094 +msgid "Insert date/time" +msgstr "Datum/Zeit einfügen" + +#: wp-includes/class-wp-editor.php:1118 +msgid "Horizontal line" +msgstr "Horizontale Linie" + +#: wp-includes/class-wp-editor.php:1076 +msgid "Encoding" +msgstr "Zeichenkodierung" + +#: wp-includes/class-wp-editor.php:1073 +msgid "Robots" +msgstr "Roboter" + +#: wp-includes/class-wp-editor.php:1110 +msgid "Emoticons" +msgstr "Emoticons" + +#: wp-includes/class-wp-editor.php:1028 +msgid "Source code" +msgstr "Quelltext" #: wp-includes/class-wp-editor.php:1107 msgid "Special character" msgstr "Sonderzeichen" -#: wp-includes/class-wp-editor.php:1212 -msgid "Cell padding" -msgstr "Zellen-Innenabstand" - -#: wp-includes/class-wp-editor.php:1213 -msgid "Cell spacing" -msgstr "Zellen-Außenabstand" - -#: wp-includes/class-wp-editor.php:1164 -msgid "Insert table" -msgstr "Tabelle einfügen" +#: wp-includes/class-wp-editor.php:1120 +msgid "Restore last draft" +msgstr "Letzten Entwurf wiederherstellen" -#: wp-includes/class-wp-editor.php:1188 -msgid "Delete column" -msgstr "Spalte löschen" +#: wp-includes/class-wp-editor.php:1049 +msgid "Visual aids" +msgstr "Visuelle Hilfen" -#: wp-includes/class-wp-editor.php:1219 -msgid "Background color" -msgstr "Hintergrundfarbe" +#: wp-includes/class-wp-editor.php:1034 +msgid "Align left" +msgstr "Linksbündig" -#: wp-includes/class-wp-editor.php:1220 -msgid "Text color" -msgstr "Textfarbe" +#: wp-includes/class-wp-editor.php:1035 +msgid "Justify" +msgstr "Blocksatz" -#: wp-includes/class-wp-editor.php:1222 -msgid "Show invisible characters" -msgstr "Zeige unsichtbare Zeichen" +#: wp-includes/class-wp-editor.php:1227 +msgid "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off." +msgstr "Einfügen erfolgt jetzt im reinen Text-Modus. Inhalte werden nun als reiner Text eingefügt, bis du diese Option abschaltest." -#: wp-includes/class-wp-editor.php:1248 wp-includes/script-loader.php:120 -msgid "Insert Read More tag" -msgstr "Weiterlesen-Tag einfügen" +#: wp-includes/class-wp-editor.php:1037 +msgid "Decrease indent" +msgstr "Einzug verringern" -#: wp-includes/class-wp-editor.php:1103 -msgid "Insert video" -msgstr "Video einfügen" +#: wp-includes/class-wp-editor.php:1032 +msgid "Align center" +msgstr "Zentrieren" -#: wp-includes/class-wp-editor.php:1112 -msgid "Page break" -msgstr "Seitenumbruch" +#: wp-includes/class-wp-editor.php:1024 +msgid "Clear formatting" +msgstr "Formatierung löschen" -#: wp-includes/class-wp-editor.php:1113 -msgid "Paste as text" -msgstr "Als Text einfügen" +#: wp-includes/class-wp-editor.php:1036 +msgid "Increase indent" +msgstr "Einzug erhöhen" -#: wp-includes/media-template.php:892 wp-includes/media.php:3494 -msgid "Replace" -msgstr "Ersetzen" +#: wp-includes/class-wp-editor.php:1052 wp-includes/script-loader.php:114 +msgid "Numbered list" +msgstr "Nummerierte Liste" -#: wp-includes/class-wp-editor.php:1172 -msgid "Rows" -msgstr "Zeilen" +#: wp-includes/class-wp-editor.php:1033 +msgid "Align right" +msgstr "Rechtsbündig" -#: wp-includes/class-wp-customize-widgets.php:838 -#: wp-includes/customize/class-wp-widget-area-customize-control.php:61 -msgid "Add a Widget" -msgstr "Widget hinzufügen" +#: wp-includes/class-wp-customize-widgets.php:788 +#: wp-includes/script-loader.php:718 wp-includes/script-loader.php:742 +msgid "An error has occurred. Please reload the page and try again." +msgstr "Ein Fehler ist aufgetreten. Bitte lade die Seite neu und versuche es noch einmal." -#: wp-includes/class-wp-customize-nav-menus.php:931 -#: wp-includes/class-wp-customize-widgets.php:715 -msgid "Move down" -msgstr "Nach unten" +#: wp-includes/class-wp-customize-widgets.php:722 +msgid "Select an area to move this widget into:" +msgstr "Wähle einen Bereich, in den das Widget verschoben werden soll:" #: wp-includes/class-wp-customize-nav-menus.php:930 #: wp-includes/class-wp-customize-widgets.php:716 msgid "Move up" msgstr "Nach oben" -#: wp-includes/class-wp-editor.php:1104 -msgid "Embed" -msgstr "Embed" - -#: wp-includes/class-wp-editor.php:1102 -msgid "Paste your embed code below:" -msgstr "Embed-Code unten einfügen:" - -#: wp-includes/class-wp-editor.php:1156 -msgid "Match case" -msgstr "Auf Groß- und Kleinschreibung achten" - -#: wp-includes/class-wp-editor.php:1118 -msgid "Horizontal line" -msgstr "Horizontale Linie" - -#: wp-includes/class-wp-editor.php:1110 -msgid "Emoticons" -msgstr "Emoticons" - -#: wp-includes/class-wp-editor.php:1076 -msgid "Encoding" -msgstr "Zeichenkodierung" +#: wp-includes/class-wp-customize-nav-menus.php:931 +#: wp-includes/class-wp-customize-widgets.php:715 +msgid "Move down" +msgstr "Nach unten" #: wp-includes/customize/class-wp-customize-nav-menu-control.php:55 #: wp-includes/customize/class-wp-widget-area-customize-control.php:64 msgid "Reorder" msgstr "Umordnen" +#: wp-includes/class-wp-customize-widgets.php:838 +#: wp-includes/customize/class-wp-widget-area-customize-control.php:61 +msgid "Add a Widget" +msgstr "Widget hinzufügen" + +#: wp-includes/customize/class-wp-customize-header-image-control.php:219 +msgctxt "custom headers" +msgid "Suggested" +msgstr "Vorgeschlagen" + #: wp-includes/customize/class-wp-customize-header-image-control.php:212 msgctxt "custom headers" msgid "Previously uploaded" msgstr "Zuvor hochgeladen" +#: wp-includes/customize/class-wp-customize-header-image-control.php:198 +msgid "Current header" +msgstr "Aktuelles Header-Bild" + #: wp-includes/customize/class-wp-customize-header-image-control.php:140 msgid "No image set" msgstr "Kein Bild ausgewählt" +#: wp-includes/customize/class-wp-customize-header-image-control.php:128 +msgid "Randomizing suggested headers" +msgstr "Zufällig vorgeschlagenes Header-Bild" + +#: wp-includes/customize/class-wp-customize-header-image-control.php:126 +msgid "Randomizing uploaded headers" +msgstr "Zufällig hochgeladenes Header-Bild" + +#: wp-includes/customize/class-wp-customize-header-image-control.php:99 +msgid "Randomize suggested headers" +msgstr "Bilder zufällig anordnen" + +#: wp-includes/customize/class-wp-customize-header-image-control.php:97 +msgid "Randomize uploaded headers" +msgstr "Bilder zufällig anordnen" + +#: wp-includes/admin-bar.php:172 +msgid "https://wordpress.org/support/forum/requests-and-feedback" +msgstr "https://wordpress.org/support/forum/requests-and-feedback" + +#: wp-includes/admin-bar.php:164 wp-includes/update.php:129 +#: wp-includes/update.php:321 wp-includes/update.php:499 +#: wp-includes/wp-db.php:1129 wp-includes/wp-db.php:1601 +#: wp-includes/wp-db.php:1705 wp-login.php:796 +msgid "https://wordpress.org/support/" +msgstr "https://de.wordpress.org/hilfe/" + #: wp-includes/admin-bar.php:148 #: wp-includes/widgets/class-wp-widget-meta.php:69 wp-login.php:103 msgid "https://wordpress.org/" msgstr "https://wordpress.org/" -#: wp-includes/admin-bar.php:172 -msgid "https://wordpress.org/support/forum/requests-and-feedback" -msgstr "https://wordpress.org/support/forum/requests-and-feedback" +#: wp-includes/class-wp-editor.php:1075 +msgid "Keywords" +msgstr "Schlagwörter" -#: wp-includes/class-wp-editor.php:1032 -msgid "Align center" -msgstr "Zentrieren" +#: wp-includes/class-wp-editor.php:1101 +msgid "Alternative source" +msgstr "Alternative Quelle" -#: wp-includes/class-wp-editor.php:1028 -msgid "Source code" -msgstr "Quelltext" +#: wp-includes/class-wp-editor.php:1090 +msgid "Style" +msgstr "Stil" -#: wp-includes/class-wp-editor.php:1073 -msgid "Robots" -msgstr "Roboter" +#: wp-includes/class-wp-editor.php:1092 wp-includes/script-loader.php:111 +msgid "Insert image" +msgstr "Bild einfügen" #: wp-includes/class-wp-editor.php:1247 msgid "Toolbar Toggle" msgstr "Werkzeugleiste umschalten" -#: wp-includes/customize/class-wp-customize-header-image-control.php:97 -msgid "Randomize uploaded headers" -msgstr "Bilder zufällig anordnen" - -#: wp-includes/customize/class-wp-customize-header-image-control.php:99 -msgid "Randomize suggested headers" -msgstr "Bilder zufällig anordnen" - -#: wp-includes/customize/class-wp-customize-header-image-control.php:219 -msgctxt "custom headers" -msgid "Suggested" -msgstr "Vorgeschlagen" - -#: wp-includes/customize/class-wp-customize-header-image-control.php:126 -msgid "Randomizing uploaded headers" -msgstr "Zufällig hochgeladenes Header-Bild" - -#: wp-includes/customize/class-wp-customize-header-image-control.php:128 -msgid "Randomizing suggested headers" -msgstr "Zufällig vorgeschlagenes Header-Bild" - -#: wp-includes/customize/class-wp-customize-header-image-control.php:198 -msgid "Current header" -msgstr "Aktuelles Header-Bild" - -#: wp-includes/admin-bar.php:164 wp-includes/update.php:129 -#: wp-includes/update.php:321 wp-includes/update.php:499 -#: wp-includes/wp-db.php:1129 wp-includes/wp-db.php:1601 -#: wp-includes/wp-db.php:1705 wp-login.php:796 -msgid "https://wordpress.org/support/" -msgstr "https://de.wordpress.org/hilfe/" +#: wp-includes/class-wp-editor.php:1209 +msgid "Column group" +msgstr "Spalten-Gruppe" #: wp-includes/class-wp-editor.php:1146 msgid "Could not find the specified string." msgstr "Die angegebene Zeichenfolge konnte nicht gefunden werden." -#: wp-includes/class-wp-editor.php:1176 -msgid "Header cell" -msgstr "Tabellen-Kopfzelle" - -#: wp-includes/class-wp-customize-widgets.php:722 -msgid "Select an area to move this widget into:" -msgstr "Wähle einen Bereich, in den das Widget verschoben werden soll:" - -#: wp-includes/class-wp-editor.php:1111 -msgid "Nonbreaking space" -msgstr "Geschütztes Leerzeichen" - -#: wp-includes/class-wp-editor.php:1152 -msgid "Find and replace" -msgstr "Suchen und Ersetzen" - -#: wp-includes/class-wp-editor.php:1211 -msgid "Cell type" -msgstr "Zellentyp" - -#: wp-includes/class-wp-editor.php:1210 -msgid "Row type" -msgstr "Zeilentyp" - -#: wp-includes/class-wp-editor.php:1034 -msgid "Align left" -msgstr "Linksbündig" - -#: wp-includes/class-wp-editor.php:1033 -msgid "Align right" -msgstr "Rechtsbündig" - -#: wp-includes/class-wp-editor.php:1094 -msgid "Insert date/time" -msgstr "Datum/Zeit einfügen" - -#: wp-includes/class-wp-editor.php:1208 -msgid "Row group" -msgstr "Zeilen-Gruppe" - -#: wp-includes/class-wp-editor.php:1227 -msgid "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off." -msgstr "Einfügen erfolgt jetzt im reinen Text-Modus. Inhalte werden nun als reiner Text eingefügt, bis du diese Option abschaltest." - -#: wp-includes/class-wp-editor.php:1129 -msgid "New window" -msgstr "Neues Fenster" - -#: wp-includes/class-wp-editor.php:1130 -msgid "Text to display" -msgstr "Anzeigetext" +#: wp-includes/general-template.php:3506 +msgctxt "admin color scheme" +msgid "Coffee" +msgstr "Kaffee" -#: wp-includes/general-template.php:3488 +#: wp-includes/general-template.php:3500 msgctxt "admin color scheme" -msgid "Sunrise" -msgstr "Sonnenaufgang" +msgid "Ocean" +msgstr "Meer" #: wp-includes/general-template.php:3494 msgctxt "admin color scheme" msgid "Ectoplasm" msgstr "Ektoplasma" -#: wp-includes/general-template.php:3500 -msgctxt "admin color scheme" -msgid "Ocean" -msgstr "Meer" - -#: wp-includes/general-template.php:3506 +#: wp-includes/general-template.php:3488 msgctxt "admin color scheme" -msgid "Coffee" -msgstr "Kaffee" +msgid "Sunrise" +msgstr "Sonnenaufgang" #: wp-includes/class-wp-image-editor.php:288 msgid "Attempted to set image quality outside of the range [1,100]." msgstr "Es wurde versucht, die Bildqualität außerhalb des Bereichs [1-100] zu setzen." +#: wp-includes/widgets/class-wp-nav-menu-widget.php:27 +msgid "Add a custom menu to your sidebar." +msgstr "Füge ein individuelles Menü zur Seitenleiste hinzu." + +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:27 +msgid "A cloud of your most used tags." +msgstr "Eine Wortwolke deiner meistgenutzten Schlagwörter." + #: wp-includes/widgets/class-wp-widget-rss.php:27 msgid "Entries from any RSS or Atom feed." msgstr "Einträge von einem beliebigen RSS- oder Atom-Feed." +#: wp-includes/widgets/class-wp-widget-recent-comments.php:28 +msgid "Your site’s most recent comments." +msgstr "Die neuesten Kommentare deiner Website." + +#: wp-includes/widgets/class-wp-widget-recent-posts.php:28 +msgid "Your site’s most recent Posts." +msgstr "Die neuesten Beiträge deiner Website." + #: wp-includes/widgets/class-wp-widget-categories.php:28 msgid "A list or dropdown of categories." msgstr "Eine Liste oder ausklappbare Liste von Kategorien." -#: wp-includes/widgets/class-wp-widget-pages.php:28 -msgid "A list of your site’s Pages." -msgstr "Eine Liste der Seiten deiner Website." - #: wp-includes/widgets/class-wp-widget-calendar.php:38 msgid "A calendar of your site’s Posts." msgstr "Ein Kalender der Beiträge deiner Website." +#: wp-includes/widgets/class-wp-widget-meta.php:30 +msgid "Login, RSS, & WordPress.org links." +msgstr "Anmelde-, RSS-, & WordPress.org-Links." + #: wp-includes/widgets/class-wp-widget-archives.php:28 msgid "A monthly archive of your site’s Posts." msgstr "Ein monatliches Archiv der Beiträge deiner Website." @@ -6269,25 +6285,9 @@ msgstr "Ein monatliches Archiv der Beiträge deiner Website." msgid "A search form for your site." msgstr "Ein Suchformular für deine Website." -#: wp-includes/widgets/class-wp-widget-recent-posts.php:28 -msgid "Your site’s most recent Posts." -msgstr "Die neuesten Beiträge deiner Website." - -#: wp-includes/widgets/class-wp-widget-recent-comments.php:28 -msgid "Your site’s most recent comments." -msgstr "Die neuesten Kommentare deiner Website." - -#: wp-includes/widgets/class-wp-nav-menu-widget.php:27 -msgid "Add a custom menu to your sidebar." -msgstr "Füge ein individuelles Menü zur Seitenleiste hinzu." - -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:27 -msgid "A cloud of your most used tags." -msgstr "Eine Wortwolke deiner meistgenutzten Schlagwörter." - -#: wp-includes/widgets/class-wp-widget-meta.php:30 -msgid "Login, RSS, & WordPress.org links." -msgstr "Anmelde-, RSS-, & WordPress.org-Links." +#: wp-includes/widgets/class-wp-widget-pages.php:28 +msgid "A list of your site’s Pages." +msgstr "Eine Liste der Seiten deiner Website." #. translators: If there are characters in your language that are not supported #. by Open Sans, translate this to 'off'. Do not translate into your own @@ -6297,20 +6297,11 @@ msgctxt "Open Sans font: on or off" msgid "on" msgstr "on" -#: wp-includes/general-template.php:3470 -msgctxt "admin color scheme" -msgid "Light" -msgstr "Hell" - -#: wp-includes/general-template.php:3482 -msgctxt "admin color scheme" -msgid "Midnight" -msgstr "Mitternacht" - -#: wp-includes/general-template.php:3459 -msgctxt "admin color scheme" -msgid "Default" -msgstr "Standard" +#. translators: %s: support forums URL +#: wp-includes/update.php:128 wp-includes/update.php:320 +#: wp-includes/update.php:498 +msgid "An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href=\"%s\">support forums</a>." +msgstr "Ein unerwarteter Fehler ist aufgetreten. Es scheint etwas bei WordPress.org oder mit dieser Serverkonfiguration nicht zu stimmen. Sollte das Problem weiter bestehen, nutze bitte die <a href=\"%s\">Support-Foren</a>." #. translators: To add an additional Open Sans character subset specific to #. your language, translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not @@ -6324,11 +6315,20 @@ msgstr "no-subset" msgid "Use commas instead of %s to separate excluded terms." msgstr "Benutze Kommas anstelle von %s, um ausgeschlossene Begriffe zu trennen." -#. translators: %s: support forums URL -#: wp-includes/update.php:128 wp-includes/update.php:320 -#: wp-includes/update.php:498 -msgid "An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href=\"%s\">support forums</a>." -msgstr "Ein unerwarteter Fehler ist aufgetreten. Es scheint etwas bei WordPress.org oder mit dieser Serverkonfiguration nicht zu stimmen. Sollte das Problem weiter bestehen, nutze bitte die <a href=\"%s\">Support-Foren</a>." +#: wp-includes/general-template.php:3482 +msgctxt "admin color scheme" +msgid "Midnight" +msgstr "Mitternacht" + +#: wp-includes/general-template.php:3470 +msgctxt "admin color scheme" +msgid "Light" +msgstr "Hell" + +#: wp-includes/general-template.php:3459 +msgctxt "admin color scheme" +msgid "Default" +msgstr "Standard" #: wp-includes/admin-bar.php:187 msgid "Menu" @@ -6360,28 +6360,20 @@ msgstr "Dieser Inhalt ist passwortgeschützt. Um ihn anzuschauen, gib dein Passw msgid "ERROR: This is not a valid feed template." msgstr "FEHLER: Dies ist keine gültige Feed-Vorlage." -#: wp-includes/class-wp-http-curl.php:257 -#: wp-includes/class-wp-http-streams.php:256 -msgid "Failed to write request to temporary file." -msgstr "Konnte Anfrage nicht in die temporäre Datei schreiben." - #: wp-includes/class-wp-http-streams.php:156 #: wp-includes/class-wp-http-streams.php:164 msgid "The SSL certificate for the host could not be verified." msgstr "Das SSL-Zertifikat für den Host konnte nicht verifiziert werden." +#: wp-includes/class-wp-http-curl.php:257 +#: wp-includes/class-wp-http-streams.php:256 +msgid "Failed to write request to temporary file." +msgstr "Konnte Anfrage nicht in die temporäre Datei schreiben." + #: wp-includes/media-template.php:651 msgid "Embed Media Player" msgstr "Eingebundener Medien-Player" -#: wp-includes/media-template.php:355 wp-includes/media-template.php:533 -msgid "Length:" -msgstr "Länge:" - -#: wp-includes/media-template.php:638 -msgid "Embed or Link" -msgstr "Einbetten oder verlinken" - #: wp-includes/media-template.php:668 msgid "Link to Attachment Page" msgstr "Anhang-Seite verlinken" @@ -6390,22 +6382,22 @@ msgstr "Anhang-Seite verlinken" msgid "Link to Media File" msgstr "Medien-Datei verlinken" -#: wp-includes/script-loader.php:367 -msgid "Mute Toggle" -msgstr "Stumm schalten" +#: wp-includes/media-template.php:638 +msgid "Embed or Link" +msgstr "Einbetten oder verlinken" + +#: wp-includes/media-template.php:355 wp-includes/media-template.php:533 +msgid "Length:" +msgstr "Länge:" + +#: wp-includes/script-loader.php:359 +msgid "Captions/Subtitles" +msgstr "Beschriftungen/Untertitel" #: wp-includes/script-loader.php:368 msgid "Unmute" msgstr "Laut schalten" -#: wp-includes/script-loader.php:355 -msgid "Download File" -msgstr "Datei herunterladen" - -#: wp-includes/script-loader.php:356 -msgid "Download Video" -msgstr "Video herunterladen" - #: wp-includes/script-loader.php:354 msgid "Go Fullscreen" msgstr "Vollbild einschalten" @@ -6414,16 +6406,17 @@ msgstr "Vollbild einschalten" msgid "Turn off Fullscreen" msgstr "Vollbild beenden" -#: wp-includes/script-loader.php:359 -msgid "Captions/Subtitles" -msgstr "Beschriftungen/Untertitel" +#: wp-includes/script-loader.php:367 +msgid "Mute Toggle" +msgstr "Stumm schalten" -#. translators: Time difference between two dates, in weeks. 1: Number of weeks -#: wp-includes/formatting.php:3246 -msgid "%s week" -msgid_plural "%s weeks" -msgstr[0] "%s Woche" -msgstr[1] "%s Wochen" +#: wp-includes/script-loader.php:356 +msgid "Download Video" +msgstr "Video herunterladen" + +#: wp-includes/script-loader.php:355 +msgid "Download File" +msgstr "Datei herunterladen" #. translators: Time difference between two dates, in years. 1: Number of years #: wp-includes/formatting.php:3258 @@ -6440,6 +6433,13 @@ msgid_plural "%s months" msgstr[0] "%s Monat" msgstr[1] "%s Monaten" +#. translators: Time difference between two dates, in weeks. 1: Number of weeks +#: wp-includes/formatting.php:3246 +msgid "%s week" +msgid_plural "%s weeks" +msgstr[0] "%s Woche" +msgstr[1] "%s Wochen" + #. translators: %d: ID of a post #: wp-includes/class-walker-page-dropdown.php:74 #: wp-includes/class-walker-page.php:157 @@ -6454,29 +6454,29 @@ msgstr "#%d (kein Titel)" msgid "JavaScript must be enabled to use this feature." msgstr "Um dieses Feature zu nutzen, muss JavaScript aktiviert sein. " -#. translators: localized date format, see https://secure.php.net/date -#: wp-includes/class-wp-locale.php:398 wp-includes/media.php:3108 -msgid "F j, Y" -msgstr "j. F Y" +#. translators: localized date and time format, see https://secure.php.net/date +#: wp-includes/class-wp-locale.php:402 +msgid "F j, Y g:i a" +msgstr "j. F Y G:i" #. translators: localized time format, see https://secure.php.net/date #: wp-includes/class-wp-locale.php:400 msgid "g:i a" msgstr "G:i" -#. translators: localized date and time format, see https://secure.php.net/date -#: wp-includes/class-wp-locale.php:402 -msgid "F j, Y g:i a" -msgstr "j. F Y G:i" - -#: wp-includes/class-wp-xmlrpc-server.php:437 -msgid "Login Address (URL)" -msgstr "Anmelde-Adresse (URL)" +#. translators: localized date format, see https://secure.php.net/date +#: wp-includes/class-wp-locale.php:398 wp-includes/media.php:3108 +msgid "F j, Y" +msgstr "j. F Y" #: wp-includes/class-wp-xmlrpc-server.php:442 msgid "The URL to the admin area" msgstr "Die URL des Adminbereichs" +#: wp-includes/class-wp-xmlrpc-server.php:437 +msgid "Login Address (URL)" +msgstr "Anmelde-Adresse (URL)" + #: wp-includes/media-template.php:194 msgid "The web browser on your device cannot be used to upload files. You may be able to use the <a href=\"%s\">native app for your device</a> instead." msgstr "Der Web-Browser auf deinem Gerät kann leider nicht zum Hochladen von Dateien benutzt werden. Vielleicht kannst du stattdessen diese <a href=\"%s\">Native App für dein Gerät</a> benutzen." @@ -6522,16 +6522,16 @@ msgstr "Die Anmelde-Seite wird sich in einem neuen Fenster öffnen. Nach dem Anm msgid "%s <span class=\"says\">says:</span>" msgstr "%s <span class=\"says\">sagt:</span>" -#: wp-includes/general-template.php:224 wp-includes/general-template.php:232 -msgctxt "label" -msgid "Search for:" -msgstr "Suche nach:" - #: wp-includes/general-template.php:227 wp-includes/general-template.php:234 msgctxt "submit button" msgid "Search" msgstr "Suche" +#: wp-includes/general-template.php:224 wp-includes/general-template.php:232 +msgctxt "label" +msgid "Search for:" +msgstr "Suche nach:" + #: wp-includes/general-template.php:225 msgctxt "placeholder" msgid "Search …" @@ -6555,14 +6555,14 @@ msgstr "WordPress.org" msgid "Do not deregister the %1$s script in the administration area. To target the front-end theme, use the %2$s hook." msgstr "Deaktiviere nicht das %1$s-Skript im Administrationsbereich. Um das Frontend-Theme anzusprechen, benutze den %2$s-Hook." -#: wp-includes/class-wp-xmlrpc-server.php:427 -msgid "WordPress Address (URL)" -msgstr "WordPress-Adresse (URL)" - #: wp-includes/class-wp-xmlrpc-server.php:432 msgid "Site Address (URL)" msgstr "Website-Adresse (URL)" +#: wp-includes/class-wp-xmlrpc-server.php:427 +msgid "WordPress Address (URL)" +msgstr "WordPress-Adresse (URL)" + #: wp-includes/class-wp-xmlrpc-server.php:2449 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:339 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:602 @@ -6571,13 +6571,17 @@ msgstr "Website-Adresse (URL)" msgid "Invalid user ID." msgstr "Ungültige Benutzer-ID." +#: wp-includes/media-template.php:485 +msgid "Caption this image…" +msgstr "Beschrifte dieses Bild …" + #: wp-includes/media-template.php:754 msgid "Random Order" msgstr "Zufällige Sortierung" -#: wp-includes/media-template.php:485 -msgid "Caption this image…" -msgstr "Beschrifte dieses Bild …" +#: wp-includes/media.php:3542 +msgid "Insert from URL" +msgstr "Von URL einfügen" #. translators: This is a would-be plural string used in the media manager. #. If there is not a word you can use in your language to avoid issues with @@ -6587,10 +6591,6 @@ msgstr "Beschrifte dieses Bild …" msgid "%d selected" msgstr "%d ausgewählt" -#: wp-includes/media.php:3542 -msgid "Insert from URL" -msgstr "Von URL einfügen" - #: wp-includes/widgets/class-wp-widget-links.php:147 msgctxt "Links widget" msgid "Random" @@ -6638,34 +6638,20 @@ msgstr "Hochladen" msgid "No editor could be selected." msgstr "Es konnte kein Editor ausgewählt werden." -#: wp-includes/post.php:2287 -msgid "Manage Images" -msgstr "Bilder verwalten" - -#: wp-includes/post.php:2287 -msgid "Image <span class=\"count\">(%s)</span>" -msgid_plural "Images <span class=\"count\">(%s)</span>" -msgstr[0] "Bild <span class=\"count\">(%s)</span>" -msgstr[1] "Bilder <span class=\"count\">(%s)</span>" - -#: wp-includes/post.php:2288 -msgid "Manage Audio" -msgstr "Audio verwalten" - #: wp-includes/post.php:2289 -#: wp-includes/widgets/class-wp-widget-media-video.php:26 -msgid "Video" -msgstr "Video" +msgid "Video <span class=\"count\">(%s)</span>" +msgid_plural "Video <span class=\"count\">(%s)</span>" +msgstr[0] "Video <span class=\"count\">(%s)</span>" +msgstr[1] "Videos <span class=\"count\">(%s)</span>" #: wp-includes/post.php:2289 msgid "Manage Video" msgstr "Video verwalten" #: wp-includes/post.php:2289 -msgid "Video <span class=\"count\">(%s)</span>" -msgid_plural "Video <span class=\"count\">(%s)</span>" -msgstr[0] "Video <span class=\"count\">(%s)</span>" -msgstr[1] "Videos <span class=\"count\">(%s)</span>" +#: wp-includes/widgets/class-wp-widget-media-video.php:26 +msgid "Video" +msgstr "Video" #: wp-includes/post.php:2288 msgid "Audio <span class=\"count\">(%s)</span>" @@ -6673,17 +6659,27 @@ msgid_plural "Audio <span class=\"count\">(%s)</span>" msgstr[0] "Audio <span class=\"count\">(%s)</span>" msgstr[1] "Audios <span class=\"count\">(%s)</span>" -#: wp-includes/post.php:1385 -msgid "Insert into page" -msgstr "In die Seite einfügen" +#: wp-includes/post.php:2288 +msgid "Manage Audio" +msgstr "Audio verwalten" + +#: wp-includes/post.php:2287 +msgid "Image <span class=\"count\">(%s)</span>" +msgid_plural "Images <span class=\"count\">(%s)</span>" +msgstr[0] "Bild <span class=\"count\">(%s)</span>" +msgstr[1] "Bilder <span class=\"count\">(%s)</span>" + +#: wp-includes/post.php:2287 +msgid "Manage Images" +msgstr "Bilder verwalten" #: wp-includes/post.php:1386 msgid "Uploaded to this page" msgstr "Zu dieser Seite hochgeladen" -#: wp-includes/media.php:3515 -msgid "All media items" -msgstr "Alle Medien" +#: wp-includes/post.php:1385 +msgid "Insert into page" +msgstr "In die Seite einfügen" #: wp-includes/post.php:2288 #: wp-includes/widgets/class-wp-widget-media-audio.php:26 @@ -6694,6 +6690,10 @@ msgstr "Audio" msgid "Uploaded to this post" msgstr "Zu diesem Beitrag hochgeladen" +#: wp-includes/media.php:3515 +msgid "All media items" +msgstr "Alle Medien" + #: wp-includes/media.php:3514 msgid "← Return to library" msgstr "← Zurück zur Bibliothek" @@ -6721,14 +6721,14 @@ msgstr "Anhang-Details" msgid "Large" msgstr "Groß" -#: wp-includes/media.php:3506 -msgid "Upload Images" -msgstr "Bilder hochladen" - #: wp-includes/media.php:3551 msgid "← Cancel Gallery" msgstr "← Galerie abbrechen" +#: wp-includes/media.php:3506 +msgid "Upload Images" +msgstr "Bilder hochladen" + #: wp-includes/media-template.php:715 msgid "Gallery Settings" msgstr "Galerie-Einstellungen" @@ -6765,14 +6765,14 @@ msgstr "Galerie erstellen" msgid "Media Library" msgstr "Mediathek" -#: wp-includes/ms-functions.php:1408 -msgid "Already Installed" -msgstr "Bereits installiert" - #: wp-includes/ms-functions.php:1408 msgid "You appear to have already installed WordPress. To reinstall please clear your old database tables first." msgstr "WordPress ist bereits installiert. Für eine Neuinstallation lösche bitte zuerst deine alte Datenbank." +#: wp-includes/ms-functions.php:1408 +msgid "Already Installed" +msgstr "Bereits installiert" + #: wp-includes/ms-functions.php:965 msgid "" "To activate your user, please click the following link:\n" @@ -6797,9 +6797,9 @@ msgid "" "Disable these notifications: %3$s" msgstr "" "Neuer Benutzer: %1$s\n" -"Remote-IP: %2$s\n" +"Remote IP: %2$s\n" "\n" -"Deaktiviere diese Mitteilungen: %3$s" +"Deaktiviere diese Benachrichtigungen: %3$s" #. translators: New site notification email. 1: Site URL, 2: User IP address, #. 3: Settings screen URL @@ -6811,44 +6811,48 @@ msgid "" "\n" "Disable these notifications: %4$s" msgstr "" -"Neue Seite: %1$s\n" +"Neue Website: %1$s\n" "URL: %2$s\n" "Remote IP: %3$s\n" "\n" "Diese Benachrichtigungen deaktivieren: %4$s" -#: wp-includes/media-template.php:640 wp-includes/media-template.php:718 -#: wp-includes/media-template.php:866 wp-includes/media-template.php:970 -#: wp-includes/widgets/class-wp-widget-media-image.php:99 -msgid "Link To" -msgstr "Link zur" +#: wp-includes/media-template.php:663 wp-includes/media-template.php:731 +#: wp-includes/media-template.php:974 +msgid "Media File" +msgstr "Medien-Datei" #: wp-includes/media-template.php:670 wp-includes/media-template.php:728 #: wp-includes/media-template.php:977 msgid "Attachment Page" msgstr "Anhang-Seite" -#: wp-includes/media-template.php:663 wp-includes/media-template.php:731 -#: wp-includes/media-template.php:974 -msgid "Media File" -msgstr "Medien-Datei" +#: wp-includes/media-template.php:640 wp-includes/media-template.php:718 +#: wp-includes/media-template.php:866 wp-includes/media-template.php:970 +#: wp-includes/widgets/class-wp-widget-media-image.php:99 +msgid "Link To" +msgstr "Link zur" -#: wp-includes/media-template.php:489 -msgid "Describe this video…" -msgstr "Beschreibe dieses Video …" +#: wp-includes/media-template.php:493 +msgid "Describe this media file…" +msgstr "Beschreibe diese Medien-Datei …" #: wp-includes/media-template.php:491 msgid "Describe this audio file…" msgstr "Beschreibe diese Audio-Datei …" -#: wp-includes/media-template.php:493 -msgid "Describe this media file…" -msgstr "Beschreibe diese Medien-Datei …" +#: wp-includes/media-template.php:489 +msgid "Describe this video…" +msgstr "Beschreibe dieses Video …" #: wp-includes/media.php:3553 msgid "Update gallery" msgstr "Galerie aktualisieren" +#: wp-includes/user.php:2296 +msgid "<strong>ERROR</strong>: This username is already registered. Please choose another one." +msgstr "<strong>FEHLER</strong>: Dieser Benutzername ist bereits registriert. Bitte wähle einen anderen." + #: wp-includes/ms-functions.php:446 msgid "Please enter a valid email address." msgstr "Bitte gib eine gültige E-Mail-Adresse ein." @@ -6857,25 +6861,6 @@ msgstr "Bitte gib eine gültige E-Mail-Adresse ein." msgid "The requested user does not exist." msgstr "Der angeforderte Benutzer existiert nicht." -#: wp-includes/user.php:2296 -msgid "<strong>ERROR</strong>: This username is already registered. Please choose another one." -msgstr "<strong>FEHLER</strong>: Dieser Benutzername ist bereits registriert. Bitte wähle einen anderen." - -#: wp-includes/class-wp-image-editor-gd.php:97 -#: wp-includes/class-wp-image-editor-imagick.php:139 -msgid "File doesn’t exist?" -msgstr "Existiert die Datei?" - -#: wp-includes/class-wp-image-editor-gd.php:105 -#: wp-includes/class-wp-image-editor-imagick.php:161 -msgid "File is not an image." -msgstr "Datei ist kein Bild." - -#: wp-includes/class-wp-image-editor-gd.php:172 -#: wp-includes/class-wp-image-editor-gd.php:197 -msgid "Image resize failed." -msgstr "Änderung der Bildgröße fehlgeschlagen." - #: wp-includes/class-wp-image-editor-gd.php:400 #: wp-includes/class-wp-image-editor-gd.php:408 #: wp-includes/class-wp-image-editor-gd.php:412 @@ -6883,15 +6868,6 @@ msgstr "Änderung der Bildgröße fehlgeschlagen." msgid "Image Editor Save Failed" msgstr "Das Speichern der Bildbearbeitung ist fehlgeschlagen" -#: wp-includes/class-wp-image-editor-gd.php:109 -#: wp-includes/class-wp-image-editor-imagick.php:232 -msgid "Could not read image size." -msgstr "Bildgröße nicht lesbar." - -#: wp-includes/class-wp-image-editor-gd.php:305 -msgid "Image crop failed." -msgstr "Zuschneiden des Bilds fehlgeschlagen." - #: wp-includes/class-wp-image-editor-gd.php:362 msgid "Image flip failed." msgstr "Spiegeln des Bilds fehlgeschlagen." @@ -6900,21 +6876,29 @@ msgstr "Spiegeln des Bilds fehlgeschlagen." msgid "Image rotate failed." msgstr "Drehen des Bilds fehlgeschlagen." -#: wp-includes/media.php:3510 -msgid "Insert Media" -msgstr "Medien hinzufügen" +#: wp-includes/class-wp-image-editor-gd.php:305 +msgid "Image crop failed." +msgstr "Zuschneiden des Bilds fehlgeschlagen." -#: wp-includes/media.php:3554 -msgid "Add to gallery" -msgstr "Zur Galerie hinzufügen" +#: wp-includes/class-wp-image-editor-gd.php:172 +#: wp-includes/class-wp-image-editor-gd.php:197 +msgid "Image resize failed." +msgstr "Änderung der Bildgröße fehlgeschlagen." -#: wp-includes/script-loader.php:731 -msgid "Select Color" -msgstr "Farbe wählen" +#: wp-includes/class-wp-image-editor-gd.php:109 +#: wp-includes/class-wp-image-editor-imagick.php:232 +msgid "Could not read image size." +msgstr "Bildgröße nicht lesbar." -#: wp-includes/taxonomy.php:2304 -msgid "Could not insert term relationship into the database" -msgstr "Konnte keine Begriffsbeziehung in die Datenbank einfügen." +#: wp-includes/class-wp-image-editor-gd.php:105 +#: wp-includes/class-wp-image-editor-imagick.php:161 +msgid "File is not an image." +msgstr "Datei ist kein Bild." + +#: wp-includes/class-wp-image-editor-gd.php:97 +#: wp-includes/class-wp-image-editor-imagick.php:139 +msgid "File doesn’t exist?" +msgstr "Existiert die Datei?" #. translators: 1: first name, 2: last name #: wp-includes/user.php:1576 @@ -6922,66 +6906,61 @@ msgctxt "Display name based on first name and last name" msgid "%1$s %2$s" msgstr "%1$s %2$s" -#: wp-includes/post.php:1385 -msgid "Insert into post" -msgstr "In den Beitrag einfügen" +#: wp-includes/taxonomy.php:2304 +msgid "Could not insert term relationship into the database" +msgstr "Konnte keine Begriffsbeziehung in die Datenbank einfügen." + +#: wp-includes/script-loader.php:732 +msgid "Current Color" +msgstr "Aktuelle Farbe" + +#: wp-includes/script-loader.php:731 +msgid "Select Color" +msgstr "Farbe wählen" #: wp-includes/media-template.php:601 wp-includes/script-loader.php:729 msgid "Clear" msgstr "Leeren" -#: wp-includes/script-loader.php:732 -msgid "Current Color" -msgstr "Aktuelle Farbe" +#: wp-includes/media.php:3554 +msgid "Add to gallery" +msgstr "Zur Galerie hinzufügen" -#: wp-includes/post.php:68 -msgid "View Attachment Page" -msgstr "Zeige Anhang-Seite" +#: wp-includes/post.php:1385 +msgid "Insert into post" +msgstr "In den Beitrag einfügen" #: wp-includes/media.php:3511 msgid "Create a new gallery" msgstr "Neue Galerie erstellen" -#: wp-includes/media-template.php:908 -#: wp-includes/widgets/class-wp-widget-media-image.php:92 -msgid "Alternative Text" -msgstr "Alternativer Text" +#: wp-includes/media.php:3510 +msgid "Insert Media" +msgstr "Medien hinzufügen" -#: wp-includes/media-template.php:204 -msgctxt "Uploader: Drop files here - or - Select Files" -msgid "or" -msgstr "oder" - -#. translators: 1: blog name, 2: separator(raquo), 3: post type name -#: wp-includes/general-template.php:2677 -msgid "%1$s %2$s %3$s Feed" -msgstr "%1$s %2$s %3$s Feed" +#: wp-includes/post.php:68 +msgid "View Attachment Page" +msgstr "Zeige Anhang-Seite" #: wp-includes/media-template.php:205 msgid "Select Files" msgstr "Dateien auswählen" -#: wp-includes/widgets/class-wp-widget-recent-posts.php:139 -msgid "Display post date?" -msgstr "Veröffentlichungsdatum anzeigen?" - -#: wp-includes/class-wp-xmlrpc-server.php:274 -msgid "XML-RPC services are disabled on this site." -msgstr "Der XML-RPC-Service wurde auf dieser Website deaktiviert." +#: wp-includes/media-template.php:204 +msgctxt "Uploader: Drop files here - or - Select Files" +msgid "or" +msgstr "oder" -#: wp-includes/class-wp-xmlrpc-server.php:2655 -msgid "Sorry, the user cannot be updated." -msgstr "Dieser Benutzer kann leider nicht aktualisiert werden." +#: wp-includes/media-template.php:908 +#: wp-includes/widgets/class-wp-widget-media-image.php:92 +msgid "Alternative Text" +msgstr "Alternativer Text" #: wp-includes/class-wp-xmlrpc-server.php:4263 #: wp-includes/class-wp-xmlrpc-server.php:4333 msgid "Sorry, revisions are disabled." msgstr "Revisionen sind leider deaktiviert." -#: wp-includes/class-wp-xmlrpc-server.php:285 -msgid "Incorrect username or password." -msgstr "Benutzername oder Passwort falsch." - #: wp-includes/class-wp-xmlrpc-server.php:2990 #: wp-includes/class-wp-xmlrpc-server.php:4259 #: wp-includes/class-wp-xmlrpc-server.php:4556 @@ -6989,14 +6968,35 @@ msgstr "Benutzername oder Passwort falsch." msgid "Sorry, you are not allowed to edit posts." msgstr "Du bist leider nicht berechtigt, Beiträge zu bearbeiten." -#: wp-includes/class-wp-xmlrpc-server.php:1598 -msgid "There is a revision of this post that is more recent." -msgstr "Es existiert eine neuere Revision dieses Beitrags." +#: wp-includes/class-wp-xmlrpc-server.php:2655 +msgid "Sorry, the user cannot be updated." +msgstr "Dieser Benutzer kann leider nicht aktualisiert werden." #: wp-includes/class-wp-xmlrpc-server.php:4957 msgid "Sorry, you are not allowed to create pages as this user." msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, Seiten zu erstellen." +#: wp-includes/widgets/class-wp-widget-recent-posts.php:139 +msgid "Display post date?" +msgstr "Veröffentlichungsdatum anzeigen?" + +#. translators: 1: blog name, 2: separator(raquo), 3: post type name +#: wp-includes/general-template.php:2677 +msgid "%1$s %2$s %3$s Feed" +msgstr "%1$s %2$s %3$s Feed" + +#: wp-includes/class-wp-xmlrpc-server.php:1598 +msgid "There is a revision of this post that is more recent." +msgstr "Es existiert eine neuere Revision dieses Beitrags." + +#: wp-includes/class-wp-xmlrpc-server.php:274 +msgid "XML-RPC services are disabled on this site." +msgstr "Der XML-RPC-Service wurde auf dieser Website deaktiviert." + +#: wp-includes/class-wp-xmlrpc-server.php:285 +msgid "Incorrect username or password." +msgstr "Benutzername oder Passwort falsch." + #: wp-includes/class-wp-editor.php:184 msgctxt "Name for the Text editor tab (formerly HTML)" msgid "Text" @@ -7058,33 +7058,33 @@ msgstr "Header-Bild" msgid "Post Thumbnail" msgstr "Beitrags-Vorschaubild" -#: wp-includes/script-loader.php:97 -msgid "text direction" -msgstr "Textrichtung" - #: wp-includes/script-loader.php:98 msgid "Toggle Editor Text Direction" msgstr "Textrichtung umschalten" -#: wp-includes/ms-functions.php:427 -msgid "Please enter a username." -msgstr "Bitte gib einen Benutzernamen ein." +#: wp-includes/script-loader.php:97 +msgid "text direction" +msgstr "Textrichtung" + +#: wp-includes/ms-functions.php:452 +msgid "Username must be at least 4 characters." +msgstr "Der Benutzername muss aus mindestens 4 Zeichen bestehen." #: wp-includes/ms-functions.php:578 msgid "That name is not allowed." msgstr "Dieser Name ist nicht erlaubt." -#: wp-includes/ms-functions.php:571 -msgid "Please enter a site name." -msgstr "Bitte gib einen Website-Namen ein." - #: wp-includes/ms-functions.php:617 msgid "Please enter a site title." msgstr "Bitte gib einen Website-Titel ein." -#: wp-includes/ms-functions.php:452 -msgid "Username must be at least 4 characters." -msgstr "Der Benutzername muss aus mindestens 4 Zeichen bestehen." +#: wp-includes/ms-functions.php:427 +msgid "Please enter a username." +msgstr "Bitte gib einen Benutzernamen ein." + +#: wp-includes/ms-functions.php:571 +msgid "Please enter a site name." +msgstr "Bitte gib einen Website-Namen ein." #. translators: %s: minimum site name length #: wp-includes/ms-functions.php:591 @@ -7097,15 +7097,15 @@ msgstr[1] "Der Website-Name muss mindestens %s Zeichen lang sein." msgid "A static page" msgstr "Eine statische Seite" -#: wp-includes/class-wp-customize-manager.php:3927 -msgid "Background Color" -msgstr "Hintergrundfarbe" - #: wp-includes/class-wp-customize-manager.php:4048 #: wp-includes/customize/class-wp-customize-background-image-control.php:30 msgid "Background Image" msgstr "Hintergrundbild" +#: wp-includes/class-wp-customize-manager.php:3927 +msgid "Background Color" +msgstr "Hintergrundfarbe" + #: wp-includes/customize/class-wp-customize-image-control.php:36 msgid "Change Image" msgstr "Bild wechseln" @@ -7118,13 +7118,17 @@ msgstr "Kein Bild verwenden" msgid "Sorry, you are not allowed to edit this comment." msgstr "Du bist leider nicht berechtigt, diesen Kommentar zu bearbeiten." +#: wp-includes/class-wp-customize-manager.php:4203 +msgid "Posts page" +msgstr "Beitragsseite" + #: wp-includes/class-wp-customize-manager.php:4191 msgid "Front page" msgstr "Startseite" -#: wp-includes/class-wp-customize-manager.php:4203 -msgid "Posts page" -msgstr "Beitragsseite" +#: wp-includes/script-loader.php:475 +msgid "Allowed Files" +msgstr "Erlaubte Dateien" #: wp-includes/class-wp-customize-manager.php:3871 #: wp-includes/class-wp-customize-widgets.php:786 @@ -7136,42 +7140,27 @@ msgstr "Beitragsseite" msgid "Remove" msgstr "Entfernen" -#: wp-includes/script-loader.php:475 -msgid "Allowed Files" -msgstr "Erlaubte Dateien" +#: wp-includes/class-wp-xmlrpc-server.php:2219 +#: wp-includes/class-wp-xmlrpc-server.php:2314 +msgid "Sorry, you are not allowed to assign terms in this taxonomy." +msgstr "Du bist leider nicht berechtigt, in dieser Taxonomie Begriffe zuzuordnen." -#: wp-includes/class-wp-tax-query.php:565 -#: wp-includes/class-wp-tax-query.php:572 wp-includes/class-wp-term.php:179 -#: wp-includes/class-wp-xmlrpc-server.php:1899 -#: wp-includes/class-wp-xmlrpc-server.php:1987 -#: wp-includes/class-wp-xmlrpc-server.php:2084 -#: wp-includes/class-wp-xmlrpc-server.php:2155 -#: wp-includes/class-wp-xmlrpc-server.php:2214 -#: wp-includes/class-wp-xmlrpc-server.php:2309 -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:169 -#: wp-includes/taxonomy.php:419 wp-includes/taxonomy.php:639 -#: wp-includes/taxonomy.php:730 wp-includes/taxonomy.php:910 -#: wp-includes/taxonomy.php:1074 wp-includes/taxonomy.php:1835 -#: wp-includes/taxonomy.php:1952 wp-includes/taxonomy.php:2215 -#: wp-includes/taxonomy.php:2358 wp-includes/taxonomy.php:2559 -msgid "Invalid taxonomy." -msgstr "Ungültige Taxonomie." +#: wp-includes/class-wp-xmlrpc-server.php:2105 +msgid "Sorry, deleting the term failed." +msgstr "Das Löschen des Begriffs ist leider fehlgeschlagen." -#: wp-includes/class-wp-xmlrpc-server.php:1918 -msgid "This taxonomy is not hierarchical." -msgstr "Diese Taxonomie ist nicht hierarchisch." +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:90 +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:150 +msgid "Sorry, you are not allowed to manage terms in this taxonomy." +msgstr "Du bist leider nicht berechtigt, Begriffe in dieser Taxonomie zu verwalten." #: wp-includes/class-wp-xmlrpc-server.php:2043 msgid "Sorry, editing the term failed." msgstr "Die Bearbeitung des Begriffs ist leider fehlgeschlagen." -#: wp-includes/class-wp-xmlrpc-server.php:2105 -msgid "Sorry, deleting the term failed." -msgstr "Das Löschen des Begriffs ist leider fehlgeschlagen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:150 -msgid "Sorry, you are not allowed to edit terms in this taxonomy." -msgstr "Du bist leider nicht berechtigt, Begriffe in dieser Taxonomie zu bearbeiten." +#: wp-includes/class-wp-xmlrpc-server.php:2017 +msgid "This taxonomy is not hierarchical so you can't set a parent." +msgstr "Diese Taxonomie ist nicht hierarchisch, daher kannst du keinen übergeordneten Eltern-Begriff erstellen." #: wp-includes/class-wp-xmlrpc-server.php:1455 #: wp-includes/class-wp-xmlrpc-server.php:2002 @@ -7180,19 +7169,9 @@ msgstr "Du bist leider nicht berechtigt, Begriffe in dieser Taxonomie zu bearbei msgid "Invalid term ID." msgstr "Ungültige Begriffs-ID." -#: wp-includes/class-wp-xmlrpc-server.php:1914 -#: wp-includes/class-wp-xmlrpc-server.php:2012 -msgid "The term name cannot be empty." -msgstr "Der Name des Begriffs darf nicht leer sein." - -#: wp-includes/class-wp-xmlrpc-server.php:2219 -#: wp-includes/class-wp-xmlrpc-server.php:2314 -msgid "Sorry, you are not allowed to assign terms in this taxonomy." -msgstr "Du bist leider nicht berechtigt, in dieser Taxonomie Begriffe zuzuordnen." - -#: wp-includes/class-wp-xmlrpc-server.php:1904 -msgid "Sorry, you are not allowed to create terms in this taxonomy." -msgstr "Du bist leider nicht berechtigt, in dieser Taxonomie Begriffe zu erstellen." +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:150 +msgid "Sorry, you are not allowed to edit terms in this taxonomy." +msgstr "Du bist leider nicht berechtigt, Begriffe in dieser Taxonomie zu bearbeiten." #: wp-includes/class-wp-xmlrpc-server.php:1927 #: wp-includes/class-wp-xmlrpc-server.php:2026 @@ -7202,70 +7181,80 @@ msgstr "Du bist leider nicht berechtigt, in dieser Taxonomie Begriffe zu erstell msgid "Parent term does not exist." msgstr "Übergeordneter Begriff existiert nicht." -#: wp-includes/class-wp-xmlrpc-server.php:2017 -msgid "This taxonomy is not hierarchical so you can't set a parent." -msgstr "Diese Taxonomie ist nicht hierarchisch, daher kannst du keinen übergeordneten Eltern-Begriff erstellen." +#: wp-includes/class-wp-xmlrpc-server.php:1918 +msgid "This taxonomy is not hierarchical." +msgstr "Diese Taxonomie ist nicht hierarchisch." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:90 -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:150 -msgid "Sorry, you are not allowed to manage terms in this taxonomy." -msgstr "Du bist leider nicht berechtigt, Begriffe in dieser Taxonomie zu verwalten." +#: wp-includes/class-wp-xmlrpc-server.php:1904 +msgid "Sorry, you are not allowed to create terms in this taxonomy." +msgstr "Du bist leider nicht berechtigt, in dieser Taxonomie Begriffe zu erstellen." + +#: wp-includes/class-wp-tax-query.php:565 +#: wp-includes/class-wp-tax-query.php:572 wp-includes/class-wp-term.php:179 +#: wp-includes/class-wp-xmlrpc-server.php:1899 +#: wp-includes/class-wp-xmlrpc-server.php:1987 +#: wp-includes/class-wp-xmlrpc-server.php:2084 +#: wp-includes/class-wp-xmlrpc-server.php:2155 +#: wp-includes/class-wp-xmlrpc-server.php:2214 +#: wp-includes/class-wp-xmlrpc-server.php:2309 +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:169 +#: wp-includes/taxonomy.php:419 wp-includes/taxonomy.php:639 +#: wp-includes/taxonomy.php:730 wp-includes/taxonomy.php:910 +#: wp-includes/taxonomy.php:1074 wp-includes/taxonomy.php:1835 +#: wp-includes/taxonomy.php:1952 wp-includes/taxonomy.php:2215 +#: wp-includes/taxonomy.php:2358 wp-includes/taxonomy.php:2559 +msgid "Invalid taxonomy." +msgstr "Ungültige Taxonomie." + +#: wp-includes/class-wp-xmlrpc-server.php:1914 +#: wp-includes/class-wp-xmlrpc-server.php:2012 +msgid "The term name cannot be empty." +msgstr "Der Name des Begriffs darf nicht leer sein." #: wp-includes/widgets/class-wp-widget-links.php:131 msgid "Select Link Category:" msgstr "Linkkategorie auswählen:" -#: wp-includes/class-wp-xmlrpc-server.php:462 -msgid "Template" -msgstr "Template" - #: wp-includes/class-wp-xmlrpc-server.php:467 msgid "Stylesheet" msgstr "Stylesheet" +#: wp-includes/class-wp-xmlrpc-server.php:462 +msgid "Template" +msgstr "Template" + #: wp-includes/widgets/class-wp-widget-links.php:161 msgid "Number of links to show:" msgstr "Anzahl der zu zeigenden Links: " -#: wp-includes/widgets/class-wp-widget-links.php:144 -msgid "Link title" -msgstr "Link-Titel" - -#: wp-includes/widgets/class-wp-widget-links.php:145 -msgid "Link rating" -msgstr "Link-Wertung" - #: wp-includes/widgets/class-wp-widget-links.php:146 msgid "Link ID" msgstr "Link-ID" -#: wp-includes/class-wp-theme.php:252 -msgid "ERROR: The themes directory is either empty or doesn’t exist. Please check your installation." -msgstr "FEHLER: Das Themeverzeichnis ist entweder leer oder existiert nicht. Bitte überprüfe deine Installation." +#: wp-includes/widgets/class-wp-widget-links.php:145 +msgid "Link rating" +msgstr "Link-Wertung" -#: wp-includes/class-wp-theme.php:256 -msgid "Stylesheet is not readable." -msgstr "Das Stylesheet ist nicht lesbar." +#: wp-includes/widgets/class-wp-widget-links.php:144 +msgid "Link title" +msgstr "Link-Titel" #: wp-includes/class-wp-theme.php:312 wp-includes/class-wp-theme.php:316 msgid "The \"%s\" theme is not a valid parent theme." msgstr "Das „%s“ Theme ist kein gültiges Eltern-Theme." -#: wp-includes/class-wp-customize-manager.php:4165 -msgid "Your theme supports a static front page." -msgstr "Dein Theme unterstützt eine statische Startseite." - -#: wp-includes/class-wp-customize-manager.php:4176 -msgid "Front page displays" -msgstr "Startseite zeigt" +#: wp-includes/class-wp-theme.php:256 +msgid "Stylesheet is not readable." +msgstr "Das Stylesheet ist nicht lesbar." -#: wp-includes/class-wp-customize-manager.php:3815 -msgid "Tagline" -msgstr "Untertitel" +#: wp-includes/class-wp-theme.php:252 +msgid "ERROR: The themes directory is either empty or doesn’t exist. Please check your installation." +msgstr "FEHLER: Das Themeverzeichnis ist entweder leer oder existiert nicht. Bitte überprüfe deine Installation." -#: wp-includes/class-wp-customize-manager.php:4163 -msgid "Static Front Page" -msgstr "Statische Startseite" +#. translators: %s: document title from the preview +#: wp-includes/class-wp-customize-manager.php:3369 +msgid "Customize: %s" +msgstr "Customizer: %s" #: wp-includes/class-wp-customize-control.php:578 #: wp-includes/class-wp-customize-nav-menus.php:595 @@ -7273,31 +7262,42 @@ msgstr "Statische Startseite" msgid "— Select —" msgstr "— Auswählen —" -#: wp-includes/class-wp-customize-manager.php:4180 -msgid "Your latest posts" -msgstr "Deine letzten Beiträge" +#: wp-includes/class-wp-customize-manager.php:3815 +msgid "Tagline" +msgstr "Untertitel" -#. translators: %s: document title from the preview -#: wp-includes/class-wp-customize-manager.php:3369 -msgid "Customize: %s" -msgstr "Customizer: %s" +#: wp-includes/class-wp-customize-manager.php:4176 +msgid "Front page displays" +msgstr "Startseite zeigt" + +#: wp-includes/class-wp-customize-manager.php:4180 +msgid "Your latest posts" +msgstr "Deine letzten Beiträge" + +#: wp-includes/class-wp-customize-manager.php:4165 +msgid "Your theme supports a static front page." +msgstr "Dein Theme unterstützt eine statische Startseite." + +#: wp-includes/class-wp-customize-manager.php:4163 +msgid "Static Front Page" +msgstr "Statische Startseite" #: wp-includes/class-wp-xmlrpc-server.php:1341 #: wp-includes/class-wp-xmlrpc-server.php:5242 msgid "The post type may not be changed." msgstr "Dieser Inhaltstyp kann nicht geändert werden." -#: wp-includes/class-wp-xmlrpc-server.php:452 -msgid "Image default size" -msgstr "Standard-Bildgröße" +#: wp-includes/class-wp-xmlrpc-server.php:457 +msgid "Image default align" +msgstr "Standard-Bildausrichtung" #: wp-includes/class-wp-xmlrpc-server.php:447 msgid "Image default link type" msgstr "Standard-Bildlink" -#: wp-includes/class-wp-xmlrpc-server.php:457 -msgid "Image default align" -msgstr "Standard-Bildausrichtung" +#: wp-includes/class-wp-xmlrpc-server.php:452 +msgid "Image default size" +msgstr "Standard-Bildgröße" #: wp-includes/class-wp-xmlrpc-server.php:1339 #: wp-includes/class-wp-xmlrpc-server.php:1760 @@ -7314,15 +7314,41 @@ msgstr "Standard-Bildausrichtung" msgid "Sorry, you are not allowed to edit this post." msgstr "Du bist leider nicht berechtigt, diesen Beitrag zu bearbeiten." +#: wp-includes/admin-bar.php:345 +msgid "Edit Site" +msgstr "Website bearbeiten" + #: wp-includes/post.php:3881 wp-includes/script-loader.php:545 #: wp-includes/script-loader.php:621 msgctxt "tag delimiter" msgid "," msgstr "," -#: wp-includes/admin-bar.php:345 -msgid "Edit Site" -msgstr "Website bearbeiten" +#: wp-includes/class-wp-xmlrpc-server.php:1444 +#: wp-includes/class-wp-xmlrpc-server.php:1468 +msgid "Sorry, one of the given taxonomies is not supported by the post type." +msgstr "Leider wird eine der vorgegebenen Taxonomien nicht von diesem Inhaltstyp unterstützt." + +#: wp-includes/class-wp-xmlrpc-server.php:1447 +#: wp-includes/class-wp-xmlrpc-server.php:1471 +msgid "Sorry, you are not allowed to assign a term to one of the given taxonomies." +msgstr "Du bist leider nicht berechtigt, einen Begriff einer der vorgegebenen Taxonomien zuzuordnen." + +#: wp-includes/class-wp-xmlrpc-server.php:1353 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1123 +msgid "Sorry, you are not allowed to create private posts in this post type." +msgstr "Du bist leider nicht berechtigt, private Beiträge in diesem Inhaltstyp zu erstellen." + +#: wp-includes/class-wp-xmlrpc-server.php:1372 +#: wp-includes/class-wp-xmlrpc-server.php:4953 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:501 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:509 +msgid "Sorry, you are not allowed to create posts as this user." +msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, Beiträge zu erstellen." + +#: wp-includes/class-wp-xmlrpc-server.php:1367 +msgid "Sorry, you are not allowed to create password protected posts in this post type." +msgstr "Du bist leider nicht berechtigt, passwortgeschützte Beiträge in diesem Inhaltstyp zu erstellen." #: wp-includes/class-wp-xmlrpc-server.php:1669 #: wp-includes/class-wp-xmlrpc-server.php:4806 @@ -7331,74 +7357,54 @@ msgstr "Website bearbeiten" msgid "The post cannot be deleted." msgstr "Der Beitrag kann nicht gelöscht werden." -#: wp-includes/class-wp-xmlrpc-server.php:1444 -#: wp-includes/class-wp-xmlrpc-server.php:1468 -msgid "Sorry, one of the given taxonomies is not supported by the post type." -msgstr "Leider wird eine der vorgegebenen Taxonomien nicht von diesem Inhaltstyp unterstützt." +#: wp-includes/class-wp-xmlrpc-server.php:1500 +msgid "Sorry, you are not allowed to add a term to one of the given taxonomies." +msgstr "Du bist leider nicht berechtigt, einen Begriff zu einer der vorgegebenen Taxonomien hinzuzufügen." #: wp-includes/class-wp-xmlrpc-server.php:1493 msgid "Ambiguous term name used in a hierarchical taxonomy. Please use term ID instead." msgstr "Der Begriff ist in der hierarchischen Taxonomie mehrdeutig. Bitte stattdessen die Term-ID nutzen." -#: wp-includes/class-wp-xmlrpc-server.php:1821 -#: wp-includes/class-wp-xmlrpc-server.php:4143 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:87 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:85 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:136 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:139 -msgid "Sorry, you are not allowed to edit posts in this post type." -msgstr "Du bist leider nicht berechtigt, Beiträge dieses Inhaltstyps zu bearbeiten." - -#: wp-includes/class-wp-xmlrpc-server.php:1500 -msgid "Sorry, you are not allowed to add a term to one of the given taxonomies." -msgstr "Du bist leider nicht berechtigt, einen Begriff zu einer der vorgegebenen Taxonomien hinzuzufügen." - #: wp-includes/class-wp-xmlrpc-server.php:3160 msgid "Sorry, you are not allowed to delete a category." msgstr "Du bist leider nicht berechtigt, eine Kategorie zu löschen." -#: wp-includes/class-wp-xmlrpc-server.php:1367 -msgid "Sorry, you are not allowed to create password protected posts in this post type." -msgstr "Du bist leider nicht berechtigt, passwortgeschützte Beiträge in diesem Inhaltstyp zu erstellen." - -#: wp-includes/class-wp-xmlrpc-server.php:1372 -#: wp-includes/class-wp-xmlrpc-server.php:4953 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:501 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:509 -msgid "Sorry, you are not allowed to create posts as this user." -msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, Beiträge zu erstellen." - -#: wp-includes/class-wp-xmlrpc-server.php:1447 -#: wp-includes/class-wp-xmlrpc-server.php:1471 -msgid "Sorry, you are not allowed to assign a term to one of the given taxonomies." -msgstr "Du bist leider nicht berechtigt, einen Begriff einer der vorgegebenen Taxonomien zuzuordnen." - -#: wp-includes/class-wp-xmlrpc-server.php:1353 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1123 -msgid "Sorry, you are not allowed to create private posts in this post type." -msgstr "Du bist leider nicht berechtigt, private Beiträge in diesem Inhaltstyp zu erstellen." - #: wp-includes/class-wp-xmlrpc-server.php:1377 #: wp-includes/class-wp-xmlrpc-server.php:4964 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1034 msgid "Invalid author ID." msgstr "Ungültige Autor-ID." -#: wp-includes/general-template.php:1020 wp-includes/general-template.php:1489 -msgctxt "yearly archives date format" -msgid "Y" -msgstr "Y" +#: wp-includes/class-wp-xmlrpc-server.php:1821 +#: wp-includes/class-wp-xmlrpc-server.php:4143 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:87 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:85 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:136 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:139 +msgid "Sorry, you are not allowed to edit posts in this post type." +msgstr "Du bist leider nicht berechtigt, Beiträge dieses Inhaltstyps zu bearbeiten." #: wp-includes/general-template.php:1023 wp-includes/general-template.php:1492 msgctxt "monthly archives date format" msgid "F Y" msgstr "F Y" -#. translators: apostrophe, for example in 'cause or can't -#: wp-includes/formatting.php:93 -msgctxt "apostrophe" +#: wp-includes/general-template.php:1020 wp-includes/general-template.php:1489 +msgctxt "yearly archives date format" +msgid "Y" +msgstr "Y" + +#. translators: closing curly single quote +#: wp-includes/formatting.php:103 +msgctxt "closing curly single quote" msgid "’" -msgstr "’" +msgstr "‘" + +#. translators: opening curly single quote +#: wp-includes/formatting.php:101 +msgctxt "opening curly single quote" +msgid "‘" +msgstr "‚" #. translators: double prime, for example in 9" (nine inches) #: wp-includes/formatting.php:98 @@ -7412,17 +7418,17 @@ msgctxt "prime" msgid "′" msgstr "′" -#. translators: closing curly single quote -#: wp-includes/formatting.php:103 -msgctxt "closing curly single quote" +#. translators: apostrophe, for example in 'cause or can't +#: wp-includes/formatting.php:93 +msgctxt "apostrophe" msgid "’" -msgstr "‘" +msgstr "’" -#. translators: opening curly single quote -#: wp-includes/formatting.php:101 -msgctxt "opening curly single quote" -msgid "‘" -msgstr "‚" +#. translators: closing curly double quote +#: wp-includes/formatting.php:90 +msgctxt "closing curly double quote" +msgid "”" +msgstr "“" #. translators: opening curly double quote #: wp-includes/formatting.php:88 wp-includes/formatting.php:4792 @@ -7430,12 +7436,6 @@ msgctxt "opening curly double quote" msgid "“" msgstr "„" -#. translators: closing curly double quote -#: wp-includes/formatting.php:90 -msgctxt "closing curly double quote" -msgid "”" -msgstr "“" - #: wp-signup.php:174 msgid "Allow search engines to index this site." msgstr "Suchmaschinen dürfen diese Website indexieren." @@ -7453,21 +7453,21 @@ msgstr "Du kannst die Datei %s durch das Webinterface erstellen, aber das funkti msgid "https://codex.wordpress.org/CSS" msgstr "https://codex.wordpress.org/CSS" -#. translators: 1: site URL, 2: site domain, 3: username, 4: user email, 5: -#. lost password URL -#: wp-activate.php:112 -msgid "Your site at <a href=\"%1$s\">%2$s</a> is active. You may now log in to your site using your chosen username of “%3$s”. Please check your email inbox at %4$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href=\"%5$s\">reset your password</a>." -msgstr "Deine Website <a href=\"%1$s\">%2$s</a> ist aktiviert. Du kannst dich nun mit dem gewählten Benutzernamen „%3$s“ anmelden. Bitte überprüfe deinen E-Mail-Posteingang %4$s für dein Passwort und die Anmelde-Instruktionen. Falls du keine E-Mail erhalten hast, überprüfe bitte auch deinen Spam-Ordner. Solltest du nicht innerhalb von einer Stunde eine E-Mail erhalten haben, kannst du dein <a href=\"%5$s\">Passwort zurücksetzen</a> lassen." +#. translators: 1: login URL, 2: username, 3: user email, 4: lost password URL +#: wp-activate.php:103 +msgid "Your account has been activated. You may now <a href=\"%1$s\">log in</a> to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href=\"%4$s\">reset your password</a>." +msgstr "Dein Benutzerkonto wurde aktiviert. Du kannst dich nun mit dem gewählten Benutzernamen „%2$s“ <a href=\"%1$s\">anmelden</a>. Bitte überprüfe deinen E-Mail-Posteingang %3$s für dein Passwort und die Anmelde-Instruktionen. Falls du keine E-Mail erhalten hast, überprüfe bitte auch deinen Spam-Ordner. Solltest du nicht innerhalb von einer Stunde eine E-Mail erhalten haben, kannst du dein <a href=\"%4$s\">Passwort zurücksetzen</a>." #. translators: 1: home URL, 2: site address, 3: login URL, 4: username #: wp-signup.php:474 msgid "<a href=\"%1$s\">%2$s</a> is your new site. <a href=\"%3$s\">Log in</a> as “%4$s” using your existing password." msgstr "<a href=\"%1$s\">%2$s</a> ist deine neue Website. <a href=\"%3$s\">Melde dich an</a> als „%4$s“ und verwende dein bestehendes Passwort." -#. translators: 1: login URL, 2: username, 3: user email, 4: lost password URL -#: wp-activate.php:103 -msgid "Your account has been activated. You may now <a href=\"%1$s\">log in</a> to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href=\"%4$s\">reset your password</a>." -msgstr "Dein Benutzerkonto wurde aktiviert. Du kannst dich nun mit dem gewählten Benutzernamen „%2$s“ <a href=\"%1$s\">anmelden</a>. Bitte überprüfe deinen E-Mail-Posteingang %3$s für dein Passwort und die Anmelde-Instruktionen. Falls du keine E-Mail erhalten hast, überprüfe bitte auch deinen Spam-Ordner. Solltest du nicht innerhalb von einer Stunde eine E-Mail erhalten haben, kannst du dein <a href=\"%4$s\">Passwort zurücksetzen</a>." +#. translators: 1: site URL, 2: site domain, 3: username, 4: user email, 5: +#. lost password URL +#: wp-activate.php:112 +msgid "Your site at <a href=\"%1$s\">%2$s</a> is active. You may now log in to your site using your chosen username of “%3$s”. Please check your email inbox at %4$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href=\"%5$s\">reset your password</a>." +msgstr "Deine Website <a href=\"%1$s\">%2$s</a> ist aktiviert. Du kannst dich nun mit dem gewählten Benutzernamen „%3$s“ anmelden. Bitte überprüfe deinen E-Mail-Posteingang %4$s für dein Passwort und die Anmelde-Instruktionen. Falls du keine E-Mail erhalten hast, überprüfe bitte auch deinen Spam-Ordner. Solltest du nicht innerhalb von einer Stunde eine E-Mail erhalten haben, kannst du dein <a href=\"%5$s\">Passwort zurücksetzen</a> lassen." #. translators: %s: database repair URL #: wp-includes/functions.php:1408 @@ -7540,14 +7540,14 @@ msgstr "Feedback" msgid "<strong>ERROR</strong>: please fill the required fields (name, email)." msgstr "<strong>FEHLER</strong>: Bitte fülle die erforderlichen Felder aus (Name, E-Mail-Adresse).\t" -#: wp-includes/comment.php:3076 -msgid "<strong>ERROR</strong>: please type a comment." -msgstr "<strong>FEHLER</strong>: Bitte gib einen Kommentar ein." - #: wp-includes/comment.php:3071 msgid "<strong>ERROR</strong>: please enter a valid email address." msgstr "<strong>FEHLER</strong>: Bitte gib eine gültige E-Mail-Adresse ein." +#: wp-includes/comment.php:3076 +msgid "<strong>ERROR</strong>: please type a comment." +msgstr "<strong>FEHLER</strong>: Bitte gib einen Kommentar ein." + #: wp-includes/script-loader.php:747 msgid "Could not load the preview image. Please reload the page and try again." msgstr "Konnte das Vorschaubild nicht laden. Bitte lade die Seite neu und versuche es erneut. " @@ -7560,27 +7560,27 @@ msgstr "<strong>FEHLER</strong>: Problem beim Erstellen der Seiten." msgid "<strong>ERROR</strong>: Site URL already taken." msgstr "<strong>FEHLER</strong>: Website-Adresse ist schon vergeben." -#: wp-includes/admin-bar.php:155 -msgid "Documentation" -msgstr "Dokumentation" - #: wp-includes/admin-bar.php:163 msgid "Support Forums" msgstr "Support-Foren" +#: wp-includes/admin-bar.php:155 +msgid "Documentation" +msgstr "Dokumentation" + #: wp-includes/formatting.php:3345 wp-includes/general-template.php:3378 msgid "…" msgstr "…" -#: wp-includes/functions.php:3766 -msgid "Database Error" -msgstr "Datenbankfehler" - #: wp-includes/functions.php:3770 wp-includes/ms-load.php:462 #: wp-includes/wp-db.php:1583 msgid "Error establishing a database connection" msgstr "Fehler beim Aufbau einer Datenbankverbindung" +#: wp-includes/functions.php:3766 +msgid "Database Error" +msgstr "Datenbankfehler" + #. translators: %s: number of comments #: wp-includes/comment-template.php:893 wp-includes/comment-template.php:907 msgid "%s Comment" @@ -7621,14 +7621,14 @@ msgstr "Du wurdest zu dieser Website hinzugefügt. Du kannst nun die <a href=\"% msgid "Memory exceeded. Please try another smaller file." msgstr "Speicherkapazität überschritten. Bitte versuche es mit einer kleineren Datei." -#: wp-includes/script-loader.php:286 -msgid "This is larger than the maximum size. Please try another." -msgstr "Die Datei ist größer als die Maximalgröße. Bitte verwende eine kleinere Datei." - #: wp-includes/script-loader.php:284 msgid "This file is not an image. Please try another." msgstr "Diese Datei ist keine Bilddatei. Bitte probiere eine andere Datei." +#: wp-includes/script-loader.php:286 +msgid "This is larger than the maximum size. Please try another." +msgstr "Die Datei ist größer als die Maximalgröße. Bitte verwende eine kleinere Datei." + #: wp-includes/general-template.php:3476 msgctxt "admin color scheme" msgid "Blue" @@ -7648,36 +7648,32 @@ msgctxt "add new from admin bar" msgid "Media" msgstr "Medien" -#: wp-includes/taxonomy.php:503 -msgid "View Tag" -msgstr "Schlagwort ansehen" - #: wp-includes/taxonomy.php:503 msgid "View Category" msgstr "Kategorie ansehen" +#: wp-includes/taxonomy.php:503 +msgid "View Tag" +msgstr "Schlagwort ansehen" + #: wp-includes/pluggable.php:1074 wp-includes/pluggable.php:1117 msgid "You should specify a nonce action to be verified by using the first parameter." msgstr "Um verifiziert zu werden, gib bitte eine Nonce-Aktion als ersten Parameter an." -#. translators: 1: login URL, 2: network home URL -#: wp-activate.php:150 -msgid "Your account is now activated. <a href=\"%1$s\">Log in</a> or go back to the <a href=\"%2$s\">homepage</a>." -msgstr "Dein Benutzerkonto ist jetzt aktiviert. <a href=\"%1$s\">Melde dich an</a> oder gehe zurück <a href=\"%2$s\">zur Startseite</a>." - #. translators: 1: site URL, 2: login URL #: wp-activate.php:145 msgid "Your account is now activated. <a href=\"%1$s\">View your site</a> or <a href=\"%2$s\">Log in</a>" msgstr "Dein Benutzerkonto ist jetzt aktiviert. <a href=\"%1$s\">Besuche deine Website</a> oder <a href=\"%2$s\">melde dich an</a>." +#. translators: 1: login URL, 2: network home URL +#: wp-activate.php:150 +msgid "Your account is now activated. <a href=\"%1$s\">Log in</a> or go back to the <a href=\"%2$s\">homepage</a>." +msgstr "Dein Benutzerkonto ist jetzt aktiviert. <a href=\"%1$s\">Melde dich an</a> oder gehe zurück <a href=\"%2$s\">zur Startseite</a>." + #: wp-includes/post.php:1382 msgid "All Pages" msgstr "Alle Seiten" -#: wp-includes/script-loader.php:525 -msgid "Approve and Reply" -msgstr "Genehmigen und Antworten" - #: wp-includes/post.php:1382 msgid "All Posts" msgstr "Alle Beiträge" @@ -7686,6 +7682,14 @@ msgstr "Alle Beiträge" msgid "Link" msgstr "Link" +#: wp-includes/script-loader.php:525 +msgid "Approve and Reply" +msgstr "Genehmigen und Antworten" + +#: wp-includes/link-template.php:2414 +msgid "Post navigation" +msgstr "Beitrags-Navigation" + #: wp-includes/class-walker-comment.php:244 msgid "Pingback:" msgstr "Pingback:" @@ -7694,24 +7698,20 @@ msgstr "Pingback:" msgid "Comments navigation" msgstr "Kommentar-Navigation" -#: wp-includes/link-template.php:2414 -msgid "Post navigation" -msgstr "Beitrags-Navigation" - #: wp-includes/class-wp-admin-bar.php:420 msgid "Toolbar" msgstr "Werkzeugleiste" -#: wp-includes/class-wp-editor.php:1100 -msgid "Poster" -msgstr "Standbild" - #: wp-includes/media-template.php:1082 wp-includes/media-template.php:1171 #: wp-includes/widgets/class-wp-widget-media-audio.php:67 #: wp-includes/widgets/class-wp-widget-media-video.php:68 msgid "Preload" msgstr "Vorladen" +#: wp-includes/class-wp-editor.php:1100 +msgid "Poster" +msgstr "Standbild" + #: wp-includes/class-http.php:281 msgid "Destination directory for file streaming does not exist or is not writable." msgstr "Das Zielverzeichnis für das Datei-Streaming existiert nicht oder ist nicht beschreibbar." @@ -7804,45 +7804,49 @@ msgstr "Nur eine Methode oder Funktion einer statischen Klasse kann in einem <em msgid "Passing an integer number of posts is deprecated. Pass an array of arguments instead." msgstr "Eine Anzahl von Beiträgen als Integer-Zahl an die Abfrage zu übergeben, ist veraltet. Nutze stattdessen ein Array mit Parametern." -#: wp-includes/post-formats.php:91 +#: wp-includes/post-formats.php:98 msgctxt "Post format" -msgid "Aside" -msgstr "Kurzmitteilung" - -#: wp-includes/post-formats.php:92 -msgctxt "Post format" -msgid "Chat" -msgstr "Chatprotokoll" +msgid "Video" +msgstr "Video" -#: wp-includes/post-formats.php:93 +#: wp-includes/post-formats.php:97 msgctxt "Post format" -msgid "Gallery" -msgstr "Galerie" +msgid "Status" +msgstr "Statusmitteilung" -#: wp-includes/post-formats.php:94 +#: wp-includes/post-formats.php:96 msgctxt "Post format" -msgid "Link" -msgstr "Link" +msgid "Quote" +msgstr "Zitat" #: wp-includes/post-formats.php:95 msgctxt "Post format" msgid "Image" msgstr "Bild" -#: wp-includes/post-formats.php:96 +#: wp-includes/post-formats.php:94 msgctxt "Post format" -msgid "Quote" -msgstr "Zitat" +msgid "Link" +msgstr "Link" -#: wp-includes/post-formats.php:97 +#: wp-includes/post-formats.php:93 msgctxt "Post format" -msgid "Status" -msgstr "Statusmitteilung" +msgid "Gallery" +msgstr "Galerie" -#: wp-includes/post-formats.php:98 +#: wp-includes/post-formats.php:92 msgctxt "Post format" -msgid "Video" -msgstr "Video" +msgid "Chat" +msgstr "Chatprotokoll" + +#: wp-includes/post-formats.php:91 +msgctxt "Post format" +msgid "Aside" +msgstr "Kurzmitteilung" + +#: wp-includes/post.php:1380 +msgid "No posts found in Trash." +msgstr "Keine Beiträge im Papierkorb gefunden." #: wp-includes/post.php:1379 msgid "No pages found." @@ -7852,10 +7856,6 @@ msgstr "Keine Seiten gefunden." msgid "No pages found in Trash." msgstr "Keine Seiten im Papierkorb gefunden." -#: wp-includes/post.php:1380 -msgid "No posts found in Trash." -msgstr "Keine Beiträge im Papierkorb gefunden." - #: wp-includes/script-loader.php:708 msgid "Network Enable" msgstr "Netzwerkweit freischalten" @@ -7896,70 +7896,70 @@ msgstr "Höhe Vorschaubild" msgid "Crop thumbnail to exact dimensions" msgstr "Vorschaubild auf exakte Größe beschneiden" -#: wp-includes/class-wp-xmlrpc-server.php:524 -msgid "Medium size image width" -msgstr "Breite für mittlere Bildgröße" +#: wp-includes/class-wp-xmlrpc-server.php:544 +msgid "Large size image width" +msgstr "Breite für große Bilder" #: wp-includes/class-wp-xmlrpc-server.php:529 msgid "Medium size image height" msgstr "Höhe für mittlere Bildgröße" +#: wp-includes/class-wp-xmlrpc-server.php:524 +msgid "Medium size image width" +msgstr "Breite für mittlere Bildgröße" + #: wp-includes/class-wp-xmlrpc-server.php:549 msgid "Large size image height" msgstr "Höhe für große Bilder" -#: wp-includes/class-wp-xmlrpc-server.php:544 -msgid "Large size image width" -msgstr "Breite für große Bilder" - -#: wp-login.php:327 -msgid "Someone has requested a password reset for the following account:" -msgstr "Jemand hat das Zurücksetzen des Passworts für folgendes Benutzerkonto angefordert:" +#: wp-login.php:624 +msgid "Enter your new password below." +msgstr "Gib bitte hier dein neues Passwort ein." #: wp-login.php:330 msgid "If this was a mistake, just ignore this email and nothing will happen." msgstr "Falls dies nicht beabsichtigt war, ignoriere einfach diese E-Mail. Es wird dann nichts passieren." -#: wp-login.php:331 -msgid "To reset your password, visit the following address:" -msgstr "Um dein Passwort zurückzusetzen, besuche folgende Adresse:" +#: wp-login.php:327 +msgid "Someone has requested a password reset for the following account:" +msgstr "Jemand hat das Zurücksetzen des Passworts für folgendes Benutzerkonto angefordert:" -#: wp-login.php:601 -msgid "The passwords do not match." -msgstr "Die Passwörter stimmen nicht überein." +#: wp-login.php:616 +msgid "Your password has been reset." +msgstr "Dein Passwort wurde zurückgesetzt." #: wp-login.php:616 msgid "Password Reset" msgstr "Passwort zurücksetzen" -#: wp-login.php:616 -msgid "Your password has been reset." -msgstr "Dein Passwort wurde zurückgesetzt." +#: wp-login.php:601 +msgid "The passwords do not match." +msgstr "Die Passwörter stimmen nicht überein." #: wp-login.php:624 wp-login.php:662 msgid "Reset Password" msgstr "Passwort zurücksetzen" -#: wp-login.php:624 -msgid "Enter your new password below." -msgstr "Gib bitte hier dein neues Passwort ein." - -#: wp-login.php:632 -msgid "New password" -msgstr "Neues Passwort" +#: wp-login.php:331 +msgid "To reset your password, visit the following address:" +msgstr "Um dein Passwort zurückzusetzen, besuche folgende Adresse:" #: wp-login.php:644 msgid "Confirm new password" msgstr "Neues Passwort bestätigen" -#: wp-includes/admin-bar.php:278 -msgid "Edit My Profile" -msgstr "Profil bearbeiten" +#: wp-login.php:632 +msgid "New password" +msgstr "Neues Passwort" #: wp-includes/admin-bar.php:550 msgid "Manage Comments" msgstr "Kommentare verwalten" +#: wp-includes/admin-bar.php:278 +msgid "Edit My Profile" +msgstr "Profil bearbeiten" + #: wp-includes/post-formats.php:68 msgid "Invalid post." msgstr "Ungültiger Beitrag." @@ -7989,14 +7989,14 @@ msgstr "Alle Linkkategorien" msgid "Update Link Category" msgstr "Linkkategorie überarbeiten" -#: wp-includes/taxonomy.php:119 -msgid "New Link Category Name" -msgstr "Name der neuen Linkkategorie" - #: wp-includes/taxonomy.php:118 msgid "Add New Link Category" msgstr "Neue Linkkategorie erstellen" +#: wp-includes/taxonomy.php:119 +msgid "New Link Category Name" +msgstr "Name der neuen Linkkategorie" + #: wp-includes/admin-bar.php:444 msgid "Network Admin" msgstr "Netzwerkverwaltung" @@ -8011,19 +8011,6 @@ msgstr "Dein Server läuft mit der PHP-Version %1$s, aber WordPress %2$s benöti msgid "Custom Menu" msgstr "Individuelles Menü" -#. translators: 1: blog name, 2: WordPress -#: wp-includes/theme-compat/footer.php:26 -msgid "%1$s is proudly powered by %2$s" -msgstr "%1$s is proudly powered by %2$s" - -#: wp-includes/theme-compat/sidebar.php:48 -msgid "l, F jS, Y" -msgstr "l, d. F Y" - -#: wp-includes/theme-compat/sidebar.php:56 -msgid "F, Y" -msgstr "F Y" - #: wp-includes/theme-compat/comments.php:24 msgid "This post is password protected. Enter the password to view comments." msgstr "Dieser Beitrag ist passwortgeschützt. Um die Kommentare zu sehen, musst du das Passwort eingeben." @@ -8033,11 +8020,24 @@ msgstr "Dieser Beitrag ist passwortgeschützt. Um die Kommentare zu sehen, musst msgid "You are currently browsing the archives for the %s category." msgstr "Du befindest dich im Moment im Archiv der Kategorie %s." +#: wp-includes/theme-compat/sidebar.php:48 +msgid "l, F jS, Y" +msgstr "l, d. F Y" + #. translators: 1: site link, 2: search query #: wp-includes/theme-compat/sidebar.php:70 msgid "You have searched the %1$s blog archives for <strong>‘%2$s’</strong>. If you are unable to find anything in these search results, you can try one of these links." msgstr "Du hast das %1$s Archiv nach <strong>‘%2$s’</strong> durchsucht. Wenn du nicht das Gewünschte gefunden hast, probiere mal einen dieser Links." +#. translators: 1: blog name, 2: WordPress +#: wp-includes/theme-compat/footer.php:26 +msgid "%1$s is proudly powered by %2$s" +msgstr "%1$s is proudly powered by %2$s" + +#: wp-includes/theme-compat/sidebar.php:56 +msgid "F, Y" +msgstr "F Y" + #: wp-includes/taxonomy.php:509 msgid "Choose from the most used tags" msgstr "Wähle aus den meistgenutzten Schlagwörtern" @@ -8047,19 +8047,6 @@ msgctxt "taxonomy general name" msgid "Categories" msgstr "Kategorien" -#: wp-includes/taxonomy.php:496 -msgctxt "taxonomy singular name" -msgid "Category" -msgstr "Kategorie" - -#: wp-includes/taxonomy.php:497 -msgid "Search Tags" -msgstr "Schlagwörter suchen" - -#: wp-includes/taxonomy.php:498 -msgid "Popular Tags" -msgstr "Beliebte Schlagwörter" - #: wp-includes/taxonomy.php:499 msgid "All Tags" msgstr "Alle Schlagwörter" @@ -8080,6 +8067,10 @@ msgstr "Schlagwort aktualisieren" msgid "Add New Tag" msgstr "Neues Schlagwort erstellen" +#: wp-includes/taxonomy.php:505 +msgid "Add New Category" +msgstr "Neue Kategorie erstellen" + #: wp-includes/taxonomy.php:506 msgid "New Tag Name" msgstr "Neuer Schlagwortname" @@ -8088,9 +8079,22 @@ msgstr "Neuer Schlagwortname" msgid "New Category Name" msgstr "Neuer Kategoriename" -#: wp-includes/taxonomy.php:505 -msgid "Add New Category" -msgstr "Neue Kategorie erstellen" +#: wp-includes/taxonomy.php:498 +msgid "Popular Tags" +msgstr "Beliebte Schlagwörter" + +#: wp-includes/taxonomy.php:497 +msgid "Search Tags" +msgstr "Schlagwörter suchen" + +#: wp-includes/taxonomy.php:496 +msgctxt "taxonomy singular name" +msgid "Category" +msgstr "Kategorie" + +#: wp-signup.php:761 +msgid "Check the junk or spam folder of your email client. Sometime emails wind up there by mistake." +msgstr "Überprüfe den Junk/Spam-Ordner deines E-Mail-Postfachs, da E-Mails manchmal fälschlicherweise als Spam gekennzeichnet werden." #: wp-signup.php:760 msgid "Wait a little longer. Sometimes delivery of email can be delayed by processes outside of our control." @@ -8098,59 +8102,55 @@ msgstr "Bitte warte noch ein bisschen. Manchmal verzögert sich die Zustellung v #: wp-signup.php:887 msgid "Sorry, new registrations are not allowed at this time." -msgstr "Neue Registrierungen sind derzeit leider nicht möglich." - -#: wp-signup.php:761 -msgid "Check the junk or spam folder of your email client. Sometime emails wind up there by mistake." -msgstr "Überprüfe den Junk/Spam-Ordner deines E-Mail-Postfachs, da E-Mails manchmal fälschlicherweise als Spam gekennzeichnet werden." +msgstr "Neue Registrierungen sind derzeit leider nicht erlaubt." #: wp-signup.php:240 msgid "We send your registration email to this address. (Double-check your email address before continuing.)" msgstr "Wir verschicken deine Registrierungs-E-Mail an diese Adresse. (Überprüfe also nochmal deine E-Mail-Adresse, bevor du fortfährst.)" -#: wp-includes/post.php:1370 -msgctxt "post type general name" -msgid "Pages" -msgstr "Seiten" +#: wp-includes/post.php:1371 +msgctxt "post type singular name" +msgid "Post" +msgstr "Beitrag" #: wp-includes/post.php:1371 msgctxt "post type singular name" msgid "Page" msgstr "Seite" +#: wp-includes/post.php:1370 +msgctxt "post type general name" +msgid "Pages" +msgstr "Seiten" + #: wp-includes/post.php:1373 msgid "Add New Page" msgstr "Neue Seite erstellen" +#: wp-includes/post.php:1378 +msgid "Search Posts" +msgstr "Beiträge durchsuchen" + #: wp-includes/post.php:1374 msgid "Edit Page" msgstr "Seite bearbeiten" +#: wp-includes/post.php:1370 +msgctxt "post type general name" +msgid "Posts" +msgstr "Beiträge" + #: wp-includes/post.php:1381 msgid "Parent Page:" msgstr "Übergeordnete Seite:" -#: wp-includes/post.php:1378 -msgid "Search Pages" -msgstr "Seiten durchsuchen" - #: wp-includes/post.php:1373 msgid "Add New Post" msgstr "Neuen Beitrag erstellen" -#: wp-includes/post.php:1371 -msgctxt "post type singular name" -msgid "Post" -msgstr "Beitrag" - -#: wp-includes/post.php:1370 -msgctxt "post type general name" -msgid "Posts" -msgstr "Beiträge" - #: wp-includes/post.php:1378 -msgid "Search Posts" -msgstr "Beiträge durchsuchen" +msgid "Search Pages" +msgstr "Seiten durchsuchen" #: wp-includes/ms-default-constants.php:141 msgid "<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting." @@ -8180,17 +8180,6 @@ msgstr "Theme ohne %s" msgid "Please include a %s template in your theme." msgstr "Bitte füge ein %s-Template zu deinem Theme hinzu." -#: wp-includes/class-wp-xmlrpc-server.php:1344 -#: wp-includes/class-wp-xmlrpc-server.php:4650 -msgid "Sorry, you are not allowed to post on this site." -msgstr "Du bist leider nicht berechtigt, Beiträge auf dieser Website zu schreiben." - -#: wp-includes/class-wp-xmlrpc-server.php:4898 -#: wp-includes/class-wp-xmlrpc-server.php:4911 -#: wp-includes/class-wp-xmlrpc-server.php:4916 -msgid "Sorry, you are not allowed to publish posts on this site." -msgstr "Du bist leider nicht berechtigt, Beiträge auf dieser Website zu veröffentlichen." - #: wp-includes/class-wp-xmlrpc-server.php:4887 msgid "Sorry, you are not allowed to publish pages on this site." msgstr "Du bist leider nicht berechtigt, Seiten auf dieser Website zu veröffentlichen." @@ -8201,58 +8190,64 @@ msgstr "Du bist leider nicht berechtigt, Seiten auf dieser Website zu veröffent msgid "Sorry, you must be able to edit posts on this site in order to view categories." msgstr "Du musst das Recht haben, Beiträge bearbeiten zu können, damit du Kategorien sehen kannst." +#: wp-includes/class-wp-xmlrpc-server.php:4898 +#: wp-includes/class-wp-xmlrpc-server.php:4911 +#: wp-includes/class-wp-xmlrpc-server.php:4916 +msgid "Sorry, you are not allowed to publish posts on this site." +msgstr "Du bist leider nicht berechtigt, Beiträge auf dieser Website zu veröffentlichen." + +#: wp-includes/class-wp-xmlrpc-server.php:1344 +#: wp-includes/class-wp-xmlrpc-server.php:4650 +msgid "Sorry, you are not allowed to post on this site." +msgstr "Du bist leider nicht berechtigt, Beiträge auf dieser Website zu schreiben." + +#: wp-includes/option.php:1758 +msgid "Site URL." +msgstr "Website-URL." + +#: wp-includes/class-wp-xmlrpc-server.php:489 +msgid "Site Tagline" +msgstr "Beschreibung der Website" + #: wp-includes/class-wp-xmlrpc-server.php:3031 msgid "Sorry, you must be able to edit posts on this site in order to view tags." msgstr "Du musst das Recht haben, Beiträge bearbeiten zu können, damit du Schlagwörter sehen kannst." -#: wp-includes/ms-functions.php:866 -msgid "" -"To activate your blog, please click the following link:\n" -"\n" -"%s\n" -"\n" -"After you activate, you will receive *another email* with your login.\n" -"\n" -"After you activate, you can visit your site here:\n" -"\n" -"%s" -msgstr "" -"Um deine Website zu aktivieren, klicke bitte auf folgenden Link:\n" -"\n" -"%s\n" -"\n" -"Nach der Aktivierung wirst du eine weitere E-Mail mit deinen Zugangsdaten erhalten.\n" -"\n" -"Nach der Aktivierung kannst du deine Website unter der folgenden URL aufrufen:\n" -"%s" +#: wp-includes/pluggable.php:1789 +msgid "New user registration on your site %s:" +msgstr "Neue Benutzerregistrierung auf deiner Website %s:" -#: wp-includes/ms-functions.php:1027 -msgid "The site is already active." -msgstr "Diese Website ist bereits aktiv." +#: wp-includes/ms-functions.php:643 +msgid "That site is currently reserved but may be available in a couple days." +msgstr "Diese Website wurde bereits reserviert, ist aber eventuell in ein paar Tagen wieder verfügbar." + +#: wp-includes/ms-functions.php:632 +msgid "Sorry, that site is reserved!" +msgstr "Bedaure, diese Website wurde bereits reserviert!" #: wp-includes/ms-functions.php:596 msgid "Sorry, you may not use that site name." msgstr "Dieser Website-Name darf leider nicht verwendet werden." -#: wp-includes/ms-functions.php:643 -msgid "That site is currently reserved but may be available in a couple days." -msgstr "Diese Website wurde bereits reserviert, ist aber eventuell in ein paar Tagen wieder verfügbar." - -#: wp-includes/pluggable.php:1789 -msgid "New user registration on your site %s:" -msgstr "Neue Benutzerregistrierung auf deiner Website %s:" +#: wp-includes/ms-functions.php:600 +msgid "Sorry, site names must have letters too!" +msgstr "Bedaure, Website-Namen müssen auch Buchstaben enthalten!" #: wp-includes/ms-functions.php:1181 msgid "Could not create site." msgstr "Die Website konnte nicht angelegt werden." -#: wp-includes/class-wp-xmlrpc-server.php:489 -msgid "Site Tagline" -msgstr "Beschreibung der Website" +#: wp-includes/class-wp-xmlrpc-server.php:3672 +#: wp-includes/class-wp-xmlrpc-server.php:3753 +#: wp-includes/class-wp-xmlrpc-server.php:3785 +#: wp-includes/class-wp-xmlrpc-server.php:3817 +#: wp-includes/class-wp-xmlrpc-server.php:4055 +msgid "Sorry, you are not allowed access to details about this site." +msgstr "Du bist leider nicht berechtigt, Details dieser Website abzurufen." -#: wp-includes/ms-functions.php:1264 -msgid "New Site Registration: %s" -msgstr "Neue Registrierung einer Website: %s" +#: wp-includes/ms-functions.php:1027 +msgid "The site is already active." +msgstr "Diese Website ist bereits aktiv." #. translators: New site notification email subject. 1: Network name, 2: New #. site name @@ -8260,30 +8255,35 @@ msgstr "Neue Registrierung einer Website: %s" msgid "New %1$s Site: %2$s" msgstr "Neue %1$s Website: %2$s" +#: wp-includes/ms-functions.php:1264 +msgid "New Site Registration: %s" +msgstr "Neue Registrierung einer Website: %s" + +#: wp-includes/ms-functions.php:866 +msgid "" +"To activate your blog, please click the following link:\n" +"\n" +"%s\n" +"\n" +"After you activate, you will receive *another email* with your login.\n" +"\n" +"After you activate, you can visit your site here:\n" +"\n" +"%s" +msgstr "" +"Um deine Website zu aktivieren, klicke bitte auf folgenden Link:\n" +"\n" +"%s\n" +"\n" +"Nach der Aktivierung wirst du eine weitere E-Mail mit deinen Zugangsdaten erhalten.\n" +"\n" +"Nach der Aktivierung kannst du deine Website unter der folgenden URL aufrufen:\n" +"%s" + #: wp-includes/ms-functions.php:628 wp-includes/ms-functions.php:1174 msgid "Sorry, that site already exists!" msgstr "Diese Website existiert bereits!" -#: wp-includes/class-wp-xmlrpc-server.php:3672 -#: wp-includes/class-wp-xmlrpc-server.php:3753 -#: wp-includes/class-wp-xmlrpc-server.php:3785 -#: wp-includes/class-wp-xmlrpc-server.php:3817 -#: wp-includes/class-wp-xmlrpc-server.php:4055 -msgid "Sorry, you are not allowed access to details about this site." -msgstr "Du bist leider nicht berechtigt, Details dieser Website abzurufen." - -#: wp-includes/ms-functions.php:600 -msgid "Sorry, site names must have letters too!" -msgstr "Bedaure, Website-Namen müssen auch Buchstaben enthalten!" - -#: wp-includes/ms-functions.php:632 -msgid "Sorry, that site is reserved!" -msgstr "Bedaure, diese Website wurde bereits reserviert!" - -#: wp-includes/option.php:1758 -msgid "Site URL." -msgstr "Website-URL." - #: wp-includes/load.php:536 msgid "The site you have requested is not installed properly. Please contact the system administrator." msgstr "Die Website, die du aufrufen möchtest, wurde nicht korrekt installiert. Bitte kontaktiere den Administrator." @@ -8296,6 +8296,10 @@ msgstr "Diese Website wurde deaktiviert oder archiviert." msgid "The given object ID is not that of a menu item." msgstr "Die übergebene ID gehört zu keinem Menüeintrag." +#: wp-includes/formatting.php:4178 +msgid "The Site address you entered did not appear to be a valid URL. Please enter a valid URL." +msgstr "Die Website-Adresse, die du eingegeben hast, scheint keine gültige URL zu sein. Bitte gib eine gültige URL ein." + #: wp-includes/formatting.php:4165 msgid "The WordPress address you entered did not appear to be a valid URL. Please enter a valid URL." msgstr "Die angegebene WordPress-Adresse scheint keine gültige URL zu sein. Bitte gib eine gültige URL an." @@ -8304,10 +8308,6 @@ msgstr "Die angegebene WordPress-Adresse scheint keine gültige URL zu sein. Bit msgid "The email address entered did not appear to be a valid email address. Please enter a valid email address." msgstr "Diese E-Mail-Adresse scheint keine gültige E-Mail-Adresse zu sein. Bitte gib eine gültige E-Mail-Adresse an." -#: wp-includes/formatting.php:4178 -msgid "The Site address you entered did not appear to be a valid URL. Please enter a valid URL." -msgstr "Die Website-Adresse, die du eingegeben hast, scheint keine gültige URL zu sein. Bitte gebe eine gültige URL ein." - #: wp-includes/taxonomy.php:2056 msgid "A term with the name provided already exists with this parent." msgstr "Ein Begriff mit dem angegebenen Namen existiert bereits für diese übergeordnete Taxonomie." @@ -8334,18 +8334,22 @@ msgstr "Es wurde keine gültige URL übermittelt." msgid "Could not calculate resized image dimensions" msgstr "Die Abmessungen des größenveränderten Bilds konnten nicht berechnet werden." -#: wp-mail.php:15 wp-mail.php:20 -msgid "This action has been disabled by the administrator." -msgstr "Diese Aktion wurde vom Administrator deaktiviert." - -#: wp-signup.php:127 -msgid "Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!" -msgstr "Sie muss aus mindestens vier Zeichen bestehen, wobei du bitte nur Zahlen und Buchstaben verwenden solltest. Prüfe deine Eingabe sorgfältig, da diese Angabe später nicht mehr geändert werden kann." +#: wp-includes/ms-load.php:488 +msgid "If you’re still stuck with this message, then check that your database contains the following tables:" +msgstr "Wenn diese Nachricht weiterhin angezeigt wird, dann prüfe bitte, ob die Datenbank die folgenden Tabellen enthält:" #: wp-signup.php:758 msgid "If you haven’t received your email yet, there are a number of things you can do:" msgstr "Falls du deine E-Mail noch nicht erhalten hast, kannst du folgende Dinge tun:" +#: wp-signup.php:313 +msgid "Welcome back, %s. By filling out the form below, you can <strong>add another site to your account</strong>. There is no limit to the number of sites you can have, so create to your heart’s content, but write responsibly!" +msgstr "Willkommen zurück, %s. Indem du dieses Formular ausfüllst, kannst du deinem Benutzerkonto eine <strong>weitere Website</strong> hinzufügen. Es gibt keine Begrenzung für die Anzahl der Websites, die du haben kannst, also schreibe nach Herzenslust, aber bitte verantwortungsvoll!" + +#: wp-mail.php:15 wp-mail.php:20 +msgid "This action has been disabled by the administrator." +msgstr "Diese Aktion wurde vom Administrator deaktiviert." + #: wp-signup.php:889 msgid "You are logged in already. No need to register again!" msgstr "Du bist bereits angemeldet und brauchst dich nicht erneut zu registrieren!" @@ -8355,13 +8359,9 @@ msgstr "Du bist bereits angemeldet und brauchst dich nicht erneut zu registriere msgid "You must first <a href=\"%s\">log in</a>, and then you can create a new site." msgstr "Du musst dich zuerst <a href=\"%s\">anmelden</a>, um eine neue Website erstellen zu können." -#: wp-includes/ms-load.php:488 -msgid "If you’re still stuck with this message, then check that your database contains the following tables:" -msgstr "Wenn diese Nachricht weiterhin angezeigt wird, dann prüfe bitte, ob die Datenbank die folgenden Tabellen enthält:" - -#: wp-signup.php:313 -msgid "Welcome back, %s. By filling out the form below, you can <strong>add another site to your account</strong>. There is no limit to the number of sites you can have, so create to your heart’s content, but write responsibly!" -msgstr "Willkommen zurück, %s. Indem du dieses Formular ausfüllst, kannst du deinem Benutzerkonto eine <strong>weitere Website</strong> hinzufügen. Es gibt keine Begrenzung für die Anzahl der Websites, die du haben kannst, also schreibe nach Herzenslust, aber bitte verantwortungsvoll!" +#: wp-signup.php:127 +msgid "Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!" +msgstr "Sie muss aus mindestens vier Zeichen bestehen, wobei du bitte nur Zahlen und Buchstaben verwenden solltest. Prüfe deine Eingabe sorgfältig, da diese Angabe später nicht mehr geändert werden kann." #: wp-includes/script-loader.php:635 msgid "Are you sure you want to install this plugin?" @@ -8375,28 +8375,28 @@ msgstr "Als Beitragsbild nutzen" msgid "Page %s" msgstr "Seite %s" -#: wp-includes/load.php:219 -msgid "Maintenance" -msgstr "Wartungsmodus" - #: wp-includes/load.php:223 msgid "Briefly unavailable for scheduled maintenance. Check back in a minute." msgstr "" "Wegen Wartungsarbeiten ist diese Website kurzzeitig nicht verfügbar. \n" "Schau in einer Minute nochmal vorbei." +#: wp-includes/load.php:219 +msgid "Maintenance" +msgstr "Wartungsmodus" + #: wp-includes/taxonomy.php:98 msgid "Navigation Menus" msgstr "Navigationsmenüs" -#: wp-includes/post.php:113 -msgid "Navigation Menu Items" -msgstr "Navigationsmenü-Einträge" - #: wp-includes/post.php:114 msgid "Navigation Menu Item" msgstr "Navigationsmenü-Eintrag" +#: wp-includes/post.php:113 +msgid "Navigation Menu Items" +msgstr "Navigationsmenü-Einträge" + #. translators: 1: Site name #: wp-links-opml.php:31 msgid "Links for %s" @@ -8418,10 +8418,12 @@ msgstr "" msgid "This is the short link." msgstr "Dies ist der Kurzlink." -#. translators: 1: Number of updates available to WordPress -#: wp-includes/update.php:594 -msgid "%d WordPress Update" -msgstr "%d WordPress-Aktualisierung" +#. translators: 1: Number of updates available to plugins +#: wp-includes/update.php:598 +msgid "%d Plugin Update" +msgid_plural "%d Plugin Updates" +msgstr[0] "%d Plugin-Aktualisierung" +msgstr[1] "%d Plugin-Aktualisierungen" #. translators: 1: Number of updates available to themes #: wp-includes/update.php:602 @@ -8430,42 +8432,56 @@ msgid_plural "%d Theme Updates" msgstr[0] "%d Theme-Aktualisierung" msgstr[1] "%d Theme-Aktualisierungen" -#. translators: 1: Number of updates available to plugins -#: wp-includes/update.php:598 -msgid "%d Plugin Update" -msgid_plural "%d Plugin Updates" -msgstr[0] "%d Plugin-Aktualisierung" -msgstr[1] "%d Plugin-Aktualisierungen" +#. translators: 1: Number of updates available to WordPress +#: wp-includes/update.php:594 +msgid "%d WordPress Update" +msgstr "%d WordPress-Aktualisierung" -#: wp-includes/script-loader.php:297 -msgid "File canceled." -msgstr "Datei abgebrochen." +#: wp-signup.php:755 +msgid "If you do not activate your site within two days, you will have to sign up again." +msgstr "Falls du deine Website nicht innerhalb von zwei Tagen aktivierst, musst du sie erneut registrieren." + +#: wp-signup.php:752 +msgid "But, before you can start using your site, <strong>you must activate it</strong>." +msgstr "Doch bevor du deine Website nutzen kannst, musst du sie erst <strong>aktivieren</strong>." + +#: wp-signup.php:552 +msgid "Gimme a site!" +msgstr "Gib mir eine Website!" + +#: wp-signup.php:868 +msgid "Site registration has been disabled." +msgstr "Das Registrieren von Websites ist deaktiviert." #. translators: %s: site address #: wp-signup.php:750 msgid "Congratulations! Your new site, %s, is almost ready." msgstr "Herzlichen Glückwunsch! Deine neue Website – %s – ist beinahe fertig." -#: wp-signup.php:343 -msgid "Create Site" -msgstr "Website erstellen" - -#: wp-signup.php:328 -msgid "If you’re not going to use a great site domain, leave it for a new user. Now have at it!" -msgstr "Suche dir nun einen weiteren Website-Namen und Website-Titel aus." - #: wp-signup.php:307 msgid "Get <em>another</em> %s site in seconds" msgstr "Erstelle eine <em>weitere</em> %s Website in Sekunden" -#: wp-signup.php:552 -msgid "Gimme a site!" -msgstr "Gib mir eine Website!" +#: wp-signup.php:121 +msgid "sitename" +msgstr "Website-Name" + +#: wp-signup.php:106 +msgid "Site Name:" +msgstr "Name der Website:" + +#: wp-signup.php:108 +msgid "Site Domain:" +msgstr "Website-Domain:" #: wp-signup.php:132 msgid "Site Title:" msgstr "Website-Titel:" +#: wp-includes/script-loader.php:297 +msgid "File canceled." +msgstr "Datei abgebrochen." + #. translators: 1: Post title #: wp-includes/pluggable.php:1645 msgid "A new comment on the post \"%s\" is waiting for your approval" @@ -8490,6 +8506,14 @@ msgstr "Neuer Pingback zum Beitrag „%s“" msgid "New comment on your post \"%s\"" msgstr "Neuer Kommentar zum Beitrag „%s“" +#: wp-includes/ms-load.php:465 +msgid "If your site does not display, please contact the owner of this network." +msgstr "Wenn deine Website nicht angezeigt wird, nimm bitte Kontakt zum Betreiber des Netzwerks auf." + +#: wp-includes/ms-load.php:466 +msgid "If you are the owner of this network please check that MySQL is running properly and all tables are error free." +msgstr "Wenn du der Betreiber dieses Netzwerks bist, überprüfe bitte, ob MySQL störungsfrei läuft und alle Tabellen fehlerfrei sind." + #. translators: 1: Post title #: wp-includes/pluggable.php:1465 msgid "New trackback on your post \"%s\"" @@ -8499,65 +8523,46 @@ msgstr "Neuer Trackback zum Beitrag „%s“" msgid "Sites you are already a member of:" msgstr "Du bist bereits Mitglied der folgenden Websites:" +#: wp-signup.php:328 +msgid "If you’re not going to use a great site domain, leave it for a new user. Now have at it!" +msgstr "Suche dir nun einen weiteren Website-Namen und Website-Titel aus." + +#: wp-signup.php:343 +msgid "Create Site" +msgstr "Website erstellen" + #. translators: %s: site name #: wp-signup.php:469 msgid "The site %s is yours." msgstr "Diese Website %s gehört dir." -#: wp-signup.php:108 -msgid "Site Domain:" -msgstr "Website-Domain:" +#. translators: %s: post title +#: wp-includes/theme-compat/comments.php:37 +msgid "One response to %s" +msgstr "Eine Antwort zu %s" -#: wp-signup.php:106 -msgid "Site Name:" -msgstr "Name der Website:" +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:166 +msgid "Taxonomy:" +msgstr "Taxonomie" -#: wp-signup.php:868 -msgid "Site registration has been disabled." -msgstr "Das Registrieren von Websites ist deaktiviert." +#: wp-includes/taxonomy.php:99 +msgid "Navigation Menu" +msgstr "Navigationsmenü" -#: wp-signup.php:752 -msgid "But, before you can start using your site, <strong>you must activate it</strong>." -msgstr "Doch bevor du deine Website nutzen kannst, musst du sie erst <strong>aktivieren</strong>." - -#: wp-signup.php:755 -msgid "If you do not activate your site within two days, you will have to sign up again." -msgstr "Falls du deine Website nicht innerhalb von zwei Tagen aktivierst, musst du sie erneut registrieren." - -#: wp-includes/ms-load.php:465 -msgid "If your site does not display, please contact the owner of this network." -msgstr "Wenn deine Website nicht angezeigt wird, nimm bitte Kontakt zum Betreiber des Netzwerks auf." - -#: wp-signup.php:121 -msgid "sitename" -msgstr "Website-Name" - -#: wp-includes/ms-load.php:466 -msgid "If you are the owner of this network please check that MySQL is running properly and all tables are error free." -msgstr "Wenn du der Betreiber dieses Netzwerks bist, überprüfe bitte, ob MySQL störungsfrei läuft und alle Tabellen fehlerfrei sind." - -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:166 -msgid "Taxonomy:" -msgstr "Taxonomie" - -#: wp-includes/widgets/class-wp-nav-menu-widget.php:141 -msgid "Select Menu:" -msgstr "Wähle ein Menü:" - -#. translators: %s: post title -#: wp-includes/theme-compat/comments.php:37 -msgid "One response to %s" -msgstr "Eine Antwort zu %s" - -#: wp-includes/taxonomy.php:99 -msgid "Navigation Menu" -msgstr "Navigationsmenü" +#: wp-includes/widgets/class-wp-nav-menu-widget.php:141 +msgid "Select Menu:" +msgstr "Wähle ein Menü:" #: wp-includes/admin-bar.php:807 #: wp-includes/class-wp-customize-nav-menus.php:567 msgid "Menus" msgstr "Menüs" +#. translators: 1: Database error message, 2: SQL query +#: wp-includes/wp-db.php:1372 +msgid "WordPress database error %1$s for query %2$s" +msgstr "WordPress-Datenbank-Fehler %1$s für die Abfrage %2$s" + #. translators: 1: Database error message, 2: SQL query, 3: Name of the calling #. function #: wp-includes/wp-db.php:1369 @@ -8568,89 +8573,114 @@ msgstr "WordPress-Datenbank-Fehler %1$s für Abfrage %2$s von %3$s" msgid "Your PHP installation appears to be missing the MySQL extension which is required by WordPress." msgstr "Deine PHP-Installation scheint nicht über die von WordPress benötigte MySQL-Erweiterung zu verfügen." -#: wp-includes/class-wp-xmlrpc-server.php:417 -msgid "Software Name" -msgstr "Softwarename" +#: wp-includes/class-wp-xmlrpc-server.php:6476 +msgid "The specified target URL does not exist." +msgstr "Die angegebene Ziel-URL existiert nicht." -#: wp-includes/class-wp-xmlrpc-server.php:422 -msgid "Software Version" -msgstr "Softwareversion" +#. translators: 1: URL of the page linked from, 2: URL of the page linked to +#: wp-includes/class-wp-xmlrpc-server.php:6443 +msgid "Pingback from %1$s to %2$s registered. Keep the web talking! :-)" +msgstr "Pingback von %1$s zu %2$s registriert. Keep the web talking! :-)" -#: wp-includes/class-wp-xmlrpc-server.php:479 -msgid "Time Zone" -msgstr "Zeitzone" +#: wp-includes/class-wp-xmlrpc-server.php:6410 +msgid "The source URL does not contain a link to the target URL, and so cannot be used as a source." +msgstr "Die Quell-URL enthält keinen Link zur Ziel-URL und kann deshalb nicht als Quelle genutzt werden." -#: wp-includes/class-wp-xmlrpc-server.php:2702 -#: wp-includes/class-wp-xmlrpc-server.php:2822 -#: wp-includes/class-wp-xmlrpc-server.php:2884 -msgid "Sorry, no such page." -msgstr "Diese Seite gibt es leider nicht." +#: wp-includes/class-wp-xmlrpc-server.php:6373 +msgid "We cannot find a title on that page." +msgstr "Wir können auf dieser Seite keinen Titel finden." -#: wp-includes/class-wp-xmlrpc-server.php:2831 -msgid "Failed to delete the page." -msgstr "Die Seite konnte nicht gelöscht werden." +#: wp-includes/class-wp-xmlrpc-server.php:6352 +msgid "The source URL does not exist." +msgstr "Die angegebene Quell-URL existiert nicht." -#: wp-includes/class-wp-xmlrpc-server.php:3113 -#: wp-includes/class-wp-xmlrpc-server.php:3115 -msgid "Sorry, the new category failed." -msgstr "Die neue Kategorie konnte leider nicht erstellt werden." +#: wp-includes/class-wp-xmlrpc-server.php:6327 +msgid "The pingback has already been registered." +msgstr "Der Pingback wurde schon registriert." -#: wp-includes/class-wp-xmlrpc-server.php:3254 -#: wp-includes/class-wp-xmlrpc-server.php:3386 -#: wp-includes/class-wp-xmlrpc-server.php:3453 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 -msgid "Invalid comment ID." -msgstr "Ungültige Kommentar-ID." +#: wp-includes/class-wp-xmlrpc-server.php:6319 +msgid "The source URL and the target URL cannot both point to the same resource." +msgstr "Die Quell-URL und die Ziel-URL können nicht gleichzeitig auf den gleichen Punkt zeigen." -#: wp-includes/class-wp-xmlrpc-server.php:3311 -#: wp-includes/class-wp-xmlrpc-server.php:3468 -msgid "Invalid comment status." -msgstr "Ungültiger Kommentarstatus." +#: wp-includes/class-wp-xmlrpc-server.php:6309 +#: wp-includes/class-wp-xmlrpc-server.php:6316 +#: wp-includes/class-wp-xmlrpc-server.php:6323 +#: wp-includes/class-wp-xmlrpc-server.php:6469 +msgid "The specified target URL cannot be used as a target. It either doesn’t exist, or it is not a pingback-enabled resource." +msgstr "Die angegebene URL kann nicht als Ziel verwendet werden. Entweder existiert sie nicht oder der Empfänger erlaubt keine Pingbacks." #: wp-includes/class-wp-xmlrpc-server.php:6274 msgid "Is there no link to us?" msgstr "Gibt es keinen Link zu uns?" -#: wp-includes/class-wp-xmlrpc-server.php:6319 -msgid "The source URL and the target URL cannot both point to the same resource." -msgstr "Die Quell-URL und die Ziel-URL können nicht gleichzeitig auf den gleichen Punkt zeigen." +#. translators: 1: file name, 2: error message +#: wp-includes/class-wp-xmlrpc-server.php:5864 +msgid "Could not write file %1$s (%2$s)." +msgstr "Folgende Datei konnte nicht geschrieben werden %1$s (%2$s)." -#: wp-includes/class-wp-xmlrpc-server.php:6327 -msgid "The pingback has already been registered." -msgstr "Der Pingback wurde schon registriert." +#: wp-includes/class-wp-xmlrpc-server.php:5298 +msgid "Sorry, you are not allowed to change the page author as this user." +msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, den Autor der Seite zu ändern." -#: wp-includes/class-wp-xmlrpc-server.php:6352 -msgid "The source URL does not exist." -msgstr "Die angegebene Quell-URL existiert nicht." +#: wp-includes/class-wp-xmlrpc-server.php:5293 +msgid "Sorry, you are not allowed to change the post author as this user." +msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, den Autor des Beitrags zu ändern." -#: wp-includes/class-wp-xmlrpc-server.php:6373 -msgid "We cannot find a title on that page." -msgstr "Wir können auf dieser Seite keinen Titel finden." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:645 +msgid "Sorry, you are not allowed to update posts as this user." +msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, Beiträge zu aktualisieren." -#: wp-includes/class-wp-xmlrpc-server.php:6410 -msgid "The source URL does not contain a link to the target URL, and so cannot be used as a source." -msgstr "Die Quell-URL enthält keinen Link zur Ziel-URL und kann deshalb nicht als Quelle genutzt werden." +#: wp-includes/class-wp-customize-nav-menus.php:790 +#: wp-includes/class-wp-xmlrpc-server.php:1331 +#: wp-includes/class-wp-xmlrpc-server.php:1815 +#: wp-includes/class-wp-xmlrpc-server.php:3323 +#: wp-includes/class-wp-xmlrpc-server.php:4138 +#: wp-includes/class-wp-xmlrpc-server.php:4902 +#: wp-includes/class-wp-xmlrpc-server.php:4960 +#: wp-includes/class-wp-xmlrpc-server.php:5238 +#: wp-includes/class-wp-xmlrpc-server.php:5302 wp-includes/post.php:1160 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:128 +msgid "Invalid post type." +msgstr "Ungültiger Inhaltstyp." -#. translators: 1: URL of the page linked from, 2: URL of the page linked to -#: wp-includes/class-wp-xmlrpc-server.php:6443 -msgid "Pingback from %1$s to %2$s registered. Keep the web talking! :-)" -msgstr "Pingback von %1$s zu %2$s registriert. Keep the web talking! :-)" +#: wp-includes/class-wp-xmlrpc-server.php:1358 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1129 +msgid "Sorry, you are not allowed to publish posts in this post type." +msgstr "Du bist leider nicht berechtigt, Beiträge in diesem Inhaltstyp zu veröffentlichen." -#: wp-includes/class-wp-xmlrpc-server.php:6476 -msgid "The specified target URL does not exist." -msgstr "Die angegebene Ziel-URL existiert nicht." +#: wp-includes/class-wp-xmlrpc-server.php:4724 +#: wp-includes/class-wp-xmlrpc-server.php:4796 +#: wp-includes/class-wp-xmlrpc-server.php:5628 +#: wp-includes/class-wp-xmlrpc-server.php:6162 +msgid "Sorry, no such post." +msgstr "Diesen Beitrag gibt es leider nicht." -#. translators: 1: Database error message, 2: SQL query -#: wp-includes/wp-db.php:1372 -msgid "WordPress database error %1$s for query %2$s" -msgstr "WordPress-Datenbank-Fehler %1$s für die Abfrage %2$s" +#: wp-includes/class-wp-xmlrpc-server.php:4733 +#: wp-includes/class-wp-xmlrpc-server.php:5407 +#: wp-includes/class-wp-xmlrpc-server.php:6217 +msgid "Sorry, you are not allowed to publish this post." +msgstr "Du bist leider nicht berechtigt, diesen Beitrag zu veröffentlichen." -#: wp-includes/class-wp-xmlrpc-server.php:6309 -#: wp-includes/class-wp-xmlrpc-server.php:6316 -#: wp-includes/class-wp-xmlrpc-server.php:6323 -#: wp-includes/class-wp-xmlrpc-server.php:6469 -msgid "The specified target URL cannot be used as a target. It either doesn’t exist, or it is not a pingback-enabled resource." -msgstr "Die angegebene URL kann nicht als Ziel verwendet werden. Entweder existiert sie nicht oder der Empfänger erlaubt keine Pingbacks." +#: wp-includes/class-wp-xmlrpc-server.php:4564 +#: wp-includes/class-wp-xmlrpc-server.php:5946 +msgid "Either there are no posts, or something went wrong." +msgstr "Entweder gibt es keine Beiträge oder es ging etwas schief." + +#: wp-includes/class-wp-xmlrpc-server.php:3911 +msgid "Sorry, you are not allowed to update options." +msgstr "Du bist leider nicht berechtigt, Einstellungen zu aktualisieren." + +#: wp-includes/class-wp-xmlrpc-server.php:3713 +msgid "Sorry, you are not allowed access to details of this post." +msgstr "Du bist leider nicht berechtigt, auf Details dieses Beitrags zuzugreifen." + +#: wp-includes/class-wp-xmlrpc-server.php:3616 +msgid "A valid email address is required." +msgstr "Eine gültige E-Mail-Adresse ist erforderlich." + +#: wp-includes/class-wp-xmlrpc-server.php:3614 +msgid "Comment author name and email are required." +msgstr "Name und E-Mail-Adresse des Kommentar-Autors sind erforderlich." #: wp-includes/class-wp-xmlrpc-server.php:1337 #: wp-includes/class-wp-xmlrpc-server.php:1593 @@ -8678,1643 +8708,1606 @@ msgstr "Die angegebene URL kann nicht als Ziel verwendet werden. Entweder existi msgid "Invalid post ID." msgstr "Ungültige Beitrags-ID." -#: wp-includes/class-wp-xmlrpc-server.php:4564 -#: wp-includes/class-wp-xmlrpc-server.php:5946 -msgid "Either there are no posts, or something went wrong." -msgstr "Entweder gibt es keine Beiträge oder es ging etwas schief." +#: wp-includes/class-wp-xmlrpc-server.php:3554 +msgid "You must be registered to comment." +msgstr "Um einen Kommentar zu schreiben, musst du registriert sein." -#: wp-includes/class-wp-xmlrpc-server.php:4724 -#: wp-includes/class-wp-xmlrpc-server.php:4796 -#: wp-includes/class-wp-xmlrpc-server.php:5628 -#: wp-includes/class-wp-xmlrpc-server.php:6162 -msgid "Sorry, no such post." -msgstr "Diesen Beitrag gibt es leider nicht." +#: wp-includes/class-wp-xmlrpc-server.php:3311 +#: wp-includes/class-wp-xmlrpc-server.php:3468 +msgid "Invalid comment status." +msgstr "Ungültiger Kommentarstatus." + +#: wp-includes/class-wp-xmlrpc-server.php:3254 +#: wp-includes/class-wp-xmlrpc-server.php:3386 +#: wp-includes/class-wp-xmlrpc-server.php:3453 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 +msgid "Invalid comment ID." +msgstr "Ungültige Kommentar-ID." + +#: wp-includes/class-wp-xmlrpc-server.php:3113 +#: wp-includes/class-wp-xmlrpc-server.php:3115 +msgid "Sorry, the new category failed." +msgstr "Die neue Kategorie konnte leider nicht erstellt werden." + +#: wp-includes/class-wp-xmlrpc-server.php:2831 +msgid "Failed to delete the page." +msgstr "Die Seite konnte nicht gelöscht werden." + +#: wp-includes/class-wp-xmlrpc-server.php:2702 +#: wp-includes/class-wp-xmlrpc-server.php:2822 +#: wp-includes/class-wp-xmlrpc-server.php:2884 +msgid "Sorry, no such page." +msgstr "Diese Seite gibt es leider nicht." #: wp-includes/class-wp-xmlrpc-server.php:504 msgid "Allow new users to sign up" -msgstr "Erlaube neuen Benutzern, sich zu registrieren" +msgstr "Neuen Benutzern erlauben, sich zu registrieren" -#: wp-includes/class-wp-xmlrpc-server.php:4733 -#: wp-includes/class-wp-xmlrpc-server.php:5407 -#: wp-includes/class-wp-xmlrpc-server.php:6217 -msgid "Sorry, you are not allowed to publish this post." -msgstr "Du bist leider nicht berechtigt, diesen Beitrag zu veröffentlichen." +#: wp-includes/class-wp-xmlrpc-server.php:479 +msgid "Time Zone" +msgstr "Zeitzone" -#: wp-includes/class-wp-xmlrpc-server.php:5298 -msgid "Sorry, you are not allowed to change the page author as this user." -msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, den Autor der Seite zu ändern." +#: wp-includes/class-wp-xmlrpc-server.php:422 +msgid "Software Version" +msgstr "Softwareversion" -#: wp-includes/class-wp-xmlrpc-server.php:3911 -msgid "Sorry, you are not allowed to update options." -msgstr "Du bist leider nicht berechtigt, Einstellungen zu aktualisieren." +#: wp-includes/class-wp-xmlrpc-server.php:417 +msgid "Software Name" +msgstr "Softwarename" -#: wp-includes/class-wp-xmlrpc-server.php:5293 -msgid "Sorry, you are not allowed to change the post author as this user." -msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, den Autor des Beitrags zu ändern." +#: wp-signup.php:862 +msgid "User registration has been disabled." +msgstr "Die Benutzerregistrierung wurde deaktiviert." -#: wp-includes/class-wp-customize-nav-menus.php:790 -#: wp-includes/class-wp-xmlrpc-server.php:1331 -#: wp-includes/class-wp-xmlrpc-server.php:1815 -#: wp-includes/class-wp-xmlrpc-server.php:3323 -#: wp-includes/class-wp-xmlrpc-server.php:4138 -#: wp-includes/class-wp-xmlrpc-server.php:4902 -#: wp-includes/class-wp-xmlrpc-server.php:4960 -#: wp-includes/class-wp-xmlrpc-server.php:5238 -#: wp-includes/class-wp-xmlrpc-server.php:5302 wp-includes/post.php:1160 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:128 -msgid "Invalid post type." -msgstr "Ungültiger Inhaltstyp." - -#: wp-includes/class-wp-xmlrpc-server.php:3713 -msgid "Sorry, you are not allowed access to details of this post." -msgstr "Du bist leider nicht berechtigt, auf Details dieses Beitrags zuzugreifen." +#: wp-signup.php:850 +msgid "Registration has been disabled." +msgstr "Die Registrierung wurde deaktiviert." -#. translators: 1: file name, 2: error message -#: wp-includes/class-wp-xmlrpc-server.php:5864 -msgid "Could not write file %1$s (%2$s)." -msgstr "Folgende Datei konnte nicht geschrieben werden %1$s (%2$s)." +#: wp-signup.php:756 +msgid "Still waiting for your email?" +msgstr "Wartest du noch auf deine E-Mail?" -#: wp-includes/class-wp-xmlrpc-server.php:3554 -msgid "You must be registered to comment." -msgstr "Um einen Kommentar zu schreiben, musst du registriert sein." +#: wp-signup.php:673 +msgid "Signup" +msgstr "Registrieren" -#: wp-includes/class-wp-xmlrpc-server.php:3616 -msgid "A valid email address is required." -msgstr "Eine gültige E-Mail-Adresse ist erforderlich." +#: wp-signup.php:609 +msgid "If you do not activate your username within two days, you will have to sign up again." +msgstr "Wenn du deinen Benutzernamen nicht innerhalb von zwei Tagen aktivierst, musst du dich erneut registrieren." -#: wp-includes/class-wp-xmlrpc-server.php:3614 -msgid "Comment author name and email are required." -msgstr "Name und E-Mail-Adresse des Kommentar-Autors sind erforderlich." +#: wp-signup.php:606 +msgid "But, before you can start using your new username, <strong>you must activate it</strong>." +msgstr "Bevor du jedoch loslegen und deinen neuen Benutzernamen nutzen kannst, musst du ihn erst <strong>aktivieren</strong>." -#: wp-includes/class-wp-xmlrpc-server.php:1358 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1129 -msgid "Sorry, you are not allowed to publish posts in this post type." -msgstr "Du bist leider nicht berechtigt, Beiträge in diesem Inhaltstyp zu veröffentlichen." +#. translators: %s: username +#: wp-signup.php:605 +msgid "%s is your new username" +msgstr "%s ist dein neuer Benutzername" -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:645 -msgid "Sorry, you are not allowed to update posts as this user." -msgstr "Du bist mit deiner Benutzerrolle leider nicht berechtigt, Beiträge zu aktualisieren." +#: wp-includes/script-loader.php:990 wp-signup.php:559 +msgid "Next" +msgstr "Weiter" -#: wp-includes/class-wp-editor.php:1081 wp-includes/script-loader.php:267 -#: wp-includes/widgets/class-wp-widget-media-image.php:26 -msgid "Image" -msgstr "Bild" +#: wp-signup.php:555 +msgid "Just a username, please." +msgstr "Ich möche nur einen Benutzernamen, keine Website." -#: wp-includes/script-loader.php:268 -msgid "of" -msgstr "von" +#. translators: %s: name of the network +#: wp-signup.php:535 +msgid "Get your own %s account in seconds" +msgstr "Registriere dich in nur wenigen Sekunden bei %s." -#: wp-login.php:819 -msgid "You have logged in successfully." -msgstr "Du hast dich erfolgreich angemeldet." +#: wp-signup.php:310 +msgid "There was a problem, please correct the form below and try again." +msgstr "Es trat ein Fehler auf. Bitte korrigiere die Eingaben und versuche es noch einmal." -#: wp-includes/post.php:237 -msgid "Trash <span class=\"count\">(%s)</span>" -msgid_plural "Trash <span class=\"count\">(%s)</span>" -msgstr[0] "Papierkorb <span class=\"count\">(%s)</span>" -msgstr[1] "Papierkorb <span class=\"count\">(%s)</span>" +#: wp-signup.php:236 +msgid "Email Address:" +msgstr "E-Mail-Addresse:" -#: wp-includes/class-wp-editor.php:1012 -msgid "Paragraph" -msgstr "Absatz" +#: wp-signup.php:233 +msgid "(Must be at least 4 characters, letters and numbers only.)" +msgstr "(Es müssen mindestens 4 Zeichen sein, bitte nur Buchstaben und Zahlen.)" -#: wp-includes/class-wp-editor.php:1003 -msgid "Heading 1" -msgstr "Überschrift 1" +#: wp-signup.php:173 +msgid "Privacy:" +msgstr "Datenschutz:" -#: wp-includes/class-wp-editor.php:1004 -msgid "Heading 2" -msgstr "Überschrift 2" +#. translators: %s: POP3 error +#: wp-mail.php:238 +msgid "Oops: %s" +msgstr "Oops: %s" -#: wp-includes/class-wp-editor.php:1005 -msgid "Heading 3" -msgstr "Überschrift 3" +#. translators: Post author email address +#: wp-mail.php:128 +msgid "Author is %s" +msgstr "Der Autor ist %s" -#: wp-includes/class-wp-editor.php:1006 -msgid "Heading 4" -msgstr "Überschrift 4" +#: wp-mail.php:60 +msgid "There doesn’t seem to be any new mail." +msgstr "Da scheint keine neue E-Mail zu sein." -#: wp-includes/class-wp-editor.php:1007 -msgid "Heading 5" -msgstr "Überschrift 5" +#: wp-mail.php:40 +msgid "Slow down cowboy, no need to check for new mails so often!" +msgstr "Ruhe bewahren, es gibt keinen Grund, so oft nach neuen E-Mails zu schauen." -#: wp-includes/class-wp-editor.php:1008 -msgid "Heading 6" -msgstr "Überschrift 6" +#: wp-login.php:868 +msgid "Registration complete. Please check your email." +msgstr "Registrierung abgeschlossen. Bitte schau in dein E-Mail-Postfach." -#: wp-includes/class-wp-editor.php:1013 wp-includes/script-loader.php:105 -msgid "Blockquote" -msgstr "Zitat" +#: wp-login.php:866 +msgid "Check your email for your new password." +msgstr "Bitte schau für das neue Passwort in deine E-Mail." -#: wp-includes/class-wp-editor.php:1027 wp-includes/script-loader.php:118 -msgid "Code" -msgstr "Code" +#: wp-login.php:864 +msgid "Check your email for the confirmation link." +msgstr "Bitte schau für den Bestätigungslink in deine E-Mail." -#: wp-includes/class-wp-editor.php:1022 -msgid "Subscript" -msgstr "Tiefgestellt" +#: wp-login.php:862 +msgid "User registration is currently not allowed." +msgstr "Zurzeit ist die Benutzer-Registrierung nicht erlaubt." -#: wp-includes/class-wp-editor.php:1023 -msgid "Superscript" -msgstr "Hochgestellt" +#: wp-login.php:860 +msgid "You are now logged out." +msgstr "Du hast dich erfolgreich abgemeldet." -#: wp-includes/class-wp-editor.php:999 -msgid "New document" -msgstr "Neues Dokument" +#: wp-login.php:819 +msgid "You have logged in successfully." +msgstr "Du hast dich erfolgreich angemeldet." -#: wp-includes/class-wp-editor.php:1089 -msgid "Image description" -msgstr "Bildbeschreibung" +#: wp-includes/user.php:144 wp-includes/user.php:170 wp-includes/user.php:222 +#: wp-includes/user.php:242 wp-login.php:748 wp-login.php:942 +msgid "Lost your password?" +msgstr "Passwort vergessen?" -#: wp-includes/class-wp-editor.php:1086 -msgid "Border" -msgstr "Rand" +#: wp-login.php:721 +msgid "Register For This Site" +msgstr "Für diese Website registrieren" -#: wp-includes/class-wp-editor.php:1091 -msgid "Dimensions" -msgstr "Größe" +#: wp-login.php:721 +msgid "Registration Form" +msgstr "Registrierungsformular" -#: wp-includes/class-wp-editor.php:1088 -msgid "Vertical space" -msgstr "Vertikaler Abstand" +#: wp-login.php:549 +msgid "Get New Password" +msgstr "Neues Passwort" -#: wp-includes/class-wp-editor.php:1119 -msgid "Horizontal space" -msgstr "Horizontaler Abstand" +#: wp-login.php:530 +msgid "Lost Password" +msgstr "Passwort vergessen" -#: wp-includes/class-wp-editor.php:1204 -#: wp-includes/customize/class-wp-customize-background-position-control.php:46 -msgid "Top" -msgstr "Oben" +#: wp-includes/user.php:2310 +msgid "<strong>ERROR</strong>: The email address isn’t correct." +msgstr "<strong>FEHLER</strong>: Die E-Mail-Adresse ist ungültig." -#: wp-includes/class-wp-editor.php:1205 -msgid "Middle" -msgstr "Mitte" +#: wp-includes/user.php:2308 +msgid "<strong>ERROR</strong>: Please type your email address." +msgstr "<strong>FEHLER</strong>: Bitte gib deine E-Mail-Adresse ein." -#: wp-includes/class-wp-editor.php:1206 -#: wp-includes/customize/class-wp-customize-background-position-control.php:56 -msgid "Bottom" -msgstr "Unten" +#: wp-includes/user.php:2169 wp-includes/user.php:2172 +#: wp-includes/user.php:2176 wp-includes/user.php:2201 +#: wp-includes/user.php:2210 wp-includes/user.php:2214 +#: wp-includes/user.php:2231 +msgid "Invalid key" +msgstr "Ungültiger Schlüssel" -#: wp-includes/class-wp-editor.php:1133 -msgid "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?" -msgstr "Die eingegebene URL scheint eine E-Mail-Adresse zu sein. Soll \"mailto:\" vorangestellt werden?" +#: wp-login.php:375 +msgid "The email could not be sent." +msgstr "Die E-Mail konnte nicht gesendet werden." -#: wp-includes/class-wp-editor.php:1135 -msgid "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?" -msgstr "Die eingegebene URL scheint ein externer Link zu sein. Soll \"http://\" vorangestellt werden?" +#. translators: Password reset email subject. 1: Site name +#: wp-login.php:345 +msgid "[%s] Password Reset" +msgstr "[%s] Passwort zurücksetzen" -#: wp-includes/class-wp-editor.php:1087 -msgid "Constrain proportions" -msgstr "Proportionen beschränken" +#: wp-includes/user.php:2114 +msgid "Password reset is not allowed for this user" +msgstr "Für diesen Benutzer ist es nicht erlaubt, das Passwort zurückzusetzen." -#: wp-includes/media-template.php:1097 wp-includes/media-template.php:1186 -#: wp-includes/widgets/class-wp-widget-media-audio.php:72 -#: wp-includes/widgets/class-wp-widget-media-video.php:74 -msgid "Loop" -msgstr "Schleife" +#: wp-login.php:314 +msgid "<strong>ERROR</strong>: Invalid username or email." +msgstr "<strong>FEHLER</strong>: Falscher Benutzername oder falsche E-Mail-Adresse." -#: wp-includes/media-template.php:848 wp-includes/media-template.php:914 -msgid "Align" -msgstr "Ausrichtung" +#: wp-login.php:293 +msgid "<strong>ERROR</strong>: There is no user registered with that email address." +msgstr "<strong>FEHLER</strong>: Es existiert kein Benutzer mit dieser E-Mail-Adresse" -#: wp-includes/admin-bar.php:813 -msgid "Background" -msgstr "Hintergrund" +#: wp-login.php:289 +msgid "<strong>ERROR</strong>: Enter a username or email address." +msgstr "<strong>FEHLER</strong>: Benutzername oder E-Mail-Adresse eingeben." -#: wp-includes/class-wp-editor.php:1117 wp-includes/script-loader.php:352 -msgid "Fullscreen" -msgstr "Vollbild" +#: wp-login.php:104 +msgid "Powered by WordPress" +msgstr "Powered by WordPress" -#: wp-includes/script-loader.php:369 -msgid "Mute" -msgstr "Stumm" - -#: wp-includes/customize/class-wp-customize-background-position-control.php:45 -msgid "Top Left" -msgstr "Oben links" +#. translators: 1: WordPress version number, 2: Minimum required MySQL version +#. number +#: wp-includes/wp-db.php:3221 +msgid "<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher" +msgstr "<strong>FEHLER</strong>: WordPress %1$s benötigt mindestens MySQL %2$s" -#: wp-includes/customize/class-wp-customize-background-position-control.php:47 -msgid "Top Right" -msgstr "Oben rechts" +#: wp-includes/widgets.php:173 wp-includes/widgets.php:244 +msgid "Sidebar %d" +msgstr "Seitenleiste %d" -#: wp-includes/customize/class-wp-customize-background-position-control.php:55 -msgid "Bottom Left" -msgstr "Unten links" +#: wp-includes/functions.php:5274 wp-includes/user.php:280 +msgid "Please log in again." +msgstr "Bitte melde dich erneut an." -#: wp-includes/customize/class-wp-customize-background-position-control.php:57 -msgid "Bottom Right" -msgstr "Unten rechts" +#: wp-includes/user.php:310 +msgid "<strong>ERROR</strong>: Your account has been marked as a spammer." +msgstr "<strong>FEHLER</strong>: Dein Account wurde als Spam markiert." -#: wp-includes/media.php:3550 -msgid "Edit Gallery" -msgstr "Galerie bearbeiten" +#: wp-includes/user.php:133 wp-includes/user.php:206 +msgid "<strong>ERROR</strong>: The password field is empty." +msgstr "<strong>FEHLER</strong>: Das Passwortfeld ist leer." -#: wp-includes/class-wp-editor.php:1085 -msgid "Source" -msgstr "Quelle" +#: wp-includes/user.php:130 +msgid "<strong>ERROR</strong>: The username field is empty." +msgstr "<strong>FEHLER</strong>: Das Benutzerfeld ist leer." -#: wp-includes/media-template.php:1011 -#: wp-includes/widgets/class-wp-widget-media-image.php:131 -msgid "Link Rel" -msgstr "Link-Beziehung" +#: wp-includes/class-wp-theme.php:248 +msgid "Stylesheet is missing." +msgstr "Es fehlt ein Stylesheet." -#: wp-includes/class-http.php:268 -msgid "User has blocked requests through HTTP." -msgstr "Der Benutzer hat Anfragen über HTTP blockiert." +#: wp-includes/class-wp-theme.php:300 +msgid "The parent theme is missing. Please install the \"%s\" parent theme." +msgstr "Das übergeordnete Theme fehlt. Bitte installiere das übergeordnete Theme „%s“, da du Child-Themes sonst nicht nutzen kannst." -#: wp-includes/script-loader.php:133 wp-includes/script-loader.php:518 -msgid "An unidentified error has occurred." -msgstr "Ein unbekannter Fehler ist aufgetreten." +#: wp-includes/taxonomy.php:4045 +msgid "Invalid object ID" +msgstr "Ungültige Objekt-ID" -#: wp-includes/script-loader.php:280 -msgid "You have attempted to queue too many files." -msgstr "Du hast versucht, zu viele Dateien in die Warteschlange zu stellen." +#. translators: 1: Taxonomy term slug +#: wp-includes/taxonomy.php:2658 +msgid "The slug “%s” is already in use by another term" +msgstr "Die Titelform „%s“ wird bereits verwendet" -#: wp-includes/script-loader.php:282 -msgid "This file is empty. Please try another." -msgstr "Die ausgewählte Datei ist leer. Bitte versuch es mit einer anderen." +#: wp-includes/taxonomy.php:2080 +msgid "Could not insert term into the database" +msgstr "Der Begriff konnte nicht in die Datenbank eingefügt werden" -#: wp-includes/script-loader.php:288 -msgid "There was a configuration error. Please contact the server administrator." -msgstr "Die Konfiguration ist fehlerhaft. Bitte wende dich an deinen Serveradministrator." +#: wp-includes/taxonomy.php:726 wp-includes/taxonomy.php:2572 +#: wp-includes/taxonomy.php:3843 +msgid "Empty Term" +msgstr "Leerer Ausdruck" -#: wp-includes/script-loader.php:291 -msgid "Upload failed." -msgstr "Upload fehlgeschlagen." +#: wp-includes/script-loader.php:575 +msgid "Saving Draft…" +msgstr "Entwurf wird gespeichert …" -#: wp-includes/script-loader.php:296 -msgid "Security error." -msgstr "Sicherheitsfehler." +#: wp-includes/script-loader.php:754 +msgid "Could not set that as the thumbnail image. Try a different attachment." +msgstr "Das Bild konnte nicht als Vorschaubild gesetzt werden. Versuche es mit einem anderen." -#: wp-includes/script-loader.php:298 -msgid "Upload stopped." -msgstr "Upload gestoppt." +#: wp-includes/script-loader.php:753 +msgid "Saving..." +msgstr "Speichere …" -#: wp-includes/script-loader.php:557 -msgid "Schedule for:" -msgstr "Geplant für:" +#: wp-includes/script-loader.php:619 +msgid "Remove From Bulk Edit" +msgstr "Aus der Massenbearbeitung entfernen" -#: wp-includes/script-loader.php:561 -msgid "Show more comments" -msgstr "Mehr Kommentare zeigen" +#: wp-includes/script-loader.php:618 wp-includes/script-loader.php:627 +msgid "Error while saving the changes." +msgstr "Fehler beim Speichern der Änderungen." -#: wp-includes/script-loader.php:562 -msgid "No more comments found." -msgstr "Es wurden keine weiteren Kommentare gefunden." +#: wp-includes/script-loader.php:597 +msgid "Submitted on:" +msgstr "Eingereicht am:" #: wp-includes/script-loader.php:571 msgid "Password Protected" msgstr "Passwortgeschützt" -#: wp-includes/script-loader.php:597 -msgid "Submitted on:" -msgstr "Eingereicht am:" +#: wp-includes/script-loader.php:562 +msgid "No more comments found." +msgstr "Es wurden keine weiteren Kommentare gefunden." -#: wp-includes/script-loader.php:618 wp-includes/script-loader.php:627 -msgid "Error while saving the changes." -msgstr "Fehler beim Speichern der Änderungen." +#: wp-includes/script-loader.php:561 +msgid "Show more comments" +msgstr "Mehr Kommentare zeigen" -#: wp-includes/script-loader.php:619 -msgid "Remove From Bulk Edit" -msgstr "Aus der Massenbearbeitung entfernen" +#: wp-includes/script-loader.php:558 +msgid "Published on:" +msgstr "Veröffentlicht am:" -#: wp-includes/class-wp-editor.php:1233 wp-includes/script-loader.php:463 -#: wp-includes/script-loader.php:574 wp-includes/script-loader.php:583 -#: wp-includes/script-loader.php:763 wp-includes/theme.php:2974 -msgid "The changes you made will be lost if you navigate away from this page." -msgstr "Beim Verlassen der Seite werden deine Änderungen verworfen." +#: wp-includes/script-loader.php:557 +msgid "Schedule for:" +msgstr "Geplant für:" -#: wp-includes/taxonomy.php:726 wp-includes/taxonomy.php:2572 -#: wp-includes/taxonomy.php:3843 -msgid "Empty Term" -msgstr "Leerer Ausdruck" +#: wp-includes/script-loader.php:556 +msgid "Publish on:" +msgstr "Veröffentlichen am:" -#: wp-includes/taxonomy.php:2080 -msgid "Could not insert term into the database" -msgstr "Der Begriff konnte nicht in die Datenbank eingefügt werden" +#: wp-includes/script-loader.php:404 +msgctxt "password strength" +msgid "Medium" +msgstr "Mittel" -#: wp-includes/taxonomy.php:4045 -msgid "Invalid object ID" -msgstr "Ungültige Objekt-ID" +#: wp-includes/script-loader.php:301 +msgid "moved to the trash." +msgstr "in den Papierkorb gelegt." -#: wp-includes/class-wp-theme.php:248 -msgid "Stylesheet is missing." -msgstr "Es fehlt ein Stylesheet." +#: wp-includes/script-loader.php:300 +msgid "Crunching…" +msgstr "Verarbeiten …" -#: wp-includes/class-wp-editor.php:1275 -msgid "Action" -msgstr "Aktion" +#: wp-includes/script-loader.php:298 +msgid "Upload stopped." +msgstr "Upload gestoppt." -#: wp-includes/class-wp-editor.php:1040 -msgid "Copy" -msgstr "Kopieren" +#: wp-includes/script-loader.php:296 +msgid "Security error." +msgstr "Sicherheitsfehler." -#: wp-includes/class-wp-editor.php:1041 -msgid "Paste" -msgstr "Einfügen" +#: wp-includes/script-loader.php:295 +msgid "IO error." +msgstr "IO-Fehler." -#: wp-includes/class-wp-editor.php:1042 -msgid "Select all" -msgstr "Alle auswählen" +#: wp-includes/script-loader.php:291 +msgid "Upload failed." +msgstr "Upload fehlgeschlagen." -#: wp-includes/class-wp-editor.php:1039 -msgid "Cut" -msgstr "Ausschneiden" +#: wp-includes/script-loader.php:290 +msgid "HTTP error." +msgstr "HTTP-Fehler." -#: wp-includes/class-wp-editor.php:1025 wp-includes/script-loader.php:100 -msgid "Bold" -msgstr "Fett" +#: wp-includes/script-loader.php:289 +msgid "You may only upload 1 file." +msgstr "Du kannst nur 1 Datei hochladen." -#: wp-includes/class-wp-editor.php:1026 wp-includes/script-loader.php:102 -msgid "Italic" -msgstr "Kursiv" +#: wp-includes/script-loader.php:288 +msgid "There was a configuration error. Please contact the server administrator." +msgstr "Die Konfiguration ist fehlerhaft. Bitte wende dich an deinen Serveradministrator." -#: wp-includes/class-wp-editor.php:1020 -msgid "Underline" -msgstr "Unterstreichen" +#: wp-includes/script-loader.php:287 +msgid "An error occurred in the upload. Please try again later." +msgstr "Bei dem Upload ist ein Fehler aufgetreten. Versuche es später noch einmal." -#: wp-includes/class-wp-editor.php:1157 -msgid "Check Spelling" -msgstr "Rechtschreibprüfung" +#: wp-includes/script-loader.php:282 +msgid "This file is empty. Please try another." +msgstr "Die ausgewählte Datei ist leer. Bitte versuch es mit einer anderen." -#: wp-includes/class-wp-editor.php:1021 -msgid "Strikethrough" -msgstr "Durchgestrichen" +#: wp-includes/script-loader.php:280 +msgid "You have attempted to queue too many files." +msgstr "Du hast versucht, zu viele Dateien in die Warteschlange zu stellen." -#: wp-includes/class-wp-editor.php:1126 wp-includes/script-loader.php:104 -msgid "Insert link" -msgstr "Link einfügen" +#: wp-includes/script-loader.php:270 +msgid "This feature requires inline frames. You have iframes disabled or your browser does not support them." +msgstr "Diese Funktion benötigt iframes. Du hast jedoch iframes deaktiviert oder dein Browser unterstützt diese nicht." -#: wp-includes/class-wp-editor.php:1122 -msgid "Remove link" -msgstr "Link entfernen" +#: wp-includes/script-loader.php:268 +msgid "of" +msgstr "von" -#: wp-includes/class-wp-editor.php:1249 -msgid "Insert Page Break tag" -msgstr "Tag für Seitenumbruch einfügen" +#: wp-includes/class-wp-editor.php:1081 wp-includes/script-loader.php:267 +#: wp-includes/widgets/class-wp-widget-media-image.php:26 +msgid "Image" +msgstr "Bild" -#: wp-includes/class-wp-editor.php:1115 -msgid "Print" -msgstr "Drucken" +#: wp-includes/script-loader.php:266 +msgid "< Prev" +msgstr "< Vorherige" -#: wp-includes/class-wp-editor.php:1082 -msgid "Insert/edit image" -msgstr "Bild einfügen/ändern" - -#: wp-includes/class-wp-editor.php:1121 wp-includes/class-wp-editor.php:1127 -#: wp-includes/class-wp-editor.php:1686 wp-includes/script-loader.php:428 -msgid "Insert/edit link" -msgstr "Link einfügen/ändern" - -#: wp-includes/class-wp-editor.php:1187 -msgid "Delete row" -msgstr "Zeile löschen" - -#: wp-includes/class-wp-editor.php:1167 -msgid "Table row properties" -msgstr "Zeileneigenschaften" - -#: wp-includes/class-wp-editor.php:1168 -msgid "Table cell properties" -msgstr "Zelleneigenschaften" - -#: wp-includes/class-wp-editor.php:1166 -msgid "Table properties" -msgstr "Tabelleneigenschaften" - -#: wp-includes/class-wp-editor.php:1185 -msgid "Paste table row before" -msgstr "Zeile mit Inhalt davor einfügen" - -#: wp-includes/class-wp-editor.php:1186 -msgid "Paste table row after" -msgstr "Zeile mit Inhalt danach einfügen" - -#: wp-includes/class-wp-editor.php:1189 -msgid "Cut table row" -msgstr "Zeile ausschneiden" +#: wp-includes/script-loader.php:265 +msgid "Next >" +msgstr "Nächste >" -#: wp-includes/class-wp-editor.php:1190 -msgid "Copy table row" -msgstr "Zeile kopieren" +#: wp-includes/script-loader.php:133 wp-includes/script-loader.php:518 +msgid "An unidentified error has occurred." +msgstr "Ein unbekannter Fehler ist aufgetreten." -#: wp-includes/class-wp-editor.php:1165 -msgid "Delete table" -msgstr "Tabelle löschen" +#: wp-includes/script-loader.php:96 +msgid "Enter a description of the image" +msgstr "Gib eine Beschreibung des Bildes an" -#: wp-includes/class-wp-editor.php:1171 -msgid "Row" -msgstr "Zeile" +#: wp-includes/script-loader.php:95 +msgid "Enter the URL of the image" +msgstr "Gib die URL des Bildes an" -#: wp-includes/class-wp-editor.php:1072 -msgid "Document properties" -msgstr "Dokumenteigenschaften" +#: wp-includes/script-loader.php:94 +msgid "Enter the URL" +msgstr "Gib eine URL an" -#. translators: Time difference between two dates, in minutes (min=minute). 1: -#. Number of minutes -#: wp-includes/formatting.php:3228 -msgid "%s min" -msgid_plural "%s mins" -msgstr[0] "%s Minute" -msgstr[1] "%s Minuten" +#: wp-includes/script-loader.php:93 +msgid "close tags" +msgstr "Tags schließen" -#. translators: Time difference between two dates, in hours. 1: Number of hours -#: wp-includes/formatting.php:3234 -msgid "%s hour" -msgid_plural "%s hours" -msgstr[0] "%s Stunde" -msgstr[1] "%s Stunden" +#: wp-includes/script-loader.php:92 +msgid "Close all open tags" +msgstr "Alle offenen Tags schließen" -#. translators: used between list items, there is a space after the comma -#: wp-includes/class-wp-theme.php:758 -msgid ", " -msgstr ", " +#: wp-includes/rss.php:917 wp-includes/widgets.php:1251 +msgid "An error has occurred, which probably means the feed is down. Try again later." +msgstr "Ein Fehler ist aufgetreten – der Feed funktioniert zur Zeit nicht. Versuche es später noch einmal." -#: wp-includes/option.php:156 -msgid "%s is a protected WP option and may not be modified" -msgstr "%s ist eine geschützte WP-Option und sollte nicht verändert werden" +#: wp-includes/user.php:2012 +msgid "Jabber / Google Talk" +msgstr "Jabber / Google Talk" -#. translators: %s: directory path -#: wp-includes/functions.php:1897 wp-includes/functions.php:2166 -msgid "Unable to create directory %s. Is its parent directory writable by the server?" -msgstr "Das Verzeichnis %s kann nicht angelegt werden. Ist das übergeordnete Verzeichnis durch den Server beschreibbar?" +#: wp-includes/user.php:2011 +msgid "Yahoo IM" +msgstr "Yahoo IM" -#: wp-includes/functions.php:2174 -msgid "Could not write file %s" -msgstr "Konnte folgende Datei nicht schreiben %s" +#: wp-includes/user.php:2010 +msgid "AIM" +msgstr "AIM" -#: wp-includes/functions.php:2607 -msgid "WordPress Failure Notice" -msgstr "WordPress-Fehlermeldung" +#: wp-includes/user.php:1456 +msgid "Cannot create a user with an empty login name." +msgstr "Es kann kein neuer Benutzer anlegt werden, wenn der Anmeldename leer ist." -#: wp-includes/functions.php:2727 -msgid "« Back" -msgstr "« Zurück" +#: wp-includes/revision.php:295 +msgid "Cannot create a revision of a revision" +msgstr "Kann keine Revision einer Revision erstellen." -#: wp-includes/functions.php:2739 wp-load.php:92 -msgid "WordPress › Error" -msgstr "WordPress › Fehler" +#: wp-includes/post.php:3318 +msgid "Could not insert post into the database" +msgstr "Der Beitrag konnte nicht in die Datenbank eingefügt werden" -#. translators: 1: PHP function name, 2: version number, 3: alternative -#. function name -#. translators: 1: PHP file name, 2: version number, 3: alternative file name -#. translators: 1: WordPress hook name, 2: version number, 3: alternative hook -#. name -#: wp-includes/functions.php:3831 wp-includes/functions.php:3959 -#: wp-includes/functions.php:4082 -msgid "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." -msgstr "%1$s ist seit Version %2$s <strong>veraltet</strong>! Benutze stattdessen %3$s." +#: wp-includes/post.php:3303 +msgid "Could not update post in the database" +msgstr "Der Beitrag konnte nicht in der Datenbank aktualisiert werden" -#. translators: 1: PHP function name, 2: version number -#. translators: 1: PHP file name, 2: version number -#. translators: 1: WordPress hook name, 2: version number -#: wp-includes/functions.php:3834 wp-includes/functions.php:3962 -#: wp-includes/functions.php:4085 -msgid "%1$s is <strong>deprecated</strong> since version %2$s with no alternative available." -msgstr "%1$s ist seit Version %2$s <strong>veraltet</strong>. Es ist keine Alternative erhältlich." +#: wp-includes/post.php:3064 +msgid "Content, title, and excerpt are empty." +msgstr "Inhalt, Titel und Auszug sind leer." -#: wp-includes/functions.php:4621 -msgid "Select a city" -msgstr "Wähle eine Stadt" +#: wp-includes/post.php:237 +msgid "Trash <span class=\"count\">(%s)</span>" +msgid_plural "Trash <span class=\"count\">(%s)</span>" +msgstr[0] "Papierkorb <span class=\"count\">(%s)</span>" +msgstr[1] "Papierkorb <span class=\"count\">(%s)</span>" -#: wp-includes/general-template.php:274 -msgid "Log out" -msgstr "Abmelden" +#: wp-includes/post.php:230 +msgid "Private <span class=\"count\">(%s)</span>" +msgid_plural "Private <span class=\"count\">(%s)</span>" +msgstr[0] "Privat <span class=\"count\">(%s)</span>" +msgstr[1] "Private <span class=\"count\">(%s)</span>" -#. translators: 1: separator, 2: search phrase -#: wp-includes/general-template.php:1194 -msgid "Search Results %1$s %2$s" -msgstr "Suchergebnisse %1$s %2$s" +#: wp-includes/post.php:223 +msgid "Pending <span class=\"count\">(%s)</span>" +msgid_plural "Pending <span class=\"count\">(%s)</span>" +msgstr[0] "Ausstehend <span class=\"count\">(%s)</span>" +msgstr[1] "Ausstehend <span class=\"count\">(%s)</span>" -#: wp-includes/general-template.php:984 wp-includes/general-template.php:1199 -msgid "Page not found" -msgstr "Seite nicht gefunden" +#: wp-includes/post.php:216 +msgid "Draft <span class=\"count\">(%s)</span>" +msgid_plural "Drafts <span class=\"count\">(%s)</span>" +msgstr[0] "Entwurf <span class=\"count\">(%s)</span>" +msgstr[1] "Entwürfe <span class=\"count\">(%s)</span>" -#. translators: 1: month name, 2: 4-digit year -#: wp-includes/general-template.php:1758 wp-includes/media.php:3428 -msgid "%1$s %2$d" -msgstr "%1$s %2$d" +#: wp-includes/post.php:209 +msgid "Scheduled <span class=\"count\">(%s)</span>" +msgid_plural "Scheduled <span class=\"count\">(%s)</span>" +msgstr[0] "Geplant <span class=\"count\">(%s)</span>" +msgstr[1] "Geplante <span class=\"count\">(%s)</span>" -#. translators: Calendar caption: 1: month name, 2: 4-digit year -#: wp-includes/general-template.php:1983 -msgctxt "calendar caption" -msgid "%1$s %2$s" -msgstr "%1$s %2$s" +#: wp-includes/post.php:202 +msgid "Published <span class=\"count\">(%s)</span>" +msgid_plural "Published <span class=\"count\">(%s)</span>" +msgstr[0] "Veröffentlicht <span class=\"count\">(%s)</span>" +msgstr[1] "Veröffentlichte <span class=\"count\">(%s)</span>" -#. translators: Separator between blog name and feed type in feed links -#: wp-includes/general-template.php:2621 wp-includes/general-template.php:2663 -msgctxt "feed link" -msgid "»" -msgstr "»" +#: wp-includes/post.php:96 +msgid "Revision" +msgstr "Revision" -#. translators: 1: blog title, 2: separator (raquo) -#: wp-includes/general-template.php:2623 -msgid "%1$s %2$s Feed" -msgstr "%1$s %2$s Feed" +#. translators: %s: revision date +#. translators: %s: revision date with author avatar +#: wp-includes/post-template.php:1705 wp-includes/post-template.php:1757 +msgid "%s [Current Revision]" +msgstr "%s [Aktuelle Revision]" -#: wp-includes/general-template.php:3292 -msgid "« Previous" -msgstr "« Zurück" +#. translators: %s: revision date +#. translators: %s: revision date with author avatar +#: wp-includes/post-template.php:1703 wp-includes/post-template.php:1755 +msgid "%s [Autosave]" +msgstr "%s [Automatische Speicherung]" -#: wp-includes/general-template.php:3293 -msgid "Next »" -msgstr "Weiter »" +#: wp-includes/post-template.php:1335 +msgid "Home" +msgstr "Startseite" -#: wp-includes/class-http.php:984 wp-includes/class-wp-http-curl.php:232 -#: wp-includes/class-wp-http-curl.php:271 -msgid "Too many redirects." -msgstr "Zu viele Weiterleitungen." +#: wp-includes/post-template.php:867 +msgid "Previous page" +msgstr "Vorherige Seite" -#: wp-includes/link-template.php:2691 -msgid "Newer Comments »" -msgstr "Neuere Kommentare »" +#: wp-includes/post-template.php:866 +msgid "Next page" +msgstr "Nächste Seite" -#: wp-includes/link-template.php:2735 -msgid "« Older Comments" -msgstr "« Ältere Kommentare" +#: wp-includes/post-template.php:385 +msgid "There is no excerpt because this is a protected post." +msgstr "Es gibt keine Kurzfassung, da dies ein geschützter Beitrag ist." -#. translators: weekday -#: wp-includes/class-wp-locale.php:131 wp-includes/class-wp-locale.php:140 -#: wp-includes/class-wp-locale.php:149 -msgid "Sunday" -msgstr "Sonntag" +#: wp-includes/post-template.php:145 +msgid "Private: %s" +msgstr "Privat: %s" -#. translators: weekday -#: wp-includes/class-wp-locale.php:132 wp-includes/class-wp-locale.php:141 -#: wp-includes/class-wp-locale.php:150 -msgid "Monday" -msgstr "Montag" +#: wp-includes/post-template.php:130 +msgid "Protected: %s" +msgstr "Geschützt: %s" -#. translators: weekday -#: wp-includes/class-wp-locale.php:133 wp-includes/class-wp-locale.php:142 -#: wp-includes/class-wp-locale.php:151 -msgid "Tuesday" -msgstr "Dienstag" +#: wp-includes/pluggable.php:1827 +msgid "[%s] Your username and password info" +msgstr "[%s] Dein Benutzername und Passwort" -#. translators: weekday -#: wp-includes/class-wp-locale.php:134 wp-includes/class-wp-locale.php:143 -#: wp-includes/class-wp-locale.php:152 -msgid "Wednesday" -msgstr "Mittwoch" +#: wp-includes/pluggable.php:1793 +msgid "[%s] New User Registration" +msgstr "[%s] Registrierung eines neuen Benutzers" -#. translators: weekday -#: wp-includes/class-wp-locale.php:135 wp-includes/class-wp-locale.php:144 -#: wp-includes/class-wp-locale.php:153 -msgid "Thursday" -msgstr "Donnerstag" +#: wp-includes/pluggable.php:1790 wp-includes/pluggable.php:1821 +#: wp-login.php:329 +msgid "Username: %s" +msgstr "Benutzername: %s" -#. translators: weekday -#: wp-includes/class-wp-locale.php:136 wp-includes/class-wp-locale.php:145 -#: wp-includes/class-wp-locale.php:154 -msgid "Friday" -msgstr "Freitag" +#. translators: Comment moderation notification email subject. 1: Site name, 2: +#. Post title +#: wp-includes/pluggable.php:1678 +msgid "[%1$s] Please moderate: \"%2$s\"" +msgstr "[%1$s] Bitte moderiere: \"%2$s\"" -#. translators: weekday -#: wp-includes/class-wp-locale.php:137 wp-includes/class-wp-locale.php:146 -#: wp-includes/class-wp-locale.php:155 -msgid "Saturday" -msgstr "Samstag" +#. translators: Comment moderation. 1: Number of comments awaiting approval +#: wp-includes/pluggable.php:1673 +msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" +msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" +msgstr[0] "Zurzeit wartet %s Kommentar auf Freigabe. Bitte gehe zur Moderationsansicht:" +msgstr[1] "Zurzeit warten %s Kommentare auf Freigabe. Bitte gehe zur Moderationsansicht:" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:149 -msgid "Sun" -msgstr "So" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1659 +msgid "Approve it: %s" +msgstr "Genehmige %s" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:150 -msgid "Mon" -msgstr "Mo" +#: wp-includes/pluggable.php:1641 +msgid "Pingback excerpt: " +msgstr "Pingback (Kurzfassung):" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:151 -msgid "Tue" -msgstr "Di" +#: wp-includes/pluggable.php:1631 +msgid "Trackback excerpt: " +msgstr "Trackback (Kurzfassung):" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:152 -msgid "Wed" -msgstr "Mi" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1506 wp-includes/pluggable.php:1670 +msgid "Spam it: %s" +msgstr "Spam: %s" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:153 -msgid "Thu" -msgstr "Do" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1504 wp-includes/pluggable.php:1666 +msgid "Delete it: %s" +msgstr "Lösche %s" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:154 -msgid "Fri" -msgstr "Fr" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1502 wp-includes/pluggable.php:1663 +msgid "Trash it: %s" +msgstr "In den Papierkorb legen: %s" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:155 -msgid "Sat" -msgstr "Sa" +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1483 +msgid "[%1$s] Pingback: \"%2$s\"" +msgstr "[%1$s] Pingback: \"%2$s\"" -#. translators: month name -#: wp-includes/class-wp-locale.php:158 wp-includes/class-wp-locale.php:186 -msgid "January" -msgstr "Januar" +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1472 +msgid "[%1$s] Trackback: \"%2$s\"" +msgstr "[%1$s] Trackback: \"%2$s\"" -#. translators: month name -#: wp-includes/class-wp-locale.php:159 wp-includes/class-wp-locale.php:187 -msgid "February" -msgstr "Februar" +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1494 +msgid "[%1$s] Comment: \"%2$s\"" +msgstr "[%1$s] Kommentar: \"%2$s\"" -#. translators: month name -#: wp-includes/class-wp-locale.php:160 wp-includes/class-wp-locale.php:188 -msgid "March" -msgstr "März" +#: wp-includes/ms-load.php:483 +msgid "What do I do now?" +msgstr "Was mache ich jetzt?" -#. translators: month name -#: wp-includes/class-wp-locale.php:161 wp-includes/class-wp-locale.php:189 -msgid "April" -msgstr "April" +#. translators: New user notification email subject. 1: Network name, 2: New +#. user login +#: wp-includes/ms-functions.php:1660 +msgid "New %1$s User: %2$s" +msgstr "Neuer %1$s Benutzer: %2$s" -#. translators: month name -#: wp-includes/class-wp-locale.php:162 wp-includes/class-wp-locale.php:190 -msgid "May" -msgstr "Mai" +#: wp-includes/ms-functions.php:1307 +msgid "New User Registration: %s" +msgstr "Neue Benutzerregistrierung: %s" -#. translators: month name -#: wp-includes/class-wp-locale.php:163 wp-includes/class-wp-locale.php:191 -msgid "June" -msgstr "Juni" +#: wp-includes/ms-functions.php:1049 +msgid "That username is already activated." +msgstr "Dieser Benutzername wurde bereits aktiviert." -#. translators: month name -#: wp-includes/class-wp-locale.php:164 wp-includes/class-wp-locale.php:192 -msgid "July" -msgstr "Juli" +#: wp-includes/ms-functions.php:1041 +msgid "Could not create user" +msgstr "Der Benutzer konnte nicht erstellt werden" -#. translators: month name -#: wp-includes/class-wp-locale.php:165 wp-includes/class-wp-locale.php:193 -msgid "August" -msgstr "August" +#: wp-includes/ms-functions.php:1021 +msgid "Invalid activation key." +msgstr "Ungültiger Aktivierungsschlüssel." -#. translators: month name -#: wp-includes/class-wp-locale.php:166 wp-includes/class-wp-locale.php:194 -msgid "September" -msgstr "September" +#: wp-includes/ms-functions.php:498 +msgid "That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing." +msgstr "Diese E-Mail-Adresse wurde bereits verwendet. Bitte schau in deinem Postfach nach der Aktivierungsmail. Falls du keine bekommen oder die E-Mail bereits gelöscht hast, kannst du dich in ein paar Tagen erneut mit dieser E-Mail-Adresse registrieren." -#. translators: month name -#: wp-includes/class-wp-locale.php:167 wp-includes/class-wp-locale.php:195 -msgid "October" -msgstr "Oktober" +#: wp-includes/ms-functions.php:488 +msgid "That username is currently reserved but may be available in a couple of days." +msgstr "Dieser Benutzername ist derzeit reserviert, ist aber möglicherweise in den nächsten Tagen verfügbar." -#. translators: month name -#: wp-includes/class-wp-locale.php:168 wp-includes/class-wp-locale.php:196 -msgid "November" -msgstr "November" +#: wp-includes/ms-functions.php:476 wp-includes/user.php:1536 +msgid "Sorry, that email address is already used!" +msgstr "Diese E-Mail-Adresse wird bereits verwendet!" -#. translators: month name -#: wp-includes/class-wp-locale.php:169 wp-includes/class-wp-locale.php:197 -msgid "December" -msgstr "Dezember" +#: wp-includes/ms-functions.php:472 wp-includes/user.php:1462 +msgid "Sorry, that username already exists!" +msgstr "Der Benutzername existiert bereits!" -#: wp-includes/class-wp-locale.php:200 -msgid "am" -msgstr "am" +#: wp-includes/ms-functions.php:466 +msgid "Sorry, that email address is not allowed!" +msgstr "Diese E-Mail-Adresse ist nicht erlaubt!" -#: wp-includes/class-wp-locale.php:201 -msgid "pm" -msgstr "pm" +#: wp-includes/ms-functions.php:460 +msgid "Sorry, usernames must have letters too!" +msgstr "Benutzernamen müssen auch Buchstaben enthalten!" -#: wp-includes/class-wp-locale.php:202 -msgid "AM" -msgstr "AM" +#: wp-includes/ms-functions.php:448 +msgid "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." +msgstr "Du kannst dich leider nicht mit dieser E-Mail-Adresse registrieren, da dein E-Mail-Anbieter einen Teil unserer E-Mails blockiert. Nutze bitte eine E-Mail-Adresse eines anderen E-Mail-Anbieters." + +#: wp-includes/ms-functions.php:242 +msgid "That user does not exist." +msgstr "Dieser Benutzer existiert nicht." #: wp-includes/class-wp-locale.php:203 msgid "PM" msgstr "PM" -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1504 wp-includes/pluggable.php:1666 -msgid "Delete it: %s" -msgstr "Lösche %s" - -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1506 wp-includes/pluggable.php:1670 -msgid "Spam it: %s" -msgstr "Spam: %s" - -#: wp-includes/pluggable.php:1631 -msgid "Trackback excerpt: " -msgstr "Trackback (Kurzfassung):" +#: wp-includes/class-wp-locale.php:202 +msgid "AM" +msgstr "AM" -#: wp-includes/pluggable.php:1641 -msgid "Pingback excerpt: " -msgstr "Pingback (Kurzfassung):" +#: wp-includes/class-wp-locale.php:201 +msgid "pm" +msgstr "pm" -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1659 -msgid "Approve it: %s" -msgstr "Genehmige %s" +#: wp-includes/class-wp-locale.php:200 +msgid "am" +msgstr "am" -#. translators: Comment moderation. 1: Number of comments awaiting approval -#: wp-includes/pluggable.php:1673 -msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" -msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" -msgstr[0] "Zurzeit wartet %s Kommentar auf Freigabe. Bitte gehe zur Moderationsansicht:" -msgstr[1] "Zurzeit warten %s Kommentare auf Freigabe. Bitte gehe zur Moderationsansicht:" +#: wp-includes/link-template.php:2735 +msgid "« Older Comments" +msgstr "« Ältere Kommentare" -#: wp-includes/pluggable.php:1793 -msgid "[%s] New User Registration" -msgstr "[%s] Registrierung eines neuen Benutzers" +#: wp-includes/link-template.php:2691 +msgid "Newer Comments »" +msgstr "Neuere Kommentare »" -#: wp-includes/pluggable.php:1827 -msgid "[%s] Your username and password info" -msgstr "[%s] Dein Benutzername und Passwort" +#: wp-includes/deprecated.php:2671 +msgid "Last Post" +msgstr "Letzter Beitrag" -#: wp-includes/post-template.php:130 -msgid "Protected: %s" -msgstr "Geschützt: %s" +#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 +msgid "Next Post" +msgstr "Nächster Beitrag" -#: wp-includes/post-template.php:145 -msgid "Private: %s" -msgstr "Privat: %s" +#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 +msgid "Previous Post" +msgstr "Vorheriger Beitrag" -#: wp-includes/post-template.php:866 -msgid "Next page" -msgstr "Nächste Seite" +#: wp-includes/link-template.php:699 +msgid "Comments Feed" +msgstr "RSS-Kommentare" -#: wp-includes/post-template.php:867 -msgid "Previous page" -msgstr "Vorherige Seite" +#: wp-includes/class-wp-editor.php:1249 +msgid "Insert Page Break tag" +msgstr "Tag für Seitenumbruch einfügen" -#: wp-includes/post.php:3064 -msgid "Content, title, and excerpt are empty." -msgstr "Inhalt, Titel und Auszug sind leer." +#: wp-includes/class-wp-customize-manager.php:4078 +#: wp-includes/class-wp-customize-manager.php:4119 +msgid "Fill Screen" +msgstr "Bildschirmfüllend" -#: wp-includes/script-loader.php:92 -msgid "Close all open tags" -msgstr "Alle offenen Tags schließen" +#: wp-includes/class-wp-editor.php:1122 +msgid "Remove link" +msgstr "Link entfernen" -#: wp-includes/script-loader.php:93 -msgid "close tags" -msgstr "Tags schließen" +#: wp-includes/class-wp-editor.php:1126 wp-includes/script-loader.php:104 +msgid "Insert link" +msgstr "Link einfügen" -#: wp-includes/script-loader.php:94 -msgid "Enter the URL" -msgstr "Gib eine URL an" +#: wp-includes/class-wp-editor.php:1157 +msgid "Check Spelling" +msgstr "Rechtschreibprüfung" -#: wp-includes/script-loader.php:95 -msgid "Enter the URL of the image" -msgstr "Gib die URL des Bildes an" +#: wp-includes/class-wp-editor.php:1042 +msgid "Select all" +msgstr "Alle auswählen" -#: wp-includes/script-loader.php:96 -msgid "Enter a description of the image" -msgstr "Gib eine Beschreibung des Bildes an" +#: wp-includes/class-wp-editor.php:1275 +msgid "Action" +msgstr "Aktion" -#: wp-includes/comment.php:241 -msgid "Unapproved" -msgstr "Nicht genehmigt" +#: wp-includes/class-wp-editor.php:1274 +msgid "Letter" +msgstr "Zeichen" -#: wp-includes/comment.php:2095 -msgid "Could not update comment status" -msgstr "Der Kommentarstatus konnte nicht aktualisiert werden" +#: wp-includes/media-template.php:1011 +#: wp-includes/widgets/class-wp-widget-media-image.php:131 +msgid "Link Rel" +msgstr "Link-Beziehung" -#: wp-includes/cron.php:406 -msgid "Twice Daily" -msgstr "Zweimal täglich" +#: wp-includes/class-wp-editor.php:1085 +msgid "Source" +msgstr "Quelle" -#: wp-includes/cron.php:407 -msgid "Once Daily" -msgstr "Einmal täglich" +#: wp-includes/media.php:3550 +msgid "Edit Gallery" +msgstr "Galerie bearbeiten" -#: wp-includes/widgets/class-wp-widget-links.php:142 -#: wp-includes/widgets/class-wp-widget-pages.php:135 -msgid "Sort by:" -msgstr "Sortiert nach:" +#: wp-includes/customize/class-wp-customize-background-position-control.php:57 +msgid "Bottom Right" +msgstr "Unten rechts" -#: wp-includes/widgets/class-wp-widget-pages.php:137 -msgid "Page title" -msgstr "Seitentitel" +#: wp-includes/customize/class-wp-customize-background-position-control.php:55 +msgid "Bottom Left" +msgstr "Unten links" -#: wp-includes/widgets/class-wp-widget-pages.php:138 -msgid "Page order" -msgstr "Reihenfolge der Seiten" +#: wp-includes/customize/class-wp-customize-background-position-control.php:47 +msgid "Top Right" +msgstr "Oben rechts" -#: wp-includes/widgets/class-wp-widget-pages.php:139 -msgid "Page ID" -msgstr "Seiten-ID" +#: wp-includes/customize/class-wp-customize-background-position-control.php:45 +msgid "Top Left" +msgstr "Oben links" -#: wp-includes/widgets/class-wp-widget-pages.php:146 -msgid "Page IDs, separated by commas." -msgstr "Seiten-IDs, durch Kommas getrennt." +#: wp-includes/script-loader.php:369 +msgid "Mute" +msgstr "Stumm" -#: wp-includes/widgets/class-wp-widget-links.php:27 -msgid "Your blogroll" -msgstr "Deine Blogroll" +#: wp-includes/class-wp-editor.php:1117 wp-includes/script-loader.php:352 +msgid "Fullscreen" +msgstr "Vollbild" -#: wp-includes/widgets/class-wp-widget-links.php:152 -msgid "Show Link Image" -msgstr "Zeige Link-Grafik" +#: wp-includes/admin-bar.php:813 +msgid "Background" +msgstr "Hintergrund" -#: wp-includes/widgets/class-wp-widget-links.php:154 -msgid "Show Link Name" -msgstr "Zeige Link-Namen" +#: wp-includes/media-template.php:848 wp-includes/media-template.php:914 +msgid "Align" +msgstr "Ausrichtung" -#: wp-includes/widgets/class-wp-widget-links.php:156 -msgid "Show Link Description" -msgstr "Zeige Link-Beschreibung" +#: wp-includes/media-template.php:1097 wp-includes/media-template.php:1186 +#: wp-includes/widgets/class-wp-widget-media-audio.php:72 +#: wp-includes/widgets/class-wp-widget-media-video.php:74 +msgid "Loop" +msgstr "Schleife" -#: wp-includes/widgets/class-wp-widget-links.php:158 -msgid "Show Link Rating" -msgstr "Zeige Link-Bewertung" +#: wp-includes/class-wp-editor.php:1087 +msgid "Constrain proportions" +msgstr "Proportionen beschränken" -#: wp-includes/widgets/class-wp-widget-archives.php:82 -msgid "Select Month" -msgstr "Wähle den Monat" +#: wp-includes/class-wp-editor.php:1083 +msgid "General" +msgstr "Allgemein" -#: wp-includes/widgets/class-wp-widget-calendar.php:41 -msgid "Calendar" -msgstr "Kalender" +#: wp-includes/class-wp-editor.php:1135 +msgid "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?" +msgstr "Die eingegebene URL scheint ein externer Link zu sein. Soll \"http://\" vorangestellt werden?" -#: wp-includes/class-wp-editor.php:1259 -#: wp-includes/widgets/class-wp-widget-text.php:43 -msgid "Text" -msgstr "Text" +#: wp-includes/class-wp-editor.php:1133 +msgid "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?" +msgstr "Die eingegebene URL scheint eine E-Mail-Adresse zu sein. Soll \"mailto:\" vorangestellt werden?" -#: wp-includes/widgets/class-wp-widget-categories.php:71 -msgid "Select Category" -msgstr "Kategorie auswählen" +#: wp-includes/class-wp-editor.php:1206 +#: wp-includes/customize/class-wp-customize-background-position-control.php:56 +msgid "Bottom" +msgstr "Unten" -#: wp-includes/widgets/class-wp-widget-categories.php:170 -msgid "Show hierarchy" -msgstr "Zeige die Hierarchie an" +#: wp-includes/class-wp-editor.php:1205 +msgid "Middle" +msgstr "Mitte" -#. translators: comments widget: 1: comment author, 2: post link -#: wp-includes/widgets/class-wp-widget-recent-comments.php:116 -msgctxt "widgets" -msgid "%1$s on %2$s" -msgstr "%1$s bei %2$s" +#: wp-includes/class-wp-editor.php:1204 +#: wp-includes/customize/class-wp-customize-background-position-control.php:46 +msgid "Top" +msgstr "Oben" -#: wp-includes/widgets.php:1351 -msgid "Enter the RSS feed URL here:" -msgstr "Gib die URL des RSS-Feeds hier ein:" +#: wp-includes/class-wp-editor.php:1119 +msgid "Horizontal space" +msgstr "Horizontaler Abstand" -#: wp-includes/widgets.php:1354 -msgid "Give the feed a title (optional):" -msgstr "Gib dem Feed einen Titel (optional):" +#: wp-includes/class-wp-editor.php:1088 +msgid "Vertical space" +msgstr "Vertikaler Abstand" -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:30 -msgid "Tag Cloud" -msgstr "Schlagwörter-Wolke" +#: wp-includes/class-wp-editor.php:1091 +msgid "Dimensions" +msgstr "Größe" -#: wp-includes/deprecated.php:963 -msgid "Last updated" -msgstr "Zuletzt aktualisiert" +#: wp-includes/class-wp-editor.php:1086 +msgid "Border" +msgstr "Rand" -#. translators: Comments feed title. 1: Post title -#: wp-includes/feed-rss2-comments.php:38 -msgid "Comments on: %s" -msgstr "Kommentare zu: %s" +#: wp-includes/class-wp-editor.php:1089 +msgid "Image description" +msgstr "Bildbeschreibung" -#. translators: Comments feed title. 1: Site name, 2: Search query -#: wp-includes/feed-atom-comments.php:36 wp-includes/feed-rss2-comments.php:41 -msgid "Comments for %1$s searching on %2$s" -msgstr "Kommentare für %1$s in %2$s gesucht" +#: wp-includes/class-wp-editor.php:999 +msgid "New document" +msgstr "Neues Dokument" -#. translators: Comments feed title. 1: Site name -#: wp-includes/feed-atom-comments.php:39 wp-includes/feed-rss2-comments.php:44 -msgid "Comments for %s" -msgstr "Kommentare für %s" +#: wp-includes/class-wp-editor.php:1041 +msgid "Paste" +msgstr "Einfügen" -#. translators: Individual comment title. 1: Post title, 2: Comment author name -#: wp-includes/feed-atom-comments.php:81 wp-includes/feed-rss2-comments.php:80 -msgid "Comment on %1$s by %2$s" -msgstr "Kommentar zu %1$s von %2$s" +#: wp-includes/class-wp-editor.php:1040 +msgid "Copy" +msgstr "Kopieren" -#. translators: Comment author title. 1: Comment author name -#: wp-includes/feed-atom-comments.php:84 wp-includes/feed-rss2-comments.php:83 -msgid "By: %s" -msgstr "Von: %s" +#: wp-includes/class-wp-editor.php:1039 +msgid "Cut" +msgstr "Ausschneiden" -#: wp-includes/post.php:202 -msgid "Published <span class=\"count\">(%s)</span>" -msgid_plural "Published <span class=\"count\">(%s)</span>" -msgstr[0] "Veröffentlicht <span class=\"count\">(%s)</span>" -msgstr[1] "Veröffentlichte <span class=\"count\">(%s)</span>" +#: wp-includes/class-wp-editor.php:1023 +msgid "Superscript" +msgstr "Hochgestellt" -#: wp-includes/post.php:209 -msgid "Scheduled <span class=\"count\">(%s)</span>" -msgid_plural "Scheduled <span class=\"count\">(%s)</span>" -msgstr[0] "Geplant <span class=\"count\">(%s)</span>" -msgstr[1] "Geplante <span class=\"count\">(%s)</span>" +#: wp-includes/class-wp-editor.php:1022 +msgid "Subscript" +msgstr "Tiefgestellt" -#: wp-includes/post.php:216 -msgid "Draft <span class=\"count\">(%s)</span>" -msgid_plural "Drafts <span class=\"count\">(%s)</span>" -msgstr[0] "Entwurf <span class=\"count\">(%s)</span>" -msgstr[1] "Entwürfe <span class=\"count\">(%s)</span>" +#: wp-includes/class-wp-editor.php:1021 +msgid "Strikethrough" +msgstr "Durchgestrichen" -#: wp-includes/post.php:230 -msgid "Private <span class=\"count\">(%s)</span>" -msgid_plural "Private <span class=\"count\">(%s)</span>" -msgstr[0] "Privat <span class=\"count\">(%s)</span>" -msgstr[1] "Private <span class=\"count\">(%s)</span>" +#: wp-includes/class-wp-editor.php:1020 +msgid "Underline" +msgstr "Unterstreichen" -#: wp-includes/functions.php:4666 wp-includes/functions.php:4670 -msgid "UTC" -msgstr "UTC" +#: wp-includes/class-wp-editor.php:1026 wp-includes/script-loader.php:102 +msgid "Italic" +msgstr "Kursiv" -#: wp-includes/class-wp-editor.php:1083 -msgid "General" -msgstr "Allgemein" +#: wp-includes/class-wp-editor.php:1025 wp-includes/script-loader.php:100 +msgid "Bold" +msgstr "Fett" -#: wp-includes/user.php:2010 -msgid "AIM" -msgstr "AIM" +#: wp-includes/class-wp-editor.php:1027 wp-includes/script-loader.php:118 +msgid "Code" +msgstr "Code" -#: wp-includes/user.php:2011 -msgid "Yahoo IM" -msgstr "Yahoo IM" +#: wp-includes/class-wp-editor.php:1013 wp-includes/script-loader.php:105 +msgid "Blockquote" +msgstr "Zitat" -#: wp-includes/user.php:2012 -msgid "Jabber / Google Talk" -msgstr "Jabber / Google Talk" +#: wp-includes/class-wp-editor.php:1008 +msgid "Heading 6" +msgstr "Überschrift 6" -#: wp-login.php:104 -msgid "Powered by WordPress" -msgstr "Powered by WordPress" +#: wp-includes/class-wp-editor.php:1007 +msgid "Heading 5" +msgstr "Überschrift 5" -#: wp-includes/user.php:2114 -msgid "Password reset is not allowed for this user" -msgstr "Für diesen Benutzer ist es nicht erlaubt, das Passwort zurückzusetzen." +#: wp-includes/class-wp-editor.php:1006 +msgid "Heading 4" +msgstr "Überschrift 4" -#: wp-includes/pluggable.php:1790 wp-includes/pluggable.php:1821 -#: wp-login.php:329 -msgid "Username: %s" -msgstr "Benutzername: %s" +#: wp-includes/class-wp-editor.php:1005 +msgid "Heading 3" +msgstr "Überschrift 3" -#. translators: Password reset email subject. 1: Site name -#: wp-login.php:345 -msgid "[%s] Password Reset" -msgstr "[%s] Passwort zurücksetzen" +#: wp-includes/class-wp-editor.php:1004 +msgid "Heading 2" +msgstr "Überschrift 2" -#: wp-login.php:375 -msgid "The email could not be sent." -msgstr "Die E-Mail konnte nicht gesendet werden." +#: wp-includes/class-wp-editor.php:1003 +msgid "Heading 1" +msgstr "Überschrift 1" -#: wp-includes/user.php:2169 wp-includes/user.php:2172 -#: wp-includes/user.php:2176 wp-includes/user.php:2201 -#: wp-includes/user.php:2210 wp-includes/user.php:2214 -#: wp-includes/user.php:2231 -msgid "Invalid key" -msgstr "Ungültiger Schlüssel" +#: wp-includes/class-wp-editor.php:1012 +msgid "Paragraph" +msgstr "Absatz" -#: wp-login.php:549 -msgid "Get New Password" -msgstr "Neues Passwort" +#: wp-includes/class-wp-editor.php:1097 +msgid "Language" +msgstr "Sprache" -#: wp-includes/general-template.php:272 wp-login.php:553 wp-login.php:616 -#: wp-login.php:666 wp-login.php:747 -msgid "Log in" -msgstr "Anmelden" +#: wp-includes/class-wp-editor.php:1072 +msgid "Document properties" +msgstr "Dokumenteigenschaften" -#: wp-includes/general-template.php:539 wp-login.php:556 wp-login.php:669 -#: wp-login.php:743 wp-login.php:936 -msgid "Register" -msgstr "Registrieren" +#: wp-includes/class-wp-editor.php:1233 wp-includes/script-loader.php:463 +#: wp-includes/script-loader.php:574 wp-includes/script-loader.php:583 +#: wp-includes/script-loader.php:763 wp-includes/theme.php:2974 +msgid "The changes you made will be lost if you navigate away from this page." +msgstr "Beim Verlassen der Seite werden deine Änderungen verworfen." -#: wp-login.php:721 -msgid "Registration Form" -msgstr "Registrierungsformular" +#: wp-includes/class-wp-editor.php:1171 +msgid "Row" +msgstr "Zeile" -#: wp-includes/user.php:144 wp-includes/user.php:170 wp-includes/user.php:222 -#: wp-includes/user.php:242 wp-login.php:748 wp-login.php:942 -msgid "Lost your password?" -msgstr "Passwort vergessen?" +#: wp-includes/class-wp-editor.php:1165 +msgid "Delete table" +msgstr "Tabelle löschen" -#: wp-login.php:860 -msgid "You are now logged out." -msgstr "Du hast dich erfolgreich abgemeldet." +#: wp-includes/class-wp-editor.php:1190 +msgid "Copy table row" +msgstr "Zeile kopieren" -#: wp-login.php:862 -msgid "User registration is currently not allowed." -msgstr "Zurzeit ist die Benutzer-Registrierung nicht erlaubt." +#: wp-includes/class-wp-editor.php:1189 +msgid "Cut table row" +msgstr "Zeile ausschneiden" -#: wp-mail.php:60 -msgid "There doesn’t seem to be any new mail." -msgstr "Da scheint keine neue E-Mail zu sein." +#: wp-includes/class-wp-editor.php:1186 +msgid "Paste table row after" +msgstr "Zeile mit Inhalt danach einfügen" -#. translators: Post author email address -#: wp-mail.php:128 -msgid "Author is %s" -msgstr "Der Autor ist %s" +#: wp-includes/class-wp-editor.php:1185 +msgid "Paste table row before" +msgstr "Zeile mit Inhalt davor einfügen" -#. translators: %s: POP3 error -#: wp-mail.php:238 -msgid "Oops: %s" -msgstr "Oops: %s" +#: wp-includes/class-wp-editor.php:1166 +msgid "Table properties" +msgstr "Tabelleneigenschaften" -#: wp-includes/class-wp-theme.php:801 -msgid "Gray" -msgstr "Grau" +#: wp-includes/class-wp-editor.php:1168 +msgid "Table cell properties" +msgstr "Zelleneigenschaften" -#: wp-includes/post.php:96 -msgid "Revision" -msgstr "Revision" +#: wp-includes/class-wp-editor.php:1167 +msgid "Table row properties" +msgstr "Zeileneigenschaften" -#: wp-includes/comment-template.php:2249 -msgid "Cancel reply" -msgstr "Antworten abbrechen" +#: wp-includes/class-wp-editor.php:1191 +msgid "Merge table cells" +msgstr "Zellen verbinden" -#: wp-includes/comment-template.php:2250 -msgid "Post Comment" -msgstr "Kommentar abschicken" +#: wp-includes/class-wp-editor.php:1184 +msgid "Insert column after" +msgstr "Spalte danach einfügen" -#. translators: %s: site name -#: wp-includes/functions.php:2586 -msgid "You are attempting to log out of %s" -msgstr "Du hast vor, dich von der Website %s abzumelden" +#: wp-includes/class-wp-editor.php:1183 +msgid "Insert column before" +msgstr "Spalte davor einfügen" + +#: wp-includes/class-wp-editor.php:1187 +msgid "Delete row" +msgstr "Zeile löschen" -#. translators: 1: PHP function name, 2: version number, 3: optional message -#. regarding the change -#: wp-includes/functions.php:4023 -msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s" -msgstr "%1$s wurde mit einem Parameter oder Argument aufgerufen, der seit Version %2$s <strong>veraltet ist</strong>! %3$s" +#: wp-includes/class-wp-editor.php:1182 +msgid "Insert row after" +msgstr "Zeile darunter einfügen" -#. translators: 1: PHP function name, 2: version number -#: wp-includes/functions.php:4026 -msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available." -msgstr "%1$s wurde mit einem Parameter oder Argument aufgerufen, der seit Version %2$s <strong>veraltet ist</strong>! Es gibt jedoch keine alternative Möglichkeit." +#: wp-includes/class-wp-editor.php:1181 +msgid "Insert row before" +msgstr "Zeile darüber einfügen" -#: wp-includes/widgets/class-wp-widget-text.php:374 -msgid "Automatically add paragraphs" -msgstr "Absätze automatisch hinzufügen" +#: wp-includes/class-wp-editor.php:1121 wp-includes/class-wp-editor.php:1127 +#: wp-includes/class-wp-editor.php:1686 wp-includes/script-loader.php:428 +msgid "Insert/edit link" +msgstr "Link einfügen/ändern" -#: wp-signup.php:173 -msgid "Privacy:" -msgstr "Datenschutz:" +#: wp-includes/class-wp-editor.php:1082 +msgid "Insert/edit image" +msgstr "Bild einfügen/ändern" -#: wp-signup.php:233 -msgid "(Must be at least 4 characters, letters and numbers only.)" -msgstr "(Es müssen mindestens 4 Zeichen sein, bitte nur Buchstaben und Zahlen.)" +#: wp-includes/class-wp-editor.php:1115 +msgid "Print" +msgstr "Drucken" -#: wp-signup.php:236 -msgid "Email Address:" -msgstr "E-Mail-Addresse:" +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:155 +msgid "Sat" +msgstr "Sa" -#: wp-signup.php:310 -msgid "There was a problem, please correct the form below and try again." -msgstr "Es trat ein Fehler auf. Bitte korrigiere die Eingaben und versuche es noch einmal." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:154 +msgid "Fri" +msgstr "Fr" -#. translators: %s: name of the network -#: wp-signup.php:535 -msgid "Get your own %s account in seconds" -msgstr "Registriere dich in nur wenigen Sekunden bei %s." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:153 +msgid "Thu" +msgstr "Do" -#. translators: %s: username -#: wp-signup.php:605 -msgid "%s is your new username" -msgstr "%s ist dein neuer Benutzername" +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:152 +msgid "Wed" +msgstr "Mi" -#: wp-signup.php:609 -msgid "If you do not activate your username within two days, you will have to sign up again." -msgstr "Wenn du deinen Benutzernamen nicht innerhalb von zwei Tagen aktivierst, musst du dich erneut registrieren." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:151 +msgid "Tue" +msgstr "Di" -#: wp-signup.php:673 -msgid "Signup" -msgstr "Registrieren" +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:150 +msgid "Mon" +msgstr "Mo" -#: wp-signup.php:850 -msgid "Registration has been disabled." -msgstr "Die Registrierung wurde deaktiviert." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:149 +msgid "Sun" +msgstr "So" -#: wp-signup.php:862 -msgid "User registration has been disabled." -msgstr "Die Benutzerregistrierung wurde deaktiviert." +#. translators: weekday +#: wp-includes/class-wp-locale.php:137 wp-includes/class-wp-locale.php:146 +#: wp-includes/class-wp-locale.php:155 +msgid "Saturday" +msgstr "Samstag" -#: wp-includes/ms-functions.php:242 -msgid "That user does not exist." -msgstr "Dieser Benutzer existiert nicht." +#. translators: weekday +#: wp-includes/class-wp-locale.php:136 wp-includes/class-wp-locale.php:145 +#: wp-includes/class-wp-locale.php:154 +msgid "Friday" +msgstr "Freitag" -#: wp-includes/ms-functions.php:488 -msgid "That username is currently reserved but may be available in a couple of days." -msgstr "Dieser Benutzername ist derzeit reserviert, ist aber möglicherweise in den nächsten Tagen verfügbar." +#. translators: weekday +#: wp-includes/class-wp-locale.php:135 wp-includes/class-wp-locale.php:144 +#: wp-includes/class-wp-locale.php:153 +msgid "Thursday" +msgstr "Donnerstag" -#: wp-includes/ms-functions.php:1021 -msgid "Invalid activation key." -msgstr "Ungültiger Aktivierungsschlüssel." +#. translators: weekday +#: wp-includes/class-wp-locale.php:134 wp-includes/class-wp-locale.php:143 +#: wp-includes/class-wp-locale.php:152 +msgid "Wednesday" +msgstr "Mittwoch" -#: wp-includes/ms-functions.php:1041 -msgid "Could not create user" -msgstr "Der Benutzer konnte nicht erstellt werden" +#. translators: weekday +#: wp-includes/class-wp-locale.php:133 wp-includes/class-wp-locale.php:142 +#: wp-includes/class-wp-locale.php:151 +msgid "Tuesday" +msgstr "Dienstag" -#: wp-includes/ms-functions.php:1049 -msgid "That username is already activated." -msgstr "Dieser Benutzername wurde bereits aktiviert." +#. translators: weekday +#: wp-includes/class-wp-locale.php:132 wp-includes/class-wp-locale.php:141 +#: wp-includes/class-wp-locale.php:150 +msgid "Monday" +msgstr "Montag" -#: wp-includes/ms-functions.php:1307 -msgid "New User Registration: %s" -msgstr "Neue Benutzerregistrierung: %s" +#. translators: weekday +#: wp-includes/class-wp-locale.php:131 wp-includes/class-wp-locale.php:140 +#: wp-includes/class-wp-locale.php:149 +msgid "Sunday" +msgstr "Sonntag" -#. translators: New user notification email subject. 1: Network name, 2: New -#. user login -#: wp-includes/ms-functions.php:1660 -msgid "New %1$s User: %2$s" -msgstr "Neuer %1$s Benutzer: %2$s" +#. translators: month name +#: wp-includes/class-wp-locale.php:169 wp-includes/class-wp-locale.php:197 +msgid "December" +msgstr "Dezember" -#: wp-includes/script-loader.php:556 -msgid "Publish on:" -msgstr "Veröffentlichen am:" +#. translators: month name +#: wp-includes/class-wp-locale.php:168 wp-includes/class-wp-locale.php:196 +msgid "November" +msgstr "November" -#: wp-includes/script-loader.php:558 -msgid "Published on:" -msgstr "Veröffentlicht am:" +#. translators: month name +#: wp-includes/class-wp-locale.php:167 wp-includes/class-wp-locale.php:195 +msgid "October" +msgstr "Oktober" -#: wp-includes/script-loader.php:753 -msgid "Saving..." -msgstr "Speichere …" +#. translators: month name +#: wp-includes/class-wp-locale.php:166 wp-includes/class-wp-locale.php:194 +msgid "September" +msgstr "September" -#: wp-includes/class-wp-editor.php:1191 -msgid "Merge table cells" -msgstr "Zellen verbinden" +#. translators: month name +#: wp-includes/class-wp-locale.php:165 wp-includes/class-wp-locale.php:193 +msgid "August" +msgstr "August" -#. translators: Time difference between two dates, in days. 1: Number of days -#: wp-includes/formatting.php:3240 -msgid "%s day" -msgid_plural "%s days" -msgstr[0] "%s Tag" -msgstr[1] "%s Tagen" +#. translators: month name +#: wp-includes/class-wp-locale.php:164 wp-includes/class-wp-locale.php:192 +msgid "July" +msgstr "Juli" -#: wp-includes/widgets/class-wp-widget-pages.php:143 -msgid "Exclude:" -msgstr "Ausschließen:" +#. translators: month name +#: wp-includes/class-wp-locale.php:163 wp-includes/class-wp-locale.php:191 +msgid "June" +msgstr "Juni" -#. translators: 1: blog title, 2: separator (raquo) -#: wp-includes/general-template.php:2625 -msgid "%1$s %2$s Comments Feed" -msgstr "%1$s %2$s Kommentar-Feed" +#. translators: month name +#: wp-includes/class-wp-locale.php:162 wp-includes/class-wp-locale.php:190 +msgid "May" +msgstr "Mai" -#. translators: 1: blog name, 2: separator(raquo), 3: category name -#: wp-includes/general-template.php:2667 -msgid "%1$s %2$s %3$s Category Feed" -msgstr "%1$s %2$s %3$s Kategorie-Feed" +#. translators: month name +#: wp-includes/class-wp-locale.php:161 wp-includes/class-wp-locale.php:189 +msgid "April" +msgstr "April" -#. translators: 1: blog name, 2: separator(raquo), 3: post title -#: wp-includes/general-template.php:2665 -msgid "%1$s %2$s %3$s Comments Feed" -msgstr "%1$s %2$s %3$s Kommentar-Feed" +#. translators: month name +#: wp-includes/class-wp-locale.php:160 wp-includes/class-wp-locale.php:188 +msgid "March" +msgstr "März" -#. translators: 1: blog name, 2: separator(raquo), 3: tag name -#: wp-includes/general-template.php:2669 -msgid "%1$s %2$s %3$s Tag Feed" -msgstr "%1$s %2$s %3$s Schlagwort-Feed" +#. translators: month name +#: wp-includes/class-wp-locale.php:159 wp-includes/class-wp-locale.php:187 +msgid "February" +msgstr "Februar" + +#. translators: month name +#: wp-includes/class-wp-locale.php:158 wp-includes/class-wp-locale.php:186 +msgid "January" +msgstr "Januar" #: wp-includes/class-wp-http-curl.php:189 #: wp-includes/class-wp-http-streams.php:228 msgid "Could not open handle for fopen() to %s" msgstr "Konnte Verbindung zu %s über fopen() nicht öffnen" -#: wp-includes/general-template.php:543 -msgid "Site Admin" -msgstr "Administration" - -#: wp-includes/post-template.php:385 -msgid "There is no excerpt because this is a protected post." -msgstr "Es gibt keine Kurzfassung, da dies ein geschützter Beitrag ist." - -#: wp-includes/post.php:3303 -msgid "Could not update post in the database" -msgstr "Der Beitrag konnte nicht in der Datenbank aktualisiert werden" - -#: wp-includes/post.php:3318 -msgid "Could not insert post into the database" -msgstr "Der Beitrag konnte nicht in die Datenbank eingefügt werden" - -#: wp-includes/widgets/class-wp-widget-meta.php:58 -msgid "Entries <abbr title=\"Really Simple Syndication\">RSS</abbr>" -msgstr "Beitrags-Feed (<abbr title=\"Really Simple Syndication\">RSS</abbr>)" +#: wp-includes/class-http.php:984 wp-includes/class-wp-http-curl.php:232 +#: wp-includes/class-wp-http-curl.php:271 +msgid "Too many redirects." +msgstr "Zu viele Weiterleitungen." -#: wp-includes/widgets/class-wp-widget-recent-posts.php:135 -msgid "Number of posts to show:" -msgstr "Anzahl der Beiträge, die angezeigt werden:" +#: wp-includes/class-http.php:268 +msgid "User has blocked requests through HTTP." +msgstr "Der Benutzer hat Anfragen über HTTP blockiert." -#: wp-includes/widgets.php:1367 -msgid "Display item content?" -msgstr "Beitrags-Inhalt anzeigen?" +#: wp-includes/class-wp-theme.php:801 +msgid "Gray" +msgstr "Grau" -#: wp-includes/widgets.php:1370 -msgid "Display item author if available?" -msgstr "Beitrags-Autor anzeigen, wenn verfügbar?" +#: wp-includes/general-template.php:3293 +msgid "Next »" +msgstr "Weiter »" -#: wp-includes/widgets.php:1373 -msgid "Display item date?" -msgstr "Beitrags-Datum anzeigen?" +#: wp-includes/general-template.php:3292 +msgid "« Previous" +msgstr "« Zurück" + +#. translators: 1: blog name, 2: separator(raquo), 3: search phrase +#: wp-includes/general-template.php:2675 +msgid "%1$s %2$s Search Results for “%3$s” Feed" +msgstr "%1$s %2$s Suchergebnisse für „%3$s“ Feed" #. translators: 1: blog name, 2: separator(raquo), 3: author name #: wp-includes/general-template.php:2673 msgid "%1$s %2$s Posts by %3$s Feed" msgstr "%1$s %2$s Beiträge nach %3$s Feed" -#: wp-includes/deprecated.php:2671 -msgid "Last Post" -msgstr "Letzter Beitrag" - -#: wp-includes/cron.php:405 -msgid "Once Hourly" -msgstr "Einmal stündlich" +#. translators: 1: blog name, 2: separator(raquo), 3: tag name +#: wp-includes/general-template.php:2669 +msgid "%1$s %2$s %3$s Tag Feed" +msgstr "%1$s %2$s %3$s Schlagwort-Feed" -#: wp-includes/widgets.php:1267 -msgid "Untitled" -msgstr "Ohne Titel" +#. translators: 1: blog name, 2: separator(raquo), 3: category name +#: wp-includes/general-template.php:2667 +msgid "%1$s %2$s %3$s Category Feed" +msgstr "%1$s %2$s %3$s Kategorie-Feed" -#: wp-includes/functions.php:2128 -msgid "Empty filename" -msgstr "Leerer Dateiname" +#. translators: 1: blog name, 2: separator(raquo), 3: post title +#: wp-includes/general-template.php:2665 +msgid "%1$s %2$s %3$s Comments Feed" +msgstr "%1$s %2$s %3$s Kommentar-Feed" -#: wp-includes/link-template.php:699 -msgid "Comments Feed" -msgstr "RSS-Kommentare" +#. translators: 1: blog title, 2: separator (raquo) +#: wp-includes/general-template.php:2625 +msgid "%1$s %2$s Comments Feed" +msgstr "%1$s %2$s Kommentar-Feed" -#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 -msgid "Previous Post" -msgstr "Vorheriger Beitrag" +#. translators: 1: blog title, 2: separator (raquo) +#: wp-includes/general-template.php:2623 +msgid "%1$s %2$s Feed" +msgstr "%1$s %2$s Feed" -#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 -msgid "Next Post" -msgstr "Nächster Beitrag" +#. translators: Separator between blog name and feed type in feed links +#: wp-includes/general-template.php:2621 wp-includes/general-template.php:2663 +msgctxt "feed link" +msgid "»" +msgstr "»" -#: wp-includes/script-loader.php:265 -msgid "Next >" -msgstr "Nächste >" +#. translators: Calendar caption: 1: month name, 2: 4-digit year +#: wp-includes/general-template.php:1983 +msgctxt "calendar caption" +msgid "%1$s %2$s" +msgstr "%1$s %2$s" -#: wp-includes/script-loader.php:266 -msgid "< Prev" -msgstr "< Vorherige" +#. translators: 1: month name, 2: 4-digit year +#: wp-includes/general-template.php:1758 wp-includes/media.php:3428 +msgid "%1$s %2$d" +msgstr "%1$s %2$d" -#: wp-includes/script-loader.php:270 -msgid "This feature requires inline frames. You have iframes disabled or your browser does not support them." -msgstr "Diese Funktion benötigt iframes. Du hast jedoch iframes deaktiviert oder dein Browser unterstützt diese nicht." +#: wp-includes/general-template.php:984 wp-includes/general-template.php:1199 +msgid "Page not found" +msgstr "Seite nicht gefunden" -#: wp-includes/script-loader.php:290 -msgid "HTTP error." -msgstr "HTTP-Fehler." +#. translators: 1: separator, 2: search phrase +#: wp-includes/general-template.php:1194 +msgid "Search Results %1$s %2$s" +msgstr "Suchergebnisse %1$s %2$s" -#: wp-includes/script-loader.php:295 -msgid "IO error." -msgstr "IO-Fehler." +#: wp-includes/general-template.php:543 +msgid "Site Admin" +msgstr "Administration" -#: wp-includes/post.php:223 -msgid "Pending <span class=\"count\">(%s)</span>" -msgid_plural "Pending <span class=\"count\">(%s)</span>" -msgstr[0] "Ausstehend <span class=\"count\">(%s)</span>" -msgstr[1] "Ausstehend <span class=\"count\">(%s)</span>" +#: wp-includes/general-template.php:539 wp-login.php:556 wp-login.php:669 +#: wp-login.php:743 wp-login.php:936 +msgid "Register" +msgstr "Registrieren" #: wp-includes/general-template.php:410 wp-login.php:917 msgid "Remember Me" msgstr "Angemeldet bleiben" -#: wp-includes/script-loader.php:990 wp-signup.php:559 -msgid "Next" -msgstr "Weiter" +#: wp-includes/general-template.php:274 +msgid "Log out" +msgstr "Abmelden" -#: wp-includes/script-loader.php:300 -msgid "Crunching…" -msgstr "Verarbeiten …" +#: wp-includes/general-template.php:272 wp-login.php:553 wp-login.php:616 +#: wp-login.php:666 wp-login.php:747 +msgid "Log in" +msgstr "Anmelden" -#. translators: 1: blog name, 2: separator(raquo), 3: search phrase -#: wp-includes/general-template.php:2675 -msgid "%1$s %2$s Search Results for “%3$s” Feed" -msgstr "%1$s %2$s Suchergebnisse für „%3$s“ Feed" +#: wp-includes/functions.php:4674 +msgid "Manual Offsets" +msgstr "Manueller Zeitversatz" -#. translators: 1: Taxonomy term slug -#: wp-includes/taxonomy.php:2658 -msgid "The slug “%s” is already in use by another term" -msgstr "Die Titelform „%s“ wird bereits verwendet" +#: wp-includes/functions.php:4666 wp-includes/functions.php:4670 +msgid "UTC" +msgstr "UTC" -#: wp-includes/script-loader.php:754 -msgid "Could not set that as the thumbnail image. Try a different attachment." -msgstr "Das Bild konnte nicht als Vorschaubild gesetzt werden. Versuche es mit einem anderen." +#: wp-includes/functions.php:4621 +msgid "Select a city" +msgstr "Wähle eine Stadt" -#: wp-includes/class-wp-editor.php:1181 -msgid "Insert row before" -msgstr "Zeile darüber einfügen" +#. translators: 1: PHP function name, 2: version number +#: wp-includes/functions.php:4026 +msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available." +msgstr "%1$s wurde mit einem Parameter oder Argument aufgerufen, der seit Version %2$s <strong>veraltet ist</strong>! Es gibt jedoch keine alternative Möglichkeit." -#: wp-includes/class-wp-editor.php:1182 -msgid "Insert row after" -msgstr "Zeile darunter einfügen" +#. translators: 1: PHP function name, 2: version number, 3: optional message +#. regarding the change +#: wp-includes/functions.php:4023 +msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s" +msgstr "%1$s wurde mit einem Parameter oder Argument aufgerufen, der seit Version %2$s <strong>veraltet ist</strong>! %3$s" -#: wp-includes/class-wp-editor.php:1183 -msgid "Insert column before" -msgstr "Spalte davor einfügen" +#. translators: 1: PHP function name, 2: version number +#. translators: 1: PHP file name, 2: version number +#. translators: 1: WordPress hook name, 2: version number +#: wp-includes/functions.php:3834 wp-includes/functions.php:3962 +#: wp-includes/functions.php:4085 +msgid "%1$s is <strong>deprecated</strong> since version %2$s with no alternative available." +msgstr "%1$s ist seit Version %2$s <strong>veraltet</strong>. Es ist keine Alternative erhältlich." -#: wp-includes/class-wp-editor.php:1184 -msgid "Insert column after" -msgstr "Spalte danach einfügen" +#. translators: 1: PHP function name, 2: version number, 3: alternative +#. function name +#. translators: 1: PHP file name, 2: version number, 3: alternative file name +#. translators: 1: WordPress hook name, 2: version number, 3: alternative hook +#. name +#: wp-includes/functions.php:3831 wp-includes/functions.php:3959 +#: wp-includes/functions.php:4082 +msgid "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." +msgstr "%1$s ist seit Version %2$s <strong>veraltet</strong>! Benutze stattdessen %3$s." -#: wp-includes/ms-load.php:483 -msgid "What do I do now?" -msgstr "Was mache ich jetzt?" +#: wp-includes/functions.php:2739 wp-load.php:92 +msgid "WordPress › Error" +msgstr "WordPress › Fehler" -#: wp-includes/widgets.php:173 wp-includes/widgets.php:244 -msgid "Sidebar %d" -msgstr "Seitenleiste %d" +#: wp-includes/functions.php:2727 +msgid "« Back" +msgstr "« Zurück" -#: wp-includes/script-loader.php:404 -msgctxt "password strength" -msgid "Medium" -msgstr "Mittel" +#: wp-includes/functions.php:2602 wp-includes/ms-functions.php:2011 +msgid "Please try again." +msgstr "Bitte versuche es noch einmal." -#: wp-login.php:721 -msgid "Register For This Site" -msgstr "Für diese Website registrieren" +#. translators: %s: logout URL +#: wp-includes/functions.php:2593 +msgid "Do you really want to <a href=\"%s\">log out</a>?" +msgstr "Willst du dich wirklich <a href=\"%s\">abmelden</a>?" -#: wp-signup.php:555 -msgid "Just a username, please." -msgstr "Ich möche nur einen Benutzernamen, keine Website." +#: wp-includes/functions.php:2607 +msgid "WordPress Failure Notice" +msgstr "WordPress-Fehlermeldung" -#: wp-login.php:530 -msgid "Lost Password" -msgstr "Passwort vergessen" +#. translators: %s: site name +#: wp-includes/functions.php:2586 +msgid "You are attempting to log out of %s" +msgstr "Du hast vor, dich von der Website %s abzumelden" -#: wp-includes/post-template.php:1335 -msgid "Home" -msgstr "Startseite" +#: wp-includes/functions.php:2174 +msgid "Could not write file %s" +msgstr "Konnte folgende Datei nicht schreiben %s" + +#: wp-includes/functions.php:2128 +msgid "Empty filename" +msgstr "Leerer Dateiname" + +#. translators: %s: directory path +#: wp-includes/functions.php:1897 wp-includes/functions.php:2166 +msgid "Unable to create directory %s. Is its parent directory writable by the server?" +msgstr "Das Verzeichnis %s kann nicht angelegt werden. Ist das übergeordnete Verzeichnis durch den Server beschreibbar?" + +#: wp-includes/option.php:156 +msgid "%s is a protected WP option and may not be modified" +msgstr "%s ist eine geschützte WP-Option und sollte nicht verändert werden" + +#. translators: used between list items, there is a space after the comma +#: wp-includes/class-wp-theme.php:758 +msgid ", " +msgstr ", " + +#. translators: Time difference between two dates, in days. 1: Number of days +#: wp-includes/formatting.php:3240 +msgid "%s day" +msgid_plural "%s days" +msgstr[0] "%s Tag" +msgstr[1] "%s Tagen" -#: wp-includes/revision.php:295 -msgid "Cannot create a revision of a revision" -msgstr "Kann keine Revision einer Revision erstellen." +#. translators: Time difference between two dates, in hours. 1: Number of hours +#: wp-includes/formatting.php:3234 +msgid "%s hour" +msgid_plural "%s hours" +msgstr[0] "%s Stunde" +msgstr[1] "%s Stunden" -#: wp-includes/ms-functions.php:448 -msgid "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." -msgstr "Du kannst dich leider nicht mit dieser E-Mail-Adresse registrieren, da dein E-Mail-Anbieter einen Teil unserer E-Mails blockiert. Nutze bitte eine E-Mail-Adresse eines anderen E-Mail-Anbieters." +#. translators: Time difference between two dates, in minutes (min=minute). 1: +#. Number of minutes +#: wp-includes/formatting.php:3228 +msgid "%s min" +msgid_plural "%s mins" +msgstr[0] "%s Minute" +msgstr[1] "%s Minuten" -#: wp-includes/ms-functions.php:460 -msgid "Sorry, usernames must have letters too!" -msgstr "Benutzernamen müssen auch Buchstaben enthalten!" +#: wp-includes/feed-rss2-comments.php:91 +msgid "Protected Comments: Please enter your password to view comments." +msgstr "Geschützte Kommentare: Bitte gib dein Passwort ein, um Kommentare zu sehen." -#: wp-includes/ms-functions.php:472 wp-includes/user.php:1462 -msgid "Sorry, that username already exists!" -msgstr "Der Benutzername existiert bereits!" +#. translators: Comments feed title. 1: Post title +#: wp-includes/feed-rss2-comments.php:38 +msgid "Comments on: %s" +msgstr "Kommentare zu: %s" -#: wp-includes/ms-functions.php:476 wp-includes/user.php:1536 -msgid "Sorry, that email address is already used!" -msgstr "Diese E-Mail-Adresse wird bereits verwendet!" +#. translators: Comment author title. 1: Comment author name +#: wp-includes/feed-atom-comments.php:84 wp-includes/feed-rss2-comments.php:83 +msgid "By: %s" +msgstr "Von: %s" -#: wp-includes/ms-functions.php:498 -msgid "That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing." -msgstr "Diese E-Mail-Adresse wurde bereits verwendet. Bitte schau in deinem Postfach nach der Aktivierungsmail. Falls du keine bekommen oder die E-Mail bereits gelöscht hast, kannst du dich in ein paar Tagen erneut mit dieser E-Mail-Adresse registrieren." +#. translators: Individual comment title. 1: Post title, 2: Comment author name +#: wp-includes/feed-atom-comments.php:81 wp-includes/feed-rss2-comments.php:80 +msgid "Comment on %1$s by %2$s" +msgstr "Kommentar zu %1$s von %2$s" -#: wp-mail.php:40 -msgid "Slow down cowboy, no need to check for new mails so often!" -msgstr "Ruhe bewahren, es gibt keinen Grund, so oft nach neuen E-Mails zu schauen." +#. translators: Comments feed title. 1: Site name +#: wp-includes/feed-atom-comments.php:39 wp-includes/feed-rss2-comments.php:44 +msgid "Comments for %s" +msgstr "Kommentare für %s" -#: wp-includes/rss.php:917 wp-includes/widgets.php:1251 -msgid "An error has occurred, which probably means the feed is down. Try again later." -msgstr "Ein Fehler ist aufgetreten – der Feed funktioniert zur Zeit nicht. Versuche es später noch einmal." +#. translators: Comments feed title. 1: Site name, 2: Search query +#: wp-includes/feed-atom-comments.php:36 wp-includes/feed-rss2-comments.php:41 +msgid "Comments for %1$s searching on %2$s" +msgstr "Kommentare für %1$s in %2$s gesucht" #: wp-includes/deprecated.php:1840 wp-includes/post-template.php:1500 msgid "Missing Attachment" msgstr "Anhang fehlt" -#: wp-includes/widgets/class-wp-widget-recent-posts.php:31 -#: wp-includes/widgets/class-wp-widget-recent-posts.php:50 -msgid "Recent Posts" -msgstr "Neueste Beiträge" - -#: wp-includes/functions.php:4674 -msgid "Manual Offsets" -msgstr "Manueller Zeitversatz" - -#: wp-includes/script-loader.php:287 -msgid "An error occurred in the upload. Please try again later." -msgstr "Bei dem Upload ist ein Fehler aufgetreten. Versuche es später noch einmal." - -#: wp-includes/script-loader.php:289 -msgid "You may only upload 1 file." -msgstr "Du kannst nur 1 Datei hochladen." - -#: wp-includes/user.php:310 -msgid "<strong>ERROR</strong>: Your account has been marked as a spammer." -msgstr "<strong>FEHLER</strong>: Dein Account wurde als Spam markiert." +#: wp-includes/deprecated.php:963 +msgid "Last updated" +msgstr "Zuletzt aktualisiert" -#: wp-includes/user.php:130 -msgid "<strong>ERROR</strong>: The username field is empty." -msgstr "<strong>FEHLER</strong>: Das Benutzerfeld ist leer." +#: wp-includes/deprecated.php:64 +msgid "new WordPress Loop" +msgstr "Neue WordPress-Loop" -#: wp-includes/user.php:133 wp-includes/user.php:206 -msgid "<strong>ERROR</strong>: The password field is empty." -msgstr "<strong>FEHLER</strong>: Das Passwortfeld ist leer." +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:30 +msgid "Tag Cloud" +msgstr "Schlagwörter-Wolke" -#. translators: 1: WordPress version number, 2: Minimum required MySQL version -#. number -#: wp-includes/wp-db.php:3221 -msgid "<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher" -msgstr "<strong>FEHLER</strong>: WordPress %1$s benötigt mindestens MySQL %2$s" +#: wp-includes/widgets.php:1373 +msgid "Display item date?" +msgstr "Beitrags-Datum anzeigen?" -#: wp-login.php:293 -msgid "<strong>ERROR</strong>: There is no user registered with that email address." -msgstr "<strong>FEHLER</strong>: Es existiert kein Benutzer mit dieser E-Mail-Adresse" +#: wp-includes/widgets.php:1370 +msgid "Display item author if available?" +msgstr "Beitrags-Autor anzeigen, wenn verfügbar?" -#: wp-login.php:314 -msgid "<strong>ERROR</strong>: Invalid username or email." -msgstr "<strong>FEHLER</strong>: Falscher Benutzername oder falsche E-Mail-Adresse." +#: wp-includes/widgets.php:1367 +msgid "Display item content?" +msgstr "Beitrags-Inhalt anzeigen?" -#: wp-includes/user.php:2308 -msgid "<strong>ERROR</strong>: Please type your email address." -msgstr "<strong>FEHLER</strong>: Bitte gib deine E-Mail-Adresse ein." +#: wp-includes/widgets.php:1357 +msgid "How many items would you like to display?" +msgstr "Wieviele Einträge sollen angezeigt werden?" -#: wp-includes/user.php:2310 -msgid "<strong>ERROR</strong>: The email address isn’t correct." -msgstr "<strong>FEHLER</strong>: Die E-Mail-Adresse ist ungültig." +#: wp-includes/widgets.php:1354 +msgid "Give the feed a title (optional):" +msgstr "Gib dem Feed einen Titel (optional):" -#: wp-includes/feed-rss2-comments.php:91 -msgid "Protected Comments: Please enter your password to view comments." -msgstr "Geschützte Kommentare: Bitte gib dein Passwort ein, um Kommentare zu sehen." +#: wp-includes/widgets.php:1351 +msgid "Enter the RSS feed URL here:" +msgstr "Gib die URL des RSS-Feeds hier ein:" -#: wp-signup.php:756 -msgid "Still waiting for your email?" -msgstr "Wartest du noch auf deine E-Mail?" +#: wp-includes/widgets.php:1267 +msgid "Untitled" +msgstr "Ohne Titel" -#: wp-signup.php:606 -msgid "But, before you can start using your new username, <strong>you must activate it</strong>." -msgstr "Bevor du jedoch loslegen und deinen neuen Benutzernamen nutzen kannst, musst du ihn erst <strong>aktivieren</strong>." +#. translators: comments widget: 1: comment author, 2: post link +#: wp-includes/widgets/class-wp-widget-recent-comments.php:116 +msgctxt "widgets" +msgid "%1$s on %2$s" +msgstr "%1$s bei %2$s" -#: wp-login.php:289 -msgid "<strong>ERROR</strong>: Enter a username or email address." -msgstr "<strong>FEHLER</strong>: Benutzername oder E-Mail-Adresse eingeben." +#: wp-includes/widgets/class-wp-widget-recent-posts.php:135 +msgid "Number of posts to show:" +msgstr "Anzahl der Beiträge, die angezeigt werden:" -#: wp-includes/class-wp-theme.php:300 -msgid "The parent theme is missing. Please install the \"%s\" parent theme." -msgstr "Das übergeordnete Theme fehlt. Bitte installiere das übergeordnete Theme „%s“, da du Child-Themes sonst nicht nutzen kannst." +#: wp-includes/widgets/class-wp-widget-recent-posts.php:31 +#: wp-includes/widgets/class-wp-widget-recent-posts.php:50 +msgid "Recent Posts" +msgstr "Neueste Beiträge" -#: wp-includes/script-loader.php:301 -msgid "moved to the trash." -msgstr "in den Papierkorb gelegt." +#: wp-includes/widgets/class-wp-widget-categories.php:170 +msgid "Show hierarchy" +msgstr "Zeige die Hierarchie an" -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1502 wp-includes/pluggable.php:1663 -msgid "Trash it: %s" -msgstr "In den Papierkorb legen: %s" +#: wp-includes/widgets/class-wp-widget-categories.php:71 +msgid "Select Category" +msgstr "Kategorie auswählen" -#: wp-includes/ms-functions.php:466 -msgid "Sorry, that email address is not allowed!" -msgstr "Diese E-Mail-Adresse ist nicht erlaubt!" +#: wp-includes/widgets/class-wp-widget-text.php:374 +msgid "Automatically add paragraphs" +msgstr "Absätze automatisch hinzufügen" -#: wp-login.php:864 -msgid "Check your email for the confirmation link." -msgstr "Bitte schau für den Bestätigungslink in deine E-Mail." +#: wp-includes/class-wp-editor.php:1259 +#: wp-includes/widgets/class-wp-widget-text.php:43 +msgid "Text" +msgstr "Text" -#: wp-login.php:866 -msgid "Check your email for your new password." -msgstr "Bitte schau für das neue Passwort in deine E-Mail." +#: wp-includes/widgets/class-wp-widget-calendar.php:41 +msgid "Calendar" +msgstr "Kalender" -#: wp-login.php:868 -msgid "Registration complete. Please check your email." -msgstr "Registrierung abgeschlossen. Bitte schau in dein E-Mail-Postfach." +#: wp-includes/widgets/class-wp-widget-meta.php:58 +msgid "Entries <abbr title=\"Really Simple Syndication\">RSS</abbr>" +msgstr "Beitrags-Feed (<abbr title=\"Really Simple Syndication\">RSS</abbr>)" -#: wp-includes/cron.php:205 -msgid "This argument has changed to an array to match the behavior of the other cron functions." -msgstr "Das Argument wurde durch ein Array ersetzt, um dem Verhalten der anderen Cron-Funktionen zu entsprechen." +#: wp-includes/widgets/class-wp-widget-archives.php:161 +#: wp-includes/widgets/class-wp-widget-categories.php:167 +msgid "Show post counts" +msgstr "Beitragsanzahl anzeigen" -#: wp-includes/deprecated.php:64 -msgid "new WordPress Loop" -msgstr "Neue WordPress-Loop" +#: wp-includes/widgets/class-wp-widget-archives.php:82 +msgid "Select Month" +msgstr "Wähle den Monat" -#: wp-includes/comment.php:658 wp-includes/comment.php:661 -#: wp-includes/comment.php:664 -msgid "Duplicate comment detected; it looks as though you’ve already said that!" -msgstr "Doppelter Kommentar wurde entdeckt. Es sieht stark danach aus, dass du das schon einmal geschrieben hast!" +#: wp-includes/widgets/class-wp-widget-links.php:158 +msgid "Show Link Rating" +msgstr "Zeige Link-Bewertung" -#: wp-includes/widgets.php:1357 -msgid "How many items would you like to display?" -msgstr "Wieviele Einträge sollen angezeigt werden?" +#: wp-includes/widgets/class-wp-widget-links.php:156 +msgid "Show Link Description" +msgstr "Zeige Link-Beschreibung" -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1494 -msgid "[%1$s] Comment: \"%2$s\"" -msgstr "[%1$s] Kommentar: \"%2$s\"" +#: wp-includes/widgets/class-wp-widget-links.php:154 +msgid "Show Link Name" +msgstr "Zeige Link-Namen" -#. translators: Comment moderation notification email subject. 1: Site name, 2: -#. Post title -#: wp-includes/pluggable.php:1678 -msgid "[%1$s] Please moderate: \"%2$s\"" -msgstr "[%1$s] Bitte moderiere: \"%2$s\"" +#: wp-includes/widgets/class-wp-widget-links.php:152 +msgid "Show Link Image" +msgstr "Zeige Link-Grafik" -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1483 -msgid "[%1$s] Pingback: \"%2$s\"" -msgstr "[%1$s] Pingback: \"%2$s\"" +#: wp-includes/widgets/class-wp-widget-links.php:27 +msgid "Your blogroll" +msgstr "Deine Blogroll" -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1472 -msgid "[%1$s] Trackback: \"%2$s\"" -msgstr "[%1$s] Trackback: \"%2$s\"" +#: wp-includes/widgets/class-wp-widget-pages.php:146 +msgid "Page IDs, separated by commas." +msgstr "Seiten-IDs, durch Kommas getrennt." -#. translators: %s: revision date -#. translators: %s: revision date with author avatar -#: wp-includes/post-template.php:1703 wp-includes/post-template.php:1755 -msgid "%s [Autosave]" -msgstr "%s [Automatische Speicherung]" +#: wp-includes/widgets/class-wp-widget-pages.php:143 +msgid "Exclude:" +msgstr "Ausschließen:" -#. translators: %s: revision date -#. translators: %s: revision date with author avatar -#: wp-includes/post-template.php:1705 wp-includes/post-template.php:1757 -msgid "%s [Current Revision]" -msgstr "%s [Aktuelle Revision]" +#: wp-includes/widgets/class-wp-widget-pages.php:139 +msgid "Page ID" +msgstr "Seiten-ID" -#. translators: %s: logout URL -#: wp-includes/functions.php:2593 -msgid "Do you really want to <a href=\"%s\">log out</a>?" -msgstr "Willst du dich wirklich <a href=\"%s\">abmelden</a>?" +#: wp-includes/widgets/class-wp-widget-pages.php:138 +msgid "Page order" +msgstr "Reihenfolge der Seiten" -#: wp-includes/class-wp-customize-manager.php:4078 -#: wp-includes/class-wp-customize-manager.php:4119 -msgid "Fill Screen" -msgstr "Bildschirmfüllend" +#: wp-includes/widgets/class-wp-widget-pages.php:137 +msgid "Page title" +msgstr "Seitentitel" -#: wp-includes/class-wp-editor.php:1274 -msgid "Letter" -msgstr "Zeichen" +#: wp-includes/widgets/class-wp-widget-links.php:142 +#: wp-includes/widgets/class-wp-widget-pages.php:135 +msgid "Sort by:" +msgstr "Sortiert nach:" -#: wp-includes/user.php:1456 -msgid "Cannot create a user with an empty login name." -msgstr "Es kann kein neuer Benutzer anlegt werden, wenn der Anmeldename leer ist." +#: wp-includes/cron.php:407 +msgid "Once Daily" +msgstr "Einmal täglich" -#: wp-includes/script-loader.php:575 -msgid "Saving Draft…" -msgstr "Entwurf wird gespeichert …" +#: wp-includes/cron.php:406 +msgid "Twice Daily" +msgstr "Zweimal täglich" -#: wp-includes/class-wp-editor.php:1097 -msgid "Language" -msgstr "Sprache" +#: wp-includes/cron.php:405 +msgid "Once Hourly" +msgstr "Einmal stündlich" -#: wp-includes/widgets/class-wp-widget-archives.php:161 -#: wp-includes/widgets/class-wp-widget-categories.php:167 -msgid "Show post counts" -msgstr "Beitragsanzahl anzeigen" +#: wp-includes/cron.php:205 +msgid "This argument has changed to an array to match the behavior of the other cron functions." +msgstr "Das Argument wurde durch ein Array ersetzt, um dem Verhalten der anderen Cron-Funktionen zu entsprechen." -#: wp-includes/functions.php:5274 wp-includes/user.php:280 -msgid "Please log in again." -msgstr "Bitte melde dich erneut an." +#: wp-includes/comment.php:2095 +msgid "Could not update comment status" +msgstr "Der Kommentarstatus konnte nicht aktualisiert werden" -#: wp-includes/functions.php:2602 wp-includes/ms-functions.php:2011 -msgid "Please try again." -msgstr "Bitte versuche es noch einmal." +#: wp-includes/comment.php:658 wp-includes/comment.php:661 +#: wp-includes/comment.php:664 +msgid "Duplicate comment detected; it looks as though you’ve already said that!" +msgstr "Doppelter Kommentar wurde entdeckt. Es sieht stark danach aus, dass du das schon einmal geschrieben hast!" -#: wp-includes/link-template.php:2300 wp-includes/link-template.php:2352 -msgid "« Previous Page" -msgstr "« Vorherige Seite" +#: wp-includes/comment.php:241 +msgid "Unapproved" +msgstr "Nicht genehmigt" -#: wp-includes/link-template.php:2217 wp-includes/link-template.php:2353 -msgid "Next Page »" -msgstr "Nächste Seite »" +#: wp-includes/comment-template.php:2250 +msgid "Post Comment" +msgstr "Kommentar abschicken" -#. translators: Comments feed title. 1: Post title -#: wp-includes/feed-atom-comments.php:33 -msgid "Comments on %s" -msgstr "Kommentare zu %s" +#: wp-includes/comment-template.php:2249 +msgid "Cancel reply" +msgstr "Antworten abbrechen" -#: wp-includes/comment-template.php:920 -msgid "No Comments" -msgstr "Keine Kommentare" +#: wp-includes/comment-template.php:1873 wp-includes/comment-template.php:2244 +msgid "Leave a Reply to %s" +msgstr "Schreibe einen Kommentar zu %s" -#: wp-includes/comment-template.php:922 -msgid "1 Comment" -msgstr "1 Kommentar" +#: wp-includes/comment-template.php:1872 wp-includes/comment-template.php:2243 +msgid "Leave a Reply" +msgstr "Schreibe einen Kommentar" -#: wp-includes/link-template.php:994 wp-includes/link-template.php:1329 -#: wp-includes/link-template.php:1431 wp-includes/link-template.php:1492 -msgid "Edit This" -msgstr "Bearbeiten" +#: wp-includes/comment-template.php:1780 +msgid "Click here to cancel reply." +msgstr "Hier klicken, um das Antworten abzubrechen." -#: wp-includes/post-template.php:860 -msgid "Pages:" -msgstr "Seiten:" +#: wp-includes/comment-template.php:1712 +msgid "Log in to leave a Comment" +msgstr "Melde dich an, um einen Kommentar zu schreiben" -#: wp-includes/widgets/class-wp-widget-meta.php:59 -msgid "Comments <abbr title=\"Really Simple Syndication\">RSS</abbr>" -msgstr "Kommentare als <abbr title=\"Really Simple Syndication\">RSS</abbr>" +#: wp-includes/comment-template.php:1711 +msgid "Leave a Comment" +msgstr "Schreibe einen Kommentar" -#: wp-includes/bookmark-template.php:83 -msgid "Last updated: %s" -msgstr "Zuletzt aktualisiert: %s" +#: wp-includes/comment-template.php:1599 +msgid "Log in to Reply" +msgstr "Zum Antworten anmelden" -#: wp-includes/bookmark-template.php:206 -msgid "Bookmarks" -msgstr "Lesezeichen" +#: wp-includes/class-walker-category.php:137 +msgid "Feed for all posts filed under %s" +msgstr "Feed für alle unter %s abgelegten Beiträge" #: wp-includes/category-template.php:521 wp-includes/taxonomy.php:511 msgid "No categories" msgstr "Keine Kategorien" -#: wp-includes/class-walker-comment.php:284 -#: wp-includes/class-walker-comment.php:354 -msgid "Your comment is awaiting moderation." -msgstr "Dein Kommentar wartet auf Freischaltung." +#: wp-includes/class-wp-user.php:720 +msgid "Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead." +msgstr "Die Benutzung von <code>user_level</code> in Plugins und Themes ist veraltet. Nutze stattdessen das Abfragen von <code>roles</code> oder <code>capabilities</code>." -#. translators: 1: comment date, 2: comment time -#: wp-includes/class-walker-comment.php:291 -#: wp-includes/class-walker-comment.php:346 -msgid "%1$s at %2$s" -msgstr "%1$s um %2$s" +#: wp-includes/bookmark-template.php:206 +msgid "Bookmarks" +msgstr "Lesezeichen" -#: wp-includes/class-walker-comment.php:291 -msgid "(Edit)" -msgstr "(Bearbeiten)" +#: wp-includes/bookmark-template.php:83 +msgid "Last updated: %s" +msgstr "Zuletzt aktualisiert: %s" + +#. translators: %s: author's display name +#: wp-includes/author-template.php:263 wp-includes/author-template.php:425 +msgid "Posts by %s" +msgstr "Beiträge von %s" + +#. translators: %s: author's display name +#: wp-includes/author-template.php:196 +msgid "Visit %s’s website" +msgstr "Besuche %ss Website" #: wp-includes/theme-compat/sidebar.php:103 #: wp-includes/widgets/class-wp-widget-meta.php:33 @@ -10322,97 +10315,108 @@ msgstr "(Bearbeiten)" msgid "Meta" msgstr "Meta" -#: wp-includes/class-wp-customize-panel.php:385 -#: wp-includes/class-wp-customize-section.php:377 -#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:85 -msgid "Help" -msgstr "Hilfe" +#: wp-includes/class-walker-comment.php:291 +msgid "(Edit)" +msgstr "(Bearbeiten)" -#: wp-includes/class-wp-theme.php:800 -msgid "Black" -msgstr "Schwarz" +#. translators: 1: comment date, 2: comment time +#: wp-includes/class-walker-comment.php:291 +#: wp-includes/class-walker-comment.php:346 +msgid "%1$s at %2$s" +msgstr "%1$s um %2$s Uhr" -#: wp-includes/class-wp-theme.php:800 -msgid "Brown" -msgstr "Braun" +#: wp-includes/class-walker-comment.php:284 +#: wp-includes/class-walker-comment.php:354 +msgid "Your comment is awaiting moderation." +msgstr "Dein Kommentar wartet auf Freischaltung." -#: wp-includes/class-wp-theme.php:801 -msgid "Green" -msgstr "Grün" +#: wp-includes/theme-compat/comments.php:66 +msgid "Comments are closed." +msgstr "Kommentare sind geschlossen." -#: wp-includes/class-wp-theme.php:801 -msgid "Orange" -msgstr "Orange" +#: wp-includes/widgets/class-wp-widget-meta.php:59 +msgid "Comments <abbr title=\"Really Simple Syndication\">RSS</abbr>" +msgstr "Kommentare als <abbr title=\"Really Simple Syndication\">RSS</abbr>" -#: wp-includes/class-wp-theme.php:802 -msgid "Pink" -msgstr "Pink" +#: wp-includes/post-template.php:860 +msgid "Pages:" +msgstr "Seiten:" -#: wp-includes/class-wp-theme.php:802 -msgid "Purple" -msgstr "Violett" +#. translators: %s: comments count +#: wp-includes/script-loader.php:531 +msgid "Comments (%s)" +msgstr "Kommentare (%s)" -#: wp-includes/class-wp-theme.php:802 -msgid "Red" -msgstr "Rot" +#: wp-includes/category-template.php:1144 +msgid "Tags: " +msgstr "Schlagwörter: " -#: wp-includes/class-wp-theme.php:803 -msgid "Silver" -msgstr "Silber" +#. translators: %s: login URL +#: wp-includes/comment-template.php:2222 +msgid "You must be <a href=\"%s\">logged in</a> to post a comment." +msgstr "Du musst <a href=\"%s\">angemeldet</a> sein, um einen Kommentar abzugeben." -#: wp-includes/class-wp-theme.php:804 -msgid "Yellow" -msgstr "Gelb" +#: wp-includes/link-template.php:994 wp-includes/link-template.php:1329 +#: wp-includes/link-template.php:1431 wp-includes/link-template.php:1492 +msgid "Edit This" +msgstr "Bearbeiten" -#: wp-includes/class-wp-theme.php:804 -msgid "Light" -msgstr "Hell" +#: wp-includes/comment-template.php:922 +msgid "1 Comment" +msgstr "1 Kommentar" -#: wp-includes/admin-bar.php:355 wp-includes/admin-bar.php:451 -#: wp-includes/admin-bar.php:533 wp-includes/deprecated.php:2792 -#: wp-includes/deprecated.php:2794 -msgid "Dashboard" -msgstr "Dashboard" +#: wp-includes/comment-template.php:920 +msgid "No Comments" +msgstr "Keine Kommentare" + +#: wp-includes/comment-template.php:1524 +msgid "Enter your password to view comments." +msgstr "Um die Kommentare zu sehen, musst du dein Passwort eingeben." + +#: wp-includes/widgets/class-wp-widget-meta.php:70 +msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform." +msgstr "Powered by WordPress, state-of-the-art semantic personal publishing platform." -#: wp-signup.php:178 -msgid "Yes" -msgstr "Ja" +#. translators: Comments feed title. 1: Post title +#: wp-includes/feed-atom-comments.php:33 +msgid "Comments on %s" +msgstr "Kommentare zu %s" -#: wp-includes/post.php:1372 -msgctxt "page" -msgid "Add New" -msgstr "Erstellen" +#: wp-includes/class-wp-customize-nav-menus.php:283 +#: wp-includes/script-loader.php:234 wp-includes/script-loader.php:432 +#: wp-includes/script-loader.php:761 +msgid "No results found." +msgstr "Es wurden keine Ergebnisse gefunden, die deinen Suchkriterien entsprechen." -#: wp-includes/admin-bar.php:477 wp-includes/admin-bar.php:788 -#: wp-includes/customize/class-wp-customize-themes-section.php:56 -msgid "Themes" -msgstr "Themes" +#: wp-includes/link-template.php:2217 wp-includes/link-template.php:2353 +msgid "Next Page »" +msgstr "Nächste Seite »" -#: wp-includes/admin-bar.php:495 -msgid "Settings" -msgstr "Einstellungen" +#: wp-includes/link-template.php:2300 wp-includes/link-template.php:2352 +msgid "« Previous Page" +msgstr "« Vorherige Seite" -#: wp-includes/class-wp-editor.php:1195 wp-includes/media-template.php:965 -#: wp-includes/widgets/class-wp-widget-media-image.php:72 -msgid "Width" -msgstr "Breite" +#: wp-includes/class-wp-xmlrpc-server.php:3576 wp-includes/comment.php:2983 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 +msgid "Sorry, comments are closed for this item." +msgstr "Die Kommentarfunktion für diesen Beitrag wurde deaktiviert." -#: wp-includes/class-wp-editor.php:1194 wp-includes/media-template.php:965 -#: wp-includes/widgets/class-wp-widget-media-image.php:78 -msgid "Height" -msgstr "Höhe" +#: wp-includes/class-wp-xmlrpc-server.php:4748 +msgid "For some strange yet very annoying reason, this post could not be edited." +msgstr "Aus einem seltsam unerfreulichen Grund kann dieser Beitrag nicht bearbeitet werden." -#: wp-includes/class-wp-customize-manager.php:3872 -#: wp-includes/customize/class-wp-customize-color-control.php:54 -#: wp-includes/customize/class-wp-customize-image-control.php:38 -#: wp-includes/customize/class-wp-customize-media-control.php:62 -#: wp-includes/script-loader.php:730 -msgid "Default" -msgstr "Standard" +#: wp-includes/admin-bar.php:801 wp-includes/class-wp-customize-widgets.php:435 +#: wp-includes/functions.php:3707 +msgid "Widgets" +msgstr "Widgets" -#: wp-includes/class-wp-editor.php:182 wp-includes/class-wp-editor.php:1258 -msgid "Visual" -msgstr "Visuell" +#: wp-includes/comment-template.php:2202 +msgid "Website" +msgstr "Website" + +#: wp-includes/taxonomy.php:507 +msgid "Separate tags with commas" +msgstr "Schlagwörter durch Kommas trennen." #: wp-includes/default-widgets.php:190 #: wp-includes/widgets/class-wp-nav-menu-widget.php:137 @@ -10431,188 +10435,199 @@ msgstr "Visuell" msgid "Title:" msgstr "Titel:" -#: wp-login.php:639 -msgid "Strength indicator" -msgstr "Passwortstärke" - -#: wp-includes/admin-bar.php:801 wp-includes/class-wp-customize-widgets.php:435 -#: wp-includes/functions.php:3707 -msgid "Widgets" -msgstr "Widgets" +#: wp-includes/class-wp-editor.php:182 wp-includes/class-wp-editor.php:1258 +msgid "Visual" +msgstr "Visuell" -#: wp-includes/class-wp-widget.php:155 -msgid "There are no options for this widget." -msgstr "Für dieses Widget gibt es keine weiteren Einstellungen." +#: wp-includes/script-loader.php:633 +msgid "Plugin:" +msgstr "Plugin:" -#: wp-includes/general-template.php:411 wp-login.php:887 wp-login.php:919 -msgid "Log In" -msgstr "Anmelden" +#: wp-includes/class-wp-customize-manager.php:3872 +#: wp-includes/customize/class-wp-customize-color-control.php:54 +#: wp-includes/customize/class-wp-customize-image-control.php:38 +#: wp-includes/customize/class-wp-customize-media-control.php:62 +#: wp-includes/script-loader.php:730 +msgid "Default" +msgstr "Standard" -#: wp-includes/class-wp-xmlrpc-server.php:494 -msgid "Date Format" -msgstr "Datumsformat" +#: wp-includes/class-wp-editor.php:1194 wp-includes/media-template.php:965 +#: wp-includes/widgets/class-wp-widget-media-image.php:78 +msgid "Height" +msgstr "Höhe" #: wp-includes/class-wp-xmlrpc-server.php:499 msgid "Time Format" msgstr "Zeitformat" -#: wp-includes/class-wp-theme.php:800 -msgid "Blue" -msgstr "Blau" - -#: wp-includes/taxonomy.php:502 -msgid "Edit Category" -msgstr "Kategorie bearbeiten" - -#: wp-includes/class-wp-user.php:720 -msgid "Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead." -msgstr "Die Benutzung von <code>user_level</code> in Plugins und Themes ist veraltet. Nutze stattdessen das Abfragen von <code>roles</code> oder <code>capabilities</code>." +#: wp-includes/class-wp-xmlrpc-server.php:494 +msgid "Date Format" +msgstr "Datumsformat" -#: wp-includes/widgets/class-wp-widget-meta.php:70 -msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform." -msgstr "Powered by WordPress, state-of-the-art semantic personal publishing platform." +#: wp-includes/class-wp-xmlrpc-server.php:554 +msgid "Allow people to post comments on new articles" +msgstr "Besuchern erlauben, neue Beiträge zu kommentieren" -#. translators: %s: login URL -#: wp-includes/comment-template.php:2222 -msgid "You must be <a href=\"%s\">logged in</a> to post a comment." -msgstr "Du musst <a href=\"%s\">angemeldet</a> sein, um einen Kommentar abzugeben." +#: wp-includes/comment-template.php:2200 wp-login.php:729 +msgid "Email" +msgstr "E-Mail" -#: wp-includes/category-template.php:1144 -msgid "Tags: " -msgstr "Schlagwörter: " +#: wp-includes/class-wp-customize-manager.php:3804 +#: wp-includes/class-wp-xmlrpc-server.php:484 +msgid "Site Title" +msgstr "Titel der Website" #: wp-includes/deprecated.php:2671 msgid "First Post" msgstr "Erster Beitrag" -#. translators: %s: author's display name -#: wp-includes/author-template.php:263 wp-includes/author-template.php:425 -msgid "Posts by %s" -msgstr "Beiträge von %s" +#: wp-includes/admin-bar.php:495 +msgid "Settings" +msgstr "Einstellungen" -#: wp-includes/class-walker-category.php:137 -msgid "Feed for all posts filed under %s" -msgstr "Feed für alle unter %s abgelegten Beiträge" +#: wp-includes/post.php:1372 +msgctxt "page" +msgid "Add New" +msgstr "Erstellen" -#: wp-includes/class-wp-xmlrpc-server.php:554 -msgid "Allow people to post comments on new articles" -msgstr "Erlaube Besuchern, neue Beiträge zu kommentieren" +#: wp-includes/admin-bar.php:431 +msgid "My Sites" +msgstr "Meine Websites" -#: wp-includes/class-wp-xmlrpc-server.php:4748 -msgid "For some strange yet very annoying reason, this post could not be edited." -msgstr "Aus einem seltsam unerfreulichen Grund kann dieser Beitrag nicht bearbeitet werden." +#: wp-includes/admin-bar.php:477 wp-includes/admin-bar.php:788 +#: wp-includes/customize/class-wp-customize-themes-section.php:56 +msgid "Themes" +msgstr "Themes" -#: wp-includes/class-wp-theme.php:803 -msgid "White" -msgstr "Weiß" +#: wp-includes/admin-bar.php:459 +msgid "Sites" +msgstr "Websites" -#: wp-includes/comment-template.php:2202 -msgid "Website" -msgstr "Website" +#: wp-signup.php:178 +msgid "Yes" +msgstr "Ja" -#. translators: %s: author's display name -#: wp-includes/author-template.php:196 -msgid "Visit %s’s website" -msgstr "Besuche %ss Website" +#: wp-includes/taxonomy.php:502 +msgid "Edit Category" +msgstr "Kategorie bearbeiten" -#: wp-includes/class-wp-customize-manager.php:3804 -#: wp-includes/class-wp-xmlrpc-server.php:484 -msgid "Site Title" -msgstr "Titel der Website" +#: wp-includes/general-template.php:411 wp-login.php:887 wp-login.php:919 +msgid "Log In" +msgstr "Anmelden" -#: wp-includes/theme-compat/comments.php:66 -msgid "Comments are closed." -msgstr "Kommentare sind geschlossen." +#: wp-login.php:639 +msgid "Strength indicator" +msgstr "Passwortstärke" -#: wp-includes/admin-bar.php:459 -msgid "Sites" -msgstr "Websites" +#: wp-includes/admin-bar.php:355 wp-includes/admin-bar.php:451 +#: wp-includes/admin-bar.php:533 wp-includes/deprecated.php:2792 +#: wp-includes/deprecated.php:2794 +msgid "Dashboard" +msgstr "Dashboard" -#: wp-includes/admin-bar.php:431 -msgid "My Sites" -msgstr "Meine Websites" +#: wp-includes/class-wp-widget.php:155 +msgid "There are no options for this widget." +msgstr "Für dieses Widget gibt es keine weiteren Einstellungen." -#: wp-includes/comment-template.php:1712 -msgid "Log in to leave a Comment" -msgstr "Melde dich an, um einen Kommentar zu schreiben" +#: wp-includes/user.php:2313 +msgid "<strong>ERROR</strong>: This email is already registered, please choose another one." +msgstr "<strong>FEHLER</strong>: Diese E-Mail-Adresse wurde bereits registriert, bitte wähle eine andere." -#. translators: %s: comments count -#: wp-includes/script-loader.php:531 -msgid "Comments (%s)" -msgstr "Kommentare (%s)" +#: wp-includes/user.php:2291 +msgid "<strong>ERROR</strong>: Please enter a username." +msgstr "<strong>FEHLER</strong>: Bitte gib einen Benutzernamen ein." -#: wp-includes/comment-template.php:1711 -msgid "Leave a Comment" -msgstr "Schreibe einen Kommentar" +#: wp-includes/class-wp-editor.php:1195 wp-includes/media-template.php:965 +#: wp-includes/widgets/class-wp-widget-media-image.php:72 +msgid "Width" +msgstr "Breite" -#: wp-includes/comment-template.php:1872 wp-includes/comment-template.php:2243 -msgid "Leave a Reply" -msgstr "Schreibe einen Kommentar" +#: wp-includes/class-wp-theme.php:804 +msgid "Light" +msgstr "Hell" -#: wp-includes/comment-template.php:1873 wp-includes/comment-template.php:2244 -msgid "Leave a Reply to %s" -msgstr "Schreibe einen Kommentar zu %s" +#: wp-includes/class-wp-theme.php:804 +msgid "Yellow" +msgstr "Gelb" -#: wp-includes/script-loader.php:633 -msgid "Plugin:" -msgstr "Plugin:" +#: wp-includes/class-wp-theme.php:803 +msgid "White" +msgstr "Weiß" + +#: wp-includes/class-wp-theme.php:803 +msgid "Silver" +msgstr "Silber" + +#: wp-includes/class-wp-theme.php:802 +msgid "Red" +msgstr "Rot" + +#: wp-includes/class-wp-theme.php:802 +msgid "Purple" +msgstr "Violett" + +#: wp-includes/class-wp-theme.php:802 +msgid "Pink" +msgstr "Pink" -#: wp-includes/class-wp-xmlrpc-server.php:3576 wp-includes/comment.php:2983 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 -msgid "Sorry, comments are closed for this item." -msgstr "Die Kommentarfunktion für diesen Beitrag wurde deaktiviert." +#: wp-includes/class-wp-theme.php:801 +msgid "Orange" +msgstr "Orange" -#: wp-includes/taxonomy.php:507 -msgid "Separate tags with commas" -msgstr "Schlagwörter durch Kommas trennen." +#: wp-includes/class-wp-theme.php:801 +msgid "Green" +msgstr "Grün" -#: wp-includes/comment-template.php:2200 wp-login.php:729 -msgid "Email" -msgstr "E-Mail" +#: wp-includes/class-wp-theme.php:800 +msgid "Brown" +msgstr "Braun" -#: wp-includes/user.php:2291 -msgid "<strong>ERROR</strong>: Please enter a username." -msgstr "<strong>FEHLER</strong>: Bitte gib einen Benutzernamen ein." +#: wp-includes/class-wp-theme.php:800 +msgid "Blue" +msgstr "Blau" -#: wp-includes/user.php:2313 -msgid "<strong>ERROR</strong>: This email is already registered, please choose another one." -msgstr "<strong>FEHLER</strong>: Diese E-Mail-Adresse wurde bereits registriert, bitte wähle eine andere." +#: wp-includes/class-wp-theme.php:800 +msgid "Black" +msgstr "Schwarz" -#: wp-includes/comment-template.php:1524 -msgid "Enter your password to view comments." -msgstr "Um die Kommentare zu sehen, musst du dein Passwort eingeben." +#: wp-includes/class-wp-customize-panel.php:385 +#: wp-includes/class-wp-customize-section.php:377 +#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:85 +msgid "Help" +msgstr "Hilfe" -#: wp-includes/comment-template.php:1780 -msgid "Click here to cancel reply." -msgstr "Hier klicken, um das Antworten abzubrechen." +#: wp-includes/media.php:3139 wp-includes/script-loader.php:431 +#: wp-includes/script-loader.php:620 +msgid "(no title)" +msgstr "(kein Titel)" -#: wp-includes/comment-template.php:1599 -msgid "Log in to Reply" -msgstr "Zum Antworten anmelden" +#: wp-includes/admin-bar.php:541 wp-includes/post.php:1375 +msgid "New Post" +msgstr "Neuer Beitrag" -#: wp-includes/class-wp-customize-nav-menus.php:283 -#: wp-includes/script-loader.php:234 wp-includes/script-loader.php:432 -#: wp-includes/script-loader.php:761 -msgid "No results found." -msgstr "Es wurden keine Ergebnisse gefunden, die deinen Suchkriterien entsprechen." +#: wp-includes/post.php:67 +msgid "Edit Media" +msgstr "Medium bearbeiten" -#: wp-includes/media-template.php:330 wp-includes/media-template.php:528 -#: wp-includes/media.php:3562 -msgid "Edit Image" -msgstr "Bild bearbeiten" +#: wp-includes/post.php:1375 +msgid "New Page" +msgstr "Neue Seite" -#: wp-includes/media-template.php:697 wp-includes/media-template.php:772 -#: wp-includes/media-template.php:946 wp-includes/media.php:3175 -msgid "Full Size" -msgstr "Vollständige Größe" +#: wp-includes/media.php:3491 +msgid "Select" +msgstr "Auswählen" -#: wp-includes/class-wp-editor.php:1044 -msgid "Redo" -msgstr "Wiederholen" +#: wp-includes/class-wp-editor.php:1048 wp-includes/class-wp-editor.php:1687 +#: wp-includes/script-loader.php:269 wp-includes/script-loader.php:351 +#: wp-includes/script-loader.php:466 wp-includes/script-loader.php:986 +msgid "Close" +msgstr "Schließen" -#: wp-includes/deprecated.php:3122 wp-includes/functions.php:2597 -msgid "Are you sure you want to do this?" -msgstr "Bist du sicher, dass du das tun möchtest?" +#: wp-includes/post-template.php:1176 wp-includes/theme-compat/sidebar.php:89 +#: wp-includes/widgets/class-wp-widget-pages.php:31 +#: wp-includes/widgets/class-wp-widget-pages.php:55 +msgid "Pages" +msgstr "Seiten" #. translators: 1: Comment author URL #: wp-includes/pluggable.php:1489 wp-includes/pluggable.php:1650 @@ -10620,264 +10635,226 @@ msgstr "Bist du sicher, dass du das tun möchtest?" msgid "Email: %s" msgstr "E-Mail: %s" -#: wp-includes/deprecated.php:3178 -msgid "The GD image library is not installed." -msgstr "Die GD Image Library ist nicht installiert." +#: wp-includes/category-template.php:148 +msgid "Uncategorized" +msgstr "Allgemein" -#: wp-includes/media.php:3489 -msgid "Add Media" -msgstr "Dateien hinzufügen" +#: wp-includes/widgets/class-wp-widget-links.php:30 +msgid "Links" +msgstr "Links" -#: wp-includes/media-template.php:340 wp-includes/media-template.php:504 -msgid "Saved." -msgstr "Gespeichert." +#: wp-includes/post.php:1376 +msgid "View Page" +msgstr "Seite ansehen" -#: wp-includes/class-wp-editor.php:1199 -#: wp-includes/customize/class-wp-customize-background-position-control.php:50 -#: wp-includes/media-template.php:620 wp-includes/media-template.php:851 -#: wp-includes/media-template.php:917 -msgid "Left" -msgstr "Links" +#: wp-includes/post.php:2287 +msgid "Images" +msgstr "Bilder" -#: wp-includes/class-wp-editor.php:1201 -#: wp-includes/customize/class-wp-customize-background-position-control.php:52 -#: wp-includes/media-template.php:626 wp-includes/media-template.php:857 -#: wp-includes/media-template.php:923 -msgid "Right" -msgstr "Rechts" +#: wp-includes/admin-bar.php:875 wp-includes/admin-bar.php:876 +#: wp-includes/class-wp-editor.php:1708 wp-includes/media.php:3490 +msgid "Search" +msgstr "Suchen" -#: wp-includes/media-template.php:685 wp-includes/media-template.php:759 -#: wp-includes/media-template.php:934 -#: wp-includes/widgets/class-wp-widget-media-image.php:66 -msgid "Size" -msgstr "Größe" +#: wp-includes/script-loader.php:138 wp-includes/script-loader.php:299 +#: wp-includes/widgets/class-wp-widget-text.php:406 +#: wp-includes/widgets/class-wp-widget-text.php:421 +msgid "Dismiss" +msgstr "Verwerfen" -#: wp-includes/class-wp-editor.php:1197 wp-includes/media-template.php:612 -msgid "Alignment" -msgstr "Ausrichtung" +#: wp-includes/taxonomy.php:499 +msgid "All Categories" +msgstr "Alle Kategorien" -#: wp-includes/media-template.php:869 wp-includes/media-template.php:981 -msgid "Image URL" -msgstr "Bild-URL" +#: wp-includes/class-wp-customize-control.php:625 +#: wp-includes/class-wp-customize-nav-menus.php:1032 +msgid "Add" +msgstr "OK" -#: wp-includes/post.php:1376 -msgid "View Page" -msgstr "Seite ansehen" +#: wp-includes/taxonomy.php:508 +msgid "Add or remove tags" +msgstr "Schlagwörter hinzufügen oder entfernen" #: wp-includes/media.php:3493 wp-includes/script-loader.php:429 #: wp-includes/script-loader.php:565 wp-includes/script-loader.php:650 msgid "Update" msgstr "Aktualisieren" -#: wp-includes/category-template.php:148 -msgid "Uncategorized" -msgstr "Allgemein" - -#: wp-includes/class-wp-editor.php:1048 wp-includes/class-wp-editor.php:1687 -#: wp-includes/script-loader.php:269 wp-includes/script-loader.php:351 -#: wp-includes/script-loader.php:466 wp-includes/script-loader.php:986 -msgid "Close" -msgstr "Schließen" - -#: wp-includes/post.php:1375 -msgid "New Page" -msgstr "Neue Seite" +#: wp-includes/script-loader.php:564 +msgid "Schedule" +msgstr "Planen" -#: wp-includes/media.php:3139 wp-includes/script-loader.php:431 -#: wp-includes/script-loader.php:620 -msgid "(no title)" -msgstr "(kein Titel)" +#: wp-includes/script-loader.php:569 +msgid "Public" +msgstr "Öffentlich" -#: wp-includes/class-wp-editor.php:1200 -#: wp-includes/customize/class-wp-customize-background-position-control.php:51 -#: wp-includes/media-template.php:623 wp-includes/media-template.php:854 -#: wp-includes/media-template.php:920 -msgid "Center" -msgstr "Zentriert" +#: wp-includes/script-loader.php:570 +msgid "Public, Sticky" +msgstr "Öffentlich, Oben gehalten" -#: wp-includes/admin-bar.php:486 -msgid "Plugins" -msgstr "Plugins" +#: wp-includes/post.php:690 wp-includes/post.php:710 +#: wp-includes/script-loader.php:568 +msgid "Private" +msgstr "Privat" -#: wp-includes/revision.php:35 -msgid "Content" -msgstr "Inhalt" +#: wp-includes/class-wp-editor.php:1046 wp-includes/script-loader.php:554 +msgid "OK" +msgstr "OK" -#: wp-includes/comment-template.php:1596 wp-includes/script-loader.php:526 -msgid "Reply" -msgstr "Antworten" +#: wp-includes/script-loader.php:572 +msgid "Privately Published" +msgstr "Privat veröffentlicht" -#: wp-includes/comment-template.php:1083 -msgid "Pingback" -msgstr "Pingback" +#: wp-includes/script-loader.php:566 +msgid "Save as Pending" +msgstr "Als Review speichern" -#: wp-includes/comment-template.php:1082 -msgid "Trackback" -msgstr "Trackback" +#: wp-includes/media-template.php:869 wp-includes/media-template.php:981 +msgid "Image URL" +msgstr "Bild-URL" -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:56 -#: wp-includes/customize/class-wp-widget-area-customize-control.php:65 -#: wp-includes/script-loader.php:755 -msgid "Done" -msgstr "Fertig" +#: wp-includes/class-wp-editor.php:1098 +msgid "Media" +msgstr "Mediathek" -#: wp-includes/class-wp-theme.php:751 wp-includes/comment-template.php:31 -msgid "Anonymous" -msgstr "Anonymous" +#: wp-includes/media-template.php:330 wp-includes/media-template.php:528 +#: wp-includes/media.php:3562 +msgid "Edit Image" +msgstr "Bild bearbeiten" -#: wp-includes/widgets/class-wp-widget-rss.php:31 -msgid "RSS" -msgstr "RSS" +#: wp-includes/class-wp-editor.php:1196 wp-includes/media-template.php:398 +#: wp-includes/media-template.php:579 wp-includes/media-template.php:837 +#: wp-includes/media-template.php:902 +#: wp-includes/widgets/class-wp-widget-media-image.php:85 +msgid "Caption" +msgstr "Beschriftung" -#: wp-includes/taxonomy.php:116 -msgid "Edit Link Category" -msgstr "Linkkategorie bearbeiten" +#: wp-includes/class-wp-editor.php:1197 wp-includes/media-template.php:612 +msgid "Alignment" +msgstr "Ausrichtung" -#: wp-includes/class-wp-editor.php:1736 wp-includes/script-loader.php:430 -msgid "Add Link" -msgstr "Link hinzufügen" +#: wp-includes/media-template.php:685 wp-includes/media-template.php:759 +#: wp-includes/media-template.php:934 +#: wp-includes/widgets/class-wp-widget-media-image.php:66 +msgid "Size" +msgstr "Größe" -#: wp-includes/class-wp-editor.php:1128 -msgid "Target" -msgstr "Target" +#: wp-includes/media-template.php:697 wp-includes/media-template.php:772 +#: wp-includes/media-template.php:946 wp-includes/media.php:3175 +msgid "Full Size" +msgstr "Vollständige Größe" -#: wp-includes/comment-template.php:2198 -msgid "Name" -msgstr "Name" +#: wp-includes/media-template.php:695 wp-includes/media-template.php:770 +#: wp-includes/media-template.php:944 wp-includes/media.php:3173 +msgid "Medium" +msgstr "Mittel" -#: wp-includes/post-template.php:1176 wp-includes/theme-compat/sidebar.php:89 -#: wp-includes/widgets/class-wp-widget-pages.php:31 -#: wp-includes/widgets/class-wp-widget-pages.php:55 -msgid "Pages" -msgstr "Seiten" +#: wp-includes/class-wp-editor.php:1201 +#: wp-includes/customize/class-wp-customize-background-position-control.php:52 +#: wp-includes/media-template.php:626 wp-includes/media-template.php:857 +#: wp-includes/media-template.php:923 +msgid "Right" +msgstr "Rechts" -#: wp-includes/taxonomy.php:502 -msgid "Edit Tag" -msgstr "Schlagwort bearbeiten" +#: wp-includes/class-wp-editor.php:1200 +#: wp-includes/customize/class-wp-customize-background-position-control.php:51 +#: wp-includes/media-template.php:623 wp-includes/media-template.php:854 +#: wp-includes/media-template.php:920 +msgid "Center" +msgstr "Zentriert" -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:49 -msgid "Tags" -msgstr "Schlagwörter" +#: wp-includes/class-wp-editor.php:1199 +#: wp-includes/customize/class-wp-customize-background-position-control.php:50 +#: wp-includes/media-template.php:620 wp-includes/media-template.php:851 +#: wp-includes/media-template.php:917 +msgid "Left" +msgstr "Links" -#: wp-includes/post.php:1372 -msgctxt "post" -msgid "Add New" -msgstr "Erstellen" +#: wp-includes/media-template.php:340 wp-includes/media-template.php:504 +msgid "Saved." +msgstr "Gespeichert." -#: wp-includes/class-wp-editor.php:1098 -msgid "Media" -msgstr "Mediathek" +#: wp-includes/media.php:3489 +msgid "Add Media" +msgstr "Dateien hinzufügen" -#: wp-includes/widgets/class-wp-widget-links.php:30 -msgid "Links" -msgstr "Links" +#. translators: %s: file name +#: wp-includes/deprecated.php:3187 +msgid "File “%s” is not an image." +msgstr "Die Datei „%s“ ist kein Bild." -#: wp-includes/admin-bar.php:468 -msgid "Users" -msgstr "Benutzer" +#: wp-includes/deprecated.php:3178 +msgid "The GD image library is not installed." +msgstr "Die GD Image Library ist nicht installiert." -#: wp-includes/admin-bar.php:875 wp-includes/admin-bar.php:876 -#: wp-includes/class-wp-editor.php:1708 wp-includes/media.php:3490 -msgid "Search" -msgstr "Suchen" +#. translators: %s: file name +#: wp-includes/deprecated.php:3174 +msgid "File “%s” doesn’t exist?" +msgstr "Existiert die Datei „%s“ nicht?" -#: wp-includes/post.php:2287 -msgid "Images" -msgstr "Bilder" +#: wp-includes/media-template.php:694 wp-includes/media-template.php:769 +#: wp-includes/media-template.php:943 wp-includes/media.php:3172 +msgid "Thumbnail" +msgstr "Vorschaubild" -#: wp-login.php:725 -msgid "Username" -msgstr "Benutzername" +#: wp-includes/class-wp-editor.php:1044 +msgid "Redo" +msgstr "Wiederholen" #: wp-includes/general-template.php:409 wp-login.php:906 msgid "Password" msgstr "Passwort" -#: wp-includes/category-template.php:524 -#: wp-includes/theme-compat/sidebar.php:97 -#: wp-includes/widgets/class-wp-widget-categories.php:31 -#: wp-includes/widgets/class-wp-widget-categories.php:48 -msgid "Categories" -msgstr "Kategorien" - -#: wp-includes/taxonomy.php:497 -msgid "Search Categories" -msgstr "Kategorien suchen" - -#: wp-includes/class-wp-customize-widgets.php:784 -#: wp-includes/class-wp-editor.php:1256 wp-includes/media.php:3531 -msgid "Apply" -msgstr "Übernehmen" - -#: wp-includes/deprecated.php:688 wp-includes/media-template.php:629 -#: wp-includes/media-template.php:656 wp-includes/media-template.php:734 -#: wp-includes/media-template.php:860 wp-includes/media-template.php:875 -#: wp-includes/media-template.php:926 wp-includes/media-template.php:988 -#: wp-includes/media-template.php:1086 wp-includes/media-template.php:1175 -msgid "None" -msgstr "Keine" - -#: wp-includes/class-wp-editor.php:1077 -#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:128 -#: wp-includes/media-template.php:408 wp-includes/media-template.php:589 -msgid "Description" -msgstr "Beschreibung" +#: wp-login.php:725 +msgid "Username" +msgstr "Benutzername" -#: wp-signup.php:182 -msgid "No" -msgstr "Nein" +#: wp-includes/general-template.php:1524 +#: wp-includes/theme-compat/sidebar.php:91 +#: wp-includes/widgets/class-wp-widget-archives.php:31 +#: wp-includes/widgets/class-wp-widget-archives.php:49 +msgid "Archives" +msgstr "Archive" -#: wp-includes/class-wp-editor.php:1078 wp-includes/theme-compat/sidebar.php:27 -msgid "Author" -msgstr "Autor" +#: wp-includes/widgets.php:175 +msgid "Sidebar" +msgstr "Seitenleiste" -#: wp-includes/class-wp-customize-nav-menus.php:1063 -#: wp-includes/class-wp-editor.php:1131 wp-includes/class-wp-editor.php:1692 -#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:91 -#: wp-includes/media-template.php:376 wp-includes/media-template.php:557 -#: wp-includes/media.php:3488 -#: wp-includes/widgets/class-wp-widget-media-image.php:107 -msgid "URL" -msgstr "URL" +#: wp-includes/admin-bar.php:825 +msgid "Header" +msgstr "Header" -#: wp-includes/comment-template.php:1081 wp-includes/comment-template.php:2218 -msgctxt "noun" -msgid "Comment" -msgstr "Kommentar" +#: wp-includes/widgets/class-wp-widget-rss.php:74 +msgid "Unknown Feed" +msgstr "Unbekannter Feed" -#: wp-includes/class-walker-comment.php:244 -#: wp-includes/class-walker-comment.php:350 -#: wp-includes/class-wp-editor.php:1254 -msgid "Edit" -msgstr "Bearbeiten" +#: wp-includes/widgets/class-wp-widget-recent-comments.php:162 +msgid "Number of comments to show:" +msgstr "Anzahl der Kommentare, die angezeigt werden:" -#: wp-includes/taxonomy.php:504 -msgid "Update Category" -msgstr "Kategorie aktualisieren" +#: wp-includes/comment-template.php:1082 +msgid "Trackback" +msgstr "Trackback" -#: wp-includes/script-loader.php:529 -msgid "Comments" -msgstr "Kommentare" +#: wp-includes/comment-template.php:1083 +msgid "Pingback" +msgstr "Pingback" -#: wp-includes/class-wp-editor.php:1116 -msgid "Save" -msgstr "Speichern" +#: wp-includes/comment-template.php:1596 wp-includes/script-loader.php:526 +msgid "Reply" +msgstr "Antworten" #: wp-includes/script-loader.php:567 msgid "Save Draft" msgstr "Speichern" -#: wp-includes/class-wp-editor.php:1114 wp-includes/media-template.php:1247 -msgid "Preview" -msgstr "Vorschau" - -#: wp-includes/script-loader.php:572 -msgid "Privately Published" -msgstr "Privat veröffentlicht" +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:49 +msgid "Tags" +msgstr "Schlagwörter" -#: wp-includes/class-wp-editor.php:1046 wp-includes/script-loader.php:554 -msgid "OK" -msgstr "OK" +#: wp-includes/revision.php:35 +msgid "Content" +msgstr "Inhalt" #: wp-includes/class-wp-editor.php:1047 wp-includes/class-wp-editor.php:1733 #: wp-includes/media.php:3492 wp-includes/script-loader.php:415 @@ -10885,212 +10862,235 @@ msgstr "OK" msgid "Cancel" msgstr "Abbrechen" -#: wp-includes/post.php:690 wp-includes/post.php:710 -#: wp-includes/script-loader.php:568 -msgid "Private" -msgstr "Privat" - -#: wp-includes/script-loader.php:569 -msgid "Public" -msgstr "Öffentlich" - -#: wp-includes/script-loader.php:564 -msgid "Schedule" -msgstr "Planen" +#: wp-includes/admin-bar.php:486 +msgid "Plugins" +msgstr "Plugins" -#: wp-includes/taxonomy.php:499 -msgid "All Categories" -msgstr "Alle Kategorien" +#: wp-includes/widgets/class-wp-widget-recent-comments.php:31 +#: wp-includes/widgets/class-wp-widget-recent-comments.php:78 +msgid "Recent Comments" +msgstr "Neueste Kommentare" -#: wp-includes/revision.php:36 -msgid "Excerpt" -msgstr "Auszug" +#: wp-includes/class-wp-editor.php:1114 wp-includes/media-template.php:1247 +msgid "Preview" +msgstr "Vorschau" -#: wp-includes/class-wp-editor.php:1084 -msgid "Advanced" -msgstr "Fortgeschritten" +#: wp-includes/widgets/class-wp-widget-rss.php:31 +msgid "RSS" +msgstr "RSS" -#: wp-includes/post.php:95 -msgid "Revisions" -msgstr "Revisionen" +#: wp-includes/class-wp-theme.php:751 wp-includes/comment-template.php:31 +msgid "Anonymous" +msgstr "Anonymous" -#: wp-includes/general-template.php:1524 -#: wp-includes/theme-compat/sidebar.php:91 -#: wp-includes/widgets/class-wp-widget-archives.php:31 -#: wp-includes/widgets/class-wp-widget-archives.php:49 -msgid "Archives" -msgstr "Archive" +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:56 +#: wp-includes/customize/class-wp-widget-area-customize-control.php:65 +#: wp-includes/script-loader.php:755 +msgid "Done" +msgstr "Fertig" -#: wp-includes/script-loader.php:570 -msgid "Public, Sticky" -msgstr "Öffentlich, Oben gehalten" +#: wp-includes/admin-bar.php:468 +msgid "Users" +msgstr "Benutzer" -#: wp-includes/script-loader.php:563 -msgid "Publish" -msgstr "Veröffentlichen" +#: wp-includes/post.php:1374 +msgid "Edit Post" +msgstr "Beitrag bearbeiten" #: wp-includes/post.php:1376 msgid "View Post" msgstr "Beitrag ansehen" -#: wp-includes/post.php:1374 -msgid "Edit Post" -msgstr "Beitrag bearbeiten" +#: wp-includes/post.php:1372 +msgctxt "post" +msgid "Add New" +msgstr "Erstellen" -#: wp-includes/admin-bar.php:541 wp-includes/post.php:1375 -msgid "New Post" -msgstr "Neuer Beitrag" +#: wp-includes/taxonomy.php:502 +msgid "Edit Tag" +msgstr "Schlagwort bearbeiten" -#: wp-includes/widgets/class-wp-widget-rss.php:74 -msgid "Unknown Feed" -msgstr "Unbekannter Feed" +#: wp-includes/deprecated.php:688 wp-includes/media-template.php:629 +#: wp-includes/media-template.php:656 wp-includes/media-template.php:734 +#: wp-includes/media-template.php:860 wp-includes/media-template.php:875 +#: wp-includes/media-template.php:926 wp-includes/media-template.php:988 +#: wp-includes/media-template.php:1086 wp-includes/media-template.php:1175 +msgid "None" +msgstr "Keine" -#: wp-includes/script-loader.php:138 wp-includes/script-loader.php:299 -#: wp-includes/widgets/class-wp-widget-text.php:406 -#: wp-includes/widgets/class-wp-widget-text.php:421 -msgid "Dismiss" -msgstr "Verwerfen" +#: wp-includes/class-wp-editor.php:1077 +#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:128 +#: wp-includes/media-template.php:408 wp-includes/media-template.php:589 +msgid "Description" +msgstr "Beschreibung" -#: wp-includes/admin-bar.php:825 -msgid "Header" -msgstr "Header" +#: wp-includes/comment-template.php:2198 +msgid "Name" +msgstr "Name" -#. translators: %s: file name -#: wp-includes/deprecated.php:3174 -msgid "File “%s” doesn’t exist?" -msgstr "Existiert die Datei „%s“ nicht?" +#: wp-includes/class-wp-editor.php:1084 +msgid "Advanced" +msgstr "Fortgeschritten" -#. translators: %s: file name -#: wp-includes/deprecated.php:3187 -msgid "File “%s” is not an image." -msgstr "Die Datei „%s“ ist kein Bild." +#: wp-includes/class-wp-editor.php:1128 +msgid "Target" +msgstr "Target" -#: wp-includes/media-template.php:694 wp-includes/media-template.php:769 -#: wp-includes/media-template.php:943 wp-includes/media.php:3172 -msgid "Thumbnail" -msgstr "Vorschaubild" +#: wp-includes/category-template.php:524 +#: wp-includes/theme-compat/sidebar.php:97 +#: wp-includes/widgets/class-wp-widget-categories.php:31 +#: wp-includes/widgets/class-wp-widget-categories.php:48 +msgid "Categories" +msgstr "Kategorien" -#: wp-includes/post.php:67 -msgid "Edit Media" -msgstr "Medium bearbeiten" +#: wp-includes/class-wp-editor.php:1116 +msgid "Save" +msgstr "Speichern" -#: wp-includes/widgets.php:175 -msgid "Sidebar" -msgstr "Seitenleiste" +#: wp-includes/class-wp-editor.php:1736 wp-includes/script-loader.php:430 +msgid "Add Link" +msgstr "Link hinzufügen" -#: wp-includes/media-template.php:695 wp-includes/media-template.php:770 -#: wp-includes/media-template.php:944 wp-includes/media.php:3173 -msgid "Medium" -msgstr "Mittel" +#: wp-includes/taxonomy.php:504 +msgid "Update Category" +msgstr "Kategorie aktualisieren" + +#: wp-includes/taxonomy.php:116 +msgid "Edit Link Category" +msgstr "Linkkategorie bearbeiten" + +#: wp-includes/taxonomy.php:497 +msgid "Search Categories" +msgstr "Kategorien suchen" #: wp-includes/taxonomy.php:111 msgid "Link Categories" msgstr "Linkkategorien" -#: wp-includes/taxonomy.php:508 -msgid "Add or remove tags" -msgstr "Schlagwörter hinzufügen oder entfernen" +#: wp-includes/post.php:95 +msgid "Revisions" +msgstr "Revisionen" -#: wp-includes/widgets/class-wp-widget-recent-comments.php:31 -#: wp-includes/widgets/class-wp-widget-recent-comments.php:78 -msgid "Recent Comments" -msgstr "Neueste Kommentare" +#: wp-includes/revision.php:36 +msgid "Excerpt" +msgstr "Auszug" -#. translators: %s: search phrase -#: wp-includes/general-template.php:989 -msgid "Search Results for “%s”" -msgstr "Suchergebnisse für „%s“" +#: wp-includes/script-loader.php:563 +msgid "Publish" +msgstr "Veröffentlichen" -#: wp-includes/widgets/class-wp-widget-recent-comments.php:162 -msgid "Number of comments to show:" -msgstr "Anzahl der Kommentare, die angezeigt werden:" +#: wp-includes/script-loader.php:529 +msgid "Comments" +msgstr "Kommentare" -#: wp-includes/media.php:3491 -msgid "Select" -msgstr "Auswählen" +#: wp-includes/class-wp-customize-widgets.php:784 +#: wp-includes/class-wp-editor.php:1256 wp-includes/media.php:3531 +msgid "Apply" +msgstr "Übernehmen" #: wp-includes/class-wp-editor.php:1043 msgid "Undo" msgstr "Rückgängig" -#: wp-includes/class-wp-editor.php:1196 wp-includes/media-template.php:398 -#: wp-includes/media-template.php:579 wp-includes/media-template.php:837 -#: wp-includes/media-template.php:902 -#: wp-includes/widgets/class-wp-widget-media-image.php:85 -msgid "Caption" -msgstr "Beschriftung" +#. translators: %s: search phrase +#: wp-includes/general-template.php:989 +msgid "Search Results for “%s”" +msgstr "Suchergebnisse für „%s“" -#: wp-includes/script-loader.php:566 -msgid "Save as Pending" -msgstr "Als Review speichern" +#: wp-includes/class-walker-comment.php:244 +#: wp-includes/class-walker-comment.php:350 +#: wp-includes/class-wp-editor.php:1254 +msgid "Edit" +msgstr "Bearbeiten" -#: wp-includes/class-wp-customize-control.php:625 -#: wp-includes/class-wp-customize-nav-menus.php:1032 -msgid "Add" -msgstr "OK" +#: wp-signup.php:182 +msgid "No" +msgstr "Nein" -#: wp-activate.php:85 wp-includes/script-loader.php:707 -#: wp-includes/script-loader.php:708 -msgid "Activate" -msgstr "Aktivieren" +#: wp-includes/deprecated.php:3122 wp-includes/functions.php:2597 +msgid "Are you sure you want to do this?" +msgstr "Bist du sicher, dass du das tun möchtest?" -#: wp-includes/class-wp-customize-manager.php:412 -#: wp-includes/class-wp-customize-manager.php:477 -#: wp-includes/script-loader.php:467 -msgid "Cheatin’ uh?" -msgstr "Schummeln, was?" +#: wp-includes/comment-template.php:1081 wp-includes/comment-template.php:2218 +msgctxt "noun" +msgid "Comment" +msgstr "Kommentar" -#: wp-includes/class-wp-editor.php:1074 wp-includes/media-template.php:382 -#: wp-includes/media-template.php:563 wp-includes/revision.php:34 -#: wp-includes/script-loader.php:581 -msgid "Title" -msgstr "Titel" +#: wp-includes/class-wp-customize-nav-menus.php:1063 +#: wp-includes/class-wp-editor.php:1131 wp-includes/class-wp-editor.php:1692 +#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:91 +#: wp-includes/media-template.php:376 wp-includes/media-template.php:557 +#: wp-includes/media.php:3488 +#: wp-includes/widgets/class-wp-widget-media-image.php:107 +msgid "URL" +msgstr "URL" -#: wp-includes/post.php:691 wp-includes/post.php:711 -#: wp-includes/script-loader.php:573 -msgid "Published" -msgstr "Veröffentlicht" +#: wp-includes/class-wp-editor.php:1078 wp-includes/theme-compat/sidebar.php:27 +msgid "Author" +msgstr "Autor" -#: wp-includes/post.php:689 -msgid "Pending Review" -msgstr "Ausstehender Review" +#: wp-includes/admin-bar.php:286 wp-includes/class-wp-admin-bar.php:426 +msgid "Log Out" +msgstr "Abmelden" + +#: wp-includes/admin-bar.php:337 wp-includes/admin-bar.php:558 +#: wp-includes/deprecated.php:2790 +msgid "Visit Site" +msgstr "Zur Website" #: wp-includes/class-wp-editor.php:1628 msgid "Y/m/d" msgstr "d.m.Y" -#: wp-includes/admin-bar.php:286 wp-includes/class-wp-admin-bar.php:426 -msgid "Log Out" -msgstr "Abmelden" - #: wp-includes/post.php:688 wp-includes/post.php:709 msgid "Draft" msgstr "Entwurf" +#: wp-includes/post.php:689 +msgid "Pending Review" +msgstr "Ausstehender Review" + +#: wp-includes/post.php:691 wp-includes/post.php:711 +#: wp-includes/script-loader.php:573 +msgid "Published" +msgstr "Veröffentlicht" + +#: wp-includes/class-wp-editor.php:1074 wp-includes/media-template.php:382 +#: wp-includes/media-template.php:563 wp-includes/revision.php:34 +#: wp-includes/script-loader.php:581 +msgid "Title" +msgstr "Titel" + +#: wp-includes/post.php:1379 +msgid "No posts found." +msgstr "Keine Beiträge gefunden." + +#: wp-includes/class-wp-customize-manager.php:412 +#: wp-includes/class-wp-customize-manager.php:477 +#: wp-includes/script-loader.php:467 +msgid "Cheatin’ uh?" +msgstr "Schummeln, was?" + #: wp-activate.php:135 wp-includes/post-template.php:1603 msgid "Password:" msgstr "Passwort:" -#: wp-activate.php:97 wp-activate.php:131 -msgid "Your account is now active!" -msgstr "Dein Benutzerkonto ist nun aktiviert!" +#: wp-activate.php:134 wp-signup.php:228 +msgid "Username:" +msgstr "Benutzername:" #: wp-activate.php:123 msgid "An error occurred during the activation" msgstr "Ein Fehler ist während der Anmeldung aufgetreten." -#: wp-activate.php:134 wp-signup.php:228 -msgid "Username:" -msgstr "Benutzername:" - -#: wp-includes/post.php:1379 -msgid "No posts found." -msgstr "Keine Beiträge gefunden." +#: wp-activate.php:97 wp-activate.php:131 +msgid "Your account is now active!" +msgstr "Dein Benutzerkonto ist nun aktiviert!" -#: wp-includes/admin-bar.php:337 wp-includes/admin-bar.php:558 -#: wp-includes/deprecated.php:2790 -msgid "Visit Site" -msgstr "Zur Website" +#: wp-activate.php:85 wp-includes/script-loader.php:707 +#: wp-includes/script-loader.php:708 +msgid "Activate" +msgstr "Aktivieren" #: wp-activate.php:81 msgid "Activation Key:" diff --git a/wp-content/languages/es_ES.mo b/wp-content/languages/es_ES.mo index 1abc1f0f0d829a4fe67dc048f17940068505a0c9..0986828b0d0b879e067c0292c63c854546a51750 100644 Binary files a/wp-content/languages/es_ES.mo and b/wp-content/languages/es_ES.mo differ diff --git a/wp-content/languages/es_ES.po b/wp-content/languages/es_ES.po index c47ca52bd0851e0fb344350d352850479afe5da3..1d09cc512d3f0b0348e4e9bc74a416ad7428b753 100644 --- a/wp-content/languages/es_ES.po +++ b/wp-content/languages/es_ES.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-21 16:43:22+0000\n" +"PO-Revision-Date: 2017-10-04 05:23:56+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -117,7 +117,7 @@ msgstr "(sin autor)" #. translators: %s is the name of a city. #: wp-includes/script-loader.php:1062 msgid "City updated. Listing events near %s." -msgstr "Ciudad actualizada. Listado de eventos cercanos a %s." +msgstr "Ciudad actualizada. Listado de eventos cerca de %s." #. translators: %s is the name of the city we couldn't locate. Replace the #. examples with cities related to your locale. Test that they match the @@ -170,7 +170,7 @@ msgstr "Actualmente la red no permite registros." #: wp-signup.php:821 msgid "Greetings Network Administrator!" -msgstr "¡Saludos, administrador de la red!" +msgstr "¡Enhorabuena administrador de la red!" #: wp-includes/widgets/class-wp-widget-media.php:151 msgid "Title for the widget" @@ -234,7 +234,7 @@ msgstr "URL al archivo original del vídeo %s" #. translators: placeholder is a list of valid video file extensions #: wp-includes/widgets/class-wp-widget-media-video.php:45 msgid "Sorry, we can’t display the video file type selected. Please select a supported video file (%1$s) or stream (YouTube or Vimeo) instead." -msgstr "La siento, no podemos reproducir el tipo de archivo de vídeo seleccionado. Por favor, elige un tipo de archivo compatible (%1$s) o incrustado (YouTube o Vimeo) en su lugar." +msgstr "Lo siento, no podemos reproducir el tipo de archivo de vídeo seleccionado. Por favor, elige un tipo de archivo compatible (%1$s) o incrustado (YouTube o Vimeo) en su lugar." #: wp-includes/widgets/class-wp-widget-media-video.php:43 msgid "Video Widget" @@ -889,12 +889,12 @@ msgstr "Slug no válido." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:606 #: wp-includes/rest-api.php:1100 msgid "Invalid email address." -msgstr "Correo electrónico no valido" +msgstr "Dirección de correo electrónico no valida." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:510 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:716 msgid "Invalid comment content." -msgstr "Contenido del comentario no válido" +msgstr "Contenido del comentario no válido." #: wp-includes/rest-api/class-wp-rest-server.php:294 msgid "Invalid JSONP callback function." @@ -906,7 +906,7 @@ msgstr "Plantilla de página no válida." #: wp-includes/post.php:3136 wp-includes/rest-api.php:1094 msgid "Invalid date." -msgstr "Fecha incorrecta." +msgstr "Fecha no válida." #: wp-includes/theme.php:1398 msgid "Video is playing." @@ -2337,7 +2337,7 @@ msgstr "Entrada" #. translators: 1: .mp4, 2: .mov #: wp-includes/class-wp-customize-manager.php:4379 msgid "Only %1$s or %2$s files may be used for header video. Please convert your video file and try again, or, upload your video to YouTube and link it with the option below." -msgstr "Sólo se pueden usar archivos %1$s or %2$s para el vídeo de la cabecera. Por favor, convierte tu video e inténtalo de nuevo o sube tu vídeo a YouTube y enlázalo con la opción de abajo." +msgstr "Solo se pueden usar archivos %1$s or %2$s para el vídeo de la cabecera. Por favor, convierte tu video e inténtalo de nuevo o sube tu vídeo a YouTube y enlázalo con la opción de abajo." #: wp-includes/class-wp-customize-manager.php:4373 msgid "This video file is too large to use as a header video. Try a shorter video or optimize the compression settings and re-upload a file that is less than 8MB. Or, upload your video to YouTube and link it with the option below." @@ -3611,7 +3611,7 @@ msgstr "Archivo del tipo de contenido" #: wp-includes/ms-functions.php:574 msgid "Site names can only contain lowercase letters (a-z) and numbers." -msgstr "Los nombres de los sitios sólo pueden contener letras minúsculas (a-z) y números." +msgstr "Los nombres de los sitios solo pueden contener letras minúsculas (a-z) y números." #: wp-includes/ms-functions.php:435 wp-includes/ms-functions.php:442 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1101 @@ -5147,7 +5147,7 @@ msgstr "Medios" #: wp-includes/post.php:66 msgctxt "add new media" msgid "Add New" -msgstr "Agregar nuevo" +msgstr "Añadir nuevo" #: wp-login.php:870 msgid "<strong>You have successfully updated WordPress!</strong> Please log back in to see what’s new." @@ -6184,7 +6184,7 @@ msgstr "Cabeceras subidas al azar" #: wp-includes/admin-bar.php:172 msgid "https://wordpress.org/support/forum/requests-and-feedback" -msgstr "http://es.forums.wordpress.org/forum/peticiones-y-feedback" +msgstr "https://es.wordpress.org/support/forum/comunidad/peticiones-y-feedback/" #: wp-includes/admin-bar.php:164 wp-includes/update.php:129 #: wp-includes/update.php:321 wp-includes/update.php:499 @@ -7805,7 +7805,7 @@ msgstr "" #: wp-includes/plugin.php:801 msgid "Only a static class method or function can be used in an uninstall hook." -msgstr "Sólo se puede usar una función o método de una clase estática en un gancho de desinstalación." +msgstr "Solo se puede usar una función o método de una clase estática en un gancho de desinstalación." #: wp-includes/post.php:2884 msgid "Passing an integer number of posts is deprecated. Pass an array of arguments instead." @@ -9061,7 +9061,7 @@ msgstr "Error HTTP." #: wp-includes/script-loader.php:289 msgid "You may only upload 1 file." -msgstr "Sólo puedes subir 1 archivo." +msgstr "Solo puedes subir 1 archivo." #: wp-includes/script-loader.php:288 msgid "There was a configuration error. Please contact the server administrator." @@ -9739,103 +9739,103 @@ msgstr "Dom" #: wp-includes/class-wp-locale.php:137 wp-includes/class-wp-locale.php:146 #: wp-includes/class-wp-locale.php:155 msgid "Saturday" -msgstr "Sábado" +msgstr "sábado" #. translators: weekday #: wp-includes/class-wp-locale.php:136 wp-includes/class-wp-locale.php:145 #: wp-includes/class-wp-locale.php:154 msgid "Friday" -msgstr "Viernes" +msgstr "viernes" #. translators: weekday #: wp-includes/class-wp-locale.php:135 wp-includes/class-wp-locale.php:144 #: wp-includes/class-wp-locale.php:153 msgid "Thursday" -msgstr "Jueves" +msgstr "jueves" #. translators: weekday #: wp-includes/class-wp-locale.php:134 wp-includes/class-wp-locale.php:143 #: wp-includes/class-wp-locale.php:152 msgid "Wednesday" -msgstr "Miércoles" +msgstr "miércoles" #. translators: weekday #: wp-includes/class-wp-locale.php:133 wp-includes/class-wp-locale.php:142 #: wp-includes/class-wp-locale.php:151 msgid "Tuesday" -msgstr "Martes" +msgstr "martes" #. translators: weekday #: wp-includes/class-wp-locale.php:132 wp-includes/class-wp-locale.php:141 #: wp-includes/class-wp-locale.php:150 msgid "Monday" -msgstr "Lunes" +msgstr "lunes" #. translators: weekday #: wp-includes/class-wp-locale.php:131 wp-includes/class-wp-locale.php:140 #: wp-includes/class-wp-locale.php:149 msgid "Sunday" -msgstr "Domingo" +msgstr "domingo" #. translators: month name #: wp-includes/class-wp-locale.php:169 wp-includes/class-wp-locale.php:197 msgid "December" -msgstr "Diciembre" +msgstr "diciembre" #. translators: month name #: wp-includes/class-wp-locale.php:168 wp-includes/class-wp-locale.php:196 msgid "November" -msgstr "Noviembre" +msgstr "noviembre" #. translators: month name #: wp-includes/class-wp-locale.php:167 wp-includes/class-wp-locale.php:195 msgid "October" -msgstr "Octubre" +msgstr "octubre" #. translators: month name #: wp-includes/class-wp-locale.php:166 wp-includes/class-wp-locale.php:194 msgid "September" -msgstr "Septiembre" +msgstr "septiembre" #. translators: month name #: wp-includes/class-wp-locale.php:165 wp-includes/class-wp-locale.php:193 msgid "August" -msgstr "Agosto" +msgstr "agosto" #. translators: month name #: wp-includes/class-wp-locale.php:164 wp-includes/class-wp-locale.php:192 msgid "July" -msgstr "Julio" +msgstr "julio" #. translators: month name #: wp-includes/class-wp-locale.php:163 wp-includes/class-wp-locale.php:191 msgid "June" -msgstr "Junio" +msgstr "junio" #. translators: month name #: wp-includes/class-wp-locale.php:162 wp-includes/class-wp-locale.php:190 msgid "May" -msgstr "Mayo" +msgstr "mayo" #. translators: month name #: wp-includes/class-wp-locale.php:161 wp-includes/class-wp-locale.php:189 msgid "April" -msgstr "Abril" +msgstr "abril" #. translators: month name #: wp-includes/class-wp-locale.php:160 wp-includes/class-wp-locale.php:188 msgid "March" -msgstr "Marzo" +msgstr "marzo" #. translators: month name #: wp-includes/class-wp-locale.php:159 wp-includes/class-wp-locale.php:187 msgid "February" -msgstr "Febrero" +msgstr "febrero" #. translators: month name #: wp-includes/class-wp-locale.php:158 wp-includes/class-wp-locale.php:186 msgid "January" -msgstr "Enero" +msgstr "enero" #: wp-includes/class-wp-http-curl.php:189 #: wp-includes/class-wp-http-streams.php:228 diff --git a/wp-content/languages/fi.po b/wp-content/languages/fi.po index 8f34f551a14f1582193b8a4dcfdea78d1d33ce85..04057c9d1dad6cf7e6a71e2f12582070da3358a7 100644 --- a/wp-content/languages/fi.po +++ b/wp-content/languages/fi.po @@ -56,10 +56,6 @@ msgstr "Oletko testannut jo uutta “HTML”-vimpainta? Löydät sen t msgid "Hey, did you hear we have a “Custom HTML” widget now? You can find it by pressing the “<a class=\"add-widget\" href=\"#\">Add a Widget</a>” button and searching for “HTML”. Check it out to add some custom code to your site!" msgstr "Oletko huomannut, että käytössäsi on uusi “HTML”-vimpain? Löydät sen painamalla “<a class=\"add-widget\" href=\"#\">Lisää vimpain</a>” -nappulaa ja etsimällä “HTML”-vimpaimen. Voit lisätä sillä vapaamuotoista HTML-koodia sivustollesi." -#: wp-includes/widgets/class-wp-widget-text.php:36 -msgid "Arbitrary text." -msgstr "Vapaamuotoinen teksti." - #: wp-includes/widgets/class-wp-widget-text.php:399 msgid "New Custom HTML Widget" msgstr "Uusi HTML-vimpain" @@ -68,18 +64,22 @@ msgstr "Uusi HTML-vimpain" msgid "This widget may contain code that may work better in the new “Custom HTML” widget. How about trying that widget instead?" msgstr "Tähän vimpaimeen on saatettu syöttää koodia, joka voisi toimia paremmin uudessa “HTML”-vimpaimessa. Kokeilisitko vaihtaa uuteen vimpaimeen?" +#: wp-includes/widgets/class-wp-widget-text.php:36 +msgid "Arbitrary text." +msgstr "Vapaamuotoinen teksti." + #: wp-includes/default-widgets.php:207 msgid "Some HTML tags are not permitted, including:" msgstr "Jotkin HTML-tagit eivät ole sallittuja, kuten:" -#: wp-includes/default-widgets.php:96 -msgid "Arbitrary HTML code." -msgstr "Vapaamuotoinen HTML-koodi." - #: wp-includes/default-widgets.php:103 msgid "Custom HTML" msgstr "HTML" +#: wp-includes/default-widgets.php:96 +msgid "Arbitrary HTML code." +msgstr "Vapaamuotoinen HTML-koodi." + #: wp-includes/widgets/class-wp-widget-tag-cloud.php:141 msgid "Show tag counts" msgstr "Näytä avainsanojen lukumäärä" @@ -95,16 +95,16 @@ msgctxt "label for button in the media widget" msgid "Add Media" msgstr "Lisää media" -#: wp-includes/widgets/class-wp-widget-media-image.php:33 -msgctxt "label for button in the image widget" -msgid "Add Image" -msgstr "Lisää kuva" - #: wp-includes/widgets/class-wp-widget-media-video.php:33 msgctxt "label for button in the video widget" msgid "Add Video" msgstr "Lisää video" +#: wp-includes/widgets/class-wp-widget-media-image.php:33 +msgctxt "label for button in the image widget" +msgid "Add Image" +msgstr "Lisää kuva" + #: wp-includes/widgets/class-wp-widget-media-audio.php:33 msgctxt "label for button in the audio widget" msgid "Add Audio" @@ -114,23 +114,6 @@ msgstr "Lisää ääni" msgid "(no author)" msgstr "(ei tekijää)" -#: wp-includes/script-loader.php:1039 -msgid "Enter your closest city to find nearby events." -msgstr "Syötä lähin kaupunki löytääksesi lähistöllä olevia tapahtumia." - -#: wp-includes/script-loader.php:1040 -msgid "An error occurred. Please try again." -msgstr "Tapahtui virhe. Yritä uudelleen." - -#: wp-includes/script-loader.php:360 -msgctxt "no captions/subtitles" -msgid "None" -msgstr "Ei valittu" - -#: wp-includes/script-loader.php:1041 -msgid "Attend an upcoming event near you." -msgstr "Osallistu lähistölläsi olevaan tapahtumaan." - #. translators: %s is the name of a city. #: wp-includes/script-loader.php:1062 msgid "City updated. Listing events near %s." @@ -147,6 +130,48 @@ msgstr "Kaupunki päivitetty. Listataan tapahtumia lähellä kaupunkia %s." msgid "We couldn’t locate %s. Please try another nearby city. For example: Kansas City; Springfield; Portland." msgstr "Emme löytäneet kaupunkia %s. Yritä uudestaan toisella kaupungilla. Esimerkiksi: Helsinki; Tampere; Turku." +#: wp-includes/script-loader.php:1041 +msgid "Attend an upcoming event near you." +msgstr "Osallistu lähistölläsi olevaan tapahtumaan." + +#: wp-includes/script-loader.php:1040 +msgid "An error occurred. Please try again." +msgstr "Tapahtui virhe. Yritä uudelleen." + +#: wp-includes/script-loader.php:1039 +msgid "Enter your closest city to find nearby events." +msgstr "Syötä lähin kaupunki löytääksesi lähistöllä olevia tapahtumia." + +#: wp-includes/script-loader.php:360 +msgctxt "no captions/subtitles" +msgid "None" +msgstr "Ei valittu" + +#. translators: %s: network settings URL +#: wp-signup.php:842 +msgid "To change or disable registration go to your <a href=\"%s\">Options page</a>." +msgstr "Voit muuttaa tai poistaa rekisteröinnin käytöstä menemällä <a href=\"%s\">Asetukset-sivulle</a>." + +#: wp-signup.php:835 +msgid "The network currently allows both site and user registrations." +msgstr "Verkko sallii tällä hetkellä sekä sivuston että käyttäjän rekisteröinnit." + +#: wp-signup.php:832 +msgid "The network currently allows user registrations." +msgstr "Verkko sallii tällä hetkellä käyttäjän rekisteröinnit." + +#: wp-signup.php:829 +msgid "The network currently allows site registrations." +msgstr "Verkko sallii tällä hetkellä sivuston rekisteröinnit." + +#: wp-signup.php:826 +msgid "The network currently disallows registrations." +msgstr "Verkko estää tällä hetkellä rekisteröinnit." + +#: wp-signup.php:821 +msgid "Greetings Network Administrator!" +msgstr "Tervehdys, verkon ylläpitäjä!" + #: wp-includes/widgets/class-wp-widget-media.php:151 msgid "Title for the widget" msgstr "Vimpaimen otsikko" @@ -179,6 +204,10 @@ msgstr[1] "Mediavimpain (%d)" msgid "We can’t find that file. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." msgstr "Tiedostoa ei löytynyt. Tarkista <a href=\"%s\">mediakirjastosta</a> ettei tiedostoa ole poistettu." +#: wp-includes/widgets/class-wp-widget-media.php:71 +msgid "Add to Widget" +msgstr "Lisää vimpaimeen" + #: wp-includes/widgets/class-wp-widget-media.php:70 msgctxt "label for button in the media widget; should preferably not be longer than ~13 characters long" msgid "Edit Media" @@ -193,6 +222,15 @@ msgstr "Vaihda media" msgid "No media selected" msgstr "Ei mediaa valittuna" +#: wp-includes/widgets/class-wp-widget-media.php:59 +msgid "A media item." +msgstr "Mediatiedosto." + +#. translators: placeholder is video extension +#: wp-includes/widgets/class-wp-widget-media-video.php:93 +msgid "URL to the %s video source file" +msgstr "Videon %s lähdetiedoston URL-osoite" + #. translators: placeholder is a list of valid video file extensions #: wp-includes/widgets/class-wp-widget-media-video.php:45 msgid "Sorry, we can’t display the video file type selected. Please select a supported video file (%1$s) or stream (YouTube or Vimeo) instead." @@ -214,44 +252,6 @@ msgstr[1] "Videovimpain (%d)" msgid "We can’t find that video. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." msgstr "Videota ei löytynyt. Tarkista <a href=\"%s\">mediakirjastosta</a> ettei tiedostoa ole poistettu." -#: wp-includes/widgets/class-wp-widget-media.php:71 -msgid "Add to Widget" -msgstr "Lisää vimpaimeen" - -#. translators: placeholder is video extension -#: wp-includes/widgets/class-wp-widget-media-video.php:93 -msgid "URL to the %s video source file" -msgstr "Videon %s lähdetiedoston URL-osoite" - -#. translators: %s: network settings URL -#: wp-signup.php:842 -msgid "To change or disable registration go to your <a href=\"%s\">Options page</a>." -msgstr "Voit muuttaa tai poistaa rekisteröinnin käytöstä menemällä <a href=\"%s\">Asetukset-sivulle</a>." - -#: wp-signup.php:835 -msgid "The network currently allows both site and user registrations." -msgstr "Verkko sallii tällä hetkellä sekä sivuston että käyttäjän rekisteröinnit." - -#: wp-signup.php:832 -msgid "The network currently allows user registrations." -msgstr "Verkko sallii tällä hetkellä käyttäjän rekisteröinnit." - -#: wp-signup.php:829 -msgid "The network currently allows site registrations." -msgstr "Verkko sallii tällä hetkellä sivuston rekisteröinnit." - -#: wp-signup.php:826 -msgid "The network currently disallows registrations." -msgstr "Verkko estää tällä hetkellä rekisteröinnit." - -#: wp-signup.php:821 -msgid "Greetings Network Administrator!" -msgstr "Tervehdys, verkon ylläpitäjä!" - -#: wp-includes/widgets/class-wp-widget-media.php:59 -msgid "A media item." -msgstr "Mediatiedosto." - #: wp-includes/widgets/class-wp-widget-media-video.php:35 msgctxt "label for button in the video widget; should preferably not be longer than ~13 characters long" msgid "Edit Video" @@ -262,6 +262,10 @@ msgctxt "label for button in the video widget; should preferably not be longer t msgid "Replace Video" msgstr "Vaihda video" +#: wp-includes/widgets/class-wp-widget-media-video.php:27 +msgid "Displays a video from the media library or from YouTube, Vimeo, or another provider." +msgstr "Näytä video mediakirjastosta tai suoratoista YouTubesta, Vimeosta tai muusta lähteestä." + #. translators: placeholder is image filename #: wp-includes/widgets/class-wp-widget-media-image.php:332 msgid "Current image: %s" @@ -303,6 +307,11 @@ msgstr "Näyttää kuvan." msgid "Unable to preview media due to an unknown error." msgstr "Median esikatselu epäonnistui tuntemattoman virheen takia." +#. translators: placeholder is audio extension +#: wp-includes/widgets/class-wp-widget-media-audio.php:83 +msgid "URL to the %s audio source file" +msgstr "Äänileikkeen %s lähdetiedoston URL-osoite" + #: wp-includes/widgets/class-wp-widget-media-audio.php:44 msgid "Looks like this isn’t the correct kind of file. Please link to an audio file instead." msgstr "Näyttää siltä että tiedostotyyppi ei ole tuettu. Ole hyvä ja valitse sopiva äänitiedosto." @@ -385,25 +394,16 @@ msgctxt "plugin" msgid "Updating %s..." msgstr "Päivitetään %s..." -#: wp-includes/script-loader.php:649 -msgctxt "theme" -msgid "Updated!" -msgstr "Päivitetty!" - #. translators: %s: Plugin name and version #: wp-includes/script-loader.php:653 msgctxt "plugin" msgid "Update %s now" msgstr "Päivitä %s nyt" -#. translators: placeholder is audio extension -#: wp-includes/widgets/class-wp-widget-media-audio.php:83 -msgid "URL to the %s audio source file" -msgstr "Äänileikkeen %s lähdetiedoston URL-osoite" - -#: wp-includes/widgets/class-wp-widget-media-video.php:27 -msgid "Displays a video from the media library or from YouTube, Vimeo, or another provider." -msgstr "Näytä video mediakirjastosta tai suoratoista YouTubesta, Vimeosta tai muusta lähteestä." +#: wp-includes/script-loader.php:649 +msgctxt "theme" +msgid "Updated!" +msgstr "Päivitetty!" #: wp-includes/script-loader.php:648 msgctxt "plugin" @@ -430,10 +430,6 @@ msgstr "%1$s täytyy olla suurempi tai yhtä suuri kuin %2$d" msgid "%1$s must be greater than %2$d" msgstr "%1$s täytyy olla suurempi kuin %2$d" -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:335 -msgid "The page number requested is larger than the number of pages available." -msgstr "Pyydetty sivunumero on suurempi kuin käytettävissä olevien sivujen määrä." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1361 msgid "Limit result set to users with one or more specific slugs." msgstr "Rajaa tulokset käyttäjiin yhdellä tai useammalla tietyllä polkutunnuksella." @@ -442,6 +438,10 @@ msgstr "Rajaa tulokset käyttäjiin yhdellä tai useammalla tietyllä polkutunnu msgid "Limit result set to terms with one or more specific slugs." msgstr "Rajaa tulokset termeihin yhdellä tai useammalla polkutunnuksella." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:335 +msgid "The page number requested is larger than the number of pages available." +msgstr "Pyydetty sivunumero on suurempi kuin käytettävissä olevien sivujen määrä." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:163 msgid "You need to define an include parameter to order by include." msgstr "Include-parametri tulee määritellä, jotta sen mukaan voidaan järjestää." @@ -450,6 +450,11 @@ msgstr "Include-parametri tulee määritellä, jotta sen mukaan voidaan järjest msgid "All features, supported by the post type." msgstr "Kaikki ominaisuudet joita sisältötyyppi tukee." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:79 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:101 +msgid "The password for the parent post of the comment (if the post is password protected)." +msgstr "Kommentin artikkelin salasana (jos artikkeli on salasanasuojattu)." + #: wp-includes/post.php:1390 msgctxt "page" msgid "Use as featured image" @@ -495,16 +500,6 @@ msgstr "Artikkelikuva" msgid "%1$s is deprecated. The callback from %2$s is used instead." msgstr "%1$s on vanhentunut. Sen sijaan käytetään %2$s:n takaisinkutsua." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:79 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:101 -msgid "The password for the parent post of the comment (if the post is password protected)." -msgstr "Kommentin artikkelin salasana (jos artikkeli on salasanasuojattu)." - -#. translators: 1: suggested width number, 2: suggested height number. -#: wp-includes/media-template.php:240 wp-includes/media.php:3572 -msgid "Suggested image dimensions: %1$s by %2$s pixels." -msgstr "Suositeltu kuvakoko: %1$s x %2$s pikseliä (leveys x korkeus)." - #: wp-includes/media.php:3523 wp-includes/script-loader.php:80 msgid "" "You are about to permanently delete these items from your site.\n" @@ -515,10 +510,6 @@ msgstr "" "Toimintoa ei voi perua. \n" "Napsauta 'Peruuta' keskeyttääksesi, 'OK' vahvistaaksesi poiston." -#: wp-includes/functions.php:2132 wp-includes/script-loader.php:283 -msgid "Sorry, this file type is not permitted for security reasons." -msgstr "Tietoturvasyistä tämän tiedostotyypin käyttö on kielletty." - #: wp-includes/media.php:3522 msgid "" "You are about to permanently delete this item from your site.\n" @@ -529,9 +520,14 @@ msgstr "" "Tätä toimintoa ei voi kumota.\n" " 'Kumoa' pysäyttääksesi, 'OK' poistaaksesi." -#: wp-includes/comment.php:3010 -msgid "Sorry, comments are not allowed for this item." -msgstr "Pahoittelemme, kohteen kommentointi ei ole sallittu." +#. translators: 1: suggested width number, 2: suggested height number. +#: wp-includes/media-template.php:240 wp-includes/media.php:3572 +msgid "Suggested image dimensions: %1$s by %2$s pixels." +msgstr "Suositeltu kuvakoko: %1$s x %2$s pikseliä (leveys x korkeus)." + +#: wp-includes/functions.php:2132 wp-includes/script-loader.php:283 +msgid "Sorry, this file type is not permitted for security reasons." +msgstr "Tietoturvasyistä tämän tiedostotyypin käyttö on kielletty." #. translators: 1: */, 2: /* #: wp-includes/customize/class-wp-customize-custom-css-setting.php:248 @@ -545,16 +541,16 @@ msgid_plural "There are %1$s unclosed code comments. Close each comment with %2$ msgstr[0] "%1$s päättymätön koodikommentti löydettiin. Sulje jokainen kommentti merkinnällä %2$s." msgstr[1] "%1$s päättymätöntä koodikommenttia löydettiin. Sulje jokainen kommentti merkinnällä %2$s." -#. translators: 1: (), 2: ), 3: ( -#: wp-includes/customize/class-wp-customize-custom-css-setting.php:204 -msgid "Your parentheses %1$s are imbalanced. Make sure there is a closing %2$s for every opening %3$s." -msgstr "Sulkeet %1$s eivät täsmää. Varmista että jokaista sulkevaa %2$s:a kohden on alkava %3$s." - #. translators: 1: " (double quote) #: wp-includes/customize/class-wp-customize-custom-css-setting.php:216 msgid "Your double quotes %1$s are uneven. Make sure there is a closing %1$s for every opening %1$s." msgstr "Lainausmerkit (%1$s) eivät täsmää. Varmista että jokaista sulkevaa %1$s:a kohden on alkava %1$s." +#. translators: 1: (), 2: ), 3: ( +#: wp-includes/customize/class-wp-customize-custom-css-setting.php:204 +msgid "Your parentheses %1$s are imbalanced. Make sure there is a closing %2$s for every opening %3$s." +msgstr "Sulkeet %1$s eivät täsmää. Varmista että jokaista sulkevaa %2$s:a kohden on alkava %3$s." + #. translators: 1: [], 2: ], 3: [ #: wp-includes/customize/class-wp-customize-custom-css-setting.php:192 msgid "Your brackets %1$s are imbalanced. Make sure there is a closing %2$s for every opening %3$s." @@ -565,6 +561,10 @@ msgstr "Hakasulkeet %1$s eivät täsmää. Varmista että jokaista sulkevaa %2$s msgid "Your curly brackets %1$s are imbalanced. Make sure there is a closing %2$s for every opening %3$s." msgstr "Hakasulkeet %1$s eivät täsmää. Varmista että jokaista sulkevaa %2$s:a kohden on alkava %3$s." +#: wp-includes/comment.php:3010 +msgid "Sorry, comments are not allowed for this item." +msgstr "Pahoittelemme, kohteen kommentointi ei ole sallittu." + #: wp-includes/class-wp-oembed-controller.php:141 msgid "Sorry, you are not allowed to make proxied oEmbed requests." msgstr "Välityspalvelimen kautta tehtyjä oEmbed-kutsuja ei sallita." @@ -573,21 +573,6 @@ msgstr "Välityspalvelimen kautta tehtyjä oEmbed-kutsuja ei sallita." msgid "Whether to perform an oEmbed discovery request for non-whitelisted providers." msgstr "Tehdäänkö oEmbed-tiedustelukutsu ennalta hyväksyttyjen palveluntarjoajien palveluihin." -#: wp-includes/class-wp-editor.php:1141 -msgctxt "Short for red in RGB" -msgid "R" -msgstr "R" - -#: wp-includes/class-wp-editor.php:1143 -msgctxt "Short for blue in RGB" -msgid "B" -msgstr "B" - -#: wp-includes/class-wp-editor.php:1142 -msgctxt "Short for green in RGB" -msgid "G" -msgstr "G" - #: wp-includes/class-wp-oembed-controller.php:84 msgid "The maximum height of the embed frame in pixels." msgstr "Upotettavan kehyksen maksimikorkeus pikseleinä." @@ -604,30 +589,38 @@ msgstr "Käytettävä oEmbed-muoto." msgid "The URL of the resource for which to fetch oEmbed data." msgstr "Sen resurssin URL jonka oEmbed-tiedot noudetaan." -#: wp-includes/class-wp-editor.php:1093 -msgid "Date/time" -msgstr "Päivämäärä/aika" +#: wp-includes/class-wp-editor.php:1143 +msgctxt "Short for blue in RGB" +msgid "B" +msgstr "B" -#: wp-includes/class-wp-editor.php:1095 -msgid "Table of Contents" -msgstr "Sisällysluettelo" +#: wp-includes/class-wp-editor.php:1142 +msgctxt "Short for green in RGB" +msgid "G" +msgstr "G" + +#: wp-includes/class-wp-editor.php:1141 +msgctxt "Short for red in RGB" +msgid "R" +msgstr "R" #: wp-includes/class-wp-editor.php:1099 msgid "Insert/edit media" msgstr "Lisää media/muokkaa mediaa" -#. translators: placeholder is the total number of widget areas registered -#: wp-includes/class-wp-customize-widgets.php:770 -msgid "Your theme has %s widget area, but this particular page doesn’t display it." -msgid_plural "Your theme has %s widget areas, but this particular page doesn’t display them." -msgstr[0] "Teemassasi on %s vimpainalue, mutta tämä sivu ei näytä sitä." -msgstr[1] "Teemassasi on %s vimpainaluetta, mutta tämä sivu ei näytä niitä." - #: wp-includes/class-wp-editor.php:1096 msgid "Insert/edit code sample" msgstr "Lisää/muokkaa koodiesimerkkiä" -#: wp-includes/class-wp-editor.php:1069 +#: wp-includes/class-wp-editor.php:1095 +msgid "Table of Contents" +msgstr "Sisällysluettelo" + +#: wp-includes/class-wp-editor.php:1093 +msgid "Date/time" +msgstr "Päivämäärä/aika" + +#: wp-includes/class-wp-editor.php:1069 msgctxt "Id for link anchor (TinyMCE)" msgid "Id" msgstr "ID" @@ -640,11 +633,17 @@ msgstr "ID:n tulisi alkaa kirjaimella ja jatkua vain kirjaimilla, numeroilla, yh msgid "You can navigate to other pages on your site while using the Customizer to view and edit the widgets displayed on those pages." msgstr "Voit navigoida toisille sivuille sivustolla ja samalla tarkastella ja muokata noilla sivuilla olevia vimpaimia Mukauttimella." -#. translators: placeholder is the number of other widget areas registered but -#. not rendered -#: wp-includes/class-wp-customize-widgets.php:745 -msgid "Your theme has 1 other widget area, but this particular page doesn’t display it." -msgstr "Teemassasi on yksi muu vimpainalue, mutta tämä sivu ei näytä sitä." +#. translators: placeholder is the total number of widget areas registered +#: wp-includes/class-wp-customize-widgets.php:770 +msgid "Your theme has %s widget area, but this particular page doesn’t display it." +msgid_plural "Your theme has %s widget areas, but this particular page doesn’t display them." +msgstr[0] "Teemassasi on %s vimpainalue, mutta tämä sivu ei näytä sitä." +msgstr[1] "Teemassasi on %s vimpainaluetta, mutta tämä sivu ei näytä niitä." + +#. translators: placeholder is the total number of widget areas registered +#: wp-includes/class-wp-customize-widgets.php:765 +msgid "Your theme has 1 widget area, but this particular page doesn’t display it." +msgstr "Teemassa on yksi vimpainalue, mutta tämä sivu ei näytä sitä." #. translators: placeholder is the number of other widget areas registered but #. not rendered @@ -654,10 +653,11 @@ msgid_plural "Your theme has %s other widget areas, but this particular page doe msgstr[0] "Teemassasi on %s muu vimpainalue, mutta tämä sivu ei näytä sitä." msgstr[1] "Teemassasi on %s muuta vimpainaluetta, mutta tämä sivu ei näytä niitä." -#. translators: placeholder is the total number of widget areas registered -#: wp-includes/class-wp-customize-widgets.php:765 -msgid "Your theme has 1 widget area, but this particular page doesn’t display it." -msgstr "Teemassa on yksi vimpainalue, mutta tämä sivu ei näytä sitä." +#. translators: placeholder is the number of other widget areas registered but +#. not rendered +#: wp-includes/class-wp-customize-widgets.php:745 +msgid "Your theme has 1 other widget area, but this particular page doesn’t display it." +msgstr "Teemassasi on yksi muu vimpainalue, mutta tämä sivu ei näytä sitä." #: wp-includes/option.php:1771 msgid "This address is used for admin purposes, like new user notification." @@ -668,14 +668,6 @@ msgstr "Tätä osoitetta käytetään ylläpidon tehtäviin, kuten uusien käytt msgid "Unique identifier for the term." msgstr "Yksilöivä tunniste termille." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:222 -msgid "A human-readable description of the post type." -msgstr "Kuvaus sisältötyypistä." - -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:228 -msgid "Whether or not the post type should have children." -msgstr "Onko sisältötyyppi hierarkinen vai ei." - #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:127 msgid "Required to be true, as terms do not support trashing." msgstr "Arvon tulee olla true, koska termit eivät tue roskakoria." @@ -702,6 +694,14 @@ msgstr "Alfanumeerinen tunniste sisältötyypille." msgid "Human-readable labels for the post type for various contexts." msgstr "Ihmisluettavat selitteet sisältötyypille eri asiayhteyksissä." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:228 +msgid "Whether or not the post type should have children." +msgstr "Onko sisältötyyppi hierarkinen vai ei." + +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:222 +msgid "A human-readable description of the post type." +msgstr "Kuvaus sisältötyypistä." + #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:216 msgid "All capabilities used by the post type." msgstr "Kaikki sisältötyyppiin liittyvät käyttöoikeudet." @@ -727,26 +727,26 @@ msgstr "Avatarien URL-osoitteet käyttäjälle." msgid "Roles assigned to the user." msgstr "Käyttäjälle asetetut roolit." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1195 -msgid "URL of the user." -msgstr "Käyttäjän URL-osoite." - -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1201 -msgid "Description of the user." -msgstr "Käyttäjän kuvaus." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1219 +msgid "The nickname for the user." +msgstr "Käyttäjän lempinimi." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1213 msgid "Locale for the user." msgstr "Käyttäjän kieli." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1219 -msgid "The nickname for the user." -msgstr "Käyttäjän lempinimi." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1206 msgid "Author URL of the user." msgstr "URL-osoite käyttäjän arkistoon." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1201 +msgid "Description of the user." +msgstr "Käyttäjän kuvaus." + +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1195 +msgid "URL of the user." +msgstr "Käyttäjän URL-osoite." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1180 msgid "Last name for the user." msgstr "Käyttäjän sukunimi." @@ -776,14 +776,14 @@ msgstr "Virhe luodessa uutta käyttäjää." msgid "The parent term ID." msgstr "Ylemmän tason termin ID." -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:848 -msgid "URL of the term." -msgstr "Termin URL-osoite." - #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:855 msgid "HTML title for the term." msgstr "HTML-muotoiltu otsikko termille." +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:848 +msgid "URL of the term." +msgstr "Termin URL-osoite." + #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:604 msgid "The term cannot be deleted." msgstr "Tätä termiä ei voida poistaa." @@ -797,14 +797,14 @@ msgstr "Ylemmän tason termiä ei voida asettaa, taksonomia ei ole hierarkinen." msgid "Term does not exist." msgstr "Termiä ei ole olemassa." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:286 -msgid "Types associated with the taxonomy." -msgstr "Taksonomiaan liitetyt tyypit." - #: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:268 msgid "The title for the taxonomy." msgstr "Taksonomian otsikko." +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:286 +msgid "Types associated with the taxonomy." +msgstr "Taksonomiaan liitetyt tyypit." + #: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:240 msgid "The title for the post type." msgstr "Sisältötyypin otsikko." @@ -813,27 +813,23 @@ msgstr "Sisältötyypin otsikko." msgid "Cannot view post type." msgstr "Sisältötyyppiä ei voida tarkastella." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:134 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:186 -msgid "Invalid status." -msgstr "Kelpaamaton tila." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:257 +msgid "The title for the status." +msgstr "Tilan otsikko." #: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:140 msgid "Cannot view status." msgstr "Tilaa ei voida tarkastella." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:257 -msgid "The title for the status." -msgstr "Tilan otsikko." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:134 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:186 +msgid "Invalid status." +msgstr "Kelpaamaton tila." #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:468 msgid "URL to the original attachment file." msgstr "URL-osoite alkuperäiseen liitetiedostoon." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:418 -msgid "The attachment description." -msgstr "Liitetiedoston kuvaus." - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:448 msgid "The attachment MIME type." msgstr "Liitetiedoston MIME-tyyppi." @@ -842,6 +838,10 @@ msgstr "Liitetiedoston MIME-tyyppi." msgid "Attachment type." msgstr "Liitetiedoston tyyppi." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:418 +msgid "The attachment description." +msgstr "Liitetiedoston kuvaus." + #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:396 msgid "The attachment caption." msgstr "Liitetiedoston kuvateksti." @@ -882,6 +882,10 @@ msgstr "RSS-virhe:" msgid "Cannot create a comment with that type." msgstr "Tämän tyyppistä kommenttia ei voida luoda." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:614 +msgid "Invalid slug." +msgstr "Virheellinen polkutunnus." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:606 #: wp-includes/rest-api.php:1100 msgid "Invalid email address." @@ -904,10 +908,6 @@ msgstr "Sivupohja ei kelpaa." msgid "Invalid date." msgstr "Päivämäärä ei kelpaa." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:614 -msgid "Invalid slug." -msgstr "Virheellinen polkutunnus." - #: wp-includes/theme.php:1398 msgid "Video is playing." msgstr "Videota toistetaan." @@ -931,15 +931,20 @@ msgctxt "Theme starter content" msgid "News" msgstr "Uutiset" +#: wp-includes/theme.php:2074 +msgctxt "Theme starter content" +msgid "This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form." +msgstr "Tällä sivulla on joitakin perusyhteystietoja, kuten osoite ja puhelinnumero. Saatat myös haluta kokeilla lisäosaa, jolla voit lisätä yhteydenottolomakkeen." + #: wp-includes/theme.php:2069 msgctxt "Theme starter content" msgid "You might be an artist who would like to introduce yourself and your work here or maybe you’re a business with a mission to describe." msgstr "Saatat olla taitelija, joka haluaisi esitellä itsensä ja töitänsä täällä. Tai ehkä sinulla on kuvailua kaipaava yritys." -#: wp-includes/theme.php:2074 +#: wp-includes/theme.php:2064 msgctxt "Theme starter content" -msgid "This is a page with some basic contact information, such as an address and phone number. You might also try a plugin to add a contact form." -msgstr "Tällä sivulla on joitakin perusyhteystietoja, kuten osoite ja puhelinnumero. Saatat myös haluta kokeilla lisäosaa, jolla voit lisätä yhteydenottolomakkeen." +msgid "Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time." +msgstr "Tervetuloa sivustollesi! Tämä on etusivusi, jonka suurin osa sivustosi vierailijoista näkee saapuessaan sivustollesi ensimmäistä kertaa." #: wp-includes/theme.php:1981 msgctxt "Theme starter content" @@ -951,21 +956,16 @@ msgctxt "Theme starter content" msgid "Recent Comments" msgstr "Viimeisimmät kommentit" -#: wp-includes/theme.php:2064 +#: wp-includes/theme.php:1975 msgctxt "Theme starter content" -msgid "Welcome to your site! This is your homepage, which is what most visitors will see when they come to your site for the first time." -msgstr "Tervetuloa sivustollesi! Tämä on etusivusi, jonka suurin osa sivustosi vierailijoista näkee saapuessaan sivustollesi ensimmäistä kertaa." +msgid "Meta" +msgstr "Meta" #: wp-includes/theme.php:1969 msgctxt "Theme starter content" msgid "Calendar" msgstr "Kalenteri" -#: wp-includes/theme.php:1975 -msgctxt "Theme starter content" -msgid "Meta" -msgstr "Meta" - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:687 msgid "Sorry, you are not allowed to change the comment type." msgstr "Valitettavasti sinulla ei ole oikeutta muuttaa kommentin tyyppiä." @@ -1031,6 +1031,11 @@ msgctxt "Theme starter content" msgid "YouTube" msgstr "YouTube" +#: wp-includes/theme.php:2044 +msgctxt "Theme starter content" +msgid "Pinterest" +msgstr "Pinterest" + #: wp-includes/theme.php:2040 msgctxt "Theme starter content" msgid "LinkedIn" @@ -1041,11 +1046,6 @@ msgctxt "Theme starter content" msgid "GitHub" msgstr "GitHub" -#: wp-includes/theme.php:2044 -msgctxt "Theme starter content" -msgid "Pinterest" -msgstr "Pinterest" - #: wp-includes/theme.php:2028 msgctxt "Theme starter content" msgid "Foursquare" @@ -1093,6 +1093,10 @@ msgstr "Tämä teema ei tue video-otsakkeita tällä sivulla. Navigoi etusivulle msgid "Select Video" msgstr "Valitse video" +#: wp-includes/class-wp-customize-manager.php:4020 +msgid "Change Video" +msgstr "Vaihda video" + #: wp-includes/class-wp-customize-manager.php:4021 #: wp-includes/widgets/class-wp-widget-media-video.php:32 msgid "No video selected" @@ -1102,10 +1106,6 @@ msgstr "Ei valittua videota" msgid "Choose Video" msgstr "Valitse video" -#: wp-includes/class-wp-customize-manager.php:4020 -msgid "Change Video" -msgstr "Vaihda video" - #: wp-includes/theme.php:2087 msgctxt "Theme starter content" msgid "A homepage section" @@ -1168,13 +1168,13 @@ msgstr "Haku" #: wp-includes/theme.php:1954 msgctxt "Theme starter content" -msgid "Monday—Friday: 9:00AM–5:00PM" -msgstr "Maanantaista perjantaihin: 9:00–17:00" +msgid "Saturday & Sunday: 11:00AM–3:00PM" +msgstr "Lauantaisin ja sunnuntaisin: 11:00–15:00" #: wp-includes/theme.php:1954 msgctxt "Theme starter content" -msgid "Saturday & Sunday: 11:00AM–3:00PM" -msgstr "Lauantaisin ja sunnuntaisin: 11:00–15:00" +msgid "Monday—Friday: 9:00AM–5:00PM" +msgstr "Maanantaista perjantaihin: 9:00–17:00" #: wp-includes/theme.php:1953 msgctxt "Theme starter content" @@ -1236,36 +1236,36 @@ msgstr "Dokumentin esikatselu" msgid "Header Media" msgstr "Otsakkeen media" +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:295 +msgid "REST base route for the taxonomy." +msgstr "REST-rajapinnan juurireitti taksonomialle." + #. translators: %s: add new page label #: wp-includes/class-wp-customize-control.php:620 msgid "+ %s" msgstr "+ %s" -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:295 -msgid "REST base route for the taxonomy." -msgstr "REST-rajapinnan juurireitti taksonomialle." - #: wp-includes/l10n.php:1198 msgctxt "default site language" msgid "Site Default" msgstr "Sivuston oletuskieli" -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:426 -msgid "Description for the object, as it exists in the database." -msgstr "Resurssin kuvaus sellaisena kuin se on tietokannassa. " - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:431 msgid "HTML description for the object, transformed for display." msgstr "Kohteen HTML-muotoinen kuvaus, sellaisena kuin se tulostetaan selaimelle." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:404 -msgid "Caption for the attachment, as it exists in the database." -msgstr "Liitteen kuvateksti, sellaisena kuin se on tietokannassa." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:426 +msgid "Description for the object, as it exists in the database." +msgstr "Resurssin kuvaus sellaisena kuin se on tietokannassa. " #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:409 msgid "HTML caption for the attachment, transformed for display." msgstr "Liitteen HTML-muotoinen kuvaus, sellaisena kuin se tulostetaan selaimelle." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:404 +msgid "Caption for the attachment, as it exists in the database." +msgstr "Liitteen kuvateksti, sellaisena kuin se on tietokannassa." + #: wp-includes/class-wp-customize-manager.php:4215 msgid "CSS allows you to customize the appearance and layout of your site with code. Separate CSS is saved for each of your themes. In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key." msgstr "CSS mahdollistaa sivuston ulkoasun räätälöinnin koodilla. Erillinen CSS tallennetaan kuhunkin teemaasi. Muokkauskentässä sarkain-painike (Tab) tuottaa sarkainmerkin. Siirtyäksesi seuraavaan kenttään, paina Esc ja sen jälkeen sarkain-nappia." @@ -1278,14 +1278,14 @@ msgstr "Anna kelvollinen YouTube-verkko-osoite" msgid "Expand Main menu" msgstr "Laajenna päävalikko" -#: wp-includes/class-wp-customize-manager.php:4031 -msgid "Or, enter a YouTube URL:" -msgstr "Tai, syötä Youtube URL:" - #: wp-includes/script-loader.php:82 msgid "Collapse Main menu" msgstr "Piilota päävalikko" +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:747 +msgid "Users do not support trashing. Set force=true to delete." +msgstr "Käyttäjiä ei voi siirtää roskakoriin. Aseta force=true poistaaksesi." + #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:594 msgid "Terms do not support trashing. Set force=true to delete." msgstr "Termejä ei voi laittaa roskakoriin. Aseta force=true poistaaksesi." @@ -1302,9 +1302,9 @@ msgstr "Tätä artikkelia ei voi laittaa roskakoriin. Aseta force=true poistaaks msgid "The comment does not support trashing. Set force=true to delete." msgstr "Tätä kommenttia ei voi laittaa roskakoriin. Aseta force=true poistaaksesi." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:747 -msgid "Users do not support trashing. Set force=true to delete." -msgstr "Käyttäjiä ei voi siirtää roskakoriin. Aseta force=true poistaaksesi." +#: wp-includes/class-wp-customize-manager.php:4031 +msgid "Or, enter a YouTube URL:" +msgstr "Tai, syötä Youtube URL:" #: wp-includes/rest-api/class-wp-rest-request.php:695 msgid "Invalid JSON body passed." @@ -1315,23 +1315,23 @@ msgstr "Virheellisesti muotoiltu JSON-pyyntö." msgid "Limit result set to all items except those that have the specified term assigned in the %s taxonomy." msgstr "Rajaa tulokset sisältämään kaikki paitsi kohteet, joilla on annettu termi taksonomiassa %s." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2181 +msgid "Limit result set to posts assigned one or more statuses." +msgstr "Rajaa tulokset artikkeleihin, joilla yksi tai useampi tila." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:555 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:724 msgid "Comment field exceeds maximum length allowed." msgstr "Kommenttikenttä ylittää sallitun maksimipituuden. " -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2181 -msgid "Limit result set to posts assigned one or more statuses." -msgstr "Rajaa tulokset artikkeleihin, joilla yksi tai useampi tila." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:258 +msgid "Taxonomies associated with post type." +msgstr "Sisältötyyppiin liittyvät taksonomiat." #: wp-includes/customize/class-wp-customize-nav-menu-control.php:67 msgid "Display Location" msgstr "Näytä sijainti" -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:258 -msgid "Taxonomies associated with post type." -msgstr "Sisältötyyppiin liittyvät taksonomiat." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2171 msgid "Limit result set to posts with one or more specific slugs." msgstr "Rajaa tulokset artikkeleihin joilla on yksi tai useampi polkutunnus." @@ -1340,14 +1340,14 @@ msgstr "Rajaa tulokset artikkeleihin joilla on yksi tai useampi polkutunnus." msgid "Comment is required." msgstr "Kommentti vaaditaan." -#: wp-includes/class-wp-customize-nav-menus.php:793 -msgid "Empty title" -msgstr "Otsikko puuttuu" - #: wp-includes/class-wp-customize-nav-menus.php:796 msgid "Status is forbidden" msgstr "Tilan valitseminen on kielletty" +#: wp-includes/class-wp-customize-nav-menus.php:793 +msgid "Empty title" +msgstr "Otsikko puuttuu" + #: wp-trackback.php:125 msgid "We already have a ping from that URL for this post." msgstr "Samasta verkko-osoitteesta on jo paluuvittaus tähän artikkeliin." @@ -1376,11 +1376,6 @@ msgstr "Termi valittu." msgid "Remove term:" msgstr "Poista termi:" -#. translators: %s: IP address -#: wp-includes/rest-api.php:1106 -msgid "%s is not a valid IP address." -msgstr "%s ei ole kelvollinen IP-osoite." - #: wp-includes/script-loader.php:239 msgid "Item selected." msgstr "Valittu." @@ -1390,30 +1385,25 @@ msgstr "Valittu." msgid "%1$s must be between %2$d (inclusive) and %3$d (inclusive)" msgstr "%1$s täytyy olla isompi (tai yhtä) kuin %2$d ja pienempi (tai yhtä) kuin %3$d" -#. translators: 1: parameter, 2: minimum number, 3: maximum number -#: wp-includes/rest-api.php:1138 -msgid "%1$s must be between %2$d (inclusive) and %3$d (exclusive)" -msgstr "%1$s täytyy olla isompi (tai yhtä) kuin %2$d ja pienempi kuin %3$d" - #. translators: 1: parameter, 2: minimum number, 3: maximum number #: wp-includes/rest-api.php:1143 msgid "%1$s must be between %2$d (exclusive) and %3$d (inclusive)" msgstr "%1$s täytyy olla isompi kuin %2$d ja pienempi (tai yhtä) kuin %3$d" +#. translators: 1: parameter, 2: minimum number, 3: maximum number +#: wp-includes/rest-api.php:1138 +msgid "%1$s must be between %2$d (inclusive) and %3$d (exclusive)" +msgstr "%1$s täytyy olla isompi (tai yhtä) kuin %2$d ja pienempi kuin %3$d" + #. translators: 1: parameter, 2: minimum number, 3: maximum number #: wp-includes/rest-api.php:1133 msgid "%1$s must be between %2$d (exclusive) and %3$d (exclusive)" msgstr "%1$s täytyy olla isompi kuin %2$d ja pienempi kuin %3$d" -#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:254 -#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:264 -#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:311 -msgid "Could not update meta value in database." -msgstr "Metatietoja ei voitu päivittää tietokantaan." - -#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:191 -msgid "Could not delete meta value from database." -msgstr "Metatietoja ei voitu poistaa tietokannasta." +#. translators: %s: IP address +#: wp-includes/rest-api.php:1106 +msgid "%s is not a valid IP address." +msgstr "%s ei ole kelvollinen IP-osoite." #. translators: 1: parameter, 2: type name #: wp-includes/rest-api.php:1054 wp-includes/rest-api.php:1072 @@ -1431,18 +1421,24 @@ msgstr "%1$s ei ole mikään vaihtoehdoista %2$s." msgid "Meta fields." msgstr "Metakentät." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1369 -msgid "Limit result set to users matching at least one specific role provided. Accepts csv list or single role." -msgstr "Rajaa tulokset koskemaan vähintään yhtä annettua roolia. Hyväksyy csv-luettelon tai yksittäisen roolin." - +#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:254 +#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:264 +#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:311 +msgid "Could not update meta value in database." +msgstr "Metatietoja ei voitu päivittää tietokantaan." + +#: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php:191 +msgid "Could not delete meta value from database." +msgstr "Metatietoja ei voitu poistaa tietokannasta." + +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1369 +msgid "Limit result set to users matching at least one specific role provided. Accepts csv list or single role." +msgstr "Rajaa tulokset koskemaan vähintään yhtä annettua roolia. Hyväksyy csv-luettelon tai yksittäisen roolin." + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1265 msgid "Any extra capabilities assigned to the user." msgstr "Käyttäjälle asetetut ylimääräiset oikeudet." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1188 -msgid "The email address for the user." -msgstr "Käyttäjän sähköpostiosoite." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1259 msgid "All capabilities assigned to the user." msgstr "Kaikki käyttäjälle asetetut oikeudet." @@ -1455,26 +1451,26 @@ msgstr "Käyttäjän salasana (ei koskaan sisälly)." msgid "Registration date for the user." msgstr "Käyttäjän rekisteröitymispäivämäärä." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:610 -msgid "Username isn't editable." -msgstr "Käyttäjätunnus ei ole muokattavissa." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1188 +msgid "The email address for the user." +msgstr "Käyttäjän sähköpostiosoite." #. translators: %s: role key #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1046 msgid "The role %s does not exist." msgstr "Roolia %s ei ole olemassa." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:716 -msgid "Sorry, you are not allowed to delete this user." -msgstr "Pahoittelut, sinulla ei ole oikeuksia poistaa tätä käyttäjä." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:752 msgid "Invalid user ID for reassignment." msgstr "Käyttäjän tunniste ei kelpaa uudelleenmäärittelyyn." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:420 -msgid "You are not currently logged in." -msgstr "Et ole kirjautunut sisään. " +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:716 +msgid "Sorry, you are not allowed to delete this user." +msgstr "Pahoittelut, sinulla ei ole oikeuksia poistaa tätä käyttäjä." + +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:610 +msgid "Username isn't editable." +msgstr "Käyttäjätunnus ei ole muokattavissa." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:578 msgid "Sorry, you are not allowed to edit roles of this user." @@ -1484,6 +1480,10 @@ msgstr "Pahoittelut, sinulla ei ole oikeuksia muuttaa tämän käyttäjän roole msgid "Cannot create existing user." msgstr "Olemassa olevaa käyttäjää ei voi luoda." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:420 +msgid "You are not currently logged in." +msgstr "Et ole kirjautunut sisään. " + #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:974 msgid "Limit result set to terms assigned to a specific post." msgstr "Rajaa tulokset termeihin, jotka liittyvät tiettyyn artikkeliin." @@ -1508,11 +1508,6 @@ msgstr "Termin kuvailulaji." msgid "An alphanumeric identifier for the term unique to its type." msgstr "Termin alfanumeerinen tunniste joka on saman lajin sisällä yksilöivä." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:70 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1149 -msgid "Unique identifier for the user." -msgstr "Käyttäjän uniikki tunniste." - #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:843 msgid "HTML description of the term." msgstr "Termin kuvaus HTML-muodossa." @@ -1521,13 +1516,19 @@ msgstr "Termin kuvaus HTML-muodossa." msgid "Number of published posts for the term." msgstr "Termin julkaistujen artikkeleiden lukumäärä." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2273 -msgid "Status is forbidden." -msgstr "Tila on kielletty. " +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:70 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1149 +msgid "Unique identifier for the user." +msgstr "Käyttäjän uniikki tunniste." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2218 -msgid "Limit result set to items that are sticky." -msgstr "Rajaa tulokset kiinnitettyihin kohteisiin. " +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:96 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:131 +msgid "Required to be true, as users do not support trashing." +msgstr "Arvon on oltava tosi, koska käyttäjät eivät tue roskakori-toimintoa." + +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:317 +msgid "Limit results to taxonomies associated with a specific post type." +msgstr "Rajaa tuloksiin taksonomioihin, jotka liittyvät tiettyyn sisältötyyppiin." #: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:280 msgid "Whether or not the term cloud should be displayed." @@ -1537,22 +1538,30 @@ msgstr "Näytetäänkö avainsanapilvi vai ei" msgid "The %s property has an invalid stored value, and cannot be updated to null." msgstr "Ominaisuuden %s tallennettu arvo on virheellinen, sitä ei voida muuttaa arvoon null." -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:317 -msgid "Limit results to taxonomies associated with a specific post type." -msgstr "Rajaa tuloksiin taksonomioihin, jotka liittyvät tiettyyn sisältötyyppiin." - #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:179 msgid "Invalid revision ID." msgstr "Version tunniste ei kelpaa." -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:96 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:131 -msgid "Required to be true, as users do not support trashing." -msgstr "Arvon on oltava tosi, koska käyttäjät eivät tue roskakori-toimintoa." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2273 +msgid "Status is forbidden." +msgstr "Tila on kielletty. " -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2068 -msgid "Limit result set to posts assigned to specific authors." -msgstr "Rajaa tulokset tiettyjen kirjoittajien artikkeleihin. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2218 +msgid "Limit result set to items that are sticky." +msgstr "Rajaa tulokset kiinnitettyihin kohteisiin. " + +#. translators: %s: taxonomy name +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2197 +msgid "Limit result set to all items that have the specified term assigned in the %s taxonomy." +msgstr "Rajaa tulokset kohteisiin, joilla on valittu termi taksonomiassa %s." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2161 +msgid "Limit result set to all items except those of a particular parent ID." +msgstr "Rajaa tulokset kohteisiin, joiden vanhemmalla ei ole tiettyä id:tä." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2153 +msgid "Limit result set to items with particular parent IDs." +msgstr "Rajaa tulokset kohteisiin, joiden vanhemmalla on jokin määritellyistä id:istä." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1379 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2117 @@ -1561,47 +1570,54 @@ msgstr "Rajaa tulokset tiettyjen kirjoittajien artikkeleihin. " msgid "Offset the result set by a specific number of items." msgstr "Ohita määritelty määrä kohteita alusta." -#. translators: %s: taxonomy name -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2197 -msgid "Limit result set to all items that have the specified term assigned in the %s taxonomy." -msgstr "Rajaa tulokset kohteisiin, joilla on valittu termi taksonomiassa %s." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2111 +msgid "Limit result set to posts with a specific menu_order value." +msgstr "Rajaa tulokset tiettyyn menu_order-arvoon." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2076 msgid "Ensure result set excludes posts assigned to specific authors." msgstr "Varmistaa ettei tuloksissa ole artikkeleita, jotka on liitetty tiettyihin kirjoittajiin." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2068 +msgid "Limit result set to posts assigned to specific authors." +msgstr "Rajaa tulokset tiettyjen kirjoittajien artikkeleihin. " + #. translators: %s: taxonomy name #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2035 msgid "The terms assigned to the object in the %s taxonomy." msgstr "Kohteeseen liitetyt termit taksonomiassa %s." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2161 -msgid "Limit result set to all items except those of a particular parent ID." -msgstr "Rajaa tulokset kohteisiin, joiden vanhemmalla ei ole tiettyä id:tä." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2153 -msgid "Limit result set to items with particular parent IDs." -msgstr "Rajaa tulokset kohteisiin, joiden vanhemmalla on jokin määritellyistä id:istä." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2111 -msgid "Limit result set to posts with a specific menu_order value." -msgstr "Rajaa tulokset tiettyyn menu_order-arvoon." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2024 +msgid "The theme file to use to display the object." +msgstr "Teematiedosto joka näyttää kohteen." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1804 msgid "A password to protect access to the content and excerpt." msgstr "Salasana sisällön ja otteen suojaamiseksi. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2017 +msgid "Whether or not the object should be treated as sticky." +msgstr "Onko kohde kiinnitetty. " + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2001 msgid "The format for the object." msgstr "Kohteen muoto." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1990 +msgid "The order of the object in relation to other object of its type." +msgstr "Kohteen järjestysnumero suhteessa muihin samantyyppisiin kohteisiin." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1981 +msgid "Whether or not the object can be pinged." +msgstr "Voiko kohteelle tehdä paluuviitteen." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1975 msgid "Whether or not comments are open on the object." msgstr "Onko kohteen kommentointi käytössä. " -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2017 -msgid "Whether or not the object should be treated as sticky." -msgstr "Onko kohde kiinnitetty. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1967 +msgid "The ID of the featured media for the object." +msgstr "Kohteen artikkelikuvan ID." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1956 msgid "Whether the excerpt is protected with a password." @@ -1611,34 +1627,39 @@ msgstr "Onko ote suojattu salasanalla. " msgid "HTML excerpt for the object, transformed for display." msgstr "Kohteen HTML-muotoinen ote, sellaisena kuin se tulostetaan selaimelle." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1981 -msgid "Whether or not the object can be pinged." -msgstr "Voiko kohteelle tehdä paluuviitteen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1990 -msgid "The order of the object in relation to other object of its type." -msgstr "Kohteen järjestysnumero suhteessa muihin samantyyppisiin kohteisiin." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1945 +msgid "Excerpt for the object, as it exists in the database." +msgstr "Kohteen ote siinä muodossa kuin se on tietokannassa." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2024 -msgid "The theme file to use to display the object." -msgstr "Teematiedosto joka näyttää kohteen." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1937 +msgid "The excerpt for the object." +msgstr "Kohteen ote." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1967 -msgid "The ID of the featured media for the object." -msgstr "Kohteen artikkelikuvan ID." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1929 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:474 +msgid "The ID for the author of the object." +msgstr "Kohteen kirjoittajan ID." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1918 msgid "Whether the content is protected with a password." msgstr "Onko sisältö suojattu salasanalla." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1875 -msgid "The title for the object." -msgstr "Kohteen otsikko. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1888 +msgid "HTML title for the object, transformed for display." +msgstr "Kohteen HTML-muotoinen otsikko, sellaisena kuin se tulostetaan selaimelle." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1883 msgid "Title for the object, as it exists in the database." msgstr "Kohteen otsikko siten, kuin se esiintyy tietokannassa. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1875 +msgid "The title for the object." +msgstr "Kohteen otsikko. " + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1798 +msgid "Type of Post for the object." +msgstr "Kohteen artikkelityyppi." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1792 msgid "A named status for the object." msgstr "Kohteen nimetty tila." @@ -1648,60 +1669,19 @@ msgstr "Kohteen nimetty tila." msgid "An alphanumeric identifier for the object unique to its type." msgstr "Kohteen tyypilleen uniikki alfanumeerinen tunniste." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1937 -msgid "The excerpt for the object." -msgstr "Kohteen ote." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1945 -msgid "Excerpt for the object, as it exists in the database." -msgstr "Kohteen ote siinä muodossa kuin se on tietokannassa." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1888 -msgid "HTML title for the object, transformed for display." -msgstr "Kohteen HTML-muotoinen otsikko, sellaisena kuin se tulostetaan selaimelle." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1798 -msgid "Type of Post for the object." -msgstr "Kohteen artikkelityyppi." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1929 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:474 -msgid "The ID for the author of the object." -msgstr "Kohteen kirjoittajan ID." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1058 -msgid "A password protected post can not be set to sticky." -msgstr "Salasanalla suojattua artikkelia ei voi kiinnittää. " - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1051 -msgid "A sticky post can not be password protected." -msgstr "Kiinnitetty artikkeli ei voi olla salasanasuojattu. " - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1749 -msgid "GUID for the object, transformed for display." -msgstr "Kohteen GUID, sellaisena kuin se tulostetaan selaimelle." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1777 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:507 +msgid "The date the object was last modified, as GMT." +msgstr "Kohteen viimeinen muokkauspäivämäärä GMT-ajassa." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1770 #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:501 msgid "The date the object was last modified, in the site's timezone." msgstr "Kohteen viimeinen muokkauspäivämäärä sivuston aikavyöhykkeen ajassa." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1237 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1725 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:479 -msgid "The date the object was published, in the site's timezone." -msgstr "Ajankohta kun kohde julkaistiin sivuston aikavyöhykkeen ajassa." - -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1777 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:507 -msgid "The date the object was last modified, as GMT." -msgstr "Kohteen viimeinen muokkauspäivämäärä GMT-ajassa." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1243 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1731 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:485 -msgid "The date the object was published, as GMT." -msgstr "Ajankohta kun kohde julkaistiin GMT-ajassa." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1749 +msgid "GUID for the object, transformed for display." +msgstr "Kohteen GUID, sellaisena kuin se tulostetaan selaimelle." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1743 #: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:491 @@ -1712,42 +1692,57 @@ msgstr "Kohteen GUID sellaisena kuin se on tietokannassa." msgid "The globally unique identifier for the object." msgstr "Kohteen ainutkertainen tunnusnumero." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1069 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:134 -msgid "Invalid post parent ID." -msgstr "Virheellinen ylätason artikkelin tunniste." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1243 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1731 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:485 +msgid "The date the object was published, as GMT." +msgstr "Ajankohta kun kohde julkaistiin GMT-ajassa." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1237 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1725 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:479 +msgid "The date the object was published, in the site's timezone." +msgstr "Ajankohta kun kohde julkaistiin sivuston aikavyöhykkeen ajassa." #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1160 msgid "Invalid featured media ID." msgstr "Median ID ei kelpaa." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:828 -msgid "The post has already been deleted." -msgstr "Artikkeli on jo poistettu. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1069 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:134 +msgid "Invalid post parent ID." +msgstr "Virheellinen ylätason artikkelin tunniste." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:495 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:530 -msgid "Cannot create existing post." -msgstr "Olemassa olevaa artikkelia ei voi luoda. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1058 +msgid "A password protected post can not be set to sticky." +msgstr "Salasanalla suojattua artikkelia ei voi kiinnittää. " + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1051 +msgid "A sticky post can not be password protected." +msgstr "Kiinnitetty artikkeli ei voi olla salasanasuojattu. " #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1047 msgid "A post can not be sticky and have a password." msgstr "Artikkeli ei voi olla samaan aikaan sekä kiinnitetty että salasanasuojattu. " +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:828 +msgid "The post has already been deleted." +msgstr "Artikkeli on jo poistettu. " + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:134 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:354 msgid "Sorry, you are not allowed to edit comments." msgstr "Pahoittelemme, sinulla ei ole oikeuksia muokata kommentteja." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:495 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:530 +msgid "Cannot create existing post." +msgstr "Olemassa olevaa artikkelia ei voi luoda. " + #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:443 msgid "Sorry, you are not allowed to create new users." msgstr "Pahoittelemme, sinulla ei ole oikeuksia luoda uusia käyttäjiä." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1452 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:86 -msgid "The password for the post if it is password protected." -msgstr "Artikkelin salasana, jos se on salasanasuojattu. " - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:410 msgid "Incorrect post password." msgstr "Väärä artikkelin salasana." @@ -1756,13 +1751,10 @@ msgstr "Väärä artikkelin salasana." msgid "You need to define a search term to order by relevance." msgstr "Sinun on annettava hakusana, jotta voit lajitella relevanssin mukaan." -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:287 -msgid "Whether to include posts in the edit listing for their post type." -msgstr "Näytetäänkö artikkelit sisältötyyppinsä muokkauslistalla." - -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1227 -msgid "An alphanumeric identifier for the user." -msgstr "Käyttäjän alfanumeerinen tunniste." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1452 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:86 +msgid "The password for the post if it is password protected." +msgstr "Artikkelin salasana, jos se on salasanasuojattu. " #: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:262 msgid "Human-readable labels for the taxonomy for various contexts." @@ -1780,6 +1772,14 @@ msgstr "Taksonomian ihmisen luettavaksi tarkoitettu kuvaus." msgid "All capabilities used by the taxonomy." msgstr "Kaikki taksonomian käyttämät oikeudet." +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1227 +msgid "An alphanumeric identifier for the user." +msgstr "Käyttäjän alfanumeerinen tunniste." + +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:287 +msgid "Whether to include posts in the edit listing for their post type." +msgstr "Näytetäänkö artikkelit sisältötyyppinsä muokkauslistalla." + #: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:281 msgid "Whether posts with this status should be publicly-queryable." msgstr "Ovatko tässä tilassa olevat artikkelit julkisesti kyseltävissä." @@ -1792,6 +1792,14 @@ msgstr "Näytetäänkö tässä tilassa olevat artikkelit sivuston julkisella pu msgid "Whether posts with this status should be protected." msgstr "Suojataanko tässä tilassa olevat artikkelit." +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:263 +msgid "Whether posts with this status should be private." +msgstr "Ovatko tässä tilassa olevat artikkelit yksityisiä." + +#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:355 +msgid "Scope under which the request is made; determines fields present in response." +msgstr "Pyynnön konteksti määrää mitä kenttiä vastauksessa on mukana." + #: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:334 msgid "Limit results to those matching a string." msgstr "Rajaa tulokset niihin, jotka täsmäävät merkkijonoon. " @@ -1819,13 +1827,9 @@ msgstr "Kokoelman nykyinen sivu." msgid "Method '%s' not implemented. Must be overridden in subclass." msgstr "Metodia '%s' ei ole implementoitu. Se tulee määritellä perivässä luokassa." -#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:355 -msgid "Scope under which the request is made; determines fields present in response." -msgstr "Pyynnön konteksti määrää mitä kenttiä vastauksessa on mukana." - -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:263 -msgid "Whether posts with this status should be private." -msgstr "Ovatko tässä tilassa olevat artikkelit yksityisiä." +#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:42 +msgid "The register_routes() method must be overridden" +msgstr "Register_routes()-metodi tulee määritellä." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1445 msgid "Limit result set to comments assigned a specific type. Requires authorization." @@ -1835,23 +1839,6 @@ msgstr "Rajaa tulokset kommentteihin, joille on asetettu tietty tyyppi. Vaatii t msgid "Limit result set to comments assigned a specific status. Requires authorization." msgstr "Rajaa tulokset kommentteihin, joille on asetettu tietty tila. Vaatii tunnistautumisen." -#: wp-includes/rest-api/endpoints/class-wp-rest-controller.php:42 -msgid "The register_routes() method must be overridden" -msgstr "Register_routes()-metodi tulee määritellä." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1384 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2122 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:936 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1340 -msgid "Order sort attribute ascending or descending." -msgstr "Järjestää tulokset nousevaan tai laskevaan järjestykseen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1394 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2129 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1347 -msgid "Sort collection by object attribute." -msgstr "Järjestä kokoelma kohteen ominaisuuden mukaan." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1428 msgid "Limit result set to comments assigned to specific post IDs." msgstr "Rajaa tulokset kommentteihin, joille on asetettu tietty artikkeli-ID." @@ -1864,23 +1851,18 @@ msgstr "Varmistaa ettei tuloksilla ole tiettyä vanhemman ID:tä." msgid "Limit result set to comments of specific parent IDs." msgstr "Rajaa tulokset kommentteihin, joilla on tiettyjen vanhempien ID." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1276 -msgid "Type of Comment for the object." -msgstr "Kohteen kommentin tyyppi. " - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1349 -msgid "Limit result set to that from a specific author email. Requires authorization." -msgstr "Rajaa tulokset tietyllä kirjoittajan sähköpostiosoitteella. Vaatii tunnistautumisen." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1299 -msgid "Avatar URLs for the object author." -msgstr "Kohteen kirjoittajan avatarin URL." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1394 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2129 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1347 +msgid "Sort collection by object attribute." +msgstr "Järjestä kokoelma kohteen ominaisuuden mukaan." -#. translators: %d: avatar image size in pixels -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1291 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1281 -msgid "Avatar URL with image size of %d pixels." -msgstr "%d pikselin kokoisen avatarin URL." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1384 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2122 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:936 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1340 +msgid "Order sort attribute ascending or descending." +msgstr "Järjestää tulokset nousevaan tai laskevaan järjestykseen." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1370 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2101 @@ -1896,6 +1878,14 @@ msgstr "Rajaa tulokset tiettyihin ID:ihin." msgid "Ensure result set excludes specific IDs." msgstr "Varmista, etteivät tulokset sisällä tiettyjä ID:itä." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2086 +msgid "Limit response to posts published before a given ISO8601 compliant date." +msgstr "Rajoita tulokset artikkeleihin, jotka on julkaistu annettua ISO8601-yhteensopivaa päivämäärää ennen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1349 +msgid "Limit result set to that from a specific author email. Requires authorization." +msgstr "Rajaa tulokset tietyllä kirjoittajan sähköpostiosoitteella. Vaatii tunnistautumisen." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1340 msgid "Ensure result set excludes comments assigned to specific user IDs. Requires authorization." msgstr "Varmistaa ettei kommentteja ole liitetty tiettyihin käyttäjä-ID:isiin. Vaatii tunnistautumisen." @@ -1908,18 +1898,35 @@ msgstr "Rajaa tulokset kommentteihin, jotka on liitetty tiettyihin käyttäjä-I msgid "Limit response to posts published after a given ISO8601 compliant date." msgstr "Rajoita tulokset artikkeleihin, jotka on julkaistu annetun ISO8601-yhteensopivan päivämäärän jälkeen." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2086 -msgid "Limit response to posts published before a given ISO8601 compliant date." -msgstr "Rajoita tulokset artikkeleihin, jotka on julkaistu annettua ISO8601-yhteensopivaa päivämäärää ennen." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1299 +msgid "Avatar URLs for the object author." +msgstr "Kohteen kirjoittajan avatarin URL." + +#. translators: %d: avatar image size in pixels +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1291 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1281 +msgid "Avatar URL with image size of %d pixels." +msgstr "%d pikselin kokoisen avatarin URL." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1276 +msgid "Type of Comment for the object." +msgstr "Kohteen kommentin tyyppi. " #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1268 msgid "State of the object." msgstr "Kohteen tila. " -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1216 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1899 -msgid "The content for the object." -msgstr "Kohteen sisältö." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1262 +msgid "The ID of the associated post object." +msgstr "Liittyvän artikkelin ID." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1256 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1815 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:76 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:92 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:513 +msgid "The ID for the parent of the object." +msgstr "Kohteen vanhemman ID." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1249 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1763 @@ -1936,25 +1943,18 @@ msgstr "Kohteen HTML-sisältö, esitettäväksi muunnettuna." msgid "Content for the object, as it exists in the database." msgstr "Kohteen sisältö siinä muodossa kuin se on tietokannassa." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1256 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1815 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:76 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:92 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:513 -msgid "The ID for the parent of the object." -msgstr "Kohteen vanhemman ID." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1262 -msgid "The ID of the associated post object." -msgstr "Liittyvän artikkelin ID." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1216 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1899 +msgid "The content for the object." +msgstr "Kohteen sisältö." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:839 -msgid "The comment cannot be deleted." -msgstr "Kommenttia ei voida poistaa. " +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1208 +msgid "User agent for the object author." +msgstr "Kohteen kirjoittajan selain." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:830 -msgid "The comment has already been trashed." -msgstr "Kommentti on jo siirretty roskakoriin." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1202 +msgid "URL for the object author." +msgstr "Kohteen kirjoittajan URL." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1194 msgid "Display name for the object author." @@ -1968,13 +1968,9 @@ msgstr "Kohteen kirjoittajan IP-osoite." msgid "Email address for the object author." msgstr "Kohteen kirjoittajan sähköpostiosoite." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1202 -msgid "URL for the object author." -msgstr "Kohteen kirjoittajan URL." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1208 -msgid "User agent for the object author." -msgstr "Kohteen kirjoittajan selain." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1173 +msgid "The ID of the user object, if author was a user." +msgstr "Käyttäjän ID, jos kirjoittaja on tiedossa." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:68 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1167 @@ -1985,14 +1981,18 @@ msgstr "Kohteen kirjoittajan selain." msgid "Unique identifier for the object." msgstr "Kohteen uniikki tunniste." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1173 -msgid "The ID of the user object, if author was a user." -msgstr "Käyttäjän ID, jos kirjoittaja on tiedossa." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1095 msgid "Invalid comment author ID." msgstr "Virheellinen kommentin kirjoittajan ID." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:839 +msgid "The comment cannot be deleted." +msgstr "Kommenttia ei voida poistaa. " + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:830 +msgid "The comment has already been trashed." +msgstr "Kommentti on jo siirretty roskakoriin." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:730 msgid "Updating comment failed." msgstr "Kommentin päivittäminen epäonnistui. " @@ -2001,10 +2001,6 @@ msgstr "Kommentin päivittäminen epäonnistui. " msgid "Updating comment status failed." msgstr "Kommentin tilan päivittäminen epäonnistui. " -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:490 -msgid "Cannot create existing comment." -msgstr "Olemassa olevaa kommenttia ei voi luoda. " - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:596 msgid "Creating comment failed." msgstr "Kommentointi epäonnistui. " @@ -2013,6 +2009,10 @@ msgstr "Kommentointi epäonnistui. " msgid "Creating a comment requires valid author name and email values." msgstr "Kommentointi edellyttää kelvollista tekijän nimeä ja sähköpostiosoitetta. " +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:490 +msgid "Cannot create existing comment." +msgstr "Olemassa olevaa kommenttia ei voi luoda. " + #: wp-includes/comment.php:3061 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:403 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:420 @@ -2023,6 +2023,19 @@ msgstr "Pahoittelemme, sinun täytyy olla kirjautunut sisään voidaksesi kommen msgid "Query parameter not permitted: %s" msgstr "Hakuparametri ei ole sallittu: %s" +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:98 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:117 +msgid "Whether to bypass trash and force deletion." +msgstr "Ohitetaanko roskakori ja pakotetaan poistaminen." + +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:654 +msgid "Limit result set to attachments of a particular MIME type." +msgstr "Rajaa tulokset tietyn MIME-tyypin liitetiedostoihin." + +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:647 +msgid "Limit result set to attachments of a particular media type." +msgstr "Rajaa tulokset tietyn mediatyypin liitetiedostoihin." + #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:531 msgid "Could not open file handle." msgstr "Tiedostoa ei voitu avata." @@ -2040,19 +2053,6 @@ msgstr "Virheellinen Content-Disposition -määritys. Sen tulee olla muotoa `att msgid "No Content-Disposition supplied." msgstr "Content-Disposition -määritys puuttuu." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:654 -msgid "Limit result set to attachments of a particular MIME type." -msgstr "Rajaa tulokset tietyn MIME-tyypin liitetiedostoihin." - -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:647 -msgid "Limit result set to attachments of a particular media type." -msgstr "Rajaa tulokset tietyn mediatyypin liitetiedostoihin." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:98 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:117 -msgid "Whether to bypass trash and force deletion." -msgstr "Ohitetaanko roskakori ja pakotetaan poistaminen." - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:496 msgid "No Content-Type supplied." msgstr "Content-Type puuttuu." @@ -2066,35 +2066,39 @@ msgstr "Sisältö puuttuu." msgid "The ID for the associated post of the attachment." msgstr "Mediaan liittyvän artikkelin ID." -#: wp-includes/post.php:1384 -msgid "Page Attributes" -msgstr "Sivun ominaisuudet" +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:455 +msgid "Details about the media file, specific to its type." +msgstr "Mediatiedoston tyyppikohtaiset tiedot." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:75 -msgid "Sorry, you are not allowed to upload media on this site." -msgstr "Pahoittelemme, sinulla ei ole oikeuksia ladata tiedostoja tälle sivustolle. " +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:387 +msgid "Alternative text to display when attachment is not displayed." +msgstr "Vaihtoehtoinen teksti näytettäväksi kun liitettä ei voida näyttää." #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:103 #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:210 msgid "Invalid parent type." msgstr "Ylätason laji ei kelpaa." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:387 -msgid "Alternative text to display when attachment is not displayed." -msgstr "Vaihtoehtoinen teksti näytettäväksi kun liitettä ei voida näyttää." - #: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:84 msgid "Sorry, you are not allowed to upload media to this post." msgstr "Sinulla ei ole oikeuksia liittää mediatiedostoja tähän artikkeliin." -#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:455 -msgid "Details about the media file, specific to its type." -msgstr "Mediatiedoston tyyppikohtaiset tiedot." +#: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php:75 +msgid "Sorry, you are not allowed to upload media on this site." +msgstr "Pahoittelemme, sinulla ei ole oikeuksia ladata tiedostoja tälle sivustolle. " #: wp-includes/rest-api/class-wp-rest-server.php:272 msgid "The REST API can no longer be completely disabled, the rest_authentication_errors filter can be used to restrict access to the API, instead." msgstr "REST-rajapintaa ei voi enää täysin poistaa käytöstä. Sen sijaan rest_authentication_errors -filtteriä voi käyttää rajoittamaan pääsyä rajapintaan." +#: wp-includes/post.php:1384 +msgid "Page Attributes" +msgstr "Sivun ominaisuudet" + +#: wp-includes/post.php:1384 +msgid "Post Attributes" +msgstr "Artikkelin ominaisuudet" + #: wp-includes/post.php:1377 msgid "View Pages" msgstr "Näytä sivut" @@ -2103,10 +2107,6 @@ msgstr "Näytä sivut" msgid "View Posts" msgstr "Näytä artikkelit" -#: wp-includes/post.php:1384 -msgid "Post Attributes" -msgstr "Artikkelin ominaisuudet" - #: wp-includes/post.php:167 msgid "No changesets found in Trash." msgstr "Muutosjoukkoja ei löytynyt roskakorista." @@ -2123,14 +2123,14 @@ msgstr "Etsi muutosjoukkoja" msgid "All Changesets" msgstr "Kaikki muutosjoukot" -#: wp-includes/post.php:162 -msgid "Edit Changeset" -msgstr "Muokkaa muutosjoukkoa" - #: wp-includes/post.php:163 msgid "View Changeset" msgstr "Näytä muutosjoukko" +#: wp-includes/post.php:162 +msgid "Edit Changeset" +msgstr "Muokkaa muutosjoukkoa" + #: wp-includes/post.php:161 msgid "New Changeset" msgstr "Uusi muutosjoukko" @@ -2144,14 +2144,6 @@ msgctxt "Customize Changeset" msgid "Add New" msgstr "Lisää uusi" -#: wp-includes/post.php:69 -msgid "Attachment Attributes" -msgstr "Liitetiedoston ominaisuudet" - -#: wp-includes/post.php:126 wp-includes/post.php:127 -msgid "Custom CSS" -msgstr "Oma CSS" - #: wp-includes/post.php:158 msgctxt "add new on admin bar" msgid "Changeset" @@ -2172,16 +2164,20 @@ msgctxt "post type general name" msgid "Changesets" msgstr "Muutosjoukot" +#: wp-includes/post.php:126 wp-includes/post.php:127 +msgid "Custom CSS" +msgstr "Oma CSS" + +#: wp-includes/post.php:69 +msgid "Attachment Attributes" +msgstr "Liitetiedoston ominaisuudet" + #. translators: post revision title: 1: author avatar, 2: author name, 3: time #. ago, 4: date #: wp-includes/post-template.php:1747 msgid "%1$s %2$s, %3$s ago (%4$s)" msgstr "%1$s %2$s, %3$s sitten (%4$s)" -#: wp-includes/option.php:1853 -msgid "Allow people to post comments on new articles." -msgstr "Salli uusien artikkelien kommentointi. " - #. translators: %s: misc #. translators: %s: privacy #. translators: %s: misc @@ -2191,21 +2187,33 @@ msgstr "Salli uusien artikkelien kommentointi. " msgid "The \"%s\" options group has been removed. Use another settings group." msgstr "Asetuksien ryhmä \"%s\" on poistettu. Käytä toista ryhmää." -#: wp-includes/option.php:1813 -msgid "Convert emoticons like :-) and :-P to graphics on display." -msgstr "Muunna hymiöt kuviksi." +#: wp-includes/option.php:1853 +msgid "Allow people to post comments on new articles." +msgstr "Salli uusien artikkelien kommentointi. " + +#: wp-includes/option.php:1843 +msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles." +msgstr "Salli linkki-ilmoitukset muista blogeista (pingback ja trackback) uusiin artikkeleihin." + +#: wp-includes/option.php:1832 +msgid "Blog pages show at most." +msgstr "Näytä enintään" #: wp-includes/option.php:1826 msgid "Default post format." msgstr "Artikkelisivujen oletusmuoto." +#: wp-includes/option.php:1813 +msgid "Convert emoticons like :-) and :-P to graphics on display." +msgstr "Muunna hymiöt kuviksi." + #: wp-includes/option.php:1806 msgid "WordPress locale code." msgstr "WordPressin kieli- ja maakoodi." -#: wp-includes/option.php:1832 -msgid "Blog pages show at most." -msgstr "Näytä enintään" +#: wp-includes/option.php:1798 +msgid "A day number of the week that the week should start on." +msgstr "Viikonpäivän numero josta viikko alkaa." #: wp-includes/option.php:1792 msgid "A time format for all time strings." @@ -2215,22 +2223,10 @@ msgstr "Muoto kaikille kellonajan merkkijonoille." msgid "A date format for all date strings." msgstr "Muoto kaikille päivämäärän merkkijonoille." -#: wp-includes/option.php:1798 -msgid "A day number of the week that the week should start on." -msgstr "Viikonpäivän numero josta viikko alkaa." - -#: wp-includes/option.php:1843 -msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles." -msgstr "Salli linkki-ilmoitukset muista blogeista (pingback ja trackback) uusiin artikkeleihin." - #: wp-includes/option.php:1780 msgid "A city in the same timezone as you." msgstr "Kaupunki samassa aikavyöhykkeessä kuin sinä." -#: wp-includes/general-template.php:408 wp-login.php:538 wp-login.php:902 -msgid "Username or Email Address" -msgstr "Käyttäjänimi tai sähköpostiosoite" - #: wp-includes/option.php:1738 msgid "Site title." msgstr "Sivuston otsikko." @@ -2249,21 +2245,25 @@ msgctxt "previous set of posts" msgid "Previous" msgstr "Edellinen" +#: wp-includes/general-template.php:408 wp-login.php:538 wp-login.php:902 +msgid "Username or Email Address" +msgstr "Käyttäjänimi tai sähköpostiosoite" + #: wp-includes/customize/class-wp-customize-selective-refresh.php:207 msgid "Click to edit this element." msgstr "Klikkaa muokataksesi tätä elementtiä. " -#: wp-includes/customize/class-wp-customize-selective-refresh.php:204 -msgid "Click to edit this menu." -msgstr "Muokkaa tätä valikkoa." +#: wp-includes/customize/class-wp-customize-selective-refresh.php:206 +msgid "Click to edit the site title." +msgstr "Muokkaa sivun otsikkoa." #: wp-includes/customize/class-wp-customize-selective-refresh.php:205 msgid "Click to edit this widget." msgstr "Muokkaa vimpainta." -#: wp-includes/customize/class-wp-customize-selective-refresh.php:206 -msgid "Click to edit the site title." -msgstr "Muokkaa sivun otsikkoa." +#: wp-includes/customize/class-wp-customize-selective-refresh.php:204 +msgid "Click to edit this menu." +msgstr "Muokkaa tätä valikkoa." #: wp-includes/customize/class-wp-customize-header-image-control.php:176 msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, we recommend matching the size of your video." @@ -2290,6 +2290,15 @@ msgstr "Pahoittelut, kommenttia ei voitu muokata." msgid "Invalid role." msgstr "Virheellinen rooli." +#: wp-includes/class-wp-xmlrpc-server.php:2168 +msgid "Sorry, you are not allowed to assign this term." +msgstr "Sinulla ei ole oikeuksia asettaa tätä termiä." + +#: wp-includes/class-wp-xmlrpc-server.php:2096 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:569 +msgid "Sorry, you are not allowed to delete this term." +msgstr "Sinulla ei ole oikeuksia poistaa tätä termiä." + #: wp-includes/class-wp-xmlrpc-server.php:2005 #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:339 #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:482 @@ -2306,24 +2315,11 @@ msgstr "Termiä ei voitu luoda." msgid "Sorry, your entry could not be posted." msgstr "Tallennus epäonnistui." -#: wp-includes/class-wp-xmlrpc-server.php:2168 -msgid "Sorry, you are not allowed to assign this term." -msgstr "Sinulla ei ole oikeuksia asettaa tätä termiä." - -#: wp-includes/class-wp-xmlrpc-server.php:2096 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:569 -msgid "Sorry, you are not allowed to delete this term." -msgstr "Sinulla ei ole oikeuksia poistaa tätä termiä." - #: wp-includes/class-wp-customize-widgets.php:799 #: wp-includes/class-wp-customize-widgets.php:854 msgid "No widgets found." msgstr "Vimpaimia ei löytynyt." -#: wp-includes/class-wp-customize-nav-menus.php:878 -msgid "Post" -msgstr "Julkaise" - #. translators: placeholder is the count for the number of widgets found #: wp-includes/class-wp-customize-widgets.php:798 msgid "Number of widgets found: %d" @@ -2334,6 +2330,10 @@ msgstr "Vimpaimia löytyi: %d" msgid "%1$s could not be created: %2$s" msgstr "%1$s luonti epäonnistui: %2$s" +#: wp-includes/class-wp-customize-nav-menus.php:878 +msgid "Post" +msgstr "Julkaise" + #. translators: 1: .mp4, 2: .mov #: wp-includes/class-wp-customize-manager.php:4379 msgid "Only %1$s or %2$s files may be used for header video. Please convert your video file and try again, or, upload your video to YouTube and link it with the option below." @@ -2360,14 +2360,14 @@ msgstr "Virheellinen arvo taustakuvan Y-sijainnille." msgid "Invalid value for background position X." msgstr "Virheellinen arvo taustakuvan X-sijainnille." -#: wp-includes/class-wp-customize-manager.php:4308 -msgid "Invalid value for background repeat." -msgstr "Virheellinen CSS background-repeat -arvo." - #: wp-includes/class-wp-customize-manager.php:4312 msgid "Invalid value for background attachment." msgstr "Virheellinen CSS background-attachment -arvo." +#: wp-includes/class-wp-customize-manager.php:4308 +msgid "Invalid value for background repeat." +msgstr "Virheellinen CSS background-repeat -arvo." + #: wp-includes/class-wp-customize-manager.php:4225 msgid "" "You can add your own CSS here.\n" @@ -2378,6 +2378,11 @@ msgstr "" "\n" "Napsauta ohjepainiketta yllä saadaksesi lisätietoja." +#. translators: accessibility text +#: wp-includes/class-wp-customize-manager.php:4219 +msgid "(opens in a new window)" +msgstr "(linkki avautuu uuteen ikkunaan)" + #: wp-includes/class-wp-customize-manager.php:4217 msgid "Learn more about CSS" msgstr "Lue lisää CSS:stä" @@ -2386,15 +2391,17 @@ msgstr "Lue lisää CSS:stä" msgid "Additional CSS" msgstr "Oma CSS" -#. translators: accessibility text -#: wp-includes/class-wp-customize-manager.php:4219 -msgid "(opens in a new window)" -msgstr "(linkki avautuu uuteen ikkunaan)" +#: wp-includes/class-wp-customize-manager.php:4142 +msgid "Scroll with Page" +msgstr "Vieritä sivun mukana" -#: wp-includes/class-wp-customize-manager.php:4079 -#: wp-includes/class-wp-customize-manager.php:4118 -msgid "Fit to Screen" -msgstr "Sovita ruudulle" +#: wp-includes/class-wp-customize-manager.php:4130 +msgid "Repeat Background Image" +msgstr "Toista taustakuva" + +#: wp-includes/class-wp-customize-manager.php:4117 +msgid "Original" +msgstr "Alkuperäinen" #: wp-includes/class-wp-customize-manager.php:4113 msgid "Image Size" @@ -2405,107 +2412,100 @@ msgstr "Kuvan koko" msgid "Image Position" msgstr "Kuvan sijainti" -#: wp-includes/class-wp-customize-manager.php:4130 -msgid "Repeat Background Image" -msgstr "Toista taustakuva" - -#: wp-includes/class-wp-customize-manager.php:4117 -msgid "Original" -msgstr "Alkuperäinen" - -#: wp-includes/class-wp-customize-manager.php:4142 -msgid "Scroll with Page" -msgstr "Vieritä sivun mukana" +#: wp-includes/class-wp-customize-manager.php:4081 +msgctxt "Custom Preset" +msgid "Custom" +msgstr "Mukautettu" #: wp-includes/class-wp-customize-manager.php:4080 msgctxt "Repeat Image" msgid "Repeat" msgstr "Toisto" -#: wp-includes/class-wp-customize-manager.php:4081 -msgctxt "Custom Preset" -msgid "Custom" -msgstr "Mukautettu" +#: wp-includes/class-wp-customize-manager.php:4079 +#: wp-includes/class-wp-customize-manager.php:4118 +msgid "Fit to Screen" +msgstr "Sovita ruudulle" #: wp-includes/class-wp-customize-manager.php:4077 msgctxt "Default Preset" msgid "Default" msgstr "Oletusasetus" -#: wp-includes/class-wp-customize-manager.php:4013 -msgid "Header Video" -msgstr "Otsakkeen video" - #: wp-includes/class-wp-customize-manager.php:4073 msgctxt "Background Preset" msgid "Preset" msgstr "Oletusasetus" -#. translators: 1: .mp4, 2: header width in pixels -#: wp-includes/class-wp-customize-manager.php:3953 -msgid "Upload your video in %1$s format and minimize its file size for best results. Your theme recommends a width of %2$s pixels." -msgstr "Lataa video %1$s-muodossa ja pyri minimoimaan sen tiedostokoko. Käyttämäsi teema suosittelee videolle %2$s pikselin leveyttä." +#: wp-includes/class-wp-customize-manager.php:4013 +msgid "Header Video" +msgstr "Otsakkeen video" #. translators: 1: .mp4, 2: header height in pixels #: wp-includes/class-wp-customize-manager.php:3960 msgid "Upload your video in %1$s format and minimize its file size for best results. Your theme recommends a height of %2$s pixels." msgstr "Lataa video %1$s-muodossa ja pyri minimoimaan sen tiedostokoko. Käyttämäsi teema suosittelee videolle %2$s pikselin korkeutta." -#: wp-includes/class-wp-customize-manager.php:3935 -msgid "If you add a video, the image will be used as a fallback while the video loads." -msgstr "Jos lisäät videon, kuvaa näytetään kunnes video on latautunut." +#. translators: 1: .mp4, 2: header width in pixels +#: wp-includes/class-wp-customize-manager.php:3953 +msgid "Upload your video in %1$s format and minimize its file size for best results. Your theme recommends a width of %2$s pixels." +msgstr "Lataa video %1$s-muodossa ja pyri minimoimaan sen tiedostokoko. Käyttämäsi teema suosittelee videolle %2$s pikselin leveyttä." #. translators: 1: .mp4, 2: header size in pixels #: wp-includes/class-wp-customize-manager.php:3946 msgid "Upload your video in %1$s format and minimize its file size for best results. Your theme recommends dimensions of %2$s pixels." msgstr "Lataa video %1$s-muodossa ja pyri minimoimaan sen tiedostokoko. Käyttämäsi teema suosittelee videolle %2$s pikselin kokoa." -#: wp-includes/class-wp-customize-manager.php:2019 -msgid "Setting does not exist or is unrecognized." -msgstr "Asetusta ei ole olemassa tai sitä ei tunnistettu. " +#: wp-includes/class-wp-customize-manager.php:3935 +msgid "If you add a video, the image will be used as a fallback while the video loads." +msgstr "Jos lisäät videon, kuvaa näytetään kunnes video on latautunut." #: wp-includes/class-wp-customize-manager.php:2024 msgid "Unauthorized to modify setting due to capability." msgstr "Ei oikeutta muokata asetusta käyttäjäoikeuksien takia." -#. translators: %s: current user's display name -#: wp-includes/admin-bar.php:217 -msgid "Howdy, %s" -msgstr "Tervehdys, %s" +#: wp-includes/class-wp-customize-manager.php:2019 +msgid "Setting does not exist or is unrecognized." +msgstr "Asetusta ei ole olemassa tai sitä ei tunnistettu. " -#: wp-includes/class-wp-customize-control.php:623 -msgid "New page title" -msgstr "Uusi sivun otsikko" +#: wp-includes/class-wp-customize-manager.php:1812 +msgid "This form is not live-previewable." +msgstr "Tämän lomakkeen sisältö ei ole esikatseltavissa." #: wp-includes/class-wp-customize-manager.php:1811 msgid "This link is not live-previewable." msgstr "Tästä linkistä ei voida esittää esikatselua." -#: wp-includes/class-wp-customize-manager.php:1812 -msgid "This form is not live-previewable." -msgstr "Tämän lomakkeen sisältö ei ole esikatseltavissa." +#: wp-includes/class-wp-customize-manager.php:1591 +msgid "Unauthorized. You may remove the customize_messenger_channel param to preview as frontend." +msgstr "Ei sallittu. Voit poistaa customize_messenger_channel paremetrin esikatsellaksesi julkisessa näkymässä." -#: wp-includes/class-wp-customize-control.php:624 -msgid "New page title…" -msgstr "Uuden sivun otsikko…" +#: wp-includes/class-wp-customize-manager.php:513 +msgid "Non-existent changeset UUID." +msgstr "Muutosjoukon UUID puuttuu" #: wp-includes/class-wp-customize-manager.php:486 msgid "Invalid changeset UUID" msgstr "Virheellinen muutosjoukon UUID" -#: wp-includes/class-wp-customize-manager.php:513 -msgid "Non-existent changeset UUID." -msgstr "Muutosjoukon UUID puuttuu" +#: wp-includes/class-wp-customize-control.php:624 +msgid "New page title…" +msgstr "Uuden sivun otsikko…" -#: wp-includes/class-wp-customize-manager.php:1591 -msgid "Unauthorized. You may remove the customize_messenger_channel param to preview as frontend." -msgstr "Ei sallittu. Voit poistaa customize_messenger_channel paremetrin esikatsellaksesi julkisessa näkymässä." +#: wp-includes/class-wp-customize-control.php:623 +msgid "New page title" +msgstr "Uusi sivun otsikko" #: wp-includes/IXR/class-IXR-message.php:48 wp-includes/atomlib.php:151 #: wp-includes/feed.php:542 msgid "PHP's XML extension is not available. Please contact your hosting provider to enable PHP's XML extension." msgstr "PHP:n XML-laajennus ei ole käytettävissä. Ota yhteyttä hosting-kumppaniisi saadaksesi tämän ominaisuuden käyttöösi." +#. translators: %s: current user's display name +#: wp-includes/admin-bar.php:217 +msgid "Howdy, %s" +msgstr "Tervehdys, %s" + #: wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 msgid "Edit selected menu" msgstr "Muokkaa valittua valikkoa" @@ -2526,38 +2526,38 @@ msgstr "Muotoiltu teksti. Avaa ohje Control-Option-H-näppäinyhdistelmällä." msgid "Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds." msgstr "Nuolinäppäimillä vasemmalle ja oikealle siirryt yhden sekunnin, nuolinäppäimillä ylös ja alas kymmenen sekuntia." -#: wp-includes/script-loader.php:357 wp-includes/theme.php:1396 -msgid "Play" -msgstr "Toista" +#: wp-includes/script-loader.php:370 +msgid "Use Up/Down Arrow keys to increase or decrease volume." +msgstr "Nuolinäppäimillä ylös ja alas säädät äänenvoimakkuutta suuremmaksi ja pienemmäksi." -#: wp-includes/script-loader.php:358 wp-includes/theme.php:1395 -msgid "Pause" -msgstr "Pysäytä" +#: wp-includes/script-loader.php:366 +msgid "Volume Slider" +msgstr "Äänenvoimakkuuden liukusäädin" -#: wp-includes/script-loader.php:361 -msgid "Time Slider" -msgstr "Ajan liukusäädin" +#: wp-includes/script-loader.php:365 +msgid "Audio Player" +msgstr "Äänitoistin" + +#: wp-includes/script-loader.php:364 +msgid "Video Player" +msgstr "Videotoistin" #. translators: %1: number of seconds (30 by default) #: wp-includes/script-loader.php:363 msgid "Skip back %1 seconds" msgstr "Siirry taaksepäin %1 sekuntia" -#: wp-includes/script-loader.php:364 -msgid "Video Player" -msgstr "Videotoistin" +#: wp-includes/script-loader.php:361 +msgid "Time Slider" +msgstr "Ajan liukusäädin" -#: wp-includes/script-loader.php:365 -msgid "Audio Player" -msgstr "Äänitoistin" - -#: wp-includes/script-loader.php:366 -msgid "Volume Slider" -msgstr "Äänenvoimakkuuden liukusäädin" +#: wp-includes/script-loader.php:358 wp-includes/theme.php:1395 +msgid "Pause" +msgstr "Pysäytä" -#: wp-includes/script-loader.php:370 -msgid "Use Up/Down Arrow keys to increase or decrease volume." -msgstr "Nuolinäppäimillä ylös ja alas säädät äänenvoimakkuutta suuremmaksi ja pienemmäksi." +#: wp-includes/script-loader.php:357 wp-includes/theme.php:1396 +msgid "Play" +msgstr "Toista" #: wp-includes/taxonomy.php:1970 wp-includes/taxonomy.php:2596 msgid "A name is required for this term." @@ -2567,30 +2567,53 @@ msgstr "Tämä termi vaatii nimen." msgid "Inexistent terms." msgstr "Kaikkia termejä ei löytynyt." -#. translators: %s: Activation URL -#: wp-includes/script-loader.php:694 -msgid "Importer installed successfully. <a href=\"%s\">Run importer</a>" -msgstr "Tuontityökalu asennettiin. <a href=\"%s\">Käytä sitä</a>" +#. translators: %s: Importer name +#: wp-includes/script-loader.php:715 +msgid "Run %s" +msgstr "Käynnistä %s" #: wp-includes/script-loader.php:713 msgid "Run Importer" msgstr "Käynnistä tuontityökalu" -#. translators: %s: Importer name -#: wp-includes/script-loader.php:715 -msgid "Run %s" -msgstr "Käynnistä %s" +#. translators: %s: Activation URL +#: wp-includes/script-loader.php:694 +msgid "Importer installed successfully. <a href=\"%s\">Run importer</a>" +msgstr "Tuontityökalu asennettiin. <a href=\"%s\">Käytä sitä</a>" #: wp-includes/script-loader.php:712 msgctxt "theme" msgid "Activate %s" msgstr "ota %s käyttöön" +#. translators: %s: Theme name +#: wp-includes/script-loader.php:712 +msgctxt "theme" +msgid "Network Activate %s" +msgstr "Verkkoaktivoi %s" + +#: wp-includes/script-loader.php:710 +msgctxt "plugin" +msgid "Activate %s" +msgstr "Ota %s käyttöön" + +#. translators: %s: Plugin name +#: wp-includes/script-loader.php:710 +msgctxt "plugin" +msgid "Network Activate %s" +msgstr "Verkkoaktivoi %s" + +#. translators: %s: Theme name and version +#: wp-includes/script-loader.php:690 +msgctxt "theme" +msgid "%s installation failed" +msgstr "Teeman %s asennus epäonnistui" + #. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:684 +#: wp-includes/script-loader.php:688 msgctxt "plugin" -msgid "%s installed!" -msgstr "%s asennettu!" +msgid "%s installation failed" +msgstr "Lisäosan %s asennus epäonnistui" #. translators: %s: Theme name and version #: wp-includes/script-loader.php:686 @@ -2599,10 +2622,10 @@ msgid "%s installed!" msgstr "%s asennettu!" #. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:680 +#: wp-includes/script-loader.php:684 msgctxt "plugin" -msgid "Installing %s..." -msgstr "Asennetaan lisäosaa %s..." +msgid "%s installed!" +msgstr "%s asennettu!" #. translators: %s: Theme name and version #: wp-includes/script-loader.php:682 @@ -2611,33 +2634,10 @@ msgid "Installing %s..." msgstr "Asennetaan teemaa %s..." #. translators: %s: Plugin name and version -#: wp-includes/script-loader.php:688 -msgctxt "plugin" -msgid "%s installation failed" -msgstr "Lisäosan %s asennus epäonnistui" - -#. translators: %s: Theme name and version -#: wp-includes/script-loader.php:690 -msgctxt "theme" -msgid "%s installation failed" -msgstr "Teeman %s asennus epäonnistui" - -#: wp-includes/script-loader.php:710 -msgctxt "plugin" -msgid "Activate %s" -msgstr "Ota %s käyttöön" - -#. translators: %s: Plugin name -#: wp-includes/script-loader.php:710 +#: wp-includes/script-loader.php:680 msgctxt "plugin" -msgid "Network Activate %s" -msgstr "Verkkoaktivoi %s" - -#. translators: %s: Theme name -#: wp-includes/script-loader.php:712 -msgctxt "theme" -msgid "Network Activate %s" -msgstr "Verkkoaktivoi %s" +msgid "Installing %s..." +msgstr "Asennetaan lisäosaa %s..." #: wp-includes/class-wp-xmlrpc-server.php:4457 msgid "Sorry, you are not allowed to access user data on this site." @@ -2647,16 +2647,16 @@ msgstr "Valitettavasti sinulla ei ole oikeutta nähdä tämän käyttäjän tiet msgid "Number of plugins found: %d" msgstr "Lisäosia löydettiin %d" -#: wp-includes/class-wp-xmlrpc-server.php:2575 -#: wp-includes/class-wp-xmlrpc-server.php:2621 -msgid "Sorry, you are not allowed to edit your profile." -msgstr "Sinulla ei ole oikeutta muokata profiiliasi." - #: wp-includes/class-wp-xmlrpc-server.php:2732 #: wp-includes/class-wp-xmlrpc-server.php:2934 msgid "Sorry, you are not allowed to edit pages." msgstr "Sinulla ei ole oikeutta muokata sivuja." +#: wp-includes/class-wp-xmlrpc-server.php:2575 +#: wp-includes/class-wp-xmlrpc-server.php:2621 +msgid "Sorry, you are not allowed to edit your profile." +msgstr "Sinulla ei ole oikeutta muokata profiiliasi." + #: wp-includes/class-wp-xmlrpc-server.php:2444 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:574 msgid "Sorry, you are not allowed to edit this user." @@ -2669,67 +2669,54 @@ msgctxt "Comment number declension: on or off" msgid "off" msgstr "off" -#: wp-includes/class-wp-theme.php:803 -msgid "Tan" -msgstr "Kellanruskea" - -#: wp-includes/class-wp-theme.php:804 -msgid "Dark" -msgstr "Tumma" +#: wp-includes/class-wp-theme.php:807 +msgid "Seasonal" +msgstr "Kausiluonteinen" #: wp-includes/class-wp-theme.php:807 msgid "Photoblogging" msgstr "Valokuvabloggaaminen" -#: wp-includes/class-wp-theme.php:807 -msgid "Seasonal" -msgstr "Kausiluonteinen" - -#: wp-includes/class-wp-theme.php:805 -msgid "Fixed Layout" -msgstr "Kiinteälevyinen ulkoasu" +#: wp-includes/class-wp-theme.php:806 +msgid "Responsive Layout" +msgstr "Mukautuva ulkoasu" #: wp-includes/class-wp-theme.php:805 msgid "Fluid Layout" msgstr "Joustava ulkoasu" -#: wp-includes/class-wp-theme.php:806 -msgid "Responsive Layout" -msgstr "Mukautuva ulkoasu" - -#: wp-includes/class-wp-xmlrpc-server.php:1663 -#: wp-includes/class-wp-xmlrpc-server.php:4800 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:763 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:808 -msgid "Sorry, you are not allowed to delete this post." -msgstr "Sinulla ei ole oikeutta poistaa tätä artikkelia." +#: wp-includes/class-wp-theme.php:805 +msgid "Fixed Layout" +msgstr "Kiinteälevyinen ulkoasu" -#: wp-includes/class-wp-xmlrpc-server.php:2826 -msgid "Sorry, you are not allowed to delete this page." -msgstr "Sinulla ei ole oikeutta poistaa tätä sivua." +#: wp-includes/class-wp-theme.php:804 +msgid "Dark" +msgstr "Tumma" -#: wp-includes/class-wp-xmlrpc-server.php:2691 -#: wp-includes/class-wp-xmlrpc-server.php:2888 -msgid "Sorry, you are not allowed to edit this page." -msgstr "Sinulla ei ole oikeutta muokata tätä sivua." +#: wp-includes/class-wp-theme.php:803 +msgid "Tan" +msgstr "Kellanruskea" #. translators: %s: Error string for a failed installation #: wp-includes/script-loader.php:678 msgid "Installation failed: %s" msgstr "Asennus epäonnistui: %s" -#. translators: %s: Plugin name -#: wp-includes/script-loader.php:698 -msgid "Are you sure you want to delete %s and its data?" -msgstr "Haluatko varmasti poistaa lisäosan %s ja sen tiedot?" +#: wp-includes/class-wp-xmlrpc-server.php:2691 +#: wp-includes/class-wp-xmlrpc-server.php:2888 +msgid "Sorry, you are not allowed to edit this page." +msgstr "Sinulla ei ole oikeutta muokata tätä sivua." -#: wp-includes/script-loader.php:699 -msgid "Are you sure you want to delete the selected plugins and their data?" -msgstr "Haluatko varmasti poistaa valitsemasi lisäosat ja niiden tiedot?" +#: wp-includes/class-wp-xmlrpc-server.php:2826 +msgid "Sorry, you are not allowed to delete this page." +msgstr "Sinulla ei ole oikeutta poistaa tätä sivua." -#: wp-includes/script-loader.php:701 -msgid "Deleting..." -msgstr "Poistetaan..." +#: wp-includes/class-wp-xmlrpc-server.php:1663 +#: wp-includes/class-wp-xmlrpc-server.php:4800 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:763 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:808 +msgid "Sorry, you are not allowed to delete this post." +msgstr "Sinulla ei ole oikeutta poistaa tätä artikkelia." #. translators: %s: site title #: wp-login.php:230 @@ -2737,63 +2724,75 @@ msgctxt "site" msgid "← Back to %s" msgstr "← Takaisin sivustolle %s" -#: wp-includes/script-loader.php:707 -msgid "Network Activate" -msgstr "Verkkoaktivoi" +#: wp-includes/wp-db.php:1801 wp-includes/wp-db.php:1807 +msgid "Unable to retrieve the error message from MySQL" +msgstr "Virheviestin haku epäonnistui MySQL-tietokannasta" + +#: wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 +#: wp-includes/widgets/class-wp-nav-menu-widget.php:153 +msgid "Edit Menu" +msgstr "Muokkaa valikkoa" #: wp-includes/script-loader.php:987 msgid "Today" msgstr "Tänään" -#: wp-includes/script-loader.php:700 -msgid "Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?" -msgstr "Varoitus: Nämä teemat voivat olla käytössä muilla tämän verkon sivustoilla. Oletko varma, että haluat jatkaa?" +#: wp-includes/class-wp-xmlrpc-server.php:3631 +#: wp-includes/script-loader.php:716 +msgid "An unknown error occurred" +msgstr "Tapahtui tuntematon virhe" + +#: wp-includes/script-loader.php:707 +msgid "Network Activate" +msgstr "Verkkoaktivoi" #. translators: %s: Error string for a failed deletion #: wp-includes/script-loader.php:703 msgid "Deletion failed: %s" msgstr "Poistaminen epäonnistui: %s" -#: wp-includes/class-wp-xmlrpc-server.php:3631 -#: wp-includes/script-loader.php:716 -msgid "An unknown error occurred" -msgstr "Tapahtui tuntematon virhe" +#: wp-includes/script-loader.php:701 +msgid "Deleting..." +msgstr "Poistetaan..." -#: wp-includes/customize/class-wp-customize-nav-menu-location-control.php:80 -#: wp-includes/widgets/class-wp-nav-menu-widget.php:153 -msgid "Edit Menu" -msgstr "Muokkaa valikkoa" +#: wp-includes/script-loader.php:700 +msgid "Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?" +msgstr "Varoitus: Nämä teemat voivat olla käytössä muilla tämän verkon sivustoilla. Oletko varma, että haluat jatkaa?" -#: wp-includes/wp-db.php:1801 wp-includes/wp-db.php:1807 -msgid "Unable to retrieve the error message from MySQL" -msgstr "Virheviestin haku epäonnistui MySQL-tietokannasta" +#: wp-includes/script-loader.php:699 +msgid "Are you sure you want to delete the selected plugins and their data?" +msgstr "Haluatko varmasti poistaa valitsemasi lisäosat ja niiden tiedot?" -#: wp-includes/script-loader.php:676 -msgid "Install Failed!" -msgstr "Asennus epäonnistui!" +#. translators: %s: Plugin name +#: wp-includes/script-loader.php:698 +msgid "Are you sure you want to delete %s and its data?" +msgstr "Haluatko varmasti poistaa lisäosan %s ja sen tiedot?" #. translators: %s: Theme name #: wp-includes/script-loader.php:696 msgid "Are you sure you want to delete %s?" msgstr "Haluatko poistaa teeman %s?" -#. translators: %s: user name -#: wp-includes/pluggable.php:1746 -msgid "Password changed for user: %s" -msgstr "Käyttäjän %s salasana vaihdettu." - -#: wp-includes/revision.php:550 -msgid "Sorry, you are not allowed to preview drafts." -msgstr "Sinulla ei ole oikeutta esikatsella luonnoksia." +#: wp-includes/script-loader.php:676 +msgid "Install Failed!" +msgstr "Asennus epäonnistui!" #: wp-includes/script-loader.php:651 msgid "Update Now" msgstr "Päivitä nyt" -#: wp-includes/rest-api/class-wp-rest-server.php:922 -#: wp-includes/script-loader.php:132 wp-includes/script-loader.php:517 -msgid "Sorry, you are not allowed to do that." -msgstr "Sinulla ei ole oikeutta tehdä tuota." +#: wp-includes/script-loader.php:646 +msgid "Please select at least one item to perform this action on." +msgstr "Valitse ainakin yksi kohde suorittaaksesi tämän toiminnon." + +#: wp-includes/script-loader.php:645 +msgid "You do not appear to have any plugins available at this time." +msgstr "Yhtään lisäosaa ei ole käytettävissä." + +#. translators: %s: Search string +#: wp-includes/script-loader.php:643 +msgid "Search results for “%s”" +msgstr "Tulokset haulle ”%s”" #: wp-includes/script-loader.php:528 msgid "" @@ -2803,41 +2802,42 @@ msgstr "" "Haluatko varmasti tehdä tämän?\n" "Kommenttiin tekemiäsi muutoksia ei tallenneta." +#: wp-includes/script-loader.php:412 +msgid "Confirm use of weak password" +msgstr "Vahvista heikon salasanan käyttö." + #: wp-includes/script-loader.php:401 msgctxt "password strength" msgid "Password strength unknown" msgstr "Salasanan vahvuus tuntematon" -#. translators: %s: site title +#: wp-includes/rest-api/class-wp-rest-server.php:922 +#: wp-includes/script-loader.php:132 wp-includes/script-loader.php:517 +msgid "Sorry, you are not allowed to do that." +msgstr "Sinulla ei ole oikeutta tehdä tuota." + +#: wp-includes/revision.php:550 +msgid "Sorry, you are not allowed to preview drafts." +msgstr "Sinulla ei ole oikeutta esikatsella luonnoksia." + +#. translators: %s: site title #: wp-includes/pluggable.php:1751 msgid "[%s] Password Changed" msgstr "[%s] Salasana vaihdettu" -#. translators: %s: Search string -#: wp-includes/script-loader.php:643 -msgid "Search results for “%s”" -msgstr "Tulokset haulle ”%s”" - -#: wp-includes/script-loader.php:645 -msgid "You do not appear to have any plugins available at this time." -msgstr "Yhtään lisäosaa ei ole käytettävissä." - -#: wp-includes/script-loader.php:646 -msgid "Please select at least one item to perform this action on." -msgstr "Valitse ainakin yksi kohde suorittaaksesi tämän toiminnon." +#. translators: %s: user name +#: wp-includes/pluggable.php:1746 +msgid "Password changed for user: %s" +msgstr "Käyttäjän %s salasana vaihdettu." -#: wp-includes/script-loader.php:412 -msgid "Confirm use of weak password" -msgstr "Vahvista heikon salasanan käyttö." +#: wp-includes/media-template.php:1242 +msgid "Image crop area preview. Requires mouse interaction." +msgstr "Kuvan rajaamisen esikatselu. Tämä vaatii hiiren käyttöä." #: wp-includes/formatting.php:4252 msgid "https://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_structure" msgstr "https://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_structure" -#: wp-includes/media-template.php:1242 -msgid "Image crop area preview. Requires mouse interaction." -msgstr "Kuvan rajaamisen esikatselu. Tämä vaatii hiiren käyttöä." - #. translators: %s: Codex URL #: wp-includes/formatting.php:4251 msgid "A structure tag is required when using custom permalinks. <a href=\"%s\">Learn more</a>" @@ -2860,10 +2860,10 @@ msgstr "Sinulla ei ole oikeutta lisätä kategoriaa." msgid "Sorry, you are not allowed to list users." msgstr "Sinulla ei ole oikeutta selata käyttäjiä." -#: wp-includes/class-wp-customize-manager.php:2047 -#: wp-includes/class-wp-customize-setting.php:596 -msgid "Invalid value." -msgstr "Arvo ei kelpaa." +#. translators: URL to the widgets panel of the customizer +#: wp-includes/class-wp-customize-nav-menus.php:585 +msgid "You can also place menus in <a href=\"%s\">widget areas</a> with the “Custom Menu” widget." +msgstr "Valikon voi laittaa myös <a href=\"%s\">vimpainalueisiin</a> käyttäen ”Mukautettu valikko” -vimpainta." #: wp-includes/class-wp-customize-manager.php:2376 msgid "There is %s invalid setting." @@ -2871,10 +2871,10 @@ msgid_plural "There are %s invalid settings." msgstr[0] "%s virheellinen asetus." msgstr[1] "%s virheellistä asetusta." -#. translators: URL to the widgets panel of the customizer -#: wp-includes/class-wp-customize-nav-menus.php:585 -msgid "You can also place menus in <a href=\"%s\">widget areas</a> with the “Custom Menu” widget." -msgstr "Valikon voi laittaa myös <a href=\"%s\">vimpainalueisiin</a> käyttäen ”Mukautettu valikko” -vimpainta." +#: wp-includes/class-wp-customize-manager.php:2047 +#: wp-includes/class-wp-customize-setting.php:596 +msgid "Invalid value." +msgstr "Arvo ei kelpaa." #: wp-includes/class-wp-customize-manager.php:478 #: wp-includes/script-loader.php:468 @@ -2892,14 +2892,14 @@ msgstr "Älä syötä %1$s-tageja %2$s-funktiolle." msgid "Link options" msgstr "Linkkivaihtoehdot" -#: wp-includes/script-loader.php:433 -msgid "Link selected." -msgstr "Linkki valittu" - #: wp-includes/script-loader.php:434 msgid "Link inserted." msgstr "Linkki lisätty" +#: wp-includes/script-loader.php:433 +msgid "Link selected." +msgstr "Linkki valittu" + #. translators: %s: ImageMagick method name #: wp-includes/class-wp-image-editor-imagick.php:706 #: wp-includes/class-wp-image-editor-imagick.php:711 @@ -2929,17 +2929,17 @@ msgstr "Löydettiin %d hakutulosta. Navigoi ylös ja alaspäin -nuolilla." msgid "1 result found. Use up and down arrow keys to navigate." msgstr "Löytyi 1 hakutulos. Navigoi ylös ja alaspäin -nuolilla." +#. translators: %s: user name +#: wp-includes/comment-template.php:2231 +msgid "Logged in as %s. Edit your profile." +msgstr "Kirjautunut käyttäjänä %s. Muokkaa profiiliasi." + #. translators: 1: edit user link, 2: accessibility text, 3: user name, 4: #. logout URL #: wp-includes/comment-template.php:2228 msgid "<a href=\"%1$s\" aria-label=\"%2$s\">Logged in as %3$s</a>. <a href=\"%4$s\">Log out?</a>" msgstr "<a href=\"%1$s\" aria-label=\"%2$s\">Kirjautunut käyttäjänä %3$s</a>. <a href=\"%4$s\">Kirjaudu ulos?</a>" -#. translators: %s: user name -#: wp-includes/comment-template.php:2231 -msgid "Logged in as %s. Edit your profile." -msgstr "Kirjautunut käyttäjänä %s. Muokkaa profiiliasi." - #. translators: 1: VHOST, 2: SUBDOMAIN_INSTALL, 3: wp-config.php, 4: #. is_subdomain_install() #: wp-includes/ms-default-constants.php:134 @@ -2960,29 +2960,45 @@ msgstr "Seuraava muotoiluoikoteiden ryhmä toimii kun kirjoitat tai sijoitat ne msgid "Your session has expired. Please log in to continue where you left off." msgstr "Istuntosi on päättynyt. Kirjaudu sisään jatkaaksesi siitä mihin jäit." -#: wp-includes/user.php:202 -msgid "<strong>ERROR</strong>: The email field is empty." -msgstr "<strong>VIRHE</strong>: Sähköpostikenttä on tyhjä." - -#: wp-includes/user.php:220 -msgid "<strong>ERROR</strong>: Invalid email address." -msgstr "<strong>VIRHE</strong>: Sähköpostiosoite on virheellinen." +#. translators: 1: display name, 2: user_login +#: wp-includes/user.php:1115 +msgctxt "user dropdown" +msgid "%1$s (%2$s)" +msgstr "%1$s (%2$s)" #. translators: %s: email address #: wp-includes/user.php:238 msgid "<strong>ERROR</strong>: The password you entered for the email address %s is incorrect." msgstr "<strong>VIRHE</strong>: Sähköpostiosoitteelle %s syöttämäsi salasana on virheellinen." -#. translators: 1: display name, 2: user_login -#: wp-includes/user.php:1115 -msgctxt "user dropdown" -msgid "%1$s (%2$s)" -msgstr "%1$s (%2$s)" +#: wp-includes/user.php:220 +msgid "<strong>ERROR</strong>: Invalid email address." +msgstr "<strong>VIRHE</strong>: Sähköpostiosoite on virheellinen." + +#: wp-includes/user.php:202 +msgid "<strong>ERROR</strong>: The email field is empty." +msgstr "<strong>VIRHE</strong>: Sähköpostikenttä on tyhjä." #: wp-includes/taxonomy.php:426 msgid "Unregistering a built-in taxonomy is not allowed" msgstr "Et voi poistaa sisäänrakennettuja taksonomioita käytöstä" +#: wp-includes/script-loader.php:538 +msgid "Drag boxes here" +msgstr "Raahaa laatikot tähän" + +#: wp-includes/script-loader.php:473 +msgid "(Untitled)" +msgstr "(Ei otsikkoa)" + +#: wp-includes/rest-api.php:45 +msgid "Route must be specified." +msgstr "Reitti on määritettävä." + +#: wp-includes/rest-api.php:42 +msgid "Routes must be namespaced with plugin or theme name and version." +msgstr "Reittien nimiavaruus on rajoitettava lisäosan tai teeman nimellä ja versiolla." + #: wp-includes/post.php:1167 msgid "Unregistering a built-in post type is not allowed" msgstr "Et voi poistaa sisäänrakennettuja sisältötyyppejä käytöstä" @@ -2992,46 +3008,39 @@ msgctxt "post status" msgid "Trash" msgstr "Roskakorissa" -#: wp-includes/rest-api.php:42 -msgid "Routes must be namespaced with plugin or theme name and version." -msgstr "Reittien nimiavaruus on rajoitettava lisäosan tai teeman nimellä ja versiolla." - -#: wp-includes/rest-api.php:45 -msgid "Route must be specified." -msgstr "Reitti on määritettävä." - -#: wp-includes/script-loader.php:473 -msgid "(Untitled)" -msgstr "(Ei otsikkoa)" - -#: wp-includes/script-loader.php:538 -msgid "Drag boxes here" -msgstr "Raahaa laatikot tähän" - #: wp-includes/post.php:227 msgctxt "post status" msgid "Private" msgstr "Yksityinen" -#: wp-includes/post.php:206 +#: wp-includes/post.php:220 msgctxt "post status" -msgid "Scheduled" -msgstr "Odottaa julkaisua" +msgid "Pending" +msgstr "Tarkastettavana" #: wp-includes/post.php:213 msgctxt "post status" msgid "Draft" msgstr "Luonnos" +#: wp-includes/post.php:206 +msgctxt "post status" +msgid "Scheduled" +msgstr "Odottaa julkaisua" + #: wp-includes/post.php:199 msgctxt "post status" msgid "Published" msgstr "Julkaistu" -#: wp-includes/post.php:220 -msgctxt "post status" -msgid "Pending" -msgstr "Tarkastettavana" +#: wp-includes/post-template.php:1603 +msgctxt "post password form" +msgid "Enter" +msgstr "Lähetä" + +#: wp-includes/pluggable.php:537 +msgid "<strong>ERROR</strong>: Invalid username, email address or incorrect password." +msgstr "<strong>VIRHE</strong>: väärä käyttäjätunnus, sähköpostiosoite tai salasana." #. translators: 1: blog name, 2: separator(raquo), 3: term name, 4: taxonomy #. singular name @@ -3039,14 +3048,15 @@ msgstr "Tarkastettavana" msgid "%1$s %2$s %3$s %4$s Feed" msgstr "Syöte: %1$s %2$s %3$s %4$s" -#: wp-includes/pluggable.php:537 -msgid "<strong>ERROR</strong>: Invalid username, email address or incorrect password." -msgstr "<strong>VIRHE</strong>: väärä käyttäjätunnus, sähköpostiosoite tai salasana." +#: wp-includes/functions.php:5262 +msgid "Close dialog" +msgstr "Sulje dialogi" -#: wp-includes/post-template.php:1603 -msgctxt "post password form" -msgid "Enter" -msgstr "Lähetä" +#. translators: 1: PHP class name, 2: PHP parent class name, 3: version number, +#. 4: __construct() method +#: wp-includes/functions.php:3893 +msgid "The called constructor method for %1$s in %2$s is <strong>deprecated</strong> since version %3$s! Use %4$s instead." +msgstr "Kutsuttu luokan %1$s metodi kantaluokassa %2$s on <strong>vanhentunut</strong> versiosta %3$s lähtien! Käytä sen sijaan metodia %4$s." #: wp-includes/class-wp-customize-manager.php:3875 msgid "Choose logo" @@ -3056,112 +3066,102 @@ msgstr "Valitse logo" msgid "No logo selected" msgstr "Logoa ei ole valittuna" -#. translators: 1: PHP class name, 2: PHP parent class name, 3: version number, -#. 4: __construct() method -#: wp-includes/functions.php:3893 -msgid "The called constructor method for %1$s in %2$s is <strong>deprecated</strong> since version %3$s! Use %4$s instead." -msgstr "Kutsuttu luokan %1$s metodi kantaluokassa %2$s on <strong>vanhentunut</strong> versiosta %3$s lähtien! Käytä sen sijaan metodia %4$s." - -#: wp-includes/functions.php:5262 -msgid "Close dialog" -msgstr "Sulje dialogi" +#: wp-includes/class-wp-customize-manager.php:3870 +msgid "Change logo" +msgstr "Vaihda logo" #: wp-includes/class-wp-customize-manager.php:3869 #: wp-includes/class-wp-customize-manager.php:3874 msgid "Select logo" msgstr "Valitse logo" -#: wp-includes/class-wp-customize-manager.php:3870 -msgid "Change logo" -msgstr "Vaihda logo" - -#: wp-includes/customize/class-wp-customize-partial.php:221 -msgid "Partial render must echo the content or return the content string (or array), but not both." -msgstr "Osan renderöinnissä on joko tulostettava sisältö (echo) tai palautettava sisältö merkkijonona tai taulukkona, mutta ei molempia." - #. translators: %s: document.write() #: wp-includes/customize/class-wp-customize-selective-refresh.php:209 msgid "%s is forbidden" msgstr "%s on kielletty" -#: wp-includes/comment.php:242 -msgctxt "comment status" -msgid "Approved" -msgstr "Hyväksytty" +#: wp-includes/customize/class-wp-customize-partial.php:221 +msgid "Partial render must echo the content or return the content string (or array), but not both." +msgstr "Osan renderöinnissä on joko tulostettava sisältö (echo) tai palautettava sisältö merkkijonona tai taulukkona, mutta ei molempia." -#: wp-includes/comment.php:243 -msgctxt "comment status" -msgid "Spam" -msgstr "Roskaviesti" +#: wp-includes/comment.php:1144 +msgid "<strong>ERROR</strong>: your comment is too long." +msgstr "<strong>VIRHE</strong>: kommenttisi on liian pitkä." -#: wp-includes/comment.php:244 -msgctxt "comment status" -msgid "Trash" -msgstr "Roskakorissa" +#: wp-includes/comment.php:1140 +msgid "<strong>ERROR</strong>: your url is too long." +msgstr "<strong>VIRHE</strong>: URL on liian pitkä." + +#: wp-includes/comment.php:1136 +msgid "<strong>ERROR</strong>: your email address is too long." +msgstr "<strong>VIRHE</strong>: sähköpostiosoitteesi on liian pitkä." #: wp-includes/comment.php:1132 msgid "<strong>ERROR</strong>: your name is too long." msgstr "<strong>VIRHE</strong>: nimesi on liian pitkä." -#: wp-includes/comment.php:1136 -msgid "<strong>ERROR</strong>: your email address is too long." -msgstr "<strong>VIRHE</strong>: sähköpostiosoitteesi on liian pitkä." +#: wp-includes/comment.php:244 +msgctxt "comment status" +msgid "Trash" +msgstr "Roskakorissa" -#: wp-includes/comment.php:1140 -msgid "<strong>ERROR</strong>: your url is too long." -msgstr "<strong>VIRHE</strong>: URL on liian pitkä." +#: wp-includes/comment.php:243 +msgctxt "comment status" +msgid "Spam" +msgstr "Roskaviesti" -#: wp-includes/comment.php:1144 -msgid "<strong>ERROR</strong>: your comment is too long." -msgstr "<strong>VIRHE</strong>: kommenttisi on liian pitkä." +#: wp-includes/comment.php:242 +msgctxt "comment status" +msgid "Approved" +msgstr "Hyväksytty" #: wp-includes/class-wp-theme.php:278 msgid "https://codex.wordpress.org/Child_Themes" msgstr "https://codex.wordpress.org/Child_Themes" -#: wp-includes/class-wp-customize-manager.php:3861 -msgid "Logo" -msgstr "Logo" - -#: wp-includes/class-wp-editor.php:1255 -msgid "Paste URL or type to search" -msgstr "Lisää URL tai aloita haku kirjoittamalla kenttään." +#. translators: 1: index.php, 2: Codex URL, 3: style.css +#: wp-includes/class-wp-theme.php:276 +msgid "Template is missing. Standalone themes need to have a %1$s template file. <a href=\"%2$s\">Child themes</a> need to have a Template header in the %3$s stylesheet." +msgstr "Sivupohja puuttuu. Itsenäisillä teemoilla on oltava %1$s-sivupohja. <a href=\"%2$s\">Lapsiteemoilla</a> on oltava Template-määritys %3$s-tyylitiedostossa." #: wp-includes/class-wp-metadata-lazyloader.php:81 #: wp-includes/class-wp-metadata-lazyloader.php:122 msgid "Invalid object type" msgstr "Väärä oliotyyppi" -#. translators: 1: index.php, 2: Codex URL, 3: style.css -#: wp-includes/class-wp-theme.php:276 -msgid "Template is missing. Standalone themes need to have a %1$s template file. <a href=\"%2$s\">Child themes</a> need to have a Template header in the %3$s stylesheet." -msgstr "Sivupohja puuttuu. Itsenäisillä teemoilla on oltava %1$s-sivupohja. <a href=\"%2$s\">Lapsiteemoilla</a> on oltava Template-määritys %3$s-tyylitiedostossa." +#: wp-includes/class-wp-editor.php:1255 +msgid "Paste URL or type to search" +msgstr "Lisää URL tai aloita haku kirjoittamalla kenttään." + +#: wp-includes/class-wp-customize-manager.php:3861 +msgid "Logo" +msgstr "Logo" #: wp-includes/class-wp-customize-manager.php:3828 #: wp-includes/class-wp-customize-manager.php:3905 msgid "Display Site Title and Tagline" msgstr "Näytä sivuston otsikko tai kuvaus" -#: wp-comments-post.php:29 -msgid "Comment Submission Failure" -msgstr "Kommentin lähettäminen epäonnistui" - -#: wp-includes/class-wp-customize-manager.php:1810 -#: wp-includes/customize/class-wp-customize-selective-refresh.php:203 -msgid "Shift-click to edit this element." -msgstr "Muokkaa tätä elementtia klikkaamalla shift-painike pohjassa." +#: wp-includes/class-wp-customize-manager.php:3707 +msgid "Enter mobile preview mode" +msgstr "Siirry mobiilinäkymän esikatseluun" + +#: wp-includes/class-wp-customize-manager.php:3704 +msgid "Enter tablet preview mode" +msgstr "Siirry tablettinäkymän esikatseluun" #: wp-includes/class-wp-customize-manager.php:3700 msgid "Enter desktop preview mode" msgstr "Siirry työpöytänäkymän esikatseluun" -#: wp-includes/class-wp-customize-manager.php:3704 -msgid "Enter tablet preview mode" -msgstr "Siirry tablettinäkymän esikatseluun" +#: wp-includes/class-wp-customize-manager.php:1810 +#: wp-includes/customize/class-wp-customize-selective-refresh.php:203 +msgid "Shift-click to edit this element." +msgstr "Muokkaa tätä elementtia klikkaamalla shift-painike pohjassa." -#: wp-includes/class-wp-customize-manager.php:3707 -msgid "Enter mobile preview mode" -msgstr "Siirry mobiilinäkymän esikatseluun" +#: wp-comments-post.php:29 +msgid "Comment Submission Failure" +msgstr "Kommentin lähettäminen epäonnistui" #: wp-includes/user.php:2302 msgid "<strong>ERROR</strong>: Sorry, that username is not allowed." @@ -3183,24 +3183,24 @@ msgctxt "menu" msgid "(Currently set to: %s)" msgstr "(Nykyinen asetus: %s)" +#: wp-includes/ms-load.php:486 +msgid "https://codex.wordpress.org/Debugging_a_WordPress_Network" +msgstr "https://codex.wordpress.org/Debugging_a_WordPress_Network" + #. translators: %s: Codex URL #: wp-includes/ms-load.php:485 msgid "Read the <a href=\"%s\" target=\"_blank\">bug report</a> page. Some of the guidelines there may help you figure out what went wrong." msgstr "Lue <a href=\"%s\" target=\"_blank\">bugiraportin</a> sivu. Ohjeet siellä saattavat auttaa selvittämään mikä meni pieleen." -#: wp-includes/ms-load.php:486 -msgid "https://codex.wordpress.org/Debugging_a_WordPress_Network" -msgstr "https://codex.wordpress.org/Debugging_a_WordPress_Network" +#: wp-includes/functions.php:4136 +msgid "https://codex.wordpress.org/Debugging_in_WordPress" +msgstr "https://codex.wordpress.org/Debugging_in_WordPress" #. translators: %s: Codex URL #: wp-includes/functions.php:4135 msgid "Please see <a href=\"%s\">Debugging in WordPress</a> for more information." msgstr "Lisätietoja: <a href=\"%s\">Debugging in WordPress</a>." -#: wp-includes/functions.php:4136 -msgid "https://codex.wordpress.org/Debugging_in_WordPress" -msgstr "https://codex.wordpress.org/Debugging_in_WordPress" - #. translators: 1: $table_prefix 2: wp-config.php #: wp-includes/load.php:438 msgid "<strong>ERROR</strong>: %1$s in %2$s can only contain numbers, letters, and underscores." @@ -3210,20 +3210,19 @@ msgstr "<strong>VIRHE</strong>: %1$s sivulla %2$s voi koostua vain numeroista, k msgid "Changes saved." msgstr "Muutokset tallennettu." +#: wp-load.php:83 +msgid "https://codex.wordpress.org/Editing_wp-config.php" +msgstr "https://codex.wordpress.org/Editing_wp-config.php" + #. translators: %s: Codex URL #: wp-load.php:82 msgid "Need more help? <a href='%s'>We got it</a>." msgstr "Tarvitsetko apua? <a href='%s'>Me autamme</a>." -#: wp-load.php:83 -msgid "https://codex.wordpress.org/Editing_wp-config.php" -msgstr "https://codex.wordpress.org/Editing_wp-config.php" - -#. translators: %s: get_the_author() -#. translators: %s: get_trackback_url() -#: wp-includes/author-template.php:66 wp-includes/comment-template.php:1137 -msgid "Use %s instead if you do not want the value echoed." -msgstr "Käytä %s -funktiokutsua jos et halua tulostaa arvoa näkyviin." +#. translators: %s: wp-config.php +#: wp-load.php:77 +msgid "There doesn't seem to be a %s file. I need this before we can get started." +msgstr "Tiedosto %s puuttuu. Se tarvitaan ennen kuin päästään alkuun." #. translators: %s: WP_User->ID #: wp-includes/class-wp-user.php:280 wp-includes/class-wp-user.php:310 @@ -3231,10 +3230,11 @@ msgstr "Käytä %s -funktiokutsua jos et halua tulostaa arvoa näkyviin." msgid "Use %s instead." msgstr "Käytä sen sijaan: %s" -#. translators: %s: wp-config.php -#: wp-load.php:77 -msgid "There doesn't seem to be a %s file. I need this before we can get started." -msgstr "Tiedosto %s puuttuu. Se tarvitaan ennen kuin päästään alkuun." +#. translators: %s: get_the_author() +#. translators: %s: get_trackback_url() +#: wp-includes/author-template.php:66 wp-includes/comment-template.php:1137 +msgid "Use %s instead if you do not want the value echoed." +msgstr "Käytä %s -funktiokutsua jos et halua tulostaa arvoa näkyviin." #: wp-includes/class-wp-term.php:166 msgid "Term ID is shared between multiple taxonomies" @@ -3245,22 +3245,22 @@ msgid "Term meta cannot be added to terms that are shared between taxonomies." msgstr "Metatietoa ei voi lisätä termille, joka kuuluu useampaan taksonomiaan." #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:177 +#: wp-includes/class-wp-locale.php:183 msgctxt "genitive" -msgid "June" -msgstr "kesäkuun" +msgid "December" +msgstr "joulukuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:178 +#: wp-includes/class-wp-locale.php:182 msgctxt "genitive" -msgid "July" -msgstr "heinäkuun" +msgid "November" +msgstr "marraskuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:179 +#: wp-includes/class-wp-locale.php:181 msgctxt "genitive" -msgid "August" -msgstr "elokuun" +msgid "October" +msgstr "lokakuun" #. translators: month name, genitive #: wp-includes/class-wp-locale.php:180 @@ -3269,34 +3269,28 @@ msgid "September" msgstr "syyskuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:181 -msgctxt "genitive" -msgid "October" -msgstr "lokakuun" - -#. translators: month name, genitive -#: wp-includes/class-wp-locale.php:182 +#: wp-includes/class-wp-locale.php:179 msgctxt "genitive" -msgid "November" -msgstr "marraskuun" +msgid "August" +msgstr "elokuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:183 +#: wp-includes/class-wp-locale.php:178 msgctxt "genitive" -msgid "December" -msgstr "joulukuun" +msgid "July" +msgstr "heinäkuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:173 +#: wp-includes/class-wp-locale.php:177 msgctxt "genitive" -msgid "February" -msgstr "helmikuun" +msgid "June" +msgstr "kesäkuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:174 +#: wp-includes/class-wp-locale.php:176 msgctxt "genitive" -msgid "March" -msgstr "maaliskuun" +msgid "May" +msgstr "toukokuun" #. translators: month name, genitive #: wp-includes/class-wp-locale.php:175 @@ -3305,10 +3299,16 @@ msgid "April" msgstr "huhtikuun" #. translators: month name, genitive -#: wp-includes/class-wp-locale.php:176 +#: wp-includes/class-wp-locale.php:174 msgctxt "genitive" -msgid "May" -msgstr "toukokuun" +msgid "March" +msgstr "maaliskuun" + +#. translators: month name, genitive +#: wp-includes/class-wp-locale.php:173 +msgctxt "genitive" +msgid "February" +msgstr "helmikuun" #. translators: month name, genitive #: wp-includes/class-wp-locale.php:172 @@ -3327,14 +3327,14 @@ msgstr "on" msgid "Sharing options" msgstr "Jakamisen asetukset" -#: wp-includes/class-wp-xmlrpc-server.php:534 -msgid "Medium-Large size image width" -msgstr "Keskisuuren kuvan leveys" - #: wp-includes/class-wp-xmlrpc-server.php:539 msgid "Medium-Large size image height" msgstr "Keskisuuren kuvan korkeus" +#: wp-includes/class-wp-xmlrpc-server.php:534 +msgid "Medium-Large size image width" +msgstr "Keskisuuren kuvan leveys" + #. translators: %s: site link #: wp-includes/theme-compat/sidebar.php:78 msgid "You are currently browsing the %s blog archives." @@ -3360,16 +3360,16 @@ msgstr "Luet parhaillaan %1$s blogiarkistoa päivälle %2$s." msgid "This site has not been activated yet. If you are having problems activating your site, please contact %s." msgstr "Sivustoa ei vielä olla aktivoitu. Jos sinulla on vaikeuksia sivun aktivoinnissa, ota yhteyttä sähköpostitse %s." -#. translators: %s: menu name -#: wp-includes/nav-menu.php:292 wp-includes/nav-menu.php:305 -msgid "The menu name %s conflicts with another menu name. Please try another." -msgstr "Valikko nimeltä %s on jo olemassa. Koita toista nimeä." - #. translators: %s: email address #: wp-signup.php:608 wp-signup.php:754 msgid "Check your inbox at %s and click the link given." msgstr "Tarkista sähköpostilaatikko %s ja klikkaa sinne tulleen sähköpostin linkkiä" +#. translators: %s: menu name +#: wp-includes/nav-menu.php:292 wp-includes/nav-menu.php:305 +msgid "The menu name %s conflicts with another menu name. Please try another." +msgstr "Valikko nimeltä %s on jo olemassa. Koita toista nimeä." + #. translators: %s: site address #: wp-signup.php:901 msgid "The site you were looking for, %s, does not exist." @@ -3380,24 +3380,24 @@ msgstr "Etsimääsi sivustoa %s ei ole olemassa." msgid "It looks like nothing was found at this location. Maybe try visiting %s directly?" msgstr "Näyttää siltä, että tästä osoitteesta ei löytynyt mitään. Voinet kokeilla alkuperäisen sivun %s osoitetta?" +#: wp-includes/theme-compat/embed-404.php:14 +msgid "Oops! That embed can’t be found." +msgstr "Hups! Upotettavaa sisältöä ei löytynyt." + #. translators: %s: Name of current post #: wp-includes/embed.php:797 wp-includes/post-template.php:270 msgid "Continue reading %s" msgstr "Jatka artikkelin %s lukemista" -#: wp-includes/theme-compat/embed-404.php:14 -msgid "Oops! That embed can’t be found." -msgstr "Hups! Upotettavaa sisältöä ei löytynyt." +#: wp-signup.php:146 +msgid "Site Language:" +msgstr "Sivuston kieli:" #. translators: %s: the message ID #: wp-mail.php:246 msgid "Mission complete. Message %s deleted." msgstr "Tehtävä suoritettu. Viesti %s on poistettu." -#: wp-signup.php:146 -msgid "Site Language:" -msgstr "Sivuston kieli:" - #: wp-mail.php:233 msgid "Posted title:" msgstr "Otsikko:" @@ -3406,18 +3406,6 @@ msgstr "Otsikko:" msgid "Author:" msgstr "Tekijä:" -#: wp-includes/wp-db.php:1594 -msgid "Are you sure that you have typed the correct hostname?" -msgstr "Onko tietokantapalvelimen osoite varmasti kirjoitettu oikein?" - -#: wp-includes/wp-db.php:1595 wp-includes/wp-db.php:1698 -msgid "Are you sure that the database server is running?" -msgstr "Oletko varma, että tietokantapalvelin on käynnissä?" - -#: wp-includes/wp-db.php:1689 -msgid "Error reconnecting to the database" -msgstr "Virhe tietokantayhteyden uudelleen muodostamisessa" - #: wp-includes/wp-db.php:1699 msgid "Are you sure that the database server is not under particularly heavy load?" msgstr "Oletko varma, että tietokantapalvelimella ei ole poikkeuksellisen suurta ruuhkaa?" @@ -3427,11 +3415,23 @@ msgstr "Oletko varma, että tietokantapalvelimella ei ole poikkeuksellisen suurt msgid "This means that we lost contact with the database server at %s. This could mean your host’s database server is down." msgstr "Tämä tarkoittaa että emme saa yhteyttä tietokantaan osoitteessa %s. Tietokantapalvelin saattaa olla alhaalla (poissa toiminnasta)." +#: wp-includes/wp-db.php:1689 +msgid "Error reconnecting to the database" +msgstr "Virhe tietokantayhteyden uudelleen muodostamisessa" + #. translators: %s: support forums URL #: wp-includes/wp-db.php:1600 wp-includes/wp-db.php:1704 msgid "If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href=\"%s\">WordPress Support Forums</a>." msgstr "Jos olet epävarma siitä, mitä nämä termit tarkoittavat, kannattaa sinun olla yhteydessä palveluntarjoajaasi. Jos mikään muu ei tuota tulosta, voit koittaa myös hakea neuvoa <a href=\"%s\">WordPress-tukifoorumilta</a>." +#: wp-includes/wp-db.php:1595 wp-includes/wp-db.php:1698 +msgid "Are you sure that the database server is running?" +msgstr "Oletko varma, että tietokantapalvelin on käynnissä?" + +#: wp-includes/wp-db.php:1594 +msgid "Are you sure that you have typed the correct hostname?" +msgstr "Onko tietokantapalvelimen osoite varmasti kirjoitettu oikein?" + #: wp-includes/wp-db.php:1593 msgid "Are you sure you have the correct username and password?" msgstr "Oletko varma, että sinulla on oikea käyttäjätunnus ja salasana?" @@ -3446,6 +3446,11 @@ msgstr "Tämä tarkoittaa joko että tietokannan tunnus ja salasana ovat vääri msgid "If you don’t know how to set up a database you should <strong>contact your host</strong>. If all else fails you may find help at the <a href=\"%s\">WordPress Support Forums</a>." msgstr "Jos et tiedä miten tietokanta otetaan käyttöön, <strong>ota yhteys palveluntarjoajaasi</strong>. Jos mikään muu ei tuota tulosta, voit koittaa hakea neuvoa <a href=\"%s\">WordPress-tukifoorumilta</a>." +#. translators: %s: database name +#: wp-includes/wp-db.php:1120 +msgid "On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?" +msgstr "Joissakin järjestelmissä tietokannan nimessä on etuliitteenä käyttäjätunnus, esimerkiksi <code>username_%1$s</code>. Voisiko siitä olla kyse?" + #. translators: 1: database user, 2: database name #: wp-includes/wp-db.php:1113 msgid "Does the user %1$s have permission to use the %2$s database?" @@ -3455,19 +3460,14 @@ msgstr "Onko käyttäjällä %1$s oikeudet käyttää %2$s -tietokantaa?" msgid "Are you sure it exists?" msgstr "Oletko varma, että se on olemassa?" -#: wp-includes/wp-db.php:1100 -msgid "Can’t select database" -msgstr "Tietokantaa ei voi avata" - #. translators: %s: database name #: wp-includes/wp-db.php:1104 msgid "We were able to connect to the database server (which means your username and password is okay) but not able to select the %s database." msgstr "Saimme yhteyden tietokantapalvelimeen (eli tunnus ja salasana ovat oikein) mutta emme onnistuneet avaamaan %s-tietokantaa." -#. translators: %s: database name -#: wp-includes/wp-db.php:1120 -msgid "On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?" -msgstr "Joissakin järjestelmissä tietokannan nimessä on etuliitteenä käyttäjätunnus, esimerkiksi <code>username_%1$s</code>. Voisiko siitä olla kyse?" +#: wp-includes/wp-db.php:1100 +msgid "Can’t select database" +msgstr "Tietokantaa ei voi avata" #: wp-includes/widgets/class-wp-widget-tag-cloud.php:148 msgid "The tag cloud will not be displayed since there are no taxonomies that support the tag cloud widget." @@ -3477,27 +3477,19 @@ msgstr "Avainsanapilveä ei näytetä, koska yhtäkään taksonomiaa ei ole reki msgid "Could not save password reset key to database." msgstr "Salasanan resetointiavainta ei pystytty tallentamaan tietokantaan." +#: wp-includes/user.php:1485 +msgid "Nicename may not be longer than 50 characters." +msgstr "Kivanimi (nicename) ei voi olla pidempi kuin 50 merkkiä." + #. translators: %s: user name #: wp-includes/user.php:166 msgid "<strong>ERROR</strong>: The password you entered for the username %s is incorrect." msgstr "<strong>VIRHE</strong>: Antamasi salasana käyttäjätunnukselle %s on virheellinen." -#: wp-includes/user.php:1485 -msgid "Nicename may not be longer than 50 characters." -msgstr "Kivanimi (nicename) ei voi olla pidempi kuin 50 merkkiä." - #: wp-includes/user.php:142 msgid "<strong>ERROR</strong>: Invalid username." msgstr "<strong>VIRHE</strong>: Virheellinen käyttäjänimi." -#: wp-includes/taxonomy.php:512 -msgid "Tags list navigation" -msgstr "Avainsanojen selaus" - -#: wp-includes/taxonomy.php:512 -msgid "Categories list navigation" -msgstr "Kategorioiden selaus" - #: wp-includes/taxonomy.php:513 msgid "Categories list" msgstr "Kategorioiden listaus" @@ -3506,48 +3498,69 @@ msgstr "Kategorioiden listaus" msgid "Tags list" msgstr "Avainsanojen listaus" +#: wp-includes/taxonomy.php:512 +msgid "Categories list navigation" +msgstr "Kategorioiden selaus" + +#: wp-includes/taxonomy.php:512 +msgid "Tags list navigation" +msgstr "Avainsanojen selaus" + +#. translators: 1: shortcode name, 2: space separated list of reserved +#. characters +#: wp-includes/shortcodes.php:100 +msgid "Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s" +msgstr "Virheellinen lyhytkoodin nimi: %1$s. Älä käytä välilyöntejä tai näitä varattuja merkkejä: %2$s" + +#: wp-includes/shortcodes.php:93 +msgid "Invalid shortcode name: Empty name given." +msgstr "Virheellinen lyhytkoodin nimi: Tyhjä nimi." + #: wp-includes/script-loader.php:576 msgid "Permalink saved" msgstr "Osoiterakenne tallennettu" -#. translators: 1: function name, 2: WordPress version number -#: wp-includes/rest-api.php:505 wp-includes/rest-api.php:529 -msgid "%1$s (since %2$s; no alternative available)" -msgstr "%1$s (versiosta %2$s lähtien; ei korvaavia vaihtoehtoja)" +#: wp-includes/rest-api.php:749 +msgid "Cookie nonce is invalid" +msgstr "Evästeen nonce on virheellinen" #. translators: 1: function name, 2: WordPress version number, 3: error message #: wp-includes/rest-api.php:526 msgid "%1$s (since %2$s; %3$s)" msgstr "%1$s (versiosta %2$s lähtien; %3$s)" -#: wp-includes/rest-api.php:749 -msgid "Cookie nonce is invalid" -msgstr "Evästeen nonce on virheellinen" +#. translators: 1: function name, 2: WordPress version number +#: wp-includes/rest-api.php:505 wp-includes/rest-api.php:529 +msgid "%1$s (since %2$s; no alternative available)" +msgstr "%1$s (versiosta %2$s lähtien; ei korvaavia vaihtoehtoja)" -#: wp-includes/shortcodes.php:93 -msgid "Invalid shortcode name: Empty name given." -msgstr "Virheellinen lyhytkoodin nimi: Tyhjä nimi." - -#. translators: 1: shortcode name, 2: space separated list of reserved -#. characters -#: wp-includes/shortcodes.php:100 -msgid "Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s" -msgstr "Virheellinen lyhytkoodin nimi: %1$s. Älä käytä välilyöntejä tai näitä varattuja merkkejä: %2$s" +#. translators: 1: function name, 2: WordPress version number, 3: new function +#. name +#: wp-includes/rest-api.php:502 +msgid "%1$s (since %2$s; use %3$s instead)" +msgstr "%1$s (versiosta %2$s lähtien; käytä sen sijaan funktiota %3$s)" #: wp-includes/rest-api/class-wp-rest-server.php:1076 msgid "The specified namespace could not be found." msgstr "Määriteltyä nimiavaruutta ei löytynyt." -#. translators: 1: function name, 2: WordPress version number, 3: new function -#. name -#: wp-includes/rest-api.php:502 -msgid "%1$s (since %2$s; use %3$s instead)" -msgstr "%1$s (versiosta %2$s lähtien; käytä sen sijaan funktiota %3$s)" - #: wp-includes/rest-api/class-wp-rest-server.php:986 msgid "No route was found matching the URL and request method" msgstr "Pyyntötapaa ja URLia koskevaa polkua ei löytynyt" +#: wp-includes/rest-api/class-wp-rest-server.php:865 +msgid "The handler for the route is invalid" +msgstr "Polun käsittelijä (handler) ei kelpaa" + +#: wp-includes/rest-api/class-wp-rest-server.php:288 +msgid "JSONP support is disabled on this site." +msgstr "JSONP-tuki ei ole käytössä tällä sivustolla." + +#: wp-includes/rest-api/class-wp-rest-request.php:849 +#: wp-includes/rest-api/class-wp-rest-request.php:916 +msgid "Invalid parameter(s): %s" +msgstr "Väärä(t) parametri(t): %s" + #: wp-includes/rest-api/class-wp-rest-request.php:888 msgid "Missing parameter(s): %s" msgstr "Parametri tai parametrejä puuttuu: %s" @@ -3558,71 +3571,70 @@ msgstr "Parametri tai parametrejä puuttuu: %s" msgid "In %1$s, use the %2$s method, not the %3$s function. See %4$s." msgstr "Käytä %1$s:issa %2$s-metodia, älä %3$s-funktiota. Lisätietoa: %4$s." -#: wp-includes/rest-api/class-wp-rest-request.php:849 -#: wp-includes/rest-api/class-wp-rest-request.php:916 -msgid "Invalid parameter(s): %s" -msgstr "Väärä(t) parametri(t): %s" - -#: wp-includes/rest-api/class-wp-rest-server.php:288 -msgid "JSONP support is disabled on this site." -msgstr "JSONP-tuki ei ole käytössä tällä sivustolla." +#: wp-includes/post.php:1393 +msgid "Pages list" +msgstr "Sivujen listaus" -#: wp-includes/rest-api/class-wp-rest-server.php:865 -msgid "The handler for the route is invalid" -msgstr "Polun käsittelijä (handler) ei kelpaa" +#: wp-includes/post.php:1393 +msgid "Posts list" +msgstr "Artikkelien listaus" #: wp-includes/post.php:1392 msgid "Pages list navigation" msgstr "Sivujen selaus" -#: wp-includes/post.php:1393 -msgid "Posts list" -msgstr "Artikkelien listaus" +#: wp-includes/post.php:1392 +msgid "Posts list navigation" +msgstr "Artikkeleiden selaus" -#: wp-includes/post.php:1393 -msgid "Pages list" -msgstr "Sivujen listaus" +#: wp-includes/post.php:1391 +msgid "Filter pages list" +msgstr "Suodata sivuja" #: wp-includes/post.php:1391 msgid "Filter posts list" msgstr "Suodata artikkeleita" -#: wp-includes/post.php:1391 -msgid "Filter pages list" -msgstr "Suodata sivuja" - -#: wp-includes/post.php:1392 -msgid "Posts list navigation" -msgstr "Artikkeleiden selaus" +#: wp-includes/post.php:1383 +msgid "Page Archives" +msgstr "Sivujen arkisto" #: wp-includes/post.php:1383 msgid "Post Archives" msgstr "Artikkeleiden arkisto" -#: wp-includes/post.php:1383 -msgid "Page Archives" -msgstr "Sivujen arkisto" - #: wp-includes/class-wp-customize-nav-menus.php:171 #: wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:335 #: wp-includes/nav-menu.php:747 msgid "Post Type Archive" msgstr "Sisältötyypin arkisto" +#: wp-includes/ms-functions.php:574 +msgid "Site names can only contain lowercase letters (a-z) and numbers." +msgstr "Sivuston nimessä vain pienet kirjaimet (a-z) ja numerot ovat sallittuja." + #: wp-includes/ms-functions.php:435 wp-includes/ms-functions.php:442 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1101 #: wp-includes/user.php:1475 msgid "Sorry, that username is not allowed." msgstr "Pahoittelut mutta tämä käyttäjänimi ei ole sallittu." -#: wp-includes/ms-functions.php:574 -msgid "Site names can only contain lowercase letters (a-z) and numbers." -msgstr "Sivuston nimessä vain pienet kirjaimet (a-z) ja numerot ovat sallittuja." - #: wp-includes/ms-functions.php:420 msgid "Usernames can only contain lowercase letters (a-z) and numbers." msgstr "Käyttäjänimessä vain pienet kirjaimet (a-z) ja numerot ovat sallittuja." +#. translators: playlist item title +#: wp-includes/media.php:1834 wp-includes/media.php:1849 +msgctxt "playlist item title" +msgid "“%s”" +msgstr "”%s”" + +#. translators: three-letter abbreviation of the month +#: wp-includes/class-wp-locale.php:197 +msgctxt "December abbreviation" +msgid "Dec" +msgstr "joulu" + #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:196 msgctxt "November abbreviation" @@ -3630,16 +3642,16 @@ msgid "Nov" msgstr "marras" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:197 -msgctxt "December abbreviation" -msgid "Dec" -msgstr "joulu" +#: wp-includes/class-wp-locale.php:195 +msgctxt "October abbreviation" +msgid "Oct" +msgstr "loka" -#. translators: playlist item title -#: wp-includes/media.php:1834 wp-includes/media.php:1849 -msgctxt "playlist item title" -msgid "“%s”" -msgstr "”%s”" +#. translators: three-letter abbreviation of the month +#: wp-includes/class-wp-locale.php:194 +msgctxt "September abbreviation" +msgid "Sep" +msgstr "syys" #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:193 @@ -3654,28 +3666,22 @@ msgid "Jul" msgstr "heinä" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:194 -msgctxt "September abbreviation" -msgid "Sep" -msgstr "syys" - -#. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:195 -msgctxt "October abbreviation" -msgid "Oct" -msgstr "loka" +#: wp-includes/class-wp-locale.php:191 +msgctxt "June abbreviation" +msgid "Jun" +msgstr "kesä" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:186 -msgctxt "January abbreviation" -msgid "Jan" -msgstr "tammi" +#: wp-includes/class-wp-locale.php:190 +msgctxt "May abbreviation" +msgid "May" +msgstr "touko" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:187 -msgctxt "February abbreviation" -msgid "Feb" -msgstr "helmi" +#: wp-includes/class-wp-locale.php:189 +msgctxt "April abbreviation" +msgid "Apr" +msgstr "huhti" #. translators: three-letter abbreviation of the month #: wp-includes/class-wp-locale.php:188 @@ -3684,28 +3690,28 @@ msgid "Mar" msgstr "maalis" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:189 -msgctxt "April abbreviation" -msgid "Apr" -msgstr "huhti" +#: wp-includes/class-wp-locale.php:187 +msgctxt "February abbreviation" +msgid "Feb" +msgstr "helmi" #. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:190 -msgctxt "May abbreviation" -msgid "May" -msgstr "touko" +#: wp-includes/class-wp-locale.php:186 +msgctxt "January abbreviation" +msgid "Jan" +msgstr "tammi" -#. translators: three-letter abbreviation of the month -#: wp-includes/class-wp-locale.php:191 -msgctxt "June abbreviation" -msgid "Jun" -msgstr "kesä" +#. translators: one-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:146 +msgctxt "Saturday initial" +msgid "S" +msgstr "la" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:143 -msgctxt "Wednesday initial" -msgid "W" -msgstr "ke" +#: wp-includes/class-wp-locale.php:145 +msgctxt "Friday initial" +msgid "F" +msgstr "pe" #. translators: one-letter abbreviation of the weekday #: wp-includes/class-wp-locale.php:144 @@ -3714,22 +3720,16 @@ msgid "T" msgstr "to" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:145 -msgctxt "Friday initial" -msgid "F" -msgstr "pe" - -#. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:146 -msgctxt "Saturday initial" -msgid "S" -msgstr "la" +#: wp-includes/class-wp-locale.php:143 +msgctxt "Wednesday initial" +msgid "W" +msgstr "ke" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:140 -msgctxt "Sunday initial" -msgid "S" -msgstr "su" +#: wp-includes/class-wp-locale.php:142 +msgctxt "Tuesday initial" +msgid "T" +msgstr "ti" #. translators: one-letter abbreviation of the weekday #: wp-includes/class-wp-locale.php:141 @@ -3738,10 +3738,10 @@ msgid "M" msgstr "ma" #. translators: one-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:142 -msgctxt "Tuesday initial" -msgid "T" -msgstr "ti" +#: wp-includes/class-wp-locale.php:140 +msgctxt "Sunday initial" +msgid "S" +msgstr "su" #: wp-includes/link-template.php:2822 msgid "Newer comments" @@ -3761,35 +3761,35 @@ msgstr "Artikkelit julkaistu %s" msgid "Use the %s filter instead." msgstr "Käytä filtteriä %s sen sijaan." -#: wp-includes/embed.php:1014 -msgid "Copy and paste this code into your site to embed" -msgstr "Kopioi ja liitä tämä koodi sivustollesi luodaksesi upotteen" - #: wp-includes/embed.php:1019 msgid "Close sharing dialog" msgstr "Sulje jakodialogi" -#: wp-includes/embed.php:951 -msgid "%s <span class=\"screen-reader-text\">Comment</span>" -msgid_plural "%s <span class=\"screen-reader-text\">Comments</span>" -msgstr[0] "%s <span class=\"screen-reader-text\">kommentti</span>" -msgstr[1] "%s <span class=\"screen-reader-text\">kommenttia</span>" +#: wp-includes/embed.php:1014 +msgid "Copy and paste this code into your site to embed" +msgstr "Kopioi ja liitä tämä koodi sivustollesi luodaksesi upotteen" -#: wp-includes/embed.php:975 -msgid "Open sharing dialog" -msgstr "Avaa jakodialogi" +#: wp-includes/embed.php:1007 +msgid "Copy and paste this URL into your WordPress site to embed" +msgstr "Kopioi ja liitä tämä koodi WordPress-sivustollesi luodaksesi upotteen" + +#: wp-includes/embed.php:1000 +msgid "HTML Embed" +msgstr "HTML-upotteet" #: wp-includes/embed.php:997 msgid "WordPress Embed" msgstr "WordPress-upotteet" -#: wp-includes/embed.php:1000 -msgid "HTML Embed" -msgstr "HTML-upotteet" +#: wp-includes/embed.php:975 +msgid "Open sharing dialog" +msgstr "Avaa jakodialogi" -#: wp-includes/embed.php:1007 -msgid "Copy and paste this URL into your WordPress site to embed" -msgstr "Kopioi ja liitä tämä koodi WordPress-sivustollesi luodaksesi upotteen" +#: wp-includes/embed.php:951 +msgid "%s <span class=\"screen-reader-text\">Comment</span>" +msgid_plural "%s <span class=\"screen-reader-text\">Comments</span>" +msgstr[0] "%s <span class=\"screen-reader-text\">kommentti</span>" +msgstr[1] "%s <span class=\"screen-reader-text\">kommenttia</span>" #: wp-includes/customize/class-wp-widget-area-customize-control.php:67 msgid "When in reorder mode, additional controls to reorder widgets will be available in the widgets list above." @@ -3828,12 +3828,9 @@ msgstr "Esikatselu: %s" msgid "The requested theme does not exist." msgstr "Pyydettyä teemaa ei ole olemassa." -#. translators: 1: "type => link", 2: "taxonomy => link_category" -#. translators: 1: caller_get_posts, 2: ignore_sticky_posts -#: wp-includes/category-template.php:349 wp-includes/category.php:46 -#: wp-includes/class-wp-query.php:1718 -msgid "%1$s is deprecated. Use %2$s instead." -msgstr "%1$s ei tueta. Käytä %2$s sen sijaan." +#: wp-includes/class-wp-customize-manager.php:532 +msgid "Sorry, you are not allowed to edit theme options on this site." +msgstr "Et voi muokata teeman asetuksia tällä sivustolla. " #. translators: 1: post type, 2: capability name #: wp-includes/capabilities.php:83 wp-includes/capabilities.php:144 @@ -3841,9 +3838,12 @@ msgstr "%1$s ei tueta. Käytä %2$s sen sijaan." msgid "The post type %1$s is not registered, so it may not be reliable to check the capability \"%2$s\" against a post of that type." msgstr "Sisältötyyppiä %1$s ei ole rekisteröity, joten ei välttämättä ole luotettavaa tarkastaa oikeutta \"%2$s\" tälle sisältötyypille." -#: wp-includes/class-wp-customize-manager.php:532 -msgid "Sorry, you are not allowed to edit theme options on this site." -msgstr "Et voi muokata teeman asetuksia tällä sivustolla. " +#. translators: 1: "type => link", 2: "taxonomy => link_category" +#. translators: 1: caller_get_posts, 2: ignore_sticky_posts +#: wp-includes/category-template.php:349 wp-includes/category.php:46 +#: wp-includes/class-wp-query.php:1718 +msgid "%1$s is deprecated. Use %2$s instead." +msgstr "%1$s ei tueta. Käytä %2$s sen sijaan." #: wp-includes/class-wp-customize-nav-menus.php:972 #: wp-includes/class-wp-customize-widgets.php:845 @@ -3868,23 +3868,23 @@ msgctxt "Word count type. Do not translate!" msgid "words" msgstr "words" -#: wp-includes/script-loader.php:411 -msgid "Your new password has not been saved." -msgstr "Uutta salasanaasi ei tallennettu." - -#: wp-includes/class-wp-customize-nav-menus.php:1056 -msgid "Toggle section: Custom Links" -msgstr "Näytä/piilota osio: Omat linkit" +#. translators: 1: Title of a menu item, 2: Type of a menu item +#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:77 +msgid "Edit menu item: %1$s (%2$s)" +msgstr "Muokkaa valikkokohdetta: %1$s (%2$s)" #. translators: 1: Title of a menu item, 2: Type of a menu item #: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:81 msgid "Remove Menu Item: %1$s (%2$s)" msgstr "Poista valikkokohde: %1$s (%2$s)" -#. translators: 1: Title of a menu item, 2: Type of a menu item -#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:77 -msgid "Edit menu item: %1$s (%2$s)" -msgstr "Muokkaa valikkokohdetta: %1$s (%2$s)" +#: wp-includes/class-wp-customize-nav-menus.php:1056 +msgid "Toggle section: Custom Links" +msgstr "Näytä/piilota osio: Omat linkit" + +#: wp-includes/script-loader.php:411 +msgid "Your new password has not been saved." +msgstr "Uutta salasanaasi ei tallennettu." #: wp-includes/script-loader.php:417 msgid "Hide password" @@ -3898,23 +3898,23 @@ msgstr "Näytä salasana" msgid "Menu Name" msgstr "Valikon nimi" -#: wp-includes/media-template.php:1248 -msgid "As a browser icon" -msgstr "Selainkuvakkeena" +#: wp-includes/customize/class-wp-customize-site-icon-control.php:74 +#: wp-includes/media-template.php:1260 +msgid "Preview as an app icon" +msgstr "Esikatsele sovelluskuvakkeena" + +#: wp-includes/media-template.php:1258 +msgid "As an app icon" +msgstr "Sovelluskuvakkeena" #: wp-includes/customize/class-wp-customize-site-icon-control.php:70 #: wp-includes/media-template.php:1253 msgid "Preview as a browser icon" msgstr "Esikatsele selainkuvakkeena" -#: wp-includes/media-template.php:1258 -msgid "As an app icon" -msgstr "Sovelluskuvakkeena" - -#: wp-includes/customize/class-wp-customize-site-icon-control.php:74 -#: wp-includes/media-template.php:1260 -msgid "Preview as an app icon" -msgstr "Esikatsele sovelluskuvakkeena" +#: wp-includes/media-template.php:1248 +msgid "As a browser icon" +msgstr "Selainkuvakkeena" #: wp-includes/class-wp-customize-nav-menus.php:1018 msgid "No items" @@ -3937,20 +3937,20 @@ msgctxt "password mismatch" msgid "Mismatch" msgstr "Eivät täsmää" -#: wp-includes/script-loader.php:402 +#: wp-includes/script-loader.php:405 msgctxt "password strength" -msgid "Very weak" -msgstr "Erittäin heikko" +msgid "Strong" +msgstr "Vahva" #: wp-includes/script-loader.php:403 msgctxt "password strength" msgid "Weak" msgstr "Heikko" -#: wp-includes/script-loader.php:405 +#: wp-includes/script-loader.php:402 msgctxt "password strength" -msgid "Strong" -msgstr "Vahva" +msgid "Very weak" +msgstr "Erittäin heikko" #: wp-includes/customize/class-wp-customize-header-image-control.php:207 msgid "Add new image" @@ -3968,15 +3968,15 @@ msgstr "Piilota kuva" msgid "Hide header image" msgstr "Piilota otsakekuva" -#: wp-includes/class-wp-customize-manager.php:3842 -msgid "Site Icon" -msgstr "Sivuston kuvake" - #. translators: %s: site icon size in pixels #: wp-includes/class-wp-customize-manager.php:3845 msgid "The Site Icon is used as a browser and app icon for your site. Icons must be square, and at least %s pixels wide and tall." msgstr "Sivuston kuvaketta käytetään selain- ja sovelluskuvakkeena. Kuvakkeiden on oltava neliön muotoisia ja vähintään %s pikseliä leveitä ja korkeita." +#: wp-includes/class-wp-customize-manager.php:3842 +msgid "Site Icon" +msgstr "Sivuston kuvake" + #: wp-includes/class-wp-customize-manager.php:3793 msgid "Site Identity" msgstr "Sivuston identiteetti" @@ -3994,46 +3994,51 @@ msgstr "Kun kappale alkaa joillain näistä merkintätavoista ja välilyönnill msgid "Your password reset link has expired. Please request a new link below." msgstr "Salasananvaihtolinkkisi on vanhentunut. Tilaa uusi linkki alta." -#: wp-includes/wp-db.php:1385 wp-includes/wp-db.php:1402 -msgid "WordPress database error:" -msgstr "WordPressin tietokantavirhe:" - #: wp-login.php:507 msgid "Your password reset link appears to be invalid. Please request a new link below." msgstr "Salasananvaihtolinkkisi vaikuttaa vialliselta. Tilaa uusi linkki alta." -#: wp-includes/ms-functions.php:455 wp-includes/user.php:1458 -msgid "Username may not be longer than 60 characters." -msgstr "Käyttäjätunnus ei voi olla 60 merkkiä pidempi." +#: wp-includes/wp-db.php:1385 wp-includes/wp-db.php:1402 +msgid "WordPress database error:" +msgstr "WordPressin tietokantavirhe:" #: wp-includes/pluggable.php:1822 msgid "To set your password, visit the following address:" msgstr "Aseta salasana vierailemalla osoitteessa:" +#: wp-includes/ms-functions.php:455 wp-includes/user.php:1458 +msgid "Username may not be longer than 60 characters." +msgstr "Käyttäjätunnus ei voi olla 60 merkkiä pidempi." + #. translators: %s: Name of the directory (build) #: wp-includes/class-wp-locale.php:247 msgid "The %s directory of the develop repository must be used for RTL." msgstr "Kehitystietolähteen hakemistoa %s tulee käyttää oikealta vasemmalle -kirjoitusjärjestelmille." -#: wp-includes/customize/class-wp-customize-themes-section.php:43 -#: wp-includes/customize/class-wp-customize-themes-section.php:62 -msgid "Active theme" -msgstr "Aktiivinen teema" +#. translators: 1: PHP class name, 2: version number, 3: __construct() method +#: wp-includes/functions.php:3897 +msgid "The called constructor method for %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." +msgstr "Kutsuttu luokan %1$s muodostinfunktio <strong>vanhentunut</strong> versiosta %2$s! Käytä sen sijaan funktiota %3$s." -#: wp-includes/customize/class-wp-customize-themes-section.php:45 -#: wp-includes/customize/class-wp-customize-themes-section.php:64 -msgid "Previewing theme" -msgstr "Esikatsellaan teemaa" +#: wp-includes/class-wp-editor.php:1016 +msgctxt "HTML tag" +msgid "Preformatted" +msgstr "Valmiiksi muotoiltu" #. translators: 1: original menu name, 2: duplicate count #: wp-includes/customize/class-wp-customize-nav-menu-setting.php:531 msgid "%1$s (%2$d)" msgstr "%1$s (%2$d)" -#: wp-includes/class-wp-editor.php:1016 -msgctxt "HTML tag" -msgid "Preformatted" -msgstr "Valmiiksi muotoiltu" +#: wp-includes/customize/class-wp-customize-themes-section.php:45 +#: wp-includes/customize/class-wp-customize-themes-section.php:64 +msgid "Previewing theme" +msgstr "Esikatsellaan teemaa" + +#: wp-includes/customize/class-wp-customize-themes-section.php:43 +#: wp-includes/customize/class-wp-customize-themes-section.php:62 +msgid "Active theme" +msgstr "Aktiivinen teema" #: wp-includes/class-wp-customize-nav-menus.php:564 msgid "Menus can be displayed in locations defined by your theme." @@ -4049,17 +4054,17 @@ msgstr "Valikot voidaan näyttää teeman määrittämissä paikoissa tai <a hre msgid "Reorder mode closed" msgstr "Järjestystila suljettu" +#: wp-includes/class-wp-customize-nav-menus.php:436 +#: wp-includes/class-wp-customize-widgets.php:794 +msgid "Reorder mode enabled" +msgstr "Järjestystila käytössä" + #: wp-includes/class-wp-customize-nav-menus.php:413 #: wp-includes/customize/class-wp-customize-nav-menu-setting.php:447 msgctxt "Missing menu name." msgid "(unnamed)" msgstr "(nimeämätön)" -#: wp-includes/class-wp-customize-nav-menus.php:436 -#: wp-includes/class-wp-customize-widgets.php:794 -msgid "Reorder mode enabled" -msgstr "Järjestystila käytössä" - #: wp-includes/customize/class-wp-customize-nav-menu-control.php:58 msgid "When in reorder mode, additional controls to reorder menu items will be available in the items list above." msgstr "Järjestystilassa lisätoiminnot ovat saatavilla valikkokohteiden järjestämiseen yllä olevien kohteiden kohdalla." @@ -4077,11 +4082,6 @@ msgstr "Järjestä valikkokohteet" msgid "Add or remove menu items" msgstr "Lisää tai poista valikkokohteita" -#. translators: 1: PHP class name, 2: version number, 3: __construct() method -#: wp-includes/functions.php:3897 -msgid "The called constructor method for %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." -msgstr "Kutsuttu luokan %1$s muodostinfunktio <strong>vanhentunut</strong> versiosta %2$s! Käytä sen sijaan funktiota %3$s." - #. translators: User email change notification email subject. 1: Site name #: wp-includes/user.php:1893 msgid "[%s] Notice of Email Change" @@ -4156,18 +4156,36 @@ msgstr "" msgid "No tags" msgstr "Ei avainsanoja" +#. translators: %s: shortcode tag +#: wp-includes/shortcodes.php:320 +msgid "Attempting to parse a shortcode without a valid callback: %s" +msgstr "Yritetään jäsentää lyhytkoodia ilman toimivaa takaisinkutsua: %s" + +#. translators: %s: Error string for a failed update +#: wp-includes/script-loader.php:656 +msgid "Update Failed: %s" +msgstr "Päivitys epäonnistui: %s" + +#: wp-includes/script-loader.php:527 +msgid "" +"Are you sure you want to edit this comment?\n" +"The changes you made will be lost." +msgstr "" +"Oletko varma, että haluat muokata tätä kommenttia?\n" +"Tekemäsi muutokset menetetään." + +#: wp-includes/script-loader.php:119 +msgid "Close code tag" +msgstr "Sulje koodi-tagi" + +#: wp-includes/script-loader.php:117 +msgid "Close list item tag" +msgstr "Sulje listakohde-tagi" + #: wp-includes/script-loader.php:116 msgid "List item" msgstr "Listakohde" -#: wp-includes/script-loader.php:109 -msgid "Inserted text" -msgstr "Lisätty teksti" - -#: wp-includes/script-loader.php:110 -msgid "Close inserted text tag" -msgstr "Sulje lisätty teksti -tagi" - #: wp-includes/script-loader.php:115 msgid "Close numbered list tag" msgstr "Sulje numeroitu lista -tagi" @@ -4176,69 +4194,51 @@ msgstr "Sulje numeroitu lista -tagi" msgid "Close bulleted list tag" msgstr "Sulje järjestämätön lista -tagi" -#: wp-includes/script-loader.php:117 -msgid "Close list item tag" -msgstr "Sulje listakohde-tagi" - -#: wp-includes/script-loader.php:119 -msgid "Close code tag" -msgstr "Sulje koodi-tagi" - -#: wp-includes/script-loader.php:527 -msgid "" -"Are you sure you want to edit this comment?\n" -"The changes you made will be lost." -msgstr "" -"Oletko varma, että haluat muokata tätä kommenttia?\n" -"Tekemäsi muutokset menetetään." - -#. translators: %s: Error string for a failed update -#: wp-includes/script-loader.php:656 -msgid "Update Failed: %s" -msgstr "Päivitys epäonnistui: %s" +#: wp-includes/script-loader.php:110 +msgid "Close inserted text tag" +msgstr "Sulje lisätty teksti -tagi" -#. translators: %s: shortcode tag -#: wp-includes/shortcodes.php:320 -msgid "Attempting to parse a shortcode without a valid callback: %s" -msgstr "Yritetään jäsentää lyhytkoodia ilman toimivaa takaisinkutsua: %s" +#: wp-includes/script-loader.php:109 +msgid "Inserted text" +msgstr "Lisätty teksti" -#: wp-includes/script-loader.php:101 -msgid "Close bold tag" -msgstr "Sulje lihavointi-tagi" +#: wp-includes/script-loader.php:108 +msgid "Close deleted text tag" +msgstr "Sulje poistettu teksti -tagi" -#: wp-includes/script-loader.php:103 -msgid "Close italic tag" -msgstr "Sulje kursivointi-tagi" +#: wp-includes/script-loader.php:107 +msgid "Deleted text (strikethrough)" +msgstr "Poistettu teksti (yliviivaus)" #: wp-includes/script-loader.php:106 msgid "Close blockquote tag" msgstr "Sulje lainaus-tagi" -#: wp-includes/script-loader.php:107 -msgid "Deleted text (strikethrough)" -msgstr "Poistettu teksti (yliviivaus)" - -#: wp-includes/script-loader.php:108 -msgid "Close deleted text tag" -msgstr "Sulje poistettu teksti -tagi" +#: wp-includes/script-loader.php:103 +msgid "Close italic tag" +msgstr "Sulje kursivointi-tagi" -#: wp-includes/media-template.php:1167 -msgid "Remove poster image" -msgstr "Poista ruutukaappaus" +#: wp-includes/script-loader.php:101 +msgid "Close bold tag" +msgstr "Sulje lihavointi-tagi" #: wp-includes/media-template.php:1199 msgctxt "media" msgid "Remove video track" msgstr "Poista videoraita" -#: wp-includes/media-template.php:1051 wp-includes/media-template.php:1065 -msgid "Remove audio source" -msgstr "Poista äänilähde" +#: wp-includes/media-template.php:1167 +msgid "Remove poster image" +msgstr "Poista ruutukaappaus" #: wp-includes/media-template.php:1134 wp-includes/media-template.php:1146 msgid "Remove video source" msgstr "Poista videolähde" +#: wp-includes/media-template.php:1051 wp-includes/media-template.php:1065 +msgid "Remove audio source" +msgstr "Poista äänilähde" + #: wp-includes/formatting.php:125 msgctxt "Comma-separated list of replacement words in your language" msgid "’tain’t,’twere,’twas,’tis,’twill,’til,’bout,’nuff,’round,’cause,’em" @@ -4259,48 +4259,48 @@ msgstr " " msgid "Content:" msgstr "Sisältö:" +#: wp-includes/class-wp-xmlrpc-server.php:559 +msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles" +msgstr "Salli linkki-ilmoitukset muista blogeista (pingback ja trackback) uusiin artikkeleihin" + +#: wp-includes/class-wp-editor.php:1273 +msgid "Ctrl + letter:" +msgstr "Ctrl + kirjain:" + +#: wp-includes/class-wp-editor.php:1272 +msgid "Cmd + letter:" +msgstr "Cmd + kirjain:" + +#: wp-includes/class-wp-editor.php:1271 +msgid "Shift + Alt + letter:" +msgstr "Shift + Alt + kirjain:" + #: wp-includes/class-wp-editor.php:1270 msgid "Ctrl + Alt + letter:" msgstr "Ctrl + Alt + kirjain:" -#: wp-includes/class-wp-editor.php:1263 -msgid "Default shortcuts," -msgstr "Oletusnäppäinoikotiet," +#: wp-includes/class-wp-editor.php:1266 +msgid "Inline toolbar (when an image, link or preview is selected)" +msgstr "Ponnahdustyökalupalkki (kun kuva, linkki tai esikatselu on valittu)" #: wp-includes/class-wp-editor.php:1264 msgid "Additional shortcuts," msgstr "Lisänäppäinoikotiet," -#: wp-includes/class-wp-editor.php:1266 -msgid "Inline toolbar (when an image, link or preview is selected)" -msgstr "Ponnahdustyökalupalkki (kun kuva, linkki tai esikatselu on valittu)" +#: wp-includes/class-wp-editor.php:1263 +msgid "Default shortcuts," +msgstr "Oletusnäppäinoikotiet," -#: wp-includes/class-wp-editor.php:1271 -msgid "Shift + Alt + letter:" -msgstr "Shift + Alt + kirjain:" - -#: wp-includes/class-wp-editor.php:1272 -msgid "Cmd + letter:" -msgstr "Cmd + kirjain:" - -#: wp-includes/class-wp-editor.php:1273 -msgid "Ctrl + letter:" -msgstr "Ctrl + kirjain:" - -#: wp-includes/class-wp-xmlrpc-server.php:559 -msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles" -msgstr "Salli linkki-ilmoitukset muista blogeista (pingback ja trackback) uusiin artikkeleihin" +#: wp-includes/class-wp-customize-section.php:248 +#: wp-includes/customize/class-wp-customize-themes-section.php:55 +msgid "Customizing" +msgstr "Muokataan" #: wp-includes/customize/class-wp-customize-nav-menu-auto-add-control.php:44 #: wp-includes/customize/class-wp-customize-nav-menus-panel.php:88 msgid "Menu Options" msgstr "Valikon ominaisuudet" -#: wp-includes/class-wp-customize-section.php:248 -#: wp-includes/customize/class-wp-customize-themes-section.php:55 -msgid "Customizing" -msgstr "Muokataan" - #: wp-includes/class-wp-customize-nav-menus.php:1072 msgid "Add to Menu" msgstr "Lisää valikkoon" @@ -4318,38 +4318,14 @@ msgstr "Hakutulokset päivittyvät samalla kun kirjoitat." msgid "Search menu items…" msgstr "Etsi valikkokohteita…" -#: wp-includes/class-wp-customize-nav-menus.php:559 -msgid "This panel is used for managing navigation menus for content you have already published on your site. You can create menus and add items for existing content such as pages, posts, categories, tags, formats, or custom links." -msgstr "Tätä paneelia käytetään navigaatiovalikoiden hallintaan jo julkaisemiesi sisältöjen osalta. Voit luoda valikoita ja lisätä kohteita olemassa olevaan sisältöön, kuten sivuihin, artikkeleihin, kategorioihin, avainsanoihin, artikkelimuotoihin tai mukautettuihin linkkeihin." - -#: wp-includes/class-wp-customize-nav-menus.php:589 -msgid "Menu Locations" -msgstr "Valikkosijainnit" - -#: wp-includes/class-wp-customize-nav-menus.php:675 -msgid "Add a Menu" -msgstr "Lisää valikko" - -#: wp-includes/class-wp-customize-nav-menus.php:687 -msgid "New menu name" -msgstr "Uusi valikon nimi" - -#: wp-includes/class-wp-customize-nav-menus.php:932 -msgid "Move one level up" -msgstr "Siirrä yksi taso ylöspäin" - -#: wp-includes/class-wp-customize-nav-menus.php:933 -msgid "Move one level down" -msgstr "Siirrä yksi taso alaspäin" +#: wp-includes/class-wp-customize-nav-menus.php:966 +msgid "Search Menu Items" +msgstr "Etsi valikkokohteita" #: wp-includes/class-wp-customize-nav-menus.php:961 msgid "Add Menu Items" msgstr "Lisää valikkokohteita" -#: wp-includes/class-wp-customize-nav-menus.php:966 -msgid "Search Menu Items" -msgstr "Etsi valikkokohteita" - #. translators: ▸ is the unicode right-pointing triangle, and %s is the #. section title in the Customizer #: wp-includes/class-wp-customize-nav-menus.php:428 @@ -4359,6 +4335,30 @@ msgstr "Etsi valikkokohteita" msgid "Customizing ▸ %s" msgstr "Mukautetaan ▸ %s" +#: wp-includes/class-wp-customize-nav-menus.php:933 +msgid "Move one level down" +msgstr "Siirrä yksi taso alaspäin" + +#: wp-includes/class-wp-customize-nav-menus.php:932 +msgid "Move one level up" +msgstr "Siirrä yksi taso ylöspäin" + +#: wp-includes/class-wp-customize-nav-menus.php:687 +msgid "New menu name" +msgstr "Uusi valikon nimi" + +#: wp-includes/class-wp-customize-nav-menus.php:675 +msgid "Add a Menu" +msgstr "Lisää valikko" + +#: wp-includes/class-wp-customize-nav-menus.php:589 +msgid "Menu Locations" +msgstr "Valikkosijainnit" + +#: wp-includes/class-wp-customize-nav-menus.php:559 +msgid "This panel is used for managing navigation menus for content you have already published on your site. You can create menus and add items for existing content such as pages, posts, categories, tags, formats, or custom links." +msgstr "Tätä paneelia käytetään navigaatiovalikoiden hallintaan jo julkaisemiesi sisältöjen osalta. Voit luoda valikoita ja lisätä kohteita olemassa olevaan sisältöön, kuten sivuihin, artikkeleihin, kategorioihin, avainsanoihin, artikkelimuotoihin tai mukautettuihin linkkeihin." + #. translators: 1: item name, 2: item position, 3: parent item name #: wp-includes/class-wp-customize-nav-menus.php:470 msgid "%1$s. Sub item number %2$d under %3$s." @@ -4405,14 +4405,14 @@ msgstr "Siirrä ylöspäin" msgid "Loading more results... please wait." msgstr "Ladataan lisää tuloksia… odota hetki." -#: wp-includes/class-wp-customize-nav-menus.php:433 -msgid "Number of items found: %d" -msgstr "Hakutuloksia: %d" - #: wp-includes/class-wp-customize-nav-menus.php:434 msgid "Additional items found: %d" msgstr "Lisää tuloksia löydettiin: %d" +#: wp-includes/class-wp-customize-nav-menus.php:433 +msgid "Number of items found: %d" +msgstr "Hakutuloksia: %d" + #. translators: %s: title of menu item in draft status #: wp-includes/class-wp-customize-nav-menus.php:432 msgid "%s (Pending)" @@ -4423,37 +4423,37 @@ msgstr "%s (Odottaa)" msgid "%s (Invalid)" msgstr "%s (virheellinen)" -#: wp-includes/class-wp-customize-nav-menus.php:419 -msgid "Menu item added" -msgstr "Valikkokohde lisätty" - -#: wp-includes/class-wp-customize-nav-menus.php:420 -msgid "Menu item deleted" -msgstr "Valikkokohde poistettu" +#: wp-includes/class-wp-customize-nav-menus.php:426 +msgid "Menu item is now a sub-item" +msgstr "Valikkokohde on nyt alikohde" -#: wp-includes/class-wp-customize-nav-menus.php:421 -msgid "Menu created" -msgstr "Valikko luotu" +#: wp-includes/class-wp-customize-nav-menus.php:425 +msgid "Menu item moved out of submenu" +msgstr "Valikkokohde siirretty pois alavalikosta" -#: wp-includes/class-wp-customize-nav-menus.php:422 -msgid "Menu deleted" -msgstr "Valikko poistettu" +#: wp-includes/class-wp-customize-nav-menus.php:424 +msgid "Menu item moved down" +msgstr "Valikkokohde siirretty alaspäin" #: wp-includes/class-wp-customize-nav-menus.php:423 msgid "Menu item moved up" msgstr "Valikkokohde siirretty ylöspäin" -#: wp-includes/class-wp-customize-nav-menus.php:424 -msgid "Menu item moved down" -msgstr "Valikkokohde siirretty alaspäin" +#: wp-includes/class-wp-customize-nav-menus.php:422 +msgid "Menu deleted" +msgstr "Valikko poistettu" -#: wp-includes/class-wp-customize-nav-menus.php:425 -msgid "Menu item moved out of submenu" -msgstr "Valikkokohde siirretty pois alavalikosta" +#: wp-includes/class-wp-customize-nav-menus.php:421 +msgid "Menu created" +msgstr "Valikko luotu" -#: wp-includes/class-wp-customize-nav-menus.php:426 -msgid "Menu item is now a sub-item" -msgstr "Valikkokohde on nyt alikohde" +#: wp-includes/class-wp-customize-nav-menus.php:420 +msgid "Menu item deleted" +msgstr "Valikkokohde poistettu" + +#: wp-includes/class-wp-customize-nav-menus.php:419 +msgid "Menu item added" +msgstr "Valikkokohde lisätty" #: wp-includes/class-wp-customize-nav-menus.php:159 msgctxt "nav menu home label" @@ -4548,15 +4548,15 @@ msgstr "Yhteys katkesi tai palvelimella on ruuhkaa. Kokeile uudelleen myöhemmin msgid "Updates may not complete if you navigate away from this page." msgstr "Lisäosien päivitykset saattavat jäädä kesken jos poistut tältä sivulta." +#: wp-includes/script-loader.php:654 +msgid "Update Failed!" +msgstr "Päivitys epäonnistui!" + #. translators: Accessibility text #: wp-includes/script-loader.php:668 msgid "Update canceled." msgstr "Päivitys peruttu." -#: wp-includes/script-loader.php:654 -msgid "Update Failed!" -msgstr "Päivitys epäonnistui!" - #: wp-includes/customize/class-wp-customize-themes-section.php:50 msgctxt "theme" msgid "Change" @@ -4566,10 +4566,6 @@ msgstr "Vaihda" msgid "Dismiss this notice." msgstr "Sulje tämä ilmoitus." -#: wp-includes/class-wp-customize-nav-menus.php:578 -msgid "Your theme supports one menu. Select which menu you would like to use." -msgstr "Teemassasi on yksi valikkopaikka. Valitse mitä valikkoa haluat käyttää." - #. translators: %s: number of menu locations #: wp-includes/class-wp-customize-nav-menus.php:581 msgid "Your theme supports %s menu. Select which menu appears in each location." @@ -4577,6 +4573,10 @@ msgid_plural "Your theme supports %s menus. Select which menu appears in each lo msgstr[0] "Teemassasi on %s valikkopaikka. Valitse mitä valikkoa haluat käyttää." msgstr[1] "Teemassasi on %s valikkopaikkaa. Valitse mitä valikkoa haluat käyttää kussakin paikassa." +#: wp-includes/class-wp-customize-nav-menus.php:578 +msgid "Your theme supports one menu. Select which menu you would like to use." +msgstr "Teemassasi on yksi valikkopaikka. Valitse mitä valikkoa haluat käyttää." + #. translators: 1: number of comments, 2: post title #: wp-includes/theme-compat/comments.php:40 msgid "%1$s response to %2$s" @@ -4602,6 +4602,18 @@ msgstr "Suositeltu upote #%d" msgid "Updating..." msgstr "Päivitetään..." +#: wp-includes/script-loader.php:670 +msgid "Install Now" +msgstr "Asenna nyt" + +#: wp-includes/script-loader.php:673 +msgid "Installing..." +msgstr "Asennetaan…" + +#: wp-includes/script-loader.php:691 +msgid "Installing... please wait." +msgstr "Asennetaan… odota hetki." + #. translators: Accessibility text #: wp-includes/script-loader.php:664 msgid "Updating... please wait." @@ -4612,6 +4624,10 @@ msgstr "Päivitetään... ole hyvä ja odota." msgid "Update completed successfully." msgstr "Päivitys onnistui." +#: wp-includes/script-loader.php:692 +msgid "Installation completed successfully." +msgstr "Asennus onnistui." + #: wp-includes/taxonomy.php:380 wp-includes/taxonomy.php:381 msgid "Taxonomy names must be between 1 and 32 characters in length." msgstr "Taksonomian nimen on oltava 1-32 merkkiä pitkä." @@ -4624,56 +4640,10 @@ msgstr "Jaettua termiä ei voitu jakaa." msgid "Customizer" msgstr "Mukautin" -#: wp-includes/script-loader.php:670 -msgid "Install Now" -msgstr "Asenna nyt" - -#: wp-includes/script-loader.php:691 -msgid "Installing... please wait." -msgstr "Asennetaan… odota hetki." - -#: wp-includes/script-loader.php:673 -msgid "Installing..." -msgstr "Asennetaan…" - -#: wp-includes/script-loader.php:692 -msgid "Installation completed successfully." -msgstr "Asennus onnistui." - #: wp-includes/media.php:3502 msgid "Drag and drop to reorder media files." msgstr "Järjestä mediatiedostot raahamalla ja pudottamalla." -#. translators: Do not translate USERNAME, PASSWORD, LOGINLINK, SITE_NAME: -#. those are placeholders. -#: wp-includes/ms-functions.php:2211 -msgid "" -"Howdy USERNAME,\n" -"\n" -"Your new account is set up.\n" -"\n" -"You can log in with the following information:\n" -"Username: USERNAME\n" -"Password: PASSWORD\n" -"LOGINLINK\n" -"\n" -"Thanks!\n" -"\n" -"--The Team @ SITE_NAME" -msgstr "" -"Hei USERNAME,\n" -"\n" -"Uusi tilisi on nyt luotu.\n" -"\n" -"Voit kirjautua seuraavilla tiedoilla:\n" -"Käyttäjätunnus: USERNAME\n" -"Salasana: PASSWORD\n" -"LOGINLINK\n" -"\n" -"Kiitos!\n" -"\n" -"--Sivuston SITE_NAME ylläpito" - #. translators: Do not translate USERNAME, SITE_NAME, BLOG_URL, PASSWORD: those #. are placeholders. #: wp-includes/ms-functions.php:1520 @@ -4708,6 +4678,36 @@ msgstr "" "\n" "-- SITE_NAME ylläpito" +#. translators: Do not translate USERNAME, PASSWORD, LOGINLINK, SITE_NAME: +#. those are placeholders. +#: wp-includes/ms-functions.php:2211 +msgid "" +"Howdy USERNAME,\n" +"\n" +"Your new account is set up.\n" +"\n" +"You can log in with the following information:\n" +"Username: USERNAME\n" +"Password: PASSWORD\n" +"LOGINLINK\n" +"\n" +"Thanks!\n" +"\n" +"--The Team @ SITE_NAME" +msgstr "" +"Hei USERNAME,\n" +"\n" +"Uusi tilisi on nyt luotu.\n" +"\n" +"Voit kirjautua seuraavilla tiedoilla:\n" +"Käyttäjätunnus: USERNAME\n" +"Salasana: PASSWORD\n" +"LOGINLINK\n" +"\n" +"Kiitos!\n" +"\n" +"--Sivuston SITE_NAME ylläpito" + #. translators: %s: table name #: wp-includes/ms-load.php:471 msgid "<strong>Database tables are missing.</strong> This means that MySQL is not running, WordPress was not installed properly, or someone deleted %s. You really should look at your database now." @@ -4766,23 +4766,23 @@ msgid_plural "%1$s Comments<span class=\"screen-reader-text\"> on %2$s</span>" msgstr[0] "%1$s kommentti<span class=\"screen-reader-text\"> artikkeliin %2$s</span>" msgstr[1] "%1$s kommenttia<span class=\"screen-reader-text\"> artikkeliin %2$s</span>" -#: wp-includes/widgets/class-wp-widget-archives.php:79 -msgid "Select Year" -msgstr "Valitse vuosi" - #. translators: %s: post title #: wp-includes/comment-template.php:1515 msgid "Comments Off<span class=\"screen-reader-text\"> on %s</span>" msgstr "Kommentit pois päältä<span class=\"screen-reader-text\"> artikkelissa %s</span>" -#: wp-includes/widgets/class-wp-widget-archives.php:88 -msgid "Select Week" -msgstr "Valitse viikko" +#: wp-includes/widgets/class-wp-widget-archives.php:79 +msgid "Select Year" +msgstr "Valitse vuosi" #: wp-includes/widgets/class-wp-widget-archives.php:85 msgid "Select Day" msgstr "Valitse päivä" +#: wp-includes/widgets/class-wp-widget-archives.php:88 +msgid "Select Week" +msgstr "Valitse viikko" + #: wp-includes/widgets/class-wp-widget-archives.php:91 msgid "Select Post" msgstr "Valitse artikkeli" @@ -4804,16 +4804,16 @@ msgstr "Option %1$s käyttöä ei enää suositella %2$s-funktioperheelle. Käyt msgid "The %1$s option is deprecated for the family of %2$s functions. Use the %3$s function instead." msgstr "Option %1$s käyttöä ei enää suositella %2$s-funktioperheelle. Käytä sen sijaan funktiota %3$s." -#: wp-includes/customize/class-wp-customize-theme-control.php:87 -#: wp-includes/script-loader.php:706 -msgid "Live Preview" -msgstr "Esikatselu" - #: wp-includes/customize/class-wp-customize-theme-control.php:105 #: wp-includes/customize/class-wp-customize-themes-section.php:70 msgid "Theme Details" msgstr "Teeman tiedot" +#: wp-includes/customize/class-wp-customize-theme-control.php:87 +#: wp-includes/script-loader.php:706 +msgid "Live Preview" +msgstr "Esikatselu" + #: wp-includes/taxonomy.php:510 msgid "No categories found." msgstr "Kategorioita ei löytynyt." @@ -4827,47 +4827,43 @@ msgstr "Häiriötön kirjoitustila" msgid "Theme support for %1$s should be registered before the %2$s hook." msgstr "Teeman tuki ominaisuudelle %1$s tulisi rekisteröidä ennen %2$s-hookia. " -#: wp-includes/class-wp-customize-widgets.php:790 -msgid "Widget moved down" -msgstr "Vimpain siirretty alas" - #: wp-includes/class-wp-customize-widgets.php:789 msgid "Widget moved up" msgstr "Vimpain siirretty ylös" -#: wp-includes/class-wp-editor.php:1269 -msgid "Elements path" -msgstr "Elementtipolku" +#: wp-includes/class-wp-customize-widgets.php:790 +msgid "Widget moved down" +msgstr "Vimpain siirretty alas" -#: wp-includes/class-wp-editor.php:1278 -msgid "To move focus to other buttons use Tab or the arrow keys. To return focus to the editor press Escape or use one of the buttons." -msgstr "Vaihda fokus toiseen painikkeisiin käyttämällä sarkain-näppäintä (tab) tai nuolinäppäimiä. Palauta fokus muokkaimeen painamalla Esc-näppäintä tai käytä jotain painikkeista." +#: wp-includes/class-wp-editor.php:1230 +msgid "Rich Text Area. Press Alt-Shift-H for help." +msgstr "Graafinen muokkain. Näytä aputoiminto painamalla Alt-Shift-H." -#: wp-includes/class-wp-editor.php:1268 -msgid "Editor toolbar" -msgstr "Muokkaimen työkalurivi" +#: wp-includes/class-wp-editor.php:1265 +msgid "Focus shortcuts:" +msgstr "Näppäinyhdistelmät fokuksen muuttamiseen:" #: wp-includes/class-wp-editor.php:1267 msgid "Editor menu (when enabled)" msgstr "Muokkaimen valikko (silloin kun se on näkyvissä)" -#: wp-includes/class-wp-editor.php:1265 -msgid "Focus shortcuts:" -msgstr "Näppäinyhdistelmät fokuksen muuttamiseen:" +#: wp-includes/class-wp-editor.php:1268 +msgid "Editor toolbar" +msgstr "Muokkaimen työkalurivi" -#: wp-includes/class-wp-editor.php:1230 -msgid "Rich Text Area. Press Alt-Shift-H for help." -msgstr "Graafinen muokkain. Näytä aputoiminto painamalla Alt-Shift-H." +#: wp-includes/class-wp-editor.php:1278 +msgid "To move focus to other buttons use Tab or the arrow keys. To return focus to the editor press Escape or use one of the buttons." +msgstr "Vaihda fokus toiseen painikkeisiin käyttämällä sarkain-näppäintä (tab) tai nuolinäppäimiä. Palauta fokus muokkaimeen painamalla Esc-näppäintä tai käytä jotain painikkeista." + +#: wp-includes/class-wp-editor.php:1269 +msgid "Elements path" +msgstr "Elementtipolku" #. translators: 1: month, 2: day of month #: wp-includes/date.php:460 msgid "The following values do not describe a valid date: month %1$s, day %2$s." msgstr "Tämä ei kuvaa todellista päivämäärää: kuukausi %1$s, päivä %2$s." -#: wp-includes/theme.php:2267 -msgid "You need to pass an array of types." -msgstr "Anna parametrina taulukko (array)." - #: wp-includes/taxonomy.php:2059 msgid "A term with the name provided already exists in this taxonomy." msgstr "Termi tällä nimellä ja polkutunnuksella on jo olemassa tässä taksonomiassa." @@ -4878,28 +4874,45 @@ msgstr "Termi tällä nimellä ja polkutunnuksella on jo olemassa tässä takson msgid "%s must set a database connection for use with escaping." msgstr "%s must set a database connection for use with escaping." -#: wp-includes/media-template.php:438 wp-includes/media-template.php:541 -msgctxt "verb" -msgid "Trash" -msgstr "Siirrä roskakoriin" +#: wp-includes/theme.php:2267 +msgid "You need to pass an array of types." +msgstr "Anna parametrina taulukko (array)." -#: wp-includes/pluggable.php:1492 -msgid "You can see all comments on this post here:" -msgstr "Voit lukea kaikki tähän artikkeliin tulleet kommentit täällä:" +#: wp-includes/l10n.php:1191 +msgctxt "translations" +msgid "Installed" +msgstr "Asennettu" -#: wp-includes/pluggable.php:1481 -msgid "You can see all pingbacks on this post here:" -msgstr "Voit nähdä kaikki tämän artikkelin päivitysilmoitukset täällä: " +#: wp-includes/l10n.php:1222 +msgctxt "translations" +msgid "Available" +msgstr "Saatavilla" -#: wp-includes/pluggable.php:1470 -msgid "You can see all trackbacks on this post here:" -msgstr "Voit nähdä kaikki tämän artikkelin paluuviitteet täällä:" +#: wp-includes/link-template.php:2480 +msgid "Older posts" +msgstr "Vanhemmat artikkelit" -#. translators: 1: Comment text -#: wp-includes/pluggable.php:1469 wp-includes/pluggable.php:1480 -#: wp-includes/pluggable.php:1491 wp-includes/pluggable.php:1654 -msgid "Comment: %s" -msgstr "Kommentti: %s" +#: wp-includes/link-template.php:2482 wp-includes/link-template.php:2536 +#: wp-includes/link-template.php:2580 +msgid "Posts navigation" +msgstr "Artikkelien selaus" + +#: wp-includes/link-template.php:2481 +msgid "Newer posts" +msgstr "Uudemmat artikkelit" + +#: wp-includes/script-loader.php:991 +msgid "Previous" +msgstr "Edellinen" + +#: wp-includes/media-template.php:598 +msgid "Edit Selection" +msgstr "Muokkaa valintaa" + +#: wp-includes/media.php:3520 +msgctxt "noun" +msgid "Trash" +msgstr "Roskakori" #. translators: 1: Trackback/pingback/comment author URL #: wp-includes/pluggable.php:1468 wp-includes/pluggable.php:1479 @@ -4908,260 +4921,243 @@ msgstr "Kommentti: %s" msgid "URL: %s" msgstr "URL: %s" -#: wp-includes/media.php:3520 -msgctxt "noun" +#. translators: 1: Comment text +#: wp-includes/pluggable.php:1469 wp-includes/pluggable.php:1480 +#: wp-includes/pluggable.php:1491 wp-includes/pluggable.php:1654 +msgid "Comment: %s" +msgstr "Kommentti: %s" + +#: wp-includes/pluggable.php:1470 +msgid "You can see all trackbacks on this post here:" +msgstr "Voit nähdä kaikki tämän artikkelin paluuviitteet täällä:" + +#: wp-includes/pluggable.php:1481 +msgid "You can see all pingbacks on this post here:" +msgstr "Voit nähdä kaikki tämän artikkelin päivitysilmoitukset täällä: " + +#: wp-includes/pluggable.php:1492 +msgid "You can see all comments on this post here:" +msgstr "Voit lukea kaikki tähän artikkeliin tulleet kommentit täällä:" + +#: wp-includes/media-template.php:438 wp-includes/media-template.php:541 +msgctxt "verb" msgid "Trash" -msgstr "Roskakori" +msgstr "Siirrä roskakoriin" -#: wp-includes/media-template.php:598 -msgid "Edit Selection" -msgstr "Muokkaa valintaa" +#: wp-includes/class-wp-editor.php:1161 +msgid "Add to Dictionary" +msgstr "Lisää sanakirjaan" -#: wp-includes/script-loader.php:991 -msgid "Previous" -msgstr "Edellinen" +#: wp-includes/class-wp-editor.php:1169 +msgid "Border color" +msgstr "Reunan väritys" -#: wp-includes/link-template.php:2481 -msgid "Newer posts" -msgstr "Uudemmat artikkelit" +#: wp-includes/class-wp-editor.php:1198 +msgctxt "horizontal table cell alignment" +msgid "H Align" +msgstr "Vaakasuuntainen tasaus" -#: wp-includes/link-template.php:2482 wp-includes/link-template.php:2536 -#: wp-includes/link-template.php:2580 -msgid "Posts navigation" -msgstr "Artikkelien selaus" +#: wp-includes/class-wp-editor.php:1203 +msgctxt "vertical table cell alignment" +msgid "V Align" +msgstr "Pystysuuntainen tasaus" -#: wp-includes/link-template.php:2480 -msgid "Older posts" -msgstr "Vanhemmat artikkelit" +#. translators: Date query invalid date message: 1: invalid value, 2: type of +#. value, 3: minimum valid value, 4: maximum valid value +#: wp-includes/date.php:413 +msgid "Invalid value %1$s for %2$s. Expected value should be between %3$s and %4$s." +msgstr " %2$s:lla on väärä arvo %1$s. Arvon tulisi olla välillä %3$s ja %4$s." -#: wp-includes/l10n.php:1222 -msgctxt "translations" -msgid "Available" -msgstr "Saatavilla" +#. translators: Comment reply button text. 1: Comment author name +#: wp-includes/comment-template.php:1598 +msgid "Reply to %s" +msgstr "Vastaa kommenttiin %s" -#: wp-includes/l10n.php:1191 -msgctxt "translations" -msgid "Installed" -msgstr "Asennettu" +#. translators: 1: year, 2: month, 3: day of month +#: wp-includes/date.php:443 +msgid "The following values do not describe a valid date: year %1$s, month %2$s, day %3$s." +msgstr "Tämä ei kuvaa todellista päivämäärää: vuosi %1$s, kuukausi %2$s, päivä %3$s." -#: wp-includes/class-wp-editor.php:1252 -msgid "No alignment" -msgstr "Ei tasausta" +#. translators: Category archive title. 1: Category name +#: wp-includes/general-template.php:1480 +msgid "Category: %s" +msgstr "Kategoria: %s" -#. translators: Post type archive title. 1: Post type name -#: wp-includes/general-template.php:1518 -msgid "Archives: %s" -msgstr "Arkistot: %s" +#. translators: Tag archive title. 1: Tag name +#: wp-includes/general-template.php:1483 +msgid "Tag: %s" +msgstr "Avainsana: %s" -#. translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: -#. Current taxonomy term -#: wp-includes/general-template.php:1522 -msgid "%1$s: %2$s" -msgstr "%1$s: %2$s" +#. translators: Author archive title. 1: Author name +#: wp-includes/general-template.php:1486 +msgid "Author: %s" +msgstr "Kirjoittajalta %s" -#: wp-includes/general-template.php:1512 +#. translators: Yearly archive title. 1: Year +#: wp-includes/general-template.php:1489 +msgid "Year: %s" +msgstr "Vuosi: %s" + +#: wp-includes/general-template.php:1498 msgctxt "post format archive title" -msgid "Audio" -msgstr "Äänitiedostot" +msgid "Asides" +msgstr "Sivuhuomautukset" -#: wp-includes/general-template.php:1514 +#: wp-includes/general-template.php:1495 wp-includes/general-template.php:2075 +msgctxt "daily archives date format" +msgid "F j, Y" +msgstr "j.n.Y" + +#. translators: Daily archive title. 1: Date +#: wp-includes/general-template.php:1495 +msgid "Day: %s" +msgstr "Päivä: %s" + +#. translators: Monthly archive title. 1: Month name and year +#: wp-includes/general-template.php:1492 +msgid "Month: %s" +msgstr "Kuukausi: %s" + +#: wp-includes/general-template.php:1502 msgctxt "post format archive title" -msgid "Chats" -msgstr "Keskustelut" +msgid "Images" +msgstr "Kuvat" -#: wp-includes/general-template.php:1510 +#: wp-includes/general-template.php:1500 msgctxt "post format archive title" -msgid "Statuses" -msgstr "Tilapäivitykset" +msgid "Galleries" +msgstr "Galleriat" -#: wp-includes/general-template.php:1508 +#: wp-includes/general-template.php:1506 msgctxt "post format archive title" -msgid "Links" -msgstr "Linkit" +msgid "Quotes" +msgstr "Lainaukset" #: wp-includes/general-template.php:1504 msgctxt "post format archive title" msgid "Videos" msgstr "Videot" -#: wp-includes/general-template.php:1506 +#: wp-includes/general-template.php:1508 msgctxt "post format archive title" -msgid "Quotes" -msgstr "Lainaukset" +msgid "Links" +msgstr "Linkit" -#: wp-includes/general-template.php:1500 +#: wp-includes/general-template.php:1510 msgctxt "post format archive title" -msgid "Galleries" -msgstr "Galleriat" +msgid "Statuses" +msgstr "Tilapäivitykset" -#: wp-includes/general-template.php:1502 +#: wp-includes/general-template.php:1514 msgctxt "post format archive title" -msgid "Images" -msgstr "Kuvat" +msgid "Chats" +msgstr "Keskustelut" -#. translators: Monthly archive title. 1: Month name and year -#: wp-includes/general-template.php:1492 -msgid "Month: %s" -msgstr "Kuukausi: %s" - -#. translators: Daily archive title. 1: Date -#: wp-includes/general-template.php:1495 -msgid "Day: %s" -msgstr "Päivä: %s" - -#: wp-includes/general-template.php:1495 wp-includes/general-template.php:2075 -msgctxt "daily archives date format" -msgid "F j, Y" -msgstr "j.n.Y" - -#: wp-includes/general-template.php:1498 +#: wp-includes/general-template.php:1512 msgctxt "post format archive title" -msgid "Asides" -msgstr "Sivuhuomautukset" - -#. translators: Yearly archive title. 1: Year -#: wp-includes/general-template.php:1489 -msgid "Year: %s" -msgstr "Vuosi: %s" - -#. translators: Author archive title. 1: Author name -#: wp-includes/general-template.php:1486 -msgid "Author: %s" -msgstr "Kirjoittajalta %s" +msgid "Audio" +msgstr "Äänitiedostot" -#. translators: Tag archive title. 1: Tag name -#: wp-includes/general-template.php:1483 -msgid "Tag: %s" -msgstr "Avainsana: %s" +#. translators: Taxonomy term archive title. 1: Taxonomy singular name, 2: +#. Current taxonomy term +#: wp-includes/general-template.php:1522 +msgid "%1$s: %2$s" +msgstr "%1$s: %2$s" -#. translators: Category archive title. 1: Category name -#: wp-includes/general-template.php:1480 -msgid "Category: %s" -msgstr "Kategoria: %s" +#. translators: Post type archive title. 1: Post type name +#: wp-includes/general-template.php:1518 +msgid "Archives: %s" +msgstr "Arkistot: %s" -#. translators: 1: year, 2: month, 3: day of month -#: wp-includes/date.php:443 -msgid "The following values do not describe a valid date: year %1$s, month %2$s, day %3$s." -msgstr "Tämä ei kuvaa todellista päivämäärää: vuosi %1$s, kuukausi %2$s, päivä %3$s." +#: wp-includes/class-wp-editor.php:1252 +msgid "No alignment" +msgstr "Ei tasausta" -#. translators: Comment reply button text. 1: Comment author name -#: wp-includes/comment-template.php:1598 -msgid "Reply to %s" -msgstr "Vastaa kommenttiin %s" +#: wp-includes/customize/class-wp-customize-media-control.php:61 +msgid "Change File" +msgstr "Vaihda tiedostoa" -#: wp-includes/class-wp-editor.php:1203 -msgctxt "vertical table cell alignment" -msgid "V Align" -msgstr "Pystysuuntainen tasaus" +#: wp-includes/customize/class-wp-customize-media-control.php:64 +msgid "No file selected" +msgstr "Tiedostoa ei ole valittu" -#: wp-includes/class-wp-editor.php:1198 -msgctxt "horizontal table cell alignment" -msgid "H Align" -msgstr "Vaakasuuntainen tasaus" +#: wp-includes/customize/class-wp-customize-media-control.php:66 +msgid "Choose File" +msgstr "Valitse tiedosto" -#: wp-includes/class-wp-editor.php:1169 -msgid "Border color" -msgstr "Reunan väritys" +#: wp-includes/customize/class-wp-customize-image-control.php:35 +#: wp-includes/customize/class-wp-customize-image-control.php:40 +msgid "Select Image" +msgstr "Valitse kuva" -#: wp-includes/class-wp-editor.php:1161 -msgid "Add to Dictionary" -msgstr "Lisää sanakirjaan" +#: wp-includes/customize/class-wp-customize-image-control.php:39 +#: wp-includes/widgets/class-wp-widget-media-image.php:32 +msgid "No image selected" +msgstr "Kuvaa ei ole valittu" -#. translators: Date query invalid date message: 1: invalid value, 2: type of -#. value, 3: minimum valid value, 4: maximum valid value -#: wp-includes/date.php:413 -msgid "Invalid value %1$s for %2$s. Expected value should be between %3$s and %4$s." -msgstr " %2$s:lla on väärä arvo %1$s. Arvon tulisi olla välillä %3$s ja %4$s." +#: wp-includes/class-wp-editor.php:1138 +msgid "Custom color" +msgstr "Mukautettu väri" -#: wp-includes/class-wp-editor.php:1140 -msgid "No color" -msgstr "Ei väriä" +#: wp-includes/class-wp-editor.php:1137 +msgid "Color" +msgstr "Väri" #: wp-includes/class-wp-editor.php:1139 msgctxt "label for custom color" msgid "Custom..." msgstr "Mukauta..." -#: wp-includes/class-wp-editor.php:1137 -msgid "Color" -msgstr "Väri" - -#: wp-includes/class-wp-editor.php:1138 -msgid "Custom color" -msgstr "Mukautettu väri" - -#: wp-includes/customize/class-wp-customize-image-control.php:39 -#: wp-includes/widgets/class-wp-widget-media-image.php:32 -msgid "No image selected" -msgstr "Kuvaa ei ole valittu" +#: wp-includes/class-wp-editor.php:1140 +msgid "No color" +msgstr "Ei väriä" -#: wp-includes/customize/class-wp-customize-image-control.php:35 -#: wp-includes/customize/class-wp-customize-image-control.php:40 -msgid "Select Image" -msgstr "Valitse kuva" +#: wp-includes/class-wp-editor.php:1054 +msgctxt "list style" +msgid "Default" +msgstr "Oletus" -#: wp-includes/customize/class-wp-customize-media-control.php:66 -msgid "Choose File" -msgstr "Valitse tiedosto" +#: wp-includes/admin-bar.php:702 +msgctxt "add new from admin bar" +msgid "Link" +msgstr "Linkki" -#: wp-includes/customize/class-wp-customize-media-control.php:64 -msgid "No file selected" -msgstr "Tiedostoa ei ole valittu" +#: wp-includes/post.php:43 +msgctxt "add new from admin bar" +msgid "Page" +msgstr "Sivu" -#: wp-includes/customize/class-wp-customize-media-control.php:61 -msgid "Change File" -msgstr "Vaihda tiedostoa" +#: wp-includes/post.php:23 +msgctxt "add new from admin bar" +msgid "Post" +msgstr "Artikkeli" #: wp-includes/class-wp-editor.php:1244 msgctxt "TinyMCE menu" msgid "Format" msgstr "Oma tyyli" -#: wp-includes/post.php:66 -msgctxt "add new media" -msgid "Add New" -msgstr "Lisää uusi" - #: wp-includes/post.php:64 msgctxt "post type general name" msgid "Media" msgstr "Media" -#: wp-includes/post.php:23 -msgctxt "add new from admin bar" -msgid "Post" -msgstr "Artikkeli" - -#: wp-includes/post.php:43 -msgctxt "add new from admin bar" -msgid "Page" -msgstr "Sivu" - -#: wp-includes/admin-bar.php:702 -msgctxt "add new from admin bar" -msgid "Link" -msgstr "Linkki" - -#: wp-includes/class-wp-editor.php:1054 -msgctxt "list style" -msgid "Default" -msgstr "Oletus" +#: wp-includes/post.php:66 +msgctxt "add new media" +msgid "Add New" +msgstr "Lisää uusi" #: wp-login.php:870 msgid "<strong>You have successfully updated WordPress!</strong> Please log back in to see what’s new." msgstr "<strong>WordPress päivitettiin onnistuneesti!</strong> Ole hyvä ja kirjaudu takaisin nähdäksesi päivityksen uudet asiat." -#: wp-includes/media.php:3527 -msgid "Trash Selected" -msgstr "Siirrä valitut roskakoriin" - #: wp-includes/media.php:3528 msgid "Untrash Selected" msgstr "Palauta valitut roskakorista" -#: wp-includes/media-template.php:436 wp-includes/media-template.php:539 -msgid "Untrash" -msgstr "Palauta roskakorista" +#: wp-includes/media.php:3527 +msgid "Trash Selected" +msgstr "Siirrä valitut roskakoriin" #: wp-includes/media.php:3524 msgid "" @@ -5171,27 +5167,25 @@ msgstr "" "Olet siirtämässä näitä tiedostoja roskakoriin.\n" "Klikkaa 'Peruuta' peruaksesi tai 'OK' poistaaksesi tiedostot." +#: wp-includes/media-template.php:436 wp-includes/media-template.php:539 +msgid "Untrash" +msgstr "Palauta roskakorista" + #: wp-includes/class-wp-customize-panel.php:357 msgid "Press return or enter to open this panel" msgstr "Avaa tämä paneeli painamalla enteriä." -#: wp-includes/media.php:3525 -msgid "Bulk Select" -msgstr "Valitse useita kerralla" +#: wp-includes/media.php:3529 +msgid "Delete Selected" +msgstr "Poista valitut" #: wp-includes/media.php:3526 msgid "Cancel Selection" msgstr "Peru valinta" -#: wp-includes/media.php:3529 -msgid "Delete Selected" -msgstr "Poista valitut" - -#: wp-includes/class-wp-customize-nav-menus.php:412 -#: wp-includes/script-loader.php:764 -msgctxt "missing menu item navigation label" -msgid "(no label)" -msgstr "(ei otsikkoa)" +#: wp-includes/media.php:3525 +msgid "Bulk Select" +msgstr "Valitse useita kerralla" #. translators: %s: taxonomy label, %l: list of terms formatted as per #. $term_template @@ -5199,125 +5193,131 @@ msgstr "(ei otsikkoa)" msgid "%s: %l." msgstr "%s: %l." -#: wp-includes/media.php:2187 -msgid "Bitrate" -msgstr "Tiedonsiirtonopeus" +#: wp-includes/class-wp-customize-nav-menus.php:412 +#: wp-includes/script-loader.php:764 +msgctxt "missing menu item navigation label" +msgid "(no label)" +msgstr "(ei otsikkoa)" -#: wp-includes/class-wp-editor.php:1235 -msgid "Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser’s edit menu instead." -msgstr "Selaimesi ei mahdollista leikepöydän käyttöä suoraan. Käytä näppäinoikoteitä tai selaimesi muokkaa-valikkoa." +#: wp-includes/ms-load.php:93 +msgid "This site is no longer available." +msgstr "Tämä sivusto ei ole enää saatavilla." -#: wp-includes/class-wp-editor.php:1250 -msgid "Read more..." -msgstr "Lue lisää..." +#: wp-includes/script-loader.php:720 +msgid "No plugins found. Try a different search." +msgstr "Mediatiedostoja ei löytynyt. Kokeile eri hakusanoja." -#: wp-includes/class-wp-editor.php:1722 -msgid "Search or use up and down arrow keys to select an item." -msgstr "Hae tai käytä näppäimistösi nuolinäppäimiä kohteen valitsemiseen." +#: wp-includes/media.php:3534 +msgid "Search Media" +msgstr "Hae mediaa" -#: wp-includes/media-template.php:166 -msgid "Close media panel" -msgstr "Sulje mediapaneeli" +#: wp-includes/media.php:3533 +msgid "Filter by type" +msgstr "Suodata tyypin mukaan" -#: wp-includes/media-template.php:187 -msgid "Close uploader" -msgstr "Sulje tiedostolataaja" +#: wp-includes/media.php:3532 +msgid "Filter by date" +msgstr "Suodata päivämäärän mukaan" -#: wp-includes/media-template.php:233 -msgid "Maximum upload file size: %s." -msgstr "Suurin sallittu tiedostokoko: %s." +#: wp-includes/media.php:3519 +msgid "Unattached" +msgstr "Ei liitetty" -#: wp-includes/media-template.php:255 -msgid "List View" -msgstr "Listanäkymä" +#: wp-includes/media.php:3516 +msgid "All dates" +msgstr "Kaikki päivämäärät" -#: wp-includes/media-template.php:284 -msgid "Edit previous media item" -msgstr "Muokkaa edellistä mediatiedostoa" +#: wp-includes/media.php:2188 +msgid "Bitrate Mode" +msgstr "Tiedonsiirtomoodi" -#: wp-includes/media-template.php:285 -msgid "Edit next media item" -msgstr "Muokkaa seuraavaa mediatiedostoa" +#: wp-includes/media-template.php:431 +msgid "Edit more details" +msgstr "Muokkaa lisätietoja" -#: wp-includes/media-template.php:343 -msgid "File name:" -msgstr "Tiedoston nimi:" +#: wp-includes/media-template.php:429 +msgid "View attachment page" +msgstr "Näytä liitteen sivu" -#: wp-includes/media-template.php:344 -msgid "File type:" -msgstr "Tiedoston tyyppi:" +#: wp-includes/media-template.php:417 +msgid "Uploaded To" +msgstr "Liitetty kohteeseen" -#: wp-includes/media-template.php:345 -msgid "Uploaded on:" -msgstr "Siirretty:" +#: wp-includes/media-template.php:412 +msgid "Uploaded By" +msgstr "Siirtänyt" -#: wp-includes/media-template.php:347 -msgid "File size:" -msgstr "Tiedostokoko:" +#: wp-includes/media-template.php:360 +msgid "Bitrate:" +msgstr "Tiedonsiirtonopeus:" #: wp-includes/media-template.php:350 msgid "Dimensions:" msgstr "Koko:" -#: wp-includes/media-template.php:360 -msgid "Bitrate:" -msgstr "Tiedonsiirtonopeus:" +#: wp-includes/media-template.php:347 +msgid "File size:" +msgstr "Tiedostokoko:" -#: wp-includes/media-template.php:412 -msgid "Uploaded By" -msgstr "Siirtänyt" +#: wp-includes/media-template.php:345 +msgid "Uploaded on:" +msgstr "Siirretty:" -#: wp-includes/media-template.php:417 -msgid "Uploaded To" -msgstr "Liitetty kohteeseen" +#: wp-includes/media-template.php:344 +msgid "File type:" +msgstr "Tiedoston tyyppi:" -#: wp-includes/media-template.php:429 -msgid "View attachment page" -msgstr "Näytä liitteen sivu" +#: wp-includes/media-template.php:343 +msgid "File name:" +msgstr "Tiedoston nimi:" -#: wp-includes/media-template.php:431 -msgid "Edit more details" -msgstr "Muokkaa lisätietoja" +#: wp-includes/media-template.php:285 +msgid "Edit next media item" +msgstr "Muokkaa seuraavaa mediatiedostoa" -#: wp-includes/media.php:2188 -msgid "Bitrate Mode" -msgstr "Tiedonsiirtomoodi" +#: wp-includes/media-template.php:284 +msgid "Edit previous media item" +msgstr "Muokkaa edellistä mediatiedostoa" -#: wp-includes/media.php:3519 -msgid "Unattached" -msgstr "Ei liitetty" +#: wp-includes/media-template.php:258 +msgid "Grid View" +msgstr "Ruudukko" -#: wp-includes/media.php:3516 -msgid "All dates" -msgstr "Kaikki päivämäärät" +#: wp-includes/media-template.php:255 +msgid "List View" +msgstr "Listanäkymä" -#: wp-includes/media.php:3532 -msgid "Filter by date" -msgstr "Suodata päivämäärän mukaan" +#: wp-includes/media-template.php:233 +msgid "Maximum upload file size: %s." +msgstr "Suurin sallittu tiedostokoko: %s." -#: wp-includes/media.php:3533 -msgid "Filter by type" -msgstr "Suodata tyypin mukaan" +#: wp-includes/media-template.php:187 +msgid "Close uploader" +msgstr "Sulje tiedostolataaja" -#: wp-includes/media.php:3534 -msgid "Search Media" -msgstr "Hae mediaa" +#: wp-includes/media-template.php:166 +msgid "Close media panel" +msgstr "Sulje mediapaneeli" -#: wp-includes/script-loader.php:720 -msgid "No plugins found. Try a different search." -msgstr "Mediatiedostoja ei löytynyt. Kokeile eri hakusanoja." +#: wp-includes/class-wp-editor.php:1722 +msgid "Search or use up and down arrow keys to select an item." +msgstr "Hae tai käytä näppäimistösi nuolinäppäimiä kohteen valitsemiseen." -#: wp-includes/ms-load.php:93 -msgid "This site is no longer available." -msgstr "Tämä sivusto ei ole enää saatavilla." +#: wp-includes/class-wp-editor.php:1250 +msgid "Read more..." +msgstr "Lue lisää..." -#: wp-includes/media-template.php:258 -msgid "Grid View" -msgstr "Ruudukko" +#: wp-includes/class-wp-editor.php:1235 +msgid "Your browser does not support direct access to the clipboard. Please use keyboard shortcuts or your browser’s edit menu instead." +msgstr "Selaimesi ei mahdollista leikepöydän käyttöä suoraan. Käytä näppäinoikoteitä tai selaimesi muokkaa-valikkoa." -#: wp-includes/comment.php:3101 -msgid "<strong>ERROR</strong>: The comment could not be saved. Please try again later." -msgstr "<strong>VIRHE</strong>: Kommenttia ei voitu tallentaa" +#: wp-includes/media.php:2187 +msgid "Bitrate" +msgstr "Tiedonsiirtonopeus" + +#: wp-includes/class-wp-customize-widgets.php:436 +msgid "Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars)." +msgstr "Vimpaimet ovat itsenäisiä sisältöelementtejä, jotka voidaan asettaa teemasi tarjoamiin vimpainalueisiin (joita kutsutaan usein myös sivupalkeiksi)." #. translators: %s: the site/panel title in the Customizer #: wp-includes/class-wp-customize-panel.php:382 @@ -5325,19 +5325,19 @@ msgstr "<strong>VIRHE</strong>: Kommenttia ei voitu tallentaa" msgid "You are customizing %s" msgstr "Olet muokkaamassa kohdetta %s" -#: wp-includes/class-wp-customize-widgets.php:436 -msgid "Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars)." -msgstr "Vimpaimet ovat itsenäisiä sisältöelementtejä, jotka voidaan asettaa teemasi tarjoamiin vimpainalueisiin (joita kutsutaan usein myös sivupalkeiksi)." +#. translators: %s: header height in pixels +#: wp-includes/customize/class-wp-customize-header-image-control.php:189 +msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header height of %s pixels." +msgstr "Teemasi suosittelee otsakekuvan korkeudeksi %s pikseliä. Voit kuitenkin rajata otsakekuvan haluamaasi kokoon <strong>Lisää uusi kuva</strong>-painikkeen painamisen jälkeen." #. translators: %s: header width in pixels #: wp-includes/customize/class-wp-customize-header-image-control.php:184 msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header width of %s pixels." msgstr "Teemasi suosittelee otsakekuvan leveydeksi %s pikseliä. Voit kuitenkin rajata otsakekuvan haluamaasi kokoon <strong>Lisää uusi kuva</strong>-painikkeen painamisen jälkeen." -#. translators: %s: header height in pixels -#: wp-includes/customize/class-wp-customize-header-image-control.php:189 -msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, your theme recommends a header height of %s pixels." -msgstr "Teemasi suosittelee otsakekuvan korkeudeksi %s pikseliä. Voit kuitenkin rajata otsakekuvan haluamaasi kokoon <strong>Lisää uusi kuva</strong>-painikkeen painamisen jälkeen." +#: wp-includes/comment.php:3101 +msgid "<strong>ERROR</strong>: The comment could not be saved. Please try again later." +msgstr "<strong>VIRHE</strong>: Kommenttia ei voitu tallentaa" #: wp-includes/update.php:130 wp-includes/update.php:322 #: wp-includes/update.php:500 @@ -5366,392 +5366,392 @@ msgstr "Teemasi suosittelee otsakekuvan leveydeksi %s pikseliä, mutta voit myö msgid "Keyboard Shortcuts" msgstr "Näppäinoikotiet" -#. translators: 1: Browser cookie documentation URL, 2: Support forums URL -#: wp-login.php:795 -msgid "<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For help, please see <a href=\"%1$s\">this documentation</a> or try the <a href=\"%2$s\">support forums</a>." -msgstr "<strong>VIRHE</strong>: Evästeet on estetty. Lue lisää <a href=\"%1$s\">täältä</a> tai kokeile <a href=\"%2$s\">tukifoorumia</a>." - #. translators: 1: Browser cookie documentation URL #: wp-login.php:800 msgid "<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href=\"%s\">enable cookies</a> to use WordPress." msgstr "<strong>VIRHE</strong>: Selaimesi on estänyt evästeet tai se ei tue niitä. Sinun on otettava <a href=\"%s\">evästeet käyttöön</a> käyttääksesi WordPressiä." -#: wp-includes/media-template.php:1015 -#: wp-includes/widgets/class-wp-widget-media-image.php:124 -msgid "Link CSS Class" -msgstr "Linkin CSS-luokka" +#. translators: 1: Browser cookie documentation URL, 2: Support forums URL +#: wp-login.php:795 +msgid "<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For help, please see <a href=\"%1$s\">this documentation</a> or try the <a href=\"%2$s\">support forums</a>." +msgstr "<strong>VIRHE</strong>: Evästeet on estetty. Lue lisää <a href=\"%1$s\">täältä</a> tai kokeile <a href=\"%2$s\">tukifoorumia</a>." -#: wp-includes/media-template.php:795 -msgid "Show Video List" -msgstr "Näytä lista videoista" +#: wp-includes/media.php:3597 +msgid "Add to Audio Playlist" +msgstr "Lisää soittolistaan" -#: wp-includes/media-template.php:912 -msgid "Display Settings" -msgstr "Näyttöasetukset" +#: wp-includes/media.php:3596 +msgid "Add to audio playlist" +msgstr "Lisää soittolistaan" -#: wp-includes/media-template.php:891 -msgid "Edit Original" -msgstr "Muokkaa alkuperäistä" +#: wp-includes/media.php:3595 +msgid "Update audio playlist" +msgstr "Päivitä audiosoittolista" -#: wp-includes/class-wp-editor.php:1202 -msgctxt "table cell alignment attribute" -msgid "None" -msgstr "Ei mitään" +#: wp-includes/media.php:3594 +msgid "Insert audio playlist" +msgstr "Lisää audiosoittolista" -#: wp-includes/class-wp-editor.php:1029 -msgid "Font Family" -msgstr "Kirjasin" +#: wp-includes/media.php:3593 +msgid "← Cancel Audio Playlist" +msgstr "← Peru soittolista" -#: wp-includes/class-wp-editor.php:1030 -msgid "Font Sizes" -msgstr "Tekstin koko" +#: wp-includes/media.php:3592 +msgid "Edit Audio Playlist" +msgstr "Muokkaa audiosoittolistaa" -#: wp-includes/class-wp-editor.php:1192 -msgid "Split table cell" -msgstr "Jaa solu" +#: wp-includes/media.php:3573 +msgid "There has been an error cropping your image." +msgstr "Kuvan rajaamisessa tapahtui virhe" -#: wp-includes/media-template.php:959 -msgid "Custom Size" -msgstr "Mukautettu koko" +#: wp-includes/media.php:2185 +msgctxt "video or audio" +msgid "Length" +msgstr "Pituus" -#: wp-includes/media-template.php:994 -msgid "Advanced Options" -msgstr "Edistyneet asetukset" +#: wp-includes/media.php:2184 +msgid "Year" +msgstr "Vuosi" -#: wp-includes/media-template.php:998 -#: wp-includes/widgets/class-wp-widget-media-image.php:146 -msgid "Image Title Attribute" -msgstr "Kuvan title-attribuutti" +#: wp-includes/media.php:2183 +msgid "Genre" +msgstr "Tyylilaji" -#: wp-includes/media-template.php:1002 -#: wp-includes/widgets/class-wp-widget-media-image.php:115 -msgid "Image CSS Class" -msgstr "Kuvan CSS-luokka" +#: wp-includes/media-template.php:389 wp-includes/media-template.php:570 +#: wp-includes/media.php:2179 +msgid "Album" +msgstr "Albumi" #: wp-includes/media-template.php:388 wp-includes/media-template.php:569 #: wp-includes/media.php:2178 msgid "Artist" msgstr "Esittäjä" -#: wp-includes/media-template.php:389 wp-includes/media-template.php:570 -#: wp-includes/media.php:2179 -msgid "Album" -msgstr "Albumi" +#: wp-includes/media-template.php:1002 +#: wp-includes/widgets/class-wp-widget-media-image.php:115 +msgid "Image CSS Class" +msgstr "Kuvan CSS-luokka" -#: wp-includes/media.php:2183 -msgid "Genre" -msgstr "Tyylilaji" +#: wp-includes/media-template.php:998 +#: wp-includes/widgets/class-wp-widget-media-image.php:146 +msgid "Image Title Attribute" +msgstr "Kuvan title-attribuutti" -#: wp-includes/media.php:2184 -msgid "Year" -msgstr "Vuosi" +#: wp-includes/media-template.php:994 +msgid "Advanced Options" +msgstr "Edistyneet asetukset" -#: wp-includes/media.php:2185 -msgctxt "video or audio" -msgid "Length" -msgstr "Pituus" +#: wp-includes/media-template.php:959 +msgid "Custom Size" +msgstr "Mukautettu koko" -#: wp-includes/media.php:3573 -msgid "There has been an error cropping your image." -msgstr "Kuvan rajaamisessa tapahtui virhe" +#: wp-includes/class-wp-editor.php:1192 +msgid "Split table cell" +msgstr "Jaa solu" -#: wp-includes/media.php:3592 -msgid "Edit Audio Playlist" -msgstr "Muokkaa audiosoittolistaa" +#: wp-includes/class-wp-editor.php:1030 +msgid "Font Sizes" +msgstr "Tekstin koko" -#: wp-includes/media.php:3593 -msgid "← Cancel Audio Playlist" -msgstr "← Peru soittolista" +#: wp-includes/class-wp-editor.php:1029 +msgid "Font Family" +msgstr "Kirjasin" -#: wp-includes/media.php:3594 -msgid "Insert audio playlist" -msgstr "Lisää audiosoittolista" +#: wp-includes/class-wp-editor.php:1202 +msgctxt "table cell alignment attribute" +msgid "None" +msgstr "Ei mitään" -#: wp-includes/media.php:3595 -msgid "Update audio playlist" -msgstr "Päivitä audiosoittolista" +#: wp-includes/media-template.php:891 +msgid "Edit Original" +msgstr "Muokkaa alkuperäistä" -#: wp-includes/media.php:3596 -msgid "Add to audio playlist" -msgstr "Lisää soittolistaan" +#: wp-includes/media-template.php:912 +msgid "Display Settings" +msgstr "Näyttöasetukset" -#: wp-includes/media.php:3597 -msgid "Add to Audio Playlist" -msgstr "Lisää soittolistaan" +#: wp-includes/media-template.php:795 +msgid "Show Video List" +msgstr "Näytä lista videoista" -#: wp-includes/class-wp-customize-widgets.php:723 -msgctxt "Move widget" -msgid "Move" -msgstr "Siirrä" +#: wp-includes/media-template.php:1015 +#: wp-includes/widgets/class-wp-widget-media-image.php:124 +msgid "Link CSS Class" +msgstr "Linkin CSS-luokka" -#: wp-includes/customize/class-wp-customize-header-image-control.php:108 -msgid "Set image" -msgstr "Aseta kuva" +#: wp-includes/class-wp-editor.php:1002 +msgctxt "TinyMCE" +msgid "Headings" +msgstr "Otsikot" -#: wp-includes/class-wp-customize-widgets.php:785 -msgid "Save and preview changes before publishing them." -msgstr "Tallenna ja esikatsele muutoksia ennen niiden julkaisemista." +#: wp-includes/class-wp-customize-widgets.php:843 +msgid "Search widgets…" +msgstr "Etsi vimpaimia…" + +#: wp-includes/class-wp-customize-widgets.php:842 +msgid "Search Widgets" +msgstr "Etsi vimpaimia" #: wp-includes/class-wp-customize-widgets.php:787 msgid "Trash widget by moving it to the inactive widgets sidebar." msgstr "Poista vimpain siirtämälle se käytöstä poistetut vimpaimet -alueelle." -#: wp-includes/class-wp-customize-widgets.php:842 -msgid "Search Widgets" -msgstr "Etsi vimpaimia" +#: wp-includes/class-wp-customize-widgets.php:785 +msgid "Save and preview changes before publishing them." +msgstr "Tallenna ja esikatsele muutoksia ennen niiden julkaisemista." -#: wp-includes/class-wp-customize-widgets.php:843 -msgid "Search widgets…" -msgstr "Etsi vimpaimia…" +#: wp-includes/customize/class-wp-customize-header-image-control.php:108 +msgid "Set image" +msgstr "Aseta kuva" -#: wp-includes/class-wp-editor.php:1002 -msgctxt "TinyMCE" -msgid "Headings" -msgstr "Otsikot" +#: wp-includes/class-wp-customize-widgets.php:723 +msgctxt "Move widget" +msgid "Move" +msgstr "Siirrä" #: wp-includes/media-template.php:1084 wp-includes/media-template.php:1173 msgctxt "auto preload" msgid "Auto" msgstr "Automaattinen" -#: wp-includes/class-wp-customize-widgets.php:714 -msgid "Move to another area…" -msgstr "Siirrä toiseen alueeseen…" - -#: wp-includes/media.php:3570 -msgid "Cropping…" -msgstr "Rajataan…" - #: wp-includes/media-template.php:1190 #: wp-includes/widgets/class-wp-widget-media-video.php:81 msgid "Tracks (subtitles, captions, descriptions, chapters, or metadata)" msgstr "Raidat (tekstitys, kuvatekstit, kuvaukset, kappaleet tai metadata)" -#: wp-includes/class-wp-editor.php:1214 -msgctxt "table cell scope attribute" -msgid "Scope" -msgstr "Scope" +#: wp-includes/media.php:3570 +msgid "Cropping…" +msgstr "Rajataan…" -#: wp-includes/class-wp-editor.php:1173 -msgctxt "table column" -msgid "Column" -msgstr "Sarake" +#: wp-includes/class-wp-customize-widgets.php:714 +msgid "Move to another area…" +msgstr "Siirrä toiseen alueeseen…" -#. translators: block tags -#: wp-includes/class-wp-editor.php:1011 -msgctxt "TinyMCE" -msgid "Blocks" -msgstr "Lohkot" +#: wp-includes/class-wp-editor.php:1243 +msgctxt "TinyMCE menu" +msgid "Table" +msgstr "Taulukko" -#: wp-includes/class-wp-editor.php:1014 -msgctxt "HTML tag" -msgid "Div" -msgstr "Div" +#: wp-includes/class-wp-editor.php:1242 +msgctxt "TinyMCE menu" +msgid "View" +msgstr "Näytä" -#: wp-includes/class-wp-editor.php:1015 -msgctxt "HTML tag" -msgid "Pre" -msgstr "Pre" +#: wp-includes/class-wp-editor.php:1241 +msgctxt "TinyMCE menu" +msgid "Tools" +msgstr "Työkalut" -#: wp-includes/class-wp-editor.php:1019 -msgctxt "HTML elements" -msgid "Inline" -msgstr "Tekstielementit" +#: wp-includes/class-wp-editor.php:1240 +msgctxt "TinyMCE menu" +msgid "Edit" +msgstr "Muokkaa" -#: wp-includes/class-wp-editor.php:1051 wp-includes/script-loader.php:112 -msgid "Bulleted list" -msgstr "Järjestämätön lista" +#: wp-includes/class-wp-editor.php:1239 +msgctxt "TinyMCE menu" +msgid "File" +msgstr "Tiedosto" -#: wp-includes/class-wp-editor.php:1053 -msgctxt "list style" -msgid "Square" -msgstr "Neliö" +#: wp-includes/class-wp-editor.php:1238 +msgctxt "TinyMCE menu" +msgid "Insert" +msgstr "Lisää" -#: wp-includes/class-wp-editor.php:1055 -msgctxt "list style" -msgid "Circle" -msgstr "Ympyrä" +#. translators: word count +#: wp-includes/class-wp-editor.php:1225 +msgid "Words: %s" +msgstr "Sanoja: %s" -#: wp-includes/class-wp-editor.php:1056 -msgctxt "list style" -msgid "Disc" -msgstr "Kiekko" +#: wp-includes/class-wp-editor.php:1221 +msgctxt "editor button" +msgid "Show blocks" +msgstr "Näytä lohkot" -#: wp-includes/class-wp-editor.php:1057 -msgctxt "list style" -msgid "Lower Greek" -msgstr "Pienet kreikkalaiset kirjaimet" +#: wp-includes/class-wp-editor.php:1217 +msgctxt "TinyMCE" +msgid "Templates" +msgstr "Mallit" -#: wp-includes/class-wp-editor.php:1058 -msgctxt "list style" -msgid "Lower Alpha" -msgstr "Pienet kirjaimet" +#: wp-includes/class-wp-editor.php:1216 +msgctxt "TinyMCE" +msgid "Insert template" +msgstr "Lisää malli" -#: wp-includes/class-wp-editor.php:1059 -msgctxt "list style" -msgid "Upper Alpha" -msgstr "Isot kirjaimet" +#: wp-includes/class-wp-editor.php:1179 +msgctxt "table footer" +msgid "Footer" +msgstr "Alatunniste" -#: wp-includes/class-wp-editor.php:1060 -msgctxt "list style" -msgid "Upper Roman" -msgstr "Isot roomalaiset" +#: wp-includes/class-wp-editor.php:1178 +msgctxt "table body" +msgid "Body" +msgstr "Sisältö" -#: wp-includes/class-wp-editor.php:1061 -msgctxt "list style" -msgid "Lower Roman" -msgstr "Pienet roomalaiset" +#: wp-includes/class-wp-editor.php:1177 +msgctxt "table header" +msgid "Header" +msgstr "Otsake" -#: wp-includes/class-wp-editor.php:1064 -msgctxt "Name of link anchor (TinyMCE)" -msgid "Name" -msgstr "Nimi" +#: wp-includes/class-wp-editor.php:1175 +msgctxt "table cell" +msgid "Cell" +msgstr "Solu" -#: wp-includes/class-wp-editor.php:1065 -msgctxt "Link anchor (TinyMCE)" -msgid "Anchor" -msgstr "Ankkuri" +#: wp-includes/class-wp-editor.php:1174 +msgctxt "table columns" +msgid "Cols" +msgstr "Sarakkeet" -#: wp-includes/class-wp-editor.php:1066 -msgctxt "Link anchors (TinyMCE)" -msgid "Anchors" -msgstr "Ankkurit" +#: wp-includes/class-wp-editor.php:1160 +msgctxt "spellcheck" +msgid "Ignore" +msgstr "Ohita" -#: wp-includes/class-wp-editor.php:1108 -msgctxt "editor button" -msgid "Right to left" -msgstr "Oikealta vasemmalle" +#: wp-includes/class-wp-editor.php:1159 +msgctxt "spellcheck" +msgid "Ignore all" +msgstr "Ohita kaikki" -#: wp-includes/class-wp-editor.php:1109 -msgctxt "editor button" -msgid "Left to right" -msgstr "Vasemmalta oikealle" +#: wp-includes/class-wp-editor.php:1158 +msgctxt "spellcheck" +msgid "Finish" +msgstr "Valmis" -#: wp-includes/class-wp-editor.php:1147 +#: wp-includes/class-wp-editor.php:1155 msgctxt "find/replace" -msgid "Replace" -msgstr "Korvaa" +msgid "Replace all" +msgstr "Korvaa kaikki" -#: wp-includes/class-wp-editor.php:1148 +#: wp-includes/class-wp-editor.php:1154 msgctxt "find/replace" -msgid "Next" -msgstr "Seuraava" +msgid "Find" +msgstr "Etsi" -#. translators: previous -#: wp-includes/class-wp-editor.php:1150 +#: wp-includes/class-wp-editor.php:1153 msgctxt "find/replace" -msgid "Prev" -msgstr "Edellinen" +msgid "Replace with" +msgstr "Korvaava teksti" #: wp-includes/class-wp-editor.php:1151 msgctxt "find/replace" msgid "Whole words" msgstr "Kokonaiset sanat" -#: wp-includes/class-wp-editor.php:1153 +#. translators: previous +#: wp-includes/class-wp-editor.php:1150 msgctxt "find/replace" -msgid "Replace with" -msgstr "Korvaava teksti" +msgid "Prev" +msgstr "Edellinen" -#: wp-includes/class-wp-editor.php:1154 +#: wp-includes/class-wp-editor.php:1148 msgctxt "find/replace" -msgid "Find" -msgstr "Etsi" +msgid "Next" +msgstr "Seuraava" -#: wp-includes/class-wp-editor.php:1155 +#: wp-includes/class-wp-editor.php:1147 msgctxt "find/replace" -msgid "Replace all" -msgstr "Korvaa kaikki" +msgid "Replace" +msgstr "Korvaa" -#: wp-includes/class-wp-editor.php:1158 -msgctxt "spellcheck" -msgid "Finish" -msgstr "Valmis" +#: wp-includes/class-wp-editor.php:1109 +msgctxt "editor button" +msgid "Left to right" +msgstr "Vasemmalta oikealle" -#: wp-includes/class-wp-editor.php:1159 -msgctxt "spellcheck" -msgid "Ignore all" -msgstr "Ohita kaikki" +#: wp-includes/class-wp-editor.php:1108 +msgctxt "editor button" +msgid "Right to left" +msgstr "Oikealta vasemmalle" -#: wp-includes/class-wp-editor.php:1160 -msgctxt "spellcheck" -msgid "Ignore" -msgstr "Ohita" +#: wp-includes/class-wp-editor.php:1066 +msgctxt "Link anchors (TinyMCE)" +msgid "Anchors" +msgstr "Ankkurit" -#: wp-includes/class-wp-editor.php:1174 -msgctxt "table columns" -msgid "Cols" -msgstr "Sarakkeet" +#: wp-includes/class-wp-editor.php:1065 +msgctxt "Link anchor (TinyMCE)" +msgid "Anchor" +msgstr "Ankkuri" -#: wp-includes/class-wp-editor.php:1175 -msgctxt "table cell" -msgid "Cell" -msgstr "Solu" +#: wp-includes/class-wp-editor.php:1064 +msgctxt "Name of link anchor (TinyMCE)" +msgid "Name" +msgstr "Nimi" -#: wp-includes/class-wp-editor.php:1177 -msgctxt "table header" -msgid "Header" -msgstr "Otsake" +#: wp-includes/class-wp-editor.php:1061 +msgctxt "list style" +msgid "Lower Roman" +msgstr "Pienet roomalaiset" -#: wp-includes/class-wp-editor.php:1178 -msgctxt "table body" -msgid "Body" -msgstr "Sisältö" +#: wp-includes/class-wp-editor.php:1060 +msgctxt "list style" +msgid "Upper Roman" +msgstr "Isot roomalaiset" -#: wp-includes/class-wp-editor.php:1179 -msgctxt "table footer" -msgid "Footer" -msgstr "Alatunniste" +#: wp-includes/class-wp-editor.php:1059 +msgctxt "list style" +msgid "Upper Alpha" +msgstr "Isot kirjaimet" -#: wp-includes/class-wp-editor.php:1216 -msgctxt "TinyMCE" -msgid "Insert template" -msgstr "Lisää malli" +#: wp-includes/class-wp-editor.php:1058 +msgctxt "list style" +msgid "Lower Alpha" +msgstr "Pienet kirjaimet" -#: wp-includes/class-wp-editor.php:1217 -msgctxt "TinyMCE" -msgid "Templates" -msgstr "Mallit" +#: wp-includes/class-wp-editor.php:1057 +msgctxt "list style" +msgid "Lower Greek" +msgstr "Pienet kreikkalaiset kirjaimet" -#: wp-includes/class-wp-editor.php:1221 -msgctxt "editor button" -msgid "Show blocks" -msgstr "Näytä lohkot" +#: wp-includes/class-wp-editor.php:1056 +msgctxt "list style" +msgid "Disc" +msgstr "Kiekko" -#. translators: word count -#: wp-includes/class-wp-editor.php:1225 -msgid "Words: %s" -msgstr "Sanoja: %s" +#: wp-includes/class-wp-editor.php:1055 +msgctxt "list style" +msgid "Circle" +msgstr "Ympyrä" -#: wp-includes/class-wp-editor.php:1238 -msgctxt "TinyMCE menu" -msgid "Insert" -msgstr "Lisää" +#: wp-includes/class-wp-editor.php:1053 +msgctxt "list style" +msgid "Square" +msgstr "Neliö" -#: wp-includes/class-wp-editor.php:1239 -msgctxt "TinyMCE menu" -msgid "File" -msgstr "Tiedosto" +#: wp-includes/class-wp-editor.php:1051 wp-includes/script-loader.php:112 +msgid "Bulleted list" +msgstr "Järjestämätön lista" -#: wp-includes/class-wp-editor.php:1240 -msgctxt "TinyMCE menu" -msgid "Edit" -msgstr "Muokkaa" +#: wp-includes/class-wp-editor.php:1019 +msgctxt "HTML elements" +msgid "Inline" +msgstr "Tekstielementit" -#: wp-includes/class-wp-editor.php:1241 -msgctxt "TinyMCE menu" -msgid "Tools" -msgstr "Työkalut" +#: wp-includes/class-wp-editor.php:1015 +msgctxt "HTML tag" +msgid "Pre" +msgstr "Pre" -#: wp-includes/class-wp-editor.php:1242 -msgctxt "TinyMCE menu" -msgid "View" -msgstr "Näytä" +#: wp-includes/class-wp-editor.php:1014 +msgctxt "HTML tag" +msgid "Div" +msgstr "Div" -#: wp-includes/class-wp-editor.php:1243 -msgctxt "TinyMCE menu" -msgid "Table" -msgstr "Taulukko" +#. translators: block tags +#: wp-includes/class-wp-editor.php:1011 +msgctxt "TinyMCE" +msgid "Blocks" +msgstr "Lohkot" + +#: wp-includes/class-wp-editor.php:1173 +msgctxt "table column" +msgid "Column" +msgstr "Sarake" + +#: wp-includes/class-wp-editor.php:1214 +msgctxt "table cell scope attribute" +msgid "Scope" +msgstr "Scope" #: wp-includes/class-wp-editor.php:1000 msgctxt "TinyMCE" @@ -5762,535 +5762,535 @@ msgstr "Omat tyylit" msgid "Add alternate sources for maximum HTML5 playback:" msgstr "Lisää vaihtoehtoisia lähteitä maksimaalisen HTML5-yhteensopivuuden takaamiseksi:" -#: wp-includes/media.php:3559 -msgid "Image Details" -msgstr "Kuvan tiedot" - -#: wp-includes/class-wp-customize-nav-menus.php:952 -#: wp-includes/class-wp-customize-panel.php:378 -#: wp-includes/class-wp-customize-section.php:368 -#: wp-includes/class-wp-customize-widgets.php:831 -#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:75 -#: wp-includes/media.php:3496 -msgid "Back" -msgstr "Takaisin" +#: wp-includes/user.php:2050 +msgid "Hint: The password should be at least twelve characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )." +msgstr "Vihje: Salasanassa pitäisi olla vähintään kaksitoista merkkiä. Vahvista salasanaasi käyttämällä sekä isoja että pieniä kirjaimia, numeroita ja erikoismerkkejä kuten ! \" ? $ % ^ & )." -#: wp-includes/media-template.php:785 -msgid "Playlist Settings" -msgstr "Soittolistan asetukset" +#: wp-includes/wp-db.php:1297 +msgid "The query argument of %s must have a placeholder." +msgstr "The query argument of %s must have a placeholder." -#: wp-includes/media-template.php:797 -msgid "Show Tracklist" -msgstr "Näytä soittolista" +#: wp-includes/nav-menu.php:377 +msgid "Invalid menu ID." +msgstr "Virheellinen valikon ID." -#: wp-includes/widgets/class-wp-widget-search.php:31 -msgctxt "Search widget" -msgid "Search" -msgstr "Haku" +#: wp-includes/media.php:3607 +msgid "Add to Video Playlist" +msgstr "Lisää videosoittolistaan" -#. translators: used to join items in a list with more than 2 items -#: wp-includes/formatting.php:4483 -msgid "%s, %s" -msgstr "%s, %s" +#: wp-includes/media.php:3606 +msgid "Add to video playlist" +msgstr "Lisää videosoittolistaan" -#. translators: used to join items in a list with only 2 items -#: wp-includes/formatting.php:4487 -msgid "%s and %s" -msgstr "%s ja %s" +#: wp-includes/media.php:3605 +msgid "Update video playlist" +msgstr "Päivitä videosoittolista" -#. translators: used to join last two items in a list with more than 2 times -#: wp-includes/formatting.php:4485 -msgid "%s, and %s" -msgstr "%s ja %s" +#: wp-includes/media.php:3604 +msgid "Insert video playlist" +msgstr "Upota videosoittolista" -#: wp-includes/media-template.php:806 -msgid "Show Artist Name in Tracklist" -msgstr "Näytä artistin nimi soittolistassa" +#: wp-includes/media.php:3603 +msgid "← Cancel Video Playlist" +msgstr "← Peruuta videosoittolista" -#: wp-includes/media-template.php:814 -msgid "Show Images" -msgstr "Näytä kuvat" +#: wp-includes/media.php:3602 +msgid "Edit Video Playlist" +msgstr "Muokkaa videosoittolistaa" -#: wp-includes/media-template.php:1085 wp-includes/media-template.php:1174 -msgid "Metadata" -msgstr "Metadata" +#: wp-includes/media.php:3601 +msgid "Create Video Playlist" +msgstr "Luo videosoittolista" -#: wp-includes/media-template.php:1092 wp-includes/media-template.php:1181 -msgid "Autoplay" -msgstr "Soita automaattisesti" +#: wp-includes/media.php:3600 +msgid "Drag and drop to reorder videos." +msgstr "Järjestä videot raahaamalla ja pudottamalla." -#: wp-includes/media-template.php:1165 -msgid "Poster Image" -msgstr "Ruutukaappaus" +#: wp-includes/media.php:3591 +msgid "Create Audio Playlist" +msgstr "Luo audiosoittolista" -#: wp-includes/media-template.php:1203 -msgid "There are no associated subtitles." -msgstr "Mediaan ei liity kuvatekstejä" +#: wp-includes/media.php:3590 +msgid "Drag and drop to reorder tracks." +msgstr "Järjestä raidat raahaamalla ja pudottamalla." -#: wp-includes/media.php:3512 -msgid "Create a new playlist" -msgstr "Luo uusi soittolista" +#: wp-includes/media.php:3587 +msgid "Add Subtitles" +msgstr "Lisää tekstitys" -#: wp-includes/media.php:3513 -msgid "Create a new video playlist" -msgstr "Luo uusi videosoittolista" +#: wp-includes/media.php:3586 +msgid "Select Poster Image" +msgstr "Valitse ruutukaappaus" -#: wp-includes/media.php:3560 -msgid "Replace Image" -msgstr "Vaihda kuva" +#: wp-includes/media.php:3584 +msgid "Add Video Source" +msgstr "Lisää vaihtoehtoinen videotiedosto" -#: wp-includes/media.php:3561 wp-includes/media.php:3579 -#: wp-includes/media.php:3585 -msgid "Cancel Edit" -msgstr "Peruuta muokkaus" +#: wp-includes/media.php:3583 +msgid "Replace Video" +msgstr "Vaihda video" -#: wp-includes/customize/class-wp-customize-image-control.php:41 -#: wp-includes/media.php:3565 -msgid "Choose Image" -msgstr "Valitse kuva" +#: wp-includes/media.php:3582 +msgid "Video Details" +msgstr "Videon tiedot" -#: wp-includes/media.php:3566 -msgid "Select and Crop" -msgstr "Valitse ja rajaa" +#: wp-includes/media.php:3578 +msgid "Add Audio Source" +msgstr "Lisää vaihtoehtoinen tiedosto" -#: wp-includes/media.php:3567 -msgid "Skip Cropping" -msgstr "Ohita rajaus" +#: wp-includes/media.php:3577 +msgid "Replace Audio" +msgstr "Vaihda äänitiedosto" -#: wp-includes/media.php:3568 -msgid "Crop Image" -msgstr "Rajaa kuva" +#: wp-includes/media.php:3576 +msgid "Audio Details" +msgstr "Äänitiedoston tiedot" #: wp-includes/media.php:3569 msgid "Crop your image" msgstr "Rajaa kuvasi" -#: wp-includes/media.php:3576 -msgid "Audio Details" -msgstr "Äänitiedoston tiedot" +#: wp-includes/media.php:3568 +msgid "Crop Image" +msgstr "Rajaa kuva" -#: wp-includes/media.php:3577 -msgid "Replace Audio" -msgstr "Vaihda äänitiedosto" +#: wp-includes/media.php:3567 +msgid "Skip Cropping" +msgstr "Ohita rajaus" -#: wp-includes/media.php:3578 -msgid "Add Audio Source" -msgstr "Lisää vaihtoehtoinen tiedosto" +#: wp-includes/media.php:3566 +msgid "Select and Crop" +msgstr "Valitse ja rajaa" -#: wp-includes/media.php:3582 -msgid "Video Details" -msgstr "Videon tiedot" +#: wp-includes/customize/class-wp-customize-image-control.php:41 +#: wp-includes/media.php:3565 +msgid "Choose Image" +msgstr "Valitse kuva" -#: wp-includes/media.php:3583 -msgid "Replace Video" -msgstr "Vaihda video" +#: wp-includes/media.php:3561 wp-includes/media.php:3579 +#: wp-includes/media.php:3585 +msgid "Cancel Edit" +msgstr "Peruuta muokkaus" -#: wp-includes/media.php:3584 -msgid "Add Video Source" -msgstr "Lisää vaihtoehtoinen videotiedosto" +#: wp-includes/media.php:3560 +msgid "Replace Image" +msgstr "Vaihda kuva" -#: wp-includes/media.php:3586 -msgid "Select Poster Image" -msgstr "Valitse ruutukaappaus" +#: wp-includes/media.php:3513 +msgid "Create a new video playlist" +msgstr "Luo uusi videosoittolista" -#: wp-includes/media.php:3587 -msgid "Add Subtitles" -msgstr "Lisää tekstitys" +#: wp-includes/media.php:3512 +msgid "Create a new playlist" +msgstr "Luo uusi soittolista" -#: wp-includes/media.php:3590 -msgid "Drag and drop to reorder tracks." -msgstr "Järjestä raidat raahaamalla ja pudottamalla." +#: wp-includes/media-template.php:1203 +msgid "There are no associated subtitles." +msgstr "Mediaan ei liity kuvatekstejä" -#: wp-includes/media.php:3591 -msgid "Create Audio Playlist" -msgstr "Luo audiosoittolista" +#: wp-includes/media-template.php:1165 +msgid "Poster Image" +msgstr "Ruutukaappaus" -#: wp-includes/media.php:3600 -msgid "Drag and drop to reorder videos." -msgstr "Järjestä videot raahaamalla ja pudottamalla." +#: wp-includes/media-template.php:1092 wp-includes/media-template.php:1181 +msgid "Autoplay" +msgstr "Soita automaattisesti" -#: wp-includes/media.php:3601 -msgid "Create Video Playlist" -msgstr "Luo videosoittolista" +#: wp-includes/media-template.php:1085 wp-includes/media-template.php:1174 +msgid "Metadata" +msgstr "Metadata" -#: wp-includes/media.php:3602 -msgid "Edit Video Playlist" -msgstr "Muokkaa videosoittolistaa" +#: wp-includes/media-template.php:814 +msgid "Show Images" +msgstr "Näytä kuvat" -#: wp-includes/media.php:3603 -msgid "← Cancel Video Playlist" -msgstr "← Peruuta videosoittolista" +#: wp-includes/media-template.php:806 +msgid "Show Artist Name in Tracklist" +msgstr "Näytä artistin nimi soittolistassa" -#: wp-includes/media.php:3604 -msgid "Insert video playlist" -msgstr "Upota videosoittolista" +#. translators: used to join items in a list with only 2 items +#: wp-includes/formatting.php:4487 +msgid "%s and %s" +msgstr "%s ja %s" -#: wp-includes/media.php:3605 -msgid "Update video playlist" -msgstr "Päivitä videosoittolista" +#. translators: used to join last two items in a list with more than 2 times +#: wp-includes/formatting.php:4485 +msgid "%s, and %s" +msgstr "%s ja %s" -#: wp-includes/media.php:3606 -msgid "Add to video playlist" -msgstr "Lisää videosoittolistaan" +#. translators: used to join items in a list with more than 2 items +#: wp-includes/formatting.php:4483 +msgid "%s, %s" +msgstr "%s, %s" -#: wp-includes/media.php:3607 -msgid "Add to Video Playlist" -msgstr "Lisää videosoittolistaan" +#: wp-includes/widgets/class-wp-widget-search.php:31 +msgctxt "Search widget" +msgid "Search" +msgstr "Haku" -#: wp-includes/nav-menu.php:377 -msgid "Invalid menu ID." -msgstr "Virheellinen valikon ID." +#: wp-includes/media-template.php:785 +msgid "Playlist Settings" +msgstr "Soittolistan asetukset" -#: wp-includes/wp-db.php:1297 -msgid "The query argument of %s must have a placeholder." -msgstr "The query argument of %s must have a placeholder." +#: wp-includes/media-template.php:797 +msgid "Show Tracklist" +msgstr "Näytä soittolista" -#: wp-includes/user.php:2050 -msgid "Hint: The password should be at least twelve characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )." -msgstr "Vihje: Salasanassa pitäisi olla vähintään kaksitoista merkkiä. Vahvista salasanaasi käyttämällä sekä isoja että pieniä kirjaimia, numeroita ja erikoismerkkejä kuten ! \" ? $ % ^ & )." +#: wp-includes/class-wp-customize-nav-menus.php:952 +#: wp-includes/class-wp-customize-panel.php:378 +#: wp-includes/class-wp-customize-section.php:368 +#: wp-includes/class-wp-customize-widgets.php:831 +#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:75 +#: wp-includes/media.php:3496 +msgid "Back" +msgstr "Takaisin" -#: wp-includes/class-wp-editor.php:1146 -msgid "Could not find the specified string." -msgstr "Haettua merkkijonoa ei löytynyt." +#: wp-includes/media.php:3559 +msgid "Image Details" +msgstr "Kuvan tiedot" -#: wp-includes/class-wp-editor.php:1209 -msgid "Column group" -msgstr "Sarakeryhmä" +#: wp-includes/class-wp-editor.php:1248 wp-includes/script-loader.php:120 +msgid "Insert Read More tag" +msgstr "Lue lisää -tagi" -#: wp-includes/class-wp-editor.php:1247 -msgid "Toolbar Toggle" -msgstr "Näytä/piilota työkalupalkki" +#: wp-includes/class-wp-editor.php:1222 +msgid "Show invisible characters" +msgstr "Näytä piilotetut merkit" -#: wp-includes/class-wp-editor.php:1092 wp-includes/script-loader.php:111 -msgid "Insert image" -msgstr "Lisää kuva" +#: wp-includes/class-wp-editor.php:1220 +msgid "Text color" +msgstr "Tekstin väri" -#: wp-includes/class-wp-editor.php:1090 -msgid "Style" -msgstr "Tyyli" +#: wp-includes/class-wp-editor.php:1219 +msgid "Background color" +msgstr "Taustaväri" -#: wp-includes/class-wp-editor.php:1101 -msgid "Alternative source" -msgstr "Vaihtoehtoinen lähde" +#: wp-includes/class-wp-editor.php:1188 +msgid "Delete column" +msgstr "Poista sarake" -#: wp-includes/class-wp-editor.php:1075 -msgid "Keywords" -msgstr "Avainsanat" +#: wp-includes/class-wp-editor.php:1208 +msgid "Row group" +msgstr "Riviryhmä" -#: wp-includes/admin-bar.php:164 wp-includes/update.php:129 -#: wp-includes/update.php:321 wp-includes/update.php:499 -#: wp-includes/wp-db.php:1129 wp-includes/wp-db.php:1601 -#: wp-includes/wp-db.php:1705 wp-login.php:796 -msgid "https://wordpress.org/support/" -msgstr "https://fi.forums.wordpress.org/" - -#: wp-includes/admin-bar.php:148 -#: wp-includes/widgets/class-wp-widget-meta.php:69 wp-login.php:103 -msgid "https://wordpress.org/" -msgstr "https://fi.wordpress.org/" +#: wp-includes/class-wp-editor.php:1211 +msgid "Cell type" +msgstr "Solun tyyppi" -#: wp-includes/admin-bar.php:172 -msgid "https://wordpress.org/support/forum/requests-and-feedback" -msgstr "https://wordpress.org/support/forum/requests-and-feedback" +#: wp-includes/class-wp-editor.php:1176 +msgid "Header cell" +msgstr "Otsikkosolu" -#: wp-includes/customize/class-wp-customize-header-image-control.php:97 -msgid "Randomize uploaded headers" -msgstr "Järjestä otsakekuvat satunnaisesti" +#: wp-includes/class-wp-editor.php:1164 +msgid "Insert table" +msgstr "Lisää taulukko" -#: wp-includes/customize/class-wp-customize-header-image-control.php:99 -msgid "Randomize suggested headers" -msgstr "Järjestä ehdotetut otsakekuvat satunnaisesti" +#: wp-includes/class-wp-editor.php:1210 +msgid "Row type" +msgstr "Rivin tyyppi" -#: wp-includes/customize/class-wp-customize-header-image-control.php:126 -msgid "Randomizing uploaded headers" -msgstr "Satunnaistetaan" +#: wp-includes/class-wp-editor.php:1213 +msgid "Cell spacing" +msgstr "Solujen välit" -#: wp-includes/customize/class-wp-customize-header-image-control.php:128 -msgid "Randomizing suggested headers" -msgstr "Satunnaistetaan" +#: wp-includes/class-wp-editor.php:1212 +msgid "Cell padding" +msgstr "Solujen reunukset" -#: wp-includes/customize/class-wp-customize-header-image-control.php:140 -msgid "No image set" -msgstr "Kuvaa ei ole asetettu" +#: wp-includes/class-wp-editor.php:1172 +msgid "Rows" +msgstr "Rivit" -#: wp-includes/customize/class-wp-customize-header-image-control.php:198 -msgid "Current header" -msgstr "Nykyinen otsakekuva" +#: wp-includes/class-wp-editor.php:1156 +msgid "Match case" +msgstr "Huomioi isot ja pienet kirjaimet" -#: wp-includes/customize/class-wp-customize-header-image-control.php:212 -msgctxt "custom headers" -msgid "Previously uploaded" -msgstr "Aiemmin siirretty" +#: wp-includes/class-wp-editor.php:1152 +msgid "Find and replace" +msgstr "Etsi ja korvaa" -#: wp-includes/customize/class-wp-customize-header-image-control.php:219 -msgctxt "custom headers" -msgid "Suggested" -msgstr "Suositellut" +#: wp-includes/media-template.php:892 wp-includes/media.php:3494 +msgid "Replace" +msgstr "Korvaa" -#: wp-includes/class-wp-customize-widgets.php:838 -#: wp-includes/customize/class-wp-widget-area-customize-control.php:61 -msgid "Add a Widget" -msgstr "Lisää vimpain" +#: wp-includes/class-wp-editor.php:1113 +msgid "Paste as text" +msgstr "Liitä muotoilemattomana" -#: wp-includes/class-wp-customize-nav-menus.php:931 -#: wp-includes/class-wp-customize-widgets.php:715 -msgid "Move down" -msgstr "Siirrä alaspäin" +#: wp-includes/class-wp-editor.php:1112 +msgid "Page break" +msgstr "Sivunvaihto" -#: wp-includes/class-wp-customize-nav-menus.php:930 -#: wp-includes/class-wp-customize-widgets.php:716 -msgid "Move up" -msgstr "Siirrä ylöspäin" +#: wp-includes/class-wp-editor.php:1111 +msgid "Nonbreaking space" +msgstr "Sitova välilyönti" -#: wp-includes/class-wp-customize-widgets.php:722 -msgid "Select an area to move this widget into:" -msgstr "Valitse alue, johon tämä vimpain siirretään:" +#: wp-includes/class-wp-editor.php:1104 +msgid "Embed" +msgstr "Upota" -#: wp-includes/class-wp-customize-widgets.php:788 -#: wp-includes/script-loader.php:718 wp-includes/script-loader.php:742 -msgid "An error has occurred. Please reload the page and try again." -msgstr "Tapahtui virhe. Lataa sivu ja kokeile uudelleen." +#: wp-includes/class-wp-editor.php:1103 +msgid "Insert video" +msgstr "Lisää video" -#: wp-includes/class-wp-editor.php:1033 -msgid "Align right" -msgstr "Tasaa oikealle" +#: wp-includes/class-wp-editor.php:1102 +msgid "Paste your embed code below:" +msgstr "Upota koodi tähän:" -#: wp-includes/class-wp-editor.php:1052 wp-includes/script-loader.php:114 -msgid "Numbered list" -msgstr "Numeroitu lista" +#: wp-includes/class-wp-editor.php:1129 +msgid "New window" +msgstr "Uusi ikkuna" -#: wp-includes/class-wp-editor.php:1036 -msgid "Increase indent" -msgstr "Sisennä" +#: wp-includes/class-wp-editor.php:1130 +msgid "Text to display" +msgstr "Linkkiteksti" -#: wp-includes/class-wp-editor.php:1024 -msgid "Clear formatting" -msgstr "Poista muotoilut" +#: wp-includes/class-wp-editor.php:1094 +msgid "Insert date/time" +msgstr "Lisää päivämäärä/aika" -#: wp-includes/class-wp-editor.php:1032 -msgid "Align center" -msgstr "Keskitä" +#: wp-includes/class-wp-editor.php:1118 +msgid "Horizontal line" +msgstr "Vaakasuora erotin" -#: wp-includes/class-wp-editor.php:1037 -msgid "Decrease indent" -msgstr "Poista sisennys" +#: wp-includes/class-wp-editor.php:1076 +msgid "Encoding" +msgstr "Koodaus" -#: wp-includes/class-wp-editor.php:1227 -msgid "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off." -msgstr "Teksti liitetään nyt muotoilemattomana, kunnes poistat tämän asetuksen käytöstä." +#: wp-includes/class-wp-editor.php:1073 +msgid "Robots" +msgstr "Robotit" -#: wp-includes/class-wp-editor.php:1035 -msgid "Justify" -msgstr "Tasaa teksti molempiin reunoihin" +#: wp-includes/class-wp-editor.php:1110 +msgid "Emoticons" +msgstr "Hymiöt" -#: wp-includes/class-wp-editor.php:1034 -msgid "Align left" -msgstr "Tasaa vasemmalle" +#: wp-includes/class-wp-editor.php:1028 +msgid "Source code" +msgstr "Lähdekoodi" -#: wp-includes/class-wp-editor.php:1049 -msgid "Visual aids" -msgstr "Visuaalinen apu" +#: wp-includes/class-wp-editor.php:1107 +msgid "Special character" +msgstr "Erikoismerkki" #: wp-includes/class-wp-editor.php:1120 msgid "Restore last draft" msgstr "Palauta viimeisin luonnos" -#: wp-includes/class-wp-editor.php:1107 -msgid "Special character" -msgstr "Erikoismerkki" +#: wp-includes/class-wp-editor.php:1049 +msgid "Visual aids" +msgstr "Visuaalinen apu" -#: wp-includes/class-wp-editor.php:1028 -msgid "Source code" -msgstr "Lähdekoodi" +#: wp-includes/class-wp-editor.php:1034 +msgid "Align left" +msgstr "Tasaa vasemmalle" -#: wp-includes/class-wp-editor.php:1073 -msgid "Robots" -msgstr "Robotit" +#: wp-includes/class-wp-editor.php:1035 +msgid "Justify" +msgstr "Tasaa teksti molempiin reunoihin" -#: wp-includes/class-wp-editor.php:1076 -msgid "Encoding" -msgstr "Koodaus" +#: wp-includes/class-wp-editor.php:1227 +msgid "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off." +msgstr "Teksti liitetään nyt muotoilemattomana, kunnes poistat tämän asetuksen käytöstä." -#: wp-includes/class-wp-editor.php:1118 -msgid "Horizontal line" -msgstr "Vaakasuora erotin" +#: wp-includes/class-wp-editor.php:1037 +msgid "Decrease indent" +msgstr "Poista sisennys" -#: wp-includes/class-wp-editor.php:1094 -msgid "Insert date/time" -msgstr "Lisää päivämäärä/aika" +#: wp-includes/class-wp-editor.php:1032 +msgid "Align center" +msgstr "Keskitä" -#: wp-includes/class-wp-editor.php:1102 -msgid "Paste your embed code below:" -msgstr "Upota koodi tähän:" +#: wp-includes/class-wp-editor.php:1024 +msgid "Clear formatting" +msgstr "Poista muotoilut" -#: wp-includes/class-wp-editor.php:1103 -msgid "Insert video" -msgstr "Lisää video" +#: wp-includes/class-wp-editor.php:1036 +msgid "Increase indent" +msgstr "Sisennä" -#: wp-includes/class-wp-editor.php:1104 -msgid "Embed" -msgstr "Upota" +#: wp-includes/class-wp-editor.php:1052 wp-includes/script-loader.php:114 +msgid "Numbered list" +msgstr "Numeroitu lista" -#: wp-includes/class-wp-editor.php:1111 -msgid "Nonbreaking space" -msgstr "Sitova välilyönti" +#: wp-includes/class-wp-editor.php:1033 +msgid "Align right" +msgstr "Tasaa oikealle" -#: wp-includes/class-wp-editor.php:1112 -msgid "Page break" -msgstr "Sivunvaihto" +#: wp-includes/class-wp-customize-widgets.php:788 +#: wp-includes/script-loader.php:718 wp-includes/script-loader.php:742 +msgid "An error has occurred. Please reload the page and try again." +msgstr "Tapahtui virhe. Lataa sivu ja kokeile uudelleen." -#: wp-includes/class-wp-editor.php:1113 -msgid "Paste as text" -msgstr "Liitä muotoilemattomana" +#: wp-includes/class-wp-customize-widgets.php:722 +msgid "Select an area to move this widget into:" +msgstr "Valitse alue, johon tämä vimpain siirretään:" -#: wp-includes/media-template.php:892 wp-includes/media.php:3494 -msgid "Replace" -msgstr "Korvaa" +#: wp-includes/class-wp-customize-nav-menus.php:930 +#: wp-includes/class-wp-customize-widgets.php:716 +msgid "Move up" +msgstr "Siirrä ylöspäin" -#: wp-includes/class-wp-editor.php:1110 -msgid "Emoticons" -msgstr "Hymiöt" +#: wp-includes/class-wp-customize-nav-menus.php:931 +#: wp-includes/class-wp-customize-widgets.php:715 +msgid "Move down" +msgstr "Siirrä alaspäin" -#: wp-includes/class-wp-editor.php:1152 -msgid "Find and replace" -msgstr "Etsi ja korvaa" +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:55 +#: wp-includes/customize/class-wp-widget-area-customize-control.php:64 +msgid "Reorder" +msgstr "Vaihda järjestystä" -#: wp-includes/class-wp-editor.php:1156 -msgid "Match case" -msgstr "Huomioi isot ja pienet kirjaimet" +#: wp-includes/class-wp-customize-widgets.php:838 +#: wp-includes/customize/class-wp-widget-area-customize-control.php:61 +msgid "Add a Widget" +msgstr "Lisää vimpain" -#: wp-includes/class-wp-editor.php:1172 -msgid "Rows" -msgstr "Rivit" +#: wp-includes/customize/class-wp-customize-header-image-control.php:219 +msgctxt "custom headers" +msgid "Suggested" +msgstr "Suositellut" -#: wp-includes/class-wp-editor.php:1212 -msgid "Cell padding" -msgstr "Solujen reunukset" +#: wp-includes/customize/class-wp-customize-header-image-control.php:212 +msgctxt "custom headers" +msgid "Previously uploaded" +msgstr "Aiemmin siirretty" -#: wp-includes/class-wp-editor.php:1213 -msgid "Cell spacing" -msgstr "Solujen välit" +#: wp-includes/customize/class-wp-customize-header-image-control.php:198 +msgid "Current header" +msgstr "Nykyinen otsakekuva" -#: wp-includes/class-wp-editor.php:1210 -msgid "Row type" -msgstr "Rivin tyyppi" +#: wp-includes/customize/class-wp-customize-header-image-control.php:140 +msgid "No image set" +msgstr "Kuvaa ei ole asetettu" -#: wp-includes/class-wp-editor.php:1164 -msgid "Insert table" -msgstr "Lisää taulukko" +#: wp-includes/customize/class-wp-customize-header-image-control.php:128 +msgid "Randomizing suggested headers" +msgstr "Satunnaistetaan" -#: wp-includes/class-wp-editor.php:1176 -msgid "Header cell" -msgstr "Otsikkosolu" +#: wp-includes/customize/class-wp-customize-header-image-control.php:126 +msgid "Randomizing uploaded headers" +msgstr "Satunnaistetaan" -#: wp-includes/class-wp-editor.php:1211 -msgid "Cell type" -msgstr "Solun tyyppi" +#: wp-includes/customize/class-wp-customize-header-image-control.php:99 +msgid "Randomize suggested headers" +msgstr "Järjestä ehdotetut otsakekuvat satunnaisesti" -#: wp-includes/class-wp-editor.php:1208 -msgid "Row group" -msgstr "Riviryhmä" +#: wp-includes/customize/class-wp-customize-header-image-control.php:97 +msgid "Randomize uploaded headers" +msgstr "Järjestä otsakekuvat satunnaisesti" -#: wp-includes/class-wp-editor.php:1188 -msgid "Delete column" -msgstr "Poista sarake" +#: wp-includes/admin-bar.php:172 +msgid "https://wordpress.org/support/forum/requests-and-feedback" +msgstr "https://wordpress.org/support/forum/requests-and-feedback" -#: wp-includes/class-wp-editor.php:1219 -msgid "Background color" -msgstr "Taustaväri" +#: wp-includes/admin-bar.php:164 wp-includes/update.php:129 +#: wp-includes/update.php:321 wp-includes/update.php:499 +#: wp-includes/wp-db.php:1129 wp-includes/wp-db.php:1601 +#: wp-includes/wp-db.php:1705 wp-login.php:796 +msgid "https://wordpress.org/support/" +msgstr "https://fi.forums.wordpress.org/" -#: wp-includes/class-wp-editor.php:1220 -msgid "Text color" -msgstr "Tekstin väri" +#: wp-includes/admin-bar.php:148 +#: wp-includes/widgets/class-wp-widget-meta.php:69 wp-login.php:103 +msgid "https://wordpress.org/" +msgstr "https://fi.wordpress.org/" -#: wp-includes/class-wp-editor.php:1222 -msgid "Show invisible characters" -msgstr "Näytä piilotetut merkit" +#: wp-includes/class-wp-editor.php:1075 +msgid "Keywords" +msgstr "Avainsanat" -#: wp-includes/class-wp-editor.php:1248 wp-includes/script-loader.php:120 -msgid "Insert Read More tag" -msgstr "Lue lisää -tagi" +#: wp-includes/class-wp-editor.php:1101 +msgid "Alternative source" +msgstr "Vaihtoehtoinen lähde" -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:55 -#: wp-includes/customize/class-wp-widget-area-customize-control.php:64 -msgid "Reorder" -msgstr "Vaihda järjestystä" +#: wp-includes/class-wp-editor.php:1090 +msgid "Style" +msgstr "Tyyli" -#: wp-includes/class-wp-editor.php:1130 -msgid "Text to display" -msgstr "Linkkiteksti" +#: wp-includes/class-wp-editor.php:1092 wp-includes/script-loader.php:111 +msgid "Insert image" +msgstr "Lisää kuva" -#: wp-includes/class-wp-editor.php:1129 -msgid "New window" -msgstr "Uusi ikkuna" +#: wp-includes/class-wp-editor.php:1247 +msgid "Toolbar Toggle" +msgstr "Näytä/piilota työkalupalkki" -#: wp-includes/general-template.php:3488 -msgctxt "admin color scheme" -msgid "Sunrise" -msgstr "Auringonnousu" +#: wp-includes/class-wp-editor.php:1209 +msgid "Column group" +msgstr "Sarakeryhmä" -#: wp-includes/general-template.php:3494 +#: wp-includes/class-wp-editor.php:1146 +msgid "Could not find the specified string." +msgstr "Haettua merkkijonoa ei löytynyt." + +#: wp-includes/general-template.php:3506 msgctxt "admin color scheme" -msgid "Ectoplasm" -msgstr "Ektoplasma" +msgid "Coffee" +msgstr "Kahvi" #: wp-includes/general-template.php:3500 msgctxt "admin color scheme" msgid "Ocean" msgstr "Valtameri" -#: wp-includes/general-template.php:3506 +#: wp-includes/general-template.php:3494 msgctxt "admin color scheme" -msgid "Coffee" -msgstr "Kahvi" +msgid "Ectoplasm" +msgstr "Ektoplasma" + +#: wp-includes/general-template.php:3488 +msgctxt "admin color scheme" +msgid "Sunrise" +msgstr "Auringonnousu" #: wp-includes/class-wp-image-editor.php:288 msgid "Attempted to set image quality outside of the range [1,100]." msgstr "Kuvanlaadun asetuksen on oltava välillä 1—100." -#: wp-includes/widgets/class-wp-widget-pages.php:28 -msgid "A list of your site’s Pages." -msgstr "Lista sivustosi sivuista." +#: wp-includes/widgets/class-wp-nav-menu-widget.php:27 +msgid "Add a custom menu to your sidebar." +msgstr "Mukautettu valikko." -#: wp-includes/widgets/class-wp-widget-search.php:28 -msgid "A search form for your site." -msgstr "Hakulomake sivustollesi." +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:27 +msgid "A cloud of your most used tags." +msgstr "Avainsanapilvi käytetyimmistä avainsanoista." -#: wp-includes/widgets/class-wp-widget-archives.php:28 -msgid "A monthly archive of your site’s Posts." -msgstr "Kuukausikohtainen arkisto sivustosi artikkeleista." +#: wp-includes/widgets/class-wp-widget-rss.php:27 +msgid "Entries from any RSS or Atom feed." +msgstr "Merkinnät mistä tahansa RSS- tai Atom-syötteestä." -#: wp-includes/widgets/class-wp-widget-meta.php:30 -msgid "Login, RSS, & WordPress.org links." -msgstr "Linkkejä kirjautumiseen, RSS-syötteisiin ja WordPress.org:iin." +#: wp-includes/widgets/class-wp-widget-recent-comments.php:28 +msgid "Your site’s most recent comments." +msgstr "Sivustosi uusimmat kommentit." -#: wp-includes/widgets/class-wp-widget-calendar.php:38 -msgid "A calendar of your site’s Posts." -msgstr "Kalenterimuotoinen näkymä sivustosi artikkeleista." +#: wp-includes/widgets/class-wp-widget-recent-posts.php:28 +msgid "Your site’s most recent Posts." +msgstr "Sivustosi uusimmat artikkelit." #: wp-includes/widgets/class-wp-widget-categories.php:28 msgid "A list or dropdown of categories." msgstr "Lista tai pudotusvalikko sivustosi kategorioista." -#: wp-includes/widgets/class-wp-widget-recent-posts.php:28 -msgid "Your site’s most recent Posts." -msgstr "Sivustosi uusimmat artikkelit." +#: wp-includes/widgets/class-wp-widget-calendar.php:38 +msgid "A calendar of your site’s Posts." +msgstr "Kalenterimuotoinen näkymä sivustosi artikkeleista." -#: wp-includes/widgets/class-wp-widget-recent-comments.php:28 -msgid "Your site’s most recent comments." -msgstr "Sivustosi uusimmat kommentit." +#: wp-includes/widgets/class-wp-widget-meta.php:30 +msgid "Login, RSS, & WordPress.org links." +msgstr "Linkkejä kirjautumiseen, RSS-syötteisiin ja WordPress.org:iin." -#: wp-includes/widgets/class-wp-widget-rss.php:27 -msgid "Entries from any RSS or Atom feed." -msgstr "Merkinnät mistä tahansa RSS- tai Atom-syötteestä." +#: wp-includes/widgets/class-wp-widget-archives.php:28 +msgid "A monthly archive of your site’s Posts." +msgstr "Kuukausikohtainen arkisto sivustosi artikkeleista." -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:27 -msgid "A cloud of your most used tags." -msgstr "Avainsanapilvi käytetyimmistä avainsanoista." +#: wp-includes/widgets/class-wp-widget-search.php:28 +msgid "A search form for your site." +msgstr "Hakulomake sivustollesi." -#: wp-includes/widgets/class-wp-nav-menu-widget.php:27 -msgid "Add a custom menu to your sidebar." -msgstr "Mukautettu valikko." +#: wp-includes/widgets/class-wp-widget-pages.php:28 +msgid "A list of your site’s Pages." +msgstr "Lista sivustosi sivuista." #. translators: If there are characters in your language that are not supported #. by Open Sans, translate this to 'off'. Do not translate into your own @@ -6300,6 +6300,12 @@ msgctxt "Open Sans font: on or off" msgid "on" msgstr "on" +#. translators: %s: support forums URL +#: wp-includes/update.php:128 wp-includes/update.php:320 +#: wp-includes/update.php:498 +msgid "An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href=\"%s\">support forums</a>." +msgstr "Tapahtui odottamaton virhe. WordPress.orgissa tai tämän palvelimen asetuksissa saattaa olla jotain vikaa. Jos ongelmat jatkuvat, voit kokeilla <a href=\"%s\">tukifoorumia</a>." + #. translators: To add an additional Open Sans character subset specific to #. your language, translate this to 'greek', 'cyrillic' or 'vietnamese'. Do not #. translate into your own language. @@ -6327,12 +6333,6 @@ msgctxt "admin color scheme" msgid "Default" msgstr "Oletus" -#. translators: %s: support forums URL -#: wp-includes/update.php:128 wp-includes/update.php:320 -#: wp-includes/update.php:498 -msgid "An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href=\"%s\">support forums</a>." -msgstr "Tapahtui odottamaton virhe. WordPress.orgissa tai tämän palvelimen asetuksissa saattaa olla jotain vikaa. Jos ongelmat jatkuvat, voit kokeilla <a href=\"%s\">tukifoorumia</a>." - #: wp-includes/admin-bar.php:187 msgid "Menu" msgstr "Valikko" @@ -6345,14 +6345,6 @@ msgstr "Käännöspäivitykset" msgid "The theme directory \"%s\" does not exist." msgstr "Teeman hakemistoa \"%s\" ei ole olemassa." -#: wp-includes/functions.php:1225 -msgid "ERROR: This is not a valid feed template." -msgstr "VIRHE: Tämä ei ole kelvollinen syötteen pohja." - -#: wp-includes/post-template.php:1602 -msgid "This content is password protected. To view it please enter your password below:" -msgstr "Tämä sisältö on suojattu salasanalla. Syötä salasanasi näyttääksesi sisällön:" - #. translators: This is a comma-separated list of very common words that should #. be excluded from a search, like a, an, and the. These are usually called #. "stopwords". You should not simply translate these individual words into @@ -6363,70 +6355,78 @@ msgctxt "Comma-separated list of search stopwords in your language" msgid "about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www" msgstr "a, aina, ainakin, aivan, alla, alle, amp, an, asti, auki, author, com, ehkä, ei, eikä, eivät, emme, en, eri, et, ette, että, fax, fi, he, heidän, heidät, heihin, heille, heillä, heiltä, heissä, heistä, heitä, hieman, html, http, hyvin, hän, häneen, hänelle, hänellä, häneltä, hänen, hänessä, hänestä, hänet, häntä, ihan, ilman, itse, ja, jo, johon, joiden, joihin, joiksi, joilla, joille, joilta, joina, joissa, joista, joita, joka, joko, joksi, jolla, jolle, jolta, jona, jonka, jopa, jos, joskus, jossa, josta, jota, jotain, jotka, juuri, kai, kaikki, kanssa, keiden, keihin, keiksi, keille, keillä, keiltä, keinä, keissä, keistä, keitä, keneen, keneksi, kenelle, kenellä, keneltä, kenen, kenenä, kenessä, kenestä, kenet, kenties, keskellä, kesken, ketkä, ketä, klo, koko, koska, koskaan, kuin, kuinka, kuitenkaan, kuitenkin, kuka, kun, kuten, kyllä, li, liian, lisäksi, lisää, lla, lopulta, lue, luona, lähellä, läpi, me, meidän, meidät, meihin, meille, meillä, meiltä, meissä, meistä, meitä, mihin, miksi, mikä, mille, milloin, milloinkaan, millä, miltä, minkä, minua, minulla, minulle, minulta, minun, minussa, minusta, minut, minuun, minä, missä, mistä, miten, mitkä, mitä, mitään, mukaan, mutta, muut, muuta, myäs, myös, ne, net, niiden, niihin, niiksi, niille, niillä, niiltä, niin, niinä, niissä, niistä, niitä, noiden, noihin, noiksi, noilla, noille, noilta, noin, noina, noissa, noista, noita, nuo, nyt, näiden, näihin, näiksi, näille, näillä, näiltä, näin, näinä, näissä, näistä, näitä, nämä, ole, olemme, olen, olet, olette, oli, olimme, olin, olisi, olisimme, olisin, olisit, olisitte, olisivat, olit, olitte, olivat, olla, olleet, ollut, on, onkin, org, ovat, puh, saa, saada, saat, se, sekä, sen, siellä, siihen, siinä, siis, siitä, siksi, sille, sillä, silti, siltä, sinua, sinulla, sinulle, sinulta, sinun, sinussa, sinusta, sinut, sinuun, sinä, sis, sitten, sitä, sivu, span, ssa, sta, taas, tai, te, teidän, teidät, teihin, teille, teillä, teiltä, teissä, teistä, teitä, tms, tuo, tuoda, tuohon, tuoksi, tuolla, tuolle, tuolta, tuon, tuona, tuossa, tuosta, tuota, tähän, täksi, tälle, tällä, tältä, tämä, tämän, tänä, tässä, tästä, tätä, ul, vaan, vai, vaikka, vain, varsin, vielä, viim, voi, voida, voisi, voit, wp, www, yhtä, yksi, yli, yms" -#: wp-includes/class-wp-http-curl.php:257 -#: wp-includes/class-wp-http-streams.php:256 -msgid "Failed to write request to temporary file." -msgstr "Pyynnön kirjoittaminen väliaikaistiedostoon epäonnistui" +#: wp-includes/post-template.php:1602 +msgid "This content is password protected. To view it please enter your password below:" +msgstr "Tämä sisältö on suojattu salasanalla. Syötä salasanasi näyttääksesi sisällön:" + +#: wp-includes/functions.php:1225 +msgid "ERROR: This is not a valid feed template." +msgstr "VIRHE: Tämä ei ole kelvollinen syötteen pohja." #: wp-includes/class-wp-http-streams.php:156 #: wp-includes/class-wp-http-streams.php:164 msgid "The SSL certificate for the host could not be verified." msgstr "Palvelimen SSL-sertifikaattia ei voitu vahvistaa." +#: wp-includes/class-wp-http-curl.php:257 +#: wp-includes/class-wp-http-streams.php:256 +msgid "Failed to write request to temporary file." +msgstr "Pyynnön kirjoittaminen väliaikaistiedostoon epäonnistui" + #: wp-includes/media-template.php:651 msgid "Embed Media Player" msgstr "Upota mediasoitin" -#: wp-includes/media-template.php:355 wp-includes/media-template.php:533 -msgid "Length:" -msgstr "Pituus:" - -#: wp-includes/media-template.php:638 -msgid "Embed or Link" -msgstr "Upotuskoodi tai linkki" +#: wp-includes/media-template.php:668 +msgid "Link to Attachment Page" +msgstr "Linkki liitesivulle" #: wp-includes/media-template.php:661 msgid "Link to Media File" msgstr "Linkki mediatiedostoon" -#: wp-includes/media-template.php:668 -msgid "Link to Attachment Page" -msgstr "Linkki liitesivulle" +#: wp-includes/media-template.php:638 +msgid "Embed or Link" +msgstr "Upotuskoodi tai linkki" -#: wp-includes/script-loader.php:355 -msgid "Download File" -msgstr "Lataa tiedosto" +#: wp-includes/media-template.php:355 wp-includes/media-template.php:533 +msgid "Length:" +msgstr "Pituus:" -#: wp-includes/script-loader.php:356 -msgid "Download Video" -msgstr "Lataa video" - -#: wp-includes/script-loader.php:367 -msgid "Mute Toggle" -msgstr "Ääni päälle/pois" - -#: wp-includes/script-loader.php:353 -msgid "Turn off Fullscreen" -msgstr "Poistu koko näytön tilasta" +#: wp-includes/script-loader.php:359 +msgid "Captions/Subtitles" +msgstr "Tekstitys" #: wp-includes/script-loader.php:368 msgid "Unmute" msgstr "Ääni päälle" -#: wp-includes/script-loader.php:359 -msgid "Captions/Subtitles" -msgstr "Tekstitys" - #: wp-includes/script-loader.php:354 msgid "Go Fullscreen" msgstr "Siirry koko näytön kirjoitustilaan" -#. translators: Time difference between two dates, in weeks. 1: Number of weeks -#: wp-includes/formatting.php:3246 -msgid "%s week" -msgid_plural "%s weeks" -msgstr[0] "%s viikko" -msgstr[1] "%s viikkoa" +#: wp-includes/script-loader.php:353 +msgid "Turn off Fullscreen" +msgstr "Poistu koko näytön tilasta" + +#: wp-includes/script-loader.php:367 +msgid "Mute Toggle" +msgstr "Ääni päälle/pois" + +#: wp-includes/script-loader.php:356 +msgid "Download Video" +msgstr "Lataa video" + +#: wp-includes/script-loader.php:355 +msgid "Download File" +msgstr "Lataa tiedosto" + +#. translators: Time difference between two dates, in years. 1: Number of years +#: wp-includes/formatting.php:3258 +msgid "%s year" +msgid_plural "%s years" +msgstr[0] "%s vuosi" +msgstr[1] "%s vuotta" #. translators: Time difference between two dates, in months. 1: Number of #. months @@ -6436,12 +6436,12 @@ msgid_plural "%s months" msgstr[0] "%s kuukausi" msgstr[1] "%s kuukautta" -#. translators: Time difference between two dates, in years. 1: Number of years -#: wp-includes/formatting.php:3258 -msgid "%s year" -msgid_plural "%s years" -msgstr[0] "%s vuosi" -msgstr[1] "%s vuotta" +#. translators: Time difference between two dates, in weeks. 1: Number of weeks +#: wp-includes/formatting.php:3246 +msgid "%s week" +msgid_plural "%s weeks" +msgstr[0] "%s viikko" +msgstr[1] "%s viikkoa" #. translators: %d: ID of a post #: wp-includes/class-walker-page-dropdown.php:74 @@ -6457,48 +6457,49 @@ msgstr "#%d (ei otsikkoa)" msgid "JavaScript must be enabled to use this feature." msgstr "JavaScript on otettava käyttöön tämän toiminnon käyttämiseksi." -#. translators: localized date format, see https://secure.php.net/date -#: wp-includes/class-wp-locale.php:398 wp-includes/media.php:3108 -msgid "F j, Y" -msgstr "j.n.Y" +#. translators: localized date and time format, see https://secure.php.net/date +#: wp-includes/class-wp-locale.php:402 +msgid "F j, Y g:i a" +msgstr "j. F\\t\\a Y \\k\\l\\o H:i" #. translators: localized time format, see https://secure.php.net/date #: wp-includes/class-wp-locale.php:400 msgid "g:i a" msgstr "H:i" -#. translators: localized date and time format, see https://secure.php.net/date -#: wp-includes/class-wp-locale.php:402 -msgid "F j, Y g:i a" -msgstr "j. F\\t\\a Y \\k\\l\\o H:i" - -#: wp-includes/class-wp-xmlrpc-server.php:437 -msgid "Login Address (URL)" -msgstr "Kirjautumisosoite (URL)" +#. translators: localized date format, see https://secure.php.net/date +#: wp-includes/class-wp-locale.php:398 wp-includes/media.php:3108 +msgid "F j, Y" +msgstr "j.n.Y" #: wp-includes/class-wp-xmlrpc-server.php:442 msgid "The URL to the admin area" msgstr "Ohjausnäkymän URL" +#: wp-includes/class-wp-xmlrpc-server.php:437 +msgid "Login Address (URL)" +msgstr "Kirjautumisosoite (URL)" + #: wp-includes/media-template.php:194 msgid "The web browser on your device cannot be used to upload files. You may be able to use the <a href=\"%s\">native app for your device</a> instead." msgstr "Web-selaintasi ei voida käyttää tiedostojen siirtoon. Voit ehkä käyttää laitteellesi tehtyä <a href=\"%s\">mobiilisovellusta</a>." -#: wp-includes/post-template.php:273 -msgid "(more…)" -msgstr "(lisää…)" +#: wp-includes/user.php:2353 +msgid "<strong>ERROR</strong>: Couldn’t register you… please contact the <a href=\"mailto:%s\">webmaster</a> !" +msgstr "<strong>VIRHE</strong>: Rekisteröitymisesi ei onnistunut… ota yhteyttä <a href=\"mailto:%s\">ylläpitäjään</a> !" #: wp-login.php:375 msgid "Possible reason: your host may have disabled the mail() function." msgstr "Mahdollinen syy: palveluntarjoajasi on kenties estänyt mail()-funktion käytön." -#: wp-includes/user.php:2353 -msgid "<strong>ERROR</strong>: Couldn’t register you… please contact the <a href=\"mailto:%s\">webmaster</a> !" -msgstr "<strong>VIRHE</strong>: Rekisteröitymisesi ei onnistunut… ota yhteyttä <a href=\"mailto:%s\">ylläpitäjään</a> !" +#: wp-includes/post-template.php:273 +msgid "(more…)" +msgstr "(lisää…)" -#: wp-includes/script-loader.php:157 -msgid "Your session has expired. You can log in again from this page or go to the login page." -msgstr "Kirjautumisesi on vanhentunut. Voit kirjautua uudelleen tältä sivulta tai mennä sisäänkirjautumissivulle." +#. translators: %s: site address +#: wp-signup.php:896 +msgid "The site you were looking for, %s, does not exist, but you can create it now!" +msgstr "Etsimääsi sivustoa %s ei ole olemassa, mutta voit luoda sen nyt!" #. translators: %s: email address #: wp-signup.php:764 @@ -6510,10 +6511,9 @@ msgstr "Kirjoititko sähköpostiosoitteesi oikein? Antamasi osoite on %s, jos se msgid "%1$s %2$s, %3$s @ %4$s:%5$s" msgstr "%2$s. %1$s, %3$s klo %4$s.%5$s" -#. translators: %s: site address -#: wp-signup.php:896 -msgid "The site you were looking for, %s, does not exist, but you can create it now!" -msgstr "Etsimääsi sivustoa %s ei ole olemassa, mutta voit luoda sen nyt!" +#: wp-includes/script-loader.php:157 +msgid "Your session has expired. You can log in again from this page or go to the login page." +msgstr "Kirjautumisesi on vanhentunut. Voit kirjautua uudelleen tältä sivulta tai mennä sisäänkirjautumissivulle." #: wp-includes/functions.php:5275 msgid "The login page will open in a new window. After logging in you can close it and return to this page." @@ -6525,20 +6525,20 @@ msgstr "Kirjautumissivu aukeaa uuteen ikkunaan. Sisäänkirjautumisen jälkeen v msgid "%s <span class=\"says\">says:</span>" msgstr "%s <span class=\"says\">sanoo:</span>" -#: wp-includes/general-template.php:225 -msgctxt "placeholder" -msgid "Search …" -msgstr "Haku …" +#: wp-includes/general-template.php:227 wp-includes/general-template.php:234 +msgctxt "submit button" +msgid "Search" +msgstr "Hae" #: wp-includes/general-template.php:224 wp-includes/general-template.php:232 msgctxt "label" msgid "Search for:" msgstr "Haku:" -#: wp-includes/general-template.php:227 wp-includes/general-template.php:234 -msgctxt "submit button" -msgid "Search" -msgstr "Hae" +#: wp-includes/general-template.php:225 +msgctxt "placeholder" +msgid "Search …" +msgstr "Haku …" #: wp-includes/functions.php:5273 wp-includes/script-loader.php:470 msgid "Session expired" @@ -6558,14 +6558,14 @@ msgstr "WordPress.org" msgid "Do not deregister the %1$s script in the administration area. To target the front-end theme, use the %2$s hook." msgstr "Älä poista käytöstä skriptiä %1$s ylläpidossa. Kohdista muutos julkiseen teemaan käyttämällä %2$s -koukkua (hook)." -#: wp-includes/class-wp-xmlrpc-server.php:427 -msgid "WordPress Address (URL)" -msgstr "WordPressin osoite (URL)" - #: wp-includes/class-wp-xmlrpc-server.php:432 msgid "Site Address (URL)" msgstr "Sivuston osoite (URL)" +#: wp-includes/class-wp-xmlrpc-server.php:427 +msgid "WordPress Address (URL)" +msgstr "WordPressin osoite (URL)" + #: wp-includes/class-wp-xmlrpc-server.php:2449 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:339 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:602 @@ -6574,13 +6574,17 @@ msgstr "Sivuston osoite (URL)" msgid "Invalid user ID." msgstr "Virheellinen käyttäjän ID." +#: wp-includes/media-template.php:485 +msgid "Caption this image…" +msgstr "Lisää kuvateksti…" + #: wp-includes/media-template.php:754 msgid "Random Order" msgstr "Satunnainen järjestys" -#: wp-includes/media-template.php:485 -msgid "Caption this image…" -msgstr "Lisää kuvateksti…" +#: wp-includes/media.php:3542 +msgid "Insert from URL" +msgstr "URL-osoitteesta" #. translators: This is a would-be plural string used in the media manager. #. If there is not a word you can use in your language to avoid issues with @@ -6590,23 +6594,19 @@ msgstr "Lisää kuvateksti…" msgid "%d selected" msgstr "%d valittu" -#: wp-includes/media.php:3542 -msgid "Insert from URL" -msgstr "URL-osoitteesta" - #: wp-includes/widgets/class-wp-widget-links.php:147 msgctxt "Links widget" msgid "Random" msgstr "Satunnainen" -#: wp-includes/media-template.php:1236 wp-includes/media.php:3517 -msgid "No items found." -msgstr "Kohteita ei löytynyt." - #: wp-includes/media.php:3555 msgid "Add to Gallery" msgstr "Lisää galleriaan" +#: wp-includes/media-template.php:1236 wp-includes/media.php:3517 +msgid "No items found." +msgstr "Kohteita ei löytynyt." + #: wp-includes/media.php:3556 msgid "Reverse order" msgstr "Käänteinen järjestys" @@ -6633,18 +6633,13 @@ msgstr "Tiedostokoon raja ylitetty" msgid "Dismiss Errors" msgstr "Hylkää virheet" -#: wp-includes/media.php:2921 -msgid "No editor could be selected." -msgstr "Muokkainta ei voitu ottaa käyttöön." - #: wp-includes/media-template.php:263 msgid "Uploading" msgstr "Siirretään" -#: wp-includes/post.php:2289 -#: wp-includes/widgets/class-wp-widget-media-video.php:26 -msgid "Video" -msgstr "Video" +#: wp-includes/media.php:2921 +msgid "No editor could be selected." +msgstr "Muokkainta ei voitu ottaa käyttöön." #: wp-includes/post.php:2289 msgid "Video <span class=\"count\">(%s)</span>" @@ -6652,51 +6647,56 @@ msgid_plural "Video <span class=\"count\">(%s)</span>" msgstr[0] "Video <span class=\"count\">(%s)</span>" msgstr[1] "Videot <span class=\"count\">(%s)</span>" -#: wp-includes/post.php:2287 -msgid "Image <span class=\"count\">(%s)</span>" -msgid_plural "Images <span class=\"count\">(%s)</span>" -msgstr[0] "Kuva <span class=\"count\">(%s)</span>" -msgstr[1] "Kuvat <span class=\"count\">(%s)</span>" - -#: wp-includes/post.php:2287 -msgid "Manage Images" -msgstr "Hallinnoi kuvia" - -#: wp-includes/post.php:2288 -msgid "Manage Audio" -msgstr "Hallinnoi äänitiedostoja" - #: wp-includes/post.php:2289 msgid "Manage Video" msgstr "Hallinnoi videoita" +#: wp-includes/post.php:2289 +#: wp-includes/widgets/class-wp-widget-media-video.php:26 +msgid "Video" +msgstr "Video" + #: wp-includes/post.php:2288 msgid "Audio <span class=\"count\">(%s)</span>" msgid_plural "Audio <span class=\"count\">(%s)</span>" msgstr[0] "Ääni <span class=\"count\">(%s)</span>" msgstr[1] "Ääni <span class=\"count\">(%s)</span>" -#: wp-includes/post.php:1385 -msgid "Insert into page" -msgstr "Lisää sivulle" +#: wp-includes/post.php:2288 +msgid "Manage Audio" +msgstr "Hallinnoi äänitiedostoja" + +#: wp-includes/post.php:2287 +msgid "Image <span class=\"count\">(%s)</span>" +msgid_plural "Images <span class=\"count\">(%s)</span>" +msgstr[0] "Kuva <span class=\"count\">(%s)</span>" +msgstr[1] "Kuvat <span class=\"count\">(%s)</span>" + +#: wp-includes/post.php:2287 +msgid "Manage Images" +msgstr "Hallinnoi kuvia" #: wp-includes/post.php:1386 msgid "Uploaded to this page" msgstr "Liitetty tähän sivuun" +#: wp-includes/post.php:1385 +msgid "Insert into page" +msgstr "Lisää sivulle" + #: wp-includes/post.php:2288 #: wp-includes/widgets/class-wp-widget-media-audio.php:26 msgid "Audio" msgstr "Ääni" -#: wp-includes/media.php:3515 -msgid "All media items" -msgstr "Kaikki mediatiedostot" - #: wp-includes/post.php:1386 msgid "Uploaded to this post" msgstr "Liitetty tähän artikkeliin" +#: wp-includes/media.php:3515 +msgid "All media items" +msgstr "Kaikki mediatiedostot" + #: wp-includes/media.php:3514 msgid "← Return to library" msgstr "← Palaa kirjastoon" @@ -6706,15 +6706,15 @@ msgstr "← Palaa kirjastoon" msgid "Custom URL" msgstr "Muu URL" +#: wp-includes/media-template.php:740 +msgid "Columns" +msgstr "Sarakkeet" + #: wp-includes/media-template.php:403 wp-includes/media-template.php:584 #: wp-includes/media-template.php:843 msgid "Alt Text" msgstr "Vaihtoehtoinen teksti" -#: wp-includes/media-template.php:740 -msgid "Columns" -msgstr "Sarakkeet" - #: wp-includes/media-template.php:501 wp-includes/media.php:3539 msgid "Attachment Details" msgstr "Liitteen tiedot" @@ -6724,6 +6724,14 @@ msgstr "Liitteen tiedot" msgid "Large" msgstr "Iso" +#: wp-includes/media.php:3551 +msgid "← Cancel Gallery" +msgstr "← Peru galleria" + +#: wp-includes/media.php:3506 +msgid "Upload Images" +msgstr "Siirrä kuvia" + #: wp-includes/media-template.php:715 msgid "Gallery Settings" msgstr "Gallerian asetukset" @@ -6732,26 +6740,18 @@ msgstr "Gallerian asetukset" msgid "Attachment Display Settings" msgstr "Liitteen esitystapa" -#: wp-includes/media.php:3506 -msgid "Upload Images" -msgstr "Siirrä kuvia" - -#: wp-includes/media.php:3551 -msgid "← Cancel Gallery" -msgstr "← Peru galleria" - #: wp-includes/ms-functions.php:2065 msgid "WordPress › Success" msgstr "WordPress › OK" -#: wp-includes/media-template.php:203 -msgid "Drop files anywhere to upload" -msgstr "Pudota tiedostot tähän" - #: wp-includes/media.php:3505 msgid "Upload Files" msgstr "Siirrä tiedostoja" +#: wp-includes/media-template.php:203 +msgid "Drop files anywhere to upload" +msgstr "Pudota tiedostot tähän" + #: wp-includes/media.php:3552 msgid "Insert gallery" msgstr "Lisää galleria" @@ -6760,13 +6760,21 @@ msgstr "Lisää galleria" msgid "Drop files to upload" msgstr "Pudota siirrettävät tiedostot tähän" +#: wp-includes/media.php:3549 +msgid "Create Gallery" +msgstr "Luo galleria" + #: wp-includes/media.php:3509 msgid "Media Library" msgstr "Mediakirjasto" -#: wp-includes/media.php:3549 -msgid "Create Gallery" -msgstr "Luo galleria" +#: wp-includes/ms-functions.php:1408 +msgid "You appear to have already installed WordPress. To reinstall please clear your old database tables first." +msgstr "Näyttää siltä, että olet jo asentanut WordPressin. Jos haluat asentaa uudelleen, tyhjennä vanhat tietokantataulusi ensin." + +#: wp-includes/ms-functions.php:1408 +msgid "Already Installed" +msgstr "Asennettu" #: wp-includes/ms-functions.php:965 msgid "" @@ -6782,13 +6790,19 @@ msgstr "" "\n" "Aktivoinnin jälkeen saat vielä *toisen sähköpostiviestin*, jossa on tunnus ja salasana." -#: wp-includes/ms-functions.php:1408 -msgid "Already Installed" -msgstr "Asennettu" - -#: wp-includes/ms-functions.php:1408 -msgid "You appear to have already installed WordPress. To reinstall please clear your old database tables first." -msgstr "Näyttää siltä, että olet jo asentanut WordPressin. Jos haluat asentaa uudelleen, tyhjennä vanhat tietokantataulusi ensin." +#. translators: New user notification email. 1: User login, 2: User IP address, +#. 3: Settings screen URL +#: wp-includes/ms-functions.php:1292 +msgid "" +"New User: %1$s\n" +"Remote IP: %2$s\n" +"\n" +"Disable these notifications: %3$s" +msgstr "" +"Uusi käyttäjä: %1$s\n" +"Käyttäjän IP: %2$s\n" +"\n" +"Ota nämä ilmoitukset pois käytöstä: %3$s" #. translators: New site notification email. 1: Site URL, 2: User IP address, #. 3: Settings screen URL @@ -6806,19 +6820,10 @@ msgstr "" "\n" "Ota nämä ilmoitukset pois käytöstä: %4$s" -#. translators: New user notification email. 1: User login, 2: User IP address, -#. 3: Settings screen URL -#: wp-includes/ms-functions.php:1292 -msgid "" -"New User: %1$s\n" -"Remote IP: %2$s\n" -"\n" -"Disable these notifications: %3$s" -msgstr "" -"Uusi käyttäjä: %1$s\n" -"Käyttäjän IP: %2$s\n" -"\n" -"Ota nämä ilmoitukset pois käytöstä: %3$s" +#: wp-includes/media-template.php:663 wp-includes/media-template.php:731 +#: wp-includes/media-template.php:974 +msgid "Media File" +msgstr "Mediatiedosto" #: wp-includes/media-template.php:670 wp-includes/media-template.php:728 #: wp-includes/media-template.php:977 @@ -6831,43 +6836,44 @@ msgstr "Liitteen sivu" msgid "Link To" msgstr "Linkin kohde" -#: wp-includes/media-template.php:663 wp-includes/media-template.php:731 -#: wp-includes/media-template.php:974 -msgid "Media File" -msgstr "Mediatiedosto" - -#: wp-includes/media-template.php:489 -msgid "Describe this video…" -msgstr "Kuvaile tätä videota…" +#: wp-includes/media-template.php:493 +msgid "Describe this media file…" +msgstr "Kuvaile tätä tiedostoa…" #: wp-includes/media-template.php:491 msgid "Describe this audio file…" msgstr "Kuvaile tätä äänitiedostoa…" -#: wp-includes/media-template.php:493 -msgid "Describe this media file…" -msgstr "Kuvaile tätä tiedostoa…" +#: wp-includes/media-template.php:489 +msgid "Describe this video…" +msgstr "Kuvaile tätä videota…" #: wp-includes/media.php:3553 msgid "Update gallery" msgstr "Päivitä galleria" -#: wp-includes/ms-functions.php:446 -msgid "Please enter a valid email address." -msgstr "Syötä kelvollinen sähköpostiosoite." - #: wp-includes/user.php:2296 msgid "<strong>ERROR</strong>: This username is already registered. Please choose another one." msgstr "<strong>VIRHE</strong>: Käyttäjätunnus on jo varattu. Valitse toinen käyttäjätunnus." +#: wp-includes/ms-functions.php:446 +msgid "Please enter a valid email address." +msgstr "Syötä kelvollinen sähköpostiosoite." + #: wp-includes/ms-functions.php:160 msgid "The requested user does not exist." msgstr "Pyydettyä käyttäjää ei ole olemassa." -#: wp-includes/class-wp-image-editor-gd.php:172 -#: wp-includes/class-wp-image-editor-gd.php:197 -msgid "Image resize failed." -msgstr "Kuvan skaalaus epäonnistui." +#: wp-includes/class-wp-image-editor-gd.php:400 +#: wp-includes/class-wp-image-editor-gd.php:408 +#: wp-includes/class-wp-image-editor-gd.php:412 +#: wp-includes/class-wp-image-editor-gd.php:415 +msgid "Image Editor Save Failed" +msgstr "Kuvan tallennus epäonnistui" + +#: wp-includes/class-wp-image-editor-gd.php:362 +msgid "Image flip failed." +msgstr "Kuvan peilaus epäonnistui." #: wp-includes/class-wp-image-editor-gd.php:332 msgid "Image rotate failed." @@ -6877,9 +6883,15 @@ msgstr "Kuvan kääntö epäonnistui." msgid "Image crop failed." msgstr "Kuvan rajaus epäonnistui." -#: wp-includes/class-wp-image-editor-gd.php:362 -msgid "Image flip failed." -msgstr "Kuvan peilaus epäonnistui." +#: wp-includes/class-wp-image-editor-gd.php:172 +#: wp-includes/class-wp-image-editor-gd.php:197 +msgid "Image resize failed." +msgstr "Kuvan skaalaus epäonnistui." + +#: wp-includes/class-wp-image-editor-gd.php:109 +#: wp-includes/class-wp-image-editor-imagick.php:232 +msgid "Could not read image size." +msgstr "Kuvan kokoa ei voitu lukea." #: wp-includes/class-wp-image-editor-gd.php:105 #: wp-includes/class-wp-image-editor-imagick.php:161 @@ -6891,98 +6903,66 @@ msgstr "Tiedosto ei ole kuva." msgid "File doesn’t exist?" msgstr "Tiedostoa ei ole olemassa?" -#: wp-includes/class-wp-image-editor-gd.php:109 -#: wp-includes/class-wp-image-editor-imagick.php:232 -msgid "Could not read image size." -msgstr "Kuvan kokoa ei voitu lukea." +#. translators: 1: first name, 2: last name +#: wp-includes/user.php:1576 +msgctxt "Display name based on first name and last name" +msgid "%1$s %2$s" +msgstr "%1$s %2$s" -#: wp-includes/class-wp-image-editor-gd.php:400 -#: wp-includes/class-wp-image-editor-gd.php:408 -#: wp-includes/class-wp-image-editor-gd.php:412 -#: wp-includes/class-wp-image-editor-gd.php:415 -msgid "Image Editor Save Failed" -msgstr "Kuvan tallennus epäonnistui" +#: wp-includes/taxonomy.php:2304 +msgid "Could not insert term relationship into the database" +msgstr "Termin suhteen lisäys tietokantaan epäonnistui" -#: wp-includes/media-template.php:601 wp-includes/script-loader.php:729 -msgid "Clear" -msgstr "Tyhjennä" +#: wp-includes/script-loader.php:732 +msgid "Current Color" +msgstr "Nykyinen väri" #: wp-includes/script-loader.php:731 msgid "Select Color" msgstr "Valitse väri" -#: wp-includes/post.php:68 -msgid "View Attachment Page" -msgstr "Näytä liitteen sivu" +#: wp-includes/media-template.php:601 wp-includes/script-loader.php:729 +msgid "Clear" +msgstr "Tyhjennä" -#: wp-includes/media.php:3511 -msgid "Create a new gallery" -msgstr "Luo uusi galleria" +#: wp-includes/media.php:3554 +msgid "Add to gallery" +msgstr "Lisää galleriaan" #: wp-includes/post.php:1385 msgid "Insert into post" msgstr "Lisää tekstiin" +#: wp-includes/media.php:3511 +msgid "Create a new gallery" +msgstr "Luo uusi galleria" + #: wp-includes/media.php:3510 msgid "Insert Media" msgstr "Lisää media" -#: wp-includes/media.php:3554 -msgid "Add to gallery" -msgstr "Lisää galleriaan" - -#: wp-includes/script-loader.php:732 -msgid "Current Color" -msgstr "Nykyinen väri" - -#. translators: 1: first name, 2: last name -#: wp-includes/user.php:1576 -msgctxt "Display name based on first name and last name" -msgid "%1$s %2$s" -msgstr "%1$s %2$s" - -#: wp-includes/taxonomy.php:2304 -msgid "Could not insert term relationship into the database" -msgstr "Termin suhteen lisäys tietokantaan epäonnistui" +#: wp-includes/post.php:68 +msgid "View Attachment Page" +msgstr "Näytä liitteen sivu" -#: wp-includes/widgets/class-wp-widget-recent-posts.php:139 -msgid "Display post date?" -msgstr "Näytä artikkelin päivämäärä?" +#: wp-includes/media-template.php:205 +msgid "Select Files" +msgstr "Valitse tiedostot" #: wp-includes/media-template.php:204 msgctxt "Uploader: Drop files here - or - Select Files" msgid "or" msgstr "tai" -#: wp-includes/media-template.php:205 -msgid "Select Files" -msgstr "Valitse tiedostot" - -#: wp-includes/class-wp-xmlrpc-server.php:285 -msgid "Incorrect username or password." -msgstr "Virheellinen käyttäjätunnus tai salasana." - #: wp-includes/media-template.php:908 #: wp-includes/widgets/class-wp-widget-media-image.php:92 msgid "Alternative Text" msgstr "Vaihtoehtoinen teksti" -#: wp-includes/class-wp-xmlrpc-server.php:274 -msgid "XML-RPC services are disabled on this site." -msgstr "XML-RPC-palvelut eivät ole käytössä tällä sivustolla." - -#: wp-includes/class-wp-xmlrpc-server.php:1598 -msgid "There is a revision of this post that is more recent." -msgstr "Tästä artikkelista löytyy uudempi versio." - -#. translators: 1: blog name, 2: separator(raquo), 3: post type name -#: wp-includes/general-template.php:2677 -msgid "%1$s %2$s %3$s Feed" -msgstr "%1$s %2$s %3$s RSS-syöte" - -#: wp-includes/class-wp-xmlrpc-server.php:4957 -msgid "Sorry, you are not allowed to create pages as this user." -msgstr "Sinulla ei ole sivujen luomiseen tarvittavaa oikeutta." +#: wp-includes/class-wp-xmlrpc-server.php:4263 +#: wp-includes/class-wp-xmlrpc-server.php:4333 +msgid "Sorry, revisions are disabled." +msgstr "Versiointi on poissa käytöstä." #: wp-includes/class-wp-xmlrpc-server.php:2990 #: wp-includes/class-wp-xmlrpc-server.php:4259 @@ -6991,15 +6971,35 @@ msgstr "Sinulla ei ole sivujen luomiseen tarvittavaa oikeutta." msgid "Sorry, you are not allowed to edit posts." msgstr "Sinulla ei ole artikkelien muokkaamiseen tarvittavia oikeuksia." -#: wp-includes/class-wp-xmlrpc-server.php:4263 -#: wp-includes/class-wp-xmlrpc-server.php:4333 -msgid "Sorry, revisions are disabled." -msgstr "Versiointi on poissa käytöstä." - #: wp-includes/class-wp-xmlrpc-server.php:2655 msgid "Sorry, the user cannot be updated." msgstr "Käyttäjää ei voida päivittää." +#: wp-includes/class-wp-xmlrpc-server.php:4957 +msgid "Sorry, you are not allowed to create pages as this user." +msgstr "Sinulla ei ole sivujen luomiseen tarvittavaa oikeutta." + +#: wp-includes/widgets/class-wp-widget-recent-posts.php:139 +msgid "Display post date?" +msgstr "Näytä artikkelin päivämäärä?" + +#. translators: 1: blog name, 2: separator(raquo), 3: post type name +#: wp-includes/general-template.php:2677 +msgid "%1$s %2$s %3$s Feed" +msgstr "%1$s %2$s %3$s RSS-syöte" + +#: wp-includes/class-wp-xmlrpc-server.php:1598 +msgid "There is a revision of this post that is more recent." +msgstr "Tästä artikkelista löytyy uudempi versio." + +#: wp-includes/class-wp-xmlrpc-server.php:274 +msgid "XML-RPC services are disabled on this site." +msgstr "XML-RPC-palvelut eivät ole käytössä tällä sivustolla." + +#: wp-includes/class-wp-xmlrpc-server.php:285 +msgid "Incorrect username or password." +msgstr "Virheellinen käyttäjätunnus tai salasana." + #: wp-includes/class-wp-editor.php:184 msgctxt "Name for the Text editor tab (formerly HTML)" msgid "Text" @@ -7017,14 +7017,14 @@ msgstr "Otsakkeen tekstin väri" msgid "Colors" msgstr "Värit" -#: wp-includes/script-loader.php:461 -msgid "Save & Activate" -msgstr "Tallenna & ota käyttöön" - #: wp-includes/script-loader.php:464 msgid "Saved" msgstr "Tallennettu" +#: wp-includes/script-loader.php:461 +msgid "Save & Activate" +msgstr "Tallenna & ota käyttöön" + #: wp-includes/script-loader.php:462 msgid "Save & Publish" msgstr "Tallenna & julkaise" @@ -7061,34 +7061,34 @@ msgstr "Otsakekuva" msgid "Post Thumbnail" msgstr "Artikkelikuva" -#: wp-includes/script-loader.php:97 -msgid "text direction" -msgstr "tekstin suunta" - #: wp-includes/script-loader.php:98 msgid "Toggle Editor Text Direction" msgstr "Vaihda tekstin suunta" -#: wp-includes/ms-functions.php:571 -msgid "Please enter a site name." -msgstr "Kirjoita sivuston nimi." +#: wp-includes/script-loader.php:97 +msgid "text direction" +msgstr "tekstin suunta" -#: wp-includes/ms-functions.php:617 -msgid "Please enter a site title." -msgstr "Kirjoita sivuston otsikko." +#: wp-includes/ms-functions.php:452 +msgid "Username must be at least 4 characters." +msgstr "Käyttäjätunnuksessa on oltava ainakin 4 merkkiä." #: wp-includes/ms-functions.php:578 msgid "That name is not allowed." msgstr "Nimi ei kelpaa." -#: wp-includes/ms-functions.php:452 -msgid "Username must be at least 4 characters." -msgstr "Käyttäjätunnuksessa on oltava ainakin 4 merkkiä." +#: wp-includes/ms-functions.php:617 +msgid "Please enter a site title." +msgstr "Kirjoita sivuston otsikko." #: wp-includes/ms-functions.php:427 msgid "Please enter a username." msgstr "Kirjoita käyttäjätunnus." +#: wp-includes/ms-functions.php:571 +msgid "Please enter a site name." +msgstr "Kirjoita sivuston nimi." + #. translators: %s: minimum site name length #: wp-includes/ms-functions.php:591 msgid "Site name must be at least %s character." @@ -7100,15 +7100,15 @@ msgstr[1] "Sivuston nimessä on oltava ainakin %s merkkiä." msgid "A static page" msgstr "Staattinen sivu" -#: wp-includes/class-wp-customize-manager.php:3927 -msgid "Background Color" -msgstr "Taustaväri" - #: wp-includes/class-wp-customize-manager.php:4048 #: wp-includes/customize/class-wp-customize-background-image-control.php:30 msgid "Background Image" msgstr "Taustakuva" +#: wp-includes/class-wp-customize-manager.php:3927 +msgid "Background Color" +msgstr "Taustaväri" + #: wp-includes/customize/class-wp-customize-image-control.php:36 msgid "Change Image" msgstr "Vaihda kuva" @@ -7121,14 +7121,18 @@ msgstr "Poista kuva" msgid "Sorry, you are not allowed to edit this comment." msgstr "Valitettavasti et voi muokata tätä kommenttia." -#: wp-includes/class-wp-customize-manager.php:4191 -msgid "Front page" -msgstr "Etusivu" - #: wp-includes/class-wp-customize-manager.php:4203 msgid "Posts page" msgstr "Artikkeleiden sivu" +#: wp-includes/class-wp-customize-manager.php:4191 +msgid "Front page" +msgstr "Etusivu" + +#: wp-includes/script-loader.php:475 +msgid "Allowed Files" +msgstr "Sallitut tiedosto" + #: wp-includes/class-wp-customize-manager.php:3871 #: wp-includes/class-wp-customize-widgets.php:786 #: wp-includes/class-wp-editor.php:1253 @@ -7139,9 +7143,54 @@ msgstr "Artikkeleiden sivu" msgid "Remove" msgstr "Poista" -#: wp-includes/script-loader.php:475 -msgid "Allowed Files" -msgstr "Sallitut tiedosto" +#: wp-includes/class-wp-xmlrpc-server.php:2219 +#: wp-includes/class-wp-xmlrpc-server.php:2314 +msgid "Sorry, you are not allowed to assign terms in this taxonomy." +msgstr "Sinulla ei ole oikeuksia uusien termien lisäämiseen tässä taksonomiassa." + +#: wp-includes/class-wp-xmlrpc-server.php:2105 +msgid "Sorry, deleting the term failed." +msgstr "Termin poistaminen ei onnistunut." + +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:90 +#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:150 +msgid "Sorry, you are not allowed to manage terms in this taxonomy." +msgstr "Valitettavasti et voi hallinnoida tämän taksonomian termejä." + +#: wp-includes/class-wp-xmlrpc-server.php:2043 +msgid "Sorry, editing the term failed." +msgstr "Termin muokkaaminen ei onnistunut." + +#: wp-includes/class-wp-xmlrpc-server.php:2017 +msgid "This taxonomy is not hierarchical so you can't set a parent." +msgstr "Yläkäsitettä ei voi määritellä, koska tämä taksonomia ei ole hierarkkinen." + +#: wp-includes/class-wp-xmlrpc-server.php:1455 +#: wp-includes/class-wp-xmlrpc-server.php:2002 +#: wp-includes/class-wp-xmlrpc-server.php:2093 +#: wp-includes/class-wp-xmlrpc-server.php:2165 wp-includes/taxonomy.php:1967 +msgid "Invalid term ID." +msgstr "Väärä käsitteen ID." + +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:150 +msgid "Sorry, you are not allowed to edit terms in this taxonomy." +msgstr "Et voi muokata tämän taksonomian termejä." + +#: wp-includes/class-wp-xmlrpc-server.php:1927 +#: wp-includes/class-wp-xmlrpc-server.php:2026 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:405 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:511 +#: wp-includes/taxonomy.php:1976 wp-includes/taxonomy.php:2600 +msgid "Parent term does not exist." +msgstr "Yläkäsitettä ei ole olemassa." + +#: wp-includes/class-wp-xmlrpc-server.php:1918 +msgid "This taxonomy is not hierarchical." +msgstr "Tämä taksonomia ei ole hierarkkinen." + +#: wp-includes/class-wp-xmlrpc-server.php:1904 +msgid "Sorry, you are not allowed to create terms in this taxonomy." +msgstr "Et voi lisätä termejä tähän taksonomiaan." #: wp-includes/class-wp-tax-query.php:565 #: wp-includes/class-wp-tax-query.php:572 wp-includes/class-wp-term.php:179 @@ -7160,60 +7209,11 @@ msgstr "Sallitut tiedosto" msgid "Invalid taxonomy." msgstr "Väärä taksonomia." -#: wp-includes/class-wp-xmlrpc-server.php:1918 -msgid "This taxonomy is not hierarchical." -msgstr "Tämä taksonomia ei ole hierarkkinen." - -#: wp-includes/class-wp-xmlrpc-server.php:1927 -#: wp-includes/class-wp-xmlrpc-server.php:2026 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:405 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:511 -#: wp-includes/taxonomy.php:1976 wp-includes/taxonomy.php:2600 -msgid "Parent term does not exist." -msgstr "Yläkäsitettä ei ole olemassa." - -#: wp-includes/class-wp-xmlrpc-server.php:1455 -#: wp-includes/class-wp-xmlrpc-server.php:2002 -#: wp-includes/class-wp-xmlrpc-server.php:2093 -#: wp-includes/class-wp-xmlrpc-server.php:2165 wp-includes/taxonomy.php:1967 -msgid "Invalid term ID." -msgstr "Väärä käsitteen ID." - -#: wp-includes/class-wp-xmlrpc-server.php:2017 -msgid "This taxonomy is not hierarchical so you can't set a parent." -msgstr "Yläkäsitettä ei voi määritellä, koska tämä taksonomia ei ole hierarkkinen." - -#: wp-includes/class-wp-xmlrpc-server.php:1904 -msgid "Sorry, you are not allowed to create terms in this taxonomy." -msgstr "Et voi lisätä termejä tähän taksonomiaan." - -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:150 -msgid "Sorry, you are not allowed to edit terms in this taxonomy." -msgstr "Et voi muokata tämän taksonomian termejä." - #: wp-includes/class-wp-xmlrpc-server.php:1914 #: wp-includes/class-wp-xmlrpc-server.php:2012 msgid "The term name cannot be empty." msgstr "Termin nimi ei voi olla tyhjä." -#: wp-includes/class-wp-xmlrpc-server.php:2043 -msgid "Sorry, editing the term failed." -msgstr "Termin muokkaaminen ei onnistunut." - -#: wp-includes/class-wp-xmlrpc-server.php:2105 -msgid "Sorry, deleting the term failed." -msgstr "Termin poistaminen ei onnistunut." - -#: wp-includes/class-wp-xmlrpc-server.php:2219 -#: wp-includes/class-wp-xmlrpc-server.php:2314 -msgid "Sorry, you are not allowed to assign terms in this taxonomy." -msgstr "Sinulla ei ole oikeuksia uusien termien lisäämiseen tässä taksonomiassa." - -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:90 -#: wp-includes/rest-api/endpoints/class-wp-rest-taxonomies-controller.php:150 -msgid "Sorry, you are not allowed to manage terms in this taxonomy." -msgstr "Valitettavasti et voi hallinnoida tämän taksonomian termejä." - #: wp-includes/widgets/class-wp-widget-links.php:131 msgid "Select Link Category:" msgstr "Valitse linkin kategoria." @@ -7226,81 +7226,81 @@ msgstr "Tyylitiedosto" msgid "Template" msgstr "Sivupohja" -#: wp-includes/widgets/class-wp-widget-links.php:144 -msgid "Link title" -msgstr "Linkkiotsikko" - -#: wp-includes/widgets/class-wp-widget-links.php:145 -msgid "Link rating" -msgstr "Luokittelu" +#: wp-includes/widgets/class-wp-widget-links.php:161 +msgid "Number of links to show:" +msgstr "Näytettävien linkkien määrä:" #: wp-includes/widgets/class-wp-widget-links.php:146 msgid "Link ID" msgstr "Linkin ID" -#: wp-includes/widgets/class-wp-widget-links.php:161 -msgid "Number of links to show:" -msgstr "Näytettävien linkkien määrä:" +#: wp-includes/widgets/class-wp-widget-links.php:145 +msgid "Link rating" +msgstr "Luokittelu" -#: wp-includes/class-wp-theme.php:252 -msgid "ERROR: The themes directory is either empty or doesn’t exist. Please check your installation." -msgstr "VIRHE: teemahakemisto on joko tyhjä tai sitä ei ole olemassa. Tarkista WP-asennuksesi." +#: wp-includes/widgets/class-wp-widget-links.php:144 +msgid "Link title" +msgstr "Linkkiotsikko" + +#: wp-includes/class-wp-theme.php:312 wp-includes/class-wp-theme.php:316 +msgid "The \"%s\" theme is not a valid parent theme." +msgstr "\"%s\"-teema ei ole kelvollinen isäntäteema (parent theme)." #: wp-includes/class-wp-theme.php:256 msgid "Stylesheet is not readable." msgstr "Tyylitiedostoa ei voida lukea." -#: wp-includes/class-wp-theme.php:312 wp-includes/class-wp-theme.php:316 -msgid "The \"%s\" theme is not a valid parent theme." -msgstr "\"%s\"-teema ei ole kelvollinen isäntäteema (parent theme)." +#: wp-includes/class-wp-theme.php:252 +msgid "ERROR: The themes directory is either empty or doesn’t exist. Please check your installation." +msgstr "VIRHE: teemahakemisto on joko tyhjä tai sitä ei ole olemassa. Tarkista WP-asennuksesi." -#: wp-includes/class-wp-customize-manager.php:4163 -msgid "Static Front Page" -msgstr "Staattinen etusivu" +#. translators: %s: document title from the preview +#: wp-includes/class-wp-customize-manager.php:3369 +msgid "Customize: %s" +msgstr "Mukauta: %s" -#: wp-includes/class-wp-customize-manager.php:4165 -msgid "Your theme supports a static front page." -msgstr "Teemasi tukee staattista etusivua" +#: wp-includes/class-wp-customize-control.php:578 +#: wp-includes/class-wp-customize-nav-menus.php:595 +#: wp-includes/widgets/class-wp-nav-menu-widget.php:143 +msgid "— Select —" +msgstr "— Valitse —" -#: wp-includes/class-wp-customize-manager.php:4180 -msgid "Your latest posts" -msgstr "Uusimmat artikkelisi" +#: wp-includes/class-wp-customize-manager.php:3815 +msgid "Tagline" +msgstr "Kuvaus" #: wp-includes/class-wp-customize-manager.php:4176 msgid "Front page displays" msgstr "Etusivulla näytetään" -#: wp-includes/class-wp-customize-manager.php:3815 -msgid "Tagline" -msgstr "Kuvaus" +#: wp-includes/class-wp-customize-manager.php:4180 +msgid "Your latest posts" +msgstr "Uusimmat artikkelisi" -#: wp-includes/class-wp-customize-control.php:578 -#: wp-includes/class-wp-customize-nav-menus.php:595 -#: wp-includes/widgets/class-wp-nav-menu-widget.php:143 -msgid "— Select —" -msgstr "— Valitse —" +#: wp-includes/class-wp-customize-manager.php:4165 +msgid "Your theme supports a static front page." +msgstr "Teemasi tukee staattista etusivua" -#. translators: %s: document title from the preview -#: wp-includes/class-wp-customize-manager.php:3369 -msgid "Customize: %s" -msgstr "Mukauta: %s" +#: wp-includes/class-wp-customize-manager.php:4163 +msgid "Static Front Page" +msgstr "Staattinen etusivu" #: wp-includes/class-wp-xmlrpc-server.php:1341 #: wp-includes/class-wp-xmlrpc-server.php:5242 msgid "The post type may not be changed." msgstr "Sisältötyyppiä ei voi muuttaa." -#: wp-includes/class-wp-xmlrpc-server.php:452 -msgid "Image default size" -msgstr "Kuvan oletuskoko" +#: wp-includes/class-wp-xmlrpc-server.php:457 +msgid "Image default align" +msgstr "Kuvan oletusasemointi" #: wp-includes/class-wp-xmlrpc-server.php:447 msgid "Image default link type" msgstr "Kuvan oletuslinkkityyppi" -#: wp-includes/class-wp-xmlrpc-server.php:457 -msgid "Image default align" -msgstr "Kuvan oletusasemointi" +#: wp-includes/class-wp-xmlrpc-server.php:452 +msgid "Image default size" +msgstr "Kuvan oletuskoko" #: wp-includes/class-wp-xmlrpc-server.php:1339 #: wp-includes/class-wp-xmlrpc-server.php:1760 @@ -7317,62 +7317,21 @@ msgstr "Kuvan oletusasemointi" msgid "Sorry, you are not allowed to edit this post." msgstr "Et voi muokata tätä artikkelia." +#: wp-includes/admin-bar.php:345 +msgid "Edit Site" +msgstr "Muokkaa sivustoa" + #: wp-includes/post.php:3881 wp-includes/script-loader.php:545 #: wp-includes/script-loader.php:621 msgctxt "tag delimiter" msgid "," msgstr "," -#: wp-includes/admin-bar.php:345 -msgid "Edit Site" -msgstr "Muokkaa sivustoa" - -#: wp-includes/class-wp-xmlrpc-server.php:1377 -#: wp-includes/class-wp-xmlrpc-server.php:4964 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1034 -msgid "Invalid author ID." -msgstr "Väärä kirjoittajan ID." - -#: wp-includes/class-wp-xmlrpc-server.php:3160 -msgid "Sorry, you are not allowed to delete a category." -msgstr "Et voi poistaa tätä artikkelia." - -#: wp-includes/class-wp-xmlrpc-server.php:1669 -#: wp-includes/class-wp-xmlrpc-server.php:4806 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:839 -#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:322 -msgid "The post cannot be deleted." -msgstr "Artikkelia ei voida poistaa." - -#: wp-includes/class-wp-xmlrpc-server.php:1372 -#: wp-includes/class-wp-xmlrpc-server.php:4953 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:501 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:509 -msgid "Sorry, you are not allowed to create posts as this user." -msgstr "Sinulla ei ole oikeutta luoda artikkeleita tämän käyttäjän nimissä." - #: wp-includes/class-wp-xmlrpc-server.php:1444 #: wp-includes/class-wp-xmlrpc-server.php:1468 msgid "Sorry, one of the given taxonomies is not supported by the post type." msgstr "Valitettavasti yhtä näistä luokitteluista ei voi käyttää tässä sisältötyypistä." -#: wp-includes/class-wp-xmlrpc-server.php:1821 -#: wp-includes/class-wp-xmlrpc-server.php:4143 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:87 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:85 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:136 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:139 -msgid "Sorry, you are not allowed to edit posts in this post type." -msgstr "Sinulla ei ole oikeuksia muokata tämän sisältötyypin artikkeleita" - -#: wp-includes/class-wp-xmlrpc-server.php:1493 -msgid "Ambiguous term name used in a hierarchical taxonomy. Please use term ID instead." -msgstr "Hierarkkisen taksonomian termi ei ole yksiselitteinen. Käytä termin ID:tä." - -#: wp-includes/class-wp-xmlrpc-server.php:1500 -msgid "Sorry, you are not allowed to add a term to one of the given taxonomies." -msgstr "Sinulla ei valitettavasti ole oikeutta lisätä uutta termiä yhteen annetuista taksonomioista." - #: wp-includes/class-wp-xmlrpc-server.php:1447 #: wp-includes/class-wp-xmlrpc-server.php:1471 msgid "Sorry, you are not allowed to assign a term to one of the given taxonomies." @@ -7383,38 +7342,67 @@ msgstr "Valitettavasti sinulla ei ole oikeutta lisätä termiä yhteen annetuist msgid "Sorry, you are not allowed to create private posts in this post type." msgstr "Sinulla ei ole oikeutta merkitä tämän tyyppisiä sisältöjä yksityiseksi." +#: wp-includes/class-wp-xmlrpc-server.php:1372 +#: wp-includes/class-wp-xmlrpc-server.php:4953 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:501 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:509 +msgid "Sorry, you are not allowed to create posts as this user." +msgstr "Sinulla ei ole oikeutta luoda artikkeleita tämän käyttäjän nimissä." + #: wp-includes/class-wp-xmlrpc-server.php:1367 msgid "Sorry, you are not allowed to create password protected posts in this post type." msgstr "Sinulla ei ole oikeutta suojata tämän tyyppisiä sisältöjä salasanalla." -#: wp-includes/general-template.php:1020 wp-includes/general-template.php:1489 -msgctxt "yearly archives date format" -msgid "Y" -msgstr "Y" +#: wp-includes/class-wp-xmlrpc-server.php:1669 +#: wp-includes/class-wp-xmlrpc-server.php:4806 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:839 +#: wp-includes/rest-api/endpoints/class-wp-rest-revisions-controller.php:322 +msgid "The post cannot be deleted." +msgstr "Artikkelia ei voida poistaa." + +#: wp-includes/class-wp-xmlrpc-server.php:1500 +msgid "Sorry, you are not allowed to add a term to one of the given taxonomies." +msgstr "Sinulla ei valitettavasti ole oikeutta lisätä uutta termiä yhteen annetuista taksonomioista." + +#: wp-includes/class-wp-xmlrpc-server.php:1493 +msgid "Ambiguous term name used in a hierarchical taxonomy. Please use term ID instead." +msgstr "Hierarkkisen taksonomian termi ei ole yksiselitteinen. Käytä termin ID:tä." + +#: wp-includes/class-wp-xmlrpc-server.php:3160 +msgid "Sorry, you are not allowed to delete a category." +msgstr "Et voi poistaa tätä artikkelia." + +#: wp-includes/class-wp-xmlrpc-server.php:1377 +#: wp-includes/class-wp-xmlrpc-server.php:4964 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1034 +msgid "Invalid author ID." +msgstr "Väärä kirjoittajan ID." + +#: wp-includes/class-wp-xmlrpc-server.php:1821 +#: wp-includes/class-wp-xmlrpc-server.php:4143 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-statuses-controller.php:87 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:85 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:136 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:139 +msgid "Sorry, you are not allowed to edit posts in this post type." +msgstr "Sinulla ei ole oikeuksia muokata tämän sisältötyypin artikkeleita" #: wp-includes/general-template.php:1023 wp-includes/general-template.php:1492 msgctxt "monthly archives date format" msgid "F Y" msgstr "F Y" -#. translators: closing curly double quote -#: wp-includes/formatting.php:90 -msgctxt "closing curly double quote" -msgid "”" -msgstr "”" +#: wp-includes/general-template.php:1020 wp-includes/general-template.php:1489 +msgctxt "yearly archives date format" +msgid "Y" +msgstr "Y" -#. translators: apostrophe, for example in 'cause or can't -#: wp-includes/formatting.php:93 -msgctxt "apostrophe" +#. translators: closing curly single quote +#: wp-includes/formatting.php:103 +msgctxt "closing curly single quote" msgid "’" msgstr "’" -#. translators: prime, for example in 9' (nine feet) -#: wp-includes/formatting.php:96 -msgctxt "prime" -msgid "′" -msgstr "′" - #. translators: opening curly single quote #: wp-includes/formatting.php:101 msgctxt "opening curly single quote" @@ -7427,12 +7415,24 @@ msgctxt "double prime" msgid "″" msgstr "″" -#. translators: closing curly single quote -#: wp-includes/formatting.php:103 -msgctxt "closing curly single quote" +#. translators: prime, for example in 9' (nine feet) +#: wp-includes/formatting.php:96 +msgctxt "prime" +msgid "′" +msgstr "′" + +#. translators: apostrophe, for example in 'cause or can't +#: wp-includes/formatting.php:93 +msgctxt "apostrophe" msgid "’" msgstr "’" +#. translators: closing curly double quote +#: wp-includes/formatting.php:90 +msgctxt "closing curly double quote" +msgid "”" +msgstr "”" + #. translators: opening curly double quote #: wp-includes/formatting.php:88 wp-includes/formatting.php:4792 msgctxt "opening curly double quote" @@ -7461,17 +7461,17 @@ msgstr "https://codex.wordpress.org/CSS" msgid "Your account has been activated. You may now <a href=\"%1$s\">log in</a> to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href=\"%4$s\">reset your password</a>." msgstr "Tilisi on aktivoitu. Voit nyt <a href=\"%1$s\">kirjautua sisään</a> käyttäjätunnuksella ”%2$s”. Tarkista sähköpostisi (%3$s), josta löydät salasanasi ja ohjeet kirjautumiseen. Jos sähköpostia ei näy, tarkista ensin roskapostikansiosi. Jos sähköpostia ei silti näy yli tuntiin, voit <a href=\"%4$s\">nollata salasanasi</a>." +#. translators: 1: home URL, 2: site address, 3: login URL, 4: username +#: wp-signup.php:474 +msgid "<a href=\"%1$s\">%2$s</a> is your new site. <a href=\"%3$s\">Log in</a> as “%4$s” using your existing password." +msgstr "<a href=\"%1$s\">%2$s</a> on uusi sivustosi. <a href=\"%3$s\">Kirjaudu sisään</a> tunnuksella ”%4$s” käyttäen olemassa olevaa salasanaasi." + #. translators: 1: site URL, 2: site domain, 3: username, 4: user email, 5: #. lost password URL #: wp-activate.php:112 msgid "Your site at <a href=\"%1$s\">%2$s</a> is active. You may now log in to your site using your chosen username of “%3$s”. Please check your email inbox at %4$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href=\"%5$s\">reset your password</a>." msgstr "Sivustosi osoitteessa <a href=\"%1$s\">%2$s</a> on aktivoitu. Voit kirjautua sisään käyttäjätunnuksella ”%3$s”. Tarkista sähköpostistasi (%4$s) salasana ja ohjeet kirjautumiseen. Jos sähköpostia ei näy, tarkista ensin roskapostikansiosi. Jos sähköpostia ei silti näy yli tuntiin, voit <a href=\"%5$s\">nollata salasanasi</a>." -#. translators: 1: home URL, 2: site address, 3: login URL, 4: username -#: wp-signup.php:474 -msgid "<a href=\"%1$s\">%2$s</a> is your new site. <a href=\"%3$s\">Log in</a> as “%4$s” using your existing password." -msgstr "<a href=\"%1$s\">%2$s</a> on uusi sivustosi. <a href=\"%3$s\">Kirjaudu sisään</a> tunnuksella ”%4$s” käyttäen olemassa olevaa salasanaasi." - #. translators: %s: database repair URL #: wp-includes/functions.php:1408 msgid "One or more database tables are unavailable. The database may need to be <a href=\"%s\">repaired</a>." @@ -7497,32 +7497,32 @@ msgstr[1] "%s kommenttia odottamassa tarkistusta." msgid "%s exceeds the maximum upload size for the multi-file uploader when used in your browser." msgstr "%s ylittää selaimesi latausohjelman suurimman sallitun tiedostokoon" +#: wp-includes/script-loader.php:302 +msgid "“%s” has failed to upload." +msgstr "Tiedoston ”%s” siirtäminen ei onnistunut." + #. translators: 1: Opening link tag, 2: Closing link tag #: wp-includes/script-loader.php:293 msgid "Please try uploading this file with the %1$sbrowser uploader%2$s." msgstr "Kokeile tämän tiedoston siirtämistä %1$sselaimen tiedostolataajalla%2$s" -#: wp-includes/script-loader.php:302 -msgid "“%s” has failed to upload." -msgstr "Tiedoston ”%s” siirtäminen ei onnistunut." - #: wp-includes/widgets/class-wp-widget-links.php:133 msgctxt "links widget" msgid "All Links" msgstr "Kaikki linkit" -#. translators: en dash -#: wp-includes/formatting.php:106 -msgctxt "en dash" -msgid "–" -msgstr "–" - #. translators: em dash #: wp-includes/formatting.php:108 msgctxt "em dash" msgid "—" msgstr "—" +#. translators: en dash +#: wp-includes/formatting.php:106 +msgctxt "en dash" +msgid "–" +msgstr "–" + #: wp-includes/class-wp-admin-bar.php:130 msgid "The menu ID should not be empty." msgstr "Valikon ID ei voi olla tyhjä." @@ -7539,14 +7539,14 @@ msgstr "%s ylittää tämän sivuston suurimman sallitun tiedostokoon." msgid "Feedback" msgstr "Palaute" -#: wp-includes/comment.php:3071 -msgid "<strong>ERROR</strong>: please enter a valid email address." -msgstr "<strong>VIRHE</strong>: anna oikea sähköpostiosoite." - #: wp-includes/comment.php:3069 msgid "<strong>ERROR</strong>: please fill the required fields (name, email)." msgstr "<strong>VIRHE</strong>: täytä vaaditut kentät (nimi, sähköposti)." +#: wp-includes/comment.php:3071 +msgid "<strong>ERROR</strong>: please enter a valid email address." +msgstr "<strong>VIRHE</strong>: anna oikea sähköpostiosoite." + #: wp-includes/comment.php:3076 msgid "<strong>ERROR</strong>: please type a comment." msgstr "<strong>VIRHE</strong>: lisää kommentti, ole hyvä." @@ -7555,35 +7555,35 @@ msgstr "<strong>VIRHE</strong>: lisää kommentti, ole hyvä." msgid "Could not load the preview image. Please reload the page and try again." msgstr "Esikatselukuvan lataus ei onnistunut. Lataa sivu uudelleen ja kokeile uudestaan." -#: wp-includes/ms-deprecated.php:399 -msgid "<strong>ERROR</strong>: Site URL already taken." -msgstr "<strong>VIRHE</strong>: Sivuston URL on jo käytössä." - #: wp-includes/ms-deprecated.php:406 msgid "<strong>ERROR</strong>: problem creating site entry." msgstr "<strong>VIRHE</strong>: sivuston luonti ei onnistunut." -#: wp-includes/admin-bar.php:155 -msgid "Documentation" -msgstr "Dokumentaatio" +#: wp-includes/ms-deprecated.php:399 +msgid "<strong>ERROR</strong>: Site URL already taken." +msgstr "<strong>VIRHE</strong>: Sivuston URL on jo käytössä." #: wp-includes/admin-bar.php:163 msgid "Support Forums" msgstr "Tukifoorumit" +#: wp-includes/admin-bar.php:155 +msgid "Documentation" +msgstr "Dokumentaatio" + #: wp-includes/formatting.php:3345 wp-includes/general-template.php:3378 msgid "…" msgstr "…" -#: wp-includes/functions.php:3766 -msgid "Database Error" -msgstr "Tietokantavirhe" - #: wp-includes/functions.php:3770 wp-includes/ms-load.php:462 #: wp-includes/wp-db.php:1583 msgid "Error establishing a database connection" msgstr "Tietokantayhteys epäonnistui" +#: wp-includes/functions.php:3766 +msgid "Database Error" +msgstr "Tietokantavirhe" + #. translators: %s: number of comments #: wp-includes/comment-template.php:893 wp-includes/comment-template.php:907 msgid "%s Comment" @@ -7600,16 +7600,16 @@ msgstr "WordPress.org" msgid "Network Admin: %s" msgstr "Verkon hallinta: %s" -#: wp-includes/taxonomy.php:495 -msgctxt "taxonomy general name" -msgid "Tags" -msgstr "Avainsanat" - #: wp-includes/taxonomy.php:496 msgctxt "taxonomy singular name" msgid "Tag" msgstr "Avainsana" +#: wp-includes/taxonomy.php:495 +msgctxt "taxonomy general name" +msgid "Tags" +msgstr "Avainsanat" + #. translators: 1: wp_enqueue_scripts, 2: admin_enqueue_scripts, 3: #. login_enqueue_scripts #: wp-includes/functions.wp-scripts.php:43 @@ -7641,62 +7641,62 @@ msgstr "Sininen" msgid "The timezone you have entered is not valid. Please select a valid timezone." msgstr "Syöttämäsi aikavyöhyke on virheellinen." -#: wp-includes/post.php:65 -msgctxt "add new from admin bar" -msgid "Media" -msgstr "Media" - #: wp-includes/admin-bar.php:722 msgctxt "add new from admin bar" msgid "User" msgstr "Käyttäjä" -#: wp-includes/pluggable.php:1074 wp-includes/pluggable.php:1117 -msgid "You should specify a nonce action to be verified by using the first parameter." -msgstr "Määrittele varmistettava nonce-toiminto käyttämällä ensimmäistä parametria." - -#: wp-includes/taxonomy.php:503 -msgid "View Tag" -msgstr "Näytä avainsana" +#: wp-includes/post.php:65 +msgctxt "add new from admin bar" +msgid "Media" +msgstr "Media" #: wp-includes/taxonomy.php:503 msgid "View Category" msgstr "Näytä kategoria" -#. translators: 1: login URL, 2: network home URL -#: wp-activate.php:150 -msgid "Your account is now activated. <a href=\"%1$s\">Log in</a> or go back to the <a href=\"%2$s\">homepage</a>." -msgstr "Tilisi on aktivoitu. <a href=\"%1$s\">Kirjaudu sisään</a> tai palaa <a href=\"%2$s\">etusivulle</a>." +#: wp-includes/taxonomy.php:503 +msgid "View Tag" +msgstr "Näytä avainsana" + +#: wp-includes/pluggable.php:1074 wp-includes/pluggable.php:1117 +msgid "You should specify a nonce action to be verified by using the first parameter." +msgstr "Määrittele varmistettava nonce-toiminto käyttämällä ensimmäistä parametria." #. translators: 1: site URL, 2: login URL #: wp-activate.php:145 msgid "Your account is now activated. <a href=\"%1$s\">View your site</a> or <a href=\"%2$s\">Log in</a>" msgstr "Tilisi on aktivoitu. <a href=\"%1$s\">Mene sivustosi etusivulle</a> tai <a href=\"%2$s\">kirjaudu sisään</a>" -#: wp-includes/script-loader.php:525 -msgid "Approve and Reply" -msgstr "Hyväksy ja vastaa" +#. translators: 1: login URL, 2: network home URL +#: wp-activate.php:150 +msgid "Your account is now activated. <a href=\"%1$s\">Log in</a> or go back to the <a href=\"%2$s\">homepage</a>." +msgstr "Tilisi on aktivoitu. <a href=\"%1$s\">Kirjaudu sisään</a> tai palaa <a href=\"%2$s\">etusivulle</a>." -#: wp-includes/class-wp-editor.php:1125 -msgid "Link" -msgstr "Linkki" +#: wp-includes/post.php:1382 +msgid "All Pages" +msgstr "Kaikki sivut" #: wp-includes/post.php:1382 msgid "All Posts" msgstr "Kaikki artikkelit" -#: wp-includes/post.php:1382 -msgid "All Pages" -msgstr "Kaikki sivut" +#: wp-includes/class-wp-editor.php:1125 +msgid "Link" +msgstr "Linkki" -#: wp-includes/class-walker-comment.php:244 -msgid "Pingback:" -msgstr "Paluuviite:" +#: wp-includes/script-loader.php:525 +msgid "Approve and Reply" +msgstr "Hyväksy ja vastaa" #: wp-includes/link-template.php:2414 msgid "Post navigation" msgstr "Artikkelien selaus" +#: wp-includes/class-walker-comment.php:244 +msgid "Pingback:" +msgstr "Paluuviite:" + #: wp-includes/link-template.php:2823 wp-includes/link-template.php:2871 msgid "Comments navigation" msgstr "Kommenttien selaus" @@ -7728,14 +7728,14 @@ msgctxt "post format" msgid "Format" msgstr "Artikkelimuoto" -#: wp-includes/class-wp-editor.php:1690 -msgid "Enter the destination URL" -msgstr "Kirjoita kohteen URL" - #: wp-includes/class-wp-editor.php:1704 msgid "Or link to existing content" msgstr "tai linkitä olemassa olevaan sisältöön" +#: wp-includes/class-wp-editor.php:1690 +msgid "Enter the destination URL" +msgstr "Kirjoita kohteen URL" + #: wp-includes/query.php:154 wp-includes/query.php:175 #: wp-includes/query.php:196 wp-includes/query.php:220 #: wp-includes/query.php:244 wp-includes/query.php:268 @@ -7776,15 +7776,15 @@ msgctxt "Post format" msgid "Standard" msgstr "Normaali" +#: wp-signup.php:123 +msgid "domain" +msgstr "verkkotunnus" + #. translators: %s: site address #: wp-signup.php:127 msgid "Your address will be %s." msgstr "Sivustosi osoite on %s." -#: wp-signup.php:123 -msgid "domain" -msgstr "verkkotunnus" - #: wp-includes/post-formats.php:99 msgctxt "Post format" msgid "Audio" @@ -7807,40 +7807,40 @@ msgstr "Uninstall-hookissa voi käyttää vain staattista luokkametodia tai funk msgid "Passing an integer number of posts is deprecated. Pass an array of arguments instead." msgstr "Käytä int-muuttujan sijasta parametrina taulukkoa (array), joka sisältää argumentit. " -#: wp-includes/post-formats.php:92 +#: wp-includes/post-formats.php:98 msgctxt "Post format" -msgid "Chat" -msgstr "Keskustelu" +msgid "Video" +msgstr "Video" -#: wp-includes/post-formats.php:93 +#: wp-includes/post-formats.php:97 msgctxt "Post format" -msgid "Gallery" -msgstr "Galleria" +msgid "Status" +msgstr "Tilapäivitys" -#: wp-includes/post-formats.php:94 +#: wp-includes/post-formats.php:96 msgctxt "Post format" -msgid "Link" -msgstr "Linkki" +msgid "Quote" +msgstr "Lainaus" #: wp-includes/post-formats.php:95 msgctxt "Post format" msgid "Image" msgstr "Kuva" -#: wp-includes/post-formats.php:96 +#: wp-includes/post-formats.php:94 msgctxt "Post format" -msgid "Quote" -msgstr "Lainaus" +msgid "Link" +msgstr "Linkki" -#: wp-includes/post-formats.php:98 +#: wp-includes/post-formats.php:93 msgctxt "Post format" -msgid "Video" -msgstr "Video" +msgid "Gallery" +msgstr "Galleria" -#: wp-includes/post-formats.php:97 +#: wp-includes/post-formats.php:92 msgctxt "Post format" -msgid "Status" -msgstr "Tilapäivitys" +msgid "Chat" +msgstr "Keskustelu" #: wp-includes/post-formats.php:91 msgctxt "Post format" @@ -7887,45 +7887,33 @@ msgstr "Syötä käyttäjätunnus tai sähköpostiosoite. Tulet saamaan linkin s msgid "Display as dropdown" msgstr "Näytä alasvetolaatikkona" -#: wp-includes/class-wp-xmlrpc-server.php:519 -msgid "Crop thumbnail to exact dimensions" -msgstr "Rajaa haluamasi kokoiseksi" +#: wp-includes/class-wp-xmlrpc-server.php:509 +msgid "Thumbnail Width" +msgstr "Pikkukuvan leveys" #: wp-includes/class-wp-xmlrpc-server.php:514 msgid "Thumbnail Height" msgstr "Pikkukuvan korkeus" -#: wp-includes/class-wp-xmlrpc-server.php:509 -msgid "Thumbnail Width" -msgstr "Pikkukuvan leveys" - -#: wp-includes/class-wp-xmlrpc-server.php:549 -msgid "Large size image height" -msgstr "Suuren kuvan korkeus" - -#: wp-includes/class-wp-xmlrpc-server.php:524 -msgid "Medium size image width" -msgstr "Keskikokoisen kuvan leveys" - -#: wp-includes/class-wp-xmlrpc-server.php:529 -msgid "Medium size image height" -msgstr "Keskikokoisen kuvan korkeus" +#: wp-includes/class-wp-xmlrpc-server.php:519 +msgid "Crop thumbnail to exact dimensions" +msgstr "Rajaa haluamasi kokoiseksi" #: wp-includes/class-wp-xmlrpc-server.php:544 msgid "Large size image width" msgstr "Suuren kuvan leveys" -#: wp-login.php:632 -msgid "New password" -msgstr "Uusi salasana" +#: wp-includes/class-wp-xmlrpc-server.php:529 +msgid "Medium size image height" +msgstr "Keskikokoisen kuvan korkeus" -#: wp-login.php:644 -msgid "Confirm new password" -msgstr "Varmista uusi salasana" +#: wp-includes/class-wp-xmlrpc-server.php:524 +msgid "Medium size image width" +msgstr "Keskikokoisen kuvan leveys" -#: wp-login.php:601 -msgid "The passwords do not match." -msgstr "Salasanat eivät täsmää." +#: wp-includes/class-wp-xmlrpc-server.php:549 +msgid "Large size image height" +msgstr "Suuren kuvan korkeus" #: wp-login.php:624 msgid "Enter your new password below." @@ -7939,6 +7927,18 @@ msgstr "Mikäli tämä on virhe, voit jättää tämän viestin huomiotta." msgid "Someone has requested a password reset for the following account:" msgstr "Joku pyysi, että seuraavan tilin salasana vaihdettaisiin:" +#: wp-login.php:616 +msgid "Your password has been reset." +msgstr "Salasanasi on vaihdettu." + +#: wp-login.php:616 +msgid "Password Reset" +msgstr "Salasanan vaihto" + +#: wp-login.php:601 +msgid "The passwords do not match." +msgstr "Salasanat eivät täsmää." + #: wp-login.php:624 wp-login.php:662 msgid "Reset Password" msgstr "Vaihda salasana" @@ -7947,22 +7947,22 @@ msgstr "Vaihda salasana" msgid "To reset your password, visit the following address:" msgstr "Aseta uusi salasana seuraavassa osoitteessa:" -#: wp-login.php:616 -msgid "Password Reset" -msgstr "Salasanan vaihto" - -#: wp-login.php:616 -msgid "Your password has been reset." -msgstr "Salasanasi on vaihdettu." +#: wp-login.php:644 +msgid "Confirm new password" +msgstr "Varmista uusi salasana" -#: wp-includes/admin-bar.php:278 -msgid "Edit My Profile" -msgstr "Muokkaa omaa profiilia" +#: wp-login.php:632 +msgid "New password" +msgstr "Uusi salasana" #: wp-includes/admin-bar.php:550 msgid "Manage Comments" msgstr "Hallinnoi kommentteja" +#: wp-includes/admin-bar.php:278 +msgid "Edit My Profile" +msgstr "Muokkaa omaa profiilia" + #: wp-includes/post-formats.php:68 msgid "Invalid post." msgstr "Virheellinen artikkeli" @@ -7976,18 +7976,6 @@ msgstr "Blavatar" msgid "Invalid taxonomy: %s." msgstr "Taksonomia ei kelpaa: %s" -#: wp-includes/taxonomy.php:118 -msgid "Add New Link Category" -msgstr "Lisää uusi kategoria" - -#: wp-includes/taxonomy.php:117 -msgid "Update Link Category" -msgstr "Päivitä kategoria" - -#: wp-includes/taxonomy.php:115 -msgid "All Link Categories" -msgstr "Kaikki kategoriat" - #: wp-includes/taxonomy.php:112 msgid "Link Category" msgstr "Kategoria" @@ -7996,6 +7984,18 @@ msgstr "Kategoria" msgid "Search Link Categories" msgstr "Etsi kategorioita" +#: wp-includes/taxonomy.php:115 +msgid "All Link Categories" +msgstr "Kaikki kategoriat" + +#: wp-includes/taxonomy.php:117 +msgid "Update Link Category" +msgstr "Päivitä kategoria" + +#: wp-includes/taxonomy.php:118 +msgid "Add New Link Category" +msgstr "Lisää uusi kategoria" + #: wp-includes/taxonomy.php:119 msgid "New Link Category Name" msgstr "Uuden kategorian nimi" @@ -8014,147 +8014,147 @@ msgstr "Palvelimesi käyttää PHP-versiota %1$s, mutta WordPress %2$s vaatii v msgid "Custom Menu" msgstr "Mukautettu valikko" -#: wp-includes/theme-compat/sidebar.php:56 -msgid "F, Y" -msgstr "F Y" - -#: wp-includes/theme-compat/sidebar.php:48 -msgid "l, F jS, Y" -msgstr "l\\n\\a j. F\\t\\a Y" - #: wp-includes/theme-compat/comments.php:24 msgid "This post is password protected. Enter the password to view comments." msgstr "Artikkeli on salasanasuojattu. Syötä salasana katsoaksesi kommentteja." -#. translators: 1: blog name, 2: WordPress -#: wp-includes/theme-compat/footer.php:26 -msgid "%1$s is proudly powered by %2$s" -msgstr "%1$s-sivuston taustalla pyörii %2$s" - #. translators: %s: category name #: wp-includes/theme-compat/sidebar.php:39 msgid "You are currently browsing the archives for the %s category." msgstr "Luet parhaillaan arkistoa kategoriasta %s." +#: wp-includes/theme-compat/sidebar.php:48 +msgid "l, F jS, Y" +msgstr "l\\n\\a j. F\\t\\a Y" + #. translators: 1: site link, 2: search query #: wp-includes/theme-compat/sidebar.php:70 msgid "You have searched the %1$s blog archives for <strong>‘%2$s’</strong>. If you are unable to find anything in these search results, you can try one of these links." msgstr "Hait sivuston %1$s arkistosta haulla <strong>‘%2$s’</strong>. Jos hakutuloksista ei löydy mitä etsit, kokeile seuraavia linkkejä." +#. translators: 1: blog name, 2: WordPress +#: wp-includes/theme-compat/footer.php:26 +msgid "%1$s is proudly powered by %2$s" +msgstr "%1$s-sivuston taustalla pyörii %2$s" + +#: wp-includes/theme-compat/sidebar.php:56 +msgid "F, Y" +msgstr "F Y" + #: wp-includes/taxonomy.php:509 msgid "Choose from the most used tags" msgstr "Valitse eniten käytetyistä avainsanoista" -#: wp-includes/taxonomy.php:497 -msgid "Search Tags" -msgstr "Etsi avainsanoista" +#: wp-includes/taxonomy.php:495 +msgctxt "taxonomy general name" +msgid "Categories" +msgstr "Kategoriat" -#: wp-includes/taxonomy.php:498 -msgid "Popular Tags" -msgstr "Suositut avainsanat" +#: wp-includes/taxonomy.php:499 +msgid "All Tags" +msgstr "Kaikki avainsanat" -#: wp-includes/taxonomy.php:506 -msgid "New Tag Name" -msgstr "Uusi avainsanan nimi" +#: wp-includes/taxonomy.php:500 +msgid "Parent Category" +msgstr "Yläkategoria" -#: wp-includes/taxonomy.php:505 -msgid "Add New Tag" -msgstr "Lisää uusi avainsana" +#: wp-includes/taxonomy.php:501 +msgid "Parent Category:" +msgstr "Yläkategoria:" #: wp-includes/taxonomy.php:504 msgid "Update Tag" msgstr "Päivitä avainsana" -#: wp-includes/taxonomy.php:499 -msgid "All Tags" -msgstr "Kaikki avainsanat" +#: wp-includes/taxonomy.php:505 +msgid "Add New Tag" +msgstr "Lisää uusi avainsana" -#: wp-includes/taxonomy.php:496 -msgctxt "taxonomy singular name" -msgid "Category" -msgstr "Kategoria" +#: wp-includes/taxonomy.php:505 +msgid "Add New Category" +msgstr "Lisää uusi kategoria" + +#: wp-includes/taxonomy.php:506 +msgid "New Tag Name" +msgstr "Uusi avainsanan nimi" #: wp-includes/taxonomy.php:506 msgid "New Category Name" msgstr "Uusi kategorian nimi" -#: wp-includes/taxonomy.php:505 -msgid "Add New Category" -msgstr "Lisää uusi kategoria" - -#: wp-includes/taxonomy.php:501 -msgid "Parent Category:" -msgstr "Yläkategoria:" +#: wp-includes/taxonomy.php:498 +msgid "Popular Tags" +msgstr "Suositut avainsanat" -#: wp-includes/taxonomy.php:500 -msgid "Parent Category" -msgstr "Yläkategoria" +#: wp-includes/taxonomy.php:497 +msgid "Search Tags" +msgstr "Etsi avainsanoista" -#: wp-includes/taxonomy.php:495 -msgctxt "taxonomy general name" -msgid "Categories" -msgstr "Kategoriat" +#: wp-includes/taxonomy.php:496 +msgctxt "taxonomy singular name" +msgid "Category" +msgstr "Kategoria" -#: wp-signup.php:887 -msgid "Sorry, new registrations are not allowed at this time." -msgstr "Pahoittelut, uusia rekisteröintejä ei oteta juuri nyt vastaan." +#: wp-signup.php:761 +msgid "Check the junk or spam folder of your email client. Sometime emails wind up there by mistake." +msgstr "Tarkista sähköpostiohjelmasi roskapostikansio. Joskus sähköpostit päätyvät sinne vahingossa." #: wp-signup.php:760 msgid "Wait a little longer. Sometimes delivery of email can be delayed by processes outside of our control." msgstr "Odota vähän pidempään. Joskus sähköpostin toimitus voi viivästyä meistä riippumattomista syistä." -#: wp-signup.php:761 -msgid "Check the junk or spam folder of your email client. Sometime emails wind up there by mistake." -msgstr "Tarkista sähköpostiohjelmasi roskapostikansio. Joskus sähköpostit päätyvät sinne vahingossa." +#: wp-signup.php:887 +msgid "Sorry, new registrations are not allowed at this time." +msgstr "Pahoittelut, uusia rekisteröintejä ei oteta juuri nyt vastaan." #: wp-signup.php:240 msgid "We send your registration email to this address. (Double-check your email address before continuing.)" msgstr "Lähetämme rekisteröintisähköpostisi tähän osoitteeseen. Tarkista se vielä ennen kuin jatkat!" -#: wp-includes/post.php:1370 -msgctxt "post type general name" -msgid "Posts" -msgstr "Artikkelit" - -#: wp-includes/post.php:1370 -msgctxt "post type general name" -msgid "Pages" -msgstr "Sivut" +#: wp-includes/post.php:1371 +msgctxt "post type singular name" +msgid "Post" +msgstr "Artikkeli" #: wp-includes/post.php:1371 msgctxt "post type singular name" msgid "Page" msgstr "Sivu" -#: wp-includes/post.php:1371 -msgctxt "post type singular name" -msgid "Post" -msgstr "Artikkeli" +#: wp-includes/post.php:1370 +msgctxt "post type general name" +msgid "Pages" +msgstr "Sivut" -#: wp-includes/post.php:1381 -msgid "Parent Page:" -msgstr "Yläsivu:" +#: wp-includes/post.php:1373 +msgid "Add New Page" +msgstr "Lisää uusi sivu" #: wp-includes/post.php:1378 msgid "Search Posts" msgstr "Etsi artikkeleita" -#: wp-includes/post.php:1378 -msgid "Search Pages" -msgstr "Etsi sivuja" - -#: wp-includes/post.php:1373 -msgid "Add New Page" -msgstr "Lisää uusi sivu" - #: wp-includes/post.php:1374 msgid "Edit Page" msgstr "Muokkaa sivua" +#: wp-includes/post.php:1370 +msgctxt "post type general name" +msgid "Posts" +msgstr "Artikkelit" + +#: wp-includes/post.php:1381 +msgid "Parent Page:" +msgstr "Yläsivu:" + #: wp-includes/post.php:1373 msgid "Add New Post" msgstr "Lisää uusi artikkeli" +#: wp-includes/post.php:1378 +msgid "Search Pages" +msgstr "Etsi sivuja" + #: wp-includes/ms-default-constants.php:141 msgid "<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting." msgstr "<strong>Vakioilla VHOST ja SUBDOMAIN_INSTALL on ristiriitaiset arvot.</strong> SUBDOMAIN_INSTALL:in arvo otetaan huomioon." @@ -8183,17 +8183,6 @@ msgstr "Teema ilman sivupohjaa %s" msgid "Please include a %s template in your theme." msgstr "Sisällytä sivupohja %s teemaasi." -#: wp-includes/class-wp-xmlrpc-server.php:1344 -#: wp-includes/class-wp-xmlrpc-server.php:4650 -msgid "Sorry, you are not allowed to post on this site." -msgstr "Valitettavasti sinulla ei ole oikeutta julkaista artikkeleita tällä sivustolla." - -#: wp-includes/class-wp-xmlrpc-server.php:4898 -#: wp-includes/class-wp-xmlrpc-server.php:4911 -#: wp-includes/class-wp-xmlrpc-server.php:4916 -msgid "Sorry, you are not allowed to publish posts on this site." -msgstr "Valitettavasti sinulla ei ole oikeutta julkaista artikkeleita tällä sivustolla." - #: wp-includes/class-wp-xmlrpc-server.php:4887 msgid "Sorry, you are not allowed to publish pages on this site." msgstr "Valitettavasti sinulla ei ole oikeutta julkaista sivuja tällä sivustolla." @@ -8204,11 +8193,52 @@ msgstr "Valitettavasti sinulla ei ole oikeutta julkaista sivuja tällä sivustol msgid "Sorry, you must be able to edit posts on this site in order to view categories." msgstr "Pahoittelut, tarvitset artikkelien muokkausoikeudet jotta voit nähdä kategorialuettelon." -#. translators: New site notification email subject. 1: Network name, 2: New -#. site name -#: wp-includes/ms-functions.php:1572 -msgid "New %1$s Site: %2$s" -msgstr "Uusi %1$s-sivusto: %2$s" +#: wp-includes/class-wp-xmlrpc-server.php:4898 +#: wp-includes/class-wp-xmlrpc-server.php:4911 +#: wp-includes/class-wp-xmlrpc-server.php:4916 +msgid "Sorry, you are not allowed to publish posts on this site." +msgstr "Valitettavasti sinulla ei ole oikeutta julkaista artikkeleita tällä sivustolla." + +#: wp-includes/class-wp-xmlrpc-server.php:1344 +#: wp-includes/class-wp-xmlrpc-server.php:4650 +msgid "Sorry, you are not allowed to post on this site." +msgstr "Valitettavasti sinulla ei ole oikeutta julkaista artikkeleita tällä sivustolla." + +#: wp-includes/option.php:1758 +msgid "Site URL." +msgstr "Sivuston URL." + +#: wp-includes/class-wp-xmlrpc-server.php:489 +msgid "Site Tagline" +msgstr "Sivuston kuvaus" + +#: wp-includes/class-wp-xmlrpc-server.php:3031 +msgid "Sorry, you must be able to edit posts on this site in order to view tags." +msgstr "Pahoittelut, tarvitset artikkelien muokkausoikeudet jotta voit nähdä avainsanaluettelon." + +#: wp-includes/pluggable.php:1789 +msgid "New user registration on your site %s:" +msgstr "Uusi käyttäjärekisteröinti sivustollasi %s:" + +#: wp-includes/ms-functions.php:643 +msgid "That site is currently reserved but may be available in a couple days." +msgstr "Sivusto on tällä hetkellä varattu mutta se saattaa vapautua muutaman päivän kuluttua." + +#: wp-includes/ms-functions.php:632 +msgid "Sorry, that site is reserved!" +msgstr "Tuo sivusto on valitettavasti varattu!" + +#: wp-includes/ms-functions.php:596 +msgid "Sorry, you may not use that site name." +msgstr "Et voi valitettavasti käyttää tuota sivuston nimeä." + +#: wp-includes/ms-functions.php:600 +msgid "Sorry, site names must have letters too!" +msgstr "Sivuston nimessä on oltava kirjaimia!" + +#: wp-includes/ms-functions.php:1181 +msgid "Could not create site." +msgstr "Sivustoa ei voitu luoda." #: wp-includes/class-wp-xmlrpc-server.php:3672 #: wp-includes/class-wp-xmlrpc-server.php:3753 @@ -8218,37 +8248,19 @@ msgstr "Uusi %1$s-sivusto: %2$s" msgid "Sorry, you are not allowed access to details about this site." msgstr "Sinulla ei ole oikeuksia nähdä tietoja tästä sivustosta." -#: wp-includes/ms-functions.php:1264 -msgid "New Site Registration: %s" -msgstr "Uusi sivusto rekisteröity: %s" - #: wp-includes/ms-functions.php:1027 msgid "The site is already active." msgstr "Sivusto on jo aktiivinen." -#: wp-includes/ms-functions.php:1181 -msgid "Could not create site." -msgstr "Sivustoa ei voitu luoda." - -#: wp-includes/ms-functions.php:628 wp-includes/ms-functions.php:1174 -msgid "Sorry, that site already exists!" -msgstr "Pahoittelut, tuo sivusto on jo olemassa!" - -#: wp-includes/ms-functions.php:600 -msgid "Sorry, site names must have letters too!" -msgstr "Sivuston nimessä on oltava kirjaimia!" - -#: wp-includes/ms-functions.php:596 -msgid "Sorry, you may not use that site name." -msgstr "Et voi valitettavasti käyttää tuota sivuston nimeä." - -#: wp-includes/ms-functions.php:632 -msgid "Sorry, that site is reserved!" -msgstr "Tuo sivusto on valitettavasti varattu!" +#. translators: New site notification email subject. 1: Network name, 2: New +#. site name +#: wp-includes/ms-functions.php:1572 +msgid "New %1$s Site: %2$s" +msgstr "Uusi %1$s-sivusto: %2$s" -#: wp-includes/ms-functions.php:643 -msgid "That site is currently reserved but may be available in a couple days." -msgstr "Sivusto on tällä hetkellä varattu mutta se saattaa vapautua muutaman päivän kuluttua." +#: wp-includes/ms-functions.php:1264 +msgid "New Site Registration: %s" +msgstr "Uusi sivusto rekisteröity: %s" #: wp-includes/ms-functions.php:866 msgid "" @@ -8272,38 +8284,22 @@ msgstr "" "\n" "%s" -#: wp-includes/pluggable.php:1789 -msgid "New user registration on your site %s:" -msgstr "Uusi käyttäjärekisteröinti sivustollasi %s:" - -#: wp-includes/class-wp-xmlrpc-server.php:3031 -msgid "Sorry, you must be able to edit posts on this site in order to view tags." -msgstr "Pahoittelut, tarvitset artikkelien muokkausoikeudet jotta voit nähdä avainsanaluettelon." - -#: wp-includes/class-wp-xmlrpc-server.php:489 -msgid "Site Tagline" -msgstr "Sivuston kuvaus" +#: wp-includes/ms-functions.php:628 wp-includes/ms-functions.php:1174 +msgid "Sorry, that site already exists!" +msgstr "Pahoittelut, tuo sivusto on jo olemassa!" -#: wp-includes/option.php:1758 -msgid "Site URL." -msgstr "Sivuston URL." +#: wp-includes/load.php:536 +msgid "The site you have requested is not installed properly. Please contact the system administrator." +msgstr "Pyytämääsi sivustoa ei ole asennettu kunnolla. Ota yhteys järjestelmänvalvojaan." #: wp-includes/ms-load.php:114 msgid "This site has been archived or suspended." msgstr "Sivusto on arkistoitu tai hyllytetty." -#: wp-includes/load.php:536 -msgid "The site you have requested is not installed properly. Please contact the system administrator." -msgstr "Pyytämääsi sivustoa ei ole asennettu kunnolla. Ota yhteys järjestelmänvalvojaan." - #: wp-includes/nav-menu.php:372 msgid "The given object ID is not that of a menu item." msgstr "Annettu ID ei vastaa mitään valikkokohdetta." -#: wp-includes/formatting.php:4059 -msgid "The email address entered did not appear to be a valid email address. Please enter a valid email address." -msgstr "Antamasi sähköpostiosoite ei ollut kelvollinen. Kirjoita kelvollinen osoite" - #: wp-includes/formatting.php:4178 msgid "The Site address you entered did not appear to be a valid URL. Please enter a valid URL." msgstr "Sivuston osoite jonka annoit ei ollut kelvollinen URL-osoite. Anna kelvollinen URL-osoite." @@ -8312,6 +8308,10 @@ msgstr "Sivuston osoite jonka annoit ei ollut kelvollinen URL-osoite. Anna kelvo msgid "The WordPress address you entered did not appear to be a valid URL. Please enter a valid URL." msgstr "Antamasi WordPress-osoite ei ollut kelvollinen URL-osoite. Syötä kelvollinen URL-osoite." +#: wp-includes/formatting.php:4059 +msgid "The email address entered did not appear to be a valid email address. Please enter a valid email address." +msgstr "Antamasi sähköpostiosoite ei ollut kelvollinen. Kirjoita kelvollinen osoite" + #: wp-includes/taxonomy.php:2056 msgid "A term with the name provided already exists with this parent." msgstr "Samanniminen termi on jo olemassa." @@ -8338,34 +8338,34 @@ msgstr "URL oli virheellinen." msgid "Could not calculate resized image dimensions" msgstr "Skaalatun kuvan kokoa ei voitu laskea" -#. translators: %s: login URL -#: wp-signup.php:854 -msgid "You must first <a href=\"%s\">log in</a>, and then you can create a new site." -msgstr "<a href=\"%s\">Kirjaudu sisään</a>, niin voit luoda uuden sivuston." +#: wp-includes/ms-load.php:488 +msgid "If you’re still stuck with this message, then check that your database contains the following tables:" +msgstr "Jos et päässyt eroon tästä virheilmoituksesta, tarkista että tietokannassasi on seuraavat taulut:" + +#: wp-signup.php:758 +msgid "If you haven’t received your email yet, there are a number of things you can do:" +msgstr "Jos et ole saanut sähköpostia vielä, voit toimia seuraavasti:" #: wp-signup.php:313 msgid "Welcome back, %s. By filling out the form below, you can <strong>add another site to your account</strong>. There is no limit to the number of sites you can have, so create to your heart’s content, but write responsibly!" msgstr "Tervetuloa takaisin, %s. Täyttämällä alla olevan lomakkeen, voit <strong>perustaa uuden sivuston</strong>. Sivustojen lukumäärää ei ole rajoitettu, joten luo niitä niin monta kuin haluat, mutta kirjoita vastuullisesti!" -#: wp-signup.php:127 -msgid "Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!" -msgstr "Sisällettävä ainakin 4 merkkiä, vain kirjaimet ja numerot hyväksytään. Tunnusta ei voi muuttaa, joten valitse harkiten!" +#: wp-mail.php:15 wp-mail.php:20 +msgid "This action has been disabled by the administrator." +msgstr "Pääkäyttäjä on estänyt tämän toiminnon." #: wp-signup.php:889 msgid "You are logged in already. No need to register again!" msgstr "Olet jo kirjautunut sisään. Sinun ei tarvitse rekisteröityä uudestaan!" -#: wp-mail.php:15 wp-mail.php:20 -msgid "This action has been disabled by the administrator." -msgstr "Pääkäyttäjä on estänyt tämän toiminnon." - -#: wp-signup.php:758 -msgid "If you haven’t received your email yet, there are a number of things you can do:" -msgstr "Jos et ole saanut sähköpostia vielä, voit toimia seuraavasti:" +#. translators: %s: login URL +#: wp-signup.php:854 +msgid "You must first <a href=\"%s\">log in</a>, and then you can create a new site." +msgstr "<a href=\"%s\">Kirjaudu sisään</a>, niin voit luoda uuden sivuston." -#: wp-includes/ms-load.php:488 -msgid "If you’re still stuck with this message, then check that your database contains the following tables:" -msgstr "Jos et päässyt eroon tästä virheilmoituksesta, tarkista että tietokannassasi on seuraavat taulut:" +#: wp-signup.php:127 +msgid "Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!" +msgstr "Sisällettävä ainakin 4 merkkiä, vain kirjaimet ja numerot hyväksytään. Tunnusta ei voi muuttaa, joten valitse harkiten!" #: wp-includes/script-loader.php:635 msgid "Are you sure you want to install this plugin?" @@ -8379,26 +8379,26 @@ msgstr "Käytä artikkelikuvana" msgid "Page %s" msgstr "Sivu %s" -#: wp-includes/load.php:219 -msgid "Maintenance" -msgstr "Ylläpitotila" - #: wp-includes/load.php:223 msgid "Briefly unavailable for scheduled maintenance. Check back in a minute." msgstr "Sivustoa huolletaan ja se on hetken poissa käytöstä. Kokeile uudestaan minuutin kuluttua." +#: wp-includes/load.php:219 +msgid "Maintenance" +msgstr "Ylläpitotila" + #: wp-includes/taxonomy.php:98 msgid "Navigation Menus" msgstr "Navigaatiovalikot" -#: wp-includes/post.php:113 -msgid "Navigation Menu Items" -msgstr "Navigaatiovalikon kohdat" - #: wp-includes/post.php:114 msgid "Navigation Menu Item" msgstr "Navigaatiovalikon kohta" +#: wp-includes/post.php:113 +msgid "Navigation Menu Items" +msgstr "Navigaatiovalikon kohdat" + #. translators: 1: Site name #: wp-links-opml.php:31 msgid "Links for %s" @@ -8420,11 +8420,6 @@ msgstr "" msgid "This is the short link." msgstr "Tämä on pikalinkki." -#. translators: 1: Number of updates available to WordPress -#: wp-includes/update.php:594 -msgid "%d WordPress Update" -msgstr "%d WordPress-päivitys" - #. translators: 1: Number of updates available to plugins #: wp-includes/update.php:598 msgid "%d Plugin Update" @@ -8439,89 +8434,65 @@ msgid_plural "%d Theme Updates" msgstr[0] "%d teemapäivitys" msgstr[1] "%d teemapäivitystä" -#: wp-signup.php:132 -msgid "Site Title:" -msgstr "Sivuston otsikko:" - -#: wp-signup.php:319 -msgid "Sites you are already a member of:" -msgstr "Sivustot, joiden jäsen olet:" - -#. translators: %s: site name -#: wp-signup.php:469 -msgid "The site %s is yours." -msgstr "Sivusto %s on nyt sinun." - -#: wp-signup.php:343 -msgid "Create Site" -msgstr "Luo sivusto" +#. translators: 1: Number of updates available to WordPress +#: wp-includes/update.php:594 +msgid "%d WordPress Update" +msgstr "%d WordPress-päivitys" -#: wp-includes/script-loader.php:297 -msgid "File canceled." -msgstr "Tiedosto peruttu." +#: wp-signup.php:755 +msgid "If you do not activate your site within two days, you will have to sign up again." +msgstr "Mikäli et aktivoi sivustoasi kahden vuorokauden kuluessa, sinun täytyy rekisteröityä uudelleen." -#: wp-signup.php:108 -msgid "Site Domain:" -msgstr "Sivuston verkkotunnus:" +#: wp-signup.php:752 +msgid "But, before you can start using your site, <strong>you must activate it</strong>." +msgstr "Ennen kuin voi aloittaa käyttämään sivustoasi, <strong>sinun täytyy aktivoida se</strong>." -#: wp-signup.php:106 -msgid "Site Name:" -msgstr "Sivuston nimi:" +#: wp-signup.php:552 +msgid "Gimme a site!" +msgstr "Anna minulle sivusto!" -#: wp-signup.php:307 -msgid "Get <em>another</em> %s site in seconds" -msgstr "Luo <em>toinen</em> %s sivusto hetkessä" +#: wp-signup.php:868 +msgid "Site registration has been disabled." +msgstr "Sivustojen rekisteröintiä ei tällä hetkellä sallita." #. translators: %s: site address #: wp-signup.php:750 msgid "Congratulations! Your new site, %s, is almost ready." msgstr "Onnittelut! Uusi sivustosi %s, on lähes valmis." -#: wp-signup.php:868 -msgid "Site registration has been disabled." -msgstr "Sivustojen rekisteröintiä ei tällä hetkellä sallita." - -#: wp-signup.php:552 -msgid "Gimme a site!" -msgstr "Anna minulle sivusto!" - -#: wp-signup.php:752 -msgid "But, before you can start using your site, <strong>you must activate it</strong>." -msgstr "Ennen kuin voi aloittaa käyttämään sivustoasi, <strong>sinun täytyy aktivoida se</strong>." - -#: wp-signup.php:755 -msgid "If you do not activate your site within two days, you will have to sign up again." -msgstr "Mikäli et aktivoi sivustoasi kahden vuorokauden kuluessa, sinun täytyy rekisteröityä uudelleen." +#: wp-signup.php:307 +msgid "Get <em>another</em> %s site in seconds" +msgstr "Luo <em>toinen</em> %s sivusto hetkessä" #: wp-signup.php:121 msgid "sitename" msgstr "sivustonnimi" -#: wp-signup.php:328 -msgid "If you’re not going to use a great site domain, leave it for a new user. Now have at it!" -msgstr "Mikäli et aio käyttää sivuston verkkotunnusta, jätä se uusille käyttäjille. " - -#. translators: 1: Post title -#: wp-includes/pluggable.php:1465 -msgid "New trackback on your post \"%s\"" -msgstr "Uusi paluuviite artikkeliisi \"%s\"" +#: wp-signup.php:106 +msgid "Site Name:" +msgstr "Sivuston nimi:" -#: wp-includes/ms-load.php:465 -msgid "If your site does not display, please contact the owner of this network." -msgstr "Jos sivustosi ei näy, ole yhteydessä verkon ylläpitäjään." +#: wp-signup.php:108 +msgid "Site Domain:" +msgstr "Sivuston verkkotunnus:" -#: wp-includes/ms-load.php:466 -msgid "If you are the owner of this network please check that MySQL is running properly and all tables are error free." -msgstr "Jos olet tämän verkon ylläpitäjä, varmista että MySQL toimii oikein eikä missään taulussa ole virheitä." +#: wp-signup.php:132 +msgid "Site Title:" +msgstr "Sivuston otsikko:" -#: wp-includes/pluggable.php:1486 -msgid "New comment on your post \"%s\"" -msgstr "Uusi kommentti artikkeliisi \"%s\"" +#: wp-includes/script-loader.php:297 +msgid "File canceled." +msgstr "Tiedosto peruttu." #. translators: 1: Post title -#: wp-includes/pluggable.php:1476 -msgid "New pingback on your post \"%s\"" -msgstr "Uusi päivitysilmoitus artikkeliisi \"%s\"" +#: wp-includes/pluggable.php:1645 +msgid "A new comment on the post \"%s\" is waiting for your approval" +msgstr "Uusi kommentti artikkeliisi \"%s\" odottaa hyväksymistäsi" + +#. translators: 1: Post title +#: wp-includes/pluggable.php:1635 +msgid "A new pingback on the post \"%s\" is waiting for your approval" +msgstr "Uusi päivitysilmoitus artikkeliisi \"%s\" odottaa hyväksymistäsi" #. translators: 1: Post title #: wp-includes/pluggable.php:1625 @@ -8529,74 +8500,189 @@ msgid "A new trackback on the post \"%s\" is waiting for your approval" msgstr "Uusi paluuviite artikkeliisi \"%s\" odottaa hyväksymistäsi" #. translators: 1: Post title -#: wp-includes/pluggable.php:1635 -msgid "A new pingback on the post \"%s\" is waiting for your approval" -msgstr "Uusi päivitysilmoitus artikkeliisi \"%s\" odottaa hyväksymistäsi" +#: wp-includes/pluggable.php:1476 +msgid "New pingback on your post \"%s\"" +msgstr "Uusi päivitysilmoitus artikkeliisi \"%s\"" + +#: wp-includes/pluggable.php:1486 +msgid "New comment on your post \"%s\"" +msgstr "Uusi kommentti artikkeliisi \"%s\"" + +#: wp-includes/ms-load.php:465 +msgid "If your site does not display, please contact the owner of this network." +msgstr "Jos sivustosi ei näy, ole yhteydessä verkon ylläpitäjään." + +#: wp-includes/ms-load.php:466 +msgid "If you are the owner of this network please check that MySQL is running properly and all tables are error free." +msgstr "Jos olet tämän verkon ylläpitäjä, varmista että MySQL toimii oikein eikä missään taulussa ole virheitä." #. translators: 1: Post title -#: wp-includes/pluggable.php:1645 -msgid "A new comment on the post \"%s\" is waiting for your approval" -msgstr "Uusi kommentti artikkeliisi \"%s\" odottaa hyväksymistäsi" +#: wp-includes/pluggable.php:1465 +msgid "New trackback on your post \"%s\"" +msgstr "Uusi paluuviite artikkeliisi \"%s\"" + +#: wp-signup.php:319 +msgid "Sites you are already a member of:" +msgstr "Sivustot, joiden jäsen olet:" + +#: wp-signup.php:328 +msgid "If you’re not going to use a great site domain, leave it for a new user. Now have at it!" +msgstr "Mikäli et aio käyttää sivuston verkkotunnusta, jätä se uusille käyttäjille. " + +#: wp-signup.php:343 +msgid "Create Site" +msgstr "Luo sivusto" + +#. translators: %s: site name +#: wp-signup.php:469 +msgid "The site %s is yours." +msgstr "Sivusto %s on nyt sinun." + +#. translators: %s: post title +#: wp-includes/theme-compat/comments.php:37 +msgid "One response to %s" +msgstr "Yksi vastaus artikkeliin %s" #: wp-includes/widgets/class-wp-widget-tag-cloud.php:166 msgid "Taxonomy:" msgstr "Luokittelu:" -#: wp-includes/widgets/class-wp-nav-menu-widget.php:141 -msgid "Select Menu:" -msgstr "Valitse valikko:" - #: wp-includes/taxonomy.php:99 msgid "Navigation Menu" msgstr "Navigaatiovalikko" -#. translators: %s: post title -#: wp-includes/theme-compat/comments.php:37 -msgid "One response to %s" -msgstr "Yksi vastaus artikkeliin %s" +#: wp-includes/widgets/class-wp-nav-menu-widget.php:141 +msgid "Select Menu:" +msgstr "Valitse valikko:" #: wp-includes/admin-bar.php:807 #: wp-includes/class-wp-customize-nav-menus.php:567 msgid "Menus" msgstr "Valikot" -#: wp-includes/class-wp-xmlrpc-server.php:417 -msgid "Software Name" -msgstr "Ohjelmiston nimi" +#. translators: 1: Database error message, 2: SQL query +#: wp-includes/wp-db.php:1372 +msgid "WordPress database error %1$s for query %2$s" +msgstr "WordPress-tietokannan virhe %1$s kyselylle %2$s" -#: wp-includes/class-wp-xmlrpc-server.php:422 -msgid "Software Version" -msgstr "Ohjelmiston versio" +#. translators: 1: Database error message, 2: SQL query, 3: Name of the calling +#. function +#: wp-includes/wp-db.php:1369 +msgid "WordPress database error %1$s for query %2$s made by %3$s" +msgstr "WordPress-tietokannan virhe %1$s kyselylle %2$s Tekijä: %3$s" -#: wp-includes/class-wp-xmlrpc-server.php:479 -msgid "Time Zone" -msgstr "Aikavyöhyke" +#: wp-includes/load.php:141 +msgid "Your PHP installation appears to be missing the MySQL extension which is required by WordPress." +msgstr "PHP-asennuksestasi puuttuu vaadittu MySQL-laajennos." -#: wp-includes/class-wp-xmlrpc-server.php:504 -msgid "Allow new users to sign up" -msgstr "Salli uusien käyttäjien rekisteröityminen" +#: wp-includes/class-wp-xmlrpc-server.php:6476 +msgid "The specified target URL does not exist." +msgstr "Kohdeosoitetta (URL) ei ole olemassa." -#: wp-includes/class-wp-xmlrpc-server.php:2702 -#: wp-includes/class-wp-xmlrpc-server.php:2822 -#: wp-includes/class-wp-xmlrpc-server.php:2884 -msgid "Sorry, no such page." -msgstr "Sivua ei ole." +#. translators: 1: URL of the page linked from, 2: URL of the page linked to +#: wp-includes/class-wp-xmlrpc-server.php:6443 +msgid "Pingback from %1$s to %2$s registered. Keep the web talking! :-)" +msgstr "Päivitysilmoitus %1$s artikkeliin %2$s havaittu." -#: wp-includes/class-wp-xmlrpc-server.php:2831 -msgid "Failed to delete the page." -msgstr "Sivun poistaminen epäonnistui." +#: wp-includes/class-wp-xmlrpc-server.php:6410 +msgid "The source URL does not contain a link to the target URL, and so cannot be used as a source." +msgstr "Lähdeosoitteesta ei löydy linkkiä kohdeosoitteeseen, joten se ei kelpaa lähteeksi." -#: wp-includes/class-wp-xmlrpc-server.php:3254 -#: wp-includes/class-wp-xmlrpc-server.php:3386 -#: wp-includes/class-wp-xmlrpc-server.php:3453 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 -msgid "Invalid comment ID." -msgstr "Kommentin ID ei kelpaa." +#: wp-includes/class-wp-xmlrpc-server.php:6373 +msgid "We cannot find a title on that page." +msgstr "Sivulta ei löydy otsikkoa." -#: wp-includes/class-wp-xmlrpc-server.php:3311 -#: wp-includes/class-wp-xmlrpc-server.php:3468 -msgid "Invalid comment status." -msgstr "Kommentin tila ei kelpaa." +#: wp-includes/class-wp-xmlrpc-server.php:6352 +msgid "The source URL does not exist." +msgstr "Lähdeosoitetta (URL) ei ole olemassa." + +#: wp-includes/class-wp-xmlrpc-server.php:6327 +msgid "The pingback has already been registered." +msgstr "Päivitysilmoitus on jo rekisteröity." + +#: wp-includes/class-wp-xmlrpc-server.php:6319 +msgid "The source URL and the target URL cannot both point to the same resource." +msgstr "Lähde- ja kohdeosoite eivät saa viitata samaan resurssiin." + +#: wp-includes/class-wp-xmlrpc-server.php:6309 +#: wp-includes/class-wp-xmlrpc-server.php:6316 +#: wp-includes/class-wp-xmlrpc-server.php:6323 +#: wp-includes/class-wp-xmlrpc-server.php:6469 +msgid "The specified target URL cannot be used as a target. It either doesn’t exist, or it is not a pingback-enabled resource." +msgstr "Antamaasi URL-osoitteeseen ei voida lähettää päivitysilmoitusta. Kirjoitit osoitteen väärin tai kyseinen osoite ei voi vastaanottaa päivitysilmoituksia." + +#: wp-includes/class-wp-xmlrpc-server.php:6274 +msgid "Is there no link to us?" +msgstr "Eikö tänne ole linkkejä?" + +#. translators: 1: file name, 2: error message +#: wp-includes/class-wp-xmlrpc-server.php:5864 +msgid "Could not write file %1$s (%2$s)." +msgstr "Tiedoston %1$s tallennus ei onnistu (%2$s)." + +#: wp-includes/class-wp-xmlrpc-server.php:5298 +msgid "Sorry, you are not allowed to change the page author as this user." +msgstr "Sinulla ei ole sivun kirjoittajan vaihtamiseen tarvittavaa oikeutta." + +#: wp-includes/class-wp-xmlrpc-server.php:5293 +msgid "Sorry, you are not allowed to change the post author as this user." +msgstr "Sinulla ei ole artikkelin kirjoittajan vaihtamiseen tarvittavaa oikeutta." + +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:645 +msgid "Sorry, you are not allowed to update posts as this user." +msgstr "Sinulle ei ole oikeutta päivittää artikkeleita tänä käyttäjänä." + +#: wp-includes/class-wp-customize-nav-menus.php:790 +#: wp-includes/class-wp-xmlrpc-server.php:1331 +#: wp-includes/class-wp-xmlrpc-server.php:1815 +#: wp-includes/class-wp-xmlrpc-server.php:3323 +#: wp-includes/class-wp-xmlrpc-server.php:4138 +#: wp-includes/class-wp-xmlrpc-server.php:4902 +#: wp-includes/class-wp-xmlrpc-server.php:4960 +#: wp-includes/class-wp-xmlrpc-server.php:5238 +#: wp-includes/class-wp-xmlrpc-server.php:5302 wp-includes/post.php:1160 +#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:128 +msgid "Invalid post type." +msgstr "Artikkelin tyyppi ei kelpaa." + +#: wp-includes/class-wp-xmlrpc-server.php:1358 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1129 +msgid "Sorry, you are not allowed to publish posts in this post type." +msgstr "Sinulla ei ole oikeutta julkaista tämän sisältötyypin sisältöjä." + +#: wp-includes/class-wp-xmlrpc-server.php:4724 +#: wp-includes/class-wp-xmlrpc-server.php:4796 +#: wp-includes/class-wp-xmlrpc-server.php:5628 +#: wp-includes/class-wp-xmlrpc-server.php:6162 +msgid "Sorry, no such post." +msgstr "Artikkelia ei ole." + +#: wp-includes/class-wp-xmlrpc-server.php:4733 +#: wp-includes/class-wp-xmlrpc-server.php:5407 +#: wp-includes/class-wp-xmlrpc-server.php:6217 +msgid "Sorry, you are not allowed to publish this post." +msgstr "Sinulla ei ole artikkeleiden kirjoittamiseen tarvittavaa oikeutta." + +#: wp-includes/class-wp-xmlrpc-server.php:4564 +#: wp-includes/class-wp-xmlrpc-server.php:5946 +msgid "Either there are no posts, or something went wrong." +msgstr "Artikkeleita ei ole tai jotain meni pieleen." + +#: wp-includes/class-wp-xmlrpc-server.php:3911 +msgid "Sorry, you are not allowed to update options." +msgstr "Sinulla ei ole asetusten päivittämiseen tarvittavaa oikeutta." + +#: wp-includes/class-wp-xmlrpc-server.php:3713 +msgid "Sorry, you are not allowed access to details of this post." +msgstr "Sinulla ei ole artikkelin lisätietojen selaamiseen tarvittavaa oikeutta." + +#: wp-includes/class-wp-xmlrpc-server.php:3616 +msgid "A valid email address is required." +msgstr "Validi sähköpostiosoite vaaditaan." + +#: wp-includes/class-wp-xmlrpc-server.php:3614 +msgid "Comment author name and email are required." +msgstr "Kommentin kirjoittajan nimi ja sähköposti ovat pakollisia." #: wp-includes/class-wp-xmlrpc-server.php:1337 #: wp-includes/class-wp-xmlrpc-server.php:1593 @@ -8624,1754 +8710,1715 @@ msgstr "Kommentin tila ei kelpaa." msgid "Invalid post ID." msgstr "Artikkelin tunnus ei kelpaa." -#: wp-includes/class-wp-xmlrpc-server.php:3911 -msgid "Sorry, you are not allowed to update options." -msgstr "Sinulla ei ole asetusten päivittämiseen tarvittavaa oikeutta." +#: wp-includes/class-wp-xmlrpc-server.php:3554 +msgid "You must be registered to comment." +msgstr "Vain rekisteröityneet ja sisäänkirjautuneet käyttäjät voivat kommentoida." -#: wp-includes/class-wp-xmlrpc-server.php:4564 -#: wp-includes/class-wp-xmlrpc-server.php:5946 -msgid "Either there are no posts, or something went wrong." -msgstr "Artikkeleita ei ole tai jotain meni pieleen." +#: wp-includes/class-wp-xmlrpc-server.php:3311 +#: wp-includes/class-wp-xmlrpc-server.php:3468 +msgid "Invalid comment status." +msgstr "Kommentin tila ei kelpaa." -#: wp-includes/class-wp-xmlrpc-server.php:4733 -#: wp-includes/class-wp-xmlrpc-server.php:5407 -#: wp-includes/class-wp-xmlrpc-server.php:6217 -msgid "Sorry, you are not allowed to publish this post." -msgstr "Sinulla ei ole artikkeleiden kirjoittamiseen tarvittavaa oikeutta." +#: wp-includes/class-wp-xmlrpc-server.php:3254 +#: wp-includes/class-wp-xmlrpc-server.php:3386 +#: wp-includes/class-wp-xmlrpc-server.php:3453 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 +msgid "Invalid comment ID." +msgstr "Kommentin ID ei kelpaa." -#: wp-includes/class-wp-xmlrpc-server.php:4724 -#: wp-includes/class-wp-xmlrpc-server.php:4796 -#: wp-includes/class-wp-xmlrpc-server.php:5628 -#: wp-includes/class-wp-xmlrpc-server.php:6162 -msgid "Sorry, no such post." -msgstr "Artikkelia ei ole." +#: wp-includes/class-wp-xmlrpc-server.php:3113 +#: wp-includes/class-wp-xmlrpc-server.php:3115 +msgid "Sorry, the new category failed." +msgstr "Kategorian lisääminen epäonnistui." -#: wp-includes/class-wp-customize-nav-menus.php:790 -#: wp-includes/class-wp-xmlrpc-server.php:1331 -#: wp-includes/class-wp-xmlrpc-server.php:1815 -#: wp-includes/class-wp-xmlrpc-server.php:3323 -#: wp-includes/class-wp-xmlrpc-server.php:4138 -#: wp-includes/class-wp-xmlrpc-server.php:4902 -#: wp-includes/class-wp-xmlrpc-server.php:4960 -#: wp-includes/class-wp-xmlrpc-server.php:5238 -#: wp-includes/class-wp-xmlrpc-server.php:5302 wp-includes/post.php:1160 -#: wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php:128 -msgid "Invalid post type." -msgstr "Artikkelin tyyppi ei kelpaa." - -#: wp-includes/class-wp-xmlrpc-server.php:5293 -msgid "Sorry, you are not allowed to change the post author as this user." -msgstr "Sinulla ei ole artikkelin kirjoittajan vaihtamiseen tarvittavaa oikeutta." +#: wp-includes/class-wp-xmlrpc-server.php:2831 +msgid "Failed to delete the page." +msgstr "Sivun poistaminen epäonnistui." -#: wp-includes/class-wp-xmlrpc-server.php:5298 -msgid "Sorry, you are not allowed to change the page author as this user." -msgstr "Sinulla ei ole sivun kirjoittajan vaihtamiseen tarvittavaa oikeutta." +#: wp-includes/class-wp-xmlrpc-server.php:2702 +#: wp-includes/class-wp-xmlrpc-server.php:2822 +#: wp-includes/class-wp-xmlrpc-server.php:2884 +msgid "Sorry, no such page." +msgstr "Sivua ei ole." -#: wp-includes/class-wp-xmlrpc-server.php:6274 -msgid "Is there no link to us?" -msgstr "Eikö tänne ole linkkejä?" +#: wp-includes/class-wp-xmlrpc-server.php:504 +msgid "Allow new users to sign up" +msgstr "Salli uusien käyttäjien rekisteröityminen" -#: wp-includes/class-wp-xmlrpc-server.php:6309 -#: wp-includes/class-wp-xmlrpc-server.php:6316 -#: wp-includes/class-wp-xmlrpc-server.php:6323 -#: wp-includes/class-wp-xmlrpc-server.php:6469 -msgid "The specified target URL cannot be used as a target. It either doesn’t exist, or it is not a pingback-enabled resource." -msgstr "Antamaasi URL-osoitteeseen ei voida lähettää päivitysilmoitusta. Kirjoitit osoitteen väärin tai kyseinen osoite ei voi vastaanottaa päivitysilmoituksia." +#: wp-includes/class-wp-xmlrpc-server.php:479 +msgid "Time Zone" +msgstr "Aikavyöhyke" -#: wp-includes/class-wp-xmlrpc-server.php:6319 -msgid "The source URL and the target URL cannot both point to the same resource." -msgstr "Lähde- ja kohdeosoite eivät saa viitata samaan resurssiin." +#: wp-includes/class-wp-xmlrpc-server.php:422 +msgid "Software Version" +msgstr "Ohjelmiston versio" -#: wp-includes/class-wp-xmlrpc-server.php:6327 -msgid "The pingback has already been registered." -msgstr "Päivitysilmoitus on jo rekisteröity." +#: wp-includes/class-wp-xmlrpc-server.php:417 +msgid "Software Name" +msgstr "Ohjelmiston nimi" -#: wp-includes/class-wp-xmlrpc-server.php:6352 -msgid "The source URL does not exist." -msgstr "Lähdeosoitetta (URL) ei ole olemassa." +#: wp-signup.php:862 +msgid "User registration has been disabled." +msgstr "Käyttäjärekisteröintiä ei tällä hetkellä sallita." -#: wp-includes/class-wp-xmlrpc-server.php:6373 -msgid "We cannot find a title on that page." -msgstr "Sivulta ei löydy otsikkoa." +#: wp-signup.php:850 +msgid "Registration has been disabled." +msgstr "Rekisteröitymistä ei tällä hetkellä sallita." -#: wp-includes/class-wp-xmlrpc-server.php:6410 -msgid "The source URL does not contain a link to the target URL, and so cannot be used as a source." -msgstr "Lähdeosoitteesta ei löydy linkkiä kohdeosoitteeseen, joten se ei kelpaa lähteeksi." +#: wp-signup.php:756 +msgid "Still waiting for your email?" +msgstr "Odotatko vielä sähköpostia?" -#. translators: 1: URL of the page linked from, 2: URL of the page linked to -#: wp-includes/class-wp-xmlrpc-server.php:6443 -msgid "Pingback from %1$s to %2$s registered. Keep the web talking! :-)" -msgstr "Päivitysilmoitus %1$s artikkeliin %2$s havaittu." +#: wp-signup.php:673 +msgid "Signup" +msgstr "Rekisteröidy" -#: wp-includes/class-wp-xmlrpc-server.php:6476 -msgid "The specified target URL does not exist." -msgstr "Kohdeosoitetta (URL) ei ole olemassa." +#: wp-signup.php:609 +msgid "If you do not activate your username within two days, you will have to sign up again." +msgstr "Mikäli et aktivoi käyttäjätunnustasi kahden vuorokauden kuluessa, sinun täytyy rekisteröityä uudelleen." -#. translators: 1: Database error message, 2: SQL query, 3: Name of the calling -#. function -#: wp-includes/wp-db.php:1369 -msgid "WordPress database error %1$s for query %2$s made by %3$s" -msgstr "WordPress-tietokannan virhe %1$s kyselylle %2$s Tekijä: %3$s" +#: wp-signup.php:606 +msgid "But, before you can start using your new username, <strong>you must activate it</strong>." +msgstr "Ennen kuin voit aloittaa käyttämään uutta käyttäjätunnustasi, <strong>sinun täytyy aktivoida se</strong>." -#. translators: 1: Database error message, 2: SQL query -#: wp-includes/wp-db.php:1372 -msgid "WordPress database error %1$s for query %2$s" -msgstr "WordPress-tietokannan virhe %1$s kyselylle %2$s" +#. translators: %s: username +#: wp-signup.php:605 +msgid "%s is your new username" +msgstr "%s on uusi käyttäjätunnuksesi" -#: wp-includes/load.php:141 -msgid "Your PHP installation appears to be missing the MySQL extension which is required by WordPress." -msgstr "PHP-asennuksestasi puuttuu vaadittu MySQL-laajennos." +#: wp-includes/script-loader.php:990 wp-signup.php:559 +msgid "Next" +msgstr "Seuraava" -#: wp-includes/class-wp-xmlrpc-server.php:3554 -msgid "You must be registered to comment." -msgstr "Vain rekisteröityneet ja sisäänkirjautuneet käyttäjät voivat kommentoida." +#: wp-signup.php:555 +msgid "Just a username, please." +msgstr "Vain käyttäjätunnus, kiitos." -#: wp-includes/class-wp-xmlrpc-server.php:3113 -#: wp-includes/class-wp-xmlrpc-server.php:3115 -msgid "Sorry, the new category failed." -msgstr "Kategorian lisääminen epäonnistui." +#. translators: %s: name of the network +#: wp-signup.php:535 +msgid "Get your own %s account in seconds" +msgstr "Luo oma %s käyttäjätilisi hetkessä" -#: wp-includes/class-wp-xmlrpc-server.php:3713 -msgid "Sorry, you are not allowed access to details of this post." -msgstr "Sinulla ei ole artikkelin lisätietojen selaamiseen tarvittavaa oikeutta." +#: wp-signup.php:310 +msgid "There was a problem, please correct the form below and try again." +msgstr "Lomakkeesta löytyi virheitä, korjaa virheet ja yritä uudelleen." -#: wp-includes/class-wp-xmlrpc-server.php:3616 -msgid "A valid email address is required." -msgstr "Validi sähköpostiosoite vaaditaan." +#: wp-signup.php:236 +msgid "Email Address:" +msgstr "Sähköpostiosoite:" -#: wp-includes/class-wp-xmlrpc-server.php:1358 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1129 -msgid "Sorry, you are not allowed to publish posts in this post type." -msgstr "Sinulla ei ole oikeutta julkaista tämän sisältötyypin sisältöjä." +#: wp-signup.php:233 +msgid "(Must be at least 4 characters, letters and numbers only.)" +msgstr "(Vähintään 4 merkkiä, ainoastaan kirjaimia ja numeroita.)" -#. translators: 1: file name, 2: error message -#: wp-includes/class-wp-xmlrpc-server.php:5864 -msgid "Could not write file %1$s (%2$s)." -msgstr "Tiedoston %1$s tallennus ei onnistu (%2$s)." +#: wp-signup.php:173 +msgid "Privacy:" +msgstr "Tietosuoja:" -#: wp-includes/class-wp-xmlrpc-server.php:3614 -msgid "Comment author name and email are required." -msgstr "Kommentin kirjoittajan nimi ja sähköposti ovat pakollisia." +#. translators: %s: POP3 error +#: wp-mail.php:238 +msgid "Oops: %s" +msgstr "Oho: %s" -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:645 -msgid "Sorry, you are not allowed to update posts as this user." -msgstr "Sinulle ei ole oikeutta päivittää artikkeleita tänä käyttäjänä." +#. translators: Post author email address +#: wp-mail.php:128 +msgid "Author is %s" +msgstr "Kirjoittaja on %s" -#: wp-includes/class-wp-theme.php:801 -msgid "Gray" -msgstr "Harmaa" +#: wp-mail.php:60 +msgid "There doesn’t seem to be any new mail." +msgstr "Ei uusia viestejä." -#: wp-includes/post.php:237 -msgid "Trash <span class=\"count\">(%s)</span>" -msgid_plural "Trash <span class=\"count\">(%s)</span>" -msgstr[0] "Roskakori <span class=\"count\">(%s)</span>" -msgstr[1] "Roskakori <span class=\"count\">(%s)</span>" +#: wp-mail.php:40 +msgid "Slow down cowboy, no need to check for new mails so often!" +msgstr "Hidasta vähän, ei sinun noin usein tarvitse tarkistaa sähköpostiasi!" -#: wp-includes/class-wp-editor.php:1083 -msgid "General" -msgstr "Yleiset" +#: wp-login.php:868 +msgid "Registration complete. Please check your email." +msgstr "Rekisteröinti suoritettu. Tarkista sähköpostisi." -#: wp-includes/comment.php:241 -msgid "Unapproved" -msgstr "Hylätyt" +#: wp-login.php:866 +msgid "Check your email for your new password." +msgstr "Uusi salasana lähetetään sähköpostiisi." -#: wp-includes/comment.php:658 wp-includes/comment.php:661 -#: wp-includes/comment.php:664 -msgid "Duplicate comment detected; it looks as though you’ve already said that!" -msgstr "Identtinen kommentti on jo olemassa; taisit sanoa samat sanat jo aiemmin!" +#: wp-login.php:864 +msgid "Check your email for the confirmation link." +msgstr "Ohjeet salasanan palautukseen lähetetään sähköpostiisi." -#: wp-includes/comment.php:2095 -msgid "Could not update comment status" -msgstr "Kommenttia ei voitu päivittää" +#: wp-login.php:862 +msgid "User registration is currently not allowed." +msgstr "Käyttäjärekisteröintiä ei tällä hetkellä sallita." -#: wp-includes/cron.php:405 -msgid "Once Hourly" -msgstr "Kerran tunnissa" +#: wp-login.php:860 +msgid "You are now logged out." +msgstr "Olet kirjautunut ulos." -#: wp-includes/cron.php:406 -msgid "Twice Daily" -msgstr "Kahdesti päivässä" +#: wp-login.php:819 +msgid "You have logged in successfully." +msgstr "Olet kirjautunut sisään onnistuneesti." -#: wp-includes/cron.php:407 -msgid "Once Daily" -msgstr "Kerran päivässä" +#: wp-includes/user.php:144 wp-includes/user.php:170 wp-includes/user.php:222 +#: wp-includes/user.php:242 wp-login.php:748 wp-login.php:942 +msgid "Lost your password?" +msgstr "Salasana hukassa?" -#: wp-includes/widgets/class-wp-widget-links.php:142 -#: wp-includes/widgets/class-wp-widget-pages.php:135 -msgid "Sort by:" -msgstr "Lajittele:" +#: wp-login.php:721 +msgid "Register For This Site" +msgstr "Rekisteröidy tälle sivustolle" -#: wp-includes/widgets/class-wp-widget-pages.php:137 -msgid "Page title" -msgstr "Sivun otsikko" +#: wp-login.php:721 +msgid "Registration Form" +msgstr "Rekisteröintilomake" -#: wp-includes/widgets/class-wp-widget-pages.php:138 -msgid "Page order" -msgstr "Sivujärjestys" +#: wp-login.php:549 +msgid "Get New Password" +msgstr "Pyydä uusi salasana »" -#: wp-includes/widgets/class-wp-widget-pages.php:143 -msgid "Exclude:" -msgstr "Jätä pois:" +#: wp-login.php:530 +msgid "Lost Password" +msgstr "Salasana hukassa?" -#: wp-includes/widgets/class-wp-widget-pages.php:146 -msgid "Page IDs, separated by commas." -msgstr "Sivujen tunnukset pilkuilla erotettuna." +#: wp-includes/user.php:2310 +msgid "<strong>ERROR</strong>: The email address isn’t correct." +msgstr "<strong>VIRHE</strong>: Sähköpostiosoite ei ole oikein." -#: wp-includes/widgets/class-wp-widget-links.php:27 -msgid "Your blogroll" -msgstr "Näyttää linkkilistan linkit" +#: wp-includes/user.php:2308 +msgid "<strong>ERROR</strong>: Please type your email address." +msgstr "<strong>VIRHE</strong>: Syötä sähköpostiosoitteesi." -#: wp-includes/widgets/class-wp-widget-links.php:152 -msgid "Show Link Image" -msgstr "Linkki kuvaan" +#: wp-includes/user.php:2169 wp-includes/user.php:2172 +#: wp-includes/user.php:2176 wp-includes/user.php:2201 +#: wp-includes/user.php:2210 wp-includes/user.php:2214 +#: wp-includes/user.php:2231 +msgid "Invalid key" +msgstr "Avain ei kelpaa" -#: wp-includes/widgets/class-wp-widget-links.php:154 -msgid "Show Link Name" -msgstr "Linkin nimi" +#: wp-login.php:375 +msgid "The email could not be sent." +msgstr "Sähköpostiviestiä ei voitu lähettää." -#: wp-includes/widgets/class-wp-widget-links.php:156 -msgid "Show Link Description" -msgstr "Linkin kuvaus" +#. translators: Password reset email subject. 1: Site name +#: wp-login.php:345 +msgid "[%s] Password Reset" +msgstr "[%s] Salasanan vaihto" -#: wp-includes/widgets/class-wp-widget-archives.php:82 -msgid "Select Month" -msgstr "Valitse kuukausi" +#: wp-includes/user.php:2114 +msgid "Password reset is not allowed for this user" +msgstr "Sinulla ei ole oikeutta vaihtaa salasanaasi" -#: wp-includes/widgets/class-wp-widget-archives.php:161 -#: wp-includes/widgets/class-wp-widget-categories.php:167 -msgid "Show post counts" -msgstr "Näytä artikkeleiden lukumäärä" +#: wp-login.php:314 +msgid "<strong>ERROR</strong>: Invalid username or email." +msgstr "<strong>VIRHE</strong>: Käyttäjätunnus tai sähköpostiosoite ei kelpaa." -#: wp-includes/widgets/class-wp-widget-calendar.php:41 -msgid "Calendar" -msgstr "Kalenteri" +#: wp-login.php:293 +msgid "<strong>ERROR</strong>: There is no user registered with that email address." +msgstr "<strong>VIRHE</strong>: Tällä sähköpostiosoitteella ei ole rekisteröityneitä käyttäjiä." -#: wp-includes/class-wp-editor.php:1259 -#: wp-includes/widgets/class-wp-widget-text.php:43 -msgid "Text" -msgstr "Teksti" +#: wp-login.php:289 +msgid "<strong>ERROR</strong>: Enter a username or email address." +msgstr "<strong>VIRHE</strong>: Syötä käyttäjätunnus tai sähköpostiosoite." -#: wp-includes/widgets/class-wp-widget-categories.php:170 -msgid "Show hierarchy" -msgstr "Näytä hierarkia" +#: wp-login.php:104 +msgid "Powered by WordPress" +msgstr "Moottorina WordPress" -#: wp-includes/widgets/class-wp-widget-recent-posts.php:135 -msgid "Number of posts to show:" -msgstr "Näytettävien artikkeleiden lukumäärä:" +#. translators: 1: WordPress version number, 2: Minimum required MySQL version +#. number +#: wp-includes/wp-db.php:3221 +msgid "<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher" +msgstr "<strong>VIRHE</strong>: WordPress %1$s tarvitsee MySQL-ohjelmasta vähintään version %2$s" -#. translators: comments widget: 1: comment author, 2: post link -#: wp-includes/widgets/class-wp-widget-recent-comments.php:116 -msgctxt "widgets" -msgid "%1$s on %2$s" -msgstr "%1$s: %2$s" +#: wp-includes/widgets.php:173 wp-includes/widgets.php:244 +msgid "Sidebar %d" +msgstr "Sivupalkki %d" -#: wp-includes/widgets.php:1267 -msgid "Untitled" -msgstr "Nimetön" +#: wp-includes/functions.php:5274 wp-includes/user.php:280 +msgid "Please log in again." +msgstr "Kirjaudu sisään uudelleen." -#: wp-includes/widgets.php:1351 -msgid "Enter the RSS feed URL here:" -msgstr "Syötä RSS-syötteen osoite (URL):" +#: wp-includes/user.php:310 +msgid "<strong>ERROR</strong>: Your account has been marked as a spammer." +msgstr "<strong>VIRHE</strong>: Käyttäjätunnuksesi on merkitty roskapostittajien listalle." -#: wp-includes/widgets.php:1354 -msgid "Give the feed a title (optional):" -msgstr "Anna syötteelle otsikko (valinnainen):" +#: wp-includes/user.php:133 wp-includes/user.php:206 +msgid "<strong>ERROR</strong>: The password field is empty." +msgstr "<strong>VIRHE</strong>: Salasanaa ei ole syötetty." -#: wp-includes/widgets.php:1357 -msgid "How many items would you like to display?" -msgstr "Montako syötteen elementeistä näytetään?" +#: wp-includes/user.php:130 +msgid "<strong>ERROR</strong>: The username field is empty." +msgstr "<strong>VIRHE</strong>: Käyttäjätunnusta ei ole syötetty." -#: wp-includes/widgets.php:1367 -msgid "Display item content?" -msgstr "Näytä artikkelin sisältö?" +#: wp-includes/class-wp-theme.php:248 +msgid "Stylesheet is missing." +msgstr "Tyylitiedosto puuttuu." -#: wp-includes/widgets.php:1370 -msgid "Display item author if available?" -msgstr "Näytä artikkelin kirjoittaja?" +#: wp-includes/class-wp-theme.php:300 +msgid "The parent theme is missing. Please install the \"%s\" parent theme." +msgstr "Pääteema puuttuu. Asenna \"%s\"-pääteema." -#: wp-includes/widgets.php:1373 -msgid "Display item date?" -msgstr "Näytä artikkelipäivämäärä?" +#: wp-includes/taxonomy.php:4045 +msgid "Invalid object ID" +msgstr "Objektin tunnus ei kelpaa." -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:30 -msgid "Tag Cloud" -msgstr "Avainsanapilvi" +#. translators: 1: Taxonomy term slug +#: wp-includes/taxonomy.php:2658 +msgid "The slug “%s” is already in use by another term" +msgstr "Polkutunnus \"%s\" on jo käytössä." -#: wp-includes/deprecated.php:64 -msgid "new WordPress Loop" -msgstr "uusi WordPress-silmukka" +#: wp-includes/taxonomy.php:2080 +msgid "Could not insert term into the database" +msgstr "Termin lisääminen tietokantaan epäonnistui" -#: wp-includes/deprecated.php:963 -msgid "Last updated" -msgstr "Päivitetty" +#: wp-includes/taxonomy.php:726 wp-includes/taxonomy.php:2572 +#: wp-includes/taxonomy.php:3843 +msgid "Empty Term" +msgstr "Tyhjä termi" -#. translators: Comments feed title. 1: Post title -#: wp-includes/feed-rss2-comments.php:38 -msgid "Comments on: %s" -msgstr "Artikkelin %s kommentit" +#: wp-includes/script-loader.php:575 +msgid "Saving Draft…" +msgstr "Luonnosta tallennetaan…" -#. translators: Comments feed title. 1: Site name -#: wp-includes/feed-atom-comments.php:39 wp-includes/feed-rss2-comments.php:44 -msgid "Comments for %s" -msgstr "Sivuston %s kommentit" +#: wp-includes/script-loader.php:754 +msgid "Could not set that as the thumbnail image. Try a different attachment." +msgstr "En voinut asettaa tuota pienoiskuvaksi. Kokeile toista liitettä." -#. translators: Individual comment title. 1: Post title, 2: Comment author name -#: wp-includes/feed-atom-comments.php:81 wp-includes/feed-rss2-comments.php:80 -msgid "Comment on %1$s by %2$s" -msgstr "%2$s on kommentoinut artikkelia %1$s" +#: wp-includes/script-loader.php:753 +msgid "Saving..." +msgstr "Tallentaa..." -#. translators: Comment author title. 1: Comment author name -#: wp-includes/feed-atom-comments.php:84 wp-includes/feed-rss2-comments.php:83 -msgid "By: %s" -msgstr "Kirjoittaja: %s" +#: wp-includes/script-loader.php:619 +msgid "Remove From Bulk Edit" +msgstr "Poista massamuokkaustilasta" -#: wp-includes/feed-rss2-comments.php:91 -msgid "Protected Comments: Please enter your password to view comments." -msgstr "Suojattuja kommentteja: syötä salasanasi lukeaksesi niitä." +#: wp-includes/script-loader.php:618 wp-includes/script-loader.php:627 +msgid "Error while saving the changes." +msgstr "Virhe tallennettaessa muutoksia" -#. translators: Time difference between two dates, in minutes (min=minute). 1: -#. Number of minutes -#: wp-includes/formatting.php:3228 -msgid "%s min" -msgid_plural "%s mins" -msgstr[0] "%s minuutti" -msgstr[1] "%s minuuttia" +#: wp-includes/script-loader.php:597 +msgid "Submitted on:" +msgstr "Lähetetty:" -#. translators: Time difference between two dates, in hours. 1: Number of hours -#: wp-includes/formatting.php:3234 -msgid "%s hour" -msgid_plural "%s hours" -msgstr[0] "%s tunti" -msgstr[1] "%s tuntia" +#: wp-includes/script-loader.php:571 +msgid "Password Protected" +msgstr "Salasanasuojattu" -#. translators: Time difference between two dates, in days. 1: Number of days -#: wp-includes/formatting.php:3240 -msgid "%s day" -msgid_plural "%s days" -msgstr[0] "%s päivä" -msgstr[1] "%s päivää" +#: wp-includes/script-loader.php:562 +msgid "No more comments found." +msgstr "Ei kommentteja." -#. translators: used between list items, there is a space after the comma -#: wp-includes/class-wp-theme.php:758 -msgid ", " -msgstr ", " +#: wp-includes/script-loader.php:561 +msgid "Show more comments" +msgstr "Näytä enemmän kommentteja" -#: wp-includes/option.php:156 -msgid "%s is a protected WP option and may not be modified" -msgstr "%s on suojattu WP-asetus, eikä sitä voi muokata" +#: wp-includes/script-loader.php:558 +msgid "Published on:" +msgstr "Julkaistu:" -#. translators: %s: directory path -#: wp-includes/functions.php:1897 wp-includes/functions.php:2166 -msgid "Unable to create directory %s. Is its parent directory writable by the server?" -msgstr "Kansion %s luominen ei onnistu. Onko ylemmän tason kansio kirjoitussuojattu?" +#: wp-includes/script-loader.php:557 +msgid "Schedule for:" +msgstr "Ajastettu:" -#: wp-includes/functions.php:2128 -msgid "Empty filename" -msgstr "Tyhjä tiedostonimi" +#: wp-includes/script-loader.php:556 +msgid "Publish on:" +msgstr "Julkaistaan:" -#: wp-includes/functions.php:2174 -msgid "Could not write file %s" -msgstr "Tiedoston %s tallennus ei onnistu" +#: wp-includes/script-loader.php:404 +msgctxt "password strength" +msgid "Medium" +msgstr "Keskiverto" -#: wp-includes/functions.php:2607 -msgid "WordPress Failure Notice" -msgstr "WordPressin virheilmoitus" +#: wp-includes/script-loader.php:301 +msgid "moved to the trash." +msgstr "siirretty roskakoriin." -#: wp-includes/functions.php:2602 wp-includes/ms-functions.php:2011 -msgid "Please try again." -msgstr "Yritä uudelleen." +#: wp-includes/script-loader.php:300 +msgid "Crunching…" +msgstr "Raksuttaa…" -#: wp-includes/functions.php:2727 -msgid "« Back" -msgstr "« Takaisin" +#: wp-includes/script-loader.php:298 +msgid "Upload stopped." +msgstr "Siirto keskeytetty." -#: wp-includes/functions.php:2739 wp-load.php:92 -msgid "WordPress › Error" -msgstr "WordPress › Virhe" +#: wp-includes/script-loader.php:296 +msgid "Security error." +msgstr "Tietoturvavirhe." -#. translators: 1: PHP function name, 2: version number, 3: alternative -#. function name -#. translators: 1: PHP file name, 2: version number, 3: alternative file name -#. translators: 1: WordPress hook name, 2: version number, 3: alternative hook -#. name -#: wp-includes/functions.php:3831 wp-includes/functions.php:3959 -#: wp-includes/functions.php:4082 -msgid "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." -msgstr "%1$s on <strong>kehotettu välttämään</strong> versiosta %2$s asti! Käytä sen sijaan %3$s." +#: wp-includes/script-loader.php:295 +msgid "IO error." +msgstr "IO-virhe." -#. translators: 1: PHP function name, 2: version number -#. translators: 1: PHP file name, 2: version number -#. translators: 1: WordPress hook name, 2: version number -#: wp-includes/functions.php:3834 wp-includes/functions.php:3962 -#: wp-includes/functions.php:4085 -msgid "%1$s is <strong>deprecated</strong> since version %2$s with no alternative available." -msgstr "%1$s on <strong>kehotettu välttämään</strong> versiosta %2$s asti! Vaihtoehtoja ei saatavilla." +#: wp-includes/script-loader.php:291 +msgid "Upload failed." +msgstr "Siirto epäonnistui." -#: wp-includes/functions.php:4621 -msgid "Select a city" -msgstr "Valitse kaupunki" +#: wp-includes/script-loader.php:290 +msgid "HTTP error." +msgstr "HTTP-virhe." -#: wp-includes/general-template.php:272 wp-login.php:553 wp-login.php:616 -#: wp-login.php:666 wp-login.php:747 -msgid "Log in" -msgstr "Kirjaudu sisään" +#: wp-includes/script-loader.php:289 +msgid "You may only upload 1 file." +msgstr "Lataa vain yksi tiedosto kerrallaan." -#: wp-includes/general-template.php:274 -msgid "Log out" -msgstr "Kirjaudu ulos" +#: wp-includes/script-loader.php:288 +msgid "There was a configuration error. Please contact the server administrator." +msgstr "Tapahtui konfigurointivirhe. Ota yhteyttä henkilöön, joka hallinnoi palvelinta." -#: wp-includes/general-template.php:539 wp-login.php:556 wp-login.php:669 -#: wp-login.php:743 wp-login.php:936 -msgid "Register" -msgstr "Rekisteröidy" +#: wp-includes/script-loader.php:287 +msgid "An error occurred in the upload. Please try again later." +msgstr "Virhe siirrettäessä tiedostoa. Yritä myöhemmin uudelleen." -#. translators: 1: separator, 2: search phrase -#: wp-includes/general-template.php:1194 -msgid "Search Results %1$s %2$s" -msgstr "Hakutulokset %1$s %2$s" +#: wp-includes/script-loader.php:282 +msgid "This file is empty. Please try another." +msgstr "Tiedosto on tyhjä." -#: wp-includes/general-template.php:984 wp-includes/general-template.php:1199 -msgid "Page not found" -msgstr "Sivua ei löydy" +#: wp-includes/script-loader.php:280 +msgid "You have attempted to queue too many files." +msgstr "Liian monta tiedostoa jonossa." -#. translators: 1: month name, 2: 4-digit year -#: wp-includes/general-template.php:1758 wp-includes/media.php:3428 -msgid "%1$s %2$d" -msgstr "%1$s %2$d" +#: wp-includes/script-loader.php:270 +msgid "This feature requires inline frames. You have iframes disabled or your browser does not support them." +msgstr "Tämä toiminto edellyttää kehyksiä. Sinulla on kehykset estetty tai selaimesi ei tue niitä." -#. translators: Calendar caption: 1: month name, 2: 4-digit year -#: wp-includes/general-template.php:1983 -msgctxt "calendar caption" -msgid "%1$s %2$s" -msgstr "%1$s %2$s" +#: wp-includes/script-loader.php:268 +msgid "of" +msgstr "/" -#. translators: Separator between blog name and feed type in feed links -#: wp-includes/general-template.php:2621 wp-includes/general-template.php:2663 -msgctxt "feed link" -msgid "»" -msgstr "»" +#: wp-includes/class-wp-editor.php:1081 wp-includes/script-loader.php:267 +#: wp-includes/widgets/class-wp-widget-media-image.php:26 +msgid "Image" +msgstr "Kuva" -#. translators: 1: blog title, 2: separator (raquo) -#: wp-includes/general-template.php:2623 -msgid "%1$s %2$s Feed" -msgstr "%1$s %2$s syöte" +#: wp-includes/script-loader.php:266 +msgid "< Prev" +msgstr "« Edellinen" -#. translators: 1: blog title, 2: separator (raquo) -#: wp-includes/general-template.php:2625 -msgid "%1$s %2$s Comments Feed" -msgstr "%1$s %2$s kommenttien syöte" +#: wp-includes/script-loader.php:265 +msgid "Next >" +msgstr "Seuraava »" -#. translators: 1: blog name, 2: separator(raquo), 3: post title -#: wp-includes/general-template.php:2665 -msgid "%1$s %2$s %3$s Comments Feed" -msgstr "%1$s %2$s %3$s kommenttien syöte" +#: wp-includes/script-loader.php:133 wp-includes/script-loader.php:518 +msgid "An unidentified error has occurred." +msgstr "Tuntematon virhe." -#. translators: 1: blog name, 2: separator(raquo), 3: tag name -#: wp-includes/general-template.php:2669 -msgid "%1$s %2$s %3$s Tag Feed" -msgstr "%1$s %2$s %3$s avainsanan RSS-syöte" +#: wp-includes/script-loader.php:96 +msgid "Enter a description of the image" +msgstr "Syötä kuvan kuvaus" -#. translators: 1: blog name, 2: separator(raquo), 3: author name -#: wp-includes/general-template.php:2673 -msgid "%1$s %2$s Posts by %3$s Feed" -msgstr "Kirjoittajan %3$s artikkelit sivustolla %1$s %2$s RSS-syöte" +#: wp-includes/script-loader.php:95 +msgid "Enter the URL of the image" +msgstr "Syötä kuvan osoite (URL)" -#. translators: 1: blog name, 2: separator(raquo), 3: search phrase -#: wp-includes/general-template.php:2675 -msgid "%1$s %2$s Search Results for “%3$s” Feed" -msgstr "%1$s %2$s haun tulokset haulle “%3$s” RSS-syöte" +#: wp-includes/script-loader.php:94 +msgid "Enter the URL" +msgstr "Syötä osoite (URL)" -#: wp-includes/general-template.php:3292 -msgid "« Previous" -msgstr "« Edellinen" +#: wp-includes/script-loader.php:93 +msgid "close tags" +msgstr "Sulje tagit" -#: wp-includes/general-template.php:3293 -msgid "Next »" -msgstr "Seuraava »" +#: wp-includes/script-loader.php:92 +msgid "Close all open tags" +msgstr "Sulje kaikki avoimet tagit" -#: wp-includes/class-http.php:268 -msgid "User has blocked requests through HTTP." -msgstr "Käyttäjä on estänyt HTTP-pyynnöt." +#: wp-includes/rss.php:917 wp-includes/widgets.php:1251 +msgid "An error has occurred, which probably means the feed is down. Try again later." +msgstr "On tapahtunut virhe; syötteen palvelin ei luultavasti vastaa. Yritä myöhemmin uudestaan." -#: wp-includes/class-http.php:984 wp-includes/class-wp-http-curl.php:232 -#: wp-includes/class-wp-http-curl.php:271 -msgid "Too many redirects." -msgstr "Liian monta uudelleenohjausta." +#: wp-includes/user.php:2012 +msgid "Jabber / Google Talk" +msgstr "Jabber / Google Talk" -#: wp-includes/class-wp-http-curl.php:189 -#: wp-includes/class-wp-http-streams.php:228 -msgid "Could not open handle for fopen() to %s" -msgstr "Could not open handle for fopen() to %s" +#: wp-includes/user.php:2011 +msgid "Yahoo IM" +msgstr "Yahoo IM" -#. translators: month name -#: wp-includes/class-wp-locale.php:158 wp-includes/class-wp-locale.php:186 -msgid "January" -msgstr "tammikuu" +#: wp-includes/user.php:2010 +msgid "AIM" +msgstr "AIM" -#. translators: month name -#: wp-includes/class-wp-locale.php:159 wp-includes/class-wp-locale.php:187 -msgid "February" -msgstr "helmikuu" +#: wp-includes/user.php:1456 +msgid "Cannot create a user with an empty login name." +msgstr "Et voi luoda käyttäjää tyhjällä käyttäjänimellä." -#. translators: month name -#: wp-includes/class-wp-locale.php:160 wp-includes/class-wp-locale.php:188 -msgid "March" -msgstr "maaliskuu" +#: wp-includes/revision.php:295 +msgid "Cannot create a revision of a revision" +msgstr "Ei voida luoda revisiota revisiosta." -#. translators: month name -#: wp-includes/class-wp-locale.php:161 wp-includes/class-wp-locale.php:189 -msgid "April" -msgstr "huhtikuu" +#: wp-includes/post.php:3318 +msgid "Could not insert post into the database" +msgstr "Artikkelia ei voitu lisätä tietokantaan." -#. translators: month name -#: wp-includes/class-wp-locale.php:162 wp-includes/class-wp-locale.php:190 -msgid "May" -msgstr "toukokuu" +#: wp-includes/post.php:3303 +msgid "Could not update post in the database" +msgstr "Artikkelia ei voitu päivittää tietokantaan." -#. translators: month name -#: wp-includes/class-wp-locale.php:163 wp-includes/class-wp-locale.php:191 -msgid "June" -msgstr "kesäkuu" +#: wp-includes/post.php:3064 +msgid "Content, title, and excerpt are empty." +msgstr "Sisältö, otsikko ja ote ovat tyhjiä." -#. translators: month name -#: wp-includes/class-wp-locale.php:164 wp-includes/class-wp-locale.php:192 -msgid "July" -msgstr "heinäkuu" +#: wp-includes/post.php:237 +msgid "Trash <span class=\"count\">(%s)</span>" +msgid_plural "Trash <span class=\"count\">(%s)</span>" +msgstr[0] "Roskakori <span class=\"count\">(%s)</span>" +msgstr[1] "Roskakori <span class=\"count\">(%s)</span>" -#. translators: month name -#: wp-includes/class-wp-locale.php:165 wp-includes/class-wp-locale.php:193 -msgid "August" -msgstr "elokuu" +#: wp-includes/post.php:230 +msgid "Private <span class=\"count\">(%s)</span>" +msgid_plural "Private <span class=\"count\">(%s)</span>" +msgstr[0] "Yksityinen <span class=\"count\">(%s)</span>" +msgstr[1] "Yksityiset <span class=\"count\">(%s)</span>" -#. translators: month name -#: wp-includes/class-wp-locale.php:166 wp-includes/class-wp-locale.php:194 -msgid "September" -msgstr "syyskuu" +#: wp-includes/post.php:223 +msgid "Pending <span class=\"count\">(%s)</span>" +msgid_plural "Pending <span class=\"count\">(%s)</span>" +msgstr[0] "Tarkastettavana <span class=\"count\">(%s)</span>" +msgstr[1] "Tarkastettavana <span class=\"count\">(%s)</span>" -#. translators: month name -#: wp-includes/class-wp-locale.php:167 wp-includes/class-wp-locale.php:195 -msgid "October" -msgstr "lokakuu" +#: wp-includes/post.php:216 +msgid "Draft <span class=\"count\">(%s)</span>" +msgid_plural "Drafts <span class=\"count\">(%s)</span>" +msgstr[0] "Luonnos <span class=\"count\">(%s)</span>" +msgstr[1] "Luonnokset <span class=\"count\">(%s)</span>" -#. translators: month name -#: wp-includes/class-wp-locale.php:168 wp-includes/class-wp-locale.php:196 -msgid "November" -msgstr "marraskuu" +#: wp-includes/post.php:209 +msgid "Scheduled <span class=\"count\">(%s)</span>" +msgid_plural "Scheduled <span class=\"count\">(%s)</span>" +msgstr[0] "Ajastettu <span class=\"count\">(%s)</span>" +msgstr[1] "Ajastetut <span class=\"count\">(%s)</span>" -#. translators: month name -#: wp-includes/class-wp-locale.php:169 wp-includes/class-wp-locale.php:197 -msgid "December" -msgstr "joulukuu" +#: wp-includes/post.php:202 +msgid "Published <span class=\"count\">(%s)</span>" +msgid_plural "Published <span class=\"count\">(%s)</span>" +msgstr[0] "Julkaistu <span class=\"count\">(%s)</span>" +msgstr[1] "Julkaistut <span class=\"count\">(%s)</span>" -#. translators: weekday -#: wp-includes/class-wp-locale.php:131 wp-includes/class-wp-locale.php:140 -#: wp-includes/class-wp-locale.php:149 -msgid "Sunday" -msgstr "sunnuntai" +#: wp-includes/post.php:96 +msgid "Revision" +msgstr "Versio" -#. translators: weekday -#: wp-includes/class-wp-locale.php:132 wp-includes/class-wp-locale.php:141 -#: wp-includes/class-wp-locale.php:150 -msgid "Monday" -msgstr "maanantai" +#. translators: %s: revision date +#. translators: %s: revision date with author avatar +#: wp-includes/post-template.php:1705 wp-includes/post-template.php:1757 +msgid "%s [Current Revision]" +msgstr "%1$s [Nykyinen versio]" -#. translators: weekday -#: wp-includes/class-wp-locale.php:133 wp-includes/class-wp-locale.php:142 -#: wp-includes/class-wp-locale.php:151 -msgid "Tuesday" -msgstr "tiistai" +#. translators: %s: revision date +#. translators: %s: revision date with author avatar +#: wp-includes/post-template.php:1703 wp-includes/post-template.php:1755 +msgid "%s [Autosave]" +msgstr "%1$s [Automaattinen tallennus]" -#. translators: weekday -#: wp-includes/class-wp-locale.php:134 wp-includes/class-wp-locale.php:143 -#: wp-includes/class-wp-locale.php:152 -msgid "Wednesday" -msgstr "keskiviikko" +#: wp-includes/post-template.php:1335 +msgid "Home" +msgstr "Etusivu" -#. translators: weekday -#: wp-includes/class-wp-locale.php:135 wp-includes/class-wp-locale.php:144 -#: wp-includes/class-wp-locale.php:153 -msgid "Thursday" -msgstr "torstai" +#: wp-includes/post-template.php:867 +msgid "Previous page" +msgstr "Edellinen sivu" -#. translators: weekday -#: wp-includes/class-wp-locale.php:136 wp-includes/class-wp-locale.php:145 -#: wp-includes/class-wp-locale.php:154 -msgid "Friday" -msgstr "perjantai" +#: wp-includes/post-template.php:866 +msgid "Next page" +msgstr "Seuraava sivu" + +#: wp-includes/post-template.php:385 +msgid "There is no excerpt because this is a protected post." +msgstr "Otetta ei näytetä, koska artikkeli on suojattu." + +#: wp-includes/post-template.php:145 +msgid "Private: %s" +msgstr "Yksityinen: %s" + +#: wp-includes/post-template.php:130 +msgid "Protected: %s" +msgstr "Suojattu: %s" + +#: wp-includes/pluggable.php:1827 +msgid "[%s] Your username and password info" +msgstr "[%s] Käyttäjätunnuksesi ja salasanasi" -#. translators: weekday -#: wp-includes/class-wp-locale.php:137 wp-includes/class-wp-locale.php:146 -#: wp-includes/class-wp-locale.php:155 -msgid "Saturday" -msgstr "lauantai" +#: wp-includes/pluggable.php:1793 +msgid "[%s] New User Registration" +msgstr "[%s] Uuden käyttäjän rekisteröityminen" -#: wp-includes/class-wp-editor.php:1115 -msgid "Print" -msgstr "Tulosta" +#: wp-includes/pluggable.php:1790 wp-includes/pluggable.php:1821 +#: wp-login.php:329 +msgid "Username: %s" +msgstr "Käyttäjätunnus: %s" -#: wp-includes/class-wp-editor.php:1082 -msgid "Insert/edit image" -msgstr "Lisää kuva / Kuvan ominaisuudet" +#. translators: Comment moderation notification email subject. 1: Site name, 2: +#. Post title +#: wp-includes/pluggable.php:1678 +msgid "[%1$s] Please moderate: \"%2$s\"" +msgstr "[%1$s] Arvioitavana: \"%2$s\"" -#: wp-includes/class-wp-editor.php:1181 -msgid "Insert row before" -msgstr "Lisää rivi ennen" +#. translators: Comment moderation. 1: Number of comments awaiting approval +#: wp-includes/pluggable.php:1673 +msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" +msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" +msgstr[0] "Tällä hetkellä %s kommentti odottaa hyväksyntää. Siirry kommenttien hallintaan:" +msgstr[1] "Tällä hetkellä %s kommenttia odottaa hyväksyntää. Siirry kommenttien hallintaan:" -#: wp-includes/class-wp-editor.php:1182 -msgid "Insert row after" -msgstr "Lisää rivi jälkeen" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1659 +msgid "Approve it: %s" +msgstr "Hyväksy: %s" -#: wp-includes/class-wp-editor.php:1187 -msgid "Delete row" -msgstr "Poista rivi" +#: wp-includes/pluggable.php:1641 +msgid "Pingback excerpt: " +msgstr "Ote päivitysilmoituksesta: " -#: wp-includes/class-wp-editor.php:1183 -msgid "Insert column before" -msgstr "Lisää sarake ennen" +#: wp-includes/pluggable.php:1631 +msgid "Trackback excerpt: " +msgstr "Ote paluuviitteestä: " -#: wp-includes/class-wp-editor.php:1184 -msgid "Insert column after" -msgstr "Lisää sarake jälkeen" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1506 wp-includes/pluggable.php:1670 +msgid "Spam it: %s" +msgstr "Merkitse roskaviestiksi: %s" -#: wp-includes/class-wp-editor.php:1191 -msgid "Merge table cells" -msgstr "Yhdistä taulukon solut" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1504 wp-includes/pluggable.php:1666 +msgid "Delete it: %s" +msgstr "Poista: %s" -#: wp-includes/class-wp-editor.php:1167 -msgid "Table row properties" -msgstr "Rivin ominaisuudet" +#. translators: Comment moderation. 1: Comment action URL +#: wp-includes/pluggable.php:1502 wp-includes/pluggable.php:1663 +msgid "Trash it: %s" +msgstr "Siirrä roskakoriin: %s" -#: wp-includes/class-wp-editor.php:1168 -msgid "Table cell properties" -msgstr "Solun ominaisuudet" +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1483 +msgid "[%1$s] Pingback: \"%2$s\"" +msgstr "[%1$s] Päivitysilmoitus: \"%2$s\"" -#: wp-includes/class-wp-editor.php:1166 -msgid "Table properties" -msgstr "Taulukon ominaisuudet" +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1472 +msgid "[%1$s] Trackback: \"%2$s\"" +msgstr "[%1$s] Paluuviite: \"%2$s\"" -#: wp-includes/class-wp-editor.php:1185 -msgid "Paste table row before" -msgstr "Liitä taulukon rivi ennen" +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1494 +msgid "[%1$s] Comment: \"%2$s\"" +msgstr "[%1$s] Kommentti: \"%2$s\"" -#: wp-includes/class-wp-editor.php:1186 -msgid "Paste table row after" -msgstr "Liitä taulukon rivi jälkeen" +#: wp-includes/ms-load.php:483 +msgid "What do I do now?" +msgstr "Mitä teen nyt?" -#: wp-includes/class-wp-editor.php:1189 -msgid "Cut table row" -msgstr "Leikkaa taulukon rivi" +#. translators: New user notification email subject. 1: Network name, 2: New +#. user login +#: wp-includes/ms-functions.php:1660 +msgid "New %1$s User: %2$s" +msgstr "Uusi %1$s käyttäjä: %2$s" -#: wp-includes/class-wp-editor.php:1190 -msgid "Copy table row" -msgstr "Kopioi taulukon rivi" +#: wp-includes/ms-functions.php:1307 +msgid "New User Registration: %s" +msgstr "Uusi käyttäjä: %s" -#: wp-includes/class-wp-editor.php:1165 -msgid "Delete table" -msgstr "Poista taulukko" +#: wp-includes/ms-functions.php:1049 +msgid "That username is already activated." +msgstr "Tämä käyttäjätunnus on jo käytössä." -#: wp-includes/class-wp-editor.php:1171 -msgid "Row" -msgstr "Rivi" +#: wp-includes/ms-functions.php:1041 +msgid "Could not create user" +msgstr "Käyttäjää ei voida luoda." -#: wp-includes/class-wp-editor.php:1233 wp-includes/script-loader.php:463 -#: wp-includes/script-loader.php:574 wp-includes/script-loader.php:583 -#: wp-includes/script-loader.php:763 wp-includes/theme.php:2974 -msgid "The changes you made will be lost if you navigate away from this page." -msgstr "Muutokset häviävät mikäli poistut tältä sivulta." +#: wp-includes/ms-functions.php:1021 +msgid "Invalid activation key." +msgstr "Aktivointiavain ei kelpaa." -#: wp-includes/class-wp-editor.php:1072 -msgid "Document properties" -msgstr "Asiakirjan ominaisuudet" +#: wp-includes/ms-functions.php:498 +msgid "That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing." +msgstr "Tätä sähköpostiosoitetta on jo käytetty. Tarkista sähköpostisi saapuneet kansio aktivointiviestin varalta. Mikäli et tee mitään, voit käyttää sähköpostiosoitetta uudelleen muutaman päivän kuluttua." -#: wp-includes/class-wp-editor.php:1003 -msgid "Heading 1" -msgstr "Otsikko 1" +#: wp-includes/ms-functions.php:488 +msgid "That username is currently reserved but may be available in a couple of days." +msgstr "Tämä käyttäjätunnus on tällä hetkellä varattu, mutta saattaa vapautua muutaman päivän sisällä." -#: wp-includes/class-wp-editor.php:1004 -msgid "Heading 2" -msgstr "Otsikko 2" +#: wp-includes/ms-functions.php:476 wp-includes/user.php:1536 +msgid "Sorry, that email address is already used!" +msgstr "Valitettavasti tämä sähköpostiosoite on jo käytössä!" -#: wp-includes/class-wp-editor.php:1005 -msgid "Heading 3" -msgstr "Otsikko 3" +#: wp-includes/ms-functions.php:472 wp-includes/user.php:1462 +msgid "Sorry, that username already exists!" +msgstr "Valitettavasti tämä käyttäjätunnus on jo käytössä!" -#: wp-includes/class-wp-editor.php:1006 -msgid "Heading 4" -msgstr "Otsikko 4" +#: wp-includes/ms-functions.php:466 +msgid "Sorry, that email address is not allowed!" +msgstr "Valitettavasti tämä sähköpostiosoite ei ole sallittu!" -#: wp-includes/class-wp-editor.php:1007 -msgid "Heading 5" -msgstr "Otsikko 5" +#: wp-includes/ms-functions.php:460 +msgid "Sorry, usernames must have letters too!" +msgstr "Käyttäjätunnuksessa pitää olla myös kirjaimia!" -#: wp-includes/class-wp-editor.php:1008 -msgid "Heading 6" -msgstr "Otsikko 6" +#: wp-includes/ms-functions.php:448 +msgid "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." +msgstr "Et voi käyttää tätä sähköpostiosoitetta kirjautumiseen. Käytä toista sähköpostintarjoajaa." -#: wp-includes/class-wp-editor.php:1013 wp-includes/script-loader.php:105 -msgid "Blockquote" -msgstr "Lainaus" +#: wp-includes/ms-functions.php:242 +msgid "That user does not exist." +msgstr "Käyttäjää ei ole olemassa" -#: wp-includes/class-wp-editor.php:1027 wp-includes/script-loader.php:118 -msgid "Code" -msgstr "Koodi" +#: wp-includes/class-wp-locale.php:203 +msgid "PM" +msgstr "PM" -#: wp-includes/class-wp-editor.php:1025 wp-includes/script-loader.php:100 -msgid "Bold" -msgstr "Lihavointi" +#: wp-includes/class-wp-locale.php:202 +msgid "AM" +msgstr "AM" -#: wp-includes/class-wp-editor.php:1026 wp-includes/script-loader.php:102 -msgid "Italic" -msgstr "Kursivointi" +#: wp-includes/class-wp-locale.php:201 +msgid "pm" +msgstr "pm" -#: wp-includes/class-wp-editor.php:1020 -msgid "Underline" -msgstr "Alleviivaus" +#: wp-includes/class-wp-locale.php:200 +msgid "am" +msgstr "am" -#: wp-includes/class-wp-editor.php:1021 -msgid "Strikethrough" -msgstr "Yliviivaus" +#: wp-includes/link-template.php:2735 +msgid "« Older Comments" +msgstr "« Vanhemmat kommentit" -#: wp-includes/class-wp-editor.php:1022 -msgid "Subscript" -msgstr "Alaviite" +#: wp-includes/link-template.php:2691 +msgid "Newer Comments »" +msgstr "Uudemmat kommentit »" -#: wp-includes/class-wp-editor.php:1023 -msgid "Superscript" -msgstr "Yläviite" +#: wp-includes/deprecated.php:2671 +msgid "Last Post" +msgstr "Viimeinen artikkeli" -#: wp-includes/class-wp-editor.php:1039 -msgid "Cut" -msgstr "Leikkaa" +#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 +msgid "Next Post" +msgstr "Seuraava artikkeli" -#: wp-includes/class-wp-editor.php:1040 -msgid "Copy" -msgstr "Kopioi" +#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 +msgid "Previous Post" +msgstr "Edellinen artikkeli" -#: wp-includes/class-wp-editor.php:1041 -msgid "Paste" -msgstr "Liitä" +#: wp-includes/link-template.php:699 +msgid "Comments Feed" +msgstr "Kommenttien syöte" -#: wp-includes/class-wp-editor.php:999 -msgid "New document" -msgstr "Uusi tiedosto" +#: wp-includes/class-wp-editor.php:1249 +msgid "Insert Page Break tag" +msgstr "Lisää sivunvaihtoelementti" -#: wp-includes/class-wp-editor.php:1089 -msgid "Image description" -msgstr "Kuvaus" +#: wp-includes/class-wp-customize-manager.php:4078 +#: wp-includes/class-wp-customize-manager.php:4119 +msgid "Fill Screen" +msgstr "Täytä ruutu" -#: wp-includes/class-wp-editor.php:1086 -msgid "Border" -msgstr "Reuna" +#: wp-includes/class-wp-editor.php:1122 +msgid "Remove link" +msgstr "Poista linkki" -#: wp-includes/class-wp-editor.php:1091 -msgid "Dimensions" -msgstr "Mitat" +#: wp-includes/class-wp-editor.php:1126 wp-includes/script-loader.php:104 +msgid "Insert link" +msgstr "Lisää linkki" -#: wp-includes/class-wp-editor.php:1088 -msgid "Vertical space" -msgstr "Välistys" +#: wp-includes/class-wp-editor.php:1157 +msgid "Check Spelling" +msgstr "Tarkista oikeinkirjoitus" -#: wp-includes/class-wp-editor.php:1119 -msgid "Horizontal space" -msgstr "Rivipituus" +#: wp-includes/class-wp-editor.php:1042 +msgid "Select all" +msgstr "Valitse kaikki" -#: wp-includes/class-wp-editor.php:1204 -#: wp-includes/customize/class-wp-customize-background-position-control.php:46 -msgid "Top" -msgstr "Ylös" +#: wp-includes/class-wp-editor.php:1275 +msgid "Action" +msgstr "Toiminto" -#: wp-includes/class-wp-editor.php:1205 -msgid "Middle" -msgstr "Keskelle" +#: wp-includes/class-wp-editor.php:1274 +msgid "Letter" +msgstr "Kirjain" -#: wp-includes/class-wp-editor.php:1206 -#: wp-includes/customize/class-wp-customize-background-position-control.php:56 -msgid "Bottom" -msgstr "Alas" +#: wp-includes/media-template.php:1011 +#: wp-includes/widgets/class-wp-widget-media-image.php:131 +msgid "Link Rel" +msgstr "Linkin rel" -#: wp-includes/class-wp-editor.php:1133 -msgid "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?" -msgstr "Antamasi osoite näyttää olevan sähköpostiosoite. Haluatko lisätä osoitteeseen vaaditun mailto:-etuliitteen?" +#: wp-includes/class-wp-editor.php:1085 +msgid "Source" +msgstr "Lähde" -#: wp-includes/class-wp-editor.php:1087 -msgid "Constrain proportions" -msgstr "Säilytä mittasuhteet" +#: wp-includes/media.php:3550 +msgid "Edit Gallery" +msgstr "Muokkaa galleriaa" -#: wp-includes/media-template.php:1097 wp-includes/media-template.php:1186 -#: wp-includes/widgets/class-wp-widget-media-audio.php:72 -#: wp-includes/widgets/class-wp-widget-media-video.php:74 -msgid "Loop" -msgstr "Silmukka" +#: wp-includes/customize/class-wp-customize-background-position-control.php:57 +msgid "Bottom Right" +msgstr "Alaoikea" -#: wp-includes/media-template.php:848 wp-includes/media-template.php:914 -msgid "Align" -msgstr "Tasaus" +#: wp-includes/customize/class-wp-customize-background-position-control.php:55 +msgid "Bottom Left" +msgstr "Alavasen" -#: wp-includes/admin-bar.php:813 -msgid "Background" -msgstr "Tausta" +#: wp-includes/customize/class-wp-customize-background-position-control.php:47 +msgid "Top Right" +msgstr "Yläoikea" -#: wp-includes/class-wp-editor.php:1117 wp-includes/script-loader.php:352 -msgid "Fullscreen" -msgstr "Kokonäytön tila" +#: wp-includes/customize/class-wp-customize-background-position-control.php:45 +msgid "Top Left" +msgstr "Ylävasen" #: wp-includes/script-loader.php:369 msgid "Mute" msgstr "Hiljennä" -#: wp-includes/media.php:3550 -msgid "Edit Gallery" -msgstr "Muokkaa galleriaa" - -#: wp-includes/class-wp-editor.php:1085 -msgid "Source" -msgstr "Lähde" +#: wp-includes/class-wp-editor.php:1117 wp-includes/script-loader.php:352 +msgid "Fullscreen" +msgstr "Kokonäytön tila" -#: wp-includes/media-template.php:1011 -#: wp-includes/widgets/class-wp-widget-media-image.php:131 -msgid "Link Rel" -msgstr "Linkin rel" +#: wp-includes/admin-bar.php:813 +msgid "Background" +msgstr "Tausta" -#: wp-includes/class-wp-editor.php:1274 -msgid "Letter" -msgstr "Kirjain" +#: wp-includes/media-template.php:848 wp-includes/media-template.php:914 +msgid "Align" +msgstr "Tasaus" -#: wp-includes/class-wp-editor.php:1275 -msgid "Action" -msgstr "Toiminto" +#: wp-includes/media-template.php:1097 wp-includes/media-template.php:1186 +#: wp-includes/widgets/class-wp-widget-media-audio.php:72 +#: wp-includes/widgets/class-wp-widget-media-video.php:74 +msgid "Loop" +msgstr "Silmukka" -#: wp-includes/class-wp-editor.php:1042 -msgid "Select all" -msgstr "Valitse kaikki" +#: wp-includes/class-wp-editor.php:1087 +msgid "Constrain proportions" +msgstr "Säilytä mittasuhteet" -#: wp-includes/class-wp-editor.php:1157 -msgid "Check Spelling" -msgstr "Tarkista oikeinkirjoitus" +#: wp-includes/class-wp-editor.php:1083 +msgid "General" +msgstr "Yleiset" -#: wp-includes/class-wp-editor.php:1126 wp-includes/script-loader.php:104 -msgid "Insert link" -msgstr "Lisää linkki" +#: wp-includes/class-wp-editor.php:1135 +msgid "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?" +msgstr "Syöttämäsi URL-osoite näyttäisi olevan ulkoinen linkki. Haluatko lisätä tarvittavan http://-etuliitteen?" -#: wp-includes/class-wp-editor.php:1122 -msgid "Remove link" -msgstr "Poista linkki" +#: wp-includes/class-wp-editor.php:1133 +msgid "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?" +msgstr "Antamasi osoite näyttää olevan sähköpostiosoite. Haluatko lisätä osoitteeseen vaaditun mailto:-etuliitteen?" -#: wp-includes/link-template.php:699 -msgid "Comments Feed" -msgstr "Kommenttien syöte" +#: wp-includes/class-wp-editor.php:1206 +#: wp-includes/customize/class-wp-customize-background-position-control.php:56 +msgid "Bottom" +msgstr "Alas" -#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 -msgid "Previous Post" -msgstr "Edellinen artikkeli" +#: wp-includes/class-wp-editor.php:1205 +msgid "Middle" +msgstr "Keskelle" -#: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 -msgid "Next Post" -msgstr "Seuraava artikkeli" +#: wp-includes/class-wp-editor.php:1204 +#: wp-includes/customize/class-wp-customize-background-position-control.php:46 +msgid "Top" +msgstr "Ylös" -#: wp-includes/deprecated.php:2671 -msgid "Last Post" -msgstr "Viimeinen artikkeli" +#: wp-includes/class-wp-editor.php:1119 +msgid "Horizontal space" +msgstr "Rivipituus" -#: wp-includes/link-template.php:2691 -msgid "Newer Comments »" -msgstr "Uudemmat kommentit »" +#: wp-includes/class-wp-editor.php:1088 +msgid "Vertical space" +msgstr "Välistys" -#: wp-includes/link-template.php:2735 -msgid "« Older Comments" -msgstr "« Vanhemmat kommentit" +#: wp-includes/class-wp-editor.php:1091 +msgid "Dimensions" +msgstr "Mitat" -#: wp-includes/class-wp-locale.php:200 -msgid "am" -msgstr "am" +#: wp-includes/class-wp-editor.php:1086 +msgid "Border" +msgstr "Reuna" -#: wp-includes/class-wp-locale.php:201 -msgid "pm" -msgstr "pm" +#: wp-includes/class-wp-editor.php:1089 +msgid "Image description" +msgstr "Kuvaus" -#: wp-includes/class-wp-locale.php:202 -msgid "AM" -msgstr "AM" +#: wp-includes/class-wp-editor.php:999 +msgid "New document" +msgstr "Uusi tiedosto" -#: wp-includes/class-wp-locale.php:203 -msgid "PM" -msgstr "PM" +#: wp-includes/class-wp-editor.php:1041 +msgid "Paste" +msgstr "Liitä" -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1494 -msgid "[%1$s] Comment: \"%2$s\"" -msgstr "[%1$s] Kommentti: \"%2$s\"" +#: wp-includes/class-wp-editor.php:1040 +msgid "Copy" +msgstr "Kopioi" -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1472 -msgid "[%1$s] Trackback: \"%2$s\"" -msgstr "[%1$s] Paluuviite: \"%2$s\"" +#: wp-includes/class-wp-editor.php:1039 +msgid "Cut" +msgstr "Leikkaa" -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1483 -msgid "[%1$s] Pingback: \"%2$s\"" -msgstr "[%1$s] Päivitysilmoitus: \"%2$s\"" +#: wp-includes/class-wp-editor.php:1023 +msgid "Superscript" +msgstr "Yläviite" -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1504 wp-includes/pluggable.php:1666 -msgid "Delete it: %s" -msgstr "Poista: %s" +#: wp-includes/class-wp-editor.php:1022 +msgid "Subscript" +msgstr "Alaviite" -#: wp-includes/pluggable.php:1631 -msgid "Trackback excerpt: " -msgstr "Ote paluuviitteestä: " +#: wp-includes/class-wp-editor.php:1021 +msgid "Strikethrough" +msgstr "Yliviivaus" -#: wp-includes/pluggable.php:1641 -msgid "Pingback excerpt: " -msgstr "Ote päivitysilmoituksesta: " +#: wp-includes/class-wp-editor.php:1020 +msgid "Underline" +msgstr "Alleviivaus" -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1659 -msgid "Approve it: %s" -msgstr "Hyväksy: %s" +#: wp-includes/class-wp-editor.php:1026 wp-includes/script-loader.php:102 +msgid "Italic" +msgstr "Kursivointi" -#. translators: Comment moderation. 1: Number of comments awaiting approval -#: wp-includes/pluggable.php:1673 -msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" -msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" -msgstr[0] "Tällä hetkellä %s kommentti odottaa hyväksyntää. Siirry kommenttien hallintaan:" -msgstr[1] "Tällä hetkellä %s kommenttia odottaa hyväksyntää. Siirry kommenttien hallintaan:" +#: wp-includes/class-wp-editor.php:1025 wp-includes/script-loader.php:100 +msgid "Bold" +msgstr "Lihavointi" -#. translators: Comment moderation notification email subject. 1: Site name, 2: -#. Post title -#: wp-includes/pluggable.php:1678 -msgid "[%1$s] Please moderate: \"%2$s\"" -msgstr "[%1$s] Arvioitavana: \"%2$s\"" +#: wp-includes/class-wp-editor.php:1027 wp-includes/script-loader.php:118 +msgid "Code" +msgstr "Koodi" -#: wp-includes/pluggable.php:1793 -msgid "[%s] New User Registration" -msgstr "[%s] Uuden käyttäjän rekisteröityminen" +#: wp-includes/class-wp-editor.php:1013 wp-includes/script-loader.php:105 +msgid "Blockquote" +msgstr "Lainaus" -#: wp-includes/post-template.php:130 -msgid "Protected: %s" -msgstr "Suojattu: %s" +#: wp-includes/class-wp-editor.php:1008 +msgid "Heading 6" +msgstr "Otsikko 6" -#: wp-includes/post-template.php:145 -msgid "Private: %s" -msgstr "Yksityinen: %s" +#: wp-includes/class-wp-editor.php:1007 +msgid "Heading 5" +msgstr "Otsikko 5" -#: wp-includes/post-template.php:385 -msgid "There is no excerpt because this is a protected post." -msgstr "Otetta ei näytetä, koska artikkeli on suojattu." +#: wp-includes/class-wp-editor.php:1006 +msgid "Heading 4" +msgstr "Otsikko 4" -#: wp-includes/post-template.php:866 -msgid "Next page" -msgstr "Seuraava sivu" +#: wp-includes/class-wp-editor.php:1005 +msgid "Heading 3" +msgstr "Otsikko 3" -#: wp-includes/post-template.php:867 -msgid "Previous page" -msgstr "Edellinen sivu" +#: wp-includes/class-wp-editor.php:1004 +msgid "Heading 2" +msgstr "Otsikko 2" -#: wp-includes/post-template.php:1335 -msgid "Home" -msgstr "Etusivu" +#: wp-includes/class-wp-editor.php:1003 +msgid "Heading 1" +msgstr "Otsikko 1" -#: wp-includes/deprecated.php:1840 wp-includes/post-template.php:1500 -msgid "Missing Attachment" -msgstr "Liite puuttuu" +#: wp-includes/class-wp-editor.php:1012 +msgid "Paragraph" +msgstr "Kappale" -#: wp-includes/post.php:3064 -msgid "Content, title, and excerpt are empty." -msgstr "Sisältö, otsikko ja ote ovat tyhjiä." +#: wp-includes/class-wp-editor.php:1097 +msgid "Language" +msgstr "Kieli" -#: wp-includes/post.php:3303 -msgid "Could not update post in the database" -msgstr "Artikkelia ei voitu päivittää tietokantaan." +#: wp-includes/class-wp-editor.php:1072 +msgid "Document properties" +msgstr "Asiakirjan ominaisuudet" -#: wp-includes/post.php:3318 -msgid "Could not insert post into the database" -msgstr "Artikkelia ei voitu lisätä tietokantaan." +#: wp-includes/class-wp-editor.php:1233 wp-includes/script-loader.php:463 +#: wp-includes/script-loader.php:574 wp-includes/script-loader.php:583 +#: wp-includes/script-loader.php:763 wp-includes/theme.php:2974 +msgid "The changes you made will be lost if you navigate away from this page." +msgstr "Muutokset häviävät mikäli poistut tältä sivulta." -#: wp-includes/revision.php:295 -msgid "Cannot create a revision of a revision" -msgstr "Ei voida luoda revisiota revisiosta." +#: wp-includes/class-wp-editor.php:1171 +msgid "Row" +msgstr "Rivi" -#: wp-includes/user.php:2010 -msgid "AIM" -msgstr "AIM" +#: wp-includes/class-wp-editor.php:1165 +msgid "Delete table" +msgstr "Poista taulukko" -#: wp-includes/user.php:2011 -msgid "Yahoo IM" -msgstr "Yahoo IM" +#: wp-includes/class-wp-editor.php:1190 +msgid "Copy table row" +msgstr "Kopioi taulukon rivi" -#: wp-includes/user.php:2012 -msgid "Jabber / Google Talk" -msgstr "Jabber / Google Talk" +#: wp-includes/class-wp-editor.php:1189 +msgid "Cut table row" +msgstr "Leikkaa taulukon rivi" -#: wp-includes/rss.php:917 wp-includes/widgets.php:1251 -msgid "An error has occurred, which probably means the feed is down. Try again later." -msgstr "On tapahtunut virhe; syötteen palvelin ei luultavasti vastaa. Yritä myöhemmin uudestaan." +#: wp-includes/class-wp-editor.php:1186 +msgid "Paste table row after" +msgstr "Liitä taulukon rivi jälkeen" -#: wp-includes/script-loader.php:92 -msgid "Close all open tags" -msgstr "Sulje kaikki avoimet tagit" +#: wp-includes/class-wp-editor.php:1185 +msgid "Paste table row before" +msgstr "Liitä taulukon rivi ennen" -#: wp-includes/script-loader.php:93 -msgid "close tags" -msgstr "Sulje tagit" +#: wp-includes/class-wp-editor.php:1166 +msgid "Table properties" +msgstr "Taulukon ominaisuudet" -#: wp-includes/script-loader.php:94 -msgid "Enter the URL" -msgstr "Syötä osoite (URL)" +#: wp-includes/class-wp-editor.php:1168 +msgid "Table cell properties" +msgstr "Solun ominaisuudet" -#: wp-includes/script-loader.php:95 -msgid "Enter the URL of the image" -msgstr "Syötä kuvan osoite (URL)" +#: wp-includes/class-wp-editor.php:1167 +msgid "Table row properties" +msgstr "Rivin ominaisuudet" -#: wp-includes/script-loader.php:96 -msgid "Enter a description of the image" -msgstr "Syötä kuvan kuvaus" +#: wp-includes/class-wp-editor.php:1191 +msgid "Merge table cells" +msgstr "Yhdistä taulukon solut" -#: wp-includes/script-loader.php:133 wp-includes/script-loader.php:518 -msgid "An unidentified error has occurred." -msgstr "Tuntematon virhe." +#: wp-includes/class-wp-editor.php:1184 +msgid "Insert column after" +msgstr "Lisää sarake jälkeen" -#: wp-includes/script-loader.php:265 -msgid "Next >" -msgstr "Seuraava »" +#: wp-includes/class-wp-editor.php:1183 +msgid "Insert column before" +msgstr "Lisää sarake ennen" -#: wp-includes/script-loader.php:266 -msgid "< Prev" -msgstr "« Edellinen" +#: wp-includes/class-wp-editor.php:1187 +msgid "Delete row" +msgstr "Poista rivi" -#: wp-includes/class-wp-editor.php:1081 wp-includes/script-loader.php:267 -#: wp-includes/widgets/class-wp-widget-media-image.php:26 -msgid "Image" -msgstr "Kuva" +#: wp-includes/class-wp-editor.php:1182 +msgid "Insert row after" +msgstr "Lisää rivi jälkeen" -#: wp-includes/script-loader.php:268 -msgid "of" -msgstr "/" +#: wp-includes/class-wp-editor.php:1181 +msgid "Insert row before" +msgstr "Lisää rivi ennen" -#: wp-includes/script-loader.php:280 -msgid "You have attempted to queue too many files." -msgstr "Liian monta tiedostoa jonossa." +#: wp-includes/class-wp-editor.php:1121 wp-includes/class-wp-editor.php:1127 +#: wp-includes/class-wp-editor.php:1686 wp-includes/script-loader.php:428 +msgid "Insert/edit link" +msgstr "Lisää tai muokkaa linkkiä" -#: wp-includes/script-loader.php:282 -msgid "This file is empty. Please try another." -msgstr "Tiedosto on tyhjä." +#: wp-includes/class-wp-editor.php:1082 +msgid "Insert/edit image" +msgstr "Lisää kuva / Kuvan ominaisuudet" -#: wp-includes/script-loader.php:287 -msgid "An error occurred in the upload. Please try again later." -msgstr "Virhe siirrettäessä tiedostoa. Yritä myöhemmin uudelleen." +#: wp-includes/class-wp-editor.php:1115 +msgid "Print" +msgstr "Tulosta" -#: wp-includes/script-loader.php:288 -msgid "There was a configuration error. Please contact the server administrator." -msgstr "Tapahtui konfigurointivirhe. Ota yhteyttä henkilöön, joka hallinnoi palvelinta." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:155 +msgid "Sat" +msgstr "la" -#: wp-includes/script-loader.php:289 -msgid "You may only upload 1 file." -msgstr "Lataa vain yksi tiedosto kerrallaan." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:154 +msgid "Fri" +msgstr "pe" -#: wp-includes/script-loader.php:290 -msgid "HTTP error." -msgstr "HTTP-virhe." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:153 +msgid "Thu" +msgstr "to" -#: wp-includes/script-loader.php:291 -msgid "Upload failed." -msgstr "Siirto epäonnistui." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:152 +msgid "Wed" +msgstr "ke" -#: wp-includes/script-loader.php:295 -msgid "IO error." -msgstr "IO-virhe." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:151 +msgid "Tue" +msgstr "ti" -#: wp-includes/script-loader.php:296 -msgid "Security error." -msgstr "Tietoturvavirhe." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:150 +msgid "Mon" +msgstr "ma" -#: wp-includes/script-loader.php:298 -msgid "Upload stopped." -msgstr "Siirto keskeytetty." +#. translators: three-letter abbreviation of the weekday +#: wp-includes/class-wp-locale.php:149 +msgid "Sun" +msgstr "su" -#: wp-includes/script-loader.php:300 -msgid "Crunching…" -msgstr "Raksuttaa…" +#. translators: weekday +#: wp-includes/class-wp-locale.php:137 wp-includes/class-wp-locale.php:146 +#: wp-includes/class-wp-locale.php:155 +msgid "Saturday" +msgstr "lauantai" -#: wp-includes/script-loader.php:301 -msgid "moved to the trash." -msgstr "siirretty roskakoriin." +#. translators: weekday +#: wp-includes/class-wp-locale.php:136 wp-includes/class-wp-locale.php:145 +#: wp-includes/class-wp-locale.php:154 +msgid "Friday" +msgstr "perjantai" -#: wp-includes/script-loader.php:556 -msgid "Publish on:" -msgstr "Julkaistaan:" +#. translators: weekday +#: wp-includes/class-wp-locale.php:135 wp-includes/class-wp-locale.php:144 +#: wp-includes/class-wp-locale.php:153 +msgid "Thursday" +msgstr "torstai" -#: wp-includes/script-loader.php:557 -msgid "Schedule for:" -msgstr "Ajastettu:" +#. translators: weekday +#: wp-includes/class-wp-locale.php:134 wp-includes/class-wp-locale.php:143 +#: wp-includes/class-wp-locale.php:152 +msgid "Wednesday" +msgstr "keskiviikko" -#: wp-includes/script-loader.php:558 -msgid "Published on:" -msgstr "Julkaistu:" +#. translators: weekday +#: wp-includes/class-wp-locale.php:133 wp-includes/class-wp-locale.php:142 +#: wp-includes/class-wp-locale.php:151 +msgid "Tuesday" +msgstr "tiistai" -#: wp-includes/script-loader.php:561 -msgid "Show more comments" -msgstr "Näytä enemmän kommentteja" +#. translators: weekday +#: wp-includes/class-wp-locale.php:132 wp-includes/class-wp-locale.php:141 +#: wp-includes/class-wp-locale.php:150 +msgid "Monday" +msgstr "maanantai" -#: wp-includes/script-loader.php:562 -msgid "No more comments found." -msgstr "Ei kommentteja." +#. translators: weekday +#: wp-includes/class-wp-locale.php:131 wp-includes/class-wp-locale.php:140 +#: wp-includes/class-wp-locale.php:149 +msgid "Sunday" +msgstr "sunnuntai" -#: wp-includes/script-loader.php:571 -msgid "Password Protected" -msgstr "Salasanasuojattu" +#. translators: month name +#: wp-includes/class-wp-locale.php:169 wp-includes/class-wp-locale.php:197 +msgid "December" +msgstr "joulukuu" -#: wp-includes/script-loader.php:618 wp-includes/script-loader.php:627 -msgid "Error while saving the changes." -msgstr "Virhe tallennettaessa muutoksia" +#. translators: month name +#: wp-includes/class-wp-locale.php:168 wp-includes/class-wp-locale.php:196 +msgid "November" +msgstr "marraskuu" -#: wp-includes/script-loader.php:619 -msgid "Remove From Bulk Edit" -msgstr "Poista massamuokkaustilasta" +#. translators: month name +#: wp-includes/class-wp-locale.php:167 wp-includes/class-wp-locale.php:195 +msgid "October" +msgstr "lokakuu" -#: wp-includes/script-loader.php:753 -msgid "Saving..." -msgstr "Tallentaa..." +#. translators: month name +#: wp-includes/class-wp-locale.php:166 wp-includes/class-wp-locale.php:194 +msgid "September" +msgstr "syyskuu" -#: wp-includes/script-loader.php:754 -msgid "Could not set that as the thumbnail image. Try a different attachment." -msgstr "En voinut asettaa tuota pienoiskuvaksi. Kokeile toista liitettä." +#. translators: month name +#: wp-includes/class-wp-locale.php:165 wp-includes/class-wp-locale.php:193 +msgid "August" +msgstr "elokuu" -#: wp-includes/script-loader.php:575 -msgid "Saving Draft…" -msgstr "Luonnosta tallennetaan…" +#. translators: month name +#: wp-includes/class-wp-locale.php:164 wp-includes/class-wp-locale.php:192 +msgid "July" +msgstr "heinäkuu" -#: wp-includes/taxonomy.php:726 wp-includes/taxonomy.php:2572 -#: wp-includes/taxonomy.php:3843 -msgid "Empty Term" -msgstr "Tyhjä termi" +#. translators: month name +#: wp-includes/class-wp-locale.php:163 wp-includes/class-wp-locale.php:191 +msgid "June" +msgstr "kesäkuu" -#: wp-includes/taxonomy.php:2080 -msgid "Could not insert term into the database" -msgstr "Termin lisääminen tietokantaan epäonnistui" +#. translators: month name +#: wp-includes/class-wp-locale.php:162 wp-includes/class-wp-locale.php:190 +msgid "May" +msgstr "toukokuu" -#. translators: 1: Taxonomy term slug -#: wp-includes/taxonomy.php:2658 -msgid "The slug “%s” is already in use by another term" -msgstr "Polkutunnus \"%s\" on jo käytössä." +#. translators: month name +#: wp-includes/class-wp-locale.php:161 wp-includes/class-wp-locale.php:189 +msgid "April" +msgstr "huhtikuu" -#: wp-includes/taxonomy.php:4045 -msgid "Invalid object ID" -msgstr "Objektin tunnus ei kelpaa." +#. translators: month name +#: wp-includes/class-wp-locale.php:160 wp-includes/class-wp-locale.php:188 +msgid "March" +msgstr "maaliskuu" -#: wp-includes/class-wp-theme.php:248 -msgid "Stylesheet is missing." -msgstr "Tyylitiedosto puuttuu." +#. translators: month name +#: wp-includes/class-wp-locale.php:159 wp-includes/class-wp-locale.php:187 +msgid "February" +msgstr "helmikuu" -#: wp-includes/user.php:130 -msgid "<strong>ERROR</strong>: The username field is empty." -msgstr "<strong>VIRHE</strong>: Käyttäjätunnusta ei ole syötetty." +#. translators: month name +#: wp-includes/class-wp-locale.php:158 wp-includes/class-wp-locale.php:186 +msgid "January" +msgstr "tammikuu" -#: wp-includes/user.php:133 wp-includes/user.php:206 -msgid "<strong>ERROR</strong>: The password field is empty." -msgstr "<strong>VIRHE</strong>: Salasanaa ei ole syötetty." +#: wp-includes/class-wp-http-curl.php:189 +#: wp-includes/class-wp-http-streams.php:228 +msgid "Could not open handle for fopen() to %s" +msgstr "Could not open handle for fopen() to %s" -#: wp-includes/functions.php:5274 wp-includes/user.php:280 -msgid "Please log in again." -msgstr "Kirjaudu sisään uudelleen." +#: wp-includes/class-http.php:984 wp-includes/class-wp-http-curl.php:232 +#: wp-includes/class-wp-http-curl.php:271 +msgid "Too many redirects." +msgstr "Liian monta uudelleenohjausta." -#: wp-includes/widgets.php:173 wp-includes/widgets.php:244 -msgid "Sidebar %d" -msgstr "Sivupalkki %d" +#: wp-includes/class-http.php:268 +msgid "User has blocked requests through HTTP." +msgstr "Käyttäjä on estänyt HTTP-pyynnöt." -#: wp-login.php:104 -msgid "Powered by WordPress" -msgstr "Moottorina WordPress" +#: wp-includes/class-wp-theme.php:801 +msgid "Gray" +msgstr "Harmaa" -#: wp-login.php:293 -msgid "<strong>ERROR</strong>: There is no user registered with that email address." -msgstr "<strong>VIRHE</strong>: Tällä sähköpostiosoitteella ei ole rekisteröityneitä käyttäjiä." +#: wp-includes/general-template.php:3293 +msgid "Next »" +msgstr "Seuraava »" -#. translators: Password reset email subject. 1: Site name -#: wp-login.php:345 -msgid "[%s] Password Reset" -msgstr "[%s] Salasanan vaihto" +#: wp-includes/general-template.php:3292 +msgid "« Previous" +msgstr "« Edellinen" -#: wp-includes/user.php:2169 wp-includes/user.php:2172 -#: wp-includes/user.php:2176 wp-includes/user.php:2201 -#: wp-includes/user.php:2210 wp-includes/user.php:2214 -#: wp-includes/user.php:2231 -msgid "Invalid key" -msgstr "Avain ei kelpaa" +#. translators: 1: blog name, 2: separator(raquo), 3: search phrase +#: wp-includes/general-template.php:2675 +msgid "%1$s %2$s Search Results for “%3$s” Feed" +msgstr "%1$s %2$s haun tulokset haulle “%3$s” RSS-syöte" -#: wp-includes/user.php:2308 -msgid "<strong>ERROR</strong>: Please type your email address." -msgstr "<strong>VIRHE</strong>: Syötä sähköpostiosoitteesi." +#. translators: 1: blog name, 2: separator(raquo), 3: author name +#: wp-includes/general-template.php:2673 +msgid "%1$s %2$s Posts by %3$s Feed" +msgstr "Kirjoittajan %3$s artikkelit sivustolla %1$s %2$s RSS-syöte" -#: wp-includes/user.php:2310 -msgid "<strong>ERROR</strong>: The email address isn’t correct." -msgstr "<strong>VIRHE</strong>: Sähköpostiosoite ei ole oikein." +#. translators: 1: blog name, 2: separator(raquo), 3: tag name +#: wp-includes/general-template.php:2669 +msgid "%1$s %2$s %3$s Tag Feed" +msgstr "%1$s %2$s %3$s avainsanan RSS-syöte" -#: wp-login.php:530 -msgid "Lost Password" -msgstr "Salasana hukassa?" +#. translators: 1: blog name, 2: separator(raquo), 3: category name +#: wp-includes/general-template.php:2667 +msgid "%1$s %2$s %3$s Category Feed" +msgstr "%1$s %2$s %3$s kategorian RSS-syöte" -#: wp-login.php:549 -msgid "Get New Password" -msgstr "Pyydä uusi salasana »" +#. translators: 1: blog name, 2: separator(raquo), 3: post title +#: wp-includes/general-template.php:2665 +msgid "%1$s %2$s %3$s Comments Feed" +msgstr "%1$s %2$s %3$s kommenttien syöte" -#: wp-login.php:721 -msgid "Registration Form" -msgstr "Rekisteröintilomake" +#. translators: 1: blog title, 2: separator (raquo) +#: wp-includes/general-template.php:2625 +msgid "%1$s %2$s Comments Feed" +msgstr "%1$s %2$s kommenttien syöte" -#: wp-login.php:721 -msgid "Register For This Site" -msgstr "Rekisteröidy tälle sivustolle" +#. translators: 1: blog title, 2: separator (raquo) +#: wp-includes/general-template.php:2623 +msgid "%1$s %2$s Feed" +msgstr "%1$s %2$s syöte" -#: wp-includes/user.php:144 wp-includes/user.php:170 wp-includes/user.php:222 -#: wp-includes/user.php:242 wp-login.php:748 wp-login.php:942 -msgid "Lost your password?" -msgstr "Salasana hukassa?" +#. translators: Separator between blog name and feed type in feed links +#: wp-includes/general-template.php:2621 wp-includes/general-template.php:2663 +msgctxt "feed link" +msgid "»" +msgstr "»" -#: wp-login.php:819 -msgid "You have logged in successfully." -msgstr "Olet kirjautunut sisään onnistuneesti." +#. translators: Calendar caption: 1: month name, 2: 4-digit year +#: wp-includes/general-template.php:1983 +msgctxt "calendar caption" +msgid "%1$s %2$s" +msgstr "%1$s %2$s" -#: wp-login.php:860 -msgid "You are now logged out." -msgstr "Olet kirjautunut ulos." +#. translators: 1: month name, 2: 4-digit year +#: wp-includes/general-template.php:1758 wp-includes/media.php:3428 +msgid "%1$s %2$d" +msgstr "%1$s %2$d" -#: wp-login.php:862 -msgid "User registration is currently not allowed." -msgstr "Käyttäjärekisteröintiä ei tällä hetkellä sallita." +#: wp-includes/general-template.php:984 wp-includes/general-template.php:1199 +msgid "Page not found" +msgstr "Sivua ei löydy" -#: wp-login.php:866 -msgid "Check your email for your new password." -msgstr "Uusi salasana lähetetään sähköpostiisi." +#. translators: 1: separator, 2: search phrase +#: wp-includes/general-template.php:1194 +msgid "Search Results %1$s %2$s" +msgstr "Hakutulokset %1$s %2$s" -#: wp-login.php:868 -msgid "Registration complete. Please check your email." -msgstr "Rekisteröinti suoritettu. Tarkista sähköpostisi." +#: wp-includes/general-template.php:543 +msgid "Site Admin" +msgstr "Sivuston hallinta" + +#: wp-includes/general-template.php:539 wp-login.php:556 wp-login.php:669 +#: wp-login.php:743 wp-login.php:936 +msgid "Register" +msgstr "Rekisteröidy" #: wp-includes/general-template.php:410 wp-login.php:917 msgid "Remember Me" msgstr "Muista minut" -#: wp-mail.php:40 -msgid "Slow down cowboy, no need to check for new mails so often!" -msgstr "Hidasta vähän, ei sinun noin usein tarvitse tarkistaa sähköpostiasi!" - -#: wp-mail.php:60 -msgid "There doesn’t seem to be any new mail." -msgstr "Ei uusia viestejä." - -#. translators: Post author email address -#: wp-mail.php:128 -msgid "Author is %s" -msgstr "Kirjoittaja on %s" - -#. translators: %s: POP3 error -#: wp-mail.php:238 -msgid "Oops: %s" -msgstr "Oho: %s" +#: wp-includes/general-template.php:274 +msgid "Log out" +msgstr "Kirjaudu ulos" -#: wp-includes/functions.php:4666 wp-includes/functions.php:4670 -msgid "UTC" -msgstr "UTC" +#: wp-includes/general-template.php:272 wp-login.php:553 wp-login.php:616 +#: wp-login.php:666 wp-login.php:747 +msgid "Log in" +msgstr "Kirjaudu sisään" #: wp-includes/functions.php:4674 msgid "Manual Offsets" msgstr "Manuaaliset siirtymät" -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1506 wp-includes/pluggable.php:1670 -msgid "Spam it: %s" -msgstr "Merkitse roskaviestiksi: %s" - -#: wp-includes/comment-template.php:2249 -msgid "Cancel reply" -msgstr "Peruuta vastaus" - -#: wp-includes/comment-template.php:2250 -msgid "Post Comment" -msgstr "Lähetä kommentti" - -#: wp-includes/ms-functions.php:242 -msgid "That user does not exist." -msgstr "Käyttäjää ei ole olemassa" +#: wp-includes/functions.php:4666 wp-includes/functions.php:4670 +msgid "UTC" +msgstr "UTC" -#. translators: %s: revision date -#. translators: %s: revision date with author avatar -#: wp-includes/post-template.php:1703 wp-includes/post-template.php:1755 -msgid "%s [Autosave]" -msgstr "%1$s [Automaattinen tallennus]" +#: wp-includes/functions.php:4621 +msgid "Select a city" +msgstr "Valitse kaupunki" -#. translators: %s: revision date -#. translators: %s: revision date with author avatar -#: wp-includes/post-template.php:1705 wp-includes/post-template.php:1757 -msgid "%s [Current Revision]" -msgstr "%1$s [Nykyinen versio]" +#. translators: 1: PHP function name, 2: version number +#: wp-includes/functions.php:4026 +msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available." +msgstr "%1$s kutsuttiin argumentilla, joka on ollut <strong>vanhentunut</strong> versiosta %2$s saakka. Uudempaa vaihtoehtoa ei ole saatavilla." -#. translators: Comments feed title. 1: Site name, 2: Search query -#: wp-includes/feed-atom-comments.php:36 wp-includes/feed-rss2-comments.php:41 -msgid "Comments for %1$s searching on %2$s" -msgstr "Sivuston %1$s kommentit, hakutermi: %2$s" +#. translators: 1: PHP function name, 2: version number, 3: optional message +#. regarding the change +#: wp-includes/functions.php:4023 +msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s" +msgstr "%1$s kutsuttiin argumentilla, joka on ollut <strong>vanhentunut</strong> versiosta %2$s saakka! %3$s" -#: wp-includes/widgets/class-wp-widget-meta.php:58 -msgid "Entries <abbr title=\"Really Simple Syndication\">RSS</abbr>" -msgstr "Artikkeleiden <abbr title=\"Really Simple Syndication\">RSS</abbr>-syöte" +#. translators: 1: PHP function name, 2: version number +#. translators: 1: PHP file name, 2: version number +#. translators: 1: WordPress hook name, 2: version number +#: wp-includes/functions.php:3834 wp-includes/functions.php:3962 +#: wp-includes/functions.php:4085 +msgid "%1$s is <strong>deprecated</strong> since version %2$s with no alternative available." +msgstr "%1$s on <strong>kehotettu välttämään</strong> versiosta %2$s asti! Vaihtoehtoja ei saatavilla." -#. translators: Comment moderation. 1: Comment action URL -#: wp-includes/pluggable.php:1502 wp-includes/pluggable.php:1663 -msgid "Trash it: %s" -msgstr "Siirrä roskakoriin: %s" +#. translators: 1: PHP function name, 2: version number, 3: alternative +#. function name +#. translators: 1: PHP file name, 2: version number, 3: alternative file name +#. translators: 1: WordPress hook name, 2: version number, 3: alternative hook +#. name +#: wp-includes/functions.php:3831 wp-includes/functions.php:3959 +#: wp-includes/functions.php:4082 +msgid "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead." +msgstr "%1$s on <strong>kehotettu välttämään</strong> versiosta %2$s asti! Käytä sen sijaan %3$s." -#: wp-includes/widgets/class-wp-widget-recent-posts.php:31 -#: wp-includes/widgets/class-wp-widget-recent-posts.php:50 -msgid "Recent Posts" -msgstr "Viimeisimmät artikkelit" +#: wp-includes/functions.php:2739 wp-load.php:92 +msgid "WordPress › Error" +msgstr "WordPress › Virhe" -#: wp-includes/widgets/class-wp-widget-text.php:374 -msgid "Automatically add paragraphs" -msgstr "Muodosta automaattisesti kappaleita." +#: wp-includes/functions.php:2727 +msgid "« Back" +msgstr "« Takaisin" -#: wp-includes/ms-functions.php:448 -msgid "You cannot use that email address to signup. We are having problems with them blocking some of our email. Please use another email provider." -msgstr "Et voi käyttää tätä sähköpostiosoitetta kirjautumiseen. Käytä toista sähköpostintarjoajaa." +#: wp-includes/functions.php:2602 wp-includes/ms-functions.php:2011 +msgid "Please try again." +msgstr "Yritä uudelleen." -#: wp-includes/ms-functions.php:466 -msgid "Sorry, that email address is not allowed!" -msgstr "Valitettavasti tämä sähköpostiosoite ei ole sallittu!" +#. translators: %s: logout URL +#: wp-includes/functions.php:2593 +msgid "Do you really want to <a href=\"%s\">log out</a>?" +msgstr "Haluatko varmasti <a href=\"%s\">kirjautua ulos</a>?" -#: wp-includes/ms-functions.php:472 wp-includes/user.php:1462 -msgid "Sorry, that username already exists!" -msgstr "Valitettavasti tämä käyttäjätunnus on jo käytössä!" +#: wp-includes/functions.php:2607 +msgid "WordPress Failure Notice" +msgstr "WordPressin virheilmoitus" -#: wp-includes/ms-functions.php:476 wp-includes/user.php:1536 -msgid "Sorry, that email address is already used!" -msgstr "Valitettavasti tämä sähköpostiosoite on jo käytössä!" +#. translators: %s: site name +#: wp-includes/functions.php:2586 +msgid "You are attempting to log out of %s" +msgstr "Yrität kirjautua ulos sivustolta %s" -#: wp-includes/ms-functions.php:488 -msgid "That username is currently reserved but may be available in a couple of days." -msgstr "Tämä käyttäjätunnus on tällä hetkellä varattu, mutta saattaa vapautua muutaman päivän sisällä." +#: wp-includes/functions.php:2174 +msgid "Could not write file %s" +msgstr "Tiedoston %s tallennus ei onnistu" -#: wp-includes/ms-functions.php:498 -msgid "That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing." -msgstr "Tätä sähköpostiosoitetta on jo käytetty. Tarkista sähköpostisi saapuneet kansio aktivointiviestin varalta. Mikäli et tee mitään, voit käyttää sähköpostiosoitetta uudelleen muutaman päivän kuluttua." +#: wp-includes/functions.php:2128 +msgid "Empty filename" +msgstr "Tyhjä tiedostonimi" -#: wp-includes/ms-functions.php:1021 -msgid "Invalid activation key." -msgstr "Aktivointiavain ei kelpaa." +#. translators: %s: directory path +#: wp-includes/functions.php:1897 wp-includes/functions.php:2166 +msgid "Unable to create directory %s. Is its parent directory writable by the server?" +msgstr "Kansion %s luominen ei onnistu. Onko ylemmän tason kansio kirjoitussuojattu?" -#: wp-includes/ms-functions.php:1041 -msgid "Could not create user" -msgstr "Käyttäjää ei voida luoda." +#: wp-includes/option.php:156 +msgid "%s is a protected WP option and may not be modified" +msgstr "%s on suojattu WP-asetus, eikä sitä voi muokata" -#: wp-includes/ms-functions.php:1049 -msgid "That username is already activated." -msgstr "Tämä käyttäjätunnus on jo käytössä." +#. translators: used between list items, there is a space after the comma +#: wp-includes/class-wp-theme.php:758 +msgid ", " +msgstr ", " -#: wp-includes/ms-functions.php:1307 -msgid "New User Registration: %s" -msgstr "Uusi käyttäjä: %s" +#. translators: Time difference between two dates, in days. 1: Number of days +#: wp-includes/formatting.php:3240 +msgid "%s day" +msgid_plural "%s days" +msgstr[0] "%s päivä" +msgstr[1] "%s päivää" -#. translators: New user notification email subject. 1: Network name, 2: New -#. user login -#: wp-includes/ms-functions.php:1660 -msgid "New %1$s User: %2$s" -msgstr "Uusi %1$s käyttäjä: %2$s" +#. translators: Time difference between two dates, in hours. 1: Number of hours +#: wp-includes/formatting.php:3234 +msgid "%s hour" +msgid_plural "%s hours" +msgstr[0] "%s tunti" +msgstr[1] "%s tuntia" -#: wp-includes/post.php:96 -msgid "Revision" -msgstr "Versio" +#. translators: Time difference between two dates, in minutes (min=minute). 1: +#. Number of minutes +#: wp-includes/formatting.php:3228 +msgid "%s min" +msgid_plural "%s mins" +msgstr[0] "%s minuutti" +msgstr[1] "%s minuuttia" -#: wp-includes/user.php:310 -msgid "<strong>ERROR</strong>: Your account has been marked as a spammer." -msgstr "<strong>VIRHE</strong>: Käyttäjätunnuksesi on merkitty roskapostittajien listalle." +#: wp-includes/feed-rss2-comments.php:91 +msgid "Protected Comments: Please enter your password to view comments." +msgstr "Suojattuja kommentteja: syötä salasanasi lukeaksesi niitä." -#. translators: 1: WordPress version number, 2: Minimum required MySQL version -#. number -#: wp-includes/wp-db.php:3221 -msgid "<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher" -msgstr "<strong>VIRHE</strong>: WordPress %1$s tarvitsee MySQL-ohjelmasta vähintään version %2$s" +#. translators: Comments feed title. 1: Post title +#: wp-includes/feed-rss2-comments.php:38 +msgid "Comments on: %s" +msgstr "Artikkelin %s kommentit" -#: wp-signup.php:173 -msgid "Privacy:" -msgstr "Tietosuoja:" +#. translators: Comment author title. 1: Comment author name +#: wp-includes/feed-atom-comments.php:84 wp-includes/feed-rss2-comments.php:83 +msgid "By: %s" +msgstr "Kirjoittaja: %s" -#: wp-signup.php:233 -msgid "(Must be at least 4 characters, letters and numbers only.)" -msgstr "(Vähintään 4 merkkiä, ainoastaan kirjaimia ja numeroita.)" +#. translators: Individual comment title. 1: Post title, 2: Comment author name +#: wp-includes/feed-atom-comments.php:81 wp-includes/feed-rss2-comments.php:80 +msgid "Comment on %1$s by %2$s" +msgstr "%2$s on kommentoinut artikkelia %1$s" -#: wp-signup.php:236 -msgid "Email Address:" -msgstr "Sähköpostiosoite:" +#. translators: Comments feed title. 1: Site name +#: wp-includes/feed-atom-comments.php:39 wp-includes/feed-rss2-comments.php:44 +msgid "Comments for %s" +msgstr "Sivuston %s kommentit" -#: wp-signup.php:310 -msgid "There was a problem, please correct the form below and try again." -msgstr "Lomakkeesta löytyi virheitä, korjaa virheet ja yritä uudelleen." +#. translators: Comments feed title. 1: Site name, 2: Search query +#: wp-includes/feed-atom-comments.php:36 wp-includes/feed-rss2-comments.php:41 +msgid "Comments for %1$s searching on %2$s" +msgstr "Sivuston %1$s kommentit, hakutermi: %2$s" -#. translators: %s: name of the network -#: wp-signup.php:535 -msgid "Get your own %s account in seconds" -msgstr "Luo oma %s käyttäjätilisi hetkessä" +#: wp-includes/deprecated.php:1840 wp-includes/post-template.php:1500 +msgid "Missing Attachment" +msgstr "Liite puuttuu" -#: wp-includes/script-loader.php:990 wp-signup.php:559 -msgid "Next" -msgstr "Seuraava" +#: wp-includes/deprecated.php:963 +msgid "Last updated" +msgstr "Päivitetty" -#. translators: %s: username -#: wp-signup.php:605 -msgid "%s is your new username" -msgstr "%s on uusi käyttäjätunnuksesi" +#: wp-includes/deprecated.php:64 +msgid "new WordPress Loop" +msgstr "uusi WordPress-silmukka" -#: wp-signup.php:606 -msgid "But, before you can start using your new username, <strong>you must activate it</strong>." -msgstr "Ennen kuin voit aloittaa käyttämään uutta käyttäjätunnustasi, <strong>sinun täytyy aktivoida se</strong>." +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:30 +msgid "Tag Cloud" +msgstr "Avainsanapilvi" -#: wp-signup.php:609 -msgid "If you do not activate your username within two days, you will have to sign up again." -msgstr "Mikäli et aktivoi käyttäjätunnustasi kahden vuorokauden kuluessa, sinun täytyy rekisteröityä uudelleen." +#: wp-includes/widgets.php:1373 +msgid "Display item date?" +msgstr "Näytä artikkelipäivämäärä?" -#: wp-signup.php:673 -msgid "Signup" -msgstr "Rekisteröidy" +#: wp-includes/widgets.php:1370 +msgid "Display item author if available?" +msgstr "Näytä artikkelin kirjoittaja?" -#: wp-signup.php:756 -msgid "Still waiting for your email?" -msgstr "Odotatko vielä sähköpostia?" +#: wp-includes/widgets.php:1367 +msgid "Display item content?" +msgstr "Näytä artikkelin sisältö?" -#: wp-signup.php:850 -msgid "Registration has been disabled." -msgstr "Rekisteröitymistä ei tällä hetkellä sallita." +#: wp-includes/widgets.php:1357 +msgid "How many items would you like to display?" +msgstr "Montako syötteen elementeistä näytetään?" -#: wp-signup.php:862 -msgid "User registration has been disabled." -msgstr "Käyttäjärekisteröintiä ei tällä hetkellä sallita." +#: wp-includes/widgets.php:1354 +msgid "Give the feed a title (optional):" +msgstr "Anna syötteelle otsikko (valinnainen):" -#: wp-includes/post.php:202 -msgid "Published <span class=\"count\">(%s)</span>" -msgid_plural "Published <span class=\"count\">(%s)</span>" -msgstr[0] "Julkaistu <span class=\"count\">(%s)</span>" -msgstr[1] "Julkaistut <span class=\"count\">(%s)</span>" +#: wp-includes/widgets.php:1351 +msgid "Enter the RSS feed URL here:" +msgstr "Syötä RSS-syötteen osoite (URL):" -#: wp-includes/user.php:1456 -msgid "Cannot create a user with an empty login name." -msgstr "Et voi luoda käyttäjää tyhjällä käyttäjänimellä." +#: wp-includes/widgets.php:1267 +msgid "Untitled" +msgstr "Nimetön" -#: wp-includes/class-wp-theme.php:300 -msgid "The parent theme is missing. Please install the \"%s\" parent theme." -msgstr "Pääteema puuttuu. Asenna \"%s\"-pääteema." +#. translators: comments widget: 1: comment author, 2: post link +#: wp-includes/widgets/class-wp-widget-recent-comments.php:116 +msgctxt "widgets" +msgid "%1$s on %2$s" +msgstr "%1$s: %2$s" -#: wp-includes/cron.php:205 -msgid "This argument has changed to an array to match the behavior of the other cron functions." -msgstr "Tämä argumentti on muutettu taulukoksi (array), jotta se vastaisi paremmin muiden cron-funktioiden toimintaa." +#: wp-includes/widgets/class-wp-widget-recent-posts.php:135 +msgid "Number of posts to show:" +msgstr "Näytettävien artikkeleiden lukumäärä:" -#. translators: 1: PHP function name, 2: version number, 3: optional message -#. regarding the change -#: wp-includes/functions.php:4023 -msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s" -msgstr "%1$s kutsuttiin argumentilla, joka on ollut <strong>vanhentunut</strong> versiosta %2$s saakka! %3$s" +#: wp-includes/widgets/class-wp-widget-recent-posts.php:31 +#: wp-includes/widgets/class-wp-widget-recent-posts.php:50 +msgid "Recent Posts" +msgstr "Viimeisimmät artikkelit" -#. translators: 1: PHP function name, 2: version number -#: wp-includes/functions.php:4026 -msgid "%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available." -msgstr "%1$s kutsuttiin argumentilla, joka on ollut <strong>vanhentunut</strong> versiosta %2$s saakka. Uudempaa vaihtoehtoa ei ole saatavilla." +#: wp-includes/widgets/class-wp-widget-categories.php:170 +msgid "Show hierarchy" +msgstr "Näytä hierarkia" #: wp-includes/widgets/class-wp-widget-categories.php:71 msgid "Select Category" msgstr "Valitse kategoria" -#. translators: 1: blog name, 2: separator(raquo), 3: category name -#: wp-includes/general-template.php:2667 -msgid "%1$s %2$s %3$s Category Feed" -msgstr "%1$s %2$s %3$s kategorian RSS-syöte" +#: wp-includes/widgets/class-wp-widget-text.php:374 +msgid "Automatically add paragraphs" +msgstr "Muodosta automaattisesti kappaleita." -#: wp-includes/widgets/class-wp-widget-pages.php:139 -msgid "Page ID" -msgstr "Sivun ID" +#: wp-includes/class-wp-editor.php:1259 +#: wp-includes/widgets/class-wp-widget-text.php:43 +msgid "Text" +msgstr "Teksti" -#: wp-includes/class-wp-editor.php:1249 -msgid "Insert Page Break tag" -msgstr "Lisää sivunvaihtoelementti" +#: wp-includes/widgets/class-wp-widget-calendar.php:41 +msgid "Calendar" +msgstr "Kalenteri" -#: wp-includes/script-loader.php:270 -msgid "This feature requires inline frames. You have iframes disabled or your browser does not support them." -msgstr "Tämä toiminto edellyttää kehyksiä. Sinulla on kehykset estetty tai selaimesi ei tue niitä." +#: wp-includes/widgets/class-wp-widget-meta.php:58 +msgid "Entries <abbr title=\"Really Simple Syndication\">RSS</abbr>" +msgstr "Artikkeleiden <abbr title=\"Really Simple Syndication\">RSS</abbr>-syöte" -#: wp-includes/script-loader.php:597 -msgid "Submitted on:" -msgstr "Lähetetty:" +#: wp-includes/widgets/class-wp-widget-archives.php:161 +#: wp-includes/widgets/class-wp-widget-categories.php:167 +msgid "Show post counts" +msgstr "Näytä artikkeleiden lukumäärä" + +#: wp-includes/widgets/class-wp-widget-archives.php:82 +msgid "Select Month" +msgstr "Valitse kuukausi" #: wp-includes/widgets/class-wp-widget-links.php:158 msgid "Show Link Rating" msgstr "Näytä linkin arvio" -#: wp-includes/post.php:209 -msgid "Scheduled <span class=\"count\">(%s)</span>" -msgid_plural "Scheduled <span class=\"count\">(%s)</span>" -msgstr[0] "Ajastettu <span class=\"count\">(%s)</span>" -msgstr[1] "Ajastetut <span class=\"count\">(%s)</span>" - -#: wp-includes/post.php:216 -msgid "Draft <span class=\"count\">(%s)</span>" -msgid_plural "Drafts <span class=\"count\">(%s)</span>" -msgstr[0] "Luonnos <span class=\"count\">(%s)</span>" -msgstr[1] "Luonnokset <span class=\"count\">(%s)</span>" - -#: wp-includes/post.php:230 -msgid "Private <span class=\"count\">(%s)</span>" -msgid_plural "Private <span class=\"count\">(%s)</span>" -msgstr[0] "Yksityinen <span class=\"count\">(%s)</span>" -msgstr[1] "Yksityiset <span class=\"count\">(%s)</span>" - -#: wp-login.php:375 -msgid "The email could not be sent." -msgstr "Sähköpostiviestiä ei voitu lähettää." - -#: wp-includes/class-wp-editor.php:1121 wp-includes/class-wp-editor.php:1127 -#: wp-includes/class-wp-editor.php:1686 wp-includes/script-loader.php:428 -msgid "Insert/edit link" -msgstr "Lisää tai muokkaa linkkiä" - -#: wp-includes/general-template.php:543 -msgid "Site Admin" -msgstr "Sivuston hallinta" +#: wp-includes/widgets/class-wp-widget-links.php:156 +msgid "Show Link Description" +msgstr "Linkin kuvaus" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:150 -msgid "Mon" -msgstr "ma" +#: wp-includes/widgets/class-wp-widget-links.php:154 +msgid "Show Link Name" +msgstr "Linkin nimi" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:151 -msgid "Tue" -msgstr "ti" +#: wp-includes/widgets/class-wp-widget-links.php:152 +msgid "Show Link Image" +msgstr "Linkki kuvaan" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:152 -msgid "Wed" -msgstr "ke" +#: wp-includes/widgets/class-wp-widget-links.php:27 +msgid "Your blogroll" +msgstr "Näyttää linkkilistan linkit" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:153 -msgid "Thu" -msgstr "to" +#: wp-includes/widgets/class-wp-widget-pages.php:146 +msgid "Page IDs, separated by commas." +msgstr "Sivujen tunnukset pilkuilla erotettuna." -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:154 -msgid "Fri" -msgstr "pe" +#: wp-includes/widgets/class-wp-widget-pages.php:143 +msgid "Exclude:" +msgstr "Jätä pois:" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:155 -msgid "Sat" -msgstr "la" +#: wp-includes/widgets/class-wp-widget-pages.php:139 +msgid "Page ID" +msgstr "Sivun ID" -#. translators: three-letter abbreviation of the weekday -#: wp-includes/class-wp-locale.php:149 -msgid "Sun" -msgstr "su" +#: wp-includes/widgets/class-wp-widget-pages.php:138 +msgid "Page order" +msgstr "Sivujärjestys" -#. translators: %s: site name -#: wp-includes/functions.php:2586 -msgid "You are attempting to log out of %s" -msgstr "Yrität kirjautua ulos sivustolta %s" +#: wp-includes/widgets/class-wp-widget-pages.php:137 +msgid "Page title" +msgstr "Sivun otsikko" -#: wp-includes/class-wp-editor.php:1012 -msgid "Paragraph" -msgstr "Kappale" +#: wp-includes/widgets/class-wp-widget-links.php:142 +#: wp-includes/widgets/class-wp-widget-pages.php:135 +msgid "Sort by:" +msgstr "Lajittele:" -#: wp-includes/ms-functions.php:460 -msgid "Sorry, usernames must have letters too!" -msgstr "Käyttäjätunnuksessa pitää olla myös kirjaimia!" +#: wp-includes/cron.php:407 +msgid "Once Daily" +msgstr "Kerran päivässä" -#: wp-signup.php:555 -msgid "Just a username, please." -msgstr "Vain käyttäjätunnus, kiitos." +#: wp-includes/cron.php:406 +msgid "Twice Daily" +msgstr "Kahdesti päivässä" -#: wp-login.php:314 -msgid "<strong>ERROR</strong>: Invalid username or email." -msgstr "<strong>VIRHE</strong>: Käyttäjätunnus tai sähköpostiosoite ei kelpaa." +#: wp-includes/cron.php:405 +msgid "Once Hourly" +msgstr "Kerran tunnissa" -#: wp-includes/pluggable.php:1790 wp-includes/pluggable.php:1821 -#: wp-login.php:329 -msgid "Username: %s" -msgstr "Käyttäjätunnus: %s" +#: wp-includes/cron.php:205 +msgid "This argument has changed to an array to match the behavior of the other cron functions." +msgstr "Tämä argumentti on muutettu taulukoksi (array), jotta se vastaisi paremmin muiden cron-funktioiden toimintaa." -#: wp-includes/pluggable.php:1827 -msgid "[%s] Your username and password info" -msgstr "[%s] Käyttäjätunnuksesi ja salasanasi" +#: wp-includes/comment.php:2095 +msgid "Could not update comment status" +msgstr "Kommenttia ei voitu päivittää" -#: wp-includes/ms-load.php:483 -msgid "What do I do now?" -msgstr "Mitä teen nyt?" +#: wp-includes/comment.php:658 wp-includes/comment.php:661 +#: wp-includes/comment.php:664 +msgid "Duplicate comment detected; it looks as though you’ve already said that!" +msgstr "Identtinen kommentti on jo olemassa; taisit sanoa samat sanat jo aiemmin!" -#: wp-login.php:289 -msgid "<strong>ERROR</strong>: Enter a username or email address." -msgstr "<strong>VIRHE</strong>: Syötä käyttäjätunnus tai sähköpostiosoite." +#: wp-includes/comment.php:241 +msgid "Unapproved" +msgstr "Hylätyt" -#: wp-includes/script-loader.php:404 -msgctxt "password strength" -msgid "Medium" -msgstr "Keskiverto" +#: wp-includes/comment-template.php:2250 +msgid "Post Comment" +msgstr "Lähetä kommentti" -#: wp-includes/post.php:223 -msgid "Pending <span class=\"count\">(%s)</span>" -msgid_plural "Pending <span class=\"count\">(%s)</span>" -msgstr[0] "Tarkastettavana <span class=\"count\">(%s)</span>" -msgstr[1] "Tarkastettavana <span class=\"count\">(%s)</span>" +#: wp-includes/comment-template.php:2249 +msgid "Cancel reply" +msgstr "Peruuta vastaus" -#: wp-includes/user.php:2114 -msgid "Password reset is not allowed for this user" -msgstr "Sinulla ei ole oikeutta vaihtaa salasanaasi" +#: wp-includes/comment-template.php:1873 wp-includes/comment-template.php:2244 +msgid "Leave a Reply to %s" +msgstr "Vastaa käyttäjälle %s" -#. translators: %s: logout URL -#: wp-includes/functions.php:2593 -msgid "Do you really want to <a href=\"%s\">log out</a>?" -msgstr "Haluatko varmasti <a href=\"%s\">kirjautua ulos</a>?" +#: wp-includes/comment-template.php:1872 wp-includes/comment-template.php:2243 +msgid "Leave a Reply" +msgstr "Vastaa" -#: wp-includes/customize/class-wp-customize-background-position-control.php:45 -msgid "Top Left" -msgstr "Ylävasen" +#: wp-includes/comment-template.php:1780 +msgid "Click here to cancel reply." +msgstr "Napsauta peruuttaaksesi vastauksen." -#: wp-includes/customize/class-wp-customize-background-position-control.php:47 -msgid "Top Right" -msgstr "Yläoikea" +#: wp-includes/comment-template.php:1712 +msgid "Log in to leave a Comment" +msgstr "Kirjaudu sisään kommentoidaksesi" -#: wp-includes/customize/class-wp-customize-background-position-control.php:55 -msgid "Bottom Left" -msgstr "Alavasen" +#: wp-includes/comment-template.php:1711 +msgid "Leave a Comment" +msgstr "Jätä kommentti" -#: wp-includes/customize/class-wp-customize-background-position-control.php:57 -msgid "Bottom Right" -msgstr "Alaoikea" +#: wp-includes/comment-template.php:1599 +msgid "Log in to Reply" +msgstr "Kirjaudu sisään vastataksesi" -#: wp-includes/class-wp-customize-manager.php:4078 -#: wp-includes/class-wp-customize-manager.php:4119 -msgid "Fill Screen" -msgstr "Täytä ruutu" +#: wp-includes/class-walker-category.php:137 +msgid "Feed for all posts filed under %s" +msgstr "Syöte kaikille kategorian %s artikkeleille" -#: wp-login.php:864 -msgid "Check your email for the confirmation link." -msgstr "Ohjeet salasanan palautukseen lähetetään sähköpostiisi." +#: wp-includes/category-template.php:521 wp-includes/taxonomy.php:511 +msgid "No categories" +msgstr "Ei kategorioita" -#: wp-includes/class-wp-editor.php:1097 -msgid "Language" -msgstr "Kieli" +#: wp-includes/class-wp-user.php:720 +msgid "Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead." +msgstr "Käyttäjätasojen (user levels) käyttämistä lisäosissa ja teemoissa ei enää suositella. Käytä rooleja ja oikeuksia. " -#: wp-includes/class-wp-editor.php:1135 -msgid "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?" -msgstr "Syöttämäsi URL-osoite näyttäisi olevan ulkoinen linkki. Haluatko lisätä tarvittavan http://-etuliitteen?" +#: wp-includes/bookmark-template.php:206 +msgid "Bookmarks" +msgstr "Kirjanmerkit" -#: wp-includes/class-wp-theme.php:800 -msgid "Blue" -msgstr "Sininen" +#: wp-includes/bookmark-template.php:83 +msgid "Last updated: %s" +msgstr "Päivitetty: %s" -#: wp-includes/class-wp-customize-nav-menus.php:283 -#: wp-includes/script-loader.php:234 wp-includes/script-loader.php:432 -#: wp-includes/script-loader.php:761 -msgid "No results found." -msgstr "Ei tuloksia." +#. translators: %s: author's display name +#: wp-includes/author-template.php:263 wp-includes/author-template.php:425 +msgid "Posts by %s" +msgstr "Kirjoittanut: %s" -#: wp-includes/post.php:1372 -msgctxt "page" -msgid "Add New" -msgstr "Lisää uusi" +#. translators: %s: author's display name +#: wp-includes/author-template.php:196 +msgid "Visit %s’s website" +msgstr "Siirry kirjoittajan %s kotisivulle" -#: wp-includes/class-wp-theme.php:800 -msgid "Black" -msgstr "Musta" +#: wp-includes/theme-compat/sidebar.php:103 +#: wp-includes/widgets/class-wp-widget-meta.php:33 +#: wp-includes/widgets/class-wp-widget-meta.php:48 +msgid "Meta" +msgstr "Meta" -#: wp-includes/class-wp-theme.php:800 -msgid "Brown" -msgstr "Ruskea" +#: wp-includes/class-walker-comment.php:291 +msgid "(Edit)" +msgstr "(Muokkaa)" -#: wp-includes/class-wp-theme.php:801 -msgid "Green" -msgstr "Vihreä" +#. translators: 1: comment date, 2: comment time +#: wp-includes/class-walker-comment.php:291 +#: wp-includes/class-walker-comment.php:346 +msgid "%1$s at %2$s" +msgstr "%1$s %2$s" -#: wp-includes/class-wp-theme.php:801 -msgid "Orange" -msgstr "Oranssi" +#: wp-includes/class-walker-comment.php:284 +#: wp-includes/class-walker-comment.php:354 +msgid "Your comment is awaiting moderation." +msgstr "Kommenttisi odottaa hyväksyntää." -#: wp-includes/class-wp-theme.php:802 -msgid "Pink" -msgstr "Vaaleanpunainen" +#: wp-includes/theme-compat/comments.php:66 +msgid "Comments are closed." +msgstr "Kommentit on suljettu." -#: wp-includes/class-wp-theme.php:802 -msgid "Purple" -msgstr "Lila" +#: wp-includes/widgets/class-wp-widget-meta.php:59 +msgid "Comments <abbr title=\"Really Simple Syndication\">RSS</abbr>" +msgstr "Kommenttien <abbr title=\"Really Simple Syndication\">RSS</abbr>-syöte" -#: wp-includes/class-wp-theme.php:802 -msgid "Red" -msgstr "Punainen" +#: wp-includes/post-template.php:860 +msgid "Pages:" +msgstr "Sivut:" -#: wp-includes/class-wp-theme.php:803 -msgid "Silver" -msgstr "Hopea" +#. translators: %s: comments count +#: wp-includes/script-loader.php:531 +msgid "Comments (%s)" +msgstr "Kommentit (%s)" -#: wp-includes/class-wp-theme.php:803 -msgid "White" -msgstr "Valkoinen" +#: wp-includes/category-template.php:1144 +msgid "Tags: " +msgstr "Avainsanat: " -#: wp-includes/class-wp-theme.php:804 -msgid "Yellow" -msgstr "Keltainen" +#. translators: %s: login URL +#: wp-includes/comment-template.php:2222 +msgid "You must be <a href=\"%s\">logged in</a> to post a comment." +msgstr "Sinun täytyy <a href=\"%s\">kirjautua sisään</a> kommentoidaksesi." -#: wp-includes/class-wp-theme.php:804 -msgid "Light" -msgstr "Vaalea" +#: wp-includes/link-template.php:994 wp-includes/link-template.php:1329 +#: wp-includes/link-template.php:1431 wp-includes/link-template.php:1492 +msgid "Edit This" +msgstr "Muokkaa" -#: wp-includes/class-wp-editor.php:1195 wp-includes/media-template.php:965 -#: wp-includes/widgets/class-wp-widget-media-image.php:72 -msgid "Width" -msgstr "Leveys" +#: wp-includes/comment-template.php:922 +msgid "1 Comment" +msgstr "1 kommentti" -#: wp-includes/user.php:2313 -msgid "<strong>ERROR</strong>: This email is already registered, please choose another one." -msgstr "<strong>VIRHE</strong>: Sähköpostiosoite on jo rekisteröity. Valitse toinen osoite." +#: wp-includes/comment-template.php:920 +msgid "No Comments" +msgstr "Ei kommentteja" -#: wp-includes/class-wp-widget.php:155 -msgid "There are no options for this widget." -msgstr "Tälle vimpaimelle ei ole asetuksia." +#: wp-includes/comment-template.php:1524 +msgid "Enter your password to view comments." +msgstr "Syötä salasanasi lukeaksesi kommentteja." -#: wp-includes/admin-bar.php:355 wp-includes/admin-bar.php:451 -#: wp-includes/admin-bar.php:533 wp-includes/deprecated.php:2792 -#: wp-includes/deprecated.php:2794 -msgid "Dashboard" -msgstr "Ohjausnäkymä" +#: wp-includes/widgets/class-wp-widget-meta.php:70 +msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform." +msgstr "Voimanlähteenä on WordPress, moderni ja semanttinen henkilökohtainen julkaisujärjestelmä." -#: wp-includes/general-template.php:411 wp-login.php:887 wp-login.php:919 -msgid "Log In" -msgstr "Kirjaudu sisään" +#. translators: Comments feed title. 1: Post title +#: wp-includes/feed-atom-comments.php:33 +msgid "Comments on %s" +msgstr "Kommentit artikkeliin %s" -#: wp-signup.php:178 -msgid "Yes" -msgstr "Kyllä" +#: wp-includes/class-wp-customize-nav-menus.php:283 +#: wp-includes/script-loader.php:234 wp-includes/script-loader.php:432 +#: wp-includes/script-loader.php:761 +msgid "No results found." +msgstr "Ei tuloksia." -#: wp-includes/admin-bar.php:477 wp-includes/admin-bar.php:788 -#: wp-includes/customize/class-wp-customize-themes-section.php:56 -msgid "Themes" -msgstr "Teemat" +#: wp-includes/link-template.php:2217 wp-includes/link-template.php:2353 +msgid "Next Page »" +msgstr "Seuraava sivu »" -#: wp-includes/admin-bar.php:495 -msgid "Settings" -msgstr "Asetukset" +#: wp-includes/link-template.php:2300 wp-includes/link-template.php:2352 +msgid "« Previous Page" +msgstr "« Edellinen sivu" -#: wp-includes/class-wp-xmlrpc-server.php:494 -msgid "Date Format" -msgstr "Päivämäärän oletusmuoto" +#: wp-includes/class-wp-xmlrpc-server.php:3576 wp-includes/comment.php:2983 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 +msgid "Sorry, comments are closed for this item." +msgstr "Tätä ei voi kommentoida." -#: wp-includes/class-wp-xmlrpc-server.php:499 -msgid "Time Format" -msgstr "Kellonajan oletusmuoto:" +#: wp-includes/class-wp-xmlrpc-server.php:4748 +msgid "For some strange yet very annoying reason, this post could not be edited." +msgstr "Muokkaus epäonnistui jostain oudosta ja hyvin ärsyttävästä syystä." -#: wp-includes/class-wp-editor.php:1194 wp-includes/media-template.php:965 -#: wp-includes/widgets/class-wp-widget-media-image.php:78 -msgid "Height" -msgstr "Korkeus" +#: wp-includes/admin-bar.php:801 wp-includes/class-wp-customize-widgets.php:435 +#: wp-includes/functions.php:3707 +msgid "Widgets" +msgstr "Vimpaimet" -#: wp-includes/script-loader.php:633 -msgid "Plugin:" -msgstr "Lisäosa" +#: wp-includes/comment-template.php:2202 +msgid "Website" +msgstr "Kotisivu" -#: wp-includes/class-wp-editor.php:182 wp-includes/class-wp-editor.php:1258 -msgid "Visual" -msgstr "Graafinen" +#: wp-includes/taxonomy.php:507 +msgid "Separate tags with commas" +msgstr "Erottele avainsanat pilkulla" #: wp-includes/default-widgets.php:190 #: wp-includes/widgets/class-wp-nav-menu-widget.php:137 @@ -10390,292 +10437,193 @@ msgstr "Graafinen" msgid "Title:" msgstr "Otsikko:" -#: wp-includes/taxonomy.php:507 -msgid "Separate tags with commas" -msgstr "Erottele avainsanat pilkulla" - -#: wp-includes/comment-template.php:2202 -msgid "Website" -msgstr "Kotisivu" - -#: wp-login.php:639 -msgid "Strength indicator" -msgstr "Salasanan vahvuus" - -#: wp-includes/admin-bar.php:801 wp-includes/class-wp-customize-widgets.php:435 -#: wp-includes/functions.php:3707 -msgid "Widgets" -msgstr "Vimpaimet" - -#: wp-includes/class-wp-xmlrpc-server.php:4748 -msgid "For some strange yet very annoying reason, this post could not be edited." -msgstr "Muokkaus epäonnistui jostain oudosta ja hyvin ärsyttävästä syystä." - -#: wp-includes/link-template.php:2300 wp-includes/link-template.php:2352 -msgid "« Previous Page" -msgstr "« Edellinen sivu" - -#: wp-includes/link-template.php:2217 wp-includes/link-template.php:2353 -msgid "Next Page »" -msgstr "Seuraava sivu »" - -#. translators: Comments feed title. 1: Post title -#: wp-includes/feed-atom-comments.php:33 -msgid "Comments on %s" -msgstr "Kommentit artikkeliin %s" - -#: wp-includes/comment-template.php:1524 -msgid "Enter your password to view comments." -msgstr "Syötä salasanasi lukeaksesi kommentteja." - -#: wp-includes/comment-template.php:920 -msgid "No Comments" -msgstr "Ei kommentteja" - -#: wp-includes/comment-template.php:922 -msgid "1 Comment" -msgstr "1 kommentti" - -#: wp-includes/link-template.php:994 wp-includes/link-template.php:1329 -#: wp-includes/link-template.php:1431 wp-includes/link-template.php:1492 -msgid "Edit This" -msgstr "Muokkaa" - -#: wp-includes/category-template.php:1144 -msgid "Tags: " -msgstr "Avainsanat: " - -#: wp-includes/post-template.php:860 -msgid "Pages:" -msgstr "Sivut:" - -#. translators: %s: author's display name -#: wp-includes/author-template.php:196 -msgid "Visit %s’s website" -msgstr "Siirry kirjoittajan %s kotisivulle" - -#. translators: %s: author's display name -#: wp-includes/author-template.php:263 wp-includes/author-template.php:425 -msgid "Posts by %s" -msgstr "Kirjoittanut: %s" - -#: wp-includes/bookmark-template.php:83 -msgid "Last updated: %s" -msgstr "Päivitetty: %s" - -#: wp-includes/bookmark-template.php:206 -msgid "Bookmarks" -msgstr "Kirjanmerkit" +#: wp-includes/class-wp-editor.php:182 wp-includes/class-wp-editor.php:1258 +msgid "Visual" +msgstr "Graafinen" -#: wp-includes/comment-template.php:1599 -msgid "Log in to Reply" -msgstr "Kirjaudu sisään vastataksesi" +#: wp-includes/script-loader.php:633 +msgid "Plugin:" +msgstr "Lisäosa" -#: wp-includes/comment-template.php:1711 -msgid "Leave a Comment" -msgstr "Jätä kommentti" +#: wp-includes/class-wp-customize-manager.php:3872 +#: wp-includes/customize/class-wp-customize-color-control.php:54 +#: wp-includes/customize/class-wp-customize-image-control.php:38 +#: wp-includes/customize/class-wp-customize-media-control.php:62 +#: wp-includes/script-loader.php:730 +msgid "Default" +msgstr "Oletus" -#: wp-includes/comment-template.php:1712 -msgid "Log in to leave a Comment" -msgstr "Kirjaudu sisään kommentoidaksesi" +#: wp-includes/class-wp-editor.php:1194 wp-includes/media-template.php:965 +#: wp-includes/widgets/class-wp-widget-media-image.php:78 +msgid "Height" +msgstr "Korkeus" -#: wp-includes/comment-template.php:1780 -msgid "Click here to cancel reply." -msgstr "Napsauta peruuttaaksesi vastauksen." +#: wp-includes/class-wp-xmlrpc-server.php:499 +msgid "Time Format" +msgstr "Kellonajan oletusmuoto:" -#: wp-includes/comment-template.php:1873 wp-includes/comment-template.php:2244 -msgid "Leave a Reply to %s" -msgstr "Vastaa käyttäjälle %s" +#: wp-includes/class-wp-xmlrpc-server.php:494 +msgid "Date Format" +msgstr "Päivämäärän oletusmuoto" -#: wp-includes/class-walker-comment.php:284 -#: wp-includes/class-walker-comment.php:354 -msgid "Your comment is awaiting moderation." -msgstr "Kommenttisi odottaa hyväksyntää." +#: wp-includes/class-wp-xmlrpc-server.php:554 +msgid "Allow people to post comments on new articles" +msgstr "Salli uusien artikkelien kommentointi." -#. translators: 1: comment date, 2: comment time -#: wp-includes/class-walker-comment.php:291 -#: wp-includes/class-walker-comment.php:346 -msgid "%1$s at %2$s" -msgstr "%1$s %2$s" +#: wp-includes/comment-template.php:2200 wp-login.php:729 +msgid "Email" +msgstr "Sähköpostiosoite" -#: wp-includes/class-walker-comment.php:291 -msgid "(Edit)" -msgstr "(Muokkaa)" +#: wp-includes/class-wp-customize-manager.php:3804 +#: wp-includes/class-wp-xmlrpc-server.php:484 +msgid "Site Title" +msgstr "Sivuston otsikko" #: wp-includes/deprecated.php:2671 msgid "First Post" msgstr "Ensimmäinen artikkeli" -#: wp-includes/class-wp-customize-manager.php:3804 -#: wp-includes/class-wp-xmlrpc-server.php:484 -msgid "Site Title" -msgstr "Sivuston otsikko" +#: wp-includes/admin-bar.php:495 +msgid "Settings" +msgstr "Asetukset" + +#: wp-includes/post.php:1372 +msgctxt "page" +msgid "Add New" +msgstr "Lisää uusi" #: wp-includes/admin-bar.php:431 msgid "My Sites" msgstr "Minun sivustoni" +#: wp-includes/admin-bar.php:477 wp-includes/admin-bar.php:788 +#: wp-includes/customize/class-wp-customize-themes-section.php:56 +msgid "Themes" +msgstr "Teemat" + #: wp-includes/admin-bar.php:459 msgid "Sites" msgstr "Sivustot" -#: wp-includes/class-wp-xmlrpc-server.php:3576 wp-includes/comment.php:2983 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 -msgid "Sorry, comments are closed for this item." -msgstr "Tätä ei voi kommentoida." - -#: wp-includes/theme-compat/comments.php:66 -msgid "Comments are closed." -msgstr "Kommentit on suljettu." - -#: wp-includes/comment-template.php:1872 wp-includes/comment-template.php:2243 -msgid "Leave a Reply" -msgstr "Vastaa" - -#. translators: %s: login URL -#: wp-includes/comment-template.php:2222 -msgid "You must be <a href=\"%s\">logged in</a> to post a comment." -msgstr "Sinun täytyy <a href=\"%s\">kirjautua sisään</a> kommentoidaksesi." - -#: wp-includes/theme-compat/sidebar.php:103 -#: wp-includes/widgets/class-wp-widget-meta.php:33 -#: wp-includes/widgets/class-wp-widget-meta.php:48 -msgid "Meta" -msgstr "Meta" - -#: wp-includes/widgets/class-wp-widget-meta.php:70 -msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform." -msgstr "Voimanlähteenä on WordPress, moderni ja semanttinen henkilökohtainen julkaisujärjestelmä." - -#: wp-includes/class-wp-user.php:720 -msgid "Usage of user levels by plugins and themes is deprecated. Use roles and capabilities instead." -msgstr "Käyttäjätasojen (user levels) käyttämistä lisäosissa ja teemoissa ei enää suositella. Käytä rooleja ja oikeuksia. " +#: wp-signup.php:178 +msgid "Yes" +msgstr "Kyllä" #: wp-includes/taxonomy.php:502 msgid "Edit Category" msgstr "Muokkaa kategoriaa" -#: wp-includes/category-template.php:521 wp-includes/taxonomy.php:511 -msgid "No categories" -msgstr "Ei kategorioita" - -#: wp-includes/class-walker-category.php:137 -msgid "Feed for all posts filed under %s" -msgstr "Syöte kaikille kategorian %s artikkeleille" - -#: wp-includes/class-wp-xmlrpc-server.php:554 -msgid "Allow people to post comments on new articles" -msgstr "Salli uusien artikkelien kommentointi." +#: wp-includes/general-template.php:411 wp-login.php:887 wp-login.php:919 +msgid "Log In" +msgstr "Kirjaudu sisään" -#: wp-includes/widgets/class-wp-widget-meta.php:59 -msgid "Comments <abbr title=\"Really Simple Syndication\">RSS</abbr>" -msgstr "Kommenttien <abbr title=\"Really Simple Syndication\">RSS</abbr>-syöte" +#: wp-login.php:639 +msgid "Strength indicator" +msgstr "Salasanan vahvuus" -#: wp-includes/class-wp-customize-manager.php:3872 -#: wp-includes/customize/class-wp-customize-color-control.php:54 -#: wp-includes/customize/class-wp-customize-image-control.php:38 -#: wp-includes/customize/class-wp-customize-media-control.php:62 -#: wp-includes/script-loader.php:730 -msgid "Default" -msgstr "Oletus" +#: wp-includes/admin-bar.php:355 wp-includes/admin-bar.php:451 +#: wp-includes/admin-bar.php:533 wp-includes/deprecated.php:2792 +#: wp-includes/deprecated.php:2794 +msgid "Dashboard" +msgstr "Ohjausnäkymä" -#: wp-includes/comment-template.php:2200 wp-login.php:729 -msgid "Email" -msgstr "Sähköpostiosoite" +#: wp-includes/class-wp-widget.php:155 +msgid "There are no options for this widget." +msgstr "Tälle vimpaimelle ei ole asetuksia." -#: wp-includes/class-wp-customize-panel.php:385 -#: wp-includes/class-wp-customize-section.php:377 -#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:85 -msgid "Help" -msgstr "Ohje" +#: wp-includes/user.php:2313 +msgid "<strong>ERROR</strong>: This email is already registered, please choose another one." +msgstr "<strong>VIRHE</strong>: Sähköpostiosoite on jo rekisteröity. Valitse toinen osoite." #: wp-includes/user.php:2291 msgid "<strong>ERROR</strong>: Please enter a username." msgstr "<strong>VIRHE</strong>: Anna käyttäjätunnus." -#. translators: %s: comments count -#: wp-includes/script-loader.php:531 -msgid "Comments (%s)" -msgstr "Kommentit (%s)" +#: wp-includes/class-wp-editor.php:1195 wp-includes/media-template.php:965 +#: wp-includes/widgets/class-wp-widget-media-image.php:72 +msgid "Width" +msgstr "Leveys" + +#: wp-includes/class-wp-theme.php:804 +msgid "Light" +msgstr "Vaalea" + +#: wp-includes/class-wp-theme.php:804 +msgid "Yellow" +msgstr "Keltainen" -#: wp-includes/class-wp-customize-widgets.php:784 -#: wp-includes/class-wp-editor.php:1256 wp-includes/media.php:3531 -msgid "Apply" -msgstr "Hyväksy" +#: wp-includes/class-wp-theme.php:803 +msgid "White" +msgstr "Valkoinen" -#: wp-includes/deprecated.php:688 wp-includes/media-template.php:629 -#: wp-includes/media-template.php:656 wp-includes/media-template.php:734 -#: wp-includes/media-template.php:860 wp-includes/media-template.php:875 -#: wp-includes/media-template.php:926 wp-includes/media-template.php:988 -#: wp-includes/media-template.php:1086 wp-includes/media-template.php:1175 -msgid "None" -msgstr "Ei mitään" +#: wp-includes/class-wp-theme.php:803 +msgid "Silver" +msgstr "Hopea" -#: wp-includes/class-wp-editor.php:1077 -#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:128 -#: wp-includes/media-template.php:408 wp-includes/media-template.php:589 -msgid "Description" -msgstr "Kuvaus" +#: wp-includes/class-wp-theme.php:802 +msgid "Red" +msgstr "Punainen" -#: wp-includes/class-wp-editor.php:1078 wp-includes/theme-compat/sidebar.php:27 -msgid "Author" -msgstr "Kirjoittaja" +#: wp-includes/class-wp-theme.php:802 +msgid "Purple" +msgstr "Lila" -#: wp-includes/class-wp-customize-nav-menus.php:1063 -#: wp-includes/class-wp-editor.php:1131 wp-includes/class-wp-editor.php:1692 -#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:91 -#: wp-includes/media-template.php:376 wp-includes/media-template.php:557 -#: wp-includes/media.php:3488 -#: wp-includes/widgets/class-wp-widget-media-image.php:107 -msgid "URL" -msgstr "URL" +#: wp-includes/class-wp-theme.php:802 +msgid "Pink" +msgstr "Vaaleanpunainen" -#: wp-includes/comment-template.php:1081 wp-includes/comment-template.php:2218 -msgctxt "noun" -msgid "Comment" -msgstr "Kommentti" +#: wp-includes/class-wp-theme.php:801 +msgid "Orange" +msgstr "Oranssi" -#: wp-signup.php:182 -msgid "No" -msgstr "Ei" +#: wp-includes/class-wp-theme.php:801 +msgid "Green" +msgstr "Vihreä" -#: wp-includes/class-walker-comment.php:244 -#: wp-includes/class-walker-comment.php:350 -#: wp-includes/class-wp-editor.php:1254 -msgid "Edit" -msgstr "Muokkaa" +#: wp-includes/class-wp-theme.php:800 +msgid "Brown" +msgstr "Ruskea" -#: wp-includes/class-wp-editor.php:1043 -msgid "Undo" -msgstr "Kumoa" +#: wp-includes/class-wp-theme.php:800 +msgid "Blue" +msgstr "Sininen" -#: wp-includes/script-loader.php:529 -msgid "Comments" -msgstr "Kommentit" +#: wp-includes/class-wp-theme.php:800 +msgid "Black" +msgstr "Musta" -#: wp-includes/script-loader.php:563 -msgid "Publish" -msgstr "Julkaise" +#: wp-includes/class-wp-customize-panel.php:385 +#: wp-includes/class-wp-customize-section.php:377 +#: wp-includes/customize/class-wp-customize-nav-menus-panel.php:85 +msgid "Help" +msgstr "Ohje" -#: wp-includes/revision.php:36 -msgid "Excerpt" -msgstr "Ote" +#: wp-includes/media.php:3139 wp-includes/script-loader.php:431 +#: wp-includes/script-loader.php:620 +msgid "(no title)" +msgstr "(ei otsikkoa)" -#: wp-includes/class-wp-editor.php:1736 wp-includes/script-loader.php:430 -msgid "Add Link" -msgstr "Lisää linkki" +#: wp-includes/admin-bar.php:541 wp-includes/post.php:1375 +msgid "New Post" +msgstr "Uusi artikkeli" -#: wp-includes/class-wp-editor.php:1116 -msgid "Save" -msgstr "Tallenna" +#: wp-includes/post.php:67 +msgid "Edit Media" +msgstr "Muokkaa mediatiedostoja" -#: wp-includes/class-wp-editor.php:1128 -msgid "Target" -msgstr "Kohde" +#: wp-includes/post.php:1375 +msgid "New Page" +msgstr "Uusi sivu" -#: wp-includes/comment-template.php:2198 -msgid "Name" -msgstr "Nimi" +#: wp-includes/media.php:3491 +msgid "Select" +msgstr "Valitse" + +#: wp-includes/class-wp-editor.php:1048 wp-includes/class-wp-editor.php:1687 +#: wp-includes/script-loader.php:269 wp-includes/script-loader.php:351 +#: wp-includes/script-loader.php:466 wp-includes/script-loader.php:986 +msgid "Close" +msgstr "Sulje" #: wp-includes/post-template.php:1176 wp-includes/theme-compat/sidebar.php:89 #: wp-includes/widgets/class-wp-widget-pages.php:31 @@ -10683,121 +10631,139 @@ msgstr "Nimi" msgid "Pages" msgstr "Sivut" -#: wp-includes/taxonomy.php:502 -msgid "Edit Tag" -msgstr "Muokkaa avainsanaa" +#. translators: 1: Comment author URL +#: wp-includes/pluggable.php:1489 wp-includes/pluggable.php:1650 +#: wp-includes/pluggable.php:1791 +msgid "Email: %s" +msgstr "Sähköposti: %s" -#: wp-includes/widgets/class-wp-widget-tag-cloud.php:49 -msgid "Tags" -msgstr "Avainsanat" +#: wp-includes/category-template.php:148 +msgid "Uncategorized" +msgstr "Yleinen" -#: wp-includes/post.php:1372 -msgctxt "post" -msgid "Add New" -msgstr "Lisää uusi" +#: wp-includes/widgets/class-wp-widget-links.php:30 +msgid "Links" +msgstr "Linkit" -#: wp-includes/admin-bar.php:468 -msgid "Users" -msgstr "Käyttäjät" +#: wp-includes/post.php:1376 +msgid "View Page" +msgstr "Näytä sivu" -#: wp-includes/customize/class-wp-customize-nav-menu-control.php:56 -#: wp-includes/customize/class-wp-widget-area-customize-control.php:65 -#: wp-includes/script-loader.php:755 -msgid "Done" -msgstr "Valmis" +#: wp-includes/post.php:2287 +msgid "Images" +msgstr "Kuvat" -#: wp-includes/class-wp-theme.php:751 wp-includes/comment-template.php:31 -msgid "Anonymous" -msgstr "Nimetön" +#: wp-includes/admin-bar.php:875 wp-includes/admin-bar.php:876 +#: wp-includes/class-wp-editor.php:1708 wp-includes/media.php:3490 +msgid "Search" +msgstr "Etsi" -#: wp-includes/widgets/class-wp-widget-rss.php:31 -msgid "RSS" -msgstr "RSS" +#: wp-includes/script-loader.php:138 wp-includes/script-loader.php:299 +#: wp-includes/widgets/class-wp-widget-text.php:406 +#: wp-includes/widgets/class-wp-widget-text.php:421 +msgid "Dismiss" +msgstr "Sulje" -#: wp-includes/widgets/class-wp-widget-recent-comments.php:31 -#: wp-includes/widgets/class-wp-widget-recent-comments.php:78 -msgid "Recent Comments" -msgstr "Viimeisimmät kommentit" +#: wp-includes/taxonomy.php:499 +msgid "All Categories" +msgstr "Kaikki kategoriat" -#: wp-includes/admin-bar.php:486 -msgid "Plugins" -msgstr "Lisäosat" +#: wp-includes/class-wp-customize-control.php:625 +#: wp-includes/class-wp-customize-nav-menus.php:1032 +msgid "Add" +msgstr "Lisää" -#: wp-includes/class-wp-editor.php:1047 wp-includes/class-wp-editor.php:1733 -#: wp-includes/media.php:3492 wp-includes/script-loader.php:415 -#: wp-includes/script-loader.php:465 wp-includes/script-loader.php:555 -msgid "Cancel" -msgstr "Peruuta" +#: wp-includes/taxonomy.php:508 +msgid "Add or remove tags" +msgstr "Lisää tai poista avainsanoja" -#: wp-includes/revision.php:35 -msgid "Content" -msgstr "Sisältö" +#: wp-includes/media.php:3493 wp-includes/script-loader.php:429 +#: wp-includes/script-loader.php:565 wp-includes/script-loader.php:650 +msgid "Update" +msgstr "Päivitä" -#: wp-includes/script-loader.php:567 -msgid "Save Draft" -msgstr "Tallenna luonnos" +#: wp-includes/script-loader.php:564 +msgid "Schedule" +msgstr "Ajasta" -#: wp-includes/comment-template.php:1596 wp-includes/script-loader.php:526 -msgid "Reply" -msgstr "Vastaa" +#: wp-includes/script-loader.php:569 +msgid "Public" +msgstr "Julkinen" -#: wp-includes/comment-template.php:1083 -msgid "Pingback" -msgstr "Päivitysilmoitus" +#: wp-includes/script-loader.php:570 +msgid "Public, Sticky" +msgstr "Julkinen, kiinnitetty" -#: wp-includes/comment-template.php:1082 -msgid "Trackback" -msgstr "Paluuviite" +#: wp-includes/post.php:690 wp-includes/post.php:710 +#: wp-includes/script-loader.php:568 +msgid "Private" +msgstr "Yksityinen" -#: wp-includes/widgets/class-wp-widget-rss.php:74 -msgid "Unknown Feed" -msgstr "Tuntematon syöte" +#: wp-includes/class-wp-editor.php:1046 wp-includes/script-loader.php:554 +msgid "OK" +msgstr "OK" -#: wp-includes/widgets.php:175 -msgid "Sidebar" -msgstr "Sivupalkki" +#: wp-includes/script-loader.php:572 +msgid "Privately Published" +msgstr "Yksityisesti julkaistu" -#: wp-includes/general-template.php:1524 -#: wp-includes/theme-compat/sidebar.php:91 -#: wp-includes/widgets/class-wp-widget-archives.php:31 -#: wp-includes/widgets/class-wp-widget-archives.php:49 -msgid "Archives" -msgstr "Arkistot" +#: wp-includes/script-loader.php:566 +msgid "Save as Pending" +msgstr "Lähetä tarkastettavaksi" + +#: wp-includes/media-template.php:869 wp-includes/media-template.php:981 +msgid "Image URL" +msgstr "Kuvan URL" -#: wp-includes/general-template.php:409 wp-login.php:906 -msgid "Password" -msgstr "Salasana" +#: wp-includes/class-wp-editor.php:1098 +msgid "Media" +msgstr "Media" -#: wp-includes/class-wp-editor.php:1044 -msgid "Redo" -msgstr "Tee uudelleen" +#: wp-includes/media-template.php:330 wp-includes/media-template.php:528 +#: wp-includes/media.php:3562 +msgid "Edit Image" +msgstr "Muokkaa kuvaa" -#: wp-includes/media-template.php:694 wp-includes/media-template.php:769 -#: wp-includes/media-template.php:943 wp-includes/media.php:3172 -msgid "Thumbnail" -msgstr "Pienoiskuva" +#: wp-includes/class-wp-editor.php:1196 wp-includes/media-template.php:398 +#: wp-includes/media-template.php:579 wp-includes/media-template.php:837 +#: wp-includes/media-template.php:902 +#: wp-includes/widgets/class-wp-widget-media-image.php:85 +msgid "Caption" +msgstr "Kuvateksti" -#. translators: %s: file name -#: wp-includes/deprecated.php:3174 -msgid "File “%s” doesn’t exist?" -msgstr "Tiedostoa '%s' ei ole olemassa?" +#: wp-includes/class-wp-editor.php:1197 wp-includes/media-template.php:612 +msgid "Alignment" +msgstr "Asettelu" -#: wp-includes/deprecated.php:3178 -msgid "The GD image library is not installed." -msgstr "GD-kuvankäsittelykirjastoa ei ole asennettu." +#: wp-includes/media-template.php:685 wp-includes/media-template.php:759 +#: wp-includes/media-template.php:934 +#: wp-includes/widgets/class-wp-widget-media-image.php:66 +msgid "Size" +msgstr "Koko" -#. translators: %s: file name -#: wp-includes/deprecated.php:3187 -msgid "File “%s” is not an image." -msgstr "Tiedosto '%s' ei ole kuva." +#: wp-includes/media-template.php:697 wp-includes/media-template.php:772 +#: wp-includes/media-template.php:946 wp-includes/media.php:3175 +msgid "Full Size" +msgstr "Täysikokoinen" -#: wp-includes/media.php:3489 -msgid "Add Media" -msgstr "Lisää media" +#: wp-includes/media-template.php:695 wp-includes/media-template.php:770 +#: wp-includes/media-template.php:944 wp-includes/media.php:3173 +msgid "Medium" +msgstr "Keskikokoinen" -#: wp-includes/media-template.php:340 wp-includes/media-template.php:504 -msgid "Saved." -msgstr "Tallennettu." +#: wp-includes/class-wp-editor.php:1201 +#: wp-includes/customize/class-wp-customize-background-position-control.php:52 +#: wp-includes/media-template.php:626 wp-includes/media-template.php:857 +#: wp-includes/media-template.php:923 +msgid "Right" +msgstr "Oikealle" + +#: wp-includes/class-wp-editor.php:1200 +#: wp-includes/customize/class-wp-customize-background-position-control.php:51 +#: wp-includes/media-template.php:623 wp-includes/media-template.php:854 +#: wp-includes/media-template.php:920 +msgid "Center" +msgstr "Keskelle" #: wp-includes/class-wp-editor.php:1199 #: wp-includes/customize/class-wp-customize-background-position-control.php:50 @@ -10806,182 +10772,171 @@ msgstr "Tallennettu." msgid "Left" msgstr "Vasemmalle" -#: wp-includes/class-wp-editor.php:1200 -#: wp-includes/customize/class-wp-customize-background-position-control.php:51 -#: wp-includes/media-template.php:623 wp-includes/media-template.php:854 -#: wp-includes/media-template.php:920 -msgid "Center" -msgstr "Keskelle" +#: wp-includes/media-template.php:340 wp-includes/media-template.php:504 +msgid "Saved." +msgstr "Tallennettu." -#: wp-includes/class-wp-editor.php:1201 -#: wp-includes/customize/class-wp-customize-background-position-control.php:52 -#: wp-includes/media-template.php:626 wp-includes/media-template.php:857 -#: wp-includes/media-template.php:923 -msgid "Right" -msgstr "Oikealle" +#: wp-includes/media.php:3489 +msgid "Add Media" +msgstr "Lisää media" -#: wp-includes/media-template.php:695 wp-includes/media-template.php:770 -#: wp-includes/media-template.php:944 wp-includes/media.php:3173 -msgid "Medium" -msgstr "Keskikokoinen" +#. translators: %s: file name +#: wp-includes/deprecated.php:3187 +msgid "File “%s” is not an image." +msgstr "Tiedosto '%s' ei ole kuva." -#: wp-includes/media-template.php:685 wp-includes/media-template.php:759 -#: wp-includes/media-template.php:934 -#: wp-includes/widgets/class-wp-widget-media-image.php:66 -msgid "Size" -msgstr "Koko" +#: wp-includes/deprecated.php:3178 +msgid "The GD image library is not installed." +msgstr "GD-kuvankäsittelykirjastoa ei ole asennettu." -#: wp-includes/class-wp-editor.php:1197 wp-includes/media-template.php:612 -msgid "Alignment" -msgstr "Asettelu" +#. translators: %s: file name +#: wp-includes/deprecated.php:3174 +msgid "File “%s” doesn’t exist?" +msgstr "Tiedostoa '%s' ei ole olemassa?" -#: wp-includes/class-wp-editor.php:1196 wp-includes/media-template.php:398 -#: wp-includes/media-template.php:579 wp-includes/media-template.php:837 -#: wp-includes/media-template.php:902 -#: wp-includes/widgets/class-wp-widget-media-image.php:85 -msgid "Caption" -msgstr "Kuvateksti" +#: wp-includes/media-template.php:694 wp-includes/media-template.php:769 +#: wp-includes/media-template.php:943 wp-includes/media.php:3172 +msgid "Thumbnail" +msgstr "Pienoiskuva" -#: wp-includes/class-wp-editor.php:1098 -msgid "Media" -msgstr "Media" +#: wp-includes/class-wp-editor.php:1044 +msgid "Redo" +msgstr "Tee uudelleen" -#: wp-includes/media-template.php:869 wp-includes/media-template.php:981 -msgid "Image URL" -msgstr "Kuvan URL" +#: wp-includes/general-template.php:409 wp-login.php:906 +msgid "Password" +msgstr "Salasana" -#: wp-includes/script-loader.php:572 -msgid "Privately Published" -msgstr "Yksityisesti julkaistu" +#: wp-login.php:725 +msgid "Username" +msgstr "Käyttäjätunnus" -#: wp-includes/class-wp-editor.php:1046 wp-includes/script-loader.php:554 -msgid "OK" -msgstr "OK" +#: wp-includes/general-template.php:1524 +#: wp-includes/theme-compat/sidebar.php:91 +#: wp-includes/widgets/class-wp-widget-archives.php:31 +#: wp-includes/widgets/class-wp-widget-archives.php:49 +msgid "Archives" +msgstr "Arkistot" -#: wp-includes/post.php:690 wp-includes/post.php:710 -#: wp-includes/script-loader.php:568 -msgid "Private" -msgstr "Yksityinen" +#: wp-includes/widgets.php:175 +msgid "Sidebar" +msgstr "Sivupalkki" -#: wp-includes/script-loader.php:570 -msgid "Public, Sticky" -msgstr "Julkinen, kiinnitetty" +#: wp-includes/admin-bar.php:825 +msgid "Header" +msgstr "Otsake" -#: wp-includes/script-loader.php:569 -msgid "Public" -msgstr "Julkinen" +#: wp-includes/widgets/class-wp-widget-rss.php:74 +msgid "Unknown Feed" +msgstr "Tuntematon syöte" -#: wp-includes/script-loader.php:564 -msgid "Schedule" -msgstr "Ajasta" +#: wp-includes/widgets/class-wp-widget-recent-comments.php:162 +msgid "Number of comments to show:" +msgstr "Näytettävät kommentit:" -#: wp-includes/media.php:3493 wp-includes/script-loader.php:429 -#: wp-includes/script-loader.php:565 wp-includes/script-loader.php:650 -msgid "Update" -msgstr "Päivitä" +#: wp-includes/comment-template.php:1082 +msgid "Trackback" +msgstr "Paluuviite" -#: wp-includes/taxonomy.php:508 -msgid "Add or remove tags" -msgstr "Lisää tai poista avainsanoja" +#: wp-includes/comment-template.php:1083 +msgid "Pingback" +msgstr "Päivitysilmoitus" -#: wp-includes/class-wp-customize-control.php:625 -#: wp-includes/class-wp-customize-nav-menus.php:1032 -msgid "Add" -msgstr "Lisää" +#: wp-includes/comment-template.php:1596 wp-includes/script-loader.php:526 +msgid "Reply" +msgstr "Vastaa" -#: wp-includes/admin-bar.php:875 wp-includes/admin-bar.php:876 -#: wp-includes/class-wp-editor.php:1708 wp-includes/media.php:3490 -msgid "Search" -msgstr "Etsi" +#: wp-includes/script-loader.php:567 +msgid "Save Draft" +msgstr "Tallenna luonnos" -#: wp-includes/post.php:2287 -msgid "Images" -msgstr "Kuvat" +#: wp-includes/widgets/class-wp-widget-tag-cloud.php:49 +msgid "Tags" +msgstr "Avainsanat" -#: wp-includes/post.php:1376 -msgid "View Post" -msgstr "Näytä artikkeli" +#: wp-includes/revision.php:35 +msgid "Content" +msgstr "Sisältö" -#: wp-includes/post.php:1376 -msgid "View Page" -msgstr "Näytä sivu" +#: wp-includes/class-wp-editor.php:1047 wp-includes/class-wp-editor.php:1733 +#: wp-includes/media.php:3492 wp-includes/script-loader.php:415 +#: wp-includes/script-loader.php:465 wp-includes/script-loader.php:555 +msgid "Cancel" +msgstr "Peruuta" -#: wp-includes/widgets/class-wp-widget-links.php:30 -msgid "Links" -msgstr "Linkit" +#: wp-includes/admin-bar.php:486 +msgid "Plugins" +msgstr "Lisäosat" -#: wp-includes/class-wp-editor.php:1048 wp-includes/class-wp-editor.php:1687 -#: wp-includes/script-loader.php:269 wp-includes/script-loader.php:351 -#: wp-includes/script-loader.php:466 wp-includes/script-loader.php:986 -msgid "Close" -msgstr "Sulje" +#: wp-includes/widgets/class-wp-widget-recent-comments.php:31 +#: wp-includes/widgets/class-wp-widget-recent-comments.php:78 +msgid "Recent Comments" +msgstr "Viimeisimmät kommentit" -#: wp-includes/media.php:3491 -msgid "Select" -msgstr "Valitse" +#: wp-includes/class-wp-editor.php:1114 wp-includes/media-template.php:1247 +msgid "Preview" +msgstr "Esikatsele" -#: wp-includes/post.php:1375 -msgid "New Page" -msgstr "Uusi sivu" +#: wp-includes/widgets/class-wp-widget-rss.php:31 +msgid "RSS" +msgstr "RSS" -#: wp-includes/post.php:67 -msgid "Edit Media" -msgstr "Muokkaa mediatiedostoja" +#: wp-includes/class-wp-theme.php:751 wp-includes/comment-template.php:31 +msgid "Anonymous" +msgstr "Nimetön" -#: wp-includes/admin-bar.php:541 wp-includes/post.php:1375 -msgid "New Post" -msgstr "Uusi artikkeli" +#: wp-includes/customize/class-wp-customize-nav-menu-control.php:56 +#: wp-includes/customize/class-wp-widget-area-customize-control.php:65 +#: wp-includes/script-loader.php:755 +msgid "Done" +msgstr "Valmis" -#: wp-includes/media.php:3139 wp-includes/script-loader.php:431 -#: wp-includes/script-loader.php:620 -msgid "(no title)" -msgstr "(ei otsikkoa)" +#: wp-includes/admin-bar.php:468 +msgid "Users" +msgstr "Käyttäjät" #: wp-includes/post.php:1374 msgid "Edit Post" msgstr "Muokkaa artikkelia" -#: wp-includes/widgets/class-wp-widget-recent-comments.php:162 -msgid "Number of comments to show:" -msgstr "Näytettävät kommentit:" +#: wp-includes/post.php:1376 +msgid "View Post" +msgstr "Näytä artikkeli" -#: wp-includes/deprecated.php:3122 wp-includes/functions.php:2597 -msgid "Are you sure you want to do this?" -msgstr "Oletko varma?" +#: wp-includes/post.php:1372 +msgctxt "post" +msgid "Add New" +msgstr "Lisää uusi" -#: wp-includes/media-template.php:330 wp-includes/media-template.php:528 -#: wp-includes/media.php:3562 -msgid "Edit Image" -msgstr "Muokkaa kuvaa" +#: wp-includes/taxonomy.php:502 +msgid "Edit Tag" +msgstr "Muokkaa avainsanaa" -#: wp-includes/media-template.php:697 wp-includes/media-template.php:772 -#: wp-includes/media-template.php:946 wp-includes/media.php:3175 -msgid "Full Size" -msgstr "Täysikokoinen" +#: wp-includes/deprecated.php:688 wp-includes/media-template.php:629 +#: wp-includes/media-template.php:656 wp-includes/media-template.php:734 +#: wp-includes/media-template.php:860 wp-includes/media-template.php:875 +#: wp-includes/media-template.php:926 wp-includes/media-template.php:988 +#: wp-includes/media-template.php:1086 wp-includes/media-template.php:1175 +msgid "None" +msgstr "Ei mitään" -#: wp-includes/admin-bar.php:825 -msgid "Header" -msgstr "Otsake" +#: wp-includes/class-wp-editor.php:1077 +#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:128 +#: wp-includes/media-template.php:408 wp-includes/media-template.php:589 +msgid "Description" +msgstr "Kuvaus" -#: wp-includes/post.php:95 -msgid "Revisions" -msgstr "Versiot" +#: wp-includes/comment-template.php:2198 +msgid "Name" +msgstr "Nimi" #: wp-includes/class-wp-editor.php:1084 msgid "Advanced" msgstr "Edistyneet ominaisuudet" -#: wp-includes/taxonomy.php:111 -msgid "Link Categories" -msgstr "Linkkien kategoriat" - -#: wp-includes/taxonomy.php:497 -msgid "Search Categories" -msgstr "Etsi kategorioita" - -#: wp-includes/taxonomy.php:504 -msgid "Update Category" -msgstr "Päivitä kategoria" +#: wp-includes/class-wp-editor.php:1128 +msgid "Target" +msgstr "Kohde" #: wp-includes/category-template.php:524 #: wp-includes/theme-compat/sidebar.php:97 @@ -10990,101 +10945,96 @@ msgstr "Päivitä kategoria" msgid "Categories" msgstr "Kategoriat" -#: wp-includes/taxonomy.php:499 -msgid "All Categories" -msgstr "Kaikki kategoriat" +#: wp-includes/class-wp-editor.php:1116 +msgid "Save" +msgstr "Tallenna" -#: wp-includes/class-wp-editor.php:1114 wp-includes/media-template.php:1247 -msgid "Preview" -msgstr "Esikatsele" +#: wp-includes/class-wp-editor.php:1736 wp-includes/script-loader.php:430 +msgid "Add Link" +msgstr "Lisää linkki" + +#: wp-includes/taxonomy.php:504 +msgid "Update Category" +msgstr "Päivitä kategoria" #: wp-includes/taxonomy.php:116 msgid "Edit Link Category" msgstr "Muokkaa kategoriaa" -#: wp-includes/category-template.php:148 -msgid "Uncategorized" -msgstr "Yleinen" +#: wp-includes/taxonomy.php:497 +msgid "Search Categories" +msgstr "Etsi kategorioita" -#: wp-includes/script-loader.php:138 wp-includes/script-loader.php:299 -#: wp-includes/widgets/class-wp-widget-text.php:406 -#: wp-includes/widgets/class-wp-widget-text.php:421 -msgid "Dismiss" -msgstr "Sulje" +#: wp-includes/taxonomy.php:111 +msgid "Link Categories" +msgstr "Linkkien kategoriat" -#: wp-login.php:725 -msgid "Username" -msgstr "Käyttäjätunnus" +#: wp-includes/post.php:95 +msgid "Revisions" +msgstr "Versiot" -#. translators: 1: Comment author URL -#: wp-includes/pluggable.php:1489 wp-includes/pluggable.php:1650 -#: wp-includes/pluggable.php:1791 -msgid "Email: %s" -msgstr "Sähköposti: %s" +#: wp-includes/revision.php:36 +msgid "Excerpt" +msgstr "Ote" + +#: wp-includes/script-loader.php:563 +msgid "Publish" +msgstr "Julkaise" + +#: wp-includes/script-loader.php:529 +msgid "Comments" +msgstr "Kommentit" + +#: wp-includes/class-wp-customize-widgets.php:784 +#: wp-includes/class-wp-editor.php:1256 wp-includes/media.php:3531 +msgid "Apply" +msgstr "Hyväksy" + +#: wp-includes/class-wp-editor.php:1043 +msgid "Undo" +msgstr "Kumoa" #. translators: %s: search phrase #: wp-includes/general-template.php:989 msgid "Search Results for “%s”" msgstr "Hakutulokset haulle ”%s”" -#: wp-includes/script-loader.php:566 -msgid "Save as Pending" -msgstr "Lähetä tarkastettavaksi" +#: wp-includes/class-walker-comment.php:244 +#: wp-includes/class-walker-comment.php:350 +#: wp-includes/class-wp-editor.php:1254 +msgid "Edit" +msgstr "Muokkaa" -#: wp-includes/class-wp-customize-manager.php:412 -#: wp-includes/class-wp-customize-manager.php:477 -#: wp-includes/script-loader.php:467 -msgid "Cheatin’ uh?" -msgstr "Hei, yritätkö huiputtaa?" +#: wp-signup.php:182 +msgid "No" +msgstr "Ei" -#: wp-includes/class-wp-editor.php:1074 wp-includes/media-template.php:382 -#: wp-includes/media-template.php:563 wp-includes/revision.php:34 -#: wp-includes/script-loader.php:581 -msgid "Title" -msgstr "Otsikko" +#: wp-includes/deprecated.php:3122 wp-includes/functions.php:2597 +msgid "Are you sure you want to do this?" +msgstr "Oletko varma?" -#: wp-includes/post.php:691 wp-includes/post.php:711 -#: wp-includes/script-loader.php:573 -msgid "Published" -msgstr "Julkaistu" +#: wp-includes/comment-template.php:1081 wp-includes/comment-template.php:2218 +msgctxt "noun" +msgid "Comment" +msgstr "Kommentti" -#: wp-includes/post.php:689 -msgid "Pending Review" -msgstr "Tarkastettavana" +#: wp-includes/class-wp-customize-nav-menus.php:1063 +#: wp-includes/class-wp-editor.php:1131 wp-includes/class-wp-editor.php:1692 +#: wp-includes/customize/class-wp-customize-nav-menu-item-control.php:91 +#: wp-includes/media-template.php:376 wp-includes/media-template.php:557 +#: wp-includes/media.php:3488 +#: wp-includes/widgets/class-wp-widget-media-image.php:107 +msgid "URL" +msgstr "URL" -#: wp-includes/post.php:688 wp-includes/post.php:709 -msgid "Draft" -msgstr "Luonnos" +#: wp-includes/class-wp-editor.php:1078 wp-includes/theme-compat/sidebar.php:27 +msgid "Author" +msgstr "Kirjoittaja" #: wp-includes/admin-bar.php:286 wp-includes/class-wp-admin-bar.php:426 msgid "Log Out" msgstr "Kirjaudu ulos" -#: wp-activate.php:85 wp-includes/script-loader.php:707 -#: wp-includes/script-loader.php:708 -msgid "Activate" -msgstr "Ota käyttöön" - -#: wp-activate.php:135 wp-includes/post-template.php:1603 -msgid "Password:" -msgstr "Salasana:" - -#: wp-activate.php:81 -msgid "Activation Key:" -msgstr "Aktivointiavain:" - -#: wp-activate.php:97 wp-activate.php:131 -msgid "Your account is now active!" -msgstr "Tilisi on nyt aktivoitu!" - -#: wp-activate.php:78 -msgid "Activation Key Required" -msgstr "Aktivointiavain vaaditaan" - -#: wp-activate.php:123 -msgid "An error occurred during the activation" -msgstr "Aktivoinnissa tapahtui virhe" - #: wp-includes/admin-bar.php:337 wp-includes/admin-bar.php:558 #: wp-includes/deprecated.php:2790 msgid "Visit Site" @@ -11094,10 +11044,60 @@ msgstr "Vieraile sivustolla" msgid "Y/m/d" msgstr "j.n.Y" +#: wp-includes/post.php:688 wp-includes/post.php:709 +msgid "Draft" +msgstr "Luonnos" + +#: wp-includes/post.php:689 +msgid "Pending Review" +msgstr "Tarkastettavana" + +#: wp-includes/post.php:691 wp-includes/post.php:711 +#: wp-includes/script-loader.php:573 +msgid "Published" +msgstr "Julkaistu" + +#: wp-includes/class-wp-editor.php:1074 wp-includes/media-template.php:382 +#: wp-includes/media-template.php:563 wp-includes/revision.php:34 +#: wp-includes/script-loader.php:581 +msgid "Title" +msgstr "Otsikko" + #: wp-includes/post.php:1379 msgid "No posts found." msgstr "Artikkeleita ei löytynyt." +#: wp-includes/class-wp-customize-manager.php:412 +#: wp-includes/class-wp-customize-manager.php:477 +#: wp-includes/script-loader.php:467 +msgid "Cheatin’ uh?" +msgstr "Hei, yritätkö huiputtaa?" + +#: wp-activate.php:135 wp-includes/post-template.php:1603 +msgid "Password:" +msgstr "Salasana:" + #: wp-activate.php:134 wp-signup.php:228 msgid "Username:" msgstr "Käyttäjätunnus:" + +#: wp-activate.php:123 +msgid "An error occurred during the activation" +msgstr "Aktivoinnissa tapahtui virhe" + +#: wp-activate.php:97 wp-activate.php:131 +msgid "Your account is now active!" +msgstr "Tilisi on nyt aktivoitu!" + +#: wp-activate.php:85 wp-includes/script-loader.php:707 +#: wp-includes/script-loader.php:708 +msgid "Activate" +msgstr "Ota käyttöön" + +#: wp-activate.php:81 +msgid "Activation Key:" +msgstr "Aktivointiavain:" + +#: wp-activate.php:78 +msgid "Activation Key Required" +msgstr "Aktivointiavain vaaditaan" diff --git a/wp-content/languages/fr_FR.mo b/wp-content/languages/fr_FR.mo index 2161fd12d19662da9c38ab2fa9a8e1bb5698d1d0..5d49a6b0601a09ba384da2ea0231143487cf22a3 100644 Binary files a/wp-content/languages/fr_FR.mo and b/wp-content/languages/fr_FR.mo differ diff --git a/wp-content/languages/fr_FR.po b/wp-content/languages/fr_FR.po index d343c0adb3de0eb8cd60765a893aab1a7399aa9a..8b7c235dd6c54787bf1871cb060c90f26ee81910 100644 --- a/wp-content/languages/fr_FR.po +++ b/wp-content/languages/fr_FR.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-26 13:28:48+0000\n" +"PO-Revision-Date: 2017-09-26 06:44:51+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -42,7 +42,7 @@ msgstr "Ce widget semble contenir du code qui fonctionnerait sans doute mieux da #: wp-includes/widgets/class-wp-widget-text.php:419 msgid "Hey there, looks like you just pasted HTML into the “Visual” tab of the Text widget. You may want to paste your code into the “Text” tab instead. Alternately, try out the new “Custom HTML” widget!" -msgstr "Bonjour, il semblerait que vous ayez collé du code HTML dans l’onglet « Visuel » du widget texte. Vous souhaitiez peut-être le coller dans l'onglet « Texte ». Vous pouvez également essayer le nouveau widget « HTML personnalisé » !" +msgstr "Bonjour, il semblerait que vous ayez collé du code HTML dans l’onglet « Visuel » du widget texte. Vous souhaitiez peut-être le coller dans l’onglet « Texte ». Vous pouvez également essayer le nouveau widget « HTML personnalisé » !" #: wp-includes/widgets/class-wp-widget-text.php:418 msgid "Did you just paste HTML?" @@ -54,7 +54,7 @@ msgstr "Dites, avez-vous entendu parler de notre nouveau widget « HTML personn #: wp-includes/widgets/class-wp-widget-text.php:401 msgid "Hey, did you hear we have a “Custom HTML” widget now? You can find it by pressing the “<a class=\"add-widget\" href=\"#\">Add a Widget</a>” button and searching for “HTML”. Check it out to add some custom code to your site!" -msgstr "Dites, avez-vous entendu parler de notre nouveau widget « HTML personnalisé » ? Vous pouvez le trouver en cliquant sur le bouton « <a class=\"add-widget\" href=\"#\">Ajoutez un widget </a> » et en cherchant « HTML ». Utilisez-le pour ajouter du code personnalisé à votre site !" +msgstr "Dites, avez-vous entendu parler de notre nouveau widget « HTML personnalisé » ? Vous pouvez le trouver en cliquant sur le bouton « <a class=\"add-widget\" href=\"#\">Ajoutez un widget</a> » et en cherchant « HTML ». Utilisez-le pour ajouter du code personnalisé à votre site !" #: wp-includes/widgets/class-wp-widget-text.php:399 msgid "New Custom HTML Widget" @@ -1950,7 +1950,7 @@ msgstr "Le contenu pour cet objet." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1208 msgid "User agent for the object author." -msgstr "Agent utilisateur pour l‘objet author." +msgstr "Agent utilisateur pour l’objet author." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1202 msgid "URL for the object author." @@ -2757,7 +2757,7 @@ msgstr "Suppression..." #: wp-includes/script-loader.php:700 msgid "Caution: These themes may be active on other sites in the network. Are you sure you want to proceed?" -msgstr "Attention : Ces thèmes peuvent être actifs sur d’autres sites dans le réseau. Confirmez-vous vouloir vraiment faire cela ?" +msgstr "Attention : Ces thèmes peuvent être actifs sur d’autres sites dans le réseau. Confirmez-vous la suppression ?" #: wp-includes/script-loader.php:699 msgid "Are you sure you want to delete the selected plugins and their data?" @@ -9015,7 +9015,7 @@ msgstr "Publié le :" #: wp-includes/script-loader.php:557 msgid "Schedule for:" -msgstr "Planifier pour :" +msgstr "Planifié pour le :" #: wp-includes/script-loader.php:556 msgid "Publish on:" diff --git a/wp-content/languages/it_IT.mo b/wp-content/languages/it_IT.mo index 4bcb42b02944dd72cc67f436cc99ff891627c805..de56e424db83a70d73161d59da994abeb038bc06 100644 Binary files a/wp-content/languages/it_IT.mo and b/wp-content/languages/it_IT.mo differ diff --git a/wp-content/languages/it_IT.po b/wp-content/languages/it_IT.po index 60ef9b6a63294a870dbbfdfd729e08b7847d50dd..dd0ab052eb44c4c1aaf81d147bc2cbfc73e1e015 100644 --- a/wp-content/languages/it_IT.po +++ b/wp-content/languages/it_IT.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-04 08:42:00+0000\n" +"PO-Revision-Date: 2017-09-30 11:12:28+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -38,15 +38,15 @@ msgstr "," #: wp-includes/widgets/class-wp-widget-text.php:366 msgid "This widget may have contained code that may work better in the new “Custom HTML” widget. If you haven’t yet, how about trying that widget instead?" -msgstr "Questo widget può contenere codice che potrebbe funzionare meglio nel nuovo widget “HTML personalizzato”. Se non l'hai già fatto, che ne diresti di provarlo?" +msgstr "Può darsi che questo widget contenesse codice che potrebbe funzionare meglio nel nuovo widget “HTML personalizzato”. Se non l'hai già fatto, che ne diresti di provarlo?" #: wp-includes/widgets/class-wp-widget-text.php:419 msgid "Hey there, looks like you just pasted HTML into the “Visual” tab of the Text widget. You may want to paste your code into the “Text” tab instead. Alternately, try out the new “Custom HTML” widget!" -msgstr "Sembra che tu abbia incollato del testo HTML all'interno del scheda “Visuale#8221; del widget di testo. Puoi invece incollare il tuo codice nella scheda “Testo”. In alternativa puoi provare il nuovo widget “HTML personalizzato”!" +msgstr "Sembra che tu abbia incollato testo HTML all'interno della scheda “Visuale#8221; del widget di testo. Puoi invece incollare il tuo codice nella scheda “Testo”. In alternativa puoi provare il nuovo widget “HTML personalizzato”!" #: wp-includes/widgets/class-wp-widget-text.php:418 msgid "Did you just paste HTML?" -msgstr "Hai incollato solo HTML?" +msgstr "Hai appena incollato codice HTML?" #: wp-includes/widgets/class-wp-widget-text.php:403 msgid "Hey, did you hear we have a “Custom HTML” widget now? You can find it by scanning the list of available widgets on this screen. Check it out to add some custom code to your site!" @@ -117,7 +117,7 @@ msgstr "(nessun autore)" #. translators: %s is the name of a city. #: wp-includes/script-loader.php:1062 msgid "City updated. Listing events near %s." -msgstr "Aggiornamenti per città. Elenca gli eventi vicino a %s." +msgstr "Città aggiornata. L'elenco eventi mostra quelli vicino a %s." #. translators: %s is the name of the city we couldn't locate. Replace the #. examples with cities related to your locale. Test that they match the @@ -145,7 +145,7 @@ msgstr "Inserisci la città più vicina a te per trovare gli eventi locali." #: wp-includes/script-loader.php:360 msgctxt "no captions/subtitles" msgid "None" -msgstr "Nulla" +msgstr "Nessuno" #. translators: %s: network settings URL #: wp-signup.php:842 @@ -9999,7 +9999,7 @@ msgstr "« Indietro" #: wp-includes/functions.php:2602 wp-includes/ms-functions.php:2011 msgid "Please try again." -msgstr "Riprova di nuovo." +msgstr "Prova di nuovo." #. translators: %s: logout URL #: wp-includes/functions.php:2593 @@ -10690,7 +10690,7 @@ msgstr "Aggiorna" #: wp-includes/script-loader.php:564 msgid "Schedule" -msgstr "Pianificazioni" +msgstr "Programma" #: wp-includes/script-loader.php:569 msgid "Public" diff --git a/wp-content/languages/ja.mo b/wp-content/languages/ja.mo index 228d7f5a5692cdaeafafca7bd2cdc5d0918d85b3..6e7d0d1203d4ebb4712d027675e313c2ef1f0f8a 100644 Binary files a/wp-content/languages/ja.mo and b/wp-content/languages/ja.mo differ diff --git a/wp-content/languages/ja.po b/wp-content/languages/ja.po index 348b6c21933b0096c3b1e4d1c263990f0d27834b..4e8d4495816e06f6619a62e25a03e519ec32376b 100644 --- a/wp-content/languages/ja.po +++ b/wp-content/languages/ja.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-03 23:23:50+0000\n" +"PO-Revision-Date: 2017-09-28 01:39:39+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -478,7 +478,7 @@ msgstr "アイキャッチ画像に設定" #: wp-includes/post.php:1388 msgctxt "post" msgid "Set featured image" -msgstr "アイキャッチ画像に設定" +msgstr "アイキャッチ画像を設定" #: wp-includes/post.php:1387 msgctxt "page" diff --git a/wp-content/languages/nn_NO.mo b/wp-content/languages/nn_NO.mo index c9dc34213891e77954c4a84dc2b29ad82a22706a..b9de2d6e2731603d2504db475a9d7bd0b7ee004d 100644 Binary files a/wp-content/languages/nn_NO.mo and b/wp-content/languages/nn_NO.mo differ diff --git a/wp-content/languages/nn_NO.po b/wp-content/languages/nn_NO.po index 122db90114e3afd84a6326face07db83ef2b89a8..c819dd04fc23994fcfb2dfbc015df3819847a138 100644 --- a/wp-content/languages/nn_NO.po +++ b/wp-content/languages/nn_NO.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-01 07:31:20+0000\n" +"PO-Revision-Date: 2017-09-25 09:41:38+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -231,11 +231,6 @@ msgstr "Eit mediaelement." msgid "URL to the %s video source file" msgstr "URL-en til %s-videofila" -#. translators: placeholder is a list of valid video file extensions -#: wp-includes/widgets/class-wp-widget-media-video.php:45 -msgid "Sorry, we can’t display the video file type selected. Please select a supported video file (%1$s) or stream (YouTube or Vimeo) instead." -msgstr "Beklagar, kan ikkje vise den valde videofiltypen. Velg ei støtta videofil (%1$s) eller videostraum (YouTube eller Vimeo) i staden." - #: wp-includes/widgets/class-wp-widget-media-video.php:43 msgid "Video Widget" msgstr "Videowidget" @@ -252,6 +247,11 @@ msgstr[1] "Videowidget (%d)" msgid "We can’t find that video. Check your <a href=\"%s\">media library</a> and make sure it wasn’t deleted." msgstr "Kan ikkje finne den videoen. Sjekk <a href=\"%s\">mediebiblioteket</a> og sikre deg at den ikkje er blitt sletta." +#. translators: placeholder is a list of valid video file extensions +#: wp-includes/widgets/class-wp-widget-media-video.php:45 +msgid "Sorry, we can’t display the video file type selected. Please select a supported video file (%1$s) or stream (YouTube or Vimeo) instead." +msgstr "Beklagar, vi kan ikkje vise den valde videofiltypen. Vel ei støtta videofil (%1$s) eller videostraum (YouTube eller Vimeo) i staden." + #: wp-includes/widgets/class-wp-widget-media-video.php:35 msgctxt "label for button in the video widget; should preferably not be longer than ~13 characters long" msgid "Edit Video" @@ -705,13 +705,13 @@ msgstr "Alle rettar brukt av innleggstypen." msgid "An alphanumeric identifier for the status." msgstr "Ein alfanumerisk identifikator for statusen." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1326 -msgid "Limit response to comments published after a given ISO8601 compliant date." -msgstr "Avgrens svar til innspel publisert etter ein gitt dato formatert i samsvar med ISO8601." - #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1355 msgid "Limit response to comments published before a given ISO8601 compliant date." -msgstr "Avgrens svar til innspel publisert før ein gitt dato formatert i samsvar med ISO8601." +msgstr "Avgrens svar til kommentarar publisert før ein gitt dato formatert i samsvar med ISO8601." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1326 +msgid "Limit response to comments published after a given ISO8601 compliant date." +msgstr "Avgrens svar til kommentarar publisert etter ein gitt dato formatert i samsvar med ISO8601." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1289 msgid "Avatar URLs for the user." @@ -874,7 +874,7 @@ msgstr "RSS-feil:" #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:495 msgid "Cannot create a comment with that type." -msgstr "Kan ikkje opprette en innspel av den typen." +msgstr "Kan ikkje lage kommentar av den typen." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:614 msgid "Invalid slug." @@ -885,11 +885,6 @@ msgstr "Ugyldig permalenke." msgid "Invalid email address." msgstr "Ugyldig e-postadresse." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:510 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:716 -msgid "Invalid comment content." -msgstr "Ugyldig innhald i innspel." - #: wp-includes/rest-api/class-wp-rest-server.php:294 msgid "Invalid JSONP callback function." msgstr "Ugyldig JSONP-tilbakekallsfunksjon." @@ -902,6 +897,11 @@ msgstr "Ugyldig sidemal." msgid "Invalid date." msgstr "Ugyldig dato." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:510 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:716 +msgid "Invalid comment content." +msgstr "Ugyldig innhald i kommentar." + #: wp-includes/theme.php:1398 msgid "Video is playing." msgstr "Videoen vert avspelt." @@ -948,7 +948,7 @@ msgstr "Nylege innlegg" #: wp-includes/theme.php:1978 msgctxt "Theme starter content" msgid "Recent Comments" -msgstr "Nylege innspel" +msgstr "Nylege kommentarar" #: wp-includes/theme.php:1975 msgctxt "Theme starter content" @@ -962,7 +962,7 @@ msgstr "Kalender" #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:687 msgid "Sorry, you are not allowed to change the comment type." -msgstr "Du har ikkje tilgang til å endre typen innspel." +msgstr "Du har ikkje tilgang til å endre kommentartypen." #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1060 #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1070 @@ -977,10 +977,6 @@ msgstr "Du har ikkje tilgang til å sortere brukarar etter denne parameteren." msgid "Sorry, you are not allowed to filter users by role." msgstr "Du har ikkje tilgang til å filtrere brukarar etter rolle." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:782 -msgid "Sorry, you are not allowed to delete this comment." -msgstr "Du har ikkje tilgang til å slette dette innspelet." - #: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:381 msgid "Sorry, you are not allowed to create new terms." msgstr "Du har ikkje tilgang til å opprette nye termar." @@ -989,36 +985,40 @@ msgstr "Du har ikkje tilgang til å opprette nye termar." msgid "Sorry, you are not allowed to view revisions of this post." msgstr "Du har ikkje tilgang til å sjå revisjonar for dette innlegget." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:782 +msgid "Sorry, you are not allowed to delete this comment." +msgstr "Du har ikkje tilgang til å slette denne kommentaren." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:461 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:465 msgid "Sorry, you are not allowed to create a comment on this post." -msgstr "Du har ikkje tilgang til å opprette eit nytt innspel til dette innlegget." +msgstr "Du har ikkje tilgang til å kommentere dette innlegget." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:452 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:457 msgid "Sorry, you are not allowed to create this comment without a post." -msgstr "Du har ikkje tilgang til å opprette eit innspel utan eit innlegg." +msgstr "Du har ikkje tilgang til å opprette denne kommentaren utan eit innlegg." #. translators: %s: request parameter #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:428 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:437 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:446 msgid "Sorry, you are not allowed to edit '%s' for comments." -msgstr "Du har ikkje tilgang til å redigerer «%s» for innspel." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:360 -msgid "Sorry, you are not allowed to read this comment." -msgstr "Du har ikkje tilgang til å lese dette innspelet." +msgstr "Du har ikkje tilgang til å redigere «%s» for kommentarar." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:126 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:364 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:469 msgid "Sorry, you are not allowed to read the post for this comment." -msgstr "Du har ikkje tilgang til å lese innlegget til dette innspelet." +msgstr "Du har ikkje tilgang til å lese innlegget til denne kommentaren." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:360 +msgid "Sorry, you are not allowed to read this comment." +msgstr "Du har ikkje tilgang til å lese denne kommentaren." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:128 msgid "Sorry, you are not allowed to read comments without a post." -msgstr "Du har ikkje tilgang til å lese innspel utan eit innlegg." +msgstr "Du har ikkje tilgang til å lese kommentarar utan eit innlegg." #: wp-includes/theme.php:2056 msgctxt "Theme starter content" @@ -1276,10 +1276,6 @@ msgstr "Utvid hovudmeny" msgid "Collapse Main menu" msgstr "Kollaps hovudmeny" -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:826 -msgid "The comment does not support trashing. Set force=true to delete." -msgstr "Innspelet kan ikkje leggast i søppelkorga. Sett force=true for å slette." - #: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:747 msgid "Users do not support trashing. Set force=true to delete." msgstr "Brukarar kan ikkje leggast i søppelkorga. Sett force=true for å slette." @@ -1300,6 +1296,10 @@ msgstr "Innlegget kan ikkje leggast i søppelkorga. Sett force=true for å slett msgid "Or, enter a YouTube URL:" msgstr "Eller, legg inn ein YouTube-URL:" +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:826 +msgid "The comment does not support trashing. Set force=true to delete." +msgstr "Kommentaren kan ikkje leggast i søppelkorga. Sett force=true for å slette." + #: wp-includes/rest-api/class-wp-rest-request.php:695 msgid "Invalid JSON body passed." msgstr "Ugyldig JSON body sendt." @@ -1316,7 +1316,7 @@ msgstr "Avgrens resultatsett til innlegg knytt til ein eller fleire statusar." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:555 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:724 msgid "Comment field exceeds maximum length allowed." -msgstr "Innhaldet til innspelet er lengre enn tilleten lengd." +msgstr "Kommentaren er lengre enn tillaten lengd." #: wp-includes/customize/class-wp-customize-nav-menu-control.php:67 msgid "Display Location" @@ -1332,7 +1332,7 @@ msgstr "Avgrens resultatsett til innlegg med ei eller fleire spesfikke fastlenkj #: wp-includes/class-wp-xmlrpc-server.php:3580 msgid "Comment is required." -msgstr "Innspel er påkrevd." +msgstr "Krev kommentar." #: wp-includes/class-wp-customize-nav-menus.php:793 msgid "Empty title" @@ -1605,10 +1605,6 @@ msgstr "Rekkefølgja for objektet i høve til andre objekt av samme type." msgid "Whether or not the object can be pinged." msgstr "Om objektet kan pingast." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1975 -msgid "Whether or not comments are open on the object." -msgstr "Om objektet er ope for innspel." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1967 msgid "The ID of the featured media for the object." msgstr "ID-en for det framheva mediet til objektet." @@ -1621,6 +1617,10 @@ msgstr "Om utdraget er beskytta med eit passord." msgid "HTML excerpt for the object, transformed for display." msgstr "HTML-utdrag for objektet, omgjort for vising." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1975 +msgid "Whether or not comments are open on the object." +msgstr "Om objektet er ope for kommentarar." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1945 msgid "Excerpt for the object, as it exists in the database." msgstr "Utdrag for objektet slik det eksisterer i databasen." @@ -1715,19 +1715,10 @@ msgstr "Eit passordbeskytta innlegg kan ikkje settast som klistra." msgid "A sticky post can not be password protected." msgstr "Eit klistra innlegg kan ikkje passordbeskyttast." -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1047 -msgid "A post can not be sticky and have a password." -msgstr "Eit innlegg kan ikke vere klistra og ha eit passord." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:828 msgid "The post has already been deleted." msgstr "Dette innlegget er alt sletta." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:134 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:354 -msgid "Sorry, you are not allowed to edit comments." -msgstr "Du har ikkje tilgang til å redigere innspel." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:495 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:530 msgid "Cannot create existing post." @@ -1737,6 +1728,15 @@ msgstr "Kan ikkje opprette eksisterande innlegg." msgid "Sorry, you are not allowed to create new users." msgstr "Du har ikkje tilgang til å opprette nye brukarar." +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:1047 +msgid "A post can not be sticky and have a password." +msgstr "Eit innlegg kan ikkje vere klistra og ha eit passord." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:134 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:354 +msgid "Sorry, you are not allowed to edit comments." +msgstr "Du har ikkje tilgang til å redigere kommentarar." + #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:410 msgid "Incorrect post password." msgstr "Feil innleggspassord." @@ -1825,38 +1825,38 @@ msgstr "Metoden «%s» er ikkje implementert. Den må overstyrast i ein subklass msgid "The register_routes() method must be overridden" msgstr "Metoden register_routes() må overstyrast" +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1394 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2129 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1347 +msgid "Sort collection by object attribute." +msgstr "Sorter samling etter objektattributt." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1384 +#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2122 +#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:936 +#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1340 +msgid "Order sort attribute ascending or descending." +msgstr "Sorter attributtar i stigande eller synkande rekkefølgje." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1445 msgid "Limit result set to comments assigned a specific type. Requires authorization." -msgstr "Avgrens resultatsett til innspel knytt til ein spesifikk type. Krevar tilgang." +msgstr "Avgrens resultata til kommentarar knytt til ein bestemt type. Krev tilgang." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1437 msgid "Limit result set to comments assigned a specific status. Requires authorization." -msgstr "Avgrens resultatsett til innspel knytt til ein spesifikk status. Krevar tilgang." +msgstr "Avgrens resultata til kommentarar knytt til ein bestemt status. Krev tilgang." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1428 msgid "Limit result set to comments assigned to specific post IDs." -msgstr "Avgrens resultatsett til innspel tilordna spesifikke innleggs-ID-ar." +msgstr "Avgrens resultata til kommentarar tilordna spesifikke innleggs-ID-ar." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1419 msgid "Ensure result set excludes specific parent IDs." -msgstr "Sikre at resultatsettet ekskluderar spesifikke foreldre-ID-ar." +msgstr "Sikre at resultatsettet ekskluderar bestemte foreldre-ID-ar." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1410 msgid "Limit result set to comments of specific parent IDs." -msgstr "Avgrens resultatsettet til innspel med spesifikke foreldre-ID-ar." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1394 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2129 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1347 -msgid "Sort collection by object attribute." -msgstr "Sorter samling etter objektattributt." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1384 -#: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2122 -#: wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php:936 -#: wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php:1340 -msgid "Order sort attribute ascending or descending." -msgstr "Sorter attributtar i stigande eller synkande rekkefølgje." +msgstr "Avgrens resultata til kommentarar med bestemte foreldre-ID-ar." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1370 #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2101 @@ -1876,18 +1876,6 @@ msgstr "Sikre at resultatsettet ekskluderar spesifikke ID-ar." msgid "Limit response to posts published before a given ISO8601 compliant date." msgstr "Avgrens svar til innlegg publisert før ein gitt dato formatert i samsvar med ISO8601." -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1349 -msgid "Limit result set to that from a specific author email. Requires authorization." -msgstr "Avgrens resultatsett til dei frå ein spesifikk forfattars e-postadresse. Krevar tilgang." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1340 -msgid "Ensure result set excludes comments assigned to specific user IDs. Requires authorization." -msgstr "Sikre at resultatsettet ekskluderar innspel tilordna spesifikke brukar-ID-ar. Krevar tilgang." - -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1332 -msgid "Limit result set to comments assigned to specific user IDs. Requires authorization." -msgstr "Avgrens resultatsett til innspel knytt til spesifikke brukar-ID-ar. Krever tilgang." - #: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php:2061 msgid "Limit response to posts published after a given ISO8601 compliant date." msgstr "Avgrens svar til innlegg publisert etter ein gjeven dato formatert i samsvar med ISO8601." @@ -1902,9 +1890,21 @@ msgstr "Avatar-URL-ar for objektforfattaren." msgid "Avatar URL with image size of %d pixels." msgstr "Avatar-URL med ein biletstorleik på %d pikslar." +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1349 +msgid "Limit result set to that from a specific author email. Requires authorization." +msgstr "Avgrens resultatsett til dei frå ein spesifikk forfattars e-postadresse. Krev tilgang." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1340 +msgid "Ensure result set excludes comments assigned to specific user IDs. Requires authorization." +msgstr "Sikre at resultata utelet kommentarar tilordna spesifikke brukar-ID-ar. Krev tilgang." + +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1332 +msgid "Limit result set to comments assigned to specific user IDs. Requires authorization." +msgstr "Avgrens resultata til kommentarar knytt til bestemte brukar-ID-ar. Krev tilgang." + #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1276 msgid "Type of Comment for the object." -msgstr "Type innspel for objektet." +msgstr "Type kommentar for objektet." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1268 msgid "State of the object." @@ -1977,41 +1977,41 @@ msgstr "Unik identifikator til objektet." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:1095 msgid "Invalid comment author ID." -msgstr "Ugyldig ID for forfattaren til innspelet." +msgstr "Ugyldig ID for forfattaren til kommentaren." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:839 msgid "The comment cannot be deleted." -msgstr "Innspelet kan ikkje slettast." +msgstr "Kan ikkje slette kommentaren." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:830 msgid "The comment has already been trashed." -msgstr "Innspelet er alt sletta." +msgstr "Kommentaren er alt sletta." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:730 msgid "Updating comment failed." -msgstr "Oppdatering av innspel gjekk gale." +msgstr "Oppdatering av kommentarar gjekk gale." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:708 msgid "Updating comment status failed." -msgstr "Oppdatering av innspel-status gjekk gale." +msgstr "Oppdatering av kommentarstatus gjekk gale." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:596 msgid "Creating comment failed." -msgstr "Oppretting av innspel gjekk gale." +msgstr "Oppretting av kommentarar gjekk gale." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:536 msgid "Creating a comment requires valid author name and email values." -msgstr "Oppretting av innspel krevar gyldige verdiar for forfattarnamn og e-post." +msgstr "Du må ha gyldige verdiar for forfattarnamn og e-post for å lage kommentarar." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:490 msgid "Cannot create existing comment." -msgstr "Kan ikkje opprette eksisterande innspel." +msgstr "Kan ikkje opprette eksisterande kommentar." #: wp-includes/comment.php:3061 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:403 #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:420 msgid "Sorry, you must be logged in to comment." -msgstr "Du må logge inn for å komme med innspel." +msgstr "Du må logge inn for å kommentere." #: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:156 msgid "Query parameter not permitted: %s" @@ -2183,7 +2183,7 @@ msgstr "Gruppa for val med namnet \"%s\" er fjerna. Bruk ei anna gruppe med inns #: wp-includes/option.php:1853 msgid "Allow people to post comments on new articles." -msgstr "Gje gjester lov til å komme med innspel til artiklar." +msgstr "Gje gjester lov til å kommentere nye artiklar." #: wp-includes/option.php:1843 msgid "Allow link notifications from other blogs (pingbacks and trackbacks) on new articles." @@ -2276,10 +2276,6 @@ msgstr "Markup er ikkje lovleg i CSS." msgid "Sorry, your entry could not be edited." msgstr "Oppføringa kunne ikkje bli redigert." -#: wp-includes/class-wp-xmlrpc-server.php:3500 -msgid "Sorry, the comment could not be edited." -msgstr "Innspelet kunne ikkje bli redigert." - #: wp-includes/class-wp-xmlrpc-server.php:2518 msgid "Invalid role." msgstr "Ugyldig rolle." @@ -2309,6 +2305,10 @@ msgstr "Denne termen kunne ikkje opprettast." msgid "Sorry, your entry could not be posted." msgstr "Oppføringa kunne ikkje bli posta." +#: wp-includes/class-wp-xmlrpc-server.php:3500 +msgid "Sorry, the comment could not be edited." +msgstr "Klarte ikkje redigere kommentaren." + #: wp-includes/class-wp-customize-widgets.php:799 #: wp-includes/class-wp-customize-widgets.php:854 msgid "No widgets found." @@ -2816,14 +2816,14 @@ msgstr "Søkeresultat for «%s»" msgid "You do not appear to have any plugins available at this time." msgstr "Det ser ikkje ut til at du har tilgjengelege innstikk." -#: wp-includes/script-loader.php:646 -msgid "Please select at least one item to perform this action on." -msgstr "Velg minst ein ting å utføre denne handlinga på." - #: wp-includes/script-loader.php:651 msgid "Update Now" msgstr "Oppdater no" +#: wp-includes/script-loader.php:646 +msgid "Please select at least one item to perform this action on." +msgstr "Vel minst ein ting å utføre denne handlinga på." + #. translators: %s: Codex URL #: wp-includes/formatting.php:4251 msgid "A structure tag is required when using custom permalinks. <a href=\"%s\">Learn more</a>" @@ -2835,7 +2835,7 @@ msgstr "https://codex.wordpress.org/Using_Permalinks#Choosing_your_permalink_str #: wp-includes/media-template.php:1242 msgid "Image crop area preview. Requires mouse interaction." -msgstr "Førehandsvising av bildekutting. Krevar mus-interaksjon." +msgstr "Førehandsvising av bildekutting. Krev mushandling." #: wp-includes/class-wp-xmlrpc-server.php:3963 #: wp-includes/class-wp-xmlrpc-server.php:4011 @@ -2975,17 +2975,13 @@ msgstr "Sesjonen er utgått. Logg inn for å halde fram der du slapp." #: wp-includes/taxonomy.php:426 msgid "Unregistering a built-in taxonomy is not allowed" -msgstr "Avregistrering av innebygde taksonomiar er ikkje tillete" +msgstr "Avregistrering av innebygde taksonomiar er ikkje tillate" #: wp-includes/post.php:234 msgctxt "post status" msgid "Trash" msgstr "I søppelkorg" -#: wp-includes/post.php:1167 -msgid "Unregistering a built-in post type is not allowed" -msgstr "Avregistrering av innebygde innleggstypar er ikke tillete" - #: wp-includes/rest-api.php:42 msgid "Routes must be namespaced with plugin or theme name and version." msgstr "Ruter må ha namnerom med innstikket eller bunaden sitt namn og utgåve." @@ -3002,6 +2998,10 @@ msgstr "(Uten tittel)" msgid "Drag boxes here" msgstr "Dra boksar hit" +#: wp-includes/post.php:1167 +msgid "Unregistering a built-in post type is not allowed" +msgstr "Avregistrering av innebygde innleggstypar er ikkje tillate" + #. translators: 1: blog name, 2: separator(raquo), 3: term name, 4: taxonomy #. singular name #: wp-includes/general-template.php:2671 @@ -3046,10 +3046,6 @@ msgstr "Privat" msgid "No logo selected" msgstr "Ingen logo vald" -#: wp-includes/class-wp-customize-manager.php:3875 -msgid "Choose logo" -msgstr "Velg logo" - #. translators: 1: PHP class name, 2: PHP parent class name, 3: version number, #. 4: __construct() method #: wp-includes/functions.php:3893 @@ -3060,23 +3056,27 @@ msgstr "Konstruktør-metoden som var kalla for %1$s i %2$s er <strong>utgått</s msgid "Close dialog" msgstr "Lukk dialog" -#: wp-includes/customize/class-wp-customize-partial.php:221 -msgid "Partial render must echo the content or return the content string (or array), but not both." -msgstr "Delvis rendring krevar at ein anten bruker echo eller return på innhald, men ikkje begge." +#: wp-includes/class-wp-customize-manager.php:3875 +msgid "Choose logo" +msgstr "Vel logo" #. translators: %s: document.write() #: wp-includes/customize/class-wp-customize-selective-refresh.php:209 msgid "%s is forbidden" msgstr "%s er forbode" +#: wp-includes/class-wp-customize-manager.php:3870 +msgid "Change logo" +msgstr "Endre logo" + #: wp-includes/class-wp-customize-manager.php:3869 #: wp-includes/class-wp-customize-manager.php:3874 msgid "Select logo" -msgstr "Velg logo" +msgstr "Vel logo" -#: wp-includes/class-wp-customize-manager.php:3870 -msgid "Change logo" -msgstr "Endre logo" +#: wp-includes/customize/class-wp-customize-partial.php:221 +msgid "Partial render must echo the content or return the content string (or array), but not both." +msgstr "Delvis rendring krev at ein anten bruker echo eller return på innhald, men ikkje begge." #: wp-includes/comment.php:242 msgctxt "comment status" @@ -3107,7 +3107,7 @@ msgstr "<strong>FEIL</strong>: URL-en din er for lang." #: wp-includes/comment.php:1144 msgid "<strong>ERROR</strong>: your comment is too long." -msgstr "<strong>FEIL</strong>: Innspelet ditt er for langt." +msgstr "<strong>FEIL</strong>: Kommentaren din er for lang." #: wp-includes/class-wp-customize-manager.php:3861 msgid "Logo" @@ -3136,10 +3136,6 @@ msgstr "https://codex.wordpress.org/Child_Themes" msgid "Display Site Title and Tagline" msgstr "Vis nettstadtittel og slagord" -#: wp-comments-post.php:29 -msgid "Comment Submission Failure" -msgstr "Innspelet blei ikkje sendt" - #: wp-includes/class-wp-customize-manager.php:1810 #: wp-includes/customize/class-wp-customize-selective-refresh.php:203 msgid "Shift-click to edit this element." @@ -3157,6 +3153,10 @@ msgstr "Gå til nettbrett-førehandsvising" msgid "Enter mobile preview mode" msgstr "Gå til mobil-førehandsvising" +#: wp-comments-post.php:29 +msgid "Comment Submission Failure" +msgstr "Kommentaren vart ikkje send" + #: wp-includes/user.php:2302 msgid "<strong>ERROR</strong>: Sorry, that username is not allowed." msgstr "<strong>FEIL</strong>: Det brukarnamnet er ikkje tillate" @@ -3449,19 +3449,19 @@ msgstr "Veit du at det finst?" msgid "Does the user %1$s have permission to use the %2$s database?" msgstr "Har brukaren %1$s løyve til å bruka %2$s-databasen?" -#: wp-includes/wp-db.php:1100 -msgid "Can’t select database" -msgstr "Kan ikkje velgje database" +#. translators: %s: database name +#: wp-includes/wp-db.php:1120 +msgid "On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?" +msgstr "I enkelte system vert brukarnamnet sett framfor namnet på databasen, slik at det vert som <code>username_%1$s</code>. Kan det vere problemet?" #. translators: %s: database name #: wp-includes/wp-db.php:1104 msgid "We were able to connect to the database server (which means your username and password is okay) but not able to select the %s database." -msgstr "Vi klarte å kople til databasetenare (noko som betyr at brukarnamnet og passordet stemmer), men kunne ikkje velgje databasen %s." +msgstr "Vi klarte å kople til databasetenare (noko som betyr at brukarnamnet og passordet stemmer), men klarte ikkje velje databasen %s." -#. translators: %s: database name -#: wp-includes/wp-db.php:1120 -msgid "On some systems the name of your database is prefixed with your username, so it would be like <code>username_%1$s</code>. Could that be the problem?" -msgstr "I enkelte system vert brukarnamnet sett framfor namnet på databasen, slik at det vert som <code>username_%1$s</code>. Kan det vere problemet?" +#: wp-includes/wp-db.php:1100 +msgid "Can’t select database" +msgstr "Kan ikkje velje database" #: wp-includes/widgets/class-wp-widget-tag-cloud.php:148 msgid "The tag cloud will not be displayed since there are no taxonomies that support the tag cloud widget." @@ -3739,17 +3739,17 @@ msgstr "T" #: wp-includes/link-template.php:2822 msgid "Newer comments" -msgstr "Nyare innspel" - -#: wp-includes/link-template.php:2821 -msgid "Older comments" -msgstr "Eldre innspel" +msgstr "Nyare kommentarar" #. translators: Post calendar label. 1: Date #: wp-includes/general-template.php:2077 msgid "Posts published on %s" msgstr "Innlegg publisert %s" +#: wp-includes/link-template.php:2821 +msgid "Older comments" +msgstr "Eldre kommentarar" + #: wp-includes/embed.php:1014 msgid "Copy and paste this code into your site to embed" msgstr "Kopier og lim inn denne koden på nettstaden din for å byggje inn" @@ -4178,12 +4178,6 @@ msgstr "Lukk listeelement-oppmering" msgid "Close code tag" msgstr "Lukk kode-oppmerking" -#: wp-includes/script-loader.php:527 -msgid "" -"Are you sure you want to edit this comment?\n" -"The changes you made will be lost." -msgstr "Vil du verkeleg redigere dette innspelet? Endringane du gjorde vil gå tapt." - #. translators: %s: Error string for a failed update #: wp-includes/script-loader.php:656 msgid "Update Failed: %s" @@ -4194,6 +4188,12 @@ msgstr "Oppdateringa gjekk gale: %s" msgid "Attempting to parse a shortcode without a valid callback: %s" msgstr "Prøver å tolke ein kortkode utan gyldig callback: %s" +#: wp-includes/script-loader.php:527 +msgid "" +"Are you sure you want to edit this comment?\n" +"The changes you made will be lost." +msgstr "Vil du verkeleg redigere denne kommentaren? Endringane du gjorde vil gå tapt." + #: wp-includes/script-loader.php:101 msgid "Close bold tag" msgstr "Lukk feit-oppmerking" @@ -4753,48 +4753,48 @@ msgstr "Valet %1$s er forelda for familien av %2$s-funksjonar. Bruk valet %3$s i msgid "The %1$s option is deprecated for the family of %2$s functions. Use the %3$s function instead." msgstr "Valet %1$s er forelda for familien av %2$s-funksjonar. Bruk funksjonen %3$s istaden." +#: wp-includes/class-wp-customize-nav-menus.php:1067 +#: wp-includes/class-wp-editor.php:1696 wp-includes/media-template.php:820 +msgid "Link Text" +msgstr "Lenkjetekst" + +#: wp-includes/widgets/class-wp-widget-archives.php:91 +msgid "Select Post" +msgstr "Vel innlegg" + #. translators: %s: post title #: wp-includes/comment-template.php:1504 msgid "1 Comment<span class=\"screen-reader-text\"> on %s</span>" -msgstr "1 innspel<span class=\"screen-reader-text\"> til %s</span>" +msgstr "1 kommentar<span class=\"screen-reader-text\"> til %s</span>" #. translators: 1: Number of comments 2: post title #: wp-includes/comment-template.php:1509 msgid "%1$s Comment<span class=\"screen-reader-text\"> on %2$s</span>" msgid_plural "%1$s Comments<span class=\"screen-reader-text\"> on %2$s</span>" -msgstr[0] "%1$s Innspel<span class=\"screen-reader-text\"> til %2$s</span>" -msgstr[1] "%1$s Innspel<span class=\"screen-reader-text\"> til %2$s</span>" +msgstr[0] "%1$s Kommentar<span class=\"screen-reader-text\"> til %2$s</span>" +msgstr[1] "%1$s Kommentarar<span class=\"screen-reader-text\"> til %2$s</span>" #. translators: %s: post title #: wp-includes/comment-template.php:1515 msgid "Comments Off<span class=\"screen-reader-text\"> on %s</span>" -msgstr "Innspel avslått<span class=\"screen-reader-text\"> på %s</span>" +msgstr "Kommentarar avslått<span class=\"screen-reader-text\"> på %s</span>" -#. translators: %s: post title -#: wp-includes/comment-template.php:1499 -msgid "No Comments<span class=\"screen-reader-text\"> on %s</span>" -msgstr "Ingen innspel <span class=\"screen-reader-text\"> til %s</span>" - -#: wp-includes/class-wp-customize-nav-menus.php:1067 -#: wp-includes/class-wp-editor.php:1696 wp-includes/media-template.php:820 -msgid "Link Text" -msgstr "Lenkjetekst" +#: wp-includes/widgets/class-wp-widget-archives.php:79 +msgid "Select Year" +msgstr "Vel år" -#: wp-includes/widgets/class-wp-widget-archives.php:91 -msgid "Select Post" -msgstr "Vel innlegg" +#: wp-includes/widgets/class-wp-widget-archives.php:85 +msgid "Select Day" +msgstr "Vel dag" #: wp-includes/widgets/class-wp-widget-archives.php:88 msgid "Select Week" -msgstr "Velg veke" +msgstr "Vel veke" -#: wp-includes/widgets/class-wp-widget-archives.php:85 -msgid "Select Day" -msgstr "Velg dag" - -#: wp-includes/widgets/class-wp-widget-archives.php:79 -msgid "Select Year" -msgstr "Velg år" +#. translators: %s: post title +#: wp-includes/comment-template.php:1499 +msgid "No Comments<span class=\"screen-reader-text\"> on %s</span>" +msgstr "Ingen kommentarar <span class=\"screen-reader-text\"> til %s</span>" #: wp-includes/customize/class-wp-customize-theme-control.php:87 #: wp-includes/script-loader.php:706 @@ -4893,12 +4893,6 @@ msgstr "Nyare innlegg" msgid "Older posts" msgstr "Eldre innlegg" -#. translators: 1: Comment text -#: wp-includes/pluggable.php:1469 wp-includes/pluggable.php:1480 -#: wp-includes/pluggable.php:1491 wp-includes/pluggable.php:1654 -msgid "Comment: %s" -msgstr "Innspel: %s" - #. translators: 1: Trackback/pingback/comment author URL #: wp-includes/pluggable.php:1468 wp-includes/pluggable.php:1479 #: wp-includes/pluggable.php:1490 wp-includes/pluggable.php:1630 @@ -4928,14 +4922,20 @@ msgstr "Du kan sjå alle tilbaketråkk til dette innlegget here:" msgid "You can see all pingbacks on this post here:" msgstr "Du kan sjå alle tilbakeping til dette innlegget her:" -#: wp-includes/pluggable.php:1492 -msgid "You can see all comments on this post here:" -msgstr "Du kan sjå alle innspel til dette innlegget her:" - #: wp-includes/media-template.php:598 msgid "Edit Selection" msgstr "Endre utval" +#. translators: 1: Comment text +#: wp-includes/pluggable.php:1469 wp-includes/pluggable.php:1480 +#: wp-includes/pluggable.php:1491 wp-includes/pluggable.php:1654 +msgid "Comment: %s" +msgstr "Kommentarar: %s" + +#: wp-includes/pluggable.php:1492 +msgid "You can see all comments on this post here:" +msgstr "Du kan sjå alle kommentarane til dette innlegget her:" + #. translators: Comment reply button text. 1: Comment author name #: wp-includes/comment-template.php:1598 msgid "Reply to %s" @@ -5102,7 +5102,7 @@ msgstr "Velje fil" #: wp-includes/customize/class-wp-customize-image-control.php:39 #: wp-includes/widgets/class-wp-widget-media-image.php:32 msgid "No image selected" -msgstr "Inkje bilete er valgt" +msgstr "Ingen bilete er valde." #: wp-includes/class-wp-editor.php:1054 msgctxt "list style" @@ -6268,10 +6268,6 @@ msgstr "Ei liste eller ein nedtrekksmeny over kategoriar." msgid "Your site’s most recent Posts." msgstr "Dei siste innlegga på nettstaden din." -#: wp-includes/widgets/class-wp-widget-recent-comments.php:28 -msgid "Your site’s most recent comments." -msgstr "Dei nyaste innspela på nettstaden din." - #: wp-includes/widgets/class-wp-widget-rss.php:27 msgid "Entries from any RSS or Atom feed." msgstr "Innlegg frå kva som helst RSS- eller Atom-straum." @@ -6284,6 +6280,10 @@ msgstr "Ei sky med dei mest brukte merkelappane dine." msgid "Add a custom menu to your sidebar." msgstr "Legg til ein eigen meny i sidestolpen." +#: wp-includes/widgets/class-wp-widget-recent-comments.php:28 +msgid "Your site’s most recent comments." +msgstr "Dei nyaste kommentarane på nettstaden din." + #. translators: If there are characters in your language that are not supported #. by Open Sans, translate this to 'off'. Do not translate into your own #. language. @@ -7472,7 +7472,7 @@ msgstr "Ein eller fleire databasetabellar er utilgjengelege. Det kan henda datab #: wp-includes/comment.php:714 wp-includes/comment.php:858 #: wp-includes/comment.php:861 msgid "You are posting comments too quickly. Slow down." -msgstr "Du legg inn innspel for fort. Ta det med ro." +msgstr "Du legg inn kommentarar for fort. Ta det med ro." #: wp-includes/admin-bar.php:728 msgctxt "admin bar menu group label" @@ -7482,8 +7482,8 @@ msgstr "Ny" #: wp-includes/admin-bar.php:761 msgid "%s comment awaiting moderation" msgid_plural "%s comments awaiting moderation" -msgstr[0] "%s innspel ventar på godkjenning" -msgstr[1] "%s innspel ventar på godkjenning" +msgstr[0] "%s kommentar ventar på godkjenning" +msgstr[1] "%s kommentarar ventar på godkjenning" #: wp-includes/script-loader.php:294 msgid "%s exceeds the maximum upload size for the multi-file uploader when used in your browser." @@ -7531,10 +7531,6 @@ msgstr "%s er over maksimumsstorleiken for opplasta filer på denne nettstaden." msgid "Feedback" msgstr "Tilbakemeldingar" -#: wp-includes/comment.php:3076 -msgid "<strong>ERROR</strong>: please type a comment." -msgstr "<strong>FEIL</strong>: tast inn eit innspel." - #: wp-includes/comment.php:3071 msgid "<strong>ERROR</strong>: please enter a valid email address." msgstr "<strong>FEIL</strong>: skriv inn ei gyldig epostadresse." @@ -7543,6 +7539,10 @@ msgstr "<strong>FEIL</strong>: skriv inn ei gyldig epostadresse." msgid "<strong>ERROR</strong>: please fill the required fields (name, email)." msgstr "<strong>FEIL</strong>: skriv inn dei obligatoriske opplysningane (namn og epost)." +#: wp-includes/comment.php:3076 +msgid "<strong>ERROR</strong>: please type a comment." +msgstr "<strong>FEIL</strong>: skriv inn ein kommentar." + #: wp-includes/script-loader.php:747 msgid "Could not load the preview image. Please reload the page and try again." msgstr "Greidde ikkje lasta førehandsbiletet. Last sida på nytt og prøv omatt." @@ -7681,10 +7681,6 @@ msgstr "Alle innlegg" msgid "All Pages" msgstr "Alle sider" -#: wp-includes/link-template.php:2823 wp-includes/link-template.php:2871 -msgid "Comments navigation" -msgstr "Innspelnavigering" - #: wp-includes/class-walker-comment.php:244 msgid "Pingback:" msgstr "Tilbakeping:" @@ -7693,6 +7689,10 @@ msgstr "Tilbakeping:" msgid "Post navigation" msgstr "Innleggsnavigering" +#: wp-includes/link-template.php:2823 wp-includes/link-template.php:2871 +msgid "Comments navigation" +msgstr "Finn fram i kommentarar" + #: wp-includes/class-wp-editor.php:1100 msgid "Poster" msgstr "Plakat" @@ -7957,7 +7957,7 @@ msgstr "Endra brukarprofilen min" #: wp-includes/admin-bar.php:550 msgid "Manage Comments" -msgstr "Handter innspel" +msgstr "Handter kommentarar" #: wp-includes/class-wp-theme.php:806 msgid "Blavatar" @@ -8019,10 +8019,6 @@ msgstr "D j. F Y" msgid "%1$s is proudly powered by %2$s" msgstr "%1$s er glad for å bruka %2$s" -#: wp-includes/theme-compat/comments.php:24 -msgid "This post is password protected. Enter the password to view comments." -msgstr "Innlegget er passordverna. Skriv inn passordet for å sjå innspel." - #. translators: %s: category name #: wp-includes/theme-compat/sidebar.php:39 msgid "You are currently browsing the archives for the %s category." @@ -8033,6 +8029,10 @@ msgstr "No ser du på arkiva for «%s»-kategorien." msgid "You have searched the %1$s blog archives for <strong>‘%2$s’</strong>. If you are unable to find anything in these search results, you can try one of these links." msgstr "Du søkte gjennom <a href=\"%1$s/\">%2$s</a>-bloggarkiva etter <strong>%3$s</strong>. Viss du ikkje finn noko nyttig i desse søkjeresultata, kan du prøva ei av desse lenkjene." +#: wp-includes/theme-compat/comments.php:24 +msgid "This post is password protected. Enter the password to view comments." +msgstr "Innlegget er passordverna. Skriv inn passordet for å sjå kommentarar." + #: wp-includes/taxonomy.php:509 msgid "Choose from the most used tags" msgstr "Vel mellom dei mest brukte merkelappane" @@ -8493,10 +8493,6 @@ msgstr "Før du kan byrja å bruka nettstaden, <strong>må du stadfesta han</str msgid "Site registration has been disabled." msgstr "Det går ikkje an å registrera nettstader no." -#: wp-includes/pluggable.php:1486 -msgid "New comment on your post \"%s\"" -msgstr "Nye innspel til innlegget ditt «%s»" - #. translators: 1: Post title #: wp-includes/pluggable.php:1465 msgid "New trackback on your post \"%s\"" @@ -8528,7 +8524,11 @@ msgstr "Eitt nytt tilbakeping til innlegget «%s» ventar på å bli godkjent" #. translators: 1: Post title #: wp-includes/pluggable.php:1645 msgid "A new comment on the post \"%s\" is waiting for your approval" -msgstr "Eitt nytt innspel til innlegget «%s» ventar på å bli godkjent" +msgstr "Ein ny kommentar til innlegget «%s» ventar på å bli godkjent" + +#: wp-includes/pluggable.php:1486 +msgid "New comment on your post \"%s\"" +msgstr "Nye kommentarar til innlegget ditt «%s»" #: wp-includes/widgets/class-wp-nav-menu-widget.php:141 msgid "Select Menu:" @@ -8566,13 +8566,6 @@ msgstr "Denne sida finst ikkje." msgid "Failed to delete the page." msgstr "Kunne ikkje sletta sida." -#: wp-includes/class-wp-xmlrpc-server.php:3254 -#: wp-includes/class-wp-xmlrpc-server.php:3386 -#: wp-includes/class-wp-xmlrpc-server.php:3453 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 -msgid "Invalid comment ID." -msgstr "Ugyldig innspels-ID." - #: wp-includes/class-wp-xmlrpc-server.php:1337 #: wp-includes/class-wp-xmlrpc-server.php:1593 #: wp-includes/class-wp-xmlrpc-server.php:1659 @@ -8629,15 +8622,6 @@ msgstr "Tillat nye brukarar å registrera seg" msgid "Sorry, the new category failed." msgstr "Klarte ikkje laga ny kategori." -#: wp-includes/class-wp-xmlrpc-server.php:3311 -#: wp-includes/class-wp-xmlrpc-server.php:3468 -msgid "Invalid comment status." -msgstr "Ugyldig innspelsstatus." - -#: wp-includes/class-wp-xmlrpc-server.php:3554 -msgid "You must be registered to comment." -msgstr "Du må vera registrert for å få leggja til nye innspel" - #: wp-includes/class-wp-xmlrpc-server.php:3614 msgid "Comment author name and email are required." msgstr "Du må oppgje namn og e-postadresse" @@ -8749,6 +8733,22 @@ msgstr "Du har ikkje tilgang til detaljar for dette innlegget." msgid "Sorry, you are not allowed to publish posts in this post type." msgstr "Du har ikkje tilgang til å publisere innlegg av denne innleggstypen." +#: wp-includes/class-wp-xmlrpc-server.php:3554 +msgid "You must be registered to comment." +msgstr "Du må vera registrert for å kommentera." + +#: wp-includes/class-wp-xmlrpc-server.php:3311 +#: wp-includes/class-wp-xmlrpc-server.php:3468 +msgid "Invalid comment status." +msgstr "Ugyldig kommentarstatus." + +#: wp-includes/class-wp-xmlrpc-server.php:3254 +#: wp-includes/class-wp-xmlrpc-server.php:3386 +#: wp-includes/class-wp-xmlrpc-server.php:3453 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:317 +msgid "Invalid comment ID." +msgstr "Ugyldig kommentar-ID." + #: wp-includes/post.php:202 msgid "Published <span class=\"count\">(%s)</span>" msgid_plural "Published <span class=\"count\">(%s)</span>" @@ -8781,10 +8781,6 @@ msgstr "Generelt" msgid "Unapproved" msgstr "Avslege" -#: wp-includes/comment.php:2095 -msgid "Could not update comment status" -msgstr "Kunne ikkje oppdatere innspelstatus" - #: wp-includes/cron.php:405 msgid "Once Hourly" msgstr "Kvar time" @@ -8898,21 +8894,6 @@ msgstr "ny WordPress-lykkje" msgid "Last updated" msgstr "Sist oppdatert" -#. translators: Comments feed title. 1: Post title -#: wp-includes/feed-rss2-comments.php:38 -msgid "Comments on: %s" -msgstr "Innspel til: %s" - -#. translators: Comments feed title. 1: Site name -#: wp-includes/feed-atom-comments.php:39 wp-includes/feed-rss2-comments.php:44 -msgid "Comments for %s" -msgstr "Innspel til %s" - -#. translators: Individual comment title. 1: Post title, 2: Comment author name -#: wp-includes/feed-atom-comments.php:81 wp-includes/feed-rss2-comments.php:80 -msgid "Comment on %1$s by %2$s" -msgstr "Innspel til %1$s av %2$s" - #. translators: Comment author title. 1: Comment author name #: wp-includes/feed-atom-comments.php:84 wp-includes/feed-rss2-comments.php:83 msgid "By: %s" @@ -9018,11 +8999,6 @@ msgctxt "feed link" msgid "»" msgstr "»" -#. translators: 1: blog name, 2: separator(raquo), 3: post title -#: wp-includes/general-template.php:2665 -msgid "%1$s %2$s %3$s Comments Feed" -msgstr "%1$s %2$s %3$s nyhendestraum for innspel" - #. translators: 1: blog name, 2: separator(raquo), 3: category name #: wp-includes/general-template.php:2667 msgid "%1$s %2$s %3$s Category Feed" @@ -9561,10 +9537,6 @@ msgstr "flytt til papirkorga." msgid "UTC" msgstr "UTC" -#: wp-includes/comment-template.php:2250 -msgid "Post Comment" -msgstr "Legg til innspel" - #: wp-includes/comment-template.php:2249 msgid "Cancel reply" msgstr "Avbryt svar" @@ -9574,11 +9546,6 @@ msgstr "Avbryt svar" msgid "%1$s %2$s Feed" msgstr "%1$s %2$s straum" -#. translators: 1: blog title, 2: separator (raquo) -#: wp-includes/general-template.php:2625 -msgid "%1$s %2$s Comments Feed" -msgstr "%1$s %2$s innspelstraum" - #. translators: 1: separator, 2: search phrase #: wp-includes/general-template.php:1194 msgid "Search Results %1$s %2$s" @@ -9611,11 +9578,6 @@ msgstr[1] "Ventar <span class=\"count\">(%s)</span>" msgid "Revision" msgstr "Utgåve" -#: wp-includes/comment.php:658 wp-includes/comment.php:661 -#: wp-includes/comment.php:664 -msgid "Duplicate comment detected; it looks as though you’ve already said that!" -msgstr "Fann dublettinnspel, det ser ut som du alt har sagt dette." - #: wp-includes/cron.php:205 msgid "This argument has changed to an array to match the behavior of the other cron functions." msgstr "Denne utsegna er endra til eit PHP-array for å passa til åtferda åt andre cron-funksjonar." @@ -9664,22 +9626,10 @@ msgstr "Set inn lenkje" msgid "Insert Page Break tag" msgstr "Set inn sideskift" -#: wp-includes/link-template.php:699 -msgid "Comments Feed" -msgstr "Nyheitsstraum for innspel" - #: wp-includes/link-template.php:1779 wp-includes/link-template.php:2021 msgid "Previous Post" msgstr "Førre innlegg" -#: wp-includes/link-template.php:2691 -msgid "Newer Comments »" -msgstr "Nyare innspel →" - -#: wp-includes/link-template.php:2735 -msgid "« Older Comments" -msgstr "← Eldre innspel" - #: wp-includes/class-wp-locale.php:200 msgid "am" msgstr "a.m." @@ -9688,11 +9638,6 @@ msgstr "a.m." msgid "pm" msgstr "p.m." -#. translators: 1: blog name, 2: post title -#: wp-includes/pluggable.php:1494 -msgid "[%1$s] Comment: \"%2$s\"" -msgstr "[%1$s] Innspel: «%2$s»" - #. translators: 1: blog name, 2: post title #: wp-includes/pluggable.php:1472 msgid "[%1$s] Trackback: \"%2$s\"" @@ -9716,13 +9661,6 @@ msgstr "Utdrag frå tilbaketråkk: " msgid "Pingback excerpt: " msgstr "Utdrag frå tilbakeping: " -#. translators: Comment moderation. 1: Number of comments awaiting approval -#: wp-includes/pluggable.php:1673 -msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" -msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" -msgstr[0] "%s innspel ventar på godkjenning. Gå til moderatorpanelet:" -msgstr[1] "%s innspel ventar på godkjenning. Gå til moderatorpanelet:" - #. translators: Comment moderation notification email subject. 1: Site name, 2: #. Post title #: wp-includes/pluggable.php:1678 @@ -9842,14 +9780,6 @@ msgstr "Middels" msgid "Published on:" msgstr "Publisert:" -#: wp-includes/script-loader.php:561 -msgid "Show more comments" -msgstr "Vis fleire innspel" - -#: wp-includes/script-loader.php:562 -msgid "No more comments found." -msgstr "Fann ikkje fleire innspel." - #: wp-includes/script-loader.php:597 msgid "Submitted on:" msgstr "Sendt inn:" @@ -9991,15 +9921,6 @@ msgstr "Vis tal på innlegg" msgid "Number of posts to show:" msgstr "Tal på innlegg å vise fram:" -#. translators: Comments feed title. 1: Site name, 2: Search query -#: wp-includes/feed-atom-comments.php:36 wp-includes/feed-rss2-comments.php:41 -msgid "Comments for %1$s searching on %2$s" -msgstr "Innspel til %1$s søk på %2$s" - -#: wp-includes/feed-rss2-comments.php:91 -msgid "Protected Comments: Please enter your password to view comments." -msgstr "Verna innspel: Skriv inn passordet ditt for å sjå innspel." - #. translators: %s: site name #: wp-includes/functions.php:2586 msgid "You are attempting to log out of %s" @@ -10249,6 +10170,85 @@ msgstr "Sjekk eposten for det nye passordet ditt." msgid "Registration complete. Please check your email." msgstr "Registreringa er fullførd. Sjekk eposten din." +#: wp-includes/script-loader.php:562 +msgid "No more comments found." +msgstr "Fann ikkje fleire kommentarar." + +#: wp-includes/script-loader.php:561 +msgid "Show more comments" +msgstr "Vis fleire kommentarar" + +#. translators: Comment moderation. 1: Number of comments awaiting approval +#: wp-includes/pluggable.php:1673 +msgid "Currently %s comment is waiting for approval. Please visit the moderation panel:" +msgid_plural "Currently %s comments are waiting for approval. Please visit the moderation panel:" +msgstr[0] "%s kommentar ventar på godkjenning. Gå til moderatorpanelet:" +msgstr[1] "%s kommentarar ventar på godkjenning. Gå til moderatorpanelet:" + +#. translators: 1: blog name, 2: post title +#: wp-includes/pluggable.php:1494 +msgid "[%1$s] Comment: \"%2$s\"" +msgstr "[%1$s] Kommentar: «%2$s»" + +#: wp-includes/link-template.php:2735 +msgid "« Older Comments" +msgstr "← Eldre kommentarar" + +#: wp-includes/link-template.php:2691 +msgid "Newer Comments »" +msgstr "Nyare kommentarar \t" + +#: wp-includes/link-template.php:699 +msgid "Comments Feed" +msgstr "Nyheitsstraum for kommentarar" + +#. translators: 1: blog name, 2: separator(raquo), 3: post title +#: wp-includes/general-template.php:2665 +msgid "%1$s %2$s %3$s Comments Feed" +msgstr "%1$s %2$s %3$s nyhendestraum for kommentarar" + +#. translators: 1: blog title, 2: separator (raquo) +#: wp-includes/general-template.php:2625 +msgid "%1$s %2$s Comments Feed" +msgstr "%1$s %2$s kommentarstraum" + +#: wp-includes/feed-rss2-comments.php:91 +msgid "Protected Comments: Please enter your password to view comments." +msgstr "Verna kommentarar: Skriv inn passordet ditt for å sjå kommentarane." + +#. translators: Comments feed title. 1: Post title +#: wp-includes/feed-rss2-comments.php:38 +msgid "Comments on: %s" +msgstr "Kommentar til: %s" + +#. translators: Individual comment title. 1: Post title, 2: Comment author name +#: wp-includes/feed-atom-comments.php:81 wp-includes/feed-rss2-comments.php:80 +msgid "Comment on %1$s by %2$s" +msgstr "Kommentar til %1$s av %2$s" + +#. translators: Comments feed title. 1: Site name +#: wp-includes/feed-atom-comments.php:39 wp-includes/feed-rss2-comments.php:44 +msgid "Comments for %s" +msgstr "Kommentar til %s" + +#. translators: Comments feed title. 1: Site name, 2: Search query +#: wp-includes/feed-atom-comments.php:36 wp-includes/feed-rss2-comments.php:41 +msgid "Comments for %1$s searching on %2$s" +msgstr "Kommentar til %1$s søk på %2$s" + +#: wp-includes/comment.php:2095 +msgid "Could not update comment status" +msgstr "Kunne ikkje oppdatere kommentarstatusen" + +#: wp-includes/comment.php:658 wp-includes/comment.php:661 +#: wp-includes/comment.php:664 +msgid "Duplicate comment detected; it looks as though you’ve already said that!" +msgstr "Fann dublettkommentar, det ser ut som du alt har sagt dette." + +#: wp-includes/comment-template.php:2250 +msgid "Post Comment" +msgstr "Kommenter" + #: wp-includes/class-wp-customize-nav-menus.php:283 #: wp-includes/script-loader.php:234 wp-includes/script-loader.php:432 #: wp-includes/script-loader.php:761 @@ -10332,10 +10332,6 @@ msgstr "Bunader" msgid "Settings" msgstr "Innstillingar" -#: wp-includes/class-wp-xmlrpc-server.php:554 -msgid "Allow people to post comments on new articles" -msgstr "Godta at folk gjev innspel til nye innlegg" - #: wp-includes/class-wp-xmlrpc-server.php:494 msgid "Date Format" msgstr "Datoformat" @@ -10381,32 +10377,14 @@ msgstr "Skil merkelappar med komma" msgid "Website" msgstr "Vevstad" -#: wp-includes/class-wp-xmlrpc-server.php:3576 wp-includes/comment.php:2983 -#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 -msgid "Sorry, comments are closed for this item." -msgstr "Innspel er diverre ikkje opne for dette innlegget." - #: wp-includes/link-template.php:2217 wp-includes/link-template.php:2353 msgid "Next Page »" msgstr "Neste side »" -#. translators: Comments feed title. 1: Post title -#: wp-includes/feed-atom-comments.php:33 -msgid "Comments on %s" -msgstr "Innspel til %s" - #: wp-includes/widgets/class-wp-widget-meta.php:70 msgid "Powered by WordPress, state-of-the-art semantic personal publishing platform." msgstr "Vert driven med WordPress, toppmoderne og semantisk personleg publiseringsverkty." -#: wp-includes/comment-template.php:920 -msgid "No Comments" -msgstr "Inkje innspel" - -#: wp-includes/comment-template.php:922 -msgid "1 Comment" -msgstr "1 innspel" - #: wp-includes/category-template.php:1144 msgid "Tags: " msgstr "Merkelapp: " @@ -10436,15 +10414,6 @@ msgstr "Ingen kategoriar" msgid "Feed for all posts filed under %s" msgstr "Nyhendestraum for alle innlegg arkivert under %s" -#: wp-includes/comment-template.php:1711 -msgid "Leave a Comment" -msgstr "Legg att eit innspel" - -#: wp-includes/class-walker-comment.php:284 -#: wp-includes/class-walker-comment.php:354 -msgid "Your comment is awaiting moderation." -msgstr "Innspelet ditt ventar på å bli godkjent." - #: wp-includes/theme-compat/sidebar.php:103 #: wp-includes/widgets/class-wp-widget-meta.php:33 #: wp-includes/widgets/class-wp-widget-meta.php:48 @@ -10497,18 +10466,10 @@ msgstr "Småprogram" msgid "« Previous Page" msgstr "« Førre side" -#: wp-includes/comment-template.php:1524 -msgid "Enter your password to view comments." -msgstr "Skriv inn passordet ditt for å sjå innspela." - #: wp-includes/comment-template.php:1599 msgid "Log in to Reply" msgstr "Logg inn for å svare" -#: wp-includes/comment-template.php:1712 -msgid "Log in to leave a Comment" -msgstr "Logg inn for å leggje att eit innspel" - #: wp-includes/comment-template.php:1780 msgid "Click here to cancel reply." msgstr "Klikk her for å avbryte svar." @@ -10519,11 +10480,6 @@ msgstr "Klikk her for å avbryte svar." msgid "%1$s at %2$s" msgstr "%1$s på %2$s" -#. translators: %s: login URL -#: wp-includes/comment-template.php:2222 -msgid "You must be <a href=\"%s\">logged in</a> to post a comment." -msgstr "Du må vere <a href=\"%s\">pålogga</a> for å skrive innspel." - #: wp-includes/class-wp-theme.php:800 msgid "Blue" msgstr "Blå" @@ -10577,10 +10533,6 @@ msgstr "Endra kategori" msgid "(Edit)" msgstr "(Endra)" -#: wp-includes/theme-compat/comments.php:66 -msgid "Comments are closed." -msgstr "Innspel er stengd." - #. translators: %s: comments count #: wp-includes/script-loader.php:531 msgid "Comments (%s)" @@ -10590,6 +10542,54 @@ msgstr "Kommentarar (%s)" msgid "Plugin:" msgstr "Innstikk:" +#: wp-includes/comment-template.php:1712 +msgid "Log in to leave a Comment" +msgstr "Logg inn for å kommentere." + +#: wp-includes/comment-template.php:1711 +msgid "Leave a Comment" +msgstr "Legg att ein kommentar" + +#: wp-includes/class-walker-comment.php:284 +#: wp-includes/class-walker-comment.php:354 +msgid "Your comment is awaiting moderation." +msgstr "Kommentaren din ventar på å bli godkjent." + +#: wp-includes/theme-compat/comments.php:66 +msgid "Comments are closed." +msgstr "Stengt for kommentarar." + +#. translators: %s: login URL +#: wp-includes/comment-template.php:2222 +msgid "You must be <a href=\"%s\">logged in</a> to post a comment." +msgstr "Du må vere <a href=\"%s\">pålogga</a> for å kommentere." + +#: wp-includes/comment-template.php:922 +msgid "1 Comment" +msgstr "1 kommentar" + +#: wp-includes/comment-template.php:920 +msgid "No Comments" +msgstr "Ingen kommentarar" + +#: wp-includes/comment-template.php:1524 +msgid "Enter your password to view comments." +msgstr "Skriv inn passordet ditt for å sjå kommentarane." + +#. translators: Comments feed title. 1: Post title +#: wp-includes/feed-atom-comments.php:33 +msgid "Comments on %s" +msgstr "Kommentar til %s" + +#: wp-includes/class-wp-xmlrpc-server.php:3576 wp-includes/comment.php:2983 +#: wp-includes/rest-api/endpoints/class-wp-rest-comments-controller.php:473 +msgid "Sorry, comments are closed for this item." +msgstr "Det er diverre stengt for kommentarar her." + +#: wp-includes/class-wp-xmlrpc-server.php:554 +msgid "Allow people to post comments on new articles" +msgstr "Godta at folk kommenterer nye innlegg" + #: wp-includes/category-template.php:524 #: wp-includes/theme-compat/sidebar.php:97 #: wp-includes/widgets/class-wp-widget-categories.php:31 @@ -10633,19 +10633,10 @@ msgstr "Forfattar" msgid "URL" msgstr "URL" -#: wp-includes/comment-template.php:1081 wp-includes/comment-template.php:2218 -msgctxt "noun" -msgid "Comment" -msgstr "Innspel" - #: wp-includes/taxonomy.php:504 msgid "Update Category" msgstr "Oppdater kategori" -#: wp-includes/script-loader.php:529 -msgid "Comments" -msgstr "Innspel" - #: wp-includes/revision.php:36 msgid "Excerpt" msgstr "Utdrag" @@ -10698,11 +10689,6 @@ msgstr "Anonym" msgid "RSS" msgstr "RSS" -#: wp-includes/widgets/class-wp-widget-recent-comments.php:31 -#: wp-includes/widgets/class-wp-widget-recent-comments.php:78 -msgid "Recent Comments" -msgstr "Seinaste innspel" - #: wp-includes/admin-bar.php:486 msgid "Plugins" msgstr "Innstikk" @@ -10934,10 +10920,6 @@ msgstr "Fila «%s» er ikkje eit bilete." msgid "View Page" msgstr "Vis side" -#: wp-includes/widgets/class-wp-widget-recent-comments.php:162 -msgid "Number of comments to show:" -msgstr "Tal på innspel å vise fram:" - #: wp-includes/admin-bar.php:875 wp-includes/admin-bar.php:876 #: wp-includes/class-wp-editor.php:1708 wp-includes/media.php:3490 msgid "Search" @@ -11023,6 +11005,24 @@ msgstr "Epost: %s" msgid "Search Results for “%s”" msgstr "Treff på “%s”" +#: wp-includes/widgets/class-wp-widget-recent-comments.php:162 +msgid "Number of comments to show:" +msgstr "Tal på kommentarar å vise fram:" + +#: wp-includes/widgets/class-wp-widget-recent-comments.php:31 +#: wp-includes/widgets/class-wp-widget-recent-comments.php:78 +msgid "Recent Comments" +msgstr "Nye kommentarar" + +#: wp-includes/script-loader.php:529 +msgid "Comments" +msgstr "Kommentarar" + +#: wp-includes/comment-template.php:1081 wp-includes/comment-template.php:2218 +msgctxt "noun" +msgid "Comment" +msgstr "Kommentar" + #: wp-includes/class-wp-customize-manager.php:412 #: wp-includes/class-wp-customize-manager.php:477 #: wp-includes/script-loader.php:467 diff --git a/wp-content/languages/pt_BR.mo b/wp-content/languages/pt_BR.mo index 998fd086beea9a8899155e301878bb12c5ed58e5..f85fcb204ea69580f86d006549cadefe3166cf64 100644 Binary files a/wp-content/languages/pt_BR.mo and b/wp-content/languages/pt_BR.mo differ diff --git a/wp-content/languages/pt_BR.po b/wp-content/languages/pt_BR.po index eab2fa0a88554be0080cb065f571e475c63c42d9..355cc6f3e31ec0c3fd99260903135a0d0f1eff79 100644 --- a/wp-content/languages/pt_BR.po +++ b/wp-content/languages/pt_BR.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-07-26 21:35:20+0000\n" +"PO-Revision-Date: 2017-09-30 17:15:54+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -10043,11 +10043,6 @@ msgstr "Esse arquivo está vazio. Tente outro." msgid "There was a configuration error. Please contact the server administrator." msgstr "Erro de configuração. Contate o administrador do servidor." -#: wp-includes/widgets/class-wp-widget-recent-posts.php:31 -#: wp-includes/widgets/class-wp-widget-recent-posts.php:50 -msgid "Recent Posts" -msgstr "Tópicos recentes" - #: wp-includes/deprecated.php:2671 msgid "Last Post" msgstr "Post recente" @@ -10251,6 +10246,11 @@ msgstr "O URL que você digitou parece ser um endereço de e-mail. Você quer ad msgid "Remove From Bulk Edit" msgstr "Remover da edição em massa" +#: wp-includes/widgets/class-wp-widget-recent-posts.php:31 +#: wp-includes/widgets/class-wp-widget-recent-posts.php:50 +msgid "Recent Posts" +msgstr "Posts recentes" + #: wp-includes/class-wp-theme.php:800 msgid "Blue" msgstr "Azul" diff --git a/wp-content/languages/ro_RO.mo b/wp-content/languages/ro_RO.mo index b358840049ba465b4a40cae08c53a74041bb8680..bf66124b016e3c94e61f5be9143566592b7bcc24 100644 Binary files a/wp-content/languages/ro_RO.mo and b/wp-content/languages/ro_RO.mo differ diff --git a/wp-content/languages/ro_RO.po b/wp-content/languages/ro_RO.po index 2410765d15ef0b0b09b02e5429217a0f3e768b35..f76f437b4e24ddec1e2a6fba57a1f4edc69cf8d6 100644 --- a/wp-content/languages/ro_RO.po +++ b/wp-content/languages/ro_RO.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-07-28 10:26:15+0000\n" +"PO-Revision-Date: 2017-09-09 07:07:01+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -8781,13 +8781,6 @@ msgstr "O adresă de email validă este obligatorie." msgid "Sorry, you are not allowed to update posts as this user." msgstr "Regret, ca acest utilizator nu ai voie să actualizezi articole." -#: wp-includes/post.php:237 -msgid "Trash <span class=\"count\">(%s)</span>" -msgid_plural "Trash <span class=\"count\">(%s)</span>" -msgstr[0] "Gunoi <span class=\"count\">(%s)</span>" -msgstr[1] "Gunoi <span class=\"count\">(%s)</span>" -msgstr[2] "Gunoi <span class=\"count\">(%s)</span>" - #: wp-includes/class-wp-editor.php:1083 msgid "General" msgstr "General" @@ -10291,6 +10284,13 @@ msgstr "URL-ul pe care l-ai introdus pare să fie o legătură externă. Vrei s msgid "Page not found" msgstr "Pagină negăsită" +#: wp-includes/post.php:237 +msgid "Trash <span class=\"count\">(%s)</span>" +msgid_plural "Trash <span class=\"count\">(%s)</span>" +msgstr[0] "La gunoi <span class=\"count\">(%s)</span>" +msgstr[1] "La gunoi <span class=\"count\">(%s)</span>" +msgstr[2] "La gunoi <span class=\"count\">(%s)</span>" + #: wp-includes/class-wp-theme.php:800 msgid "Blue" msgstr "Albastru" diff --git a/wp-content/languages/ru_RU.mo b/wp-content/languages/ru_RU.mo index eab809fc0af2aa511d441fc248c8587920dd8a22..8c6d4837ca447c414a38c31535e1888724e8437b 100644 Binary files a/wp-content/languages/ru_RU.mo and b/wp-content/languages/ru_RU.mo differ diff --git a/wp-content/languages/ru_RU.po b/wp-content/languages/ru_RU.po index 58e280f582f1ebb2d553a268d6a13d8256b64d59..3c12f0d853d29c7ab7998922d0b9ec2a922b83ef 100644 --- a/wp-content/languages/ru_RU.po +++ b/wp-content/languages/ru_RU.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the WordPress - 4.8.x package. msgid "" msgstr "" -"PO-Revision-Date: 2017-08-24 22:01:11+0000\n" +"PO-Revision-Date: 2017-09-23 11:17:01+0000\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -1366,7 +1366,7 @@ msgstr "Извините, обратные ссылки для этого объ #: wp-trackback.php:85 msgid "I really need an ID for this to work." -msgstr "Мне правда нужен ID чтобы это сработало." +msgstr "Мне нужен ID, чтобы это сработало." #: wp-includes/script-loader.php:549 msgid "Term removed." @@ -2259,7 +2259,7 @@ msgstr "Имя пользователя или e-mail" #: wp-includes/customize/class-wp-customize-selective-refresh.php:207 msgid "Click to edit this element." -msgstr "Нажмите чтобы отредактировать этот элемент." +msgstr "Нажмите, чтобы отредактировать этот элемент." #: wp-includes/customize/class-wp-customize-selective-refresh.php:206 msgid "Click to edit the site title." @@ -2271,7 +2271,7 @@ msgstr "Нажмите для редактирования этого видже #: wp-includes/customize/class-wp-customize-selective-refresh.php:204 msgid "Click to edit this menu." -msgstr "Нажмите чтобы отредактировать это меню." +msgstr "Нажмите, чтобы отредактировать это меню." #: wp-includes/customize/class-wp-customize-header-image-control.php:176 msgid "While you can crop images to your liking after clicking <strong>Add new image</strong>, we recommend matching the size of your video." diff --git a/wp-content/plugins/akismet/_inc/akismet.js b/wp-content/plugins/akismet/_inc/akismet.js index c1ddc8b0be2aee999533d0e336ae365001ae8069..cac4d57fdac63e6294530636ff4dc27ddc3c6825 100644 --- a/wp-content/plugins/akismet/_inc/akismet.js +++ b/wp-content/plugins/akismet/_inc/akismet.js @@ -162,8 +162,14 @@ jQuery( function ( $ ) { var recheck_count = 0; function akismet_check_for_spam(offset, limit) { + var check_for_spam_buttons = $( '.checkforspam' ); + + // We show the percentage complete down to one decimal point so even queues with 100k + // pending comments will show some progress pretty quickly. + var percentage_complete = Math.round( ( recheck_count / check_for_spam_buttons.data( 'pending-comment-count' ) ) * 1000 ) / 10; + // Update the progress counter on the "Check for Spam" button. - $( '.checkforspam-progress' ).text( $( '.checkforspam' ).data( 'progress-label-format' ).replace( '%1$s', offset ) ); + $( '.checkforspam-progress' ).text( check_for_spam_buttons.data( 'progress-label-format' ).replace( '%1$s', percentage_complete ) ); $.post( ajaxurl, @@ -177,7 +183,7 @@ jQuery( function ( $ ) { spam_count += result.counts.spam; if (result.counts.processed < limit) { - window.location.href = $( '.checkforspam' ).data( 'success-url' ).replace( '__recheck_count__', recheck_count ).replace( '__spam_count__', spam_count ); + window.location.href = check_for_spam_buttons.data( 'success-url' ).replace( '__recheck_count__', recheck_count ).replace( '__spam_count__', spam_count ); } else { // Account for comments that were caught as spam and moved out of the queue. diff --git a/wp-content/plugins/akismet/akismet.php b/wp-content/plugins/akismet/akismet.php index 9894295bad3aa21f63317716ac49ecf34f7a823d..56babcba03148537b28fca28b4dce744131dae3e 100644 --- a/wp-content/plugins/akismet/akismet.php +++ b/wp-content/plugins/akismet/akismet.php @@ -6,7 +6,7 @@ Plugin Name: Akismet Anti-Spam Plugin URI: https://akismet.com/ Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. -Version: 3.3.4 +Version: 4.0 Author: Automattic Author URI: https://automattic.com/wordpress-plugins/ License: GPLv2 or later @@ -37,8 +37,8 @@ if ( !function_exists( 'add_action' ) ) { exit; } -define( 'AKISMET_VERSION', '3.3.4' ); -define( 'AKISMET__MINIMUM_WP_VERSION', '3.7' ); +define( 'AKISMET_VERSION', '4.0' ); +define( 'AKISMET__MINIMUM_WP_VERSION', '4.0' ); define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); define( 'AKISMET_DELETE_LIMIT', 100000 ); @@ -47,9 +47,12 @@ register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) require_once( AKISMET__PLUGIN_DIR . 'class.akismet.php' ); require_once( AKISMET__PLUGIN_DIR . 'class.akismet-widget.php' ); +require_once( AKISMET__PLUGIN_DIR . 'class.akismet-rest-api.php' ); add_action( 'init', array( 'Akismet', 'init' ) ); +add_action( 'rest_api_init', array( 'Akismet_REST_API', 'init' ) ); + if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { require_once( AKISMET__PLUGIN_DIR . 'class.akismet-admin.php' ); add_action( 'init', array( 'Akismet_Admin', 'init' ) ); diff --git a/wp-content/plugins/akismet/class.akismet-admin.php b/wp-content/plugins/akismet/class.akismet-admin.php index aed5e3d5dfc3fcbc566bbd58f02034249586a7cc..bc00260f8d16dd34ff1b01d93148fe58e0227af5 100644 --- a/wp-content/plugins/akismet/class.akismet-admin.php +++ b/wp-content/plugins/akismet/class.akismet-admin.php @@ -91,12 +91,14 @@ class Akismet_Admin { } public static function load_menu() { - if ( class_exists( 'Jetpack' ) ) + if ( class_exists( 'Jetpack' ) ) { $hook = add_submenu_page( 'jetpack', __( 'Akismet' , 'akismet'), __( 'Akismet' , 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); - else + } + else { $hook = add_options_page( __('Akismet', 'akismet'), __('Akismet', 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); - - if ( version_compare( $GLOBALS['wp_version'], '3.3', '>=' ) ) { + } + + if ( $hook ) { add_action( "load-$hook", array( 'Akismet_Admin', 'admin_help' ) ); } } @@ -248,8 +250,9 @@ class Akismet_Admin { } public static function enter_api_key() { - if ( function_exists('current_user_can') && !current_user_can('manage_options') ) - die(__('Cheatin’ uh?', 'akismet')); + if ( ! current_user_can( 'manage_options' ) ) { + die( __( 'Cheatin’ uh?', 'akismet' ) ); + } if ( !wp_verify_nonce( $_POST['_wpnonce'], self::NONCE ) ) return false; @@ -303,8 +306,9 @@ class Akismet_Admin { } public static function dashboard_stats() { - if ( !function_exists('did_action') || did_action( 'rightnow_end' ) ) + if ( did_action( 'rightnow_end' ) ) { return; // We already displayed this info in the "Right Now" section + } if ( !$count = get_option('akismet_spam_count') ) return; @@ -356,19 +360,19 @@ class Akismet_Admin { return; } - if ( function_exists('plugins_url') ) - $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); - else - $link = add_query_arg( array( 'page' => 'akismet-admin', 'recheckqueue' => 'true', 'noheader' => 'true' ), admin_url( 'edit-comments.php' ) ); + $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); + $comments_count = wp_count_comments(); + echo '</div>'; echo '<div class="alignleft">'; echo '<a class="button-secondary checkforspam" href="' . esc_url( $link ) . '" data-active-label="' . esc_attr( __( 'Checking for Spam', 'akismet' ) ) . '" - data-progress-label-format="' . esc_attr( __( '(%1$s...)', 'akismet' ) ) . '" + data-progress-label-format="' . esc_attr( __( '(%1$s%)', 'akismet' ) ) . '" data-success-url="' . esc_attr( remove_query_arg( 'akismet_recheck', add_query_arg( array( 'akismet_recheck_complete' => 1, 'recheck_count' => urlencode( '__recheck_count__' ), 'spam_count' => urlencode( '__spam_count__' ) ) ) ) ) . '" + data-pending-comment-count="' . esc_attr( $comments_count->moderated ) . '" >'; echo '<span class="akismet-label">' . esc_html__('Check for Spam', 'akismet') . '</span>'; echo '<span class="checkforspam-progress"></span>'; @@ -467,11 +471,6 @@ class Akismet_Admin { } public static function comment_row_action( $a, $comment ) { - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return $a; - $akismet_result = get_comment_meta( $comment->comment_ID, 'akismet_result', true ); $akismet_error = get_comment_meta( $comment->comment_ID, 'akismet_error', true ); $user_result = get_comment_meta( $comment->comment_ID, 'akismet_user_result', true); @@ -500,7 +499,7 @@ class Akismet_Admin { $b[ $k ] = $item; if ( $k == 'edit' - || ( $k == 'unspam' && $GLOBALS['wp_version'] >= 3.4 ) + || $k == 'unspam' ) { $b['history'] = '<a href="comment.php?action=editcomment&c='.$comment->comment_ID.'#akismet-status" title="'. esc_attr__( 'View comment history' , 'akismet') . '"> '. esc_html__('History', 'akismet') . '</a>'; } @@ -645,12 +644,8 @@ class Akismet_Admin { if ( !$type ) { // total $count = wp_cache_get( 'akismet_spam_count', 'widget' ); if ( false === $count ) { - if ( function_exists('wp_count_comments') ) { - $count = wp_count_comments(); - $count = $count->spam; - } else { - $count = (int) $wpdb->get_var("SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam'"); - } + $count = wp_count_comments(); + $count = $count->spam; wp_cache_set( 'akismet_spam_count', $count, 'widget', 3600 ); } return $count; @@ -706,7 +701,7 @@ class Akismet_Admin { update_option('akismet_connectivity_time', time()); } - if ( function_exists( 'wp_http_supports' ) && ( wp_http_supports( array( 'ssl' ) ) ) ) { + if ( wp_http_supports( array( 'ssl' ) ) ) { $response = wp_remote_get( 'https://rest.akismet.com/1.1/test' ); } else { diff --git a/wp-content/plugins/akismet/class.akismet-rest-api.php b/wp-content/plugins/akismet/class.akismet-rest-api.php new file mode 100644 index 0000000000000000000000000000000000000000..f97b710d3a9ee369bfb5a0e79251c61274ad43a8 --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-rest-api.php @@ -0,0 +1,271 @@ +<?php + +class Akismet_REST_API { + /** + * Register the REST API routes. + */ + public static function init() { + if ( ! function_exists( 'register_rest_route' ) ) { + // The REST API wasn't integrated into core until 4.4, and we support 4.0+ (for now). + return false; + } + + register_rest_route( 'akismet/v1', '/key', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_key' ), + ), array( + 'methods' => WP_REST_Server::EDITABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'set_key' ), + 'args' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), + 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), + ), + ), + ), array( + 'methods' => WP_REST_Server::DELETABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'delete_key' ), + ) + ) ); + + register_rest_route( 'akismet/v1', '/settings/', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_settings' ), + ), + array( + 'methods' => WP_REST_Server::EDITABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'set_boolean_settings' ), + 'args' => array( + 'akismet_strictness' => array( + 'required' => false, + 'type' => 'boolean', + 'description' => __( 'If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.', 'akismet' ), + ), + 'akismet_show_user_comments_approved' => array( + 'required' => false, + 'type' => 'boolean', + 'description' => __( 'If true, show the number of approved comments beside each comment author in the comments list page.', 'akismet' ), + ), + ), + ) + ) ); + + register_rest_route( 'akismet/v1', '/stats', array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_stats' ), + 'args' => array( + 'interval' => array( + 'required' => false, + 'type' => 'string', + 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_interval' ), + 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), + 'default' => 'all', + ), + ), + ) ); + + register_rest_route( 'akismet/v1', '/stats/(?P<interval>[\w+])', array( + 'args' => array( + 'interval' => array( + 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), + 'type' => 'string', + ), + ), + array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_stats' ), + ) + ) ); + } + + /** + * Get the current Akismet API key. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function get_key( $request = null ) { + return rest_ensure_response( Akismet::get_api_key() ); + } + + /** + * Set the API key, if possible. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function set_key( $request ) { + if ( defined( 'WPCOM_API_KEY' ) ) { + return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be changed via the API.', 'akismet' ), array( 'status'=> 409 ) ) ); + } + + $new_api_key = $request->get_param( 'key' ); + + if ( ! self::key_is_valid( $new_api_key ) ) { + return rest_ensure_response( new WP_Error( 'invalid_key', __( 'The value provided is not a valid and registered API key.', 'akismet' ), array( 'status' => 400 ) ) ); + } + + update_option( 'wordpress_api_key', $new_api_key ); + + return self::get_key(); + } + + /** + * Unset the API key, if possible. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function delete_key( $request ) { + if ( defined( 'WPCOM_API_KEY' ) ) { + return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be deleted.', 'akismet' ), array( 'status'=> 409 ) ) ); + } + + delete_option( 'wordpress_api_key' ); + + return rest_ensure_response( true ); + } + + /** + * Get the Akismet settings. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function get_settings( $request = null ) { + return rest_ensure_response( array( + 'akismet_strictness' => ( get_option( 'akismet_strictness', '1' ) === '1' ), + 'akismet_show_user_comments_approved' => ( get_option( 'akismet_show_user_comments_approved', '1' ) === '1' ), + ) ); + } + + /** + * Update the Akismet settings. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function set_boolean_settings( $request ) { + foreach ( array( + 'akismet_strictness', + 'akismet_show_user_comments_approved', + ) as $setting_key ) { + + $setting_value = $request->get_param( $setting_key ); + if ( is_null( $setting_value ) ) { + // This setting was not specified. + continue; + } + + // From 4.7+, WP core will ensure that these are always boolean + // values because they are registered with 'type' => 'boolean', + // but we need to do this ourselves for prior versions. + $setting_value = Akismet_REST_API::parse_boolean( $setting_value ); + + update_option( $setting_key, $setting_value ? '1' : '0' ); + } + + return self::get_settings(); + } + + /** + * Parse a numeric or string boolean value into a boolean. + * + * @param mixed $value The value to convert into a boolean. + * @return bool The converted value. + */ + public static function parse_boolean( $value ) { + switch ( $value ) { + case true: + case 'true': + case '1': + case 1: + return true; + + case false: + case 'false': + case '0': + case 0: + return false; + + default: + return (bool) $value; + } + } + + /** + * Get the Akismet stats for a given time period. + * + * Possible `interval` values: + * - all + * - 60-days + * - 6-months + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function get_stats( $request ) { + $api_key = Akismet::get_api_key(); + + $interval = $request->get_param( 'interval' ); + + $stat_totals = array(); + + $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); + + if ( ! empty( $response[1] ) ) { + $stat_totals[$interval] = json_decode( $response[1] ); + } + + return rest_ensure_response( $stat_totals ); + } + + private static function key_is_valid( $key ) { + $response = Akismet::http_post( + Akismet::build_query( + array( + 'key' => $key, + 'blog' => get_option( 'home' ) + ) + ), + 'verify-key' + ); + + if ( $response[1] == 'valid' ) { + return true; + } + + return false; + } + + public static function privileged_permission_callback() { + return current_user_can( 'manage_options' ); + } + + public static function sanitize_interval( $interval, $request, $param ) { + $interval = trim( $interval ); + + $valid_intervals = array( '60-days', '6-months', 'all', ); + + if ( ! in_array( $interval, $valid_intervals ) ) { + $interval = 'all'; + } + + return $interval; + } + + public static function sanitize_key( $key, $request, $param ) { + return trim( $key ); + } +} diff --git a/wp-content/plugins/akismet/class.akismet.php b/wp-content/plugins/akismet/class.akismet.php index f4172e03a9128d204ed96c4095f2e8db91585438..02d994d142e5001258710eae2a17870dcb260fba 100644 --- a/wp-content/plugins/akismet/class.akismet.php +++ b/wp-content/plugins/akismet/class.akismet.php @@ -10,7 +10,8 @@ class Akismet { private static $prevent_moderation_email_for_these_comments = array(); private static $last_comment_result = null; private static $comment_as_submitted_allowed_keys = array( 'blog' => '', 'blog_charset' => '', 'blog_lang' => '', 'blog_ua' => '', 'comment_agent' => '', 'comment_author' => '', 'comment_author_IP' => '', 'comment_author_email' => '', 'comment_author_url' => '', 'comment_content' => '', 'comment_date_gmt' => '', 'comment_tags' => '', 'comment_type' => '', 'guid' => '', 'is_test' => '', 'permalink' => '', 'reporter' => '', 'site_domain' => '', 'submit_referer' => '', 'submit_uri' => '', 'user_ID' => '', 'user_agent' => '', 'user_id' => '', 'user_ip' => '' ); - + private static $is_rest_api_call = false; + public static function init() { if ( ! self::$initiated ) { self::init_hooks(); @@ -25,6 +26,8 @@ class Akismet { add_action( 'wp_insert_comment', array( 'Akismet', 'auto_check_update_meta' ), 10, 2 ); add_filter( 'preprocess_comment', array( 'Akismet', 'auto_check_comment' ), 1 ); + add_filter( 'rest_pre_insert_comment', array( 'Akismet', 'rest_auto_check_comment' ), 1 ); + add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments' ) ); add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments_meta' ) ); add_action( 'akismet_schedule_cron_recheck', array( 'Akismet', 'cron_recheck' ) ); @@ -104,6 +107,12 @@ class Akismet { self::verify_key( $value ); } } + + public static function rest_auto_check_comment( $commentdata ) { + self::$is_rest_api_call = true; + + return self::auto_check_comment( $commentdata ); + } public static function auto_check_comment( $commentdata ) { self::$last_comment_result = null; @@ -190,14 +199,25 @@ class Akismet { do_action( 'akismet_spam_caught', $discard ); if ( $discard ) { + // The spam is obvious, so we're bailing out early. // akismet_result_spam() won't be called so bump the counter here - if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) - update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); - // The spam is obvious, so we're bailing out early. Redirect back to the previous page, - // or failing that, the post permalink, or failing that, the homepage of the blog. - $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ( $post ? get_permalink( $post ) : home_url() ); - wp_safe_redirect( esc_url_raw( $redirect_to ) ); - die(); + if ( $incr = apply_filters( 'akismet_spam_count_incr', 1 ) ) { + update_option( 'akismet_spam_count', get_option( 'akismet_spam_count' ) + $incr ); + } + + if ( self::$is_rest_api_call ) { + return new WP_Error( 'akismet_rest_comment_discarded', __( 'Comment discarded.', 'akismet' ) ); + } + else { + // Redirect back to the previous page, or failing that, the post permalink, or failing that, the homepage of the blog. + $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ( $post ? get_permalink( $post ) : home_url() ); + wp_safe_redirect( esc_url_raw( $redirect_to ) ); + die(); + } + } + else if ( self::$is_rest_api_call ) { + // The way the REST API structures its calls, we can set the comment_approved value right away. + $commentdata['comment_approved'] = 'spam'; } } @@ -207,26 +227,20 @@ class Akismet { // Comment status should be moderated self::$last_comment_result = '0'; } - if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_single_event') ) { - if ( !wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { - wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); - do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); - } + + if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); } self::$prevent_moderation_email_for_these_comments[] = $commentdata; } - if ( function_exists('wp_next_scheduled') && function_exists('wp_schedule_event') ) { - // WP 2.1+: delete old comments daily - if ( !wp_next_scheduled( 'akismet_scheduled_delete' ) ) - wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); - } - elseif ( (mt_rand(1, 10) == 3) ) { - // WP 2.0: run this one time in ten - self::delete_old_comments(); + // Delete old comments daily + if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) { + wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); } - + self::set_last_comment( $commentdata ); self::fix_scheduled_recheck(); @@ -256,11 +270,6 @@ class Akismet { // this fires on wp_insert_comment. we can't update comment_meta when auto_check_comment() runs // because we don't know the comment ID at that point. public static function auto_check_update_meta( $id, $comment ) { - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return false; - // wp_insert_comment() might be called in other contexts, so make sure this is the same comment // as was checked by auto_check_comment if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) { @@ -398,11 +407,6 @@ class Akismet { // get the full comment history for a given comment, as an array in reverse chronological order public static function get_comment_history( $comment_id ) { - - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return false; - $history = get_comment_meta( $comment_id, 'akismet_history', false ); usort( $history, array( 'Akismet', '_cmp_time' ) ); return $history; @@ -419,10 +423,6 @@ class Akismet { public static function update_comment_history( $comment_id, $message, $event=null, $meta=null ) { global $current_user; - // failsafe for old WP versions - if ( !function_exists('add_comment_meta') ) - return false; - $user = ''; $event = array( @@ -1024,7 +1024,7 @@ class Akismet { do_action( 'akismet_ssl_disabled' ); } - if ( ! $ssl_disabled && function_exists( 'wp_http_supports') && ( $ssl = wp_http_supports( array( 'ssl' ) ) ) ) { + if ( ! $ssl_disabled && ( $ssl = wp_http_supports( array( 'ssl' ) ) ) ) { $akismet_url = set_url_scheme( $akismet_url, 'https' ); do_action( 'akismet_https_request_pre' ); diff --git a/wp-content/plugins/akismet/readme.txt b/wp-content/plugins/akismet/readme.txt index d56cc7a7b39ce6dbd4d215beabf25854c59705a9..a1bd5b637a0e7baf8a71f18b4ef8730b00c97f05 100644 --- a/wp-content/plugins/akismet/readme.txt +++ b/wp-content/plugins/akismet/readme.txt @@ -1,9 +1,9 @@ === Akismet === Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic, jgs Tags: akismet, comments, spam, antispam, anti-spam, anti spam, comment moderation, comment spam, contact form spam, spam comments -Requires at least: 3.7 +Requires at least: 4.0 Tested up to: 4.8.1 -Stable tag: 3.3.4 +Stable tag: 4.0 License: GPLv2 or later Akismet checks your comments and contact form submissions against our global database of spam to protect you and your site from malicious content. @@ -30,7 +30,16 @@ Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.co == Changelog == += 4.0 = +*Release Date - 19 September 2017* + +* Added REST API endpoints for configuring Akismet and retrieving stats. +* Increased the minimum supported WordPress version to 4.0. +* Added compatibility with comments submitted via the REST API. +* Improved the progress indicator on the "Check for Spam" button. + = 3.3.4 = +*Release Date - 3 August 2017* * Disabled Akismet's debug log output by default unless AKISMET_DEBUG is defined. * URL previews now begin preloading when the mouse moves near them in the comments section of wp-admin. diff --git a/wp-content/plugins/akismet/views/config.php b/wp-content/plugins/akismet/views/config.php index c12914a030e971aa0608142fbe57cb3e212e0633..59dd18c594e93fd46cc24758b592f159b28f6a6b 100644 --- a/wp-content/plugins/akismet/views/config.php +++ b/wp-content/plugins/akismet/views/config.php @@ -82,10 +82,7 @@ <p> <?php - if ( ! function_exists( 'wp_http_supports' ) ) { - ?><b><?php esc_html_e( 'Disabled.', 'akismet' ); ?></b> <?php printf( esc_html( 'Your WordPress installation does not include the function %s; upgrade to the latest version of WordPress.', 'akismet' ), '<code>wp_http_supports</code>' ); ?><?php - } - else if ( ! wp_http_supports( array( 'ssl' ) ) ) { + if ( ! wp_http_supports( array( 'ssl' ) ) ) { ?><b><?php esc_html_e( 'Disabled.', 'akismet' ); ?></b> <?php esc_html_e( 'Your Web server cannot make SSL requests; contact your Web host and ask them to add support for SSL requests.', 'akismet' ); ?><?php } else { diff --git a/wp-content/plugins/bogo/admin/admin.php b/wp-content/plugins/bogo/admin/admin.php index 76895facd65e4540e6fe0319973980613fe8d321..5244ee5ae35c6cfc12d36e21f85e60558301a698 100644 --- a/wp-content/plugins/bogo/admin/admin.php +++ b/wp-content/plugins/bogo/admin/admin.php @@ -291,6 +291,7 @@ function bogo_tools_page() { } $count += 1; + $row_actions = array(); $class = 'active'; if ( ! $language = bogo_get_language( $locale ) ) { @@ -396,7 +397,7 @@ function bogo_tools_page() { } $count += 1; - + $row_actions = array(); $install_link = ''; if ( $can_install ) { diff --git a/wp-content/plugins/bogo/bogo.php b/wp-content/plugins/bogo/bogo.php index a33e0b7b54fef58a9e017fa843777a33956528ed..a6a138fdefad6c66e343e4e27b1695ecff01f631 100644 --- a/wp-content/plugins/bogo/bogo.php +++ b/wp-content/plugins/bogo/bogo.php @@ -2,15 +2,15 @@ /* Plugin Name: Bogo Description: A straight-forward multilingual plugin. No more double-digit custom DB tables or hidden HTML comments that could cause you headaches later on. -Plugin URI: http://ideasilo.wordpress.com/bogo/ +Plugin URI: https://ideasilo.wordpress.com/bogo/ Author: Takayuki Miyoshi -Author URI: http://ideasilo.wordpress.com/ +Author URI: https://ideasilo.wordpress.com/ Text Domain: bogo Domain Path: /languages/ -Version: 3.1.2 +Version: 3.1.3 */ -define( 'BOGO_VERSION', '3.1.2' ); +define( 'BOGO_VERSION', '3.1.3' ); define( 'BOGO_PLUGIN', __FILE__ ); diff --git a/wp-content/plugins/bogo/license.txt b/wp-content/plugins/bogo/license.txt index 36c61d2d99203b377c0bd8ee1d3cf130246f210d..bac1e51d8a6ae514b136c3782e2ba32bb80db3cd 100644 --- a/wp-content/plugins/bogo/license.txt +++ b/wp-content/plugins/bogo/license.txt @@ -21,3 +21,346 @@ Bogo WordPress Plugin bundles the following third-party resources: Flag icons Flag icons are public domain Source: http://www.famfamfam.com + + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/wp-content/plugins/bogo/readme.txt b/wp-content/plugins/bogo/readme.txt index 796cae6dd4e641b6ad7af8575e5a00eb1a3e693a..cdef974d111c88c49949edf65ef63a0c4f5f8c3d 100644 --- a/wp-content/plugins/bogo/readme.txt +++ b/wp-content/plugins/bogo/readme.txt @@ -2,8 +2,8 @@ Contributors: takayukister Tags: multilingual, localization, language, locale, admin Requires at least: 4.5 -Tested up to: 4.7.3 -Stable tag: 3.1.2 +Tested up to: 4.8.1 +Stable tag: 3.1.3 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Donate link: https://pledgie.com/campaigns/17860 @@ -57,9 +57,14 @@ Here are some technical details for those interested. Bogo plugin assigns [one l 1. You can switch your admin language in the Admin Bar. 1. The Language Post Box manages language and translations of the Post/Page. +1. In the Language Packs screen, you can install and manage language packs. == Changelog == += 3.1.3 = + +* Avoid warnings in cases there is empty $row_actions for some reason. + = 3.1.2 = * Fixed: Warnings were shown in Menus admin page when there were no menu registered. diff --git a/wp-content/plugins/feedwordpress/feeds-page.php b/wp-content/plugins/feedwordpress/feeds-page.php index 011d92e832fd096510d534697abcc1adadb20249..84b3f87a8677bd5ba6069ceeb0e3f368ca055688 100644 --- a/wp-content/plugins/feedwordpress/feeds-page.php +++ b/wp-content/plugins/feedwordpress/feeds-page.php @@ -194,15 +194,25 @@ class FeedWordPressFeedsPage extends FeedWordPressAdminPage { </select> <div id="cron-job-explanation" class="setting-description"> <p><?php - $path = `which curl`; $opts = '--silent %s'; - if (is_null($path) or strlen(trim($path))==0) : + // Do we have shell_exec() available from here, or is it disabled for security reasons? + // If it's available, use it to execute `which` to try to get a realistic path to curl, + // or to wget. If everything fails or shell_exec() isn't available, then just make + // up something for the sake of example. + $shellExecAvailable = (is_callable('shell_exec') && false === stripos(ini_get('disable_functions'), 'shell_exec')); + + if ($shellExecAvailable) : + $path = `which curl`; $opts = '--silent %s'; + endif; + + if ($shellExecAvailable and (is_null($path) or strlen(trim($path))==0)) : $path = `which wget`; $opts = '-q -O - %s'; - if (is_null($path) or strlen(trim($path))==0) : - $path = '/usr/bin/curl'; $opts = '--silent %s'; - endif; endif; + + if (is_null($path) or strlen(trim($path))==0) : + $path = '/usr/bin/curl'; $opts = '--silent %s'; + endif; + $path = preg_replace('/\n+$/', '', $path); - $crontab = `crontab -l`; $cmdline = $path . ' ' . sprintf($opts, get_bloginfo('url').'?update_feedwordpress=1'); diff --git a/wp-content/plugins/feedwordpress/feedwordpress.php b/wp-content/plugins/feedwordpress/feedwordpress.php index 6526acbd570bbd406e94a65ad2e9fcac7a97b1ca..1f1b2fc81f260380ba72b73d3c40871f971fddbd 100644 --- a/wp-content/plugins/feedwordpress/feedwordpress.php +++ b/wp-content/plugins/feedwordpress/feedwordpress.php @@ -3,7 +3,7 @@ Plugin Name: FeedWordPress Plugin URI: http://feedwordpress.radgeek.com/ Description: simple and flexible Atom/RSS syndication for WordPress -Version: 2016.1213 +Version: 2017.1004 Author: Charles Johnson Author URI: http://radgeek.com/ License: GPL @@ -11,7 +11,7 @@ License: GPL /** * @package FeedWordPress - * @version 2016.1213 + * @version 2017.1004 */ # This uses code derived from: @@ -32,7 +32,7 @@ License: GPL # -- Don't change these unless you know what you're doing... -define ('FEEDWORDPRESS_VERSION', '2016.1213'); +define ('FEEDWORDPRESS_VERSION', '2017.1004'); define ('FEEDWORDPRESS_AUTHOR_CONTACT', 'http://radgeek.com/contact'); if (!defined('FEEDWORDPRESS_BLEG')) : @@ -634,7 +634,7 @@ function syndication_comments_feed_link ($link) { $source = get_syndication_feed_object(); $replacement = NULL; - if ($source->setting('munge comments feed links', 'munge_comments_feed_links', 'yes') != 'no') : + if (is_object($source) && $source->setting('munge comments feed links', 'munge_comments_feed_links', 'yes') != 'no') : $commentFeeds = get_post_custom_values('wfw:commentRSS'); if ( is_array($commentFeeds) @@ -1823,7 +1823,8 @@ class FeedWordPress { // Explicit update request in the HTTP request (e.g. from a cron job) if (self::update_requested()) : - + /*DBG*/ header("Content-Type: text/plain"); + $this->update_hooked = "Initiating a CRON JOB CHECK-IN ON UPDATE SCHEDULE due to URL parameter = ".trim($this->val($_REQUEST['update_feedwordpress'])); $this->update($this->update_requested_url()); diff --git a/wp-content/plugins/feedwordpress/feedwordpresslocalpost.class.php b/wp-content/plugins/feedwordpress/feedwordpresslocalpost.class.php index 743f65122a7f1bab75f65eb626b6894d0c74d875..3d6ff5a7fd321cdf310c1a089a688e0570013a4d 100644 --- a/wp-content/plugins/feedwordpress/feedwordpresslocalpost.class.php +++ b/wp-content/plugins/feedwordpress/feedwordpresslocalpost.class.php @@ -93,7 +93,9 @@ class FeedWordPressLocalPost { public function feed () { global $feedwordpress; - $this->link = $feedwordpress->subscription($this->feed_id()); + if (is_object($feedwordpress) and method_exists($feedwordpress, 'subscription')) : + $this->link = $feedwordpress->subscription($this->feed_id()); + endif; return $this->link; } diff --git a/wp-content/plugins/feedwordpress/feedwordpresssyndicationpage.class.php b/wp-content/plugins/feedwordpress/feedwordpresssyndicationpage.class.php index cd1b71299bf6ffcc67136c0fa9803a29328d7a3b..64025e5612c1348093489840c5da28954e09bf7c 100644 --- a/wp-content/plugins/feedwordpress/feedwordpresssyndicationpage.class.php +++ b/wp-content/plugins/feedwordpress/feedwordpresssyndicationpage.class.php @@ -701,7 +701,7 @@ class FeedWordPressSyndicationPage extends FeedWordPressAdminPage { var s = document.createElement('script'), t = document.getElementsByTagName('script')[0]; s.type = 'text/javascript'; s.async = true; - s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto'; + s.src = 'https://api.flattr.com/js/0.6/load.js?mode=auto'; t.parentNode.insertBefore(s, t); })(); /* ]]> */</script> @@ -723,7 +723,7 @@ support, and documentation.</p> <div style="display: inline-block; vertical-align: middle; "> <a class="FlattrButton" style="display:none;" href="http://feedwordpress.radgeek.com/"></a> <noscript> -<a href="http://flattr.com/thing/1380856/FeedWordPress" target="_blank"><img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a> +<a href="https://flattr.com/thing/1380856/FeedWordPress" target="_blank"><img src="https://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a> </noscript> <div>via Flattr</div> @@ -865,7 +865,7 @@ regular donation</a>) using an existing PayPal account or any major credit card. foreach ($alter as $sql) : $result = $wpdb->query($sql); if (!$result): - $errs[] = mysql_error(); + $errs[] = $wpdb->last_error; endif; endforeach; @@ -988,7 +988,7 @@ regular donation</a>) using an existing PayPal account or any major credit card. foreach ($alter as $sql) : $result = $wpdb->query($sql); if (!$result): - $errs[] = mysql_error(); + $errs[] = $wpdb->last_error; endif; endforeach; @@ -1218,7 +1218,7 @@ has been added as a contributing site, using the feed at <<a href="<?php print $fwp_post['feed']; ?>"><?php print esc_html($fwp_post['feed']); ?></a>>. | <a href="admin.php?page=<?php print $fwp_path; ?>/feeds-page.php&link_id=<?php print $link_id; ?>">Configure settings</a>.</p></div> <?php else: ?> -<div class="updated"><p>There was a problem adding the feed. [SQL: <?php echo esc_html(mysql_error()); ?>]</p></div> +<div class="updated"><p>There was a problem adding the feed. [SQL: <?php echo esc_html($wpdb->last_error); ?>]</p></div> <?php endif; elseif (isset($fwp_post['save_link_id'])): $existingLink = new SyndicatedLink($fwp_post['save_link_id']); diff --git a/wp-content/plugins/feedwordpress/readme.txt b/wp-content/plugins/feedwordpress/readme.txt index bae4f062072cb8d3a295c2702dea0a90255569f1..e59fdc681bea23ac256fe7c0549c2d13da4c1c4e 100644 --- a/wp-content/plugins/feedwordpress/readme.txt +++ b/wp-content/plugins/feedwordpress/readme.txt @@ -3,8 +3,8 @@ Contributors: Charles Johnson Donate link: http://feedwordpress.radgeek.com/ Tags: syndication, aggregation, feed, atom, rss Requires at least: 4.5 -Tested up to: 4.7 -Stable tag: 2016.1213 +Tested up to: 4.8.2 +Stable tag: 2017.1004 FeedWordPress syndicates content from feeds you choose into your WordPress weblog. @@ -93,9 +93,42 @@ outs, see the documentation at the [FeedWordPress project homepage][]. == Changelog == += 2017.0913 = + +* PARTIAL FIX FOR 2X DUPLICATE POSTS APPEARING ON DUAL HTTP/HTTPS SITES: Some + users reported an issue in which their FeedWordPress sites, which are over + both insecure HTTP and over HTTPS, would pick up exactly 2 copies of every + post or almost every post from certain feeds, and where the guids for each + of the pair of duplicate posts would look exactly alike, except for a + difference in the protocol, for example: + + http://www.example.com/?guid=c1cd28da39e8d7babcf6499983aca545 + https://www.example.com/?guid=c1cd28da39e8d7babcf6499983aca545 + + ... where www.example.com is the server that your own copy of FeedWordPress + is installed. This release of FeedWordPress normalizes post guid prefixes + so as to avoid or limit the scope of this problem. + +* PHP 7 Compatibility: eliminate remaining sources of PHP 7 compatibility-check + failures -- remove the use of depreciated mysql_error() function, and make + sure all classes make use of __construct() convention for constructors. + +* AVOID "PHP Warning: shell_exec() has been disabled for security reasons in + [...]/feedwordpress/feeds-page.php on line 197": FeedWordPress uses the PHP + shell_exec() function in a very narrowly limited way for information gathering, + trying to find the real path to curl or wget on your system, so that it can + give as realistic as possible a recommendation for the sample crontab line + displayed in Syndication > Feeds & Updates. Some web hosting environments + disable shell_exec for security reasons (since it could in theory be used to + do a lot more stuff than the very limited information gathering FWP uses it + for); in which case, this part of the code in FeedWordPress could spit out + a nasty-looking and potentially worrisome-looking error message. So, now this + code is fenced with checks to make sure that shell_exec is available, before + FWP attempts to make use of it. + = 2016.1213 = -* WORDPRSS BACKWARD COMPATIBILITY FOR VERSIONS [4.5, 4.7]: This change fixes +* WORDPRESS BACKWARD COMPATIBILITY FOR VERSIONS [4.5, 4.7]: This change fixes a fatal PHP error (on some web server configurations you'd see the message "Fatal error: require_once(): Failed opening required '[...]/wp-includes/class-wp-feed-cache.php'" on others, you might just see an HTTP 500 Internal Server Error or a blank diff --git a/wp-content/plugins/feedwordpress/syndicatedpost.class.php b/wp-content/plugins/feedwordpress/syndicatedpost.class.php index 8d1b1f4db362382d89721305c48f835eb014d9f1..00f701f73aa615da41d1ff90b8a6c50893b4a9d7 100644 --- a/wp-content/plugins/feedwordpress/syndicatedpost.class.php +++ b/wp-content/plugins/feedwordpress/syndicatedpost.class.php @@ -12,7 +12,7 @@ require_once(dirname(__FILE__).'/syndicatedpostxpathquery.class.php'); * different feed formats, which may be useful to FeedWordPress users * who make use of feed data in PHP add-ons and filters. * - * @version 2013.0525 + * @version 2017.1004 */ class SyndicatedPost { var $item = null; // MagpieRSS representation @@ -129,6 +129,7 @@ class SyndicatedPost { ); $excerpt = apply_filters('syndicated_item_excerpt', $this->excerpt(), $this); + if (!empty($excerpt)): $this->post['post_excerpt'] = $excerpt; endif; @@ -258,7 +259,6 @@ class SyndicatedPost { $this->post['post_type'] = apply_filters('syndicated_post_type', $this->link->setting('syndicated post type', 'syndicated_post_type', 'post'), $this); endif; - } /* SyndicatedPost::__construct() */ ##################################### @@ -413,18 +413,23 @@ class SyndicatedPost { $content = $this->content(); // Ignore whitespace, case, and tag cruft. - $theExcerpt = preg_replace('/\s+/', '', strtolower(strip_tags($excerpt))); - $theContent = preg_replace('/\s+/', '', strtolower(strip_tags($content))); - + $theExcerpt = preg_replace('/\s+/', '', strtolower(strip_tags(html_entity_decode($excerpt)))); + $theContent = preg_replace('/\s+/', '', strtolower(strip_tags(html_entity_decode($content)))); if ( empty($excerpt) or $theExcerpt == $theContent ) : # If content is available, generate an excerpt. if ( strlen(trim($content)) > 0 ) : $excerpt = strip_tags($content); if (strlen($excerpt) > 255) : - $excerpt = substr($excerpt,0,252).'...'; + if (is_object($this->link) and is_object($this->link->simplepie)) : + $encoding = $this->link->simplepie->get_encoding(); + else : + $encoding = get_option('blog_charset', 'utf8'); + endif; + $excerpt = mb_substr($excerpt,0,252,$encoding).'...'; endif; endif; endif; + return $excerpt; } /* SyndicatedPost::excerpt() */ @@ -584,9 +589,24 @@ class SyndicatedPost { return $hash; } /* SyndicatedPost::update_hash() */ + /** + * SyndicatedPost::normalize_guid_prefix(): generates a normalized URL + * prefix (including scheme, authority, full path, and the beginning of + * a query string) for creating guids that conform to WordPress's + * internal constraints on the URL space for valid guids. To create a + * normalized guid, just concatenate a valid URL query parameter value + * to the returned URL. + * + * @return string The URL prefix generated. + * + * @uses trailingslashit() + * @uses home_url() + * @uses apply_filters() + */ static function normalize_guid_prefix () { - return trailingslashit(get_bloginfo('url')).'?guid='; - } + $url = trailingslashit(home_url(/*path=*/ '', /*scheme=*/ 'http')); + return apply_filters('syndicated_item_guid_normalized_prefix', $url . '?guid='); + } /* SyndicatedPost::normalize_guid_prefix() */ static function normalize_guid ($guid) { $guid = trim($guid); @@ -596,6 +616,23 @@ class SyndicatedPost { $guid = SyndicatedPost::normalize_guid_prefix().md5($guid); endif; $guid = trim($guid); + + return $guid; + } /* SyndicatedPost::normalize_guid() */ + + static function alternative_guid_prefix () { + $url = trailingslashit(home_url(/*path=*/ '', /*scheme=*/ 'https')); + return apply_filters('syndicated_item_guid_normalized_prefix', $url . '?guid='); + } + static function alternative_guid ($guid) { + $guid = trim($guid); + if (preg_match('/^[0-9a-z]{32}$/i', $guid)) : // MD5 + $guid = SyndicatedPost::alternative_guid_prefix().strtolower($guid); + elseif ((strlen(esc_url($guid)) == 0) or (esc_url($guid) != $guid)) : + $guid = SyndicatedPost::alternative_guid_prefix().md5($guid); + endif; + $guid = trim($guid); + return $guid; } /* SyndicatedPost::normalize_guid() */ @@ -1417,7 +1454,7 @@ class SyndicatedPost { return $this->_wp_id; } - function store () { + public function store () { global $wpdb; if ($this->filtered()) : // This should never happen. @@ -1679,6 +1716,7 @@ class SyndicatedPost { // Go ahead and insert the first post record to // anchor the revision history. + $this->_wp_id = wp_insert_post($sdbpost, /*return wp_error=*/ true); $dbpost['ID'] = $this->_wp_id; diff --git a/wp-content/plugins/feedwordpress/syndicationdataqueries.class.php b/wp-content/plugins/feedwordpress/syndicationdataqueries.class.php index 2588fbdd4053131598f923ff9218580deea03afa..4c8a5086d9d64227600d265fee1f028275f57820 100644 --- a/wp-content/plugins/feedwordpress/syndicationdataqueries.class.php +++ b/wp-content/plugins/feedwordpress/syndicationdataqueries.class.php @@ -15,7 +15,7 @@ class SyndicationDataQueries { $wp->add_query_var('guid'); } - function parse_query (&$q) { + function parse_query ($q) { if ($q->get('guid')) : $q->is_single = false; // Causes nasty side-effects. $q->is_singular = true; // Doesn't? @@ -27,18 +27,18 @@ class SyndicationDataQueries { endif; } /* SyndicationDataQueries::parse_query () */ - function pre_get_posts (&$q) { + function pre_get_posts ($q) { // } - function posts_request ($sql, &$query) { + function posts_request ($sql, $query) { if ($query->get('fields') == '_synfresh') : FeedWordPress::diagnostic('feed_items:freshness:sql', "SQL: ".$sql); endif; return $sql; } - function posts_search ($search, &$query) { + function posts_search ($search, $query) { global $wpdb; if ($guid = $query->get('guid')) : if (strlen(trim($guid)) > 0) : @@ -47,6 +47,7 @@ class SyndicationDataQueries { // MD5 hashes if (preg_match('/^[0-9a-f]{32}$/i', $guid)) : $seek[] = SyndicatedPost::normalize_guid_prefix().$guid; + $seek[] = SyndicatedPost::alternative_guid_prefix().$guid; endif; // Invalid URIs, URIs that WordPress just doesn't like, and URIs @@ -54,8 +55,9 @@ class SyndicationDataQueries { $nGuid = SyndicatedPost::normalize_guid($guid); if ($guid != $nGuid) : $seek[] = $nGuid; + $seek[] = SyndicatedPost::alternative_guid($guid); endif; - + // Escape to prevent frak-ups, injections, etc. $seek = array_map('esc_sql', $seek); @@ -75,7 +77,7 @@ class SyndicationDataQueries { return $search; } /* SyndicationDataQueries::posts_search () */ - function posts_where ($where, &$q) { + function posts_where ($where, $q) { global $wpdb; // Ugly hack to ensure we ONLY check by guid in syndicated freshness @@ -92,7 +94,7 @@ class SyndicationDataQueries { return $where; } /* SyndicationDataQueries::post_where () */ - function posts_fields ($fields, &$query) { + function posts_fields ($fields, $query) { global $wpdb; if ($f = $query->get('fields')) : switch ($f) : diff --git a/wp-content/plugins/nextgen-gallery/changelog.txt b/wp-content/plugins/nextgen-gallery/changelog.txt index 79c2691f243bcc3f9a39611711c5e97531f71804..e0f7ee9ca0d35807936e545c3357c5bf168f01ee 100644 --- a/wp-content/plugins/nextgen-gallery/changelog.txt +++ b/wp-content/plugins/nextgen-gallery/changelog.txt @@ -1,6 +1,10 @@ NextGEN Gallery by Imagely += V2.2.14 - 09.18.2017 = +* NEW: EXIF and IPTC metadata are copied to new images when generating thumbnails, watermarks, or new sizes +* Fixed: Metadata is read and preserved when "Resized images after upload" feature is enabled + = V2.2.12 - 08.01.2017 = * Secured: Disabled Flash backend in plupload * Changed: Upgraded PHP-Parser version used when building plugin zips diff --git a/wp-content/plugins/nextgen-gallery/nggallery.php b/wp-content/plugins/nextgen-gallery/nggallery.php index a00878365fc52e9eadfa5a24f76fed854fb2de44..860855783aba153b9301244b5799e1daf69b131f 100644 --- a/wp-content/plugins/nextgen-gallery/nggallery.php +++ b/wp-content/plugins/nextgen-gallery/nggallery.php @@ -4,7 +4,7 @@ if(preg_match('#' . basename(__FILE__) . '#', $_SERVER['PHP_SELF'])) { die('You /** * Plugin Name: NextGEN Gallery * Description: The most popular gallery plugin for WordPress and one of the most popular plugins of all time with over 18 million downloads. - * Version: 2.2.12 + * Version: 2.2.14 * Author: Imagely * Plugin URI: https://www.imagely.com/wordpress-gallery-plugin/nextgen-gallery/ * Author URI: https://www.imagely.com @@ -644,7 +644,7 @@ class C_NextGEN_Bootstrap define('NGG_PRODUCT_URL', path_join(str_replace("\\", '/', NGG_PLUGIN_URL), 'products')); define('NGG_MODULE_URL', path_join(str_replace("\\", '/', NGG_PRODUCT_URL), 'photocrati_nextgen/modules')); define('NGG_PLUGIN_STARTED_AT', microtime()); - define('NGG_PLUGIN_VERSION', '2.2.12'); + define('NGG_PLUGIN_VERSION', '2.2.14'); if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG) define('NGG_SCRIPT_VERSION', (string)mt_rand(0, mt_getrandmax())); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php index 03cbc7f05facbf2cf1d87cf7e2c5e8bd2ef6c721..8c0f3f74b9811ffc3b56ffb22b64b6bfd651afb5 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_album/package.module.nextgen_basic_album.php @@ -884,11 +884,7 @@ class A_NextGen_Basic_Extended_Album_Form extends Mixin_NextGen_Basic_Album_Form */ function enqueue_static_resources() { - wp_enqueue_script('nextgen_basic_extended_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#extended_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); - $atp = C_Attach_Controller::get_instance(); - if ($atp != null) { - $atp->mark_script('nextgen_basic_extended_albums_settings_script'); - } + $this->object->enqueue_script('nextgen_basic_extended_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#extended_settings.js'), array('jquery.nextgen_radio_toggle')); } } /** @@ -916,10 +912,6 @@ class A_NextGen_Basic_Compact_Album_Form extends Mixin_NextGen_Basic_Album_Form */ function enqueue_static_resources() { - wp_enqueue_script('nextgen_basic_compact_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#compact_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); - $atp = C_Attach_Controller::get_instance(); - if ($atp != null) { - $atp->mark_script('nextgen_basic_compact_albums_settings_script'); - } + $this->object->enqueue_script('nextgen_basic_compact_albums_settings_script', $this->object->get_static_url('photocrati-nextgen_basic_album#compact_settings.js'), array('jquery.nextgen_radio_toggle')); } } \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php index 867e62565069a0560663c5d5c04fafa5e8e49a29..d133e8a0811a853f477b68b4052bc7edf1b3bc40 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_gallery/package.module.nextgen_basic_gallery.php @@ -295,11 +295,7 @@ class A_NextGen_Basic_Slideshow_Form extends Mixin_Display_Type_Form } function enqueue_static_resources() { - wp_enqueue_script('nextgen_basic_slideshow_settings-js', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); - $atp = C_Attach_Controller::get_instance(); - if ($atp != null) { - $atp->mark_script('nextgen_basic_slideshow_settings-js'); - } + $this->object->enqueue_script('nextgen_basic_slideshow_settings-js', $this->get_static_url('photocrati-nextgen_basic_gallery#slideshow/nextgen_basic_slideshow_settings.js'), array('jquery.nextgen_radio_toggle')); } /** * Returns a list of fields to render on the settings page @@ -357,12 +353,8 @@ class A_NextGen_Basic_Thumbnail_Form extends Mixin_Display_Type_Form */ function enqueue_static_resources() { - wp_enqueue_style('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.css'), FALSE, NGG_SCRIPT_VERSION); - wp_enqueue_script('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.js'), array('jquery.nextgen_radio_toggle'), NGG_SCRIPT_VERSION); - $atp = C_Attach_Controller::get_instance(); - if ($atp != null) { - $atp->mark_script('nextgen_basic_thumbnails_settings'); - } + $this->object->enqueue_style('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.css')); + $this->object->enqueue_script('nextgen_basic_thumbnails_settings', $this->object->get_static_url('photocrati-nextgen_basic_gallery#thumbnails/nextgen_basic_thumbnails_settings.js'), array('jquery.nextgen_radio_toggle')); } /** * Returns a list of fields to render on the settings page diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php index b65a2acefc148d5b5ed200c3c1523aa684ad4788..2274d48a156b7daee8d1a0a5b7e3d80cd678d778 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_tagcloud/package.module.nextgen_basic_tagcloud.php @@ -89,12 +89,7 @@ class A_NextGen_Basic_Tagcloud_Form extends Mixin_Display_Type_Form } function enqueue_static_resources() { - $path = 'photocrati-nextgen_basic_tagcloud#settings.css'; - wp_enqueue_style('nextgen_basic_tagcloud_settings-css', $this->get_static_url($path), FALSE, NGG_SCRIPT_VERSION); - $atp = C_Attach_Controller::get_instance(); - if (!is_null($atp)) { - $atp->mark_script($path); - } + $this->object->enqueue_style('nextgen_basic_tagcloud_settings-css', $this->get_static_url('photocrati-nextgen_basic_tagcloud#settings.css')); } function _render_nextgen_basic_tagcloud_number_field($display_type) { diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php index 3681a40fbaaf653cfda6f953c6894b66690d2e90..8253aa89fc6d143170dd5b7f3f3ce94ae150942a 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_basic_templates/package.module.nextgen_basic_templates.php @@ -168,13 +168,9 @@ class A_NextGen_Basic_Template_Form extends Mixin } function enqueue_static_resources() { - wp_enqueue_style('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.css'), FALSE, NGG_SCRIPT_VERSION); - wp_enqueue_script('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.js'), array('ngg_select2'), NGG_SCRIPT_VERSION, TRUE); + wp_enqueue_style('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.css')); + wp_enqueue_script('ngg_template_settings', $this->get_static_url('photocrati-nextgen_basic_templates#ngg_template_settings.js'), array('ngg_select2'), TRUE); wp_localize_script('ngg_template_settings', 'ngg_template_settings', array('placeholder_text' => __('No template selected'))); - $atp = C_Attach_Controller::get_instance(); - if ($atp != null) { - $atp->mark_script('ngg_template_settings'); - } } } /** diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php index b2ec5fdf788ed2422edcad12f974fbb2e57e0a58..759e4db8c8dbc14fef0b65bb1345002975cec6d4 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/module.nextgen_data.php @@ -50,6 +50,7 @@ class M_NextGen_Data extends C_Base_Module function get_type_list() { return array( + 'C_Exif_Writer_Wrapper' => 'class.exif_writer_wrapper.php', 'A_Attachment_Datamapper' => 'adapter.attachment_datamapper.php', 'A_Customtable_Sorting_Datamapper' => 'adapter.customtable_sorting_datamapper.php', 'A_Nextgen_Data_Factory' => 'adapter.nextgen_data_factory.php', diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php index 7da82ca64fb5ef02a3b239d1bcd27023e992c4e6..b5e8b8a0d609e4b752d6d1402875a3dd03d02383 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/package.module.nextgen_data.php @@ -235,6 +235,19 @@ class Mixin_Album_Mapper extends Mixin } } } +class C_Exif_Writer_Wrapper +{ + // Because our C_Exif_Writer class relies on PEL (a library which uses namespaces) we wrap + // its use through this method which performs a PHP version check before loading the class file + public static function copy_metadata($old_file, $new_file) + { + if (version_compare(phpversion(), '5.3.0', '<')) { + return; + } + require_once __DIR__ . DIRECTORY_SEPARATOR . 'pel-0.9.6' . DIRECTORY_SEPARATOR . 'class.exif_writer.php'; + C_Exif_Writer::copy_metadata($old_file, $new_file); + } +} class Mixin_NextGen_Gallery_Validation { /** @@ -1206,46 +1219,51 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin if (!is_writable($upload_dir)) { throw new E_InsufficientWriteAccessException(FALSE, $upload_dir, FALSE); } - // Save the image - if ($image_id = $this->object->_image_mapper->save($image)) { - try { - // Try writing the image - $fp = fopen($abs_filename, 'wb'); - fwrite($fp, $this->maybe_base64_decode($data)); - fclose($fp); - if ($settings->imgBackup) { - $this->object->backup_image($image); - } - if ($settings->imgAutoResize) { - $this->object->generate_image_clone($abs_filename, $abs_filename, $this->object->get_image_size_params($image_id, 'full')); - } - // Ensure that fullsize dimensions are added to metadata array - $dimensions = getimagesize($abs_filename); - $full_meta = array('width' => $dimensions[0], 'height' => $dimensions[1], 'md5' => $this->object->get_image_checksum($image, 'full')); - if (!isset($image->meta_data) or is_string($image->meta_data) && strlen($image->meta_data) == 0) { - $image->meta_data = array(); - } - $image->meta_data = array_merge($image->meta_data, $full_meta); - $image->meta_data['full'] = $full_meta; - // Generate a thumbnail for the image - $this->object->generate_thumbnail($image); - // Set gallery preview image if missing - C_Gallery_Mapper::get_instance()->set_preview_image($gallery, $image_id, TRUE); - // Notify other plugins that an image has been added - do_action('ngg_added_new_image', $image); - // delete dirsize after adding new images - delete_transient('dirsize_cache'); - // Seems redundant to above hook. Maintaining for legacy purposes - do_action('ngg_after_new_images_added', $gallery_id, array($image->{$image_key})); - } catch (E_No_Image_Library_Exception $ex) { - throw $ex; - } catch (E_Clean_Exit $ex) { - // pass - } catch (Exception $ex) { - throw new E_InsufficientWriteAccessException(FALSE, $abs_filename, FALSE, $ex); + try { + // Try writing the image + $fp = fopen($abs_filename, 'wb'); + fwrite($fp, $this->maybe_base64_decode($data)); + fclose($fp); + // Save the image + $image_id = $this->object->_image_mapper->save($image); + if (!$image_id) { + throw new E_InvalidEntityException(); } - } else { - throw new E_InvalidEntityException(); + if ($settings->imgBackup) { + $this->object->backup_image($image); + } + if ($settings->imgAutoResize) { + $this->object->generate_image_clone($abs_filename, $abs_filename, $this->object->get_image_size_params($image_id, 'full')); + } + $this->object->_image_mapper->_use_cache = FALSE; + $image = $this->object->_image_mapper->find($image_id); + $this->object->_image_mapper->_use_cache = TRUE; + // Ensure that fullsize dimensions are added to metadata array + $dimensions = getimagesize($abs_filename); + $full_meta = array('width' => $dimensions[0], 'height' => $dimensions[1], 'md5' => $this->object->get_image_checksum($image, 'full')); + if (!isset($image->meta_data) or is_string($image->meta_data) && strlen($image->meta_data) == 0) { + $image->meta_data = array(); + } + $image->meta_data = array_merge($image->meta_data, $full_meta); + $image->meta_data['full'] = $full_meta; + // Don't forget to append the 'full' entry in meta_data in the db + $this->object->_image_mapper->save($image); + // Generate a thumbnail for the image + $this->object->generate_thumbnail($image); + // Set gallery preview image if missing + C_Gallery_Mapper::get_instance()->set_preview_image($gallery, $image_id, TRUE); + // Notify other plugins that an image has been added + do_action('ngg_added_new_image', $image); + // delete dirsize after adding new images + delete_transient('dirsize_cache'); + // Seems redundant to above hook. Maintaining for legacy purposes + do_action('ngg_after_new_images_added', $gallery_id, array($image->{$image_key})); + } catch (E_No_Image_Library_Exception $ex) { + throw $ex; + } catch (E_Clean_Exit $ex) { + // pass + } catch (Exception $ex) { + throw new E_InsufficientWriteAccessException(FALSE, $abs_filename, FALSE, $ex); } } else { throw new E_EntityNotFoundException(); @@ -1643,6 +1661,7 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin * @param string $image_path * @param string $clone_path * @param array $params + * @param bool $save Whether to call the image save() method * @return object */ function generate_image_clone($image_path, $clone_path, $params) @@ -1777,13 +1796,7 @@ class Mixin_GalleryStorage_Driver_Base extends Mixin } $thumbnail = apply_filters('ngg_before_save_thumbnail', $thumbnail); $thumbnail->save($destpath, $quality); - // IF the original contained IPTC metadata we should attempt to copy it - if (isset($detailed_size['APP13']) && function_exists('iptcembed')) { - $metadata = @iptcembed($detailed_size['APP13'], $destpath); - $fp = @fopen($destpath, 'wb'); - @fwrite($fp, $metadata); - @fclose($fp); - } + C_Exif_Writer_Wrapper::copy_metadata($image_path, $destpath); } } return $thumbnail; @@ -1958,7 +1971,7 @@ class Mixin_Gallery_Image_Mapper extends Mixin function _save_entity($entity) { $entity->updated_at = time(); - // If successfully saved, then import metadata and + // If successfully saved then import metadata $retval = $this->call_parent('_save_entity', $entity); if ($retval) { include_once NGGALLERY_ABSPATH . '/admin/functions.php'; diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/AUTHORS b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/AUTHORS new file mode 100644 index 0000000000000000000000000000000000000000..1b3b349c3f24587e8285adb14968c39311817d02 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/AUTHORS @@ -0,0 +1,53 @@ +AUTHORS file for PEL: PHP Exif Library. A library with support for +reading and writing Exif headers in JPEG and TIFF images using PHP. + +Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. +Copyright (c) 2008, 2009 Lars Olesen +Copyright (c) 2015 Johannes Weberhofer +Licensed under the GNU GPL, see COPYING for details. + + +Credits +******* + +PEL is written by Martin Geisler <mgeisler@users.sourceforge.net> and +is now maintained by Lars Olesen <lars@intraface.dk> +and <jweberhofer@weberhofer.at> + +The source started out as a port of the nice, clean C code found in +libexif. Most of the translations included with PEL also originates +from the libexif project, see below for details. + + +Test Image Contributors +*********************** + +Bernhard Bittel: Nikon E950 and E5000 test images. + +Stéphanie Bittel: Canon IXUS II test image. + +Lars Geisler: Nikon Coolscan IV ED test image. + +Mikkel Krøigård: Canon PowerShot S60 test image. + +Paul Mitchum: Pentax *ist DS and Olympus C-5050z test images. + +Lisbeth Nygaard Pedersen: Leica D-LUX test image. + +Thomas B. Pedersen: Olympus C-50z and C-765z test images. + + +Translators +*********** + +Danish: Martin Geisler. + +French: Arnaud Launay (for libexif) and David Lesieur. + +German: Hans Ulrich Niedermann, Lutz Möller (for libexif). + +Japanese: Tadashi Jokagi. + +Polish: Jakub Bogusz (for libexif). + +Spanish: Fabian Mandelbaum (for libexif). diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/COPYING b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/COPYING new file mode 100644 index 0000000000000000000000000000000000000000..3912109b5cd65a68039d473c11c9f7ac2303e06d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/autoload.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/autoload.php new file mode 100644 index 0000000000000000000000000000000000000000..f86d0adbb173103de349de8dfa1688e75dac9bcb --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/autoload.php @@ -0,0 +1,36 @@ +<?php +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2015, Johannes Weberhofer. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +/** + * Register autoloader for pel + */ +spl_autoload_register(function ($class) { + if (substr_compare($class, 'lsolesen\\pel\\', 0, 13) === 0) { + $classname = str_replace('lsolesen\\pel\\', '', $class); + $load = realpath(__DIR__ . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . $classname . '.php'); + if ($load !== false) { + include_once realpath($load); + } + } +}); diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/class.exif_writer.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/class.exif_writer.php new file mode 100644 index 0000000000000000000000000000000000000000..e249d606dfe75686a60f33011dc4c58b3b25a033 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/class.exif_writer.php @@ -0,0 +1,106 @@ +<?php + +// This file resides in the PEL directory so that it is not processed during the NextGen +// build process as the NGG package files cannot contain PHP 5.3+ code yet. See the +// C_Exif_Writer_Wrapper class which loads this file outside of the POPE module system. + +require_once('autoload.php'); + +use lsolesen\pel\PelDataWindow; +use lsolesen\pel\PelJpeg; +use lsolesen\pel\PelTiff; +use lsolesen\pel\PelExif; +use lsolesen\pel\PelIfd; + +class C_Exif_Writer +{ + static public function copy_metadata($old_file, $new_file) + { + $data = new PelDataWindow(@file_get_contents($old_file)); + $exif = new PelExif(); + + if (PelJpeg::isValid($data)) + { + $jpeg = $file = new PelJpeg(); + $jpeg->load($data); + $exif = $jpeg->getExif(); + + if ($exif === NULL) + { + $exif = new PelExif(); + $jpeg->setExif($exif); + + $tiff = new PelTiff(); + $exif->setTiff($tiff); + } + else { + $tiff = $exif->getTiff(); + } + + } + elseif (PelTiff::isValid($data)) { + $tiff = $file = new PellTiff(); + $tiff->load($data); + } + else { + return; + } + + $ifd0 = $tiff->getIfd(); + if ($ifd0 === NULL) + { + $ifd0 = new PelIfd(PelIfd::IFD0); + $tiff->setIfd($ifd0); + } + + // Copy EXIF data to the new image and write it + $new_image = new PelJpeg($new_file); + $tiff->setIfd($ifd0); + $exif->setTiff($tiff); + $new_image->setExif($exif); + $new_image->saveFile($new_file); + + // IF the original contained IPTC metadata we should copy it + getimagesize($old_file, $iptc); + if (isset($iptc['APP13']) && function_exists('iptcembed')) + { + $parsed = iptcparse($iptc['APP13']); + $newiptc = ''; + foreach ($parsed as $key => $value) { + $tag = str_replace("2#", '', $key); + $newiptc .= self::build_iptc_tag($tag, $value[0]); + } + + $metadata = iptcembed($newiptc, $new_file); + $fp = fopen($new_file, 'wb'); + fwrite($fp, $metadata); + fclose($fp); + } + } + + public static function build_iptc_tag($tag, $value) + { + $length = strlen($value); + if ($length >= 0x8000) + { + return chr(0x1c) + . chr(2) + . chr($tag) + . chr(0x80) + . chr(0x04) + . chr(($length >> 24) & 0xff) + . chr(($length >> 16) & 0xff) + . chr(($length >> 8 ) & 0xff) + . chr(($length ) & 0xff) + . $value; + } + else { + return chr(0x1c) + . chr(2) + . chr($tag) + . chr($length >> 8) + . chr($length & 0xff) + . $value; + } + } +} \ No newline at end of file diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/Pel.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/Pel.php new file mode 100644 index 0000000000000000000000000000000000000000..6de2489e3a020d83a4d5e9f8d3d5abc76b2fd72c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/Pel.php @@ -0,0 +1,365 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Class with miscellaneous static methods. + * + * This class will contain various methods that govern the overall + * behavior of PEL. + * + * Debugging output from PEL can be turned on and off by assigning + * true or false to {@link Pel::$debug}. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class Pel +{ + + /** + * Flag that controls if dgettext can be used. + * Is set to true or fals at the first access + * + * @var boolean|NULL + */ + private static $hasdgetext = null; + + /** + * Flag for controlling debug information. + * + * The methods producing debug information ({@link debug()} and + * {@link warning()}) will only output something if this variable is + * set to true. + * + * @var boolean + */ + private static $debug = false; + + /** + * Flag for strictness of parsing. + * + * If this variable is set to true, then most errors while loading + * images will result in exceptions being thrown. Otherwise a + * warning will be emitted (using {@link Pel::warning}) and the + * exceptions will be appended to {@link Pel::$exceptions}. + * + * Some errors will still be fatal and result in thrown exceptions, + * but an effort will be made to skip over as much garbage as + * possible. + * + * @var boolean + */ + private static $strict = false; + + /** + * Stored exceptions. + * + * When {@link Pel::$strict} is set to false exceptions will be + * accumulated here instead of being thrown. + */ + private static $exceptions = array(); + + /** + * Quality setting for encoding JPEG images. + * + * This controls the quality used then PHP image resources are + * encoded into JPEG images. This happens when you create a + * {@link PelJpeg} object based on an image resource. + * + * The default is 75 for average quality images, but you can change + * this to an integer between 0 and 100. + * + * @var int + */ + private static $quality = 75; + + /** + * Set the JPEG encoding quality. + * + * @param int $quality + * an integer between 0 and 100 with 75 being + * average quality and 95 very good quality. + */ + public static function setJPEGQuality($quality) + { + self::$quality = $quality; + } + + /** + * Get current setting for JPEG encoding quality. + * + * @return int the quality. + */ + public static function getJPEGQuality() + { + return self::$quality; + } + + /** + * Return list of stored exceptions. + * + * When PEL is parsing in non-strict mode, it will store most + * exceptions instead of throwing them. Use this method to get hold + * of them when a call returns. + * + * Code for using this could look like this: + * + * <code> + * Pel::setStrictParsing(true); + * Pel::clearExceptions(); + * + * $jpeg = new PelJpeg($file); + * + * // Check for exceptions. + * foreach (Pel::getExceptions() as $e) { + * printf("Exception: %s\n", $e->getMessage()); + * if ($e instanceof PelEntryException) { + * // Warn about entries that couldn't be loaded. + * printf("Warning: Problem with %s.\n", + * PelTag::getName($e->getType(), $e->getTag())); + * } + * } + * </code> + * + * This gives applications total control over the amount of error + * messages shown and (hopefully) provides the necessary information + * for proper error recovery. + * + * @return array the exceptions. + */ + public static function getExceptions() + { + return self::$exceptions; + } + + /** + * Clear list of stored exceptions. + * + * Use this function before a call to some method if you intend to + * check for exceptions afterwards. + */ + public static function clearExceptions() + { + self::$exceptions = array(); + } + + /** + * Conditionally throw an exception. + * + * This method will throw the passed exception when strict parsing + * in effect (see {@link setStrictParsing()}). Otherwise the + * exception is stored (it can be accessed with {@link + * getExceptions()}) and a warning is issued (with {@link + * Pel::warning}). + * + * @param PelException $e + * the exceptions. + */ + public static function maybeThrow(PelException $e) + { + if (self::$strict) { + throw $e; + } else { + self::$exceptions[] = $e; + self::warning('%s (%s:%s)', $e->getMessage(), basename($e->getFile()), $e->getLine()); + } + } + + /** + * Enable/disable strict parsing. + * + * If strict parsing is enabled, then most errors while loading + * images will result in exceptions being thrown. Otherwise a + * warning will be emitted (using {@link Pel::warning}) and the + * exceptions will be stored for later use via {@link + * getExceptions()}. + * + * Some errors will still be fatal and result in thrown exceptions, + * but an effort will be made to skip over as much garbage as + * possible. + * + * @param boolean $flag + * use true to enable strict parsing, false to + * diable. + */ + public static function setStrictParsing($flag) + { + self::$strict = $flag; + } + + /** + * Get current setting for strict parsing. + * + * @return boolean true if strict parsing is in effect, false + * otherwise. + */ + public static function getStrictParsing() + { + return self::$strict; + } + + /** + * Enable/disable debugging output. + * + * @param boolean $flag + * use true to enable debug output, false to + * diable. + */ + public static function setDebug($flag) + { + self::$debug = $flag; + } + + /** + * Get current setting for debug output. + * + * @return boolean true if debug is enabled, false otherwise. + */ + public static function getDebug() + { + return self::$debug; + } + + /** + * Conditionally output debug information. + * + * This method works just like printf() except that it always + * terminates the output with a newline, and that it only outputs + * something if the {@link Pel::$debug} is true. + * + * @param string $format + * the format string. + * + * @param mixed ...$args + * any number of arguments can be given. The + * arguments will be available for the format string as usual with + * sprintf(). + */ + public static function debug($format) + { + if (self::$debug) { + $args = func_get_args(); + $str = array_shift($args); + vprintf($str . "\n", $args); + } + } + + /** + * Conditionally output a warning. + * + * This method works just like printf() except that it prepends the + * output with the string 'Warning: ', terminates the output with a + * newline, and that it only outputs something if the PEL_DEBUG + * defined to some true value. + * + * @param string $format + * the format string. + * + * @param mixed ...$args + * any number of arguments can be given. The + * arguments will be available for the format string as usual with + * sprintf(). + */ + public static function warning($format) + { + if (self::$debug) { + $args = func_get_args(); + $str = array_shift($args); + vprintf('Warning: ' . $str . "\n", $args); + } + } + + /** + * Translate a string. + * + * This static function will use Gettext to translate a string. By + * always using this function for static string one is assured that + * the translation will be taken from the correct text domain. + * Dynamic strings should be passed to {@link fmt} instead. + * + * @param string $str + * the string that should be translated. + * + * @return string the translated string, or the original string if + * no translation could be found. + */ + public static function tra($str) + { + return self::dgettextWrapper('pel', $str); + } + + /** + * Translate and format a string. + * + * This static function will first use Gettext to translate a format + * string, which will then have access to any extra arguments. By + * always using this function for dynamic string one is assured that + * the translation will be taken from the correct text domain. If + * the string is static, use {@link tra} instead as it will be + * faster. + * + * @param string $format + * the format string. This will be translated + * before being used as a format string. + * + * @param mixed ...$args + * any number of arguments can be given. The + * arguments will be available for the format string as usual with + * sprintf(). + * + * @return string the translated string, or the original string if + * no translation could be found. + */ + public static function fmt($format) + { + $args = func_get_args(); + $str = array_shift($args); + return vsprintf(self::dgettextWrapper('pel', $str), $args); + } + + /** + * Warapper for dgettext. + * The untranslated stub will be return in the case that dgettext is not available. + * + * @param string $domain + * @param string $str + * @return string + */ + private static function dgettextWrapper($domain, $str) + { + if (self::$hasdgetext === null) { + self::$hasdgetext = function_exists('dgettext'); + if (self::$hasdgetext === true) { + bindtextdomain('pel', __DIR__ . '/locale'); + } + } + if (self::$hasdgetext) { + return dgettext($domain, $str); + } else { + return $str; + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelConvert.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelConvert.php new file mode 100644 index 0000000000000000000000000000000000000000..474c48a61273c69e3701cbe1f8536e2f0cc9c3a5 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelConvert.php @@ -0,0 +1,418 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Routines for converting back and forth between bytes and integers. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Conversion functions to and from bytes and integers. + * + * The functions found in this class are used to convert bytes into + * integers of several sizes ({@link bytesToShort}, {@link + * bytesToLong}, and {@link bytesToRational}) and convert integers of + * several sizes into bytes ({@link shortToBytes} and {@link + * longToBytes}). + * + * All the methods are static and they all rely on an argument that + * specifies the byte order to be used, this must be one of the class + * constants {@link LITTLE_ENDIAN} or {@link BIG_ENDIAN}. These + * constants will be referred to as the pseudo type PelByteOrder + * throughout the documentation. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelConvert +{ + + /** + * Little-endian (Intel) byte order. + * + * Data stored in little-endian byte order store the least + * significant byte first, so the number 0x12345678 becomes 0x78 + * 0x56 0x34 0x12 when stored with little-endian byte order. + */ + const LITTLE_ENDIAN = true; + + /** + * Big-endian (Motorola) byte order. + * + * Data stored in big-endian byte order store the most significant + * byte first, so the number 0x12345678 becomes 0x12 0x34 0x56 0x78 + * when stored with big-endian byte order. + */ + const BIG_ENDIAN = false; + + /** + * Convert an unsigned short into two bytes. + * + * @param integer $value + * the unsigned short that will be converted. The lower + * two bytes will be extracted regardless of the actual size passed. + * + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * + * @return string the bytes representing the unsigned short. + */ + public static function shortToBytes($value, $endian) + { + if ($endian == self::LITTLE_ENDIAN) { + return chr($value) . chr($value >> 8); + } else { + return chr($value >> 8) . chr($value); + } + } + + /** + * Convert a signed short into two bytes. + * + * @param integer $value + * the signed short that will be converted. The lower + * two bytes will be extracted regardless of the actual size passed. + * + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * + * @return string the bytes representing the signed short. + */ + public static function sShortToBytes($value, $endian) + { + /* + * We can just use shortToBytes, since signed shorts fits well + * within the 32 bit signed integers used in PHP. + */ + return self::shortToBytes($value, $endian); + } + + /** + * Convert an unsigned long into four bytes. + * + * Because PHP limits the size of integers to 32 bit signed, one + * cannot really have an unsigned integer in PHP. But integers + * larger than 2^31-1 will be promoted to 64 bit signed floating + * point numbers, and so such large numbers can be handled too. + * + * @param integer $value + * the unsigned long that will be converted. The + * argument will be treated as an unsigned 32 bit integer and the + * lower four bytes will be extracted. Treating the argument as an + * unsigned integer means that the absolute value will be used. Use + * {@link sLongToBytes} to convert signed integers. + * + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * + * @return string the bytes representing the unsigned long. + */ + public static function longToBytes($value, $endian) + { + /* + * We cannot convert the number to bytes in the normal way (using + * shifts and modulo calculations) because the PHP operator >> and + * function chr() clip their arguments to 2^31-1, which is the + * largest signed integer known to PHP. But luckily base_convert + * handles such big numbers. + */ + $hex = str_pad(base_convert($value, 10, 16), 8, '0', STR_PAD_LEFT); + if ($endian == self::LITTLE_ENDIAN) { + return (chr(hexdec($hex{6} . $hex{7})) . chr(hexdec($hex{4} . $hex{5})) . chr(hexdec($hex{2} . $hex{3})) . + chr(hexdec($hex{0} . $hex{1}))); + } else { + return (chr(hexdec($hex{0} . $hex{1})) . chr(hexdec($hex{2} . $hex{3})) . chr(hexdec($hex{4} . $hex{5})) . + chr(hexdec($hex{6} . $hex{7}))); + } + } + + /** + * Convert a signed long into four bytes. + * + * @param integer $value + * the signed long that will be converted. The argument + * will be treated as a signed 32 bit integer, from which the lower + * four bytes will be extracted. + * + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * + * @return string the bytes representing the signed long. + */ + public static function sLongToBytes($value, $endian) + { + /* + * We can convert the number into bytes in the normal way using + * shifts and modulo calculations here (in contrast with + * longToBytes) because PHP automatically handles 32 bit signed + * integers for us. + */ + if ($endian == self::LITTLE_ENDIAN) { + return (chr($value) . chr($value >> 8) . chr($value >> 16) . chr($value >> 24)); + } else { + return (chr($value >> 24) . chr($value >> 16) . chr($value >> 8) . chr($value)); + } + } + + /** + * Extract an unsigned byte from a string of bytes. + * + * @param string $bytes + * the bytes. + * + * @param integer $offset + * The byte found at the offset will be + * returned as an integer. The must be at least one byte available + * at offset. + * + * @return integer $offset the unsigned byte found at offset, e.g., an integer + * in the range 0 to 255. + */ + public static function bytesToByte($bytes, $offset) + { + return ord($bytes{$offset}); + } + + /** + * Extract a signed byte from bytes. + * + * @param string $bytes + * the bytes. + * + * @param integer $offset + * the offset. The byte found at the offset will be + * returned as an integer. The must be at least one byte available + * at offset. + * + * @return integer the signed byte found at offset, e.g., an integer in + * the range -128 to 127. + */ + public static function bytesToSByte($bytes, $offset) + { + $n = self::bytesToByte($bytes, $offset); + if ($n > 127) { + return $n - 256; + } else { + return $n; + } + } + + /** + * Extract an unsigned short from bytes. + * + * @param string $bytes + * the bytes. + * + * @param integer $offset + * the offset. The short found at the offset will be + * returned as an integer. There must be at least two bytes + * available beginning at the offset given. + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * @return integer the unsigned short found at offset, e.g., an integer + * in the range 0 to 65535. + * + */ + public static function bytesToShort($bytes, $offset, $endian) + { + if ($endian == self::LITTLE_ENDIAN) { + return (ord($bytes{$offset + 1}) * 256 + ord($bytes{$offset})); + } else { + return (ord($bytes{$offset}) * 256 + ord($bytes{$offset + 1})); + } + } + + /** + * Extract a signed short from bytes. + * + * @param string $bytes + * + * @param integer $offset + * The short found at offset will be returned + * as an integer. There must be at least two bytes available + * beginning at the offset given. + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * @return integer the signed byte found at offset, e.g., an integer in + * the range -32768 to 32767. + * + */ + public static function bytesToSShort($bytes, $offset, $endian) + { + $n = self::bytesToShort($bytes, $offset, $endian); + if ($n > 32767) { + return $n - 65536; + } else { + return $n; + } + } + + /** + * Extract an unsigned long from bytes. + * + * @param string $bytes + * + * @param integer $offset + * The long found at offset will be returned + * as an integer. There must be at least four bytes available + * beginning at the offset given. + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * @return integer the unsigned long found at offset, e.g., an integer + * in the range 0 to 4294967295. + * + */ + public static function bytesToLong($bytes, $offset, $endian) + { + if ($endian == self::LITTLE_ENDIAN) { + return (ord($bytes{$offset + 3}) * 16777216 + ord($bytes{$offset + 2}) * 65536 + + ord($bytes{$offset + 1}) * 256 + ord($bytes{$offset})); + } else { + return (ord($bytes{$offset}) * 16777216 + ord($bytes{$offset + 1}) * 65536 + ord($bytes{$offset + 2}) * 256 + + ord($bytes{$offset + 3})); + } + } + + /** + * Extract a signed long from bytes. + * + * @param string $bytes + * + * @param integer $offset + * The long found at offset will be returned + * as an integer. There must be at least four bytes available + * beginning at the offset given. + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. * + * @return integer the signed long found at offset, e.g., an integer in + * the range -2147483648 to 2147483647. + * + */ + public static function bytesToSLong($bytes, $offset, $endian) + { + $n = self::bytesToLong($bytes, $offset, $endian); + if ($n > 2147483647) { + return $n - 4294967296; + } else { + return $n; + } + } + + /** + * Extract an unsigned rational from bytes. + * + * @param string $bytes + * + * @param integer $offset + * The rational found at offset will be + * returned as an array. There must be at least eight bytes + * available beginning at the offset given. + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. * + * @return array the unsigned rational found at offset, e.g., an + * array with two integers in the range 0 to 4294967295. + * + */ + public static function bytesToRational($bytes, $offset, $endian) + { + return array( + self::bytesToLong($bytes, $offset, $endian), + self::bytesToLong($bytes, $offset + 4, $endian) + ); + } + + /** + * Extract a signed rational from bytes. + * + * @param string $bytes + * + * @param integer $offset + * The rational found at offset will be + * returned as an array. There must be at least eight bytes + * available beginning at the offset given. + * @param integer $endian + * one of {@link LITTLE_ENDIAN} and {@link + * BIG_ENDIAN}. + * @return array the signed rational found at offset, e.g., an array + * with two integers in the range -2147483648 to 2147483647. + * + */ + public static function bytesToSRational($bytes, $offset, $endian) + { + return array( + self::bytesToSLong($bytes, $offset, $endian), + self::bytesToSLong($bytes, $offset + 4, $endian) + ); + } + + /** + * Format bytes for dumping. + * + * This method is for debug output, it will format a string as a + * hexadecimal dump suitable for display on a terminal. The output + * is printed directly to standard out. + * + * @param string $bytes + * the bytes that will be dumped. + * + * @param integer $max + * the maximum number of bytes to dump. If this is left + * out (or left to the default of 0), then the entire string will be + * dumped. + * @return void + */ + public static function bytesToDump($bytes, $max = 0) + { + $s = strlen($bytes); + + if ($max > 0) { + $s = min($max, $s); + } + $line = 24; + + for ($i = 0; $i < $s; $i ++) { + printf('%02X ', ord($bytes{$i})); + + if (($i + 1) % $line == 0) { + print("\n"); + } + } + print("\n"); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindow.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindow.php new file mode 100644 index 0000000000000000000000000000000000000000..b1d10e5f3d53d9614c7cae9618040ec64c4568f2 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindow.php @@ -0,0 +1,567 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * The window. + * + * @package PEL + */ +class PelDataWindow +{ + + /** + * The data held by this window. + * + * The string can contain any kind of data, including binary data. + * + * @var string + */ + private $data = ''; + + /** + * The byte order currently in use. + * + * This will be the byte order used when data is read using the for + * example the {@link getShort} function. It must be one of {@link + * PelConvert::LITTLE_ENDIAN} and {@link PelConvert::BIG_ENDIAN}. + * + * @var PelByteOrder + * @see setByteOrder, getByteOrder + */ + private $order; + + /** + * The start of the current window. + * + * All offsets used for access into the data will count from this + * offset, effectively limiting access to a window starting at this + * byte. + * + * @var int + * @see setWindowStart + */ + private $start = 0; + + /** + * The size of the current window. + * + * All offsets used for access into the data will be limited by this + * variable. A valid offset must be strictly less than this + * variable. + * + * @var int + * @see setWindowSize + */ + private $size = 0; + + /** + * Construct a new data window with the data supplied. + * + * @param mixed $data + * the data that this window will contain. This can + * either be given as a string (interpreted litteraly as a sequence + * of bytes) or a PHP image resource handle. The data will be copied + * into the new data window. + * + * @param boolean $endianess + * the initial byte order of the window. This must + * be either {@link PelConvert::LITTLE_ENDIAN} or {@link + * PelConvert::BIG_ENDIAN}. This will be used when integers are + * read from the data, and it can be changed later with {@link + * setByteOrder()}. + */ + public function __construct($data = '', $endianess = PelConvert::LITTLE_ENDIAN) + { + if (is_string($data)) { + $this->data = $data; + } elseif (is_resource($data) && get_resource_type($data) == 'gd') { + /* + * The ImageJpeg() function insists on printing the bytes + * instead of returning them in a more civil way as a string, so + * we have to buffer the output... + */ + ob_start(); + ImageJpeg($data, null, Pel::getJPEGQuality()); + $this->data = ob_get_clean(); + } else { + throw new PelInvalidArgumentException('Bad type for $data: %s', gettype($data)); + } + + $this->order = $endianess; + $this->size = strlen($this->data); + } + + /** + * Get the size of the data window. + * + * @return integer the number of bytes covered by the window. The + * allowed offsets go from 0 up to this number minus one. + * + * @see getBytes() + */ + public function getSize() + { + return $this->size; + } + + /** + * Change the byte order of the data. + * + * @param integer $order + * the new byte order. This must be either + * {@link PelConvert::LITTLE_ENDIAN} or {@link + * PelConvert::BIG_ENDIAN}. + */ + public function setByteOrder($order) + { + $this->order = $order; + } + + /** + * Get the currently used byte order. + * + * @return integer this will be either {@link + * PelConvert::LITTLE_ENDIAN} or {@link PelConvert::BIG_ENDIAN}. + */ + public function getByteOrder() + { + return $this->order; + } + + /** + * Move the start of the window forward. + * + * @param integer $start + * the new start of the window. All new offsets will be + * calculated from this new start offset, and the size of the window + * will shrink to keep the end of the window in place. + */ + public function setWindowStart($start) + { + if ($start < 0 || $start > $this->size) { + throw new PelDataWindowWindowException( + 'Window [%d, %d] does ' . 'not fit in window [0, %d]', + $start, + $this->size, + $this->size); + } + $this->start += $start; + $this->size -= $start; + } + + /** + * Adjust the size of the window. + * The size can only be made smaller. + * + * @param integer $size + * the desired size of the window. If the argument is + * negative, the window will be shrunk by the argument. + */ + public function setWindowSize($size) + { + if ($size < 0) { + $size += $this->size; + } + if ($size < 0 || $size > $this->size) { + throw new PelDataWindowWindowException( + 'Window [0, %d] ' . 'does not fit in window [0, %d]', + $size, + $this->size); + } + $this->size = $size; + } + + /** + * Make a new data window with the same data as the this window. + * + * @param integer|NULL $start + * if an integer is supplied, then it will be the start + * of the window in the clone. If left unspecified, then the clone + * will inherit the start from this object. + * + * @param integer|NULL $size + * if an integer is supplied, then it will be the size + * of the window in the clone. If left unspecified, then the clone + * will inherit the size from this object. + * + * @return PelDataWindow a new window that operates on the same data + * as this window, but (optionally) with a smaller window size. + */ + public function getClone($start = null, $size = null) + { + $c = clone $this; + + if (is_int($start)) { + $c->setWindowStart($start); + } + if (is_int($size)) { + $c->setWindowSize($size); + } + return $c; + } + + /** + * Validate an offset against the current window. + * + * @param integer $offset + * the offset to be validated. If the offset is negative + * or if it is greater than or equal to the current window size, + * then a {@link PelDataWindowOffsetException} is thrown. + * + * @return void if the offset is valid nothing is returned, if it is + * invalid a new {@link PelDataWindowOffsetException} is thrown. + * @throws PelDataWindowOffsetException + */ + private function validateOffset($offset) + { + if ($offset < 0 || $offset >= $this->size) { + throw new PelDataWindowOffsetException('Offset %d not within [%d, %d]', $offset, 0, $this->size - 1); + } + } + + /** + * Return some or all bytes visible in the window. + * + * This method works just like the standard {@link substr()} + * function in PHP with the exception that it works within the + * window of accessible bytes and does strict range checking. + * + * @param integer|NULL $start + * the offset to the first byte returned. If a negative + * number is given, then the counting will be from the end of the + * window. Invalid offsets will result in a {@link + * PelDataWindowOffsetException} being thrown. + * + * @param integer|NUL $size + * the size of the sub-window. If a negative number is + * given, then that many bytes will be omitted from the result. + * + * @return string a subset of the bytes in the window. This will + * always return no more than {@link getSize()} bytes. + * @throws PelDataWindowOffsetException + */ + public function getBytes($start = null, $size = null) + { + if (is_int($start)) { + if ($start < 0) { + $start += $this->size; + } + + $this->validateOffset($start); + } else { + $start = 0; + } + + if (is_int($size)) { + if ($size <= 0) { + $size += $this->size - $start; + } + + $this->validateOffset($start + $size); + } else { + $size = $this->size - $start; + } + + return substr($this->data, $this->start + $start, $size); + } + + /** + * Return an unsigned byte from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first byte in the current allowed window. The last + * valid offset is equal to {@link getSize()}-1. Invalid offsets + * will result in a {@link PelDataWindowOffsetException} being + * thrown. + * + * @return integer the unsigned byte found at offset. + * @throws PelDataWindowOffsetException + */ + public function getByte($offset = 0) + { + /* + * Validate the offset --- this throws an exception if offset is + * out of range. + */ + $this->validateOffset($offset); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Return an unsigned byte. */ + return PelConvert::bytesToByte($this->data, $offset); + } + + /** + * Return a signed byte from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first byte in the current allowed window. The last + * valid offset is equal to {@link getSize()}-1. Invalid offsets + * will result in a {@link PelDataWindowOffsetException} being + * thrown. + * + * @return integer the signed byte found at offset. + * @throws PelDataWindowOffsetException + */ + public function getSByte($offset = 0) + { + /* + * Validate the offset --- this throws an exception if offset is + * out of range. + */ + $this->validateOffset($offset); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Return a signed byte. */ + return PelConvert::bytesToSByte($this->data, $offset); + } + + /** + * Return an unsigned short read from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first short available in the current allowed window. + * The last valid offset is equal to {@link getSize()}-2. Invalid + * offsets will result in a {@link PelDataWindowOffsetException} + * being thrown. + * + * @return integer the unsigned short found at offset. + * @throws PelDataWindowOffsetException + */ + public function getShort($offset = 0) + { + /* + * Validate the offset+1 to see if we can safely get two bytes --- + * this throws an exception if offset is out of range. + */ + $this->validateOffset($offset); + $this->validateOffset($offset + 1); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Return an unsigned short. */ + return PelConvert::bytesToShort($this->data, $offset, $this->order); + } + + /** + * Return a signed short read from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first short available in the current allowed window. + * The last valid offset is equal to {@link getSize()}-2. Invalid + * offsets will result in a {@link PelDataWindowOffsetException} + * being thrown. + * + * @return integer the signed short found at offset. + * @throws PelDataWindowOffsetException + */ + public function getSShort($offset = 0) + { + /* + * Validate the offset+1 to see if we can safely get two bytes --- + * this throws an exception if offset is out of range. + */ + $this->validateOffset($offset); + $this->validateOffset($offset + 1); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Return a signed short. */ + return PelConvert::bytesToSShort($this->data, $offset, $this->order); + } + + /** + * Return an unsigned long read from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first long available in the current allowed window. + * The last valid offset is equal to {@link getSize()}-4. Invalid + * offsets will result in a {@link PelDataWindowOffsetException} + * being thrown. + * + * @return integer the unsigned long found at offset. + * @throws PelDataWindowOffsetException + */ + public function getLong($offset = 0) + { + /* + * Validate the offset+3 to see if we can safely get four bytes + * --- this throws an exception if offset is out of range. + */ + $this->validateOffset($offset); + $this->validateOffset($offset + 3); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Return an unsigned long. */ + return PelConvert::bytesToLong($this->data, $offset, $this->order); + } + + /** + * Return a signed long read from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first long available in the current allowed window. + * The last valid offset is equal to {@link getSize()}-4. Invalid + * offsets will result in a {@link PelDataWindowOffsetException} + * being thrown. + * + * @return integer the signed long found at offset. + * @throws PelDataWindowOffsetException + */ + public function getSLong($offset = 0) + { + /* + * Validate the offset+3 to see if we can safely get four bytes + * --- this throws an exception if offset is out of range. + */ + $this->validateOffset($offset); + $this->validateOffset($offset + 3); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Return a signed long. */ + return PelConvert::bytesToSLong($this->data, $offset, $this->order); + } + + /** + * Return an unsigned rational read from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first rational available in the current allowed + * window. The last valid offset is equal to {@link getSize()}-8. + * Invalid offsets will result in a {@link + * PelDataWindowOffsetException} being thrown. + * + * @return array the unsigned rational found at offset. A rational + * number is represented as an array of two numbers: the enumerator + * and denominator. Both of these numbers will be unsigned longs. + * @throws PelDataWindowOffsetException + */ + public function getRational($offset = 0) + { + return array( + $this->getLong($offset), + $this->getLong($offset + 4) + ); + } + + /** + * Return a signed rational read from the data. + * + * @param integer $offset + * the offset into the data. An offset of zero will + * return the first rational available in the current allowed + * window. The last valid offset is equal to {@link getSize()}-8. + * Invalid offsets will result in a {@link + * PelDataWindowOffsetException} being thrown. + * + * @return array the signed rational found at offset. A rational + * number is represented as an array of two numbers: the enumerator + * and denominator. Both of these numbers will be signed longs. + * @throws PelDataWindowOffsetException + */ + public function getSRational($offset = 0) + { + return array( + $this->getSLong($offset), + $this->getSLong($offset + 4) + ); + } + + /** + * String comparison on substrings. + * + * @param integer $offset + * the offset into the data. An offset of zero will make + * the comparison start with the very first byte available in the + * window. The last valid offset is equal to {@link getSize()} + * minus the length of the string. If the string is too long, then + * a {@link PelDataWindowOffsetException} will be thrown. + * + * @param string $str + * the string to compare with. + * + * @return boolean true if the string given matches the data in the + * window, at the specified offset, false otherwise. The comparison + * will stop as soon as a mismatch if found. + * @throws PelDataWindowOffsetException + */ + public function strcmp($offset, $str) + { + /* + * Validate the offset of the final character we might have to + * check. + */ + $s = strlen($str); + $this->validateOffset($offset); + $this->validateOffset($offset + $s - 1); + + /* Translate the offset into an offset into the data. */ + $offset += $this->start; + + /* Check each character, return as soon as the answer is known. */ + for ($i = 0; $i < $s; $i ++) { + if ($this->data{$offset + $i} != $str{$i}) { + return false; + } + } + + /* All characters matches each other, return true. */ + return true; + } + + /** + * Return a string representation of the data window. + * + * @return string a description of the window with information about + * the number of bytes accessible, the total number of bytes, and + * the window start and stop. + */ + public function __toString() + { + return Pel::fmt( + 'DataWindow: %d bytes in [%d, %d] of %d bytes', + $this->size, + $this->start, + $this->start + $this->size, + strlen($this->data)); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindowOffsetException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindowOffsetException.php new file mode 100644 index 0000000000000000000000000000000000000000..7ec3d8dad40290a47b8a2e9f56dffde35a5e1165 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindowOffsetException.php @@ -0,0 +1,35 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * An exception thrown when an invalid offset is encountered. + * + * @package PEL + * @subpackage Exception + */ +class PelDataWindowOffsetException extends PelException +{ +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindowWindowException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindowWindowException.php new file mode 100644 index 0000000000000000000000000000000000000000..4ad4c6e0e811731c6e644855a5c65e1615a1288b --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelDataWindowWindowException.php @@ -0,0 +1,43 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * A container for bytes with a limited window of accessible bytes. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * @package PEL + */ + +/** + * An exception thrown when an invalid window is encountered. + * + * @package PEL + * @subpackage Exception + */ +class PelDataWindowWindowException extends PelException +{ +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntry.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntry.php new file mode 100644 index 0000000000000000000000000000000000000000..75781bde73c20df01d983bf66dbf713edb2cbf87 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntry.php @@ -0,0 +1,253 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif entries. + * + * This file defines two exception classes and the abstract class + * {@link PelEntry} which provides the basic methods that all Exif + * entries will have. All Exif entries will be represented by + * descendants of the {@link PelEntry} class --- the class itself is + * abstract and so it cannot be instantiated. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Common ancestor class of all {@link PelIfd} entries. + * + * As this class is abstract you cannot instantiate objects from it. + * It only serves as a common ancestor to define the methods common to + * all entries. The most important methods are {@link getValue()} and + * {@link setValue()}, both of which is abstract in this class. The + * descendants will give concrete implementations for them. + * + * If you have some data coming from an image (some raw bytes), then + * the static method {@link newFromData()} is helpful --- it will look + * at the data and give you a proper decendent of {@link PelEntry} + * back. + * + * If you instead want to have an entry for some data which take the + * form of an integer, a string, a byte, or some other PHP type, then + * don't use this class. You should instead create an object of the + * right subclass ({@link PelEntryShort} for short integers, {@link + * PelEntryAscii} for strings, and so on) directly. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +abstract class PelEntry +{ + + /** + * Type of IFD containing this tag. + * + * This must be one of the constants defined in {@link PelIfd}: + * {@link PelIfd::IFD0} for the main image IFD, {@link PelIfd::IFD1} + * for the thumbnail image IFD, {@link PelIfd::EXIF} for the Exif + * sub-IFD, {@link PelIfd::GPS} for the GPS sub-IFD, or {@link + * PelIfd::INTEROPERABILITY} for the interoperability sub-IFD. + * + * @var int + */ + protected $ifd_type; + + /** + * The bytes representing this entry. + * + * Subclasses must either override {@link getBytes()} or, if + * possible, maintain this property so that it always contains a + * true representation of the entry. + * + * @var string + */ + protected $bytes = ''; + + /** + * The {@link PelTag} of this entry. + * + * @var PelTag + */ + protected $tag; + + /** + * The {@link PelFormat} of this entry. + * + * @var PelFormat + */ + protected $format; + + /** + * The number of components of this entry. + * + * @var int + */ + protected $components; + + /** + * Return the tag of this entry. + * + * @return PelTag the tag of this entry. + */ + public function getTag() + { + return $this->tag; + } + + /** + * Return the type of IFD which holds this entry. + * + * @return int one of the constants defined in {@link PelIfd}: + * {@link PelIfd::IFD0} for the main image IFD, {@link PelIfd::IFD1} + * for the thumbnail image IFD, {@link PelIfd::EXIF} for the Exif + * sub-IFD, {@link PelIfd::GPS} for the GPS sub-IFD, or {@link + * PelIfd::INTEROPERABILITY} for the interoperability sub-IFD. + */ + public function getIfdType() + { + return $this->ifd_type; + } + + /** + * Update the IFD type. + * + * @param + * int must be one of the constants defined in {@link + * PelIfd}: {@link PelIfd::IFD0} for the main image IFD, {@link + * PelIfd::IFD1} for the thumbnail image IFD, {@link PelIfd::EXIF} + * for the Exif sub-IFD, {@link PelIfd::GPS} for the GPS sub-IFD, or + * {@link PelIfd::INTEROPERABILITY} for the interoperability + * sub-IFD. + */ + public function setIfdType($type) + { + $this->ifd_type = $type; + } + + /** + * Return the format of this entry. + * + * @return PelFormat the format of this entry. + */ + public function getFormat() + { + return $this->format; + } + + /** + * Return the number of components of this entry. + * + * @return int the number of components of this entry. + */ + public function getComponents() + { + return $this->components; + } + + /** + * Turn this entry into bytes. + * + * @param + * PelByteOrder the desired byte order, which must be either + * {@link Convert::LITTLE_ENDIAN} or {@link Convert::BIG_ENDIAN}. + * + * @return string bytes representing this entry. + */ + public function getBytes($o) + { + return $this->bytes; + } + + /** + * Get the value of this entry as text. + * + * The value will be returned in a format suitable for presentation, + * e.g., rationals will be returned as 'x/y', ASCII strings will be + * returned as themselves etc. + * + * @param + * boolean some values can be returned in a long or more + * brief form, and this parameter controls that. + * + * @return string the value as text. + */ + abstract public function getText($brief = false); + + /** + * Get the value of this entry. + * + * The value returned will generally be the same as the one supplied + * to the constructor or with {@link setValue()}. For a formatted + * version of the value, one should use {@link getText()} instead. + * + * @return mixed the unformatted value. + */ + abstract public function getValue(); + + /** + * Set the value of this entry. + * + * The value should be in the same format as for the constructor. + * + * @param + * mixed the new value. + * + * @abstract + * + */ + public function setValue($value) + { + /* + * This (fake) abstract method is here to make it possible for the + * documentation to refer to PelEntry::setValue(). + * It cannot declared abstract in the proper PHP way, for then PHP + * wont allow subclasses to define it with two arguments (which is + * what PelEntryCopyright does). + */ + throw new PelException('setValue() is abstract.'); + } + + /** + * Turn this entry into a string. + * + * @return string a string representation of this entry. This is + * mostly for debugging. + */ + public function __toString() + { + $str = Pel::fmt(" Tag: 0x%04X (%s)\n", $this->tag, PelTag::getName($this->ifd_type, $this->tag)); + $str .= Pel::fmt(" Format : %d (%s)\n", $this->format, PelFormat::getName($this->format)); + $str .= Pel::fmt(" Components: %d\n", $this->components); + if ($this->getTag() != PelTag::MAKER_NOTE && $this->getTag() != PelTag::PRINT_IM) { + $str .= Pel::fmt(" Value : %s\n", print_r($this->getValue(), true)); + } + $str .= Pel::fmt(" Text : %s\n", $this->getText()); + return $str; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryAscii.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryAscii.php new file mode 100644 index 0000000000000000000000000000000000000000..39d84fb4535fea58724296eb5fb4d459a59a5b4e --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryAscii.php @@ -0,0 +1,142 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold ASCII strings. + * + * The classes defined here are to be used for Exif entries holding + * ASCII strings, such as {@link PelTag::MAKE}, {@link + * PelTag::SOFTWARE}, and {@link PelTag::DATE_TIME}. For + * entries holding normal textual ASCII strings the class {@link + * PelEntryAscii} should be used, but for entries holding + * timestamps the class {@link PelEntryTime} would be more + * convenient instead. Copyright information is handled by the {@link + * PelEntryCopyright} class. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding a plain ASCII string. + * + * This class can hold a single ASCII string, and it will be used as in + * <code> + * $entry = $ifd->getEntry(PelTag::IMAGE_DESCRIPTION); + * print($entry->getValue()); + * $entry->setValue('This is my image. I like it.'); + * </code> + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryAscii extends PelEntry +{ + + /** + * The string hold by this entry. + * + * This is the string that was given to the {@link __construct + * constructor} or later to {@link setValue}, without any final NULL + * character. + * + * @var string + */ + private $str; + + /** + * Make a new PelEntry that can hold an ASCII string. + * + * @param int $tag + * the tag which this entry represents. This should be + * one of the constants defined in {@link PelTag}, e.g., {@link + * PelTag::IMAGE_DESCRIPTION}, {@link PelTag::MODEL}, or any other + * tag with format {@link PelFormat::ASCII}. + * + * @param string $str + * the string that this entry will represent. The + * string must obey the same rules as the string argument to {@link + * setValue}, namely that it should be given without any trailing + * NULL character and that it must be plain 7-bit ASCII. + */ + public function __construct($tag, $str = '') + { + $this->tag = $tag; + $this->format = PelFormat::ASCII; + self::setValue($str); + } + + /** + * Give the entry a new ASCII value. + * + * This will overwrite the previous value. The value can be + * retrieved later with the {@link getValue} method. + * + * @param + * string the new value of the entry. This should be given + * without any trailing NULL character. The string must be plain + * 7-bit ASCII, the string should contain no high bytes. + * + * @todo Implement check for high bytes? + */ + public function setValue($str) + { + $this->components = strlen($str) + 1; + $this->str = $str; + $this->bytes = $str . chr(0x00); + } + + /** + * Return the ASCII string of the entry. + * + * @return string the string held, without any final NULL character. + * The string will be the same as the one given to {@link setValue} + * or to the {@link __construct constructor}. + */ + public function getValue() + { + return $this->str; + } + + /** + * Return the ASCII string of the entry. + * + * This methods returns the same as {@link getValue}. + * + * @param + * boolean not used with ASCII entries. + * + * @return string the string held, without any final NULL character. + * The string will be the same as the one given to {@link setValue} + * or to the {@link __construct constructor}. + */ + public function getText($brief = false) + { + return $this->str; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryByte.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryByte.php new file mode 100644 index 0000000000000000000000000000000000000000..ac736c118bc6b681736553c2a1e02e2ca0533e40 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryByte.php @@ -0,0 +1,99 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold bytes, both signed and unsigned. + * The {@link + * PelEntryWindowsString} class is used to manipulate strings in the + * format Windows XP needs. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding unsigned bytes. + * + * This class can hold bytes, either just a single byte or an array of + * bytes. The class will be used to manipulate any of the Exif tags + * which has format {@link PelFormat::BYTE}. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryByte extends PelEntryNumber +{ + + /** + * Make a new entry that can hold an unsigned byte. + * + * The method accept several integer arguments. The {@link + * getValue} method will always return an array except for when a + * single integer argument is given here. + * + * @param PelTag $tag + * the tag which this entry represents. This + * should be one of the constants defined in {@link PelTag} + * which has format {@link PelFormat::BYTE}. + * + * @param int $value... + * the byte(s) that this entry will represent. + * The argument passed must obey the same rules as the argument to + * {@link setValue}, namely that it should be within range of an + * unsigned byte, that is between 0 and 255 (inclusive). If not, + * then a {@link PelOverflowException} will be thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->min = 0; + $this->max = 255; + $this->format = PelFormat::BYTE; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Convert a number into bytes. + * + * @param int $number + * the number that should be converted. + * + * @param PelByteOrder $order + * one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * + * @return string bytes representing the number given. + */ + public function numberToBytes($number, $order) + { + return chr($number); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryCopyright.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryCopyright.php new file mode 100644 index 0000000000000000000000000000000000000000..eb8f20988e1073862a9b38116594227fae26dc4f --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryCopyright.php @@ -0,0 +1,191 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold ASCII strings. + * + * The classes defined here are to be used for Exif entries holding + * ASCII strings, such as {@link PelTag::MAKE}, {@link + * PelTag::SOFTWARE}, and {@link PelTag::DATE_TIME}. For + * entries holding normal textual ASCII strings the class {@link + * PelEntryAscii} should be used, but for entries holding + * timestamps the class {@link PelEntryTime} would be more + * convenient instead. Copyright information is handled by the {@link + * PelEntryCopyright} class. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding copyright information. + * + * The Exif standard specifies a certain format for copyright + * information where the one {@link PelTag::COPYRIGHT copyright + * tag} holds both the photographer and editor copyrights, separated + * by a NULL character. + * + * This class is used to manipulate that tag so that the format is + * kept to the standard. A common use would be to add a new copyright + * tag to an image, since most cameras do not add this tag themselves. + * This would be done like this: + * + * <code> + * $entry = new PelEntryCopyright('Copyright, Martin Geisler, 2004'); + * $ifd0->addEntry($entry); + * </code> + * + * Here we only set the photographer copyright, use the optional + * second argument to specify the editor copyright. If there is only + * an editor copyright, then let the first argument be the empty + * string. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryCopyright extends PelEntryAscii +{ + + /** + * The photographer copyright. + * + * @var string + */ + private $photographer; + + /** + * The editor copyright. + * + * @var string + */ + private $editor; + + /** + * Make a new entry for holding copyright information. + * + * @param + * string the photographer copyright. Use the empty string + * if there is no photographer copyright. + * + * @param + * string the editor copyright. Use the empty string if + * there is no editor copyright. + */ + public function __construct($photographer = '', $editor = '') + { + parent::__construct(PelTag::COPYRIGHT); + $this->setValue($photographer, $editor); + } + + /** + * Update the copyright information. + * + * @param + * string the photographer copyright. Use the empty string + * if there is no photographer copyright. + * + * @param + * string the editor copyright. Use the empty string if + * there is no editor copyright. + */ + public function setValue($photographer = '', $editor = '') + { + $this->photographer = $photographer; + $this->editor = $editor; + + if ($photographer == '' && $editor != '') { + $photographer = ' '; + } + + if ($editor == '') { + parent::setValue($photographer); + } else { + parent::setValue($photographer . chr(0x00) . $editor); + } + } + + /** + * Retrive the copyright information. + * + * The strings returned will be the same as the one used previously + * with either {@link __construct the constructor} or with {@link + * setValue}. + * + * @return array an array with two strings, the photographer and + * editor copyrights. The two fields will be returned in that + * order, so that the first array index will be the photographer + * copyright, and the second will be the editor copyright. + */ + public function getValue() + { + return array( + $this->photographer, + $this->editor + ); + } + + /** + * Return a text string with the copyright information. + * + * The photographer and editor copyright fields will be returned + * with a '-' in between if both copyright fields are present, + * otherwise only one of them will be returned. + * + * @param + * boolean if false, then the strings '(Photographer)' and + * '(Editor)' will be appended to the photographer and editor + * copyright fields (if present), otherwise the fields will be + * returned as is. + * + * @return string the copyright information in a string. + */ + public function getText($brief = false) + { + if ($brief) { + $p = ''; + $e = ''; + } else { + $p = ' ' . Pel::tra('(Photographer)'); + $e = ' ' . Pel::tra('(Editor)'); + } + + if ($this->photographer != '' && $this->editor != '') { + return $this->photographer . $p . ' - ' . $this->editor . $e; + } + + if ($this->photographer != '') { + return $this->photographer . $p; + } + + if ($this->editor != '') { + return $this->editor . $e; + } + + return ''; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryException.php new file mode 100644 index 0000000000000000000000000000000000000000..a13ebf5912e4ac8c89b846b5a5a2f95f32f870c9 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryException.php @@ -0,0 +1,87 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif entries. + * + * This file defines two exception classes and the abstract class + * {@link PelEntry} which provides the basic methods that all Exif + * entries will have. All Exif entries will be represented by + * descendants of the {@link PelEntry} class --- the class itself is + * abstract and so it cannot be instantiated. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Exception indicating a problem with an entry. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelEntryException extends PelException +{ + + /** + * The IFD type (if known). + * + * @var int + */ + protected $type; + + /** + * The tag of the entry (if known). + * + * @var PelTag + */ + protected $tag; + + /** + * Get the IFD type associated with the exception. + * + * @return int one of {@link PelIfd::IFD0}, {@link PelIfd::IFD1}, + * {@link PelIfd::EXIF}, {@link PelIfd::GPS}, or {@link + * PelIfd::INTEROPERABILITY}. If no type is set, null is returned. + */ + public function getIfdType() + { + return $this->type; + } + + /** + * Get the tag associated with the exception. + * + * @return PelTag the tag. If no tag is set, null is returned. + */ + public function getTag() + { + return $this->tag; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryLong.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryLong.php new file mode 100644 index 0000000000000000000000000000000000000000..dead1efe283cc0a7c2abd1b4e3291e81d869da7f --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryLong.php @@ -0,0 +1,115 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold longs, both signed and unsigned. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding unsigned longs. + * + * This class can hold longs, either just a single long or an array of + * longs. The class will be used to manipulate any of the Exif tags + * which can have format {@link PelFormat::LONG} like in this + * example: + * <code> + * $w = $ifd->getEntry(PelTag::EXIF_IMAGE_WIDTH); + * $w->setValue($w->getValue() / 2); + * $h = $ifd->getEntry(PelTag::EXIF_IMAGE_HEIGHT); + * $h->setValue($h->getValue() / 2); + * </code> + * Here the width and height is updated to 50% of their original + * values. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryLong extends PelEntryNumber +{ + + /** + * Make a new entry that can hold an unsigned long. + * + * The method accept its arguments in two forms: several integer + * arguments or a single array argument. The {@link getValue} + * method will always return an array except for when a single + * integer argument is given here, or when an array with just a + * single integer is given. + * + * This means that one can conveniently use objects like this: + * <code> + * $a = new PelEntryLong(PelTag::EXIF_IMAGE_WIDTH, 123456); + * $b = $a->getValue() - 654321; + * </code> + * where the call to {@link getValue} will return an integer instead + * of an array with one integer element, which would then have to be + * extracted. + * + * @param + * PelTag the tag which this entry represents. This + * should be one of the constants defined in {@link PelTag}, + * e.g., {@link PelTag::IMAGE_WIDTH}, or any other tag which can + * have format {@link PelFormat::LONG}. + * @param int $value... + * the long(s) that this entry will + * represent or an array of longs. The argument passed must obey + * the same rules as the argument to {@link setValue}, namely that + * it should be within range of an unsigned long (32 bit), that is + * between 0 and 4294967295 (inclusive). If not, then a {@link + * PelExifOverflowException} will be thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->min = 0; + $this->max = 4294967295; + $this->format = PelFormat::LONG; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Convert a number into bytes. + * + * @param + * int the number that should be converted. + * @param + * PelByteOrder one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * @return string bytes representing the number given. + */ + public function numberToBytes($number, $order) + { + return PelConvert::longToBytes($number, $order); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryNumber.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryNumber.php new file mode 100644 index 0000000000000000000000000000000000000000..e967db0e4004a5d2e79d9a513f50610fbd75977c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryNumber.php @@ -0,0 +1,285 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Abstract class for numbers. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding numbers. + * + * This class can hold numbers, with range checks. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +abstract class PelEntryNumber extends PelEntry +{ + + /** + * The value held by this entry. + * + * @var array + */ + protected $value = array(); + + /** + * The minimum allowed value. + * + * Any attempt to change the value below this variable will result + * in a {@link PelOverflowException} being thrown. + * + * @var int + */ + protected $min; + + /** + * The maximum allowed value. + * + * Any attempt to change the value over this variable will result in + * a {@link PelOverflowException} being thrown. + * + * @var int + */ + protected $max; + + /** + * The dimension of the number held. + * + * Normal numbers have a dimension of one, pairs have a dimension of + * two, etc. + * + * @var int + */ + protected $dimension = 1; + + /** + * Change the value. + * + * This method can change both the number of components and the + * value of the components. Range checks will be made on the new + * value, and a {@link PelOverflowException} will be thrown if the + * value is found to be outside the legal range. + * + * The method accept several number arguments. The {@link getValue} + * method will always return an array except for when a single + * number is given here. + * + * @param int|array $value... + * the new value(s). This can be zero or + * more numbers, that is, either integers or arrays. The input will + * be checked to ensure that the numbers are within the valid range. + * If not, then a {@link PelOverflowException} will be thrown. + * + * @see getValue + */ + public function setValue($value) + { + $value = func_get_args(); + $this->setValueArray($value); + } + + /** + * Change the value. + * + * This method can change both the number of components and the + * value of the components. Range checks will be made on the new + * value, and a {@link PelOverflowException} will be thrown if the + * value is found to be outside the legal range. + * + * @param + * array the new values. The array must contain the new + * numbers. + * + * @see getValue + */ + public function setValueArray($value) + { + foreach ($value as $v) { + $this->validateNumber($v); + } + + $this->components = count($value); + $this->value = $value; + } + + /** + * Return the numeric value held. + * + * @return int|array this will either be a single number if there is + * only one component, or an array of numbers otherwise. + */ + public function getValue() + { + if ($this->components == 1) { + return $this->value[0]; + } else { + return $this->value; + } + } + + /** + * Validate a number. + * + * This method will check that the number given is within the range + * given my {@link getMin()} and {@link getMax()}, inclusive. If + * not, then a {@link PelOverflowException} is thrown. + * + * @param + * int|array the number in question. + * + * @return void nothing, but will throw a {@link + * PelOverflowException} if the number is found to be outside the + * legal range and {@link Pel::$strict} is true. + */ + public function validateNumber($n) + { + if ($this->dimension == 1) { + if ($n < $this->min || $n > $this->max) { + Pel::maybeThrow(new PelOverflowException($n, $this->min, $this->max)); + } + } else { + for ($i = 0; $i < $this->dimension; $i ++) { + if ($n[$i] < $this->min || $n[$i] > $this->max) { + Pel::maybeThrow(new PelOverflowException($n[$i], $this->min, $this->max)); + } + } + } + } + + /** + * Add a number. + * + * This appends a number to the numbers already held by this entry, + * thereby increasing the number of components by one. + * + * @param + * int|array the number to be added. + */ + public function addNumber($n) + { + $this->validateNumber($n); + $this->value[] = $n; + $this->components ++; + } + + /** + * Convert a number into bytes. + * + * The concrete subclasses will have to implement this method so + * that the numbers represented can be turned into bytes. + * + * The method will be called once for each number held by the entry. + * + * @param + * int the number that should be converted. + * + * @param + * PelByteOrder one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * + * @return string bytes representing the number given. + */ + abstract public function numberToBytes($number, $order); + + /** + * Turn this entry into bytes. + * + * @param + * PelByteOrder the desired byte order, which must be either + * {@link PelConvert::LITTLE_ENDIAN} or {@link + * PelConvert::BIG_ENDIAN}. + * + * @return string bytes representing this entry. + */ + public function getBytes($o) + { + $bytes = ''; + for ($i = 0; $i < $this->components; $i ++) { + if ($this->dimension == 1) { + $bytes .= $this->numberToBytes($this->value[$i], $o); + } else { + for ($j = 0; $j < $this->dimension; $j ++) { + $bytes .= $this->numberToBytes($this->value[$i][$j], $o); + } + } + } + return $bytes; + } + + /** + * Format a number. + * + * This method is called by {@link getText} to format numbers. + * Subclasses should override this method if they need more + * sophisticated behavior than the default, which is to just return + * the number as is. + * + * @param + * int the number which will be formatted. + * + * @param + * boolean it could be that there is both a verbose and a + * brief formatting available, and this argument controls that. + * + * @return string the number formatted as a string suitable for + * display. + */ + public function formatNumber($number, $brief = false) + { + return $number; + } + + /** + * Get the numeric value of this entry as text. + * + * @param + * boolean use brief output? The numbers will be separated + * by a single space if brief output is requested, otherwise a space + * and a comma will be used. + * + * @return string the numbers(s) held by this entry. + */ + public function getText($brief = false) + { + if ($this->components == 0) { + return ''; + } + + $str = $this->formatNumber($this->value[0]); + for ($i = 1; $i < $this->components; $i ++) { + $str .= ($brief ? ' ' : ', '); + $str .= $this->formatNumber($this->value[$i]); + } + + return $str; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryRational.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryRational.php new file mode 100644 index 0000000000000000000000000000000000000000..ff8c0611155a8acd271d318b919ed7da84d528c3 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryRational.php @@ -0,0 +1,175 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to manipulate rational numbers. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding unsigned rational numbers. + * + * This class can hold rational numbers, consisting of a numerator and + * denominator both of which are of type unsigned long. Each rational + * is represented by an array with just two entries: the numerator and + * the denominator, in that order. + * + * The class can hold either just a single rational or an array of + * rationals. The class will be used to manipulate any of the Exif + * tags which can have format {@link PelFormat::RATIONAL} like in this + * example: + * + * <code> + * $resolution = $ifd->getEntry(PelTag::X_RESOLUTION); + * $resolution->setValue(array(1, 300)); + * </code> + * + * Here the x-resolution is adjusted to 1/300, which will be 300 DPI, + * unless the {@link PelTag::RESOLUTION_UNIT resolution unit} is set + * to something different than 2 which means inches. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryRational extends PelEntryLong +{ + + /** + * Make a new entry that can hold an unsigned rational. + * + * @param + * PelTag the tag which this entry represents. This should + * be one of the constants defined in {@link PelTag}, e.g., {@link + * PelTag::X_RESOLUTION}, or any other tag which can have format + * {@link PelFormat::RATIONAL}. + * + * @param array $value... + * the rational(s) that this entry will + * represent. The arguments passed must obey the same rules as the + * argument to {@link setValue}, namely that each argument should be + * an array with two entries, both of which must be within range of + * an unsigned long (32 bit), that is between 0 and 4294967295 + * (inclusive). If not, then a {@link PelOverflowException} will be + * thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->format = PelFormat::RATIONAL; + $this->dimension = 2; + $this->min = 0; + $this->max = 4294967295; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Format a rational number. + * + * The rational will be returned as a string with a slash '/' + * between the numerator and denominator. + * + * @param + * array the rational which will be formatted. + * + * @param + * boolean not used. + * + * @return string the rational formatted as a string suitable for + * display. + */ + public function formatNumber($number, $brief = false) + { + return $number[0] . '/' . $number[1]; + } + + /** + * Get the value of an entry as text. + * + * The value will be returned in a format suitable for presentation, + * e.g., rationals will be returned as 'x/y', ASCII strings will be + * returned as themselves etc. + * + * @param + * boolean some values can be returned in a long or more + * brief form, and this parameter controls that. + * + * @return string the value as text. + */ + public function getText($brief = false) + { + if (isset($this->value[0])) { + $v = $this->value[0]; + } + + switch ($this->tag) { + case PelTag::FNUMBER: + // CC (e->components, 1, v); + return Pel::fmt('f/%.01f', $v[0] / $v[1]); + + case PelTag::APERTURE_VALUE: + // CC (e->components, 1, v); + // if (!v_rat.denominator) return (NULL); + return Pel::fmt('f/%.01f', pow(2, $v[0] / $v[1] / 2)); + + case PelTag::FOCAL_LENGTH: + // CC (e->components, 1, v); + // if (!v_rat.denominator) return (NULL); + return Pel::fmt('%.1f mm', $v[0] / $v[1]); + + case PelTag::SUBJECT_DISTANCE: + // CC (e->components, 1, v); + // if (!v_rat.denominator) return (NULL); + return Pel::fmt('%.1f m', $v[0] / $v[1]); + + case PelTag::EXPOSURE_TIME: + // CC (e->components, 1, v); + // if (!v_rat.denominator) return (NULL); + if ($v[0] / $v[1] < 1) { + return Pel::fmt('1/%d sec.', $v[1] / $v[0]); + } else { + return Pel::fmt('%d sec.', $v[0] / $v[1]); + } + break; + case PelTag::GPS_LATITUDE: + case PelTag::GPS_LONGITUDE: + $degrees = $this->value[0][0] / $this->value[0][1]; + $minutes = $this->value[1][0] / $this->value[1][1]; + $seconds = $this->value[2][0] / $this->value[2][1]; + + return sprintf('%s° %s\' %s" (%.2f°)', $degrees, $minutes, $seconds, $degrees + $minutes / 60 + $seconds / 3600); + + default: + return parent::getText($brief); + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySByte.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySByte.php new file mode 100644 index 0000000000000000000000000000000000000000..e5a992fb20c6f95d32c0868c8e38c48bd9c77416 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySByte.php @@ -0,0 +1,99 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold bytes, both signed and unsigned. + * The {@link + * PelEntryWindowsString} class is used to manipulate strings in the + * format Windows XP needs. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding signed bytes. + * + * This class can hold bytes, either just a single byte or an array of + * bytes. The class will be used to manipulate any of the Exif tags + * which has format {@link PelFormat::BYTE}. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntrySByte extends PelEntryNumber +{ + + /** + * Make a new entry that can hold a signed byte. + * + * The method accept several integer arguments. The {@link getValue} + * method will always return an array except for when a single + * integer argument is given here. + * + * @param PelTag $tag + * the tag which this entry represents. This + * should be one of the constants defined in {@link PelTag} + * which has format {@link PelFormat::BYTE}. + * + * @param int $value... + * the byte(s) that this entry will represent. + * The argument passed must obey the same rules as the argument to + * {@link setValue}, namely that it should be within range of a + * signed byte, that is between -128 and 127 (inclusive). If not, + * then a {@link PelOverflowException} will be thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->min = - 128; + $this->max = 127; + $this->format = PelFormat::SBYTE; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Convert a number into bytes. + * + * @param int $number + * the number that should be converted. + * + * @param PelByteOrder $order + * one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * + * @return string bytes representing the number given. + */ + public function numberToBytes($number, $order) + { + return chr($number); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySLong.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySLong.php new file mode 100644 index 0000000000000000000000000000000000000000..c596a48f96507a77c4e359706291d77d9e34be48 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySLong.php @@ -0,0 +1,99 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold longs, both signed and unsigned. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding signed longs. + * + * This class can hold longs, either just a single long or an array of + * longs. The class will be used to manipulate any of the Exif tags + * which can have format {@link PelFormat::SLONG}. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntrySLong extends PelEntryNumber +{ + + /** + * Make a new entry that can hold a signed long. + * + * The method accept its arguments in two forms: several integer + * arguments or a single array argument. The {@link getValue} + * method will always return an array except for when a single + * integer argument is given here, or when an array with just a + * single integer is given. + * + * @param + * PelTag the tag which this entry represents. This + * should be one of the constants defined in {@link PelTag} + * which have format {@link PelFormat::SLONG}. + * + * @param int $value... + * the long(s) that this entry will represent + * or an array of longs. The argument passed must obey the same + * rules as the argument to {@link setValue}, namely that it should + * be within range of a signed long (32 bit), that is between + * -2147483648 and 2147483647 (inclusive). If not, then a {@link + * PelOverflowException} will be thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->min = - 2147483648; + $this->max = 2147483647; + $this->format = PelFormat::SLONG; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Convert a number into bytes. + * + * @param + * int the number that should be converted. + * + * @param + * PelByteOrder one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * + * @return string bytes representing the number given. + */ + public function numberToBytes($number, $order) + { + return PelConvert::sLongToBytes($number, $order); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySRational.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySRational.php new file mode 100644 index 0000000000000000000000000000000000000000..f4dcb8d6974d842fbb59acd35595c30850e39303 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySRational.php @@ -0,0 +1,153 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to manipulate rational numbers. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding signed rational numbers. + * + * This class can hold rational numbers, consisting of a numerator and + * denominator both of which are of type unsigned long. Each rational + * is represented by an array with just two entries: the numerator and + * the denominator, in that order. + * + * The class can hold either just a single rational or an array of + * rationals. The class will be used to manipulate any of the Exif + * tags which can have format {@link PelFormat::SRATIONAL}. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntrySRational extends PelEntrySLong +{ + + /** + * Make a new entry that can hold a signed rational. + * + * @param + * PelTag the tag which this entry represents. This should + * be one of the constants defined in {@link PelTag}, e.g., {@link + * PelTag::SHUTTER_SPEED_VALUE}, or any other tag which can have + * format {@link PelFormat::SRATIONAL}. + * + * @param array $value... + * the rational(s) that this entry will + * represent. The arguments passed must obey the same rules as the + * argument to {@link setValue}, namely that each argument should be + * an array with two entries, both of which must be within range of + * a signed long (32 bit), that is between -2147483648 and + * 2147483647 (inclusive). If not, then a {@link + * PelOverflowException} will be thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->format = PelFormat::SRATIONAL; + $this->dimension = 2; + $this->min = - 2147483648; + $this->max = 2147483647; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Format a rational number. + * + * The rational will be returned as a string with a slash '/' + * between the numerator and denominator. Care is taken to display + * '-1/2' instead of the ugly but mathematically equivalent '1/-2'. + * + * @param + * array the rational which will be formatted. + * + * @param + * boolean not used. + * + * @return string the rational formatted as a string suitable for + * display. + */ + public function formatNumber($number, $brief = false) + { + if ($number[1] < 0) { + /* Turn output like 1/-2 into -1/2. */ + return (- $number[0]) . '/' . (- $number[1]); + } else { + return $number[0] . '/' . $number[1]; + } + } + + /** + * Get the value of an entry as text. + * + * The value will be returned in a format suitable for presentation, + * e.g., rationals will be returned as 'x/y', ASCII strings will be + * returned as themselves etc. + * + * @param + * boolean some values can be returned in a long or more + * brief form, and this parameter controls that. + * + * @return string the value as text. + */ + public function getText($brief = false) + { + if (isset($this->value[0])) { + $v = $this->value[0]; + } + + switch ($this->tag) { + case PelTag::SHUTTER_SPEED_VALUE: + // CC (e->components, 1, v); + // if (!v_srat.denominator) return (NULL); + return Pel::fmt('%.0f/%.0f sec. (APEX: %d)', $v[0], $v[1], pow(sqrt(2), $v[0] / $v[1])); + + case PelTag::BRIGHTNESS_VALUE: + // CC (e->components, 1, v); + // + // TODO: figure out the APEX thing, or remove this so that it is + // handled by the default clause at the bottom. + return sprintf('%d/%d', $v[0], $v[1]); + // FIXME: How do I calculate the APEX value? + + case PelTag::EXPOSURE_BIAS_VALUE: + // CC (e->components, 1, v); + // if (!v_srat.denominator) return (NULL); + return sprintf('%s%.01f', $v[0] * $v[1] > 0 ? '+' : '', $v[0] / $v[1]); + + default: + return parent::getText($brief); + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySShort.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySShort.php new file mode 100644 index 0000000000000000000000000000000000000000..886b530e53103d74c9a0efe0dcb37b81cefba844 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntrySShort.php @@ -0,0 +1,97 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold shorts, both signed and unsigned. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding signed shorts. + * + * This class can hold shorts, either just a single short or an array + * of shorts. The class will be used to manipulate any of the Exif + * tags which has format {@link PelFormat::SSHORT}. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntrySShort extends PelEntryNumber +{ + + /** + * Make a new entry that can hold a signed short. + * + * The method accept several integer arguments. The {@link + * getValue} method will always return an array except for when a + * single integer argument is given here. + * + * @param PelTag $tag + * the tag which this entry represents. This + * should be one of the constants defined in {@link PelTag} + * which has format {@link PelFormat::SSHORT}. + * + * @param int $value... + * the signed short(s) that this entry will + * represent. The argument passed must obey the same rules as the + * argument to {@link setValue}, namely that it should be within + * range of a signed short, that is between -32768 to 32767 + * (inclusive). If not, then a {@link PelOverFlowException} will be + * thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->min = - 32768; + $this->max = 32767; + $this->format = PelFormat::SSHORT; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Convert a number into bytes. + * + * @param int $number + * the number that should be converted. + * + * @param PelByteOrder $order + * one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * + * @return string bytes representing the number given. + */ + public function numberToBytes($number, $order) + { + return PelConvert::sShortToBytes($number, $order); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryShort.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryShort.php new file mode 100644 index 0000000000000000000000000000000000000000..8ef5cffc7a566f5a184cd4f49f1e132baec99c29 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryShort.php @@ -0,0 +1,534 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold shorts, both signed and unsigned. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding signed shorts. + * + * This class can hold shorts, either just a single short or an array + * of shorts. The class will be used to manipulate any of the Exif + * tags which has format {@link PelFormat::SHORT} like in this + * example: + * + * <code> + * $w = $ifd->getEntry(PelTag::EXIF_IMAGE_WIDTH); + * $w->setValue($w->getValue() / 2); + * $h = $ifd->getEntry(PelTag::EXIF_IMAGE_HEIGHT); + * $h->setValue($h->getValue() / 2); + * </code> + * + * Here the width and height is updated to 50% of their original + * values. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryShort extends PelEntryNumber +{ + + /** + * Make a new entry that can hold an unsigned short. + * + * The method accept several integer arguments. The {@link + * getValue} method will always return an array except for when a + * single integer argument is given here. + * + * This means that one can conveniently use objects like this: + * <code> + * $a = new PelEntryShort(PelTag::EXIF_IMAGE_HEIGHT, 42); + * $b = $a->getValue() + 314; + * </code> + * where the call to {@link getValue} will return an integer + * instead of an array with one integer element, which would then + * have to be extracted. + * + * @param PelTag $tag + * the tag which this entry represents. This should be + * one of the constants defined in {@link PelTag}, e.g., {@link + * PelTag::IMAGE_WIDTH}, {@link PelTag::ISO_SPEED_RATINGS}, + * or any other tag with format {@link PelFormat::SHORT}. + * + * @param int $value... + * the short(s) that this entry will + * represent. The argument passed must obey the same rules as the + * argument to {@link setValue}, namely that it should be within + * range of an unsigned short, that is between 0 and 65535 + * (inclusive). If not, then a {@link PelOverFlowException} will be + * thrown. + */ + public function __construct($tag, $value = null) + { + $this->tag = $tag; + $this->min = 0; + $this->max = 65535; + $this->format = PelFormat::SHORT; + + $value = func_get_args(); + array_shift($value); + $this->setValueArray($value); + } + + /** + * Convert a number into bytes. + * + * @param int $number + * the number that should be converted. + * + * @param PelByteOrder $order + * one of {@link PelConvert::LITTLE_ENDIAN} and + * {@link PelConvert::BIG_ENDIAN}, specifying the target byte order. + * + * @return string bytes representing the number given. + */ + public function numberToBytes($number, $order) + { + return PelConvert::shortToBytes($number, $order); + } + + /** + * Get the value of an entry as text. + * + * The value will be returned in a format suitable for presentation, + * e.g., instead of returning '2' for a {@link + * PelTag::METERING_MODE} tag, 'Center-Weighted Average' is + * returned. + * + * @param + * boolean some values can be returned in a long or more + * brief form, and this parameter controls that. + * + * @return string the value as text. + */ + public function getText($brief = false) + { + switch ($this->tag) { + case PelTag::METERING_MODE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Unknown'); + case 1: + return Pel::tra('Average'); + case 2: + return Pel::tra('Center-Weighted Average'); + case 3: + return Pel::tra('Spot'); + case 4: + return Pel::tra('Multi Spot'); + case 5: + return Pel::tra('Pattern'); + case 6: + return Pel::tra('Partial'); + case 255: + return Pel::tra('Other'); + default: + return $this->value[0]; + } + break; + case PelTag::COMPRESSION: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 1: + return Pel::tra('Uncompressed'); + case 6: + return Pel::tra('JPEG compression'); + default: + return $this->value[0]; + } + break; + case PelTag::PLANAR_CONFIGURATION: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 1: + return Pel::tra('chunky format'); + case 2: + return Pel::tra('planar format'); + default: + return $this->value[0]; + } + break; + case PelTag::SENSING_METHOD: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 1: + return Pel::tra('Not defined'); + case 2: + return Pel::tra('One-chip color area sensor'); + case 3: + return Pel::tra('Two-chip color area sensor'); + case 4: + return Pel::tra('Three-chip color area sensor'); + case 5: + return Pel::tra('Color sequential area sensor'); + case 7: + return Pel::tra('Trilinear sensor'); + case 8: + return Pel::tra('Color sequential linear sensor'); + default: + return $this->value[0]; + } + break; + case PelTag::LIGHT_SOURCE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Unknown'); + case 1: + return Pel::tra('Daylight'); + case 2: + return Pel::tra('Fluorescent'); + case 3: + return Pel::tra('Tungsten (incandescent light)'); + case 4: + return Pel::tra('Flash'); + case 9: + return Pel::tra('Fine weather'); + case 10: + return Pel::tra('Cloudy weather'); + case 11: + return Pel::tra('Shade'); + case 12: + return Pel::tra('Daylight fluorescent'); + case 13: + return Pel::tra('Day white fluorescent'); + case 14: + return Pel::tra('Cool white fluorescent'); + case 15: + return Pel::tra('White fluorescent'); + case 17: + return Pel::tra('Standard light A'); + case 18: + return Pel::tra('Standard light B'); + case 19: + return Pel::tra('Standard light C'); + case 20: + return Pel::tra('D55'); + case 21: + return Pel::tra('D65'); + case 22: + return Pel::tra('D75'); + case 24: + return Pel::tra('ISO studio tungsten'); + case 255: + return Pel::tra('Other'); + default: + return $this->value[0]; + } + break; + case PelTag::FOCAL_PLANE_RESOLUTION_UNIT: + case PelTag::RESOLUTION_UNIT: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 2: + return Pel::tra('Inch'); + case 3: + return Pel::tra('Centimeter'); + default: + return $this->value[0]; + } + break; + case PelTag::EXPOSURE_PROGRAM: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Not defined'); + case 1: + return Pel::tra('Manual'); + case 2: + return Pel::tra('Normal program'); + case 3: + return Pel::tra('Aperture priority'); + case 4: + return Pel::tra('Shutter priority'); + case 5: + return Pel::tra('Creative program (biased toward depth of field)'); + case 6: + return Pel::tra('Action program (biased toward fast shutter speed)'); + case 7: + return Pel::tra('Portrait mode (for closeup photos with the background out of focus'); + case 8: + return Pel::tra('Landscape mode (for landscape photos with the background in focus'); + default: + return $this->value[0]; + } + break; + case PelTag::ORIENTATION: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 1: + return Pel::tra('top - left'); + case 2: + return Pel::tra('top - right'); + case 3: + return Pel::tra('bottom - right'); + case 4: + return Pel::tra('bottom - left'); + case 5: + return Pel::tra('left - top'); + case 6: + return Pel::tra('right - top'); + case 7: + return Pel::tra('right - bottom'); + case 8: + return Pel::tra('left - bottom'); + default: + return $this->value[0]; + } + break; + case PelTag::YCBCR_POSITIONING: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 1: + return Pel::tra('centered'); + case 2: + return Pel::tra('co-sited'); + default: + return $this->value[0]; + } + break; + case PelTag::YCBCR_SUB_SAMPLING: + // CC (e->components, 2, v); + if ($this->value[0] == 2 && $this->value[1] == 1) { + return 'YCbCr4:2:2'; + } + if ($this->value[0] == 2 && $this->value[1] == 2) { + return 'YCbCr4:2:0'; + } + + return $this->value[0] . ', ' . $this->value[1]; + break; + case PelTag::PHOTOMETRIC_INTERPRETATION: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 2: + return 'RGB'; + case 6: + return 'YCbCr'; + default: + return $this->value[0]; + } + break; + case PelTag::COLOR_SPACE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 1: + return 'sRGB'; + case 2: + return 'Adobe RGB'; + case 0xffff: + return Pel::tra('Uncalibrated'); + default: + return $this->value[0]; + } + break; + case PelTag::FLASH: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0x0000: + return Pel::tra('Flash did not fire.'); + case 0x0001: + return Pel::tra('Flash fired.'); + case 0x0005: + return Pel::tra('Strobe return light not detected.'); + case 0x0007: + return Pel::tra('Strobe return light detected.'); + case 0x0009: + return Pel::tra('Flash fired, compulsory flash mode.'); + case 0x000d: + return Pel::tra('Flash fired, compulsory flash mode, return light not detected.'); + case 0x000f: + return Pel::tra('Flash fired, compulsory flash mode, return light detected.'); + case 0x0010: + return Pel::tra('Flash did not fire, compulsory flash mode.'); + case 0x0018: + return Pel::tra('Flash did not fire, auto mode.'); + case 0x0019: + return Pel::tra('Flash fired, auto mode.'); + case 0x001d: + return Pel::tra('Flash fired, auto mode, return light not detected.'); + case 0x001f: + return Pel::tra('Flash fired, auto mode, return light detected.'); + case 0x0020: + return Pel::tra('No flash function.'); + case 0x0041: + return Pel::tra('Flash fired, red-eye reduction mode.'); + case 0x0045: + return Pel::tra('Flash fired, red-eye reduction mode, return light not detected.'); + case 0x0047: + return Pel::tra('Flash fired, red-eye reduction mode, return light detected.'); + case 0x0049: + return Pel::tra('Flash fired, compulsory flash mode, red-eye reduction mode.'); + case 0x004d: + return Pel::tra('Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected.'); + case 0x004f: + return Pel::tra('Flash fired, compulsory flash mode, red-eye reduction mode, return light detected.'); + case 0x0058: + return Pel::tra('Flash did not fire, auto mode, red-eye reduction mode.'); + case 0x0059: + return Pel::tra('Flash fired, auto mode, red-eye reduction mode.'); + case 0x005d: + return Pel::tra('Flash fired, auto mode, return light not detected, red-eye reduction mode.'); + case 0x005f: + return Pel::tra('Flash fired, auto mode, return light detected, red-eye reduction mode.'); + default: + return $this->value[0]; + } + break; + case PelTag::CUSTOM_RENDERED: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Normal process'); + case 1: + return Pel::tra('Custom process'); + default: + return $this->value[0]; + } + break; + case PelTag::EXPOSURE_MODE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Auto exposure'); + case 1: + return Pel::tra('Manual exposure'); + case 2: + return Pel::tra('Auto bracket'); + default: + return $this->value[0]; + } + break; + case PelTag::WHITE_BALANCE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Auto white balance'); + case 1: + return Pel::tra('Manual white balance'); + default: + return $this->value[0]; + } + break; + case PelTag::SCENE_CAPTURE_TYPE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Standard'); + case 1: + return Pel::tra('Landscape'); + case 2: + return Pel::tra('Portrait'); + case 3: + return Pel::tra('Night scene'); + default: + return $this->value[0]; + } + break; + case PelTag::GAIN_CONTROL: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Normal'); + case 1: + return Pel::tra('Low gain up'); + case 2: + return Pel::tra('High gain up'); + case 3: + return Pel::tra('Low gain down'); + case 4: + return Pel::tra('High gain down'); + default: + return $this->value[0]; + } + break; + case PelTag::SATURATION: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Normal'); + case 1: + return Pel::tra('Low saturation'); + case 2: + return Pel::tra('High saturation'); + default: + return $this->value[0]; + } + break; + case PelTag::CONTRAST: + case PelTag::SHARPNESS: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Normal'); + case 1: + return Pel::tra('Soft'); + case 2: + return Pel::tra('Hard'); + default: + return $this->value[0]; + } + break; + case PelTag::SUBJECT_DISTANCE_RANGE: + // CC (e->components, 1, v); + switch ($this->value[0]) { + case 0: + return Pel::tra('Unknown'); + case 1: + return Pel::tra('Macro'); + case 2: + return Pel::tra('Close view'); + case 3: + return Pel::tra('Distant view'); + default: + return $this->value[0]; + } + break; + case PelTag::SUBJECT_AREA: + switch ($this->components) { + case 2: + return Pel::fmt('(x,y) = (%d,%d)', $this->value[0], $this->value[1]); + case 3: + return Pel::fmt('Within distance %d of (x,y) = (%d,%d)', $this->value[0], $this->value[1], $this->value[2]); + case 4: + return Pel::fmt('Within rectangle (width %d, height %d) around (x,y) = (%d,%d)', $this->value[0], $this->value[1], $this->value[2], $this->value[3]); + + default: + return Pel::fmt('Unexpected number of components (%d, expected 2, 3, or 4).', $this->components); + } + break; + default: + return parent::getText($brief); + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryTime.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryTime.php new file mode 100644 index 0000000000000000000000000000000000000000..da64eaaaaebffe40c10a0f71e556262167a099cd --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryTime.php @@ -0,0 +1,352 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold ASCII strings. + * + * The classes defined here are to be used for Exif entries holding + * ASCII strings, such as {@link PelTag::MAKE}, {@link + * PelTag::SOFTWARE}, and {@link PelTag::DATE_TIME}. For + * entries holding normal textual ASCII strings the class {@link + * PelEntryAscii} should be used, but for entries holding + * timestamps the class {@link PelEntryTime} would be more + * convenient instead. Copyright information is handled by the {@link + * PelEntryCopyright} class. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding a date and time. + * + * This class can hold a timestamp, and it will be used as + * in this example where the time is advanced by one week: + * <code> + * $entry = $ifd->getEntry(PelTag::DATE_TIME_ORIGINAL); + * $time = $entry->getValue(); + * print('The image was taken on the ' . date('jS', $time)); + * $entry->setValue($time + 7 * 24 * 3600); + * </code> + * + * The example used a standard UNIX timestamp, which is the default + * for this class. + * + * But the Exif format defines dates outside the range of a UNIX + * timestamp (about 1970 to 2038) and so you can also get access to + * the timestamp in two other formats: a simple string or a Julian Day + * Count. Please see the Calendar extension in the PHP Manual for more + * information about the Julian Day Count. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryTime extends PelEntryAscii +{ + + /** + * Constant denoting a UNIX timestamp. + */ + const UNIX_TIMESTAMP = 1; + + /** + * Constant denoting a Exif string. + */ + const EXIF_STRING = 2; + + /** + * Constant denoting a Julian Day Count. + */ + const JULIAN_DAY_COUNT = 3; + + /** + * The Julian Day Count of the timestamp held by this entry. + * + * This is an integer counting the number of whole days since + * January 1st, 4713 B.C. The fractional part of the timestamp held + * by this entry is stored in {@link $seconds}. + * + * @var int + */ + private $day_count; + + /** + * The number of seconds into the day of the timestamp held by this + * entry. + * + * The number of whole days is stored in {@link $day_count} and the + * number of seconds left-over is stored here. + * + * @var int + */ + private $seconds; + + /** + * Make a new entry for holding a timestamp. + * + * @param integer $tag + * the Exif tag which this entry represents. There are + * only three standard tags which hold timestamp, so this should be + * one of the constants {@link PelTag::DATE_TIME}, {@link + * PelTag::DATE_TIME_ORIGINAL}, or {@link + * PelTag::DATE_TIME_DIGITIZED}. + * + * @param integer $timestamp + * the timestamp held by this entry in the correct form + * as indicated by the third argument. For {@link UNIX_TIMESTAMP} + * this is an integer counting the number of seconds since January + * 1st 1970, for {@link EXIF_STRING} this is a string of the form + * 'YYYY:MM:DD hh:mm:ss', and for {@link JULIAN_DAY_COUNT} this is a + * floating point number where the integer part denotes the day + * count and the fractional part denotes the time of day (0.25 means + * 6:00, 0.75 means 18:00). + * + * @param integer $type + * the type of the timestamp. This must be one of + * {@link UNIX_TIMESTAMP}, {@link EXIF_STRING}, or + * {@link JULIAN_DAY_COUNT}. + */ + public function __construct($tag, $timestamp, $type = self::UNIX_TIMESTAMP) + { + parent::__construct($tag); + $this->setValue($timestamp, $type); + } + + /** + * Return the timestamp of the entry. + * + * The timestamp held by this entry is returned in one of three + * formats: as a standard UNIX timestamp (default), as a fractional + * Julian Day Count, or as a string. + * + * @param integer $type + * the type of the timestamp. This must be one of + * {@link UNIX_TIMESTAMP}, {@link EXIF_STRING}, or + * {@link JULIAN_DAY_COUNT}. + * + * @return integer the timestamp held by this entry in the correct form + * as indicated by the type argument. For {@link UNIX_TIMESTAMP} + * this is an integer counting the number of seconds since January + * 1st 1970, for {@link EXIF_STRING} this is a string of the form + * 'YYYY:MM:DD hh:mm:ss', and for {@link JULIAN_DAY_COUNT} this is a + * floating point number where the integer part denotes the day + * count and the fractional part denotes the time of day (0.25 means + * 6:00, 0.75 means 18:00). + */ + public function getValue($type = self::UNIX_TIMESTAMP) + { + switch ($type) { + case self::UNIX_TIMESTAMP: + $seconds = $this->convertJdToUnix($this->day_count); + if ($seconds === false) { + /* + * We get false if the Julian Day Count is outside the range + * of a UNIX timestamp. + */ + return false; + } else { + return $seconds + $this->seconds; + } + break; + case self::EXIF_STRING: + list ($year, $month, $day) = $this->convertJdToGregorian($this->day_count); + $hours = (int) ($this->seconds / 3600); + $minutes = (int) ($this->seconds % 3600 / 60); + $seconds = $this->seconds % 60; + return sprintf('%04d:%02d:%02d %02d:%02d:%02d', $year, $month, $day, $hours, $minutes, $seconds); + case self::JULIAN_DAY_COUNT: + return $this->day_count + $this->seconds / 86400; + default: + throw new PelInvalidArgumentException( + 'Expected UNIX_TIMESTAMP (%d), ' . 'EXIF_STRING (%d), or ' . 'JULIAN_DAY_COUNT (%d) for $type, ' . + 'got %d.', + self::UNIX_TIMESTAMP, + self::EXIF_STRING, + self::JULIAN_DAY_COUNT, + $type); + } + } + + /** + * Update the timestamp held by this entry. + * + * @param integer $timestamp + * the timestamp held by this entry in the correct form + * as indicated by the third argument. For {@link UNIX_TIMESTAMP} + * this is an integer counting the number of seconds since January + * 1st 1970, for {@link EXIF_STRING} this is a string of the form + * 'YYYY:MM:DD hh:mm:ss', and for {@link JULIAN_DAY_COUNT} this is a + * floating point number where the integer part denotes the day + * count and the fractional part denotes the time of day (0.25 means + * 6:00, 0.75 means 18:00). + * + * @param integer $type + * the type of the timestamp. This must be one of + * {@link UNIX_TIMESTAMP}, {@link EXIF_STRING}, or + * {@link JULIAN_DAY_COUNT}. + */ + public function setValue($timestamp, $type = self::UNIX_TIMESTAMP) + { + switch ($type) { + case self::UNIX_TIMESTAMP: + $this->day_count = $this->convertUnixToJd($timestamp); + $this->seconds = $timestamp % 86400; + break; + + case self::EXIF_STRING: + /* Clean the timestamp: some timestamps are broken other + * separators than ':' and ' '. */ + $d = preg_split('/[^0-9]+/', $timestamp); + for ($i = 0; $i < 6; $i ++) { + if (empty($d[$i])) { + $d[$i] = 0; + } + } + $this->day_count = $this->convertGregorianToJd($d[0], $d[1], $d[2]); + $this->seconds = $d[3] * 3600 + $d[4] * 60 + $d[5]; + break; + + case self::JULIAN_DAY_COUNT: + $this->day_count = (int) floor($timestamp); + $this->seconds = (int) (86400 * ($timestamp - floor($timestamp))); + break; + + default: + throw new PelInvalidArgumentException( + 'Expected UNIX_TIMESTAMP (%d), ' . 'EXIF_STRING (%d), or ' . 'JULIAN_DAY_COUNT (%d) for $type, ' . + 'got %d.', + self::UNIX_TIMESTAMP, + self::EXIF_STRING, + self::JULIAN_DAY_COUNT, + $type); + } + + /* + * Now finally update the string which will be used when this is + * turned into bytes. + */ + parent::setValue($this->getValue(self::EXIF_STRING)); + } + + // The following four functions are used for converting back and + // forth between the date formats. They are used in preference to + // the ones from the PHP calendar extension to avoid having to + // fiddle with timezones and to avoid depending on the extension. + // + // See http://www.hermetic.ch/cal_stud/jdn.htm#comp for a reference. + + /** + * Converts a date in year/month/day format to a Julian Day count. + * + * @param integer $year + * the year. + * @param integer $month + * the month, 1 to 12. + * @param integer $day + * the day in the month. + * @return integer the Julian Day count. + */ + public function convertGregorianToJd($year, $month, $day) + { + // Special case mapping 0/0/0 -> 0 + if ($year == 0 || $month == 0 || $day == 0) { + return 0; + } + + $m1412 = ($month <= 2) ? - 1 : 0; + return floor((1461 * ($year + 4800 + $m1412)) / 4) + floor((367 * ($month - 2 - 12 * $m1412)) / 12) - + floor((3 * floor(($year + 4900 + $m1412) / 100)) / 4) + $day - 32075; + } + + /** + * Converts a Julian Day count to a year/month/day triple. + * + * @param + * int the Julian Day count. + * @return array an array with three entries: year, month, day. + */ + public function convertJdToGregorian($jd) + { + // Special case mapping 0 -> 0/0/0 + if ($jd == 0) { + return array( + 0, + 0, + 0 + ); + } + + $l = $jd + 68569; + $n = floor((4 * $l) / 146097); + $l = $l - floor((146097 * $n + 3) / 4); + $i = floor((4000 * ($l + 1)) / 1461001); + $l = $l - floor((1461 * $i) / 4) + 31; + $j = floor((80 * $l) / 2447); + $d = $l - floor((2447 * $j) / 80); + $l = floor($j / 11); + $m = $j + 2 - (12 * $l); + $y = 100 * ($n - 49) + $i + $l; + return array( + $y, + $m, + $d + ); + } + + /** + * Converts a UNIX timestamp to a Julian Day count. + * + * @param integer $timestamp + * the timestamp. + * @return integer the Julian Day count. + */ + public function convertUnixToJd($timestamp) + { + return (int) (floor($timestamp / 86400) + 2440588); + } + + /** + * Converts a Julian Day count to a UNIX timestamp. + * + * @param integer $jd + * the Julian Day count. + * + * @return mixed $timestamp the integer timestamp or false if the + * day count cannot be represented as a UNIX timestamp. + */ + public function convertJdToUnix($jd) + { + if ($jd > 0) { + $timestamp = ($jd - 2440588) * 86400; + if ($timestamp >= 0) { + return $timestamp; + } + } + return false; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryUndefined.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryUndefined.php new file mode 100644 index 0000000000000000000000000000000000000000..a2112c370f00e4dd545320e02f192e91a1651b3c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryUndefined.php @@ -0,0 +1,173 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold data for Exif tags of format undefined. + * + * This file contains the base class {@link PelEntryUndefined} and + * the subclasses {@link PelEntryUserComment} which should be used + * to manage the {@link PelTag::USER_COMMENT} tag, and {@link + * PelEntryVersion} which is used to manage entries with version + * information. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for holding data of any kind. + * + * This class can hold bytes of undefined format. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryUndefined extends PelEntry +{ + + /** + * Make a new PelEntry that can hold undefined data. + * + * @param integer $tag + * which this entry represents. This + * should be one of the constants defined in {@link PelTag}, + * e.g., {@link PelTag::SCENE_TYPE}, {@link + * PelTag::MAKER_NOTE} or any other tag with format {@link + * PelFormat::UNDEFINED}. + * + * @param string $data + * the data that this entry will be holding. Since + * the format is undefined, no checking will be done on the data. If no data are given, a empty string will be stored + */ + public function __construct($tag, $data = '') + { + $this->tag = $tag; + $this->format = PelFormat::UNDEFINED; + $this->setValue($data); + } + + /** + * Set the data of this undefined entry. + * + * @param string $data + * the data that this entry will be holding. Since + * the format is undefined, no checking will be done on the data. + */ + public function setValue($data) + { + $this->components = strlen($data); + $this->bytes = $data; + } + + /** + * Get the data of this undefined entry. + * + * @return string the data that this entry is holding. + */ + public function getValue() + { + return $this->bytes; + } + + /** + * Get the value of this entry as text. + * + * The value will be returned in a format suitable for presentation. + * + * @param + * boolean some values can be returned in a long or more + * brief form, and this parameter controls that. + * + * @return string the value as text. + */ + public function getText($brief = false) + { + switch ($this->tag) { + case PelTag::FILE_SOURCE: + // CC (e->components, 1, v); + switch (ord($this->bytes{0})) { + case 0x03: + return 'DSC'; + default: + return sprintf('0x%02X', ord($this->bytes{0})); + } + break; + case PelTag::SCENE_TYPE: + // CC (e->components, 1, v); + switch (ord($this->bytes{0})) { + case 0x01: + return 'Directly photographed'; + default: + return sprintf('0x%02X', ord($this->bytes{0})); + } + break; + case PelTag::COMPONENTS_CONFIGURATION: + // CC (e->components, 4, v); + $v = ''; + for ($i = 0; $i < 4; $i ++) { + switch (ord($this->bytes{$i})) { + case 0: + $v .= '-'; + break; + case 1: + $v .= 'Y'; + break; + case 2: + $v .= 'Cb'; + break; + case 3: + $v .= 'Cr'; + break; + case 4: + $v .= 'R'; + break; + case 5: + $v .= 'G'; + break; + case 6: + $v .= 'B'; + break; + default: + $v .= 'reserved'; + break; + } + if ($i < 3) { + $v .= ' '; + } + } + return $v; + break; + case PelTag::MAKER_NOTE: + // TODO: handle maker notes. + return $this->components . ' bytes unknown MakerNote data'; + break; + default: + return '(undefined)'; + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryUserComment.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryUserComment.php new file mode 100644 index 0000000000000000000000000000000000000000..20dc8bc3968111c538d9760507f0fb72610d7e07 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryUserComment.php @@ -0,0 +1,156 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold data for Exif tags of format undefined. + * + * This file contains the base class {@link PelEntryUndefined} and + * the subclasses {@link PelEntryUserComment} which should be used + * to manage the {@link PelTag::USER_COMMENT} tag, and {@link + * PelEntryVersion} which is used to manage entries with version + * information. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for a user comment. + * + * This class is used to hold user comments, which can come in several + * different character encodings. The Exif standard specifies a + * certain format of the {@link PelTag::USER_COMMENT user comment + * tag}, and this class will make sure that the format is kept. + * + * The most basic use of this class simply stores an ASCII encoded + * string for later retrieval using {@link getValue}: + * + * <code> + * $entry = new PelEntryUserComment('An ASCII string'); + * echo $entry->getValue(); + * </code> + * + * The string can be encoded with a different encoding, and if so, the + * encoding must be given using the second argument. The Exif + * standard specifies three known encodings: 'ASCII', 'JIS', and + * 'Unicode'. If the user comment is encoded using a character + * encoding different from the tree known encodings, then the empty + * string should be passed as encoding, thereby specifying that the + * encoding is undefined. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryUserComment extends PelEntryUndefined +{ + + /** + * The user comment. + * + * @var string + */ + private $comment; + + /** + * The encoding. + * + * This should be one of 'ASCII', 'JIS', 'Unicode', or ''. + * + * @var string + */ + private $encoding; + + /** + * Make a new entry for holding a user comment. + * + * @param + * string the new user comment. + * + * @param + * string the encoding of the comment. This should be either + * 'ASCII', 'JIS', 'Unicode', or the empty string specifying an + * undefined encoding. + */ + public function __construct($comment = '', $encoding = 'ASCII') + { + parent::__construct(PelTag::USER_COMMENT); + $this->setValue($comment, $encoding); + } + + /** + * Set the user comment. + * + * @param + * string the new user comment. + * + * @param + * string the encoding of the comment. This should be either + * 'ASCII', 'JIS', 'Unicode', or the empty string specifying an + * unknown encoding. + */ + public function setValue($comment = '', $encoding = 'ASCII') + { + $this->comment = $comment; + $this->encoding = $encoding; + parent::setValue(str_pad($encoding, 8, chr(0)) . $comment); + } + + /** + * Returns the user comment. + * + * The comment is returned with the same character encoding as when + * it was set using {@link setValue} or {@link __construct the + * constructor}. + * + * @return string the user comment. + */ + public function getValue() + { + return $this->comment; + } + + /** + * Returns the encoding. + * + * @return string the encoding of the user comment. + */ + public function getEncoding() + { + return $this->encoding; + } + + /** + * Returns the user comment. + * + * @return string the user comment. + */ + public function getText($brief = false) + { + return $this->comment; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryVersion.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryVersion.php new file mode 100644 index 0000000000000000000000000000000000000000..0edd269650caf4f8d3a487c94d02a27d69310a9d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryVersion.php @@ -0,0 +1,182 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold data for Exif tags of format undefined. + * + * This file contains the base class {@link PelEntryUndefined} and + * the subclasses {@link PelEntryUserComment} which should be used + * to manage the {@link PelTag::USER_COMMENT} tag, and {@link + * PelEntryVersion} which is used to manage entries with version + * information. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class to hold version information. + * + * There are three Exif entries that hold version information: the + * {@link PelTag::EXIF_VERSION}, {@link + * PelTag::FLASH_PIX_VERSION}, and {@link + * PelTag::INTEROPERABILITY_VERSION} tags. This class manages + * those tags. + * + * The class is used in a very straight-forward way: + * <code> + * $entry = new PelEntryVersion(PelTag::EXIF_VERSION, 2.2); + * </code> + * This creates an entry for an file complying to the Exif 2.2 + * standard. It is easy to test for standards level of an unknown + * entry: + * <code> + * if ($entry->getTag() == PelTag::EXIF_VERSION && + * $entry->getValue() > 2.0) { + * echo 'Recent Exif version.'; + * } + * </code> + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryVersion extends PelEntry +{ + + /** + * The version held by this entry. + * + * @var float + */ + private $version; + + /** + * Make a new entry for holding a version. + * + * @param integer $tag + * This should be one of {@link + * PelTag::EXIF_VERSION}, {@link PelTag::FLASH_PIX_VERSION}, + * or {@link PelTag::INTEROPERABILITY_VERSION}. + * + * @param float $version + * The size of the entries leave room for + * exactly four digits: two digits on either side of the decimal + * point. + */ + public function __construct($tag, $version = 0.0) + { + $this->tag = $tag; + $this->format = PelFormat::UNDEFINED; + $this->setValue($version); + } + + /** + * Set the version held by this entry. + * + * @param float $version + * The size of the entries leave room for + * exactly four digits: two digits on either side of the decimal + * point. + */ + public function setValue($version = 0.0) + { + $this->version = $version; + $major = floor($version); + $minor = ($version - $major) * 100; + $strValue = sprintf('%02.0f%02.0f', $major, $minor); + $this->components = strlen($strValue); + $this->bytes = $strValue; + } + + /** + * Return the version held by this entry. + * + * @return float This will be the same as the value + * given to {@link setValue} or {@link __construct the + * constructor}. + */ + public function getValue() + { + return $this->version; + } + + /** + * Return a text string with the version. + * + * @param boolean $brief + * controls if the output should be brief. Brief + * output omits the word 'Version' so the result is just 'Exif x.y' + * instead of 'Exif Version x.y' if the entry holds information + * about the Exif version --- the output for FlashPix is similar. + * + * @return string the version number with the type of the tag, + * either 'Exif' or 'FlashPix'. + */ + public function getText($brief = false) + { + $v = $this->version; + + /* + * Versions numbers like 2.0 would be output as just 2 if we don't + * add the '.0' ourselves. + */ + if (floor($this->version) == $this->version) { + $v .= '.0'; + } + + switch ($this->tag) { + case PelTag::EXIF_VERSION: + if ($brief) { + return Pel::fmt('Exif %s', $v); + } else { + return Pel::fmt('Exif Version %s', $v); + } + break; + case PelTag::FLASH_PIX_VERSION: + if ($brief) { + return Pel::fmt('FlashPix %s', $v); + } else { + return Pel::fmt('FlashPix Version %s', $v); + } + break; + case PelTag::INTEROPERABILITY_VERSION: + if ($brief) { + return Pel::fmt('Interoperability %s', $v); + } else { + return Pel::fmt('Interoperability Version %s', $v); + } + break; + } + + if ($brief) { + return $v; + } else { + return Pel::fmt('Version %s', $v); + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryWindowsString.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryWindowsString.php new file mode 100644 index 0000000000000000000000000000000000000000..2f043493c0db5be7fdd8f08f3d291bf63304b213 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelEntryWindowsString.php @@ -0,0 +1,161 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes used to hold bytes, both signed and unsigned. + * The {@link + * PelEntryWindowsString} class is used to manipulate strings in the + * format Windows XP needs. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class used to manipulate strings in the format Windows XP uses. + * + * When examining the file properties of an image in Windows XP one + * can fill in title, comment, author, keyword, and subject fields. + * Filling those fields and pressing OK will result in the data being + * written into the Exif data in the image. + * + * The data is written in a non-standard format and can thus not be + * loaded directly --- this class is needed to translate it into + * normal strings. + * + * It is important that entries from this class are only created with + * the {@link PelTag::XP_TITLE}, {@link PelTag::XP_COMMENT}, {@link + * PelTag::XP_AUTHOR}, {@link PelTag::XP_KEYWORD}, and {@link + * PelTag::XP_SUBJECT} tags. If another tag is used the data will no + * longer be correctly decoded when reloaded with PEL. (The data will + * be loaded as an {@link PelEntryByte} entry, which isn't as useful.) + * + * This class is to be used as in + * <code> + * $title = $ifd->getEntry(PelTag::XP_TITLE); + * print($title->getValue()); + * $title->setValue('My favorite cat'); + * </code> + * or if no entry is present one can add a new one with + * <code> + * $title = new PelEntryWindowsString(PelTag::XP_TITLE, 'A cute dog.'); + * $ifd->addEntry($title); + * </code> + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelEntryWindowsString extends PelEntry +{ + + /** + * The string hold by this entry. + * + * This is the string that was given to the {@link __construct + * constructor} or later to {@link setValue}, without any extra NULL + * characters or any such nonsense. + * + * @var string + */ + private $str; + + /** + * Make a new PelEntry that can hold a Windows XP specific string. + * + * @param int $tag + * the tag which this entry represents. This should be + * one of {@link PelTag::XP_TITLE}, {@link PelTag::XP_COMMENT}, + * {@link PelTag::XP_AUTHOR}, {@link PelTag::XP_KEYWORD}, and {@link + * PelTag::XP_SUBJECT} tags. If another tag is used, then this + * entry will be incorrectly reloaded as a {@link PelEntryByte}. + * + * @param string $str + * the string that this entry will represent. It will + * be passed to {@link setValue} and thus has to obey its + * requirements. + */ + public function __construct($tag, $str = '') + { + $this->tag = $tag; + $this->format = PelFormat::BYTE; + $this->setValue($str); + } + + /** + * Give the entry a new value. + * + * This will overwrite the previous value. The value can be + * retrieved later with the {@link getValue} method. + * + * @param string $str + * the new value of the entry. This should be use the + * Latin-1 encoding and be given without any extra NULL characters. + */ + public function setValue($str) + { + $l = strlen($str); + + $this->components = 2 * ($l + 1); + $this->str = $str; + $this->bytes = ''; + for ($i = 0; $i < $l; $i ++) { + $this->bytes .= $str{$i} . chr(0x00); + } + + $this->bytes .= chr(0x00) . chr(0x00); + } + + /** + * Return the string of the entry. + * + * @return string the string held, without any extra NULL + * characters. The string will be the same as the one given to + * {@link setValue} or to the {@link __construct constructor}. + */ + public function getValue() + { + return $this->str; + } + + /** + * Return the string of the entry. + * + * This methods returns the same as {@link getValue}. + * + * @param boolean $brief + * not used. + * + * @return string the string held, without any extra NULL + * characters. The string will be the same as the one given to + * {@link setValue} or to the {@link __construct constructor}. + */ + public function getText($brief = false) + { + return $this->str; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelException.php new file mode 100644 index 0000000000000000000000000000000000000000..3b663e3cfd5e8668360063967db0d13319975266 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelException.php @@ -0,0 +1,62 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Standard PEL printf() capable exception. + * This class is a simple extension of the standard Exception class in + * PHP, and all the methods defined there retain their original + * meaning. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + * + * @subpackage PelException + */ +class PelException extends \Exception +{ + + /** + * Construct a new PEL exception. + * + * @param string $fmt + * an optional format string can be given. It + * will be used as a format string for vprintf(). The remaining + * arguments will be available for the format string as usual with + * vprintf(). + * + * @param mixed ...$args + * any number of arguments to be used with + * the format string. + */ + public function __construct($fmt, $args = null) + { + $args = func_get_args(); + $fmt = array_shift($args); + parent::__construct(vsprintf($fmt, $args)); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelExif.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelExif.php new file mode 100644 index 0000000000000000000000000000000000000000..c7deb2a43a4bc68c9f5ae86bd03591938f27d136 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelExif.php @@ -0,0 +1,159 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif data. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class representing Exif data. + * + * Exif data resides as {@link PelJpegContent data} and consists of a + * header followed by a number of {@link PelJpegIfd IFDs}. + * + * The interesting method in this class is {@link getTiff()} which + * will return the {@link PelTiff} object which really holds the data + * which one normally think of when talking about Exif data. This is + * because Exif data is stored as an extension of the TIFF file + * format. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelExif extends PelJpegContent +{ + + /** + * Exif header. + * + * The Exif data must start with these six bytes to be considered + * valid. + */ + const EXIF_HEADER = "Exif\0\0"; + + /** + * The PelTiff object contained within. + * + * @var PelTiff + */ + private $tiff = null; + + /** + * Construct a new Exif object. + * + * The new object will be empty --- use the {@link load()} method to + * load Exif data from a {@link PelDataWindow} object, or use the + * {@link setTiff()} to change the {@link PelTiff} object, which is + * the true holder of the Exif {@link PelEntry entries}. + */ + public function __construct() + { + // nothing to be done + } + + /** + * Load and parse Exif data. + * + * This will populate the object with Exif data, contained as a + * {@link PelTiff} object. This TIFF object can be accessed with + * the {@link getTiff()} method. + * + * @param PelDataWindow $d + */ + public function load(PelDataWindow $d) + { + Pel::debug('Parsing %d bytes of Exif data...', $d->getSize()); + + /* There must be at least 6 bytes for the Exif header. */ + if ($d->getSize() < 6) { + throw new PelInvalidDataException('Expected at least 6 bytes of Exif ' . 'data, found just %d bytes.', $d->getSize()); + } + /* Verify the Exif header */ + if ($d->strcmp(0, self::EXIF_HEADER)) { + $d->setWindowStart(strlen(self::EXIF_HEADER)); + } else { + throw new PelInvalidDataException('Exif header not found.'); + } + + /* The rest of the data is TIFF data. */ + $this->tiff = new PelTiff(); + $this->tiff->load($d); + } + + /** + * Change the TIFF information. + * + * Exif data is really stored as TIFF data, and this method can be + * used to change this data from one {@link PelTiff} object to + * another. + * + * @param PelTiff $tiff + * the new TIFF object. + */ + public function setTiff(PelTiff $tiff) + { + $this->tiff = $tiff; + } + + /** + * Get the underlying TIFF object. + * + * The actual Exif data is stored in a {@link PelTiff} object, and + * this method provides access to it. + * + * @return PelTiff the TIFF object with the Exif data. + */ + public function getTiff() + { + return $this->tiff; + } + + /** + * Produce bytes for the Exif data. + * + * @return string bytes representing this object. + */ + public function getBytes() + { + return self::EXIF_HEADER . $this->tiff->getBytes(); + } + + /** + * Return a string representation of this object. + * + * @return string a string describing this object. This is mostly + * useful for debugging. + */ + public function __toString() + { + return Pel::tra("Dumping Exif data...\n") . $this->tiff->__toString(); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelFormat.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelFormat.php new file mode 100644 index 0000000000000000000000000000000000000000..aa9caa3cca5b95c08e140ce2f9add30c749d9e1d --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelFormat.php @@ -0,0 +1,227 @@ +<?php +/* + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * Copyright (C) 2017 Johannes Weberhofer. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Namespace for functions operating on Exif formats. + * + * This class defines the constants that are to be used whenever one + * has to refer to the format of an Exif tag. They will be + * collectively denoted by the pseudo-type PelFormat throughout the + * documentation. + * + * All the methods defined here are static, and they all operate on a + * single argument which should be one of the class constants. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @author Johannes Weberhofer <jweberhofer@weberhofer.at> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package + * + */ +class PelFormat +{ + + /** + * Unsigned byte. + * + * Each component will be an unsigned 8-bit integer with a value + * between 0 and 255. + * + * Modelled with the {@link PelEntryByte} class. + */ + const BYTE = 1; + + /** + * ASCII string. + * + * Each component will be an ASCII character. + * + * Modelled with the {@link PelEntryAscii} class. + */ + const ASCII = 2; + + /** + * Unsigned short. + * + * Each component will be an unsigned 16-bit integer with a value + * between 0 and 65535. + * + * Modelled with the {@link PelEntryShort} class. + */ + const SHORT = 3; + + /** + * Unsigned long. + * + * Each component will be an unsigned 32-bit integer with a value + * between 0 and 4294967295. + * + * Modelled with the {@link PelEntryLong} class. + */ + const LONG = 4; + + /** + * Unsigned rational number. + * + * Each component will consist of two unsigned 32-bit integers + * denoting the enumerator and denominator. Each integer will have + * a value between 0 and 4294967295. + * + * Modelled with the {@link PelEntryRational} class. + */ + const RATIONAL = 5; + + /** + * Signed byte. + * + * Each component will be a signed 8-bit integer with a value + * between -128 and 127. + * + * Modelled with the {@link PelEntrySByte} class. + */ + const SBYTE = 6; + + /** + * Undefined byte. + * + * Each component will be a byte with no associated interpretation. + * + * Modelled with the {@link PelEntryUndefined} class. + */ + const UNDEFINED = 7; + + /** + * Signed short. + * + * Each component will be a signed 16-bit integer with a value + * between -32768 and 32767. + * + * Modelled with the {@link PelEntrySShort} class. + */ + const SSHORT = 8; + + /** + * Signed long. + * + * Each component will be a signed 32-bit integer with a value + * between -2147483648 and 2147483647. + * + * Modelled with the {@link PelEntrySLong} class. + */ + const SLONG = 9; + + /** + * Signed rational number. + * + * Each component will consist of two signed 32-bit integers + * denoting the enumerator and denominator. Each integer will have + * a value between -2147483648 and 2147483647. + * + * Modelled with the {@link PelEntrySRational} class. + */ + const SRATIONAL = 10; + + /** + * Floating point number. + * + * Entries with this format are not currently implemented. + */ + const FLOAT = 11; + + /** + * Double precision floating point number. + * + * Entries with this format are not currently implemented. + */ + const DOUBLE = 12; + + /** + * Values for format's short names + */ + protected static $formatName = array( + self::ASCII => 'Ascii', + self::BYTE => 'Byte', + self::SHORT => 'Short', + self::LONG => 'Long', + self::RATIONAL => 'Rational', + self::SBYTE => 'SByte', + self::SSHORT => 'SShort', + self::SLONG => 'SLong', + self::SRATIONAL => 'SRational', + self::FLOAT => 'Float', + self::DOUBLE => 'Double', + self::UNDEFINED => 'Undefined' + ); + + protected static $formatLength = array( + self::ASCII => 1, + self::BYTE => 1, + self::SHORT => 2, + self::LONG => 4, + self::RATIONAL => 8, + self::SBYTE => 1, + self::SSHORT => 2, + self::SLONG => 4, + self::SRATIONAL => 8, + self::FLOAT => 4, + self::DOUBLE => 8, + self::UNDEFINED => 1 + ); + + /** + * Returns the name of a format like 'Ascii' for the {@link ASCII} format + * + * @param integer $type + * as defined in {@link PelFormat} + * @return string + */ + public static function getName($type) + { + if (array_key_exists($type, self::$formatName)) { + return self::$formatName[$type]; + } else { + return Pel::fmt('Unknown format: 0x%X', $type); + } + } + + /** + * Return the size of components in a given format in bytes needed to store one component with the + * given format. + * + * @param integer $type + * as defined in {@link PelFormat} + * @return integer|string + */ + public static function getSize($type) + { + if (array_key_exists($type, self::$formatLength)) { + return self::$formatLength[$type]; + } else { + return Pel::fmt('Unknown format: 0x%X', $type); + } + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelIfd.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelIfd.php new file mode 100644 index 0000000000000000000000000000000000000000..86b517642e0ba1dab8ff6bea4f42acb824ac5f3e --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelIfd.php @@ -0,0 +1,1221 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007, 2008 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif IFDs. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class representing an Image File Directory (IFD). + * + * {@link PelTiff TIFF data} is structured as a number of Image File + * Directories, IFDs for short. Each IFD contains a number of {@link + * PelEntry entries}, some data and finally a link to the next IFD. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelIfd implements \IteratorAggregate, \ArrayAccess +{ + + /** + * Main image IFD. + * + * Pass this to the constructor when creating an IFD which will be + * the IFD of the main image. + */ + const IFD0 = 0; + + /** + * Thumbnail image IFD. + * + * Pass this to the constructor when creating an IFD which will be + * the IFD of the thumbnail image. + */ + const IFD1 = 1; + + /** + * Exif IFD. + * + * Pass this to the constructor when creating an IFD which will be + * the Exif sub-IFD. + */ + const EXIF = 2; + + /** + * GPS IFD. + * + * Pass this to the constructor when creating an IFD which will be + * the GPS sub-IFD. + */ + const GPS = 3; + + /** + * Interoperability IFD. + * + * Pass this to the constructor when creating an IFD which will be + * the interoperability sub-IFD. + */ + const INTEROPERABILITY = 4; + + /** + * The entries held by this directory. + * + * Each tag in the directory is represented by a {@link PelEntry} + * object in this array. + * + * @var array + */ + private $entries = array(); + + /** + * The type of this directory. + * + * Initialized in the constructor. Must be one of {@link IFD0}, + * {@link IFD1}, {@link EXIF}, {@link GPS}, or {@link + * INTEROPERABILITY}. + * + * @var int + */ + private $type; + + /** + * The next directory. + * + * This will be initialized in the constructor, or be left as null + * if this is the last directory. + * + * @var PelIfd + */ + private $next = null; + + /** + * Sub-directories pointed to by this directory. + * + * This will be an array of ({@link PelTag}, {@link PelIfd}) pairs. + * + * @var array + */ + private $sub = array(); + + /** + * The thumbnail data. + * + * This will be initialized in the constructor, or be left as null + * if there are no thumbnail as part of this directory. + * + * @var PelDataWindow + */ + private $thumb_data = null; + // TODO: use this format to choose between the + // JPEG_INTERCHANGE_FORMAT and STRIP_OFFSETS tags. + // private $thumb_format; + + /** + * Construct a new Image File Directory (IFD). + * + * The IFD will be empty, use the {@link addEntry()} method to add + * an {@link PelEntry}. Use the {@link setNext()} method to link + * this IFD to another. + * + * @param + * int type the type of this IFD. Must be one of {@link + * IFD0}, {@link IFD1}, {@link EXIF}, {@link GPS}, or {@link + * INTEROPERABILITY}. An {@link PelIfdException} will be thrown + * otherwise. + */ + public function __construct($type) + { + if ($type != PelIfd::IFD0 && $type != PelIfd::IFD1 && $type != PelIfd::EXIF && $type != PelIfd::GPS && + $type != PelIfd::INTEROPERABILITY) { + throw new PelIfdException('Unknown IFD type: %d', $type); + } + + $this->type = $type; + } + + /** + * Load data into a Image File Directory (IFD). + * + * @param PelDataWindow $d + * the data window that will provide the data. + * + * @param int $offset + * the offset within the window where the directory will + * be found. + */ + public function load(PelDataWindow $d, $offset) + { + $thumb_offset = 0; + $thumb_length = 0; + + Pel::debug('Constructing IFD at offset %d from %d bytes...', $offset, $d->getSize()); + + /* Read the number of entries */ + $n = $d->getShort($offset); + Pel::debug('Loading %d entries...', $n); + + $offset += 2; + + /* Check if we have enough data. */ + if ($offset + 12 * $n > $d->getSize()) { + $n = floor(($offset - $d->getSize()) / 12); + Pel::maybeThrow(new PelIfdException('Adjusted to: %d.', $n)); + } + + for ($i = 0; $i < $n; $i ++) { + // TODO: increment window start instead of using offsets. + $tag = $d->getShort($offset + 12 * $i); + Pel::debug( + 'Loading entry with tag 0x%04X: %s (%d of %d)...', + $tag, + PelTag::getName($this->type, $tag), + $i + 1, + $n); + + switch ($tag) { + case PelTag::EXIF_IFD_POINTER: + case PelTag::GPS_INFO_IFD_POINTER: + case PelTag::INTEROPERABILITY_IFD_POINTER: + $o = $d->getLong($offset + 12 * $i + 8); + Pel::debug('Found sub IFD at offset %d', $o); + + /* Map tag to IFD type. */ + if ($tag == PelTag::EXIF_IFD_POINTER) { + $type = PelIfd::EXIF; + } elseif ($tag == PelTag::GPS_INFO_IFD_POINTER) { + $type = PelIfd::GPS; + } elseif ($tag == PelTag::INTEROPERABILITY_IFD_POINTER) { + $type = PelIfd::INTEROPERABILITY; + } + + $this->sub[$type] = new PelIfd($type); + $this->sub[$type]->load($d, $o); + break; + case PelTag::JPEG_INTERCHANGE_FORMAT: + $thumb_offset = $d->getLong($offset + 12 * $i + 8); + $this->safeSetThumbnail($d, $thumb_offset, $thumb_length); + break; + case PelTag::JPEG_INTERCHANGE_FORMAT_LENGTH: + $thumb_length = $d->getLong($offset + 12 * $i + 8); + $this->safeSetThumbnail($d, $thumb_offset, $thumb_length); + break; + default: + $format = $d->getShort($offset + 12 * $i + 2); + $components = $d->getLong($offset + 12 * $i + 4); + + /* + * The data size. If bigger than 4 bytes, the actual data is + * not in the entry but somewhere else, with the offset stored + * in the entry. + */ + $s = PelFormat::getSize($format) * $components; + if ($s > 0) { + $doff = $offset + 12 * $i + 8; + if ($s > 4) { + $doff = $d->getLong($doff); + } + $data = $d->getClone($doff, $s); + } else { + $data = new PelDataWindow(); + } + + try { + $entry = $this->newEntryFromData($tag, $format, $components, $data); + $this->addEntry($entry); + } catch (PelException $e) { + /* + * Throw the exception when running in strict mode, store + * otherwise. + */ + Pel::maybeThrow($e); + } + + /* The format of the thumbnail is stored in this tag. */ + // TODO: handle TIFF thumbnail. + // if ($tag == PelTag::COMPRESSION) { + // $this->thumb_format = $data->getShort(); + // } + break; + } + } + + /* Offset to next IFD */ + $o = $d->getLong($offset + 12 * $n); + Pel::debug('Current offset is %d, link at %d points to %d.', $offset, $offset + 12 * $n, $o); + + if ($o > 0) { + /* Sanity check: we need 6 bytes */ + if ($o > $d->getSize() - 6) { + Pel::maybeThrow(new PelIfdException('Bogus offset to next IFD: ' . '%d > %d!', $o, $d->getSize() - 6)); + } else { + if ($this->type == PelIfd::IFD1) { + // IFD1 shouldn't link further... + Pel::maybeThrow(new PelIfdException('IFD1 links to another IFD!')); + } + $this->next = new PelIfd(PelIfd::IFD1); + $this->next->load($d, $o); + } + } else { + Pel::debug('Last IFD.'); + } + } + + /** + * Make a new entry from a bunch of bytes. + * + * This method will create the proper subclass of {@link PelEntry} + * corresponding to the {@link PelTag} and {@link PelFormat} given. + * The entry will be initialized with the data given. + * + * Please note that the data you pass to this method should come + * from an image, that is, it should be raw bytes. If instead you + * want to create an entry for holding, say, an short integer, then + * create a {@link PelEntryShort} object directly and load the data + * into it. + * + * A {@link PelUnexpectedFormatException} is thrown if a mismatch is + * discovered between the tag and format, and likewise a {@link + * PelWrongComponentCountException} is thrown if the number of + * components does not match the requirements of the tag. The + * requirements for a given tag (if any) can be found in the + * documentation for {@link PelTag}. + * + * @param integer $tag + * the tag of the entry as defined in {@link PelTag}. + * + * @param integer $format + * the format of the entry as defined in {@link PelFormat}. + * + * @param int $components + * the components in the entry. + * + * @param PelDataWindow $data + * the data which will be used to construct the + * entry. + * + * @return PelEntry a newly created entry, holding the data given. + */ + public function newEntryFromData($tag, $format, $components, PelDataWindow $data) + { + + /* + * First handle tags for which we have a specific PelEntryXXX + * class. + */ + switch ($this->type) { + case self::IFD0: + case self::IFD1: + case self::EXIF: + case self::INTEROPERABILITY: + switch ($tag) { + case PelTag::DATE_TIME: + case PelTag::DATE_TIME_ORIGINAL: + case PelTag::DATE_TIME_DIGITIZED: + if ($format != PelFormat::ASCII) { + throw new PelUnexpectedFormatException($this->type, $tag, $format, PelFormat::ASCII); + } + if ($components != 20) { + throw new PelWrongComponentCountException($this->type, $tag, $components, 20); + } + // TODO: handle timezones. + return new PelEntryTime($tag, $data->getBytes(0, - 1), PelEntryTime::EXIF_STRING); + + case PelTag::COPYRIGHT: + if ($format != PelFormat::ASCII) { + throw new PelUnexpectedFormatException($this->type, $tag, $format, PelFormat::ASCII); + } + $v = explode("\0", trim($data->getBytes(), ' ')); + if (! isset($v[1])) { + Pel::maybeThrow(new PelException('Invalid copyright: %s', $data->getBytes())); + // when not in strict mode, set empty copyright and continue + $v[1] = ''; + } + return new PelEntryCopyright($v[0], $v[1]); + + case PelTag::EXIF_VERSION: + case PelTag::FLASH_PIX_VERSION: + case PelTag::INTEROPERABILITY_VERSION: + if ($format != PelFormat::UNDEFINED) { + throw new PelUnexpectedFormatException($this->type, $tag, $format, PelFormat::UNDEFINED); + } + return new PelEntryVersion($tag, $data->getBytes() / 100); + + case PelTag::USER_COMMENT: + if ($format != PelFormat::UNDEFINED) { + throw new PelUnexpectedFormatException($this->type, $tag, $format, PelFormat::UNDEFINED); + } + if ($data->getSize() < 8) { + return new PelEntryUserComment(); + } else { + return new PelEntryUserComment($data->getBytes(8), rtrim($data->getBytes(0, 8))); + } + // this point can not be reached + case PelTag::XP_TITLE: + case PelTag::XP_COMMENT: + case PelTag::XP_AUTHOR: + case PelTag::XP_KEYWORDS: + case PelTag::XP_SUBJECT: + if ($format != PelFormat::BYTE) { + throw new PelUnexpectedFormatException($this->type, $tag, $format, PelFormat::BYTE); + } + $v = ''; + for ($i = 0; $i < $components; $i ++) { + $b = $data->getByte($i); + /* + * Convert the byte to a character if it is non-null --- + * information about the character encoding of these entries + * would be very nice to have! So far my tests have shown + * that characters in the Latin-1 character set are stored in + * a single byte followed by a NULL byte. + */ + if ($b != 0) { + $v .= chr($b); + } + } + + return new PelEntryWindowsString($tag, $v); + } + // This point can be reached! Continue with default. + case self::GPS: + default: + /* Then handle the basic formats. */ + switch ($format) { + case PelFormat::BYTE: + $v = new PelEntryByte($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getByte($i)); + } + return $v; + + case PelFormat::SBYTE: + $v = new PelEntrySByte($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getSByte($i)); + } + return $v; + + case PelFormat::ASCII: + return new PelEntryAscii($tag, rtrim($data->getBytes(0), "\0")); + + case PelFormat::SHORT: + $v = new PelEntryShort($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getShort($i * 2)); + } + return $v; + + case PelFormat::SSHORT: + $v = new PelEntrySShort($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getSShort($i * 2)); + } + return $v; + + case PelFormat::LONG: + $v = new PelEntryLong($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getLong($i * 4)); + } + return $v; + + case PelFormat::SLONG: + $v = new PelEntrySLong($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getSLong($i * 4)); + } + return $v; + + case PelFormat::RATIONAL: + $v = new PelEntryRational($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getRational($i * 8)); + } + return $v; + + case PelFormat::SRATIONAL: + $v = new PelEntrySRational($tag); + for ($i = 0; $i < $components; $i ++) { + $v->addNumber($data->getSRational($i * 8)); + } + return $v; + + case PelFormat::UNDEFINED: + return new PelEntryUndefined($tag, $data->getBytes()); + + default: + throw new PelException('Unsupported format: %s', PelFormat::getName($format)); + } + } + } + + /** + * Extract thumbnail data safely. + * + * It is safe to call this method repeatedly with either the offset + * or the length set to zero, since it requires both of these + * arguments to be positive before the thumbnail is extracted. + * + * When both parameters are set it will check the length against the + * available data and adjust as necessary. Only then is the + * thumbnail data loaded. + * + * @param PelDataWindow $d + * the data from which the thumbnail will be + * extracted. + * + * @param int $offset + * the offset into the data. + * + * @param int $length + * the length of the thumbnail. + */ + private function safeSetThumbnail(PelDataWindow $d, $offset, $length) + { + /* + * Load the thumbnail if both the offset and the length is + * available. + */ + if ($offset > 0 && $length > 0) { + /* + * Some images have a broken length, so we try to carefully + * check the length before we store the thumbnail. + */ + if ($offset + $length > $d->getSize()) { + Pel::maybeThrow( + new PelIfdException( + 'Thumbnail length %d bytes ' . 'adjusted to %d bytes.', + $length, + $d->getSize() - $offset)); + $length = $d->getSize() - $offset; + } + + /* Now set the thumbnail normally. */ + $this->setThumbnail($d->getClone($offset, $length)); + } + } + + /** + * Set thumbnail data. + * + * Use this to embed an arbitrary JPEG image within this IFD. The + * data will be checked to ensure that it has a proper {@link + * PelJpegMarker::EOI} at the end. If not, then the length is + * adjusted until one if found. An {@link PelIfdException} might be + * thrown (depending on {@link Pel::$strict}) this case. + * + * @param PelDataWindow $d + * the thumbnail data. + */ + public function setThumbnail(PelDataWindow $d) + { + $size = $d->getSize(); + /* Now move backwards until we find the EOI JPEG marker. */ + while ($d->getByte($size - 2) != 0xFF || $d->getByte($size - 1) != PelJpegMarker::EOI) { + $size --; + } + + if ($size != $d->getSize()) { + Pel::maybeThrow(new PelIfdException('Decrementing thumbnail size ' . 'to %d bytes', $size)); + } + $this->thumb_data = $d->getClone(0, $size); + } + + /** + * Get the type of this directory. + * + * @return int of {@link PelIfd::IFD0}, {@link PelIfd::IFD1}, {@link + * PelIfd::EXIF}, {@link PelIfd::GPS}, or {@link + * PelIfd::INTEROPERABILITY}. + */ + public function getType() + { + return $this->type; + } + + /** + * Is a given tag valid for this IFD? + * + * Different types of IFDs can contain different kinds of tags --- + * the {@link IFD0} type, for example, cannot contain a {@link + * PelTag::GPS_LONGITUDE} tag. + * + * A special exception is tags with values above 0xF000. They are + * treated as private tags and will be allowed everywhere (use this + * for testing or for implementing your own types of tags). + * + * @param PelTag $tag + * the tag. + * + * @return boolean true if the tag is considered valid in this IFD, + * false otherwise. + * + * @see getValidTags() + */ + public function isValidTag($tag) + { + return $tag > 0xF000 || in_array($tag, $this->getValidTags()); + } + + /** + * Returns a list of valid tags for this IFD. + * + * @return array an array of {@link PelTag}s which are valid for + * this IFD. + */ + public function getValidTags() + { + switch ($this->type) { + case PelIfd::IFD0: + case PelIfd::IFD1: + return array( + PelTag::IMAGE_WIDTH, + PelTag::IMAGE_LENGTH, + PelTag::BITS_PER_SAMPLE, + PelTag::COMPRESSION, + PelTag::PHOTOMETRIC_INTERPRETATION, + PelTag::DOCUMENT_NAME, + PelTag::IMAGE_DESCRIPTION, + PelTag::MAKE, + PelTag::MODEL, + PelTag::STRIP_OFFSETS, + PelTag::ORIENTATION, + PelTag::SAMPLES_PER_PIXEL, + PelTag::ROWS_PER_STRIP, + PelTag::STRIP_BYTE_COUNTS, + PelTag::X_RESOLUTION, + PelTag::Y_RESOLUTION, + PelTag::PLANAR_CONFIGURATION, + PelTag::RESOLUTION_UNIT, + PelTag::TRANSFER_FUNCTION, + PelTag::SOFTWARE, + PelTag::DATE_TIME, + PelTag::ARTIST, + PelTag::WHITE_POINT, + PelTag::PRIMARY_CHROMATICITIES, + PelTag::JPEG_INTERCHANGE_FORMAT, + PelTag::JPEG_INTERCHANGE_FORMAT_LENGTH, + PelTag::YCBCR_COEFFICIENTS, + PelTag::YCBCR_SUB_SAMPLING, + PelTag::YCBCR_POSITIONING, + PelTag::REFERENCE_BLACK_WHITE, + PelTag::COPYRIGHT, + PelTag::EXIF_IFD_POINTER, + PelTag::GPS_INFO_IFD_POINTER, + PelTag::PRINT_IM, + PelTag::XP_TITLE, + PelTag::XP_COMMENT, + PelTag::XP_AUTHOR, + PelTag::XP_KEYWORDS, + PelTag::XP_SUBJECT, + PelTag::RATING + ); + + case PelIfd::EXIF: + return array( + PelTag::EXPOSURE_TIME, + PelTag::FNUMBER, + PelTag::EXPOSURE_PROGRAM, + PelTag::SPECTRAL_SENSITIVITY, + PelTag::ISO_SPEED_RATINGS, + PelTag::OECF, + PelTag::EXIF_VERSION, + PelTag::DATE_TIME_ORIGINAL, + PelTag::DATE_TIME_DIGITIZED, + PelTag::COMPONENTS_CONFIGURATION, + PelTag::COMPRESSED_BITS_PER_PIXEL, + PelTag::SHUTTER_SPEED_VALUE, + PelTag::APERTURE_VALUE, + PelTag::BRIGHTNESS_VALUE, + PelTag::EXPOSURE_BIAS_VALUE, + PelTag::MAX_APERTURE_VALUE, + PelTag::SUBJECT_DISTANCE, + PelTag::METERING_MODE, + PelTag::LIGHT_SOURCE, + PelTag::FLASH, + PelTag::FOCAL_LENGTH, + PelTag::MAKER_NOTE, + PelTag::USER_COMMENT, + PelTag::SUB_SEC_TIME, + PelTag::SUB_SEC_TIME_ORIGINAL, + PelTag::SUB_SEC_TIME_DIGITIZED, + PelTag::FLASH_PIX_VERSION, + PelTag::COLOR_SPACE, + PelTag::PIXEL_X_DIMENSION, + PelTag::PIXEL_Y_DIMENSION, + PelTag::RELATED_SOUND_FILE, + PelTag::FLASH_ENERGY, + PelTag::SPATIAL_FREQUENCY_RESPONSE, + PelTag::FOCAL_PLANE_X_RESOLUTION, + PelTag::FOCAL_PLANE_Y_RESOLUTION, + PelTag::FOCAL_PLANE_RESOLUTION_UNIT, + PelTag::SUBJECT_LOCATION, + PelTag::EXPOSURE_INDEX, + PelTag::SENSING_METHOD, + PelTag::FILE_SOURCE, + PelTag::SCENE_TYPE, + PelTag::CFA_PATTERN, + PelTag::CUSTOM_RENDERED, + PelTag::EXPOSURE_MODE, + PelTag::WHITE_BALANCE, + PelTag::DIGITAL_ZOOM_RATIO, + PelTag::FOCAL_LENGTH_IN_35MM_FILM, + PelTag::SCENE_CAPTURE_TYPE, + PelTag::GAIN_CONTROL, + PelTag::CONTRAST, + PelTag::SATURATION, + PelTag::SHARPNESS, + PelTag::DEVICE_SETTING_DESCRIPTION, + PelTag::SUBJECT_DISTANCE_RANGE, + PelTag::IMAGE_UNIQUE_ID, + PelTag::INTEROPERABILITY_IFD_POINTER, + PelTag::GAMMA + ); + + case PelIfd::GPS: + return array( + PelTag::GPS_VERSION_ID, + PelTag::GPS_LATITUDE_REF, + PelTag::GPS_LATITUDE, + PelTag::GPS_LONGITUDE_REF, + PelTag::GPS_LONGITUDE, + PelTag::GPS_ALTITUDE_REF, + PelTag::GPS_ALTITUDE, + PelTag::GPS_TIME_STAMP, + PelTag::GPS_SATELLITES, + PelTag::GPS_STATUS, + PelTag::GPS_MEASURE_MODE, + PelTag::GPS_DOP, + PelTag::GPS_SPEED_REF, + PelTag::GPS_SPEED, + PelTag::GPS_TRACK_REF, + PelTag::GPS_TRACK, + PelTag::GPS_IMG_DIRECTION_REF, + PelTag::GPS_IMG_DIRECTION, + PelTag::GPS_MAP_DATUM, + PelTag::GPS_DEST_LATITUDE_REF, + PelTag::GPS_DEST_LATITUDE, + PelTag::GPS_DEST_LONGITUDE_REF, + PelTag::GPS_DEST_LONGITUDE, + PelTag::GPS_DEST_BEARING_REF, + PelTag::GPS_DEST_BEARING, + PelTag::GPS_DEST_DISTANCE_REF, + PelTag::GPS_DEST_DISTANCE, + PelTag::GPS_PROCESSING_METHOD, + PelTag::GPS_AREA_INFORMATION, + PelTag::GPS_DATE_STAMP, + PelTag::GPS_DIFFERENTIAL + ); + + case PelIfd::INTEROPERABILITY: + return array( + PelTag::INTEROPERABILITY_INDEX, + PelTag::INTEROPERABILITY_VERSION, + PelTag::RELATED_IMAGE_FILE_FORMAT, + PelTag::RELATED_IMAGE_WIDTH, + PelTag::RELATED_IMAGE_LENGTH + ); + + /* + * TODO: Where do these tags belong? + * PelTag::FILL_ORDER, + * PelTag::TRANSFER_RANGE, + * PelTag::JPEG_PROC, + * PelTag::BATTERY_LEVEL, + * PelTag::IPTC_NAA, + * PelTag::INTER_COLOR_PROFILE, + * PelTag::CFA_REPEAT_PATTERN_DIM, + */ + } + } + + /** + * Get the name of an IFD type. + * + * @param int $type + * one of {@link PelIfd::IFD0}, {@link PelIfd::IFD1}, + * {@link PelIfd::EXIF}, {@link PelIfd::GPS}, or {@link + * PelIfd::INTEROPERABILITY}. + * + * @return string the name of type. + */ + public static function getTypeName($type) + { + switch ($type) { + case self::IFD0: + return '0'; + case self::IFD1: + return '1'; + case self::EXIF: + return 'Exif'; + case self::GPS: + return 'GPS'; + case self::INTEROPERABILITY: + return 'Interoperability'; + default: + throw new PelIfdException('Unknown IFD type: %d', $type); + } + } + + /** + * Get the name of this directory. + * + * @return string the name of this directory. + */ + public function getName() + { + return $this->getTypeName($this->type); + } + + /** + * Adds an entry to the directory. + * + * @param PelEntry $e + * the entry that will be added. If the entry is not + * valid in this IFD (as per {@link isValidTag()}) an + * {@link PelInvalidDataException} is thrown. + * + * @todo The entry will be identified with its tag, so each + * directory can only contain one entry with each tag. Is this a + * bug? + */ + public function addEntry(PelEntry $e) + { + if ($this->isValidTag($e->getTag())) { + $e->setIfdType($this->type); + $this->entries[$e->getTag()] = $e; + } else { + throw new PelInvalidDataException("IFD %s cannot hold\n%s", $this->getName(), $e->__toString()); + } + } + + /** + * Does a given tag exist in this IFD? + * + * This methods is part of the ArrayAccess SPL interface for + * overriding array access of objects, it allows you to check for + * existance of an entry in the IFD: + * + * <code> + * if (isset($ifd[PelTag::FNUMBER])) + * // ... do something with the F-number. + * </code> + * + * @param PelTag $tag + * the offset to check. + * + * @return boolean whether the tag exists. + */ + public function offsetExists($tag) + { + return isset($this->entries[$tag]); + } + + /** + * Retrieve a given tag from this IFD. + * + * This methods is part of the ArrayAccess SPL interface for + * overriding array access of objects, it allows you to read entries + * from the IFD the same was as for an array: + * + * <code> + * $entry = $ifd[PelTag::FNUMBER]; + * </code> + * + * @param PelTag $tag + * the tag to return. It is an error to ask for a tag + * which is not in the IFD, just like asking for a non-existant + * array entry. + * + * @return PelEntry the entry. + */ + public function offsetGet($tag) + { + return $this->entries[$tag]; + } + + /** + * Set or update a given tag in this IFD. + * + * This methods is part of the ArrayAccess SPL interface for + * overriding array access of objects, it allows you to add new + * entries or replace esisting entries by doing: + * + * <code> + * $ifd[PelTag::EXPOSURE_BIAS_VALUE] = $entry; + * </code> + * + * Note that the actual array index passed is ignored! Instead the + * {@link PelTag} from the entry is used. + * + * @param PelTag $tag + * the offset to update. + * + * @param PelEntry $e + * the new value. + */ + public function offsetSet($tag, $e) + { + if ($e instanceof PelEntry) { + $tag = $e->getTag(); + $this->entries[$tag] = $e; + } else { + throw new PelInvalidArgumentException('Argument "%s" must be a PelEntry.', $e); + } + } + + /** + * Unset a given tag in this IFD. + * + * This methods is part of the ArrayAccess SPL interface for + * overriding array access of objects, it allows you to delete + * entries in the IFD by doing: + * + * <code> + * unset($ifd[PelTag::EXPOSURE_BIAS_VALUE]) + * </code> + * + * @param PelTag $tag + * the offset to delete. + */ + public function offsetUnset($tag) + { + unset($this->entries[$tag]); + } + + /** + * Retrieve an entry. + * + * @param PelTag $tag + * the tag identifying the entry. + * + * @return PelEntry the entry associated with the tag, or null if no + * such entry exists. + */ + public function getEntry($tag) + { + if (isset($this->entries[$tag])) { + return $this->entries[$tag]; + } else { + return null; + } + } + + /** + * Returns all entries contained in this IFD. + * + * @return array an array of {@link PelEntry} objects, or rather + * descendant classes. The array has {@link PelTag}s as keys + * and the entries as values. + * + * @see getEntry + * @see getIterator + */ + public function getEntries() + { + return $this->entries; + } + + /** + * Return an iterator for all entries contained in this IFD. + * + * Used with foreach as in + * + * <code> + * foreach ($ifd as $tag => $entry) { + * // $tag is now a PelTag and $entry is a PelEntry object. + * } + * </code> + * + * @return Iterator an iterator using the {@link PelTag tags} as + * keys and the entries as values. + */ + public function getIterator() + { + return new \ArrayIterator($this->entries); + } + + /** + * Returns available thumbnail data. + * + * @return string the bytes in the thumbnail, if any. If the IFD + * does not contain any thumbnail data, the empty string is + * returned. + * + * @todo Throw an exception instead when no data is available? + * + * @todo Return the $this->thumb_data object instead of the bytes? + */ + public function getThumbnailData() + { + if ($this->thumb_data !== null) { + return $this->thumb_data->getBytes(); + } else { + return ''; + } + } + + /** + * Make this directory point to a new directory. + * + * @param PelIfd $i + * the IFD that this directory will point to. + */ + public function setNextIfd(PelIfd $i) + { + $this->next = $i; + } + + /** + * Return the IFD pointed to by this directory. + * + * @return PelIfd the next IFD, following this IFD. If this is the + * last IFD, null is returned. + */ + public function getNextIfd() + { + return $this->next; + } + + /** + * Check if this is the last IFD. + * + * @return boolean true if there are no following IFD, false + * otherwise. + */ + public function isLastIfd() + { + return $this->next === null; + } + + /** + * Add a sub-IFD. + * + * Any previous sub-IFD of the same type will be overwritten. + * + * @param PelIfd $sub + * the sub IFD. The type of must be one of {@link + * PelIfd::EXIF}, {@link PelIfd::GPS}, or {@link + * PelIfd::INTEROPERABILITY}. + */ + public function addSubIfd(PelIfd $sub) + { + $this->sub[$sub->type] = $sub; + } + + /** + * Return a sub IFD. + * + * @param int $type + * the type of the sub IFD. This must be one of {@link + * PelIfd::EXIF}, {@link PelIfd::GPS}, or {@link + * PelIfd::INTEROPERABILITY}. + * + * @return PelIfd the IFD associated with the type, or null if that + * sub IFD does not exist. + */ + public function getSubIfd($type) + { + if (isset($this->sub[$type])) { + return $this->sub[$type]; + } else { + return null; + } + } + + /** + * Get all sub IFDs. + * + * @return array an associative array with (IFD-type, {@link + * PelIfd}) pairs. + */ + public function getSubIfds() + { + return $this->sub; + } + + /** + * Turn this directory into bytes. + * + * This directory will be turned into a byte string, with the + * specified byte order. The offsets will be calculated from the + * offset given. + * + * @param int $offset + * the offset of the first byte of this directory. + * + * @param PelByteOrder $order + * the byte order that should be used when + * turning integers into bytes. This should be one of {@link + * PelConvert::LITTLE_ENDIAN} and {@link PelConvert::BIG_ENDIAN}. + */ + public function getBytes($offset, $order) + { + $bytes = ''; + $extra_bytes = ''; + + Pel::debug('Bytes from IDF will start at offset %d within Exif data', $offset); + + $n = count($this->entries) + count($this->sub); + if ($this->thumb_data !== null) { + /* + * We need two extra entries for the thumbnail offset and + * length. + */ + $n += 2; + } + + $bytes .= PelConvert::shortToBytes($n, $order); + + /* + * Initialize offset of extra data. This included the bytes + * preceding this IFD, the bytes needed for the count of entries, + * the entries themselves (and sub entries), the extra data in the + * entries, and the IFD link. + */ + $end = $offset + 2 + 12 * $n + 4; + + foreach ($this->entries as $tag => $entry) { + /* Each entry is 12 bytes long. */ + $bytes .= PelConvert::shortToBytes($entry->getTag(), $order); + $bytes .= PelConvert::shortToBytes($entry->getFormat(), $order); + $bytes .= PelConvert::longToBytes($entry->getComponents(), $order); + + /* + * Size? If bigger than 4 bytes, the actual data is not in + * the entry but somewhere else. + */ + $data = $entry->getBytes($order); + $s = strlen($data); + if ($s > 4) { + Pel::debug('Data size %d too big, storing at offset %d instead.', $s, $end); + $bytes .= PelConvert::longToBytes($end, $order); + $extra_bytes .= $data; + $end += $s; + } else { + Pel::debug('Data size %d fits.', $s); + /* + * Copy data directly, pad with NULL bytes as necessary to + * fill out the four bytes available. + */ + $bytes .= $data . str_repeat(chr(0), 4 - $s); + } + } + + if ($this->thumb_data !== null) { + Pel::debug('Appending %d bytes of thumbnail data at %d', $this->thumb_data->getSize(), $end); + // TODO: make PelEntry a class that can be constructed with + // arguments corresponding to the newt four lines. + $bytes .= PelConvert::shortToBytes(PelTag::JPEG_INTERCHANGE_FORMAT_LENGTH, $order); + $bytes .= PelConvert::shortToBytes(PelFormat::LONG, $order); + $bytes .= PelConvert::longToBytes(1, $order); + $bytes .= PelConvert::longToBytes($this->thumb_data->getSize(), $order); + + $bytes .= PelConvert::shortToBytes(PelTag::JPEG_INTERCHANGE_FORMAT, $order); + $bytes .= PelConvert::shortToBytes(PelFormat::LONG, $order); + $bytes .= PelConvert::longToBytes(1, $order); + $bytes .= PelConvert::longToBytes($end, $order); + + $extra_bytes .= $this->thumb_data->getBytes(); + $end += $this->thumb_data->getSize(); + } + + /* Find bytes from sub IFDs. */ + $sub_bytes = ''; + foreach ($this->sub as $type => $sub) { + if ($type == PelIfd::EXIF) { + $tag = PelTag::EXIF_IFD_POINTER; + } elseif ($type == PelIfd::GPS) { + $tag = PelTag::GPS_INFO_IFD_POINTER; + } elseif ($type == PelIfd::INTEROPERABILITY) { + $tag = PelTag::INTEROPERABILITY_IFD_POINTER; + } else { + // PelConvert::BIG_ENDIAN is the default used by PelConvert + $tag = PelConvert::BIG_ENDIAN; + } + /* Make an aditional entry with the pointer. */ + $bytes .= PelConvert::shortToBytes($tag, $order); + /* Next the format, which is always unsigned long. */ + $bytes .= PelConvert::shortToBytes(PelFormat::LONG, $order); + /* There is only one component. */ + $bytes .= PelConvert::longToBytes(1, $order); + + $data = $sub->getBytes($end, $order); + $s = strlen($data); + $sub_bytes .= $data; + + $bytes .= PelConvert::longToBytes($end, $order); + $end += $s; + } + + /* Make link to next IFD, if any */ + if ($this->isLastIFD()) { + $link = 0; + } else { + $link = $end; + } + + Pel::debug('Link to next IFD: %d', $link); + + $bytes .= PelConvert::longtoBytes($link, $order); + + $bytes .= $extra_bytes . $sub_bytes; + + if (! $this->isLastIfd()) { + $bytes .= $this->next->getBytes($end, $order); + } + return $bytes; + } + + /** + * Turn this directory into text. + * + * @return string information about the directory, mainly for + * debugging. + */ + public function __toString() + { + $str = Pel::fmt("Dumping IFD %s with %d entries...\n", $this->getName(), count($this->entries)); + + foreach ($this->entries as $entry) { + $str .= $entry->__toString(); + } + $str .= Pel::fmt("Dumping %d sub IFDs...\n", count($this->sub)); + + foreach ($this->sub as $type => $ifd) { + $str .= $ifd->__toString(); + } + if ($this->next !== null) { + $str .= $this->next->__toString(); + } + return $str; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelIfdException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelIfdException.php new file mode 100644 index 0000000000000000000000000000000000000000..e50d1e5b76318095cb720dccc658d236d6227594 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelIfdException.php @@ -0,0 +1,46 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007, 2008 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif IFDs. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Exception indicating a general problem with the IFD. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelIfdException extends PelException +{ + // do nothing +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelInvalidArgumentException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelInvalidArgumentException.php new file mode 100644 index 0000000000000000000000000000000000000000..e72759d94eb95a1d951ac753435ef39cc5844c02 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelInvalidArgumentException.php @@ -0,0 +1,47 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +use lsolesen\pel\PelException; + +/** + * Standard PEL exception. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Exception throw if an invalid argument is passed. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelInvalidArgumentException extends PelException +{ +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelInvalidDataException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelInvalidDataException.php new file mode 100644 index 0000000000000000000000000000000000000000..66a48258bd62abc7d5f0b1590d972315feb46822 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelInvalidDataException.php @@ -0,0 +1,47 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +use lsolesen\pel\PelException; + +/** + * Standard PEL exception. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Exception throw if invalid data is found. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelInvalidDataException extends PelException +{ +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpeg.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpeg.php new file mode 100644 index 0000000000000000000000000000000000000000..c12e71cfc042a3206f55d42773333836edcc5301 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpeg.php @@ -0,0 +1,663 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ + +namespace lsolesen\pel; + +/** + * Class for handling JPEG data. + * + * The {@link PelJpeg} class defined here provides an abstraction for + * dealing with a JPEG file. The file will be contain a number of + * sections containing some {@link PelJpegContent content} identified + * by a {@link PelJpegMarker marker}. + * + * The {@link getExif()} method is used get hold of the {@link + * PelJpegMarker::APP1 APP1} section which stores Exif data. So if + * the name of the JPEG file is stored in $filename, then one would + * get hold of the Exif data by saying: + * + * <code> + * $jpeg = new PelJpeg($filename); + * $exif = $jpeg->getExif(); + * $tiff = $exif->getTiff(); + * $ifd0 = $tiff->getIfd(); + * $exif = $ifd0->getSubIfd(PelIfd::EXIF); + * $ifd1 = $ifd0->getNextIfd(); + * </code> + * + * The $idf0 and $ifd1 variables will then be two {@link PelTiff TIFF} + * {@link PelIfd Image File Directories}, in which the data is stored + * under the keys found in {@link PelTag}. + * + * Should one have some image data (in the form of a {@link + * PelDataWindow}) of an unknown type, then the {@link + * PelJpeg::isValid()} function is handy: it will quickly test if the + * data could be valid JPEG data. The {@link PelTiff::isValid()} + * function does the same for TIFF images. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelJpeg +{ + + /** + * The sections in the JPEG data. + * + * A JPEG file is built up as a sequence of sections, each section + * is identified with a {@link PelJpegMarker}. Some sections can + * occur more than once in the JPEG stream (the {@link + * PelJpegMarker::DQT DQT} and {@link PelJpegMarker::DHT DTH} + * markers for example) and so this is an array of ({@link + * PelJpegMarker}, {@link PelJpegContent}) pairs. + * + * The content can be either generic {@link PelJpegContent JPEG + * content} or {@link PelExif Exif data}. + * + * @var array + */ + private $sections = array(); + + /** + * The JPEG image data. + * + * @var PelDataWindow + */ + private $jpeg_data = null; + + /** + * Construct a new JPEG object. + * + * The new object will be empty unless an argument is given from + * which it can initialize itself. This can either be the filename + * of a JPEG image, a {@link PelDataWindow} object or a PHP image + * resource handle. + * + * New Exif data (in the form of a {@link PelExif} object) can be + * inserted with the {@link setExif()} method: + * + * <code> + * $jpeg = new PelJpeg($data); + * // Create container for the Exif information: + * $exif = new PelExif(); + * // Now Add a PelTiff object with a PelIfd object with one or more + * // PelEntry objects to $exif... Finally add $exif to $jpeg: + * $jpeg->setExif($exif); + * </code> + * + * @param + * mixed the data that this JPEG. This can either be a + * filename, a {@link PelDataWindow} object, or a PHP image resource + * handle. + */ + public function __construct($data = false) + { + if ($data === false) { + return; + } + + if (is_string($data)) { + Pel::debug('Initializing PelJpeg object from %s', $data); + $this->loadFile($data); + } elseif ($data instanceof PelDataWindow) { + Pel::debug('Initializing PelJpeg object from PelDataWindow.'); + $this->load($data); + } elseif (is_resource($data) && get_resource_type($data) == 'gd') { + Pel::debug('Initializing PelJpeg object from image resource.'); + $this->load(new PelDataWindow($data)); + } else { + throw new PelInvalidArgumentException('Bad type for $data: %s', gettype($data)); + } + } + + /** + * JPEG sections start with 0xFF. The first byte that is not + * 0xFF is a marker (hopefully). + * + * @param PelDataWindow $d + * + * @return integer + */ + protected static function getJpgSectionStart($d) + { + for ($i = 0; $i < 7; $i ++) { + if ($d->getByte($i) != 0xFF) { + break; + } + } + return $i; + } + + /** + * Load data into a JPEG object. + * + * The data supplied will be parsed and turned into an object + * structure representing the image. This structure can then be + * manipulated and later turned back into an string of bytes. + * + * This methods can be called at any time after a JPEG object has + * been constructed, also after the {@link appendSection()} has been + * called to append custom sections. Loading several JPEG images + * into one object will accumulate the sections, but there will only + * be one {@link PelJpegMarker::SOS} section at any given time. + * + * @param + * PelDataWindow the data that will be turned into JPEG + * sections. + */ + public function load(PelDataWindow $d) + { + Pel::debug('Parsing %d bytes...', $d->getSize()); + + /* JPEG data is stored in big-endian format. */ + $d->setByteOrder(PelConvert::BIG_ENDIAN); + + /* + * Run through the data to read the sections in the image. After + * each section is read, the start of the data window will be + * moved forward, and after the last section we'll terminate with + * no data left in the window. + */ + while ($d->getSize() > 0) { + $i = $this->getJpgSectionStart($d); + + $marker = $d->getByte($i); + + if (!PelJpegMarker::isValid($marker)) { + throw new PelJpegInvalidMarkerException($marker, $i); + } + + /* + * Move window so first byte becomes first byte in this + * section. + */ + $d->setWindowStart($i + 1); + + if ($marker == PelJpegMarker::SOI || $marker == PelJpegMarker::EOI) { + $content = new PelJpegContent(new PelDataWindow()); + $this->appendSection($marker, $content); + } else { + /* + * Read the length of the section. The length includes the + * two bytes used to store the length. + */ + $len = $d->getShort(0) - 2; + + Pel::debug('Found %s section of length %d', PelJpegMarker::getName($marker), $len); + + /* Skip past the length. */ + $d->setWindowStart(2); + + if ($marker == PelJpegMarker::APP1) { + try { + $content = new PelExif(); + $content->load($d->getClone(0, $len)); + } catch (PelInvalidDataException $e) { + /* + * We store the data as normal JPEG content if it could + * not be parsed as Exif data. + */ + $content = new PelJpegContent($d->getClone(0, $len)); + } + + $this->appendSection($marker, $content); + /* Skip past the data. */ + $d->setWindowStart($len); + } elseif ($marker == PelJpegMarker::COM) { + $content = new PelJpegComment(); + $content->load($d->getClone(0, $len)); + $this->appendSection($marker, $content); + $d->setWindowStart($len); + } else { + $content = new PelJpegContent($d->getClone(0, $len)); + $this->appendSection($marker, $content); + /* Skip past the data. */ + $d->setWindowStart($len); + + /* In case of SOS, image data will follow. */ + if ($marker == PelJpegMarker::SOS) { + /* + * Some images have some trailing (garbage?) following the + * EOI marker. To handle this we seek backwards until we + * find the EOI marker. Any trailing content is stored as + * a PelJpegContent object. + */ + + $length = $d->getSize(); + while ($d->getByte($length - 2) != 0xFF || $d->getByte($length - 1) != PelJpegMarker::EOI) { + $length --; + } + + $this->jpeg_data = $d->getClone(0, $length - 2); + Pel::debug('JPEG data: ' . $this->jpeg_data->__toString()); + + /* Append the EOI. */ + $this->appendSection(PelJpegMarker::EOI, new PelJpegContent(new PelDataWindow())); + + /* Now check to see if there are any trailing data. */ + if ($length != $d->getSize()) { + Pel::maybeThrow(new PelException('Found trailing content ' . 'after EOI: %d bytes', $d->getSize() - $length)); + $content = new PelJpegContent($d->getClone($length)); + /* + * We don't have a proper JPEG marker for trailing + * garbage, so we just use 0x00... + */ + $this->appendSection(0x00, $content); + } + + /* Done with the loop. */ + break; + } + } + } + } /* while ($d->getSize() > 0) */ + } + + /** + * Load data from a file into a JPEG object. + * + * @param + * string the filename. This must be a readable file. + */ + public function loadFile($filename) + { + $this->load(new PelDataWindow(file_get_contents($filename))); + } + + /** + * Set Exif data. + * + * Use this to set the Exif data in the image. This will overwrite + * any old Exif information in the image. + * + * @param + * PelExif the Exif data. + */ + public function setExif(PelExif $exif) + { + $app0_offset = 1; + $app1_offset = - 1; + + /* Search through all sections looking for APP0 or APP1. */ + $sections_count = count($this->sections); + for ($i = 0; $i < $sections_count; $i ++) { + if (! empty($this->sections[$i][0])) { + if ($this->sections[$i][0] == PelJpegMarker::APP0) { + $app0_offset = $i; + } elseif ($this->sections[$i][0] == PelJpegMarker::APP1) { + $app1_offset = $i; + break; + } + } + } + + /* + * Store the Exif data at the appropriate place, either where the + * old Exif data was stored ($app1_offset) or right after APP0 + * ($app0_offset+1). + */ + if ($app1_offset > 0) { + $this->sections[$app1_offset][1] = $exif; + } else { + $this->insertSection(PelJpegMarker::APP1, $exif, $app0_offset + 1); + } + } + + /** + * Set ICC data. + * + * Use this to set the ICC data in the image. This will overwrite + * any old ICC information in the image. + * + * @param + * PelJpegContent the ICC data. + */ + public function setICC(PelJpegContent $icc) + { + $app1_offset = 1; + $app2_offset = - 1; + + /* Search through all sections looking for APP0 or APP1. */ + $count_sections = count($this->sections); + for ($i = 0; $i < $count_sections; $i ++) { + if (! empty($this->sections[$i][0])) { + if ($this->sections[$i][0] == PelJpegMarker::APP1) { + $app1_offset = $i; + } elseif ($this->sections[$i][0] == PelJpegMarker::APP2) { + $app2_offset = $i; + break; + } + } + } + + /* + * Store the Exif data at the appropriate place, either where the + * old Exif data was stored ($app1_offset) or right after APP0 + * ($app0_offset+1). + */ + if ($app2_offset > 0) { + $this->sections[$app1_offset][1] = $icc; + } else { + $this->insertSection(PelJpegMarker::APP2, $icc, $app1_offset + 1); + } + } + + /** + * Get Exif data. + * + * Use this to get the @{link PelExif Exif data} stored. + * + * @return PelExif the Exif data found or null if the image has no + * Exif data. + */ + public function getExif() + { + $exif = $this->getSection(PelJpegMarker::APP1); + if ($exif instanceof PelExif) { + return $exif; + } + return null; + } + + /** + * Get ICC data. + * + * Use this to get the @{link PelJpegContent ICC data} stored. + * + * @return PelJpegContent the ICC data found or null if the image has no + * ICC data. + */ + public function getICC() + { + $icc = $this->getSection(PelJpegMarker::APP2); + if ($icc instanceof PelJpegContent) { + return $icc; + } + return null; + } + + /** + * Clear any Exif data. + * + * This method will only clear the first @{link PelJpegMarker::APP1} + * section found (there should normally be just one). + */ + public function clearExif() + { + $sections_count = count($this->sections); + for ($i = 0; $i < $sections_count; $i ++) { + if ($this->sections[$i][0] == PelJpegMarker::APP1) { + unset($this->sections[$i]); + return; + } + } + } + + /** + * Append a new section. + * + * Used only when loading an image. If it used again later, then the + * section will end up after the @{link PelJpegMarker::EOI EOI + * marker} and will probably not be useful. + * + * Please use @{link setExif()} instead if you intend to add Exif + * information to an image as that function will know the right + * place to insert the data. + * + * @param + * PelJpegMarker the marker identifying the new section. + * + * @param + * PelJpegContent the content of the new section. + */ + public function appendSection($marker, PelJpegContent $content) + { + $this->sections[] = array( + $marker, + $content + ); + } + + /** + * Insert a new section. + * + * Please use @{link setExif()} instead if you intend to add Exif + * information to an image as that function will know the right + * place to insert the data. + * + * @param + * PelJpegMarker the marker for the new section. + * + * @param + * PelJpegContent the content of the new section. + * + * @param + * int the offset where the new section will be inserted --- + * use 0 to insert it at the very beginning, use 1 to insert it + * between sections 1 and 2, etc. + */ + public function insertSection($marker, PelJpegContent $content, $offset) + { + array_splice($this->sections, $offset, 0, array( + array( + $marker, + $content + ) + )); + } + + /** + * Get a section corresponding to a particular marker. + * + * Please use the {@link getExif()} if you just need the Exif data. + * + * This will search through the sections of this JPEG object, + * looking for a section identified with the specified {@link + * PelJpegMarker marker}. The {@link PelJpegContent content} will + * then be returned. The optional argument can be used to skip over + * some of the sections. So if one is looking for the, say, third + * {@link PelJpegMarker::DHT DHT} section one would do: + * + * <code> + * $dht3 = $jpeg->getSection(PelJpegMarker::DHT, 2); + * </code> + * + * @param + * PelJpegMarker the marker identifying the section. + * + * @param + * int the number of sections to be skipped. This must be a + * non-negative integer. + * + * @return PelJpegContent the content found, or null if there is no + * content available. + */ + public function getSection($marker, $skip = 0) + { + foreach ($this->sections as $s) { + if ($s[0] == $marker) { + if ($skip > 0) { + $skip --; + } else { + return $s[1]; + } + } + } + + return null; + } + + /** + * Get all sections. + * + * @return array an array of ({@link PelJpegMarker}, {@link + * PelJpegContent}) pairs. Each pair is an array with the {@link + * PelJpegMarker} as the first element and the {@link + * PelJpegContent} as the second element, so the return type is an + * array of arrays. + * + * So to loop through all the sections in a given JPEG image do + * this: + * + * <code> + * foreach ($jpeg->getSections() as $section) { + * $marker = $section[0]; + * $content = $section[1]; + * // Use $marker and $content here. + * } + * </code> + * + * instead of this: + * + * <code> + * foreach ($jpeg->getSections() as $marker => $content) { + * // Does not work the way you would think... + * } + * </code> + * + * The problem is that there could be several sections with the same + * marker, and thus a simple associative array does not suffice. + */ + public function getSections() + { + return $this->sections; + } + + /** + * Turn this JPEG object into bytes. + * + * The bytes returned by this method is ready to be stored in a file + * as a valid JPEG image. Use the {@link saveFile()} convenience + * method to do this. + * + * @return string bytes representing this JPEG object, including all + * its sections and their associated data. + */ + public function getBytes() + { + $bytes = ''; + + foreach ($this->sections as $section) { + $m = $section[0]; + $c = $section[1]; + + /* Write the marker */ + $bytes .= "\xFF" . PelJpegMarker::getBytes($m); + /* Skip over empty markers. */ + if ($m == PelJpegMarker::SOI || $m == PelJpegMarker::EOI) { + continue; + } + + $data = $c->getBytes(); + $size = strlen($data) + 2; + + $bytes .= PelConvert::shortToBytes($size, PelConvert::BIG_ENDIAN); + $bytes .= $data; + + /* In case of SOS, we need to write the JPEG data. */ + if ($m == PelJpegMarker::SOS) { + $bytes .= $this->jpeg_data->getBytes(); + } + } + + return $bytes; + } + + /** + * Save the JPEG object as a JPEG image in a file. + * + * @param + * string the filename to save in. An existing file with the + * same name will be overwritten! + * + * @return integer|FALSE The number of bytes that were written to the + * file, or FALSE on failure. + */ + public function saveFile($filename) + { + return file_put_contents($filename, $this->getBytes()); + } + + /** + * Make a string representation of this JPEG object. + * + * This is mainly usefull for debugging. It will show the structure + * of the image, and its sections. + * + * @return string debugging information about this JPEG object. + */ + public function __toString() + { + $str = Pel::tra("Dumping JPEG data...\n"); + $count_sections = count($this->sections); + for ($i = 0; $i < $count_sections; $i ++) { + $m = $this->sections[$i][0]; + $c = $this->sections[$i][1]; + $str .= Pel::fmt("Section %d (marker 0x%02X - %s):\n", $i, $m, PelJpegMarker::getName($m)); + $str .= Pel::fmt(" Description: %s\n", PelJpegMarker::getDescription($m)); + + if ($m == PelJpegMarker::SOI || $m == PelJpegMarker::EOI) { + continue; + } + + if ($c instanceof PelExif) { + $str .= Pel::tra(" Content : Exif data\n"); + $str .= $c->__toString() . "\n"; + } elseif ($c instanceof PelJpegComment) { + $str .= Pel::fmt(" Content : %s\n", $c->getValue()); + } else { + $str .= Pel::tra(" Content : Unknown\n"); + } + } + + return $str; + } + + /** + * Test data to see if it could be a valid JPEG image. + * + * The function will only look at the first few bytes of the data, + * and try to determine if it could be a valid JPEG image based on + * those bytes. This means that the check is more like a heuristic + * than a rigorous check. + * + * @param + * PelDataWindow the bytes that will be checked. + * + * @return boolean true if the bytes look like the beginning of a + * JPEG image, false otherwise. + * + * @see PelTiff::isValid() + */ + public static function isValid(PelDataWindow $d) + { + /* JPEG data is stored in big-endian format. */ + $d->setByteOrder(PelConvert::BIG_ENDIAN); + + $i = self::getJpgSectionStart($d); + + return $d->getByte($i) == PelJpegMarker::SOI; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegComment.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegComment.php new file mode 100644 index 0000000000000000000000000000000000000000..6d04d1a95f69bfd227027baf383c3b50761177a6 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegComment.php @@ -0,0 +1,118 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2005, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Class for dealing with JPEG comments. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class representing JPEG comments. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelJpegComment extends PelJpegContent +{ + + /** + * The comment. + * + * @var string + */ + private $comment = ''; + + /** + * Construct a new JPEG comment. + * + * The new comment will contain the string given. + * + * @param string $comment + */ + public function __construct($comment = '') + { + $this->comment = $comment; + } + + /** + * Load and parse data. + * + * This will load the comment from the data window passed. + * + * @param PelDataWindow $d + */ + public function load(PelDataWindow $d) + { + $this->comment = $d->getBytes(); + } + + /** + * Update the value with a new comment. + * + * Any old comment will be overwritten. + * + * @param string $comment + * the new comment. + */ + public function setValue($comment) + { + $this->comment = $comment; + } + + /** + * Get the comment. + * + * @return string the comment. + */ + public function getValue() + { + return $this->comment; + } + + /** + * Turn this comment into bytes. + * + * @return string bytes representing this comment. + */ + public function getBytes() + { + return $this->comment; + } + + /** + * Return a string representation of this object. + * + * @return string the same as {@link getValue()}. + */ + public function __toString() + { + return $this->getValue(); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegContent.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegContent.php new file mode 100644 index 0000000000000000000000000000000000000000..c2822771f1c6484ec96981ca7125febaf2c508f7 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegContent.php @@ -0,0 +1,78 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +use \lsolesen\pel\PelDataWindow; + +/** + * Class representing content in a JPEG file. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class representing content in a JPEG file. + * + * A JPEG file consists of a sequence of each of which has an + * associated {@link PelJpegMarker marker} and some content. This + * class represents the content, and this basic type is just a simple + * holder of such content, represented by a {@link PelDataWindow} + * object. The {@link PelExif} class is an example of more + * specialized JPEG content. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelJpegContent +{ + + private $data = null; + + /** + * Make a new piece of JPEG content. + * + * @param PelDataWindow $data + * the content. + */ + public function __construct(PelDataWindow $data) + { + $this->data = $data; + } + + /** + * Return the bytes of the content. + * + * @return string bytes representing this JPEG content. These bytes + * will match the bytes given to {@link __construct the + * constructor}. + */ + public function getBytes() + { + return $this->data->getBytes(); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegInvalidMarkerException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegInvalidMarkerException.php new file mode 100644 index 0000000000000000000000000000000000000000..5eb7637f8cb694c4240a70784d7d285f905beca8 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegInvalidMarkerException.php @@ -0,0 +1,55 @@ +<?php +/* + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Exception thrown when an invalid marker is found. + * + * This exception is thrown when PEL expects to find a {@link + * PelJpegMarker} and instead finds a byte that isn't a known marker. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public License (GPL) + * @package PEL + * @subpackage Exception + */ +class PelJpegInvalidMarkerException extends PelException +{ + + /** + * Construct a new invalid marker exception. + * The exception will contain a message describing the error, + * including the byte found and the offset of the offending byte. + * + * @param int $marker + * the byte found. + * + * @param int $offset + * the offset in the data. + */ + public function __construct($marker, $offset) + { + parent::__construct('Invalid marker found at offset %d: 0x%2X', $offset, $marker); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegMarker.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegMarker.php new file mode 100644 index 0000000000000000000000000000000000000000..4d1bd33ce4333ddefb4568e2e420b01a9e37106b --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelJpegMarker.php @@ -0,0 +1,542 @@ +<?php + +/* + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2006 Martin Geisler. + * Copyright (C) 2017 Johannes Weberhofer. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with JPEG markers. + * + * This class defines the constants to be used whenever one refers to + * a JPEG marker. All the methods defined are static, and they all + * operate on one argument which should be one of the class constants. + * They will all be denoted by PelJpegMarker in the documentation. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @author Johannes Weberhofer <jweberhofer@weberhofer.at> + * + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ +class PelJpegMarker +{ + + /** + * Encoding (baseline) + */ + const SOF0 = 0xC0; + + /** + * Encoding (extended sequential) + */ + const SOF1 = 0xC1; + + /** + * Encoding (progressive) + */ + const SOF2 = 0xC2; + + /** + * Encoding (lossless) + */ + const SOF3 = 0xC3; + + /** + * Define Huffman table + */ + const DHT = 0xC4; + + /** + * Encoding (differential sequential) + */ + const SOF5 = 0xC5; + + /** + * Encoding (differential progressive) + */ + const SOF6 = 0xC6; + + /** + * Encoding (differential lossless) + */ + const SOF7 = 0xC7; + + /** + * Extension + */ + const JPG = 0xC8; + + /** + * Encoding (extended sequential, arithmetic) + */ + const SOF9 = 0xC9; + + /** + * Encoding (progressive, arithmetic) + */ + const SOF10 = 0xCA; + + /** + * Encoding (lossless, arithmetic) + */ + const SOF11 = 0xCB; + + /** + * Define arithmetic coding conditioning + */ + const DAC = 0xCC; + + /** + * Encoding (differential sequential, arithmetic) + */ + const SOF13 = 0xCD; + + /** + * Encoding (differential progressive, arithmetic) + */ + const SOF14 = 0xCE; + + /** + * Encoding (differential lossless, arithmetic) + */ + const SOF15 = 0xCF; + + /** + * Restart 0 + */ + const RST0 = 0xD0; + + /** + * Restart 1 + */ + const RST1 = 0xD1; + + /** + * Restart 2 + */ + const RST2 = 0xD2; + + /** + * Restart 3 + */ + const RST3 = 0xD3; + + /** + * Restart 4 + */ + const RST4 = 0xD4; + + /** + * Restart 5 + */ + const RST5 = 0xD5; + + /** + * Restart 6 + */ + const RST6 = 0xD6; + + /** + * Restart 7 + */ + const RST7 = 0xD7; + + /** + * Start of image + */ + const SOI = 0xD8; + + /** + * End of image + */ + const EOI = 0xD9; + + /** + * Start of scan + */ + const SOS = 0xDA; + + /** + * Define quantization table + */ + const DQT = 0xDB; + + /** + * Define number of lines + */ + const DNL = 0xDC; + + /** + * Define restart interval + */ + const DRI = 0xDD; + + /** + * Define hierarchical progression + */ + const DHP = 0xDE; + + /** + * Expand reference component + */ + const EXP = 0xDF; + + /** + * Application segment 0 + */ + const APP0 = 0xE0; + + /** + * Application segment 1 + * + * When a JPEG image contains Exif data, the data will normally be + * stored in this section and a call to {@link PelJpeg::getExif()} + * will return a {@link PelExif} object representing it. + */ + const APP1 = 0xE1; + + /** + * Application segment 2 + */ + const APP2 = 0xE2; + + /** + * Application segment 3 + */ + const APP3 = 0xE3; + + /** + * Application segment 4 + */ + const APP4 = 0xE4; + + /** + * Application segment 5 + */ + const APP5 = 0xE5; + + /** + * Application segment 6 + */ + const APP6 = 0xE6; + + /** + * Application segment 7 + */ + const APP7 = 0xE7; + + /** + * Application segment 8 + */ + const APP8 = 0xE8; + + /** + * Application segment 9 + */ + const APP9 = 0xE9; + + /** + * Application segment 10 + */ + const APP10 = 0xEA; + + /** + * Application segment 11 + */ + const APP11 = 0xEB; + + /** + * Application segment 12 + */ + const APP12 = 0xEC; + + /** + * Application segment 13 + */ + const APP13 = 0xED; + + /** + * Application segment 14 + */ + const APP14 = 0xEE; + + /** + * Application segment 15 + */ + const APP15 = 0xEF; + + /** + * Extension 0 + */ + const JPG0 = 0xF0; + + /** + * Extension 1 + */ + const JPG1 = 0xF1; + + /** + * Extension 2 + */ + const JPG2 = 0xF2; + + /** + * Extension 3 + */ + const JPG3 = 0xF3; + + /** + * Extension 4 + */ + const JPG4 = 0xF4; + + /** + * Extension 5 + */ + const JPG5 = 0xF5; + + /** + * Extension 6 + */ + const JPG6 = 0xF6; + + /** + * Extension 7 + */ + const JPG7 = 0xF7; + + /** + * Extension 8 + */ + const JPG8 = 0xF8; + + /** + * Extension 9 + */ + const JPG9 = 0xF9; + + /** + * Extension 10 + */ + const JPG10 = 0xFA; + + /** + * Extension 11 + */ + const JPG11 = 0xFB; + + /** + * Extension 12 + */ + const JPG12 = 0xFC; + + /** + * Extension 13 + */ + const JPG13 = 0xFD; + + /** + * Comment + */ + const COM = 0xFE; + + /** + * Values for marker's short names + */ + protected static $jpegMarkerShort = array( + self::SOF0 => 'SOF0', + self::SOF1 => 'SOF1', + self::SOF2 => 'SOF2', + self::SOF3 => 'SOF3', + self::SOF5 => 'SOF5', + self::SOF6 => 'SOF6', + self::SOF7 => 'SOF7', + self::SOF9 => 'SOF9', + self::SOF10 => 'SOF10', + self::SOF11 => 'SOF11', + self::SOF13 => 'SOF13', + self::SOF14 => 'SOF14', + self::SOF15 => 'SOF15', + self::SOI => 'SOI', + self::EOI => 'EOI', + self::SOS => 'SOS', + self::COM => 'COM', + self::DHT => 'DHT', + self::JPG => 'JPG', + self::DAC => 'DAC', + self::RST0 => 'RST0', + self::RST1 => 'RST1', + self::RST2 => 'RST2', + self::RST3 => 'RST3', + self::RST4 => 'RST4', + self::RST5 => 'RST5', + self::RST6 => 'RST6', + self::RST7 => 'RST7', + self::DQT => 'DQT', + self::DNL => 'DNL', + self::DRI => 'DRI', + self::DHP => 'DHP', + self::EXP => 'EXP', + self::APP0 => 'APP0', + self::APP1 => 'APP1', + self::APP2 => 'APP2', + self::APP3 => 'APP3', + self::APP4 => 'APP4', + self::APP5 => 'APP5', + self::APP6 => 'APP6', + self::APP7 => 'APP7', + self::APP8 => 'APP8', + self::APP9 => 'APP9', + self::APP10 => 'APP10', + self::APP11 => 'APP11', + self::APP12 => 'APP12', + self::APP13 => 'APP13', + self::APP14 => 'APP14', + self::APP15 => 'APP15', + self::JPG0 => 'JPG0', + self::JPG1 => 'JPG1', + self::JPG2 => 'JPG2', + self::JPG3 => 'JPG3', + self::JPG4 => 'JPG4', + self::JPG5 => 'JPG5', + self::JPG6 => 'JPG6', + self::JPG7 => 'JPG7', + self::JPG8 => 'JPG8', + self::JPG9 => 'JPG9', + self::JPG10 => 'JPG10', + self::JPG11 => 'JPG11', + self::JPG12 => 'JPG12', + self::JPG13 => 'JPG13', + self::COM => 'COM' + ); + + /** + * Values for marker's descriptions names. + */ + protected static $jpegMarkerDescriptions = array( + self::SOF0 => 'Encoding (baseline)', + self::SOF1 => 'Encoding (extended sequential)', + self::SOF2 => 'Encoding (progressive)', + self::SOF3 => 'Encoding (lossless)', + self::SOF5 => 'Encoding (differential sequential)', + self::SOF6 => 'Encoding (differential progressive)', + self::SOF7 => 'Encoding (differential lossless)', + self::SOF9 => 'Encoding (extended sequential, arithmetic)', + self::SOF10 => 'Encoding (progressive, arithmetic)', + self::SOF11 => 'Encoding (lossless, arithmetic)', + self::SOF13 => 'Encoding (differential sequential, arithmetic)', + self::SOF14 => 'Encoding (differential progressive, arithmetic)', + self::SOF15 => 'Encoding (differential lossless, arithmetic)', + self::SOI => 'Start of image', + self::EOI => 'End of image', + self::SOS => 'Start of scan', + self::COM => 'Comment', + self::DHT => 'Define Huffman table', + self::JPG => 'Extension', + self::DAC => 'Define arithmetic coding conditioning', + 'RST' => 'Restart %d', + self::DQT => 'Define quantization table', + self::DNL => 'Define number of lines', + self::DRI => 'Define restart interval', + self::DHP => 'Define hierarchical progression', + self::EXP => 'Expand reference component', + 'APP' => 'Application segment %d', + 'JPG' => 'Extension %d', + self::COM => 'Comment' + ); + + /** + * Check if a byte is a valid JPEG marker. + * If the byte is recognized true is returned, otherwise false will be returned. + * + * @param integer $marker + * the marker as defined in {@link PelJpegMarker} + * + * @return boolean + */ + public static function isValid($marker) + { + return ($marker >= self::SOF0 && $marker <= self::COM); + } + + /** + * Turn a JPEG marker into bytes. + * This will be a string with just a single byte since all JPEG markers are simply single bytes. + * + * @param integer $marker + * the marker as defined in {@link PelJpegMarker} + * + * @return string + */ + public static function getBytes($marker) + { + return chr($marker); + } + + /** + * Return the short name for a marker, e.g., 'SOI' for the Start + * of Image marker. + * + * @param integer $marker + * the marker as defined in {@link PelJpegMarker} + * + * @return string + */ + public static function getName($marker) + { + if (array_key_exists($marker, self::$jpegMarkerShort)) { + return self::$jpegMarkerShort[$marker]; + } else { + return Pel::fmt('Unknown marker: 0x%02X', $marker); + } + } + + /** + * Returns a description of a JPEG marker. + * + * @param integer $marker + * the marker as defined in {@link PelJpegMarker} + * + * @return string + */ + public static function getDescription($marker) + { + if (array_key_exists($marker, self::$jpegMarkerShort)) { + if (array_key_exists($marker, self::$jpegMarkerDescriptions)) { + return self::$jpegMarkerDescriptions[$marker]; + } else { + $splitted = preg_split( + "/(\d+)/", + self::$jpegMarkerShort[$marker], + - 1, + PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); + if ((count($splitted) == 2) && array_key_exists($splitted[0], self::$jpegMarkerDescriptions)) { + return Pel::fmt(self::$jpegMarkerDescriptions[$splitted[0]], $splitted[1]); + } + } + } + return Pel::fmt('Unknown marker: 0x%02X', $marker); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelOverflowException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelOverflowException.php new file mode 100644 index 0000000000000000000000000000000000000000..634985b1aa35b9f7607b4ff47ad74ce1c2732d7c --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelOverflowException.php @@ -0,0 +1,68 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif entries. + * + * This file defines two exception classes and the abstract class + * {@link PelEntry} which provides the basic methods that all Exif + * entries will have. All Exif entries will be represented by + * descendants of the {@link PelEntry} class --- the class itself is + * abstract and so it cannot be instantiated. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Exception cast when numbers overflow. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelOverflowException extends PelException +{ + + /** + * Construct a new overflow exception. + * + * @param int $v + * the value that is out of range. + * + * @param int $min + * the minimum allowed value. + * + * @param int $max + * the maximum allowed value. + */ + public function __construct($v, $min, $max) + { + parent::__construct('Value %.0f out of range [%.0f, %.0f]', $v, $min, $max); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelTag.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelTag.php new file mode 100644 index 0000000000000000000000000000000000000000..04a957c11ef47f85efc9fc0f91f5c5b8fa256ec3 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelTag.php @@ -0,0 +1,1723 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006, 2007 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + + /** + * Namespace for functions operating on Exif tags. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class with static methods for Exif tags. + * + * This class defines the constants that represents the Exif tags + * known to PEL. They are supposed to be used whenever one needs to + * specify an Exif tag, and they will be denoted by the pseudo-type + * {@link PelTag} throughout the documentation. + * + * Please note that the constrains on the format and number of + * components given here are advisory only. To follow the Exif + * specification one should obey them, but there is nothing that + * prevents you from creating an {@link IMAGE_LENGTH} entry with two + * or more components, even though the standard says that there should + * be exactly one component. + * + * All the methods in this class are static and should be called with + * the Exif tag on which they should operate. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelTag +{ + + /** + * Interoperability index. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 4. + */ + const INTEROPERABILITY_INDEX = 0x0001; + + /** + * Interoperability version. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: 4. + */ + const INTEROPERABILITY_VERSION = 0x0002; + + /** + * Image width. + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: 1. + */ + const IMAGE_WIDTH = 0x0100; + + /** + * Image length. + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: 1. + */ + const IMAGE_LENGTH = 0x0101; + + /** + * Number of bits per component. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 3. + */ + const BITS_PER_SAMPLE = 0x0102; + + /** + * Compression scheme. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const COMPRESSION = 0x0103; + + /** + * Pixel composition. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const PHOTOMETRIC_INTERPRETATION = 0x0106; + + /** + * Fill Order + * + * Format: Unknown. + * + * Components: Unknown. + */ + const FILL_ORDER = 0x010A; + + /** + * Document Name + * + * Format: {@link PelEntryAscii}. + * + * Components: any number. + */ + const DOCUMENT_NAME = 0x010D; + + /** + * Image Description + * + * Format: {@link PelEntryAscii}. + * + * Components: any number. + */ + const IMAGE_DESCRIPTION = 0x010E; + + /** + * Manufacturer + * + * Format: {@link PelEntryAscii}. + * + * Components: any number. + */ + const MAKE = 0x010F; + + /** + * Model + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const MODEL = 0x0110; + + /** + * Strip Offsets + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: any number. + */ + const STRIP_OFFSETS = 0x0111; + + /** + * Orientation of image. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const ORIENTATION = 0x0112; + + /** + * Number of components. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SAMPLES_PER_PIXEL = 0x0115; + + /** + * Rows per Strip + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: 1. + */ + const ROWS_PER_STRIP = 0x0116; + + /** + * Strip Byte Count + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: any number. + */ + const STRIP_BYTE_COUNTS = 0x0117; + + /** + * Image resolution in width direction. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const X_RESOLUTION = 0x011A; + + /** + * Image resolution in height direction. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const Y_RESOLUTION = 0x011B; + + /** + * Image data arrangement. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const PLANAR_CONFIGURATION = 0x011C; + + /** + * Unit of X and Y resolution. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const RESOLUTION_UNIT = 0x0128; + + /** + * Transfer function. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 3. + */ + const TRANSFER_FUNCTION = 0x012D; + + /** + * Software used. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const SOFTWARE = 0x0131; + + /** + * File change date and time. + * + * Format: {@link PelFormat::ASCII}, modelled by the {@link + * PelEntryTime} class. + * + * Components: 20. + */ + const DATE_TIME = 0x0132; + + /** + * Person who created the image. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const ARTIST = 0x013B; + + /** + * White point chromaticity. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 2. + */ + const WHITE_POINT = 0x013E; + + /** + * Chromaticities of primaries. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 6. + */ + const PRIMARY_CHROMATICITIES = 0x013F; + + /** + * Transfer Range + * + * Format: Unknown. + * + * Components: Unknown. + */ + const TRANSFER_RANGE = 0x0156; + + /** + * JPEGProc + * + * Format: Unknown. + * + * Components: Unknown. + */ + const JPEG_PROC = 0x0200; + + /** + * Offset to JPEG SOI. + * + * Format: {@link PelFormat::LONG}. + * + * Components: 1. + */ + const JPEG_INTERCHANGE_FORMAT = 0x0201; + + /** + * Bytes of JPEG data. + * + * Format: {@link PelFormat::LONG}. + * + * Components: 1. + */ + const JPEG_INTERCHANGE_FORMAT_LENGTH = 0x0202; + + /** + * Color space transformation matrix coefficients. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 3. + */ + const YCBCR_COEFFICIENTS = 0x0211; + + /** + * Subsampling ratio of Y to C. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 2. + */ + const YCBCR_SUB_SAMPLING = 0x0212; + + /** + * Y and C positioning. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const YCBCR_POSITIONING = 0x0213; + + /** + * Pair of black and white reference values. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 6. + */ + const REFERENCE_BLACK_WHITE = 0x0214; + + /** + * Related Image File Format + * + * Format: Unknown. + * + * Components: Unknown. + */ + const RELATED_IMAGE_FILE_FORMAT = 0x1000; + + /** + * Related Image Width + * + * Format: Unknown, probably {@link PelFormat::SHORT}? + * + * Components: Unknown, probably 1. + */ + const RELATED_IMAGE_WIDTH = 0x1001; + + /** + * Related Image Length + * + * Format: Unknown, probably {@link PelFormat::SHORT}? + * + * Components: Unknown, probably 1. + */ + const RELATED_IMAGE_LENGTH = 0x1002; + + /** + * Rating + * + * Format: {@link PelFormat::SHORT} + * + * Components: 1. + */ + const RATING = 0x4746; + + /** + * CFA Repeat Pattern Dim. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 2. + */ + const CFA_REPEAT_PATTERN_DIM = 0x828D; + + /** + * Battery level. + * + * Format: Unknown. + * + * Components: Unknown. + */ + const BATTERY_LEVEL = 0x828F; + + /** + * Copyright holder. + * + * Format: {@link PelFormat::ASCII}, modelled by the {@link + * PelEntryCopyright} class. + * + * Components: any number. + */ + const COPYRIGHT = 0x8298; + + /** + * Exposure Time + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const EXPOSURE_TIME = 0x829A; + + /** + * FNumber + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const FNUMBER = 0x829D; + + /** + * IPTC/NAA + * + * Format: {@link PelFormat::LONG}. + * + * Components: any number. + */ + const IPTC_NAA = 0x83BB; + + /** + * Exif IFD Pointer + * + * Format: {@link PelFormat::LONG}. + * + * Components: 1. + */ + const EXIF_IFD_POINTER = 0x8769; + + /** + * Inter Color Profile + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: any number. + */ + const INTER_COLOR_PROFILE = 0x8773; + + /** + * Exposure Program + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const EXPOSURE_PROGRAM = 0x8822; + + /** + * Spectral Sensitivity + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const SPECTRAL_SENSITIVITY = 0x8824; + + /** + * GPS Info IFD Pointer + * + * Format: {@link PelFormat::LONG}. + * + * Components: 1. + */ + const GPS_INFO_IFD_POINTER = 0x8825; + + /** + * ISO Speed Ratings + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 2. + */ + const ISO_SPEED_RATINGS = 0x8827; + + /** + * OECF + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: any number. + */ + const OECF = 0x8828; + + /** + * Exif version. + * + * Format: {@link PelFormat::UNDEFINED}, modelled by the {@link + * PelEntryVersion} class. + * + * Components: 4. + */ + const EXIF_VERSION = 0x9000; + + /** + * Date and time of original data generation. + * + * Format: {@link PelFormat::ASCII}, modelled by the {@link + * PelEntryTime} class. + * + * Components: 20. + */ + const DATE_TIME_ORIGINAL = 0x9003; + + /** + * Date and time of digital data generation. + * + * Format: {@link PelFormat::ASCII}, modelled by the {@link + * PelEntryTime} class. + * + * Components: 20. + */ + const DATE_TIME_DIGITIZED = 0x9004; + + /** + * Meaning of each component. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: 4. + */ + const COMPONENTS_CONFIGURATION = 0x9101; + + /** + * Image compression mode. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const COMPRESSED_BITS_PER_PIXEL = 0x9102; + + /** + * Shutter speed + * + * Format: {@link PelFormat::SRATIONAL}. + * + * Components: 1. + */ + const SHUTTER_SPEED_VALUE = 0x9201; + + /** + * Aperture + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const APERTURE_VALUE = 0x9202; + + /** + * Brightness + * + * Format: {@link PelFormat::SRATIONAL}. + * + * Components: 1. + */ + const BRIGHTNESS_VALUE = 0x9203; + + /** + * Exposure Bias + * + * Format: {@link PelFormat::SRATIONAL}. + * + * Components: 1. + */ + const EXPOSURE_BIAS_VALUE = 0x9204; + + /** + * Max Aperture Value + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const MAX_APERTURE_VALUE = 0x9205; + + /** + * Subject Distance + * + * Format: {@link PelFormat::SRATIONAL}. + * + * Components: 1. + */ + const SUBJECT_DISTANCE = 0x9206; + + /** + * Metering Mode + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const METERING_MODE = 0x9207; + + /** + * Light Source + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const LIGHT_SOURCE = 0x9208; + + /** + * Flash + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const FLASH = 0x9209; + + /** + * Focal Length + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const FOCAL_LENGTH = 0x920A; + + /** + * Subject Area + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 4. + */ + const SUBJECT_AREA = 0x9214; + + /** + * Maker Note + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: any number. + */ + const MAKER_NOTE = 0x927C; + + /** + * User Comment + * + * Format: {@link PelFormat::UNDEFINED}, modelled by the {@link + * PelEntryUserComment} class. + * + * Components: any number. + */ + const USER_COMMENT = 0x9286; + + /** + * SubSec Time + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const SUB_SEC_TIME = 0x9290; + + /** + * SubSec Time Original + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const SUB_SEC_TIME_ORIGINAL = 0x9291; + + /** + * SubSec Time Digitized + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const SUB_SEC_TIME_DIGITIZED = 0x9292; + + /** + * Windows XP Title + * + * Format: {@link PelFormat::BYTE}, modelled by the + * {@link PelEntryWindowsString} class. + * + * Components: any number. + */ + const XP_TITLE = 0x9C9B; + + /** + * Windows XP Comment + * + * Format: {@link PelFormat::BYTE}, modelled by the + * {@link PelEntryWindowsString} class. + * + * Components: any number. + */ + const XP_COMMENT = 0x9C9C; + + /** + * Windows XP Author + * + * Format: {@link PelFormat::BYTE}, modelled by the + * {@link PelEntryWindowsString} class. + * + * Components: any number. + */ + const XP_AUTHOR = 0x9C9D; + + /** + * Windows XP Keywords + * + * Format: {@link PelFormat::BYTE}, modelled by the + * {@link PelEntryWindowsString} class. + * + * Components: any number. + */ + const XP_KEYWORDS = 0x9C9E; + + /** + * Windows XP Subject + * + * Format: {@link PelFormat::BYTE}, modelled by the + * {@link PelEntryWindowsString} class. + * + * Components: any number. + */ + const XP_SUBJECT = 0x9C9F; + + /** + * Supported Flashpix version + * + * Format: {@link PelFormat::UNDEFINED}, modelled by the {@link + * PelEntryVersion} class. + * + * Components: 4. + */ + const FLASH_PIX_VERSION = 0xA000; + + /** + * Color space information. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const COLOR_SPACE = 0xA001; + + /** + * Valid image width. + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: 1. + */ + const PIXEL_X_DIMENSION = 0xA002; + + /** + * Valid image height. + * + * Format: {@link PelFormat::SHORT} or {@link PelFormat::LONG}. + * + * Components: 1. + */ + const PIXEL_Y_DIMENSION = 0xA003; + + /** + * Related audio file. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: any number. + */ + const RELATED_SOUND_FILE = 0xA004; + + /** + * Interoperability IFD Pointer + * + * Format: {@link PelFormat::LONG}. + * + * Components: 1. + */ + const INTEROPERABILITY_IFD_POINTER = 0xA005; + + /** + * Flash energy. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const FLASH_ENERGY = 0xA20B; + + /** + * Spatial frequency response. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: any number. + */ + const SPATIAL_FREQUENCY_RESPONSE = 0xA20C; + + /** + * Focal plane X resolution. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const FOCAL_PLANE_X_RESOLUTION = 0xA20E; + + /** + * Focal plane Y resolution. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const FOCAL_PLANE_Y_RESOLUTION = 0xA20F; + + /** + * Focal plane resolution unit. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const FOCAL_PLANE_RESOLUTION_UNIT = 0xA210; + + /** + * Subject location. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SUBJECT_LOCATION = 0xA214; + + /** + * Exposure index. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const EXPOSURE_INDEX = 0xA215; + + /** + * Sensing method. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SENSING_METHOD = 0xA217; + + /** + * File source. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: 1. + */ + const FILE_SOURCE = 0xA300; + + /** + * Scene type. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: 1. + */ + const SCENE_TYPE = 0xA301; + + /** + * CFA pattern. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: any number. + */ + const CFA_PATTERN = 0xA302; + + /** + * Custom image processing. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const CUSTOM_RENDERED = 0xA401; + + /** + * Exposure mode. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const EXPOSURE_MODE = 0xA402; + + /** + * White balance. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const WHITE_BALANCE = 0xA403; + + /** + * Digital zoom ratio. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const DIGITAL_ZOOM_RATIO = 0xA404; + + /** + * Focal length in 35mm film. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const FOCAL_LENGTH_IN_35MM_FILM = 0xA405; + + /** + * Scene capture type. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SCENE_CAPTURE_TYPE = 0xA406; + + /** + * Gain control. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const GAIN_CONTROL = 0xA407; + + /** + * Contrast. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const CONTRAST = 0xA408; + + /** + * Saturation. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SATURATION = 0xA409; + + /** + * Sharpness. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SHARPNESS = 0xA40A; + + /** + * Device settings description. + * + * This tag indicates information on the picture-taking conditions + * of a particular camera model. The tag is used only to indicate + * the picture-taking conditions in the reader. + */ + const DEVICE_SETTING_DESCRIPTION = 0xA40B; + + /** + * Subject distance range. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const SUBJECT_DISTANCE_RANGE = 0xA40C; + + /** + * Image unique ID. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 32. + */ + const IMAGE_UNIQUE_ID = 0xA420; + + /** + * Gamma. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GAMMA = 0xA500; + + /** + * PrintIM + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: unknown. + */ + const PRINT_IM = 0xC4A5; + + /** + * GPS tag version. + * + * Format: {@link PelFormat::BYTE}. + * + * Components: 4. + */ + const GPS_VERSION_ID = 0x0000; + + /** + * North or South Latitude. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_LATITUDE_REF = 0x0001; + + /** + * Latitude. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 3. + */ + const GPS_LATITUDE = 0x0002; + + /** + * East or West Longitude. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_LONGITUDE_REF = 0x0003; + + /** + * Longitude. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 3. + */ + const GPS_LONGITUDE = 0x0004; + + /** + * Altitude reference. + * + * Format: {@link PelFormat::BYTE}. + * + * Components: 1. + */ + const GPS_ALTITUDE_REF = 0x0005; + + /** + * Altitude. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_ALTITUDE = 0x0006; + + /** + * GPS time (atomic clock). + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 3. + */ + const GPS_TIME_STAMP = 0x0007; + + /** + * GPS satellites used for measurement. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: Any. + */ + const GPS_SATELLITES = 0x0008; + + /** + * GPS receiver status. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_STATUS = 0x0009; + + /** + * GPS measurement mode. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_MEASURE_MODE = 0x000A; + + /** + * Measurement precision. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_DOP = 0x000B; + + /** + * Speed unit. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_SPEED_REF = 0x000C; + + /** + * Speed of GPS receiver. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_SPEED = 0x000D; + + /** + * Reference for direction of movement. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_TRACK_REF = 0x000E; + + /** + * Direction of movement. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_TRACK = 0x000F; + + /** + * Reference for direction of image. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_IMG_DIRECTION_REF = 0x0010; + + /** + * Direction of image. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_IMG_DIRECTION = 0x0011; + + /** + * Geodetic survey data used. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: Any. + */ + const GPS_MAP_DATUM = 0x0012; + + /** + * Reference for latitude of destination. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_DEST_LATITUDE_REF = 0x0013; + + /** + * Latitude of destination. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 3. + */ + const GPS_DEST_LATITUDE = 0x0014; + + /** + * Reference for longitude of destination. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_DEST_LONGITUDE_REF = 0x0015; + + /** + * Longitude of destination. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 3. + */ + const GPS_DEST_LONGITUDE = 0x0016; + + /** + * Reference for bearing of destination. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_DEST_BEARING_REF = 0x0017; + + /** + * Bearing of destination. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_DEST_BEARING = 0x0018; + + /** + * Reference for distance to destination. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 2. + */ + const GPS_DEST_DISTANCE_REF = 0x0019; + + /** + * Distance to destination. + * + * Format: {@link PelFormat::RATIONAL}. + * + * Components: 1. + */ + const GPS_DEST_DISTANCE = 0x001A; + + /** + * Name of GPS processing method. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: Any. + */ + const GPS_PROCESSING_METHOD = 0x001B; + + /** + * Name of GPS area. + * + * Format: {@link PelFormat::UNDEFINED}. + * + * Components: Any. + */ + const GPS_AREA_INFORMATION = 0x001C; + + /** + * GPS date. + * + * Format: {@link PelFormat::ASCII}. + * + * Components: 11. + */ + const GPS_DATE_STAMP = 0x001D; + + /** + * GPS differential correction. + * + * Format: {@link PelFormat::SHORT}. + * + * Components: 1. + */ + const GPS_DIFFERENTIAL = 0x001E; + + /** + * Values for tags short names. + */ + protected static $exifTagsShort= array( + self::INTEROPERABILITY_INDEX => 'InteroperabilityIndex', + self::INTEROPERABILITY_VERSION => 'InteroperabilityVersion', + self::IMAGE_WIDTH => 'ImageWidth', + self::IMAGE_LENGTH => 'ImageLength', + self::BITS_PER_SAMPLE => 'BitsPerSample', + self::COMPRESSION => 'Compression', + self::PHOTOMETRIC_INTERPRETATION => 'PhotometricInterpretation', + self::FILL_ORDER => 'FillOrder', + self::DOCUMENT_NAME => 'DocumentName', + self::IMAGE_DESCRIPTION => 'ImageDescription', + self::MAKE => 'Make', + self::MODEL => 'Model', + self::STRIP_OFFSETS => 'StripOffsets', + self::ORIENTATION => 'Orientation', + self::SAMPLES_PER_PIXEL => 'SamplesPerPixel', + self::ROWS_PER_STRIP => 'RowsPerStrip', + self::STRIP_BYTE_COUNTS => 'StripByteCounts', + self::X_RESOLUTION => 'XResolution', + self::Y_RESOLUTION => 'YResolution', + self::PLANAR_CONFIGURATION => 'PlanarConfiguration', + self::RESOLUTION_UNIT => 'ResolutionUnit', + self::TRANSFER_FUNCTION => 'TransferFunction', + self::SOFTWARE => 'Software', + self::DATE_TIME => 'DateTime', + self::ARTIST => 'Artist', + self::WHITE_POINT => 'WhitePoint', + self::PRIMARY_CHROMATICITIES => 'PrimaryChromaticities', + self::TRANSFER_RANGE => 'TransferRange', + self::JPEG_PROC => 'JPEGProc', + self::JPEG_INTERCHANGE_FORMAT => 'JPEGInterchangeFormat', + self::JPEG_INTERCHANGE_FORMAT_LENGTH => 'JPEGInterchangeFormatLength', + self::YCBCR_COEFFICIENTS => 'YCbCrCoefficients', + self::YCBCR_SUB_SAMPLING => 'YCbCrSubSampling', + self::YCBCR_POSITIONING => 'YCbCrPositioning', + self::REFERENCE_BLACK_WHITE => 'ReferenceBlackWhite', + self::RELATED_IMAGE_FILE_FORMAT => 'RelatedImageFileFormat', + self::RELATED_IMAGE_WIDTH => 'RelatedImageWidth', + self::RELATED_IMAGE_LENGTH => 'RelatedImageLength', + self::RATING => 'Rating', + self::CFA_REPEAT_PATTERN_DIM => 'CFARepeatPatternDim', + self::CFA_PATTERN => 'CFAPattern', + self::BATTERY_LEVEL => 'BatteryLevel', + self::COPYRIGHT => 'Copyright', + self::EXPOSURE_TIME => 'ExposureTime', + self::FNUMBER => 'FNumber', + self::IPTC_NAA => 'IPTC/NAA', + self::EXIF_IFD_POINTER => 'ExifIFDPointer', + self::INTER_COLOR_PROFILE => 'InterColorProfile', + self::EXPOSURE_PROGRAM => 'ExposureProgram', + self::SPECTRAL_SENSITIVITY => 'SpectralSensitivity', + self::GPS_INFO_IFD_POINTER => 'GPSInfoIFDPointer', + self::ISO_SPEED_RATINGS => 'ISOSpeedRatings', + self::OECF => 'OECF', + self::EXIF_VERSION => 'ExifVersion', + self::DATE_TIME_ORIGINAL => 'DateTimeOriginal', + self::DATE_TIME_DIGITIZED => 'DateTimeDigitized', + self::COMPONENTS_CONFIGURATION => 'ComponentsConfiguration', + self::COMPRESSED_BITS_PER_PIXEL => 'CompressedBitsPerPixel', + self::SHUTTER_SPEED_VALUE => 'ShutterSpeedValue', + self::APERTURE_VALUE => 'ApertureValue', + self::BRIGHTNESS_VALUE => 'BrightnessValue', + self::EXPOSURE_BIAS_VALUE => 'ExposureBiasValue', + self::MAX_APERTURE_VALUE => 'MaxApertureValue', + self::SUBJECT_DISTANCE => 'SubjectDistance', + self::METERING_MODE => 'MeteringMode', + self::LIGHT_SOURCE => 'LightSource', + self::FLASH => 'Flash', + self::FOCAL_LENGTH => 'FocalLength', + self::MAKER_NOTE => 'MakerNote', + self::USER_COMMENT => 'UserComment', + self::SUB_SEC_TIME => 'SubSecTime', + self::SUB_SEC_TIME_ORIGINAL => 'SubSecTimeOriginal', + self::SUB_SEC_TIME_DIGITIZED => 'SubSecTimeDigitized', + self::XP_TITLE => 'WindowsXPTitle', + self::XP_COMMENT => 'WindowsXPComment', + self::XP_AUTHOR => 'WindowsXPAuthor', + self::XP_KEYWORDS => 'WindowsXPKeywords', + self::XP_SUBJECT => 'WindowsXPSubject', + self::FLASH_PIX_VERSION => 'FlashPixVersion', + self::COLOR_SPACE => 'ColorSpace', + self::PIXEL_X_DIMENSION => 'PixelXDimension', + self::PIXEL_Y_DIMENSION => 'PixelYDimension', + self::RELATED_SOUND_FILE => 'RelatedSoundFile', + self::INTEROPERABILITY_IFD_POINTER => 'InteroperabilityIFDPointer', + self::FLASH_ENERGY => 'FlashEnergy', + self::SPATIAL_FREQUENCY_RESPONSE => 'SpatialFrequencyResponse', + self::FOCAL_PLANE_X_RESOLUTION => 'FocalPlaneXResolution', + self::FOCAL_PLANE_Y_RESOLUTION => 'FocalPlaneYResolution', + self::FOCAL_PLANE_RESOLUTION_UNIT => 'FocalPlaneResolutionUnit', + self::SUBJECT_LOCATION => 'SubjectLocation', + self::EXPOSURE_INDEX => 'ExposureIndex', + self::SENSING_METHOD => 'SensingMethod', + self::FILE_SOURCE => 'FileSource', + self::SCENE_TYPE => 'SceneType', + self::SUBJECT_AREA => 'SubjectArea', + self::CUSTOM_RENDERED => 'CustomRendered', + self::EXPOSURE_MODE => 'ExposureMode', + self::WHITE_BALANCE => 'WhiteBalance', + self::DIGITAL_ZOOM_RATIO => 'DigitalZoomRatio', + self::FOCAL_LENGTH_IN_35MM_FILM => 'FocalLengthIn35mmFilm', + self::SCENE_CAPTURE_TYPE => 'SceneCaptureType', + self::GAIN_CONTROL => 'GainControl', + self::CONTRAST => 'Contrast', + self::SATURATION => 'Saturation', + self::SHARPNESS => 'Sharpness', + self::DEVICE_SETTING_DESCRIPTION => 'DeviceSettingDescription', + self::SUBJECT_DISTANCE_RANGE => 'SubjectDistanceRange', + self::IMAGE_UNIQUE_ID => 'ImageUniqueID', + self::GAMMA => 'Gamma', + self::PRINT_IM => 'PrintIM', + ); + + /** + * Values for tags titles. + */ + protected static $exifTagsTitle = array( + self::INTEROPERABILITY_INDEX => 'Interoperability Index', + self::INTEROPERABILITY_VERSION => 'Interoperability Version', + self::IMAGE_WIDTH => 'Image Width', + self::IMAGE_LENGTH => 'Image Length', + self::BITS_PER_SAMPLE => 'Bits per Sample', + self::COMPRESSION => 'Compression', + self::PHOTOMETRIC_INTERPRETATION => 'Photometric Interpretation', + self::FILL_ORDER => 'Fill Order', + self::DOCUMENT_NAME => 'Document Name', + self::IMAGE_DESCRIPTION => 'Image Description', + self::MAKE => 'Manufacturer', + self::MODEL => 'Model', + self::STRIP_OFFSETS => 'Strip Offsets', + self::ORIENTATION => 'Orientation', + self::SAMPLES_PER_PIXEL => 'Samples per Pixel', + self::ROWS_PER_STRIP => 'Rows per Strip', + self::STRIP_BYTE_COUNTS => 'Strip Byte Count', + self::X_RESOLUTION => 'x-Resolution', + self::Y_RESOLUTION => 'y-Resolution', + self::PLANAR_CONFIGURATION => 'Planar Configuration', + self::RESOLUTION_UNIT => 'Resolution Unit', + self::TRANSFER_FUNCTION => 'Transfer Function', + self::SOFTWARE => 'Software', + self::DATE_TIME => 'Date and Time', + self::ARTIST => 'Artist', + self::WHITE_POINT => 'White Point', + self::PRIMARY_CHROMATICITIES => 'Primary Chromaticities', + self::TRANSFER_RANGE => 'Transfer Range', + self::JPEG_PROC => 'JPEG Process', + self::JPEG_INTERCHANGE_FORMAT => 'JPEG Interchange Format', + self::JPEG_INTERCHANGE_FORMAT_LENGTH => 'JPEG Interchange Format Length', + self::YCBCR_COEFFICIENTS => 'YCbCr Coefficients', + self::YCBCR_SUB_SAMPLING => 'YCbCr Sub-Sampling', + self::YCBCR_POSITIONING => 'YCbCr Positioning', + self::REFERENCE_BLACK_WHITE => 'Reference Black/White', + self::RELATED_IMAGE_FILE_FORMAT => 'Related Image File Format', + self::RELATED_IMAGE_WIDTH => 'Related Image Width', + self::RELATED_IMAGE_LENGTH => 'Related Image Length', + self::CFA_REPEAT_PATTERN_DIM => 'CFA Repeat Pattern Dim', + self::CFA_PATTERN => 'CFA Pattern', + self::BATTERY_LEVEL => 'Battery Level', + self::COPYRIGHT => 'Copyright', + self::EXPOSURE_TIME => 'Exposure Time', + self::FNUMBER => 'FNumber', + self::IPTC_NAA => 'IPTC/NAA', + self::EXIF_IFD_POINTER => 'Exif IFD Pointer', + self::INTER_COLOR_PROFILE => 'Inter Color Profile', + self::EXPOSURE_PROGRAM => 'Exposure Program', + self::SPECTRAL_SENSITIVITY => 'Spectral Sensitivity', + self::GPS_INFO_IFD_POINTER => 'GPS Info IFD Pointer', + self::ISO_SPEED_RATINGS => 'ISO Speed Ratings', + self::OECF => 'OECF', + self::EXIF_VERSION => 'Exif Version', + self::DATE_TIME_ORIGINAL => 'Date and Time (original)', + self::DATE_TIME_DIGITIZED => 'Date and Time (digitized)', + self::COMPONENTS_CONFIGURATION => 'Components Configuration', + self::COMPRESSED_BITS_PER_PIXEL => 'Compressed Bits per Pixel', + self::SHUTTER_SPEED_VALUE => 'Shutter speed', + self::APERTURE_VALUE => 'Aperture', + self::BRIGHTNESS_VALUE => 'Brightness', + self::EXPOSURE_BIAS_VALUE => 'Exposure Bias', + self::MAX_APERTURE_VALUE => 'Max Aperture Value', + self::SUBJECT_DISTANCE => 'Subject Distance', + self::METERING_MODE => 'Metering Mode', + self::LIGHT_SOURCE => 'Light Source', + self::FLASH => 'Flash', + self::FOCAL_LENGTH => 'Focal Length', + self::MAKER_NOTE => 'Maker Note', + self::USER_COMMENT => 'User Comment', + self::SUB_SEC_TIME => 'SubSec Time', + self::SUB_SEC_TIME_ORIGINAL => 'SubSec Time Original', + self::SUB_SEC_TIME_DIGITIZED => 'SubSec Time Digitized', + self::XP_TITLE => 'Windows XP Title', + self::XP_COMMENT => 'Windows XP Comment', + self::XP_AUTHOR => 'Windows XP Author', + self::XP_KEYWORDS => 'Windows XP Keywords', + self::XP_SUBJECT => 'Windows XP Subject', + self::FLASH_PIX_VERSION => 'FlashPix Version', + self::COLOR_SPACE => 'Color Space', + self::PIXEL_X_DIMENSION => 'Pixel x-Dimension', + self::PIXEL_Y_DIMENSION => 'Pixel y-Dimension', + self::RELATED_SOUND_FILE => 'Related Sound File', + self::INTEROPERABILITY_IFD_POINTER => 'Interoperability IFD Pointer', + self::FLASH_ENERGY => 'Flash Energy', + self::SPATIAL_FREQUENCY_RESPONSE => 'Spatial Frequency Response', + self::FOCAL_PLANE_X_RESOLUTION => 'Focal Plane x-Resolution', + self::FOCAL_PLANE_Y_RESOLUTION => 'Focal Plane y-Resolution', + self::FOCAL_PLANE_RESOLUTION_UNIT => 'Focal Plane Resolution Unit', + self::SUBJECT_LOCATION => 'Subject Location', + self::EXPOSURE_INDEX => 'Exposure index', + self::SENSING_METHOD => 'Sensing Method', + self::FILE_SOURCE => 'File Source', + self::SCENE_TYPE => 'Scene Type', + self::SUBJECT_AREA => 'Subject Area', + self::CUSTOM_RENDERED => 'Custom Rendered', + self::EXPOSURE_MODE => 'Exposure Mode', + self::WHITE_BALANCE => 'White Balance', + self::DIGITAL_ZOOM_RATIO => 'Digital Zoom Ratio', + self::FOCAL_LENGTH_IN_35MM_FILM => 'Focal Length In 35mm Film', + self::SCENE_CAPTURE_TYPE => 'Scene Capture Type', + self::GAIN_CONTROL => 'Gain Control', + self::CONTRAST => 'Contrast', + self::SATURATION => 'Saturation', + self::SHARPNESS => 'Sharpness', + self::DEVICE_SETTING_DESCRIPTION => 'Device Setting Description', + self::SUBJECT_DISTANCE_RANGE => 'Subject Distance Range', + self::IMAGE_UNIQUE_ID => 'Image Unique ID', + self::GAMMA => 'Gamma', + self::PRINT_IM => 'Print IM', + ); + + /** + * Values for gps tags short names. + */ + protected static $gpsTagsShort = array( + self::GPS_VERSION_ID => 'GPSVersionID', + self::GPS_LATITUDE_REF => 'GPSLatitudeRef', + self::GPS_LATITUDE => 'GPSLatitude', + self::GPS_LONGITUDE_REF => 'GPSLongitudeRef', + self::GPS_LONGITUDE => 'GPSLongitude', + self::GPS_ALTITUDE_REF => 'GPSAltitudeRef', + self::GPS_ALTITUDE => 'GPSAltitude', + self::GPS_TIME_STAMP => 'GPSTimeStamp', + self::GPS_SATELLITES => 'GPSSatellites', + self::GPS_STATUS => 'GPSStatus', + self::GPS_MEASURE_MODE => 'GPSMeasureMode', + self::GPS_DOP => 'GPSDOP', + self::GPS_SPEED_REF => 'GPSSpeedRef', + self::GPS_SPEED => 'GPSSpeed', + self::GPS_TRACK_REF => 'GPSTrackRef', + self::GPS_TRACK => 'GPSTrack', + self::GPS_IMG_DIRECTION_REF => 'GPSImgDirectionRef', + self::GPS_IMG_DIRECTION => 'GPSImgDirection', + self::GPS_MAP_DATUM => 'GPSMapDatum', + self::GPS_DEST_LATITUDE_REF => 'GPSDestLatitudeRef', + self::GPS_DEST_LATITUDE => 'GPSDestLatitude', + self::GPS_DEST_LONGITUDE_REF => 'GPSDestLongitudeRef', + self::GPS_DEST_LONGITUDE => 'GPSDestLongitude', + self::GPS_DEST_BEARING_REF => 'GPSDestBearingRef', + self::GPS_DEST_BEARING => 'GPSDestBearing', + self::GPS_DEST_DISTANCE_REF => 'GPSDestDistanceRef', + self::GPS_DEST_DISTANCE => 'GPSDestDistance', + self::GPS_PROCESSING_METHOD => 'GPSProcessingMethod', + self::GPS_AREA_INFORMATION => 'GPSAreaInformation', + self::GPS_DATE_STAMP => 'GPSDateStamp', + self::GPS_DIFFERENTIAL => 'GPSDifferential', + ); + + /** + * Returns a string from container with key $tag and subcontainer index of $idx + * + * @param array $container + * {@link PelTag::EXIF_TAGS_SHORT}, {@link PelTag::EXIF_TAGS_TITLE}, + * {@link PelTag::GPS_TAGS_SHORT} or {@link PelTag::GPS_TAGS_TITLE} container. + * @param PelTag $tag + * the tag. + * + * @return string short name or long name of the tag. + */ + public static function getValue($container, $tag) + { + if (isset($container[ $tag ])) { + return $container[ $tag ]; + } + + return self::unknownTag($tag); + } + + /** + * Reverse lookup of a tag id by its short name. Return false for the unknown tag name. + * + * @param string $name + * tag short name. + * + * @return mixed (bool|int) + * the tag. + */ + public static function getTagByName($name) + { + $k = array_search($name, self::$exifTagsShort); + if ($k !== false) { + return $k; + } + + return array_search($name, static::$gpsTagsShort); + } + + /** + * Returns string defining unknown tag. + * + * @param int $tag + * the tag. + * + * @return string + * description string. + */ + protected static function unknownTag($tag) + { + return Pel::fmt('Unknown: 0x%04X', $tag); + } + + /** + * Returns a short name for an Exif tag. + * + * @param int $type + * the IFD type of the tag, one of {@link PelIfd::IFD0}, + * {@link PelIfd::IFD1}, {@link PelIfd::EXIF}, {@link PelIfd::GPS}, + * or {@link PelIfd::INTEROPERABILITY}. + * + * @param PelTag $tag + * the tag. + * + * @return string the short name of the tag, e.g., 'ImageWidth' for + * the {@link IMAGE_WIDTH} tag. If the tag is not known, the string + * 'Unknown:0xTTTT' will be returned where 'TTTT' is the hexadecimal + * representation of the tag. + */ + public static function getName($type, $tag) + { + switch ($type) { + case PelIfd::IFD0: + case PelIfd::IFD1: + case PelIfd::EXIF: + case PelIfd::INTEROPERABILITY: + return self::getValue(self::$exifTagsShort, $tag); + case PelIfd::GPS: + return self::getValue(self::$gpsTagsShort, $tag); + } + + return self::unknownTag($tag); + } + + /** + * Returns a title for an Exif tag. + * + * @param int $type + * the IFD type of the tag, one of {@link PelIfd::IFD0}, + * {@link PelIfd::IFD1}, {@link PelIfd::EXIF}, {@link PelIfd::GPS}, + * or {@link PelIfd::INTEROPERABILITY}. + * + * @param PelTag $tag + * the tag. + * + * @return string the title of the tag, e.g., 'Image Width' for the + * {@link IMAGE_WIDTH} tag. If the tag isn't known, the string + * 'Unknown Tag: 0xTT' will be returned where 'TT' is the + * hexadecimal representation of the tag. + */ + public function getTitle($type, $tag) + { + switch ($type) { + case PelIfd::IFD0: + case PelIfd::IFD1: + case PelIfd::EXIF: + case PelIfd::INTEROPERABILITY: + return Pel::tra(self::getValue(self::$exifTagsTitle, $tag)); + case PelIfd::GPS: + return Pel::tra(self::getValue(self::$gpsTagsShort, $tag)); + } + + return self::unknownTag($tag); + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelTiff.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelTiff.php new file mode 100644 index 0000000000000000000000000000000000000000..bd0602350ff18d4677993afcc0a3cffd2cbc3bd7 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelTiff.php @@ -0,0 +1,314 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with TIFF data. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Class for handling TIFF data. + * + * Exif data is actually an extension of the TIFF file format. TIFF + * images consist of a number of {@link PelIfd Image File Directories} + * (IFDs), each containing a number of {@link PelEntry entries}. The + * IFDs are linked to each other --- one can get hold of the first one + * with the {@link getIfd()} method. + * + * To parse a TIFF image for Exif data one would do: + * + * <code> + * $tiff = new PelTiff($data); + * $ifd0 = $tiff->getIfd(); + * $exif = $ifd0->getSubIfd(PelIfd::EXIF); + * $ifd1 = $ifd0->getNextIfd(); + * </code> + * + * Should one have some image data of an unknown type, then the {@link + * PelTiff::isValid()} function is handy: it will quickly test if the + * data could be valid TIFF data. The {@link PelJpeg::isValid()} + * function does the same for JPEG images. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + */ +class PelTiff +{ + + /** + * TIFF header. + * + * This must follow after the two bytes indicating the byte order. + */ + const TIFF_HEADER = 0x002A; + + /** + * The first Image File Directory, if any. + * + * If set, then the type of the IFD must be {@link PelIfd::IFD0}. + * + * @var PelIfd + */ + private $ifd = null; + + /** + * Construct a new object for holding TIFF data. + * + * The new object will be empty (with no {@link PelIfd}) unless an + * argument is given from which it can initialize itself. This can + * either be the filename of a TIFF image or a {@link PelDataWindow} + * object. + * + * Use {@link setIfd()} to explicitly set the IFD. + * + * @param boolean|string|PelDataWindow $data; + */ + public function __construct($data = false) + { + if ($data === false) { + return; + } + if (is_string($data)) { + Pel::debug('Initializing PelTiff object from %s', $data); + $this->loadFile($data); + } elseif ($data instanceof PelDataWindow) { + Pel::debug('Initializing PelTiff object from PelDataWindow.'); + $this->load($data); + } else { + throw new PelInvalidArgumentException('Bad type for $data: %s', gettype($data)); + } + } + + /** + * Load TIFF data. + * + * The data given will be parsed and an internal tree representation + * will be built. If the data cannot be parsed correctly, a {@link + * PelInvalidDataException} is thrown, explaining the problem. + * + * @param + * d + * PelDataWindow the data from which the object will be + * constructed. This should be valid TIFF data, coming either + * directly from a TIFF image or from the Exif data in a JPEG image. + */ + public function load(PelDataWindow $d) + { + Pel::debug('Parsing %d bytes of TIFF data...', $d->getSize()); + + /* + * There must be at least 8 bytes available: 2 bytes for the byte + * order, 2 bytes for the TIFF header, and 4 bytes for the offset + * to the first IFD. + */ + if ($d->getSize() < 8) { + throw new PelInvalidDataException('Expected at least 8 bytes of TIFF ' . 'data, found just %d bytes.', $d->getSize()); + } + /* Byte order */ + if ($d->strcmp(0, 'II')) { + Pel::debug('Found Intel byte order'); + $d->setByteOrder(PelConvert::LITTLE_ENDIAN); + } elseif ($d->strcmp(0, 'MM')) { + Pel::debug('Found Motorola byte order'); + $d->setByteOrder(PelConvert::BIG_ENDIAN); + } else { + throw new PelInvalidDataException('Unknown byte order found in TIFF ' . 'data: 0x%2X%2X', $d->getByte(0), $d->getByte(1)); + } + + /* Verify the TIFF header */ + if ($d->getShort(2) != self::TIFF_HEADER) { + throw new PelInvalidDataException('Missing TIFF magic value.'); + } + /* IFD 0 offset */ + $offset = $d->getLong(4); + Pel::debug('First IFD at offset %d.', $offset); + + if ($offset > 0) { + /* + * Parse the first IFD, this will automatically parse the + * following IFDs and any sub IFDs. + */ + $this->ifd = new PelIfd(PelIfd::IFD0); + $this->ifd->load($d, $offset); + } + } + + /** + * Load data from a file into a TIFF object. + * + * @param string $filename + * the filename. This must be a readable file. + */ + public function loadFile($filename) + { + $this->load(new PelDataWindow(file_get_contents($filename))); + } + + /** + * Set the first IFD. + * + * @param PelIfd $ifd + * the new first IFD, which must be of type {@link + * PelIfd::IFD0}. + */ + public function setIfd(PelIfd $ifd) + { + if ($ifd->getType() != PelIfd::IFD0) { + throw new PelInvalidDataException('Invalid type of IFD: %d, expected %d.', $ifd->getType(), PelIfd::IFD0); + } + $this->ifd = $ifd; + } + + /** + * Return the first IFD. + * + * @return PelIfd the first IFD contained in the TIFF data, if any. + * If there is no IFD null will be returned. + */ + public function getIfd() + { + return $this->ifd; + } + + /** + * Turn this object into bytes. + * + * TIFF images can have {@link PelConvert::LITTLE_ENDIAN + * little-endian} or {@link PelConvert::BIG_ENDIAN big-endian} byte + * order, and so this method takes an argument specifying that. + * + * @param PelByteOrder $order + * the desired byte order of the TIFF data. + * This should be one of {@link PelConvert::LITTLE_ENDIAN} or {@link + * PelConvert::BIG_ENDIAN}. + * + * @return string the bytes representing this object. + */ + public function getBytes($order = PelConvert::LITTLE_ENDIAN) + { + if ($order == PelConvert::LITTLE_ENDIAN) { + $bytes = 'II'; + } else { + $bytes = 'MM'; + } + + /* TIFF magic number --- fixed value. */ + $bytes .= PelConvert::shortToBytes(self::TIFF_HEADER, $order); + + if ($this->ifd !== null) { + /* + * IFD 0 offset. We will always start IDF 0 at an offset of 8 + * bytes (2 bytes for byte order, another 2 bytes for the TIFF + * header, and 4 bytes for the IFD 0 offset make 8 bytes + * together). + */ + $bytes .= PelConvert::longToBytes(8, $order); + + /* + * The argument specifies the offset of this IFD. The IFD will + * use this to calculate offsets from the entries to their data, + * all those offsets are absolute offsets counted from the + * beginning of the data. + */ + $bytes .= $this->ifd->getBytes(8, $order); + } else { + $bytes .= PelConvert::longToBytes(0, $order); + } + + return $bytes; + } + + /** + * Save the TIFF object as a TIFF image in a file. + * + * @param + * string the filename to save in. An existing file with the + * same name will be overwritten! + * + * @return integer|FALSE The number of bytes that were written to the + * file, or FALSE on failure. + */ + public function saveFile($filename) + { + return file_put_contents($filename, $this->getBytes()); + } + + /** + * Return a string representation of this object. + * + * @return string a string describing this object. This is mostly useful + * for debugging. + */ + public function __toString() + { + $str = Pel::fmt("Dumping TIFF data...\n"); + if ($this->ifd !== null) { + $str .= $this->ifd->__toString(); + } + + return $str; + } + + /** + * Check if data is valid TIFF data. + * + * This will read just enough data from the data window to determine + * if the data could be a valid TIFF data. This means that the + * check is more like a heuristic than a rigorous check. + * + * @param PelDataWindow $d + * the bytes that will be examined. + * + * @return boolean true if the data looks like valid TIFF data, + * false otherwise. + * + * @see PelJpeg::isValid() + */ + public static function isValid(PelDataWindow $d) + { + /* First check that we have enough data. */ + if ($d->getSize() < 8) { + return false; + } + + /* Byte order */ + if ($d->strcmp(0, 'II')) { + $d->setByteOrder(PelConvert::LITTLE_ENDIAN); + } elseif ($d->strcmp(0, 'MM')) { + Pel::debug('Found Motorola byte order'); + $d->setByteOrder(PelConvert::BIG_ENDIAN); + } else { + return false; + } + + /* Verify the TIFF header */ + return $d->getShort(2) == self::TIFF_HEADER; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelUnexpectedFormatException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelUnexpectedFormatException.php new file mode 100644 index 0000000000000000000000000000000000000000..cfbadaa57d1895cc0b925916c0235a47135801dd --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelUnexpectedFormatException.php @@ -0,0 +1,80 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif entries. + * + * This file defines two exception classes and the abstract class + * {@link PelEntry} which provides the basic methods that all Exif + * entries will have. All Exif entries will be represented by + * descendants of the {@link PelEntry} class --- the class itself is + * abstract and so it cannot be instantiated. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ + +/** + * Exception indicating that an unexpected format was found. + * + * The documentation for each tag in {@link PelTag} will detail any + * constrains. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelUnexpectedFormatException extends PelEntryException +{ + + /** + * Construct a new exception indicating an invalid format. + * + * @param int $type + * the type of IFD. + * + * @param int $tag + * the tag for which the violation was found as defined in {@link PelTag} + * + * @param int $found + * the format found as defined in {@link PelFormat} + * + * @param int $expected + * the expected as defined in {@link PelFormat} + */ + public function __construct($type, $tag, $found, $expected) + { + parent::__construct( + 'Unexpected format found for %s tag: PelFormat::%s. Expected PelFormat::%s instead.', + PelTag::getName($type, $tag), + strtoupper(PelFormat::getName($found)), + strtoupper(PelFormat::getName($expected))); + $this->tag = $tag; + $this->type = $type; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelWrongComponentCountException.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelWrongComponentCountException.php new file mode 100644 index 0000000000000000000000000000000000000000..5dd3509b11ef2040d98fc4ebef4cb2a6b42eacb5 --- /dev/null +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_data/pel-0.9.6/src/PelWrongComponentCountException.php @@ -0,0 +1,81 @@ +<?php + +/** + * PEL: PHP Exif Library. + * A library with support for reading and + * writing all Exif headers in JPEG and TIFF images using PHP. + * + * Copyright (C) 2004, 2005, 2006 Martin Geisler. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program in the file COPYING; if not, write to the + * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, + * Boston, MA 02110-1301 USA + */ +namespace lsolesen\pel; + +/** + * Classes for dealing with Exif entries. + * + * This file defines two exception classes and the abstract class + * {@link PelEntry} which provides the basic methods that all Exif + * entries will have. All Exif entries will be represented by + * descendants of the {@link PelEntry} class --- the class itself is + * abstract and so it cannot be instantiated. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @license http://www.gnu.org/licenses/gpl.html GNU General Public + * License (GPL) + * @package PEL + */ +use lsolesen\pel\PelTag; + +/** + * Exception indicating that an unexpected number of components was + * found. + * + * Some tags have strict limits as to the allowed number of + * components, and this exception is thrown if the data violates such + * a constraint. The documentation for each tag in {@link PelTag} + * explains the expected number of components. + * + * @author Martin Geisler <mgeisler@users.sourceforge.net> + * @package PEL + * @subpackage Exception + */ +class PelWrongComponentCountException extends \lsolesen\pel\PelEntryException +{ + + /** + * Construct a new exception indicating a wrong number of + * components. + * + * @param int $type + * the type of IFD. + * + * @param PelTag $tag + * the tag for which the violation was found. + * + * @param int $found + * the number of components found. + * + * @param int $expected + * the expected number of components. + */ + public function __construct($type, $tag, $found, $expected) + { + parent::__construct('Wrong number of components found for %s tag: %d. ' . 'Expected %d.', PelTag::getName($type, $tag), $found, $expected); + $this->tag = $tag; + $this->type = $type; + } +} diff --git a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php index 9a73a92caaf617b29717cc5380fa0129dcf5da7c..2af60416c4b720a41894eaed8cac25201daea2fc 100644 --- a/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php +++ b/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/nextgen_gallery_display/package.module.nextgen_gallery_display.php @@ -2291,6 +2291,38 @@ class Mixin_Display_Type_Form extends Mixin { $this->object->implement('I_Display_Type_Form'); } + /** + * A wrapper to wp_enqueue_script() and ATP's mark_script() + * + * Unlike wp_enqueue_script() the version parameter is last as NGG should always use NGG_SCRIPT_VERSION + * @param string $handle + * @param string $source + * @param array $dependencies + * @param bool $in_footer + * @param string $version + */ + public function enqueue_script($handle, $source = '', $dependencies = array(), $in_footer = FALSE, $version = NGG_SCRIPT_VERSION) + { + wp_enqueue_script($handle, $source, $dependencies, $version, $in_footer); + $atp = C_Attach_Controller::get_instance(); + if ($atp !== NULL) { + $atp->mark_script($handle); + } + } + /** + * A wrapper to wp_enqueue_style() + * + * Unlike wp_enqueue_style() the version parameter is last as NGG should always use NGG_SCRIPT_VERSION + * @param string $handle + * @param string $source + * @param array $dependencies + * @param string $media + * @param string $version + */ + public function enqueue_style($handle, $source = '', $dependencies = array(), $media = 'all', $version = NGG_SCRIPT_VERSION) + { + wp_enqueue_style($handle, $source, $dependencies, $version, $media); + } /** * Returns the name of the display type. Sub-class should override * @throws Exception diff --git a/wp-content/plugins/nextgen-gallery/readme.txt b/wp-content/plugins/nextgen-gallery/readme.txt index d0ece7b53c4fa6634d6f1957ba01ad51ed3695f5..6c72e52169cee7717364a19af9fbd5e060b6da93 100644 --- a/wp-content/plugins/nextgen-gallery/readme.txt +++ b/wp-content/plugins/nextgen-gallery/readme.txt @@ -2,8 +2,8 @@ Contributors: photocrati, imagely Tags: wordpress gallery plugin, gallery, nextgen, nextgen gallery, photo gallery, image gallery, photography, slideshow, images, photo, photo album, watermark Requires at least: 4.0.0 -Stable tag: 2.2.12 -Tested up to: 4.8.0 +Stable tag: 2.3.0 +Tested up to: 4.8.1 License: GPLv2 The most popular WordPress gallery plugin and one of the most popular plugins of all time with over 18 million downloads. @@ -187,6 +187,10 @@ For more information, feel free to visit the official website for the NextGEN Ga == Changelog == += V2.2.14 - 09.18.2017 = +* NEW: EXIF and IPTC metadata are copied to new images when generating thumbnails, watermarks, or new sizes +* Fixed: Metadata is read and preserved when "Resized images after upload" feature is enabled + = V2.2.12 - 08.01.2017 = * Secured: Disabled Flash backend in plupload * Changed: Upgraded PHP-Parser version used when building plugin zips diff --git a/wp-content/plugins/wordpress-popular-posts/admin/class-wordpress-popular-posts-admin.php b/wp-content/plugins/wordpress-popular-posts/admin/class-wordpress-popular-posts-admin.php new file mode 100644 index 0000000000000000000000000000000000000000..f2763a583cd53b3cdcec5fd09943347dc56e4c09 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/class-wordpress-popular-posts-admin.php @@ -0,0 +1,1281 @@ +<?php + +/** + * The admin-facing functionality of the plugin. + * + * @link http://cabrerahector.com/ + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/public + */ + +/** + * The public-facing functionality of the plugin. + * + * Defines the plugin name, version, and hooks to + * enqueue the admin-specific stylesheet and JavaScript. + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/public + * @author Hector Cabrera <me@cabrerahector.com> + */ +class WPP_Admin { + + /** + * The ID of this plugin. + * + * @since 4.0.0 + * @access private + * @var string $plugin_name The ID of this plugin. + */ + private $plugin_name; + + /** + * The version of this plugin. + * + * @since 4.0.0 + * @access private + * @var string $version The current version of this plugin. + */ + private $version; + + /** + * Administrative settings. + * + * @since 2.3.3 + * @var array + */ + private $options = array(); + + /** + * Slug of the plugin screen. + * + * @since 3.0.0 + * @var string + */ + protected $plugin_screen_hook_suffix = NULL; + + /** + * Initialize the class and set its properties. + * + * @since 4.0.0 + * @param string $plugin_name The name of the plugin. + * @param string $version The version of this plugin. + */ + public function __construct( $plugin_name, $version ) { + + $this->plugin_name = $plugin_name; + $this->version = $version; + $this->options = WPP_Settings::get( 'admin_options' ); + + // Delete old data on demand + if ( 1 == $this->options['tools']['log']['limit'] ) { + + if ( !wp_next_scheduled( 'wpp_cache_event' ) ) { + $tomorrow = time() + 86400; + $midnight = mktime( + 0, + 0, + 0, + date( "m", $tomorrow ), + date( "d", $tomorrow ), + date( "Y", $tomorrow ) + ); + wp_schedule_event( $midnight, 'daily', 'wpp_cache_event' ); + } + + } else { + // Remove the scheduled event if exists + if ( $timestamp = wp_next_scheduled( 'wpp_cache_event' ) ) { + wp_unschedule_event( $timestamp, 'wpp_cache_event' ); + } + + } + + // Allow WP themers / coders to override data sampling status (active/inactive) + $this->options['tools']['sampling']['active'] = apply_filters( 'wpp_data_sampling', $this->options['tools']['sampling']['active'] ); + + } + + /** + * Fired when a new blog is activated on WP Multisite. + * + * @since 3.0.0 + * @param int blog_id New blog ID + */ + public function activate_new_site( $blog_id ){ + + if ( 1 !== did_action( 'wpmu_new_blog' ) ) + return; + + // run activation for the new blog + switch_to_blog( $blog_id ); + WPP_Activator::track_new_site(); + + // switch back to current blog + restore_current_blog(); + + } // end activate_new_site + + /** + * Fired when a blog is deleted on WP Multisite. + * + * @since 4.0.0 + * @param array $tables + * @param int $blog_id + * @return array + */ + public function delete_site_data( $tables, $blog_id ){ + + global $wpdb; + + $tables[] = $wpdb->prefix . 'popularpostsdata'; + $tables[] = $wpdb->prefix . 'popularpostssummary'; + + return $tables; + + } // end delete_site_data + + /** + * Register the stylesheets for the public-facing side of the site. + * + * @since 4.0.0 + */ + public function enqueue_styles() { + + if ( !isset( $this->plugin_screen_hook_suffix ) ) { + return; + } + + $screen = get_current_screen(); + + if ( isset( $screen->id ) && $screen->id == $this->plugin_screen_hook_suffix ) { + wp_enqueue_style( 'font-awesome', plugin_dir_url( __FILE__ ) . 'css/vendor/font-awesome.min.css', array(), '4.7.0', 'all' ); + wp_enqueue_style( 'wpp-datepicker-theme', plugin_dir_url( __FILE__ ) . 'css/datepicker.css', array(), $this->version, 'all' ); + wp_enqueue_style( 'wordpress-popular-posts-admin-styles', plugin_dir_url( __FILE__ ) . 'css/admin.css', array(), $this->version, 'all' ); + } + + } + + /** + * Register the stylesheets for the public-facing side of the site. + * + * @since 4.0.0 + */ + public function enqueue_scripts() { + + if ( ! isset( $this->plugin_screen_hook_suffix ) ) { + return; + } + + $screen = get_current_screen(); + + if ( $screen->id == $this->plugin_screen_hook_suffix ) { + + wp_enqueue_script( 'thickbox' ); + wp_enqueue_style( 'thickbox' ); + wp_enqueue_script( 'media-upload' ); + wp_enqueue_script( 'jquery-ui-datepicker' ); + wp_enqueue_script( 'chartjs', plugin_dir_url( __FILE__ ) . 'js/vendor/Chart.min.js', array(), $this->version ); + wp_enqueue_script( 'wpp-chart', plugin_dir_url( __FILE__ ) . 'js/chart.js', array('chartjs'), $this->version ); + wp_register_script( 'wordpress-popular-posts-admin-script', plugin_dir_url( __FILE__ ) . 'js/admin.js', array('jquery'), $this->version, true ); + wp_localize_script( 'wordpress-popular-posts-admin-script', 'wpp_admin_params', array( + 'nonce' => wp_create_nonce( "wpp_admin_nonce" ) + )); + wp_enqueue_script( 'wordpress-popular-posts-admin-script' ); + + } + + } + + /** + * Hooks into getttext to change upload button text when uploader is called by WPP. + * + * @since 2.3.4 + */ + public function thickbox_setup() { + + global $pagenow; + + if ( 'media-upload.php' == $pagenow || 'async-upload.php' == $pagenow ) { + add_filter( 'gettext', array( $this, 'replace_thickbox_text' ), 1, 3 ); + } + + } // end thickbox_setup + + /** + * Replaces upload button text when uploader is called by WPP. + * + * @since 2.3.4 + * @param string translated_text + * @param string text + * @param string domain + * @return string + */ + public function replace_thickbox_text( $translated_text, $text, $domain ) { + + if ( 'Insert into Post' == $text ) { + $referer = strpos( wp_get_referer(), 'wpp_admin' ); + if ( $referer != '' ) { + return __( 'Upload', 'wordpress-popular-posts' ); + } + } + + return $translated_text; + + } // end replace_thickbox_text + + public function add_contextual_help(){ + + //get the current screen object + $screen = get_current_screen(); + + if ( isset( $screen->id ) && $screen->id == $this->plugin_screen_hook_suffix ){ + $screen->add_help_tab( + array( + 'id' => 'wpp_help_overview', + 'title' => __('Overview', 'wordpress-popular-posts'), + 'content' => "<p>" . __( "Welcome to WordPress Popular Posts' Dashboard! In this screen you will find statistics on what's popular on your site, tools to further tweak WPP to your needs, and more!", "wordpress-popular-posts" ) . "</p>" + ) + ); + $screen->add_help_tab( + array( + 'id' => 'wpp_help_donate', + 'title' => __('Like this plugin?', 'wordpress-popular-posts'), + 'content' => ' + <p style="text-align: center;">' . __( 'Each donation motivates me to keep releasing free stuff for the WordPress community!', 'wordpress-popular-posts' ) . '</p> + <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" style="margin: 0; padding: 0; text-align: center;"> + <input type="hidden" name="cmd" value="_s-xclick"> + <input type="hidden" name="hosted_button_id" value="RP9SK8KVQHRKS"> + <input type="image" src="//www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" style="display: inline; margin: 0;"> + <img alt="" border="0" src="//www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1"> + </form> + <p style="text-align: center;">' . sprintf( __('You can <a href="%s" target="_blank">leave a review</a>, too!', 'wordpress-popular-posts'), 'https://wordpress.org/support/view/plugin-reviews/wordpress-popular-posts?rate=5#postform' ) . '</p>' + ) + ); + + //$screen->remove_help_tabs(); + + // Help sidebar + $screen->set_help_sidebar( + sprintf( + __( '<p><strong>For more information:</strong></p><ul><li><a href="%1$s">Documentation</a></li><li><a href="%2$s">Support</a></li></ul>', 'wordpress-popular-posts' ), + "https://github.com/cabrerahector/wordpress-popular-posts/", + "https://wordpress.org/support/plugin/wordpress-popular-posts/" + ) + ); + } + + } + + /** + * Register the administration menu for this plugin into the WordPress Dashboard menu. + * + * @since 1.0.0 + */ + public function add_plugin_admin_menu() { + + $this->plugin_screen_hook_suffix = add_options_page( + 'WordPress Popular Posts', + 'WordPress Popular Posts', + 'manage_options', + 'wordpress-popular-posts', + array( $this, 'display_plugin_admin_page' ) + ); + + } + + public function chart_query_fields( $fields, $options ){ + + if ( 'comments' == $options['order_by'] ) { + return "DATE(c.comment_date_gmt) AS 'date', COUNT(c.comment_post_ID) AS 'comment_count'"; + } + + return "v.view_date AS 'date', SUM(v.pageviews) AS 'pageviews'"; + + } + + public function chart_query_table( $table, $options ){ + + if ( 'comments' == $options['order_by'] ) { + global $wpdb; + return "`{$wpdb->prefix}comments` c"; + } + + return $table; + + } + + public function chart_query_join( $join, $options ){ + + if ( 'comments' == $options['order_by'] ) { + global $wpdb; + return "INNER JOIN `{$wpdb->prefix}posts` p ON c.comment_post_ID = p.ID"; + } + + return $table; + + } + + public function chart_query_where( $where, $options ){ + + global $wpdb; + + $now = WPP_Helper::now(); + + // Check if custom date range has been requested + $dates = null; + + if ( isset( $_GET['dates']) ) { + + $dates = explode( " ~ ", $_GET['dates'] ); + + if ( + !is_array( $dates ) + || empty( $dates ) + || !WPP_Helper::is_valid_date( $dates[0] ) + ) + { + $dates = null; + } + else { + if ( + !isset( $dates[1] ) + || !WPP_Helper::is_valid_date( $dates[1] ) + ) { + $dates[1] = $dates[0]; + } + } + + } + + $where = "WHERE 1 = 1"; + + // Determine time range + switch( $options['range'] ){ + case "last24hours": + case "daily": + $interval = "24 HOUR"; + break; + + case "last7days": + case "weekly": + $interval = "6 DAY"; + break; + + case "last30days": + case "monthly": + $interval = "29 DAY"; + break; + + case "custom": + $time_units = array( "MINUTE", "HOUR", "DAY" ); + $interval = "24 HOUR"; + + // Valid time unit + if ( + isset( $options['time_unit'] ) + && in_array( strtoupper( $options['time_unit'] ), $time_units ) + && isset( $options['time_quantity'] ) + && filter_var( $options['time_quantity'], FILTER_VALIDATE_INT ) + && $options['time_quantity'] > 0 + ) { + $interval = "{$options['time_quantity']} " . strtoupper( $options['time_unit'] ); + } + + break; + + default: + $interval = "1 DAY"; + break; + } + + $post_types = array_map( 'trim', explode( ',', $options['post_type'] ) ); + $placeholders = array(); + + if ( empty($post_types) ) { + $post_types = array('post', 'page'); + } + + foreach ( $post_types as $post_type ){ + $placeholders[] = '%s'; + } + + $where .= $wpdb->prepare( + " AND p.post_type IN(" . implode( ', ', $placeholders ) . ") ", + $post_types + ); + + // Get entries published within the specified time range + if ( isset( $options['freshness'] ) && $options['freshness'] ) { + + if ( $dates ) { + $where .= " AND p.post_date BETWEEN '{$dates[0]} 00:00:00' AND '{$dates[1]} 23:59:59'"; + } + else { + $where .= " AND p.post_date > DATE_SUB('{$now}', INTERVAL {$interval})"; + } + + } + + if ( 'comments' == $options['order_by'] ) { + + if ( $dates ) { + return $where . " AND c.comment_date_gmt BETWEEN '{$dates[0]} 00:00:00' AND '{$dates[1]} 23:59:59' AND c.comment_approved = 1 AND p.post_password = '' AND p.post_status = 'publish'"; + } + + return $where . " AND c.comment_date_gmt > DATE_SUB('{$now}', INTERVAL {$interval}) AND c.comment_approved = 1 AND p.post_password = '' AND p.post_status = 'publish'"; + } + + if ( $dates ) { + return $where . " AND v.last_viewed BETWEEN '{$dates[0]} 00:00:00' AND '{$dates[1]} 23:59:59' AND p.post_password = '' AND p.post_status = 'publish' "; + } + + return $where . " AND v.last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) AND p.post_password = '' AND p.post_status = 'publish' "; + + } + + public function chart_query_group_by( $groupby, $options ){ + return "GROUP BY date"; + } + + public function chart_query_order_by( $orderby, $options ){ + return "ORDER BY date ASC"; + } + + public function chart_query_limit( $fields, $options ){ + return ""; + } + + public function get_chart_data( $range ){ + + $now = new DateTime( WPP_Helper::now() ); + $data = array( + 'dates' => null, + 'totals' => array( + 'views' => 0, + 'comments' => 0, + 'label_summary' => '', + 'label_date_range' => '' + ) + ); + + // Determine time range + switch( $range ){ + case "last24hours": + case "daily": + /*$start_date = $now->format('Y-m-d'); + $end_date = $start_date;*/ + $end_date = $now->format('Y-m-d'); + $start_date = $now->modify('-1 day')->format('Y-m-d'); + break; + + case "today": + $start_date = $now->format('Y-m-d'); + $end_date = $start_date; + break; + + case "last7days": + case "weekly": + $end_date = $now->format('Y-m-d'); + $start_date = $now->modify('-6 day')->format('Y-m-d'); + break; + + case "last30days": + case "monthly": + $end_date = $now->format('Y-m-d'); + $start_date = $now->modify('-29 day')->format('Y-m-d'); + break; + + case "custom": + $time_units = array( + "MINUTE" => array("minute", "minutes"), + "HOUR" => array("hour", "hours"), + "DAY" => array("day", "days") + ); + $interval = "-24 hours"; + + // Valid time unit + if ( + isset( $this->options['stats']['time_unit'] ) + && isset( $time_units[ strtoupper( $this->options['stats']['time_unit'] ) ] ) + && isset( $this->options['stats']['time_quantity'] ) + && filter_var( $this->options['stats']['time_quantity'], FILTER_VALIDATE_INT ) + && $this->options['stats']['time_quantity'] > 0 + ) { + $interval = "-{$this->options['stats']['time_quantity']} " . ( $this->options['stats']['time_quantity'] > 1 ? $time_units[ strtoupper( $this->options['stats']['time_unit'] ) ][1] : $time_units[ strtoupper( $this->options['stats']['time_unit'] ) ][0] ); + } + + $end_date = date( 'Y-m-d', strtotime( $now->format('Y-m-d H:i:s') ) ); + $start_date = date( 'Y-m-d', strtotime( $now->modify($interval)->format('Y-m-d H:i:s') ) ); + + // Check if custom date range has been requested + $dates = null; + + if ( isset( $_GET['dates']) ) { + + $dates = explode( " ~ ", $_GET['dates'] ); + + if ( + !is_array( $dates ) + || empty( $dates ) + || !WPP_Helper::is_valid_date( $dates[0] ) + ) + { + $dates = null; + } + else { + if ( + !isset( $dates[1] ) + || !WPP_Helper::is_valid_date( $dates[1] ) + ) { + $dates[1] = $dates[0]; + } + + $end_date = $dates[1]; + $start_date = $dates[0]; + } + + } + + break; + + default: + $end_date = $now->format('Y-m-d'); + $start_date = $now->modify('-6 days')->format('Y-m-d'); + break; + } + + $dates = WPP_Helper::get_date_range( $start_date, $end_date ); + + if ( $dates ) { + + for( $d = 0; $d < count($dates); $d++ ) { + $data['dates'][ $dates[$d] ] = array( + 'nicename' => date_i18n( 'D d', strtotime( $dates[$d] ) ), + 'views' => 0, + 'comments' => 0 + ); + } + + } + + add_filter( 'wpp_query_fields', array( $this, 'chart_query_fields' ), 1, 2 ); + add_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1, 2 ); + add_filter( 'wpp_query_group_by', array( $this, 'chart_query_group_by' ), 1, 2 ); + add_filter( 'wpp_query_order_by', array( $this, 'chart_query_order_by' ), 1, 2 ); + add_filter( 'wpp_query_limit', array( $this, 'chart_query_limit' ), 1, 2 ); + + $most_viewed = new WPP_query( array( + 'post_type' => $this->options['stats']['post_type'], + 'range' => $this->options['stats']['range'], + 'time_unit' => $this->options['stats']['time_unit'], + 'time_quantity' => $this->options['stats']['time_quantity'], + 'order_by' => 'views' + ) ); + $views_data = $most_viewed->get_posts(); + + remove_filter( 'wpp_query_fields', array( $this, 'chart_query_fields' ), 1 ); + remove_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1 ); + remove_filter( 'wpp_query_group_by', array( $this, 'chart_query_group_by' ), 1 ); + remove_filter( 'wpp_query_order_by', array( $this, 'chart_query_order_by' ), 1 ); + remove_filter( 'wpp_query_limit', array( $this, 'chart_query_limit' ), 1 ); + + add_filter( 'wpp_query_fields', array( $this, 'chart_query_fields' ), 1, 2 ); + add_filter( 'wpp_query_table', array( $this, 'chart_query_table' ), 1, 2 ); + add_filter( 'wpp_query_join', array( $this, 'chart_query_join' ), 1, 2 ); + add_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1, 2 ); + add_filter( 'wpp_query_group_by', array( $this, 'chart_query_group_by' ), 1, 2 ); + add_filter( 'wpp_query_order_by', array( $this, 'chart_query_order_by' ), 1, 2 ); + add_filter( 'wpp_query_limit', array( $this, 'chart_query_limit' ), 1, 2 ); + + $most_commented = new WPP_query( array( + 'post_type' => $this->options['stats']['post_type'], + 'range' => $this->options['stats']['range'], + 'time_unit' => $this->options['stats']['time_unit'], + 'time_quantity' => $this->options['stats']['time_quantity'], + 'order_by' => 'comments' + ) ); + $comments_data = $most_commented->get_posts(); + + remove_filter( 'wpp_query_fields', array( $this, 'chart_query_fields' ), 1 ); + remove_filter( 'wpp_query_table', array( $this, 'chart_query_table' ), 1 ); + remove_filter( 'wpp_query_join', array( $this, 'chart_query_join' ), 1 ); + remove_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1 ); + remove_filter( 'wpp_query_group_by', array( $this, 'chart_query_group_by' ), 1 ); + remove_filter( 'wpp_query_order_by', array( $this, 'chart_query_order_by' ), 1 ); + remove_filter( 'wpp_query_limit', array( $this, 'chart_query_limit' ), 1 ); + + if ( + ( is_array($views_data) && !empty($views_data) ) + || ( is_array($comments_data) && !empty($comments_data) ) + ) { + + if ( ( is_array($views_data) && !empty($views_data) ) ) { + foreach( $views_data as $views ) { + if ( isset( $data['dates'][$views->date] ) ) { + $data['dates'][$views->date]['views'] = $views->pageviews; + $data['totals']['views'] += $views->pageviews; + } + } + } + + if ( ( is_array($comments_data) && !empty($comments_data) ) ) { + foreach( $comments_data as $comments ) { + if ( isset( $data['dates'][$comments->date] ) ) { + $data['dates'][$comments->date]['comments'] = $comments->comment_count; + $data['totals']['comments'] += $comments->comment_count; + } + } + } + + $data['totals']['label_summary'] = sprintf( _n( '1 view', '%s views', $data['totals']['views'], 'wordpress-popular-posts' ), '<strong>' . number_format_i18n( $data['totals']['views'] ) . '</strong>' ) . '<br style="display: none;" /> / ' . sprintf( _n( '1 comment', '%s comments', $data['totals']['comments'], 'wordpress-popular-posts' ), '<strong>' . number_format_i18n( $data['totals']['comments'] ) . '</strong>' ); + + $data['totals']['label_date_range'] = date_i18n( 'M, D d', strtotime( $start_date ) ) . ' — ' . date_i18n( 'M, D d', strtotime( $end_date ) ); + } + + return $data; + + } + + public function print_chart_script( $data, $containter_id ){ + + reset( $data['dates'] ); + $start_date = key( $data['dates'] ); + $end_date = key( end($data['dates']) ); + reset( $data['dates'] ); + + $color_scheme = $this->get_admin_color_scheme(); + + ?> + <script> + + if ( WPPChart.canRender() ) { + + jQuery("#<?php echo $containter_id; ?> p").remove(); + + var wpp_chart_views_color = '<?php echo $color_scheme[2]; ?>'; + var wpp_chart_comments_color = '<?php echo $color_scheme[3]; ?>'; + + var wpp_chart_data = { + labels: [ <?php foreach( $data['dates'] as $date => $date_data ) : echo "'" . date_i18n( 'D d', strtotime( $date ) ) . "', "; endforeach; ?>], + datasets: [ + { + label: "<?php _e( "Comments", "wordpress-popular-posts" ); ?>", + data: [<?php foreach( $data['dates'] as $date => $date_data ) : echo ( isset($date_data['comments']) ? $date_data['comments'] : '0' ) . ", "; endforeach; ?>], + }, + { + label: "<?php _e( "Views", "wordpress-popular-posts" ); ?>", + data: [<?php foreach( $data['dates'] as $date => $date_data ) : echo ( isset($date_data['views']) ? $date_data['views'] : '0' ) . ", "; endforeach; ?>], + } + ] + }; + + WPPChart.init( '<?php echo $containter_id; ?>' ); + WPPChart.populate( wpp_chart_data ); + + } + + </script> + <?php + } + + public function update_chart(){ + + $response = array( + 'status' => 'error' + ); + $nonce = isset( $_GET['nonce'] ) ? $_GET['nonce'] : null; + + if ( wp_verify_nonce( $nonce, 'wpp_admin_nonce' ) ) { + + $valid_ranges = array( 'daily', 'last24hours', 'weekly', 'last7days', 'monthly', 'last30days', 'all', 'custom' ); + $time_units = array( "MINUTE", "HOUR", "DAY" ); + + $range = ( isset( $_GET['range'] ) && in_array( $_GET['range'], $valid_ranges ) ) ? $_GET['range'] : 'last7days'; + $time_quantity = ( isset( $_GET['time_quantity'] ) && filter_var( $_GET['time_quantity'], FILTER_VALIDATE_INT ) ) ? $_GET['time_quantity'] : 24; + $time_unit = ( isset( $_GET['time_unit'] ) && in_array( strtoupper( $_GET['time_unit'] ), $time_units ) ) ? $_GET['time_unit'] : 'hour'; + + $admin_options = WPP_Settings::get( 'admin_options' ); + $admin_options['stats']['range'] = $range; + $admin_options['stats']['time_quantity'] = $time_quantity; + $admin_options['stats']['time_unit'] = $time_unit; + $this->options = $admin_options; + + update_site_option( 'wpp_settings_config', $this->options ); + + $response = array( + 'status' => 'ok', + 'data' => $this->get_chart_data( $range ) + ); + + } + + wp_send_json( $response ); + + } + + public function get_most_viewed(){ + + $args = array( + 'range' => $this->options['stats']['range'], + 'time_quantity' => $this->options['stats']['time_quantity'], + 'time_unit' => $this->options['stats']['time_unit'], + 'post_type' => $this->options['stats']['post_type'], + 'freshness' => $this->options['stats']['freshness'], + 'limit' => $this->options['stats']['limit'], + 'stats_tag' => array( + 'comment_count' => 0, + 'date' => array( + 'active' => 1 + ) + ) + ); + add_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1, 2 ); + $most_viewed = new WPP_query( $args ); + remove_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1 ); + $posts = $most_viewed->get_posts(); + + if ( + is_array( $posts ) + && !empty( $posts ) + ) { + ?> + <ol class="popular-posts-list"> + <?php + foreach ( $posts as $post ) { ?> + <li> + <p> + <a href="<?php echo get_permalink( $post->id ); ?>"><?php echo sanitize_text_field( $post->title ); ?></a> + <br /> + <span><?php printf( _n( '1 view', '%s views', $post->pageviews, 'wordpress-popular-posts' ), number_format_i18n( $post->pageviews ) ); ?></span> + <small> — <a href="<?php echo get_permalink( $post->id ); ?>"><?php _e("View"); ?></a> | <a href="<?php echo get_edit_post_link( $post->id ); ?>"><?php _e("Edit"); ?></a></small> + </p> + </li> + <?php + } + ?> + </ol> + <?php + } + else { + ?> + <p style="text-align: center;"><?php _e("Looks like traffic to your site is a little light right now. <br />Spread the word and come back later!", "wordpress-popular-posts"); ?></p> + <?php + } + + if ( defined('DOING_AJAX') && DOING_AJAX ) wp_die(); + + } + + public function get_most_commented(){ + + $args = array( + 'range' => $this->options['stats']['range'], + 'time_quantity' => $this->options['stats']['time_quantity'], + 'time_unit' => $this->options['stats']['time_unit'], + 'post_type' => $this->options['stats']['post_type'], + 'freshness' => $this->options['stats']['freshness'], + 'order_by' => 'comments', + 'limit' => $this->options['stats']['limit'], + 'stats_tag' => array( + 'comment_count' => 1, + 'views' => 0, + 'date' => array( + 'active' => 1 + ) + ) + ); + add_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1, 2 ); + $most_commented = new WPP_query( $args ); + remove_filter( 'wpp_query_where', array( $this, 'chart_query_where' ), 1 ); + $posts = $most_commented->get_posts(); + + if ( + is_array( $posts ) + && !empty( $posts ) + ) { + ?> + <ol class="popular-posts-list"> + <?php + foreach ( $posts as $post ) { ?> + <li> + <p> + <a href="<?php echo get_permalink( $post->id ); ?>"><?php echo sanitize_text_field( $post->title ); ?></a> + <br /> + <span><?php printf( _n( '1 comment', '%s comments', $post->comment_count, 'wordpress-popular-posts' ), number_format_i18n( $post->comment_count ) ); ?></span> + <small> — <a href="<?php echo get_permalink( $post->id ); ?>"><?php _e("View"); ?></a> | <a href="<?php echo get_edit_post_link( $post->id ); ?>"><?php _e("Edit"); ?></a></small> + </p> + </li> + <?php + } + ?> + </ol> + <?php + } + else { + ?> + <p style="text-align: center;"><?php _e("Looks like traffic to your site is a little light right now. <br />Spread the word and come back later!", "wordpress-popular-posts"); ?></p> + <?php + } + + if ( defined('DOING_AJAX') && DOING_AJAX ) wp_die(); + + } + + /* + * Gets current admin color scheme. + * + * @return stdClass + */ + private function get_admin_color_scheme(){ + + global $_wp_admin_css_colors; + + if ( + is_array( $_wp_admin_css_colors ) + && count( $_wp_admin_css_colors ) + ) { + + $current_user = wp_get_current_user(); + $color_scheme = get_user_option( 'admin_color', $current_user->ID ); + + if ( + empty( $color_scheme ) + || !isset( $_wp_admin_css_colors[ $color_scheme ] ) + ) { + $color_scheme = 'fresh'; + } + + if ( isset($_wp_admin_css_colors[ $color_scheme ]) && isset($_wp_admin_css_colors[ $color_scheme ]->colors) ) { + return $_wp_admin_css_colors[ $color_scheme ]->colors; + } + + } + + // Fallback, just in case + return array( '#333', '#999', '#881111', '#a80000' ); + + } + + /** + * Render the settings page for this plugin. + * + * @since 1.0.0 + */ + public function display_plugin_admin_page() { + include_once( plugin_dir_path(__FILE__) . 'partials/admin.php' ); + } + + /** + * Registers Settings link on plugin description. + * + * @since 2.3.3 + * @param array $links + * @param string $file + * @return array + */ + public function add_plugin_settings_link( $links, $file ){ + + $plugin_file = 'wordpress-popular-posts/wordpress-popular-posts.php'; + + if ( + is_plugin_active( $plugin_file ) + && $plugin_file == $file + ) { + $links[] = '<a href="' . admin_url( 'options-general.php?page=wordpress-popular-posts' ) . '">' . __( 'Settings' ) . '</a>'; + } + + return $links; + + } + + /** + * Register the WPP widget. + * + * @since 4.0.0 + */ + public function register_widget() { + register_widget( 'WPP_Widget' ); + } + + /** + * Flushes post's cached thumbnail(s) when the image is changed. + * + * @since 3.3.4 + * + * @param integer $meta_id ID of the meta data field + * @param integer $object_id Object ID + * @param string $meta_key Name of meta field + * @param string $meta_value Value of meta field + */ + public function flush_post_thumbnail( $meta_id, $object_id, $meta_key, $meta_value ) { + + // User changed the featured image + if ( '_thumbnail_id' == $meta_key ) { + + $wpp_image = WPP_Image::get_instance(); + + if ( $wpp_image->can_create_thumbnails() ) { + + $wpp_uploads_dir = $wpp_image->get_plugin_uploads_dir(); + + if ( is_array($wpp_uploads_dir) && !empty($wpp_uploads_dir) ) { + + $files = glob( "{$wpp_uploads_dir['basedir']}/{$object_id}-featured-*.*" ); // get all related images + + if ( is_array($files) && !empty($files) ) { + + foreach( $files as $file ){ // iterate files + if ( is_file( $file ) ) { + @unlink( $file ); // delete file + } + } + + } + + } + + } + + } + + } + + /** + * Truncates thumbnails cache on demand. + * + * @since 2.0.0 + * @global object wpdb + */ + public function clear_thumbnails() { + + $wpp_image = WPP_Image::get_instance(); + + if ( $wpp_image->can_create_thumbnails() ) { + + $wpp_uploads_dir = $wpp_image->get_plugin_uploads_dir(); + + if ( is_array($wpp_uploads_dir) && !empty($wpp_uploads_dir) ) { + + $token = isset( $_POST['token'] ) ? $_POST['token'] : null; + $key = get_site_option( "wpp_rand" ); + + if ( + current_user_can( 'manage_options' ) + && ( $token === $key ) + ) { + + if ( is_dir( $wpp_uploads_dir['basedir'] ) ) { + + $files = glob( "{$wpp_uploads_dir['basedir']}/*" ); // get all related images + + if ( is_array($files) && !empty($files) ) { + + foreach( $files as $file ){ // iterate files + if ( is_file( $file ) ) { + @unlink( $file ); // delete file + } + } + + echo 1; + + } else { + echo 2; + } + + } else { + echo 3; + } + + } else { + echo 4; + } + + } + + } else { + echo 3; + } + + wp_die(); + + } + + /** + * Truncates data and cache on demand. + * + * @since 2.0.0 + * @global object wpdb + */ + public function clear_data() { + + $token = $_POST['token']; + $clear = isset( $_POST['clear'] ) ? $_POST['clear'] : null; + $key = get_site_option( "wpp_rand" ); + + if ( + current_user_can( 'manage_options' ) + && ( $token === $key ) + && $clear + ) { + + global $wpdb; + + // set table name + $prefix = $wpdb->prefix . "popularposts"; + + if ( $clear == 'cache' ) { + + if ( $wpdb->get_var("SHOW TABLES LIKE '{$prefix}summary'") ) { + + $wpdb->query("TRUNCATE TABLE {$prefix}summary;"); + $this->flush_transients(); + + echo 1; + + } else { + echo 2; + } + + } elseif ( $clear == 'all' ) { + + if ( $wpdb->get_var("SHOW TABLES LIKE '{$prefix}data'") && $wpdb->get_var("SHOW TABLES LIKE '{$prefix}summary'") ) { + + $wpdb->query("TRUNCATE TABLE {$prefix}data;"); + $wpdb->query("TRUNCATE TABLE {$prefix}summary;"); + $this->flush_transients(); + + echo 1; + + } else { + echo 2; + } + + } else { + echo 3; + } + } else { + echo 4; + } + + wp_die(); + + } + + /** + * Deletes cached (transient) data. + * + * @since 3.0.0 + * @access private + */ + private function flush_transients() { + + $wpp_transients = get_site_option( 'wpp_transients' ); + + if ( $wpp_transients && is_array( $wpp_transients ) && !empty( $wpp_transients ) ) { + + for ( $t=0; $t < count( $wpp_transients ); $t++ ) + delete_transient( $wpp_transients[$t] ); + + update_site_option( 'wpp_transients', array() ); + + } + + } + + /** + * Purges post from data/summary tables. + * + * @since 3.3.0 + */ + public function purge_post_data() { + + if ( current_user_can( 'delete_posts' ) ) + add_action( 'delete_post', array( $this, 'purge_post' ) ); + + } + + /** + * Purges post from data/summary tables. + * + * @since 3.3.0 + * @global object $wpdb + * @return bool + */ + public function purge_post( $post_ID ) { + + global $wpdb; + + if ( $wpdb->get_var( $wpdb->prepare( "SELECT postid FROM {$wpdb->prefix}popularpostsdata WHERE postid = %d", $post_ID ) ) ) { + // Delete from data table + $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}popularpostsdata WHERE postid = %d;", $post_ID ) ); + // Delete from summary table + $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}popularpostssummary WHERE postid = %d;", $post_ID ) ); + } + + } + + /** + * Purges old post data from summary table. + * + * @since 2.0.0 + * @global object $wpdb + */ + public function purge_data() { + + global $wpdb; + + $wpdb->query( "DELETE FROM {$wpdb->prefix}popularpostssummary WHERE view_date < DATE_SUB('" . WPP_Helper::curdate() . "', INTERVAL {$this->options['tools']['log']['expires_after']} DAY);" ); + + } // end purge_data + + /** + * Checks if an upgrade procedure is required. + * + * @since 2.4.0 + */ + public function upgrade_check(){ + + // Get WPP version + $wpp_ver = get_site_option( 'wpp_ver' ); + + if ( !$wpp_ver ) { + add_site_option( 'wpp_ver', $this->version ); + } elseif ( version_compare( $wpp_ver, $this->version, '<' ) ) { + $this->upgrade(); + } + + } // end upgrade_check + + /** + * On plugin upgrade, performs a number of actions: update WPP database tables structures (if needed), + * run the setup wizard (if needed), and some other checks. + * + * @since 2.4.0 + * @access private + * @global object wpdb + */ + private function upgrade() { + + // Keep the upgrade process from running too many times + if ( get_site_option('wpp_update') ) + return; + + add_site_option( 'wpp_update', '1' ); + + global $wpdb; + + // Set table name + $prefix = $wpdb->prefix . "popularposts"; + + // Validate the structure of the tables, create missing tables / fields if necessary + WPP_Activator::track_new_site(); + + // If summary is empty, import data from popularpostsdatacache + if ( !$wpdb->get_var( "SELECT COUNT(*) FROM {$prefix}summary" ) ) { + + // popularpostsdatacache table is still there + if ( $wpdb->get_var( "SHOW TABLES LIKE '{$prefix}datacache'" ) ) { + + $sql = " + INSERT INTO {$prefix}summary (postid, pageviews, view_date, last_viewed) + SELECT id, pageviews, day_no_time, day + FROM {$prefix}datacache + GROUP BY day_no_time, id + ORDER BY day_no_time DESC"; + + $result = $wpdb->query( $sql ); + + } + + } + + // Deletes old caching tables, if found + $wpdb->query( "DROP TABLE IF EXISTS {$prefix}datacache, {$prefix}datacache_backup;" ); + + // Check storage engine + $storage_engine_data = $wpdb->get_var( "SELECT `ENGINE` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`='{$wpdb->dbname}' AND `TABLE_NAME`='{$prefix}data';" ); + + if ( 'InnoDB' != $storage_engine_data ) { + $wpdb->query( "ALTER TABLE {$prefix}data ENGINE=InnoDB;" ); + } + + $storage_engine_summary = $wpdb->get_var( "SELECT `ENGINE` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`='{$wpdb->dbname}' AND `TABLE_NAME`='{$prefix}summary';" ); + + if ( 'InnoDB' != $storage_engine_summary ) { + $wpdb->query( "ALTER TABLE {$prefix}summary ENGINE=InnoDB;" ); + } + + // Update WPP version + update_site_option( 'wpp_ver', $this->version ); + + // Remove upgrade flag + delete_site_option( 'wpp_update' ); + + } // end __upgrade + + /** + * Checks if the technical requirements are met. + * + * @since 2.4.0 + * @access private + * @link http://wordpress.stackexchange.com/questions/25910/uninstall-activate-deactivate-a-plugin-typical-features-how-to/25979#25979 + * @global string $wp_version + * @return array + */ + private function check_requirements() { + + global $wp_version; + + $php_min_version = '5.2'; + $wp_min_version = '4.1'; + $php_current_version = phpversion(); + $errors = array(); + + if ( version_compare( $php_min_version, $php_current_version, '>' ) ) { + $errors[] = sprintf( + __( 'Your PHP installation is too old. WordPress Popular Posts requires at least PHP version %1$s to function correctly. Please contact your hosting provider and ask them to upgrade PHP to %1$s or higher.', 'wordpress-popular-posts' ), + $php_min_version + ); + } + + if ( version_compare( $wp_min_version, $wp_version, '>' ) ) { + $errors[] = sprintf( + __( 'Your WordPress version is too old. WordPress Popular Posts requires at least WordPress version %1$s to function correctly. Please update your blog via Dashboard > Update.', 'wordpress-popular-posts' ), + $wp_min_version + ); + } + + return $errors; + + } // end check_requirements + + /** + * Outputs error messages to wp-admin. + * + * @since 2.4.0 + */ + public function check_admin_notices() { + + $errors = $this->check_requirements(); + + if ( empty($errors) ) + return; + + if ( isset($_GET['activate']) ) + unset($_GET['activate']); + + printf( + __('<div class="error"><p>%1$s</p><p><i>%2$s</i> has been <strong>deactivated</strong>.</p></div>', 'wordpress-popular-posts'), + join( '</p><p>', $errors ), + 'WordPress Popular Posts' + ); + + $plugin_file = 'wordpress-popular-posts/wordpress-popular-posts.php'; + deactivate_plugins( $plugin_file ); + + } // end check_admin_notices + +} // End WPP_Admin class diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/admin.css b/wp-content/plugins/wordpress-popular-posts/admin/css/admin.css new file mode 100644 index 0000000000000000000000000000000000000000..5932e0300f93ae097b6825365d63e1281055b90a --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/admin.css @@ -0,0 +1,374 @@ +#wpp-message { display: none; } + +/* + * Navigation + */ +#wpp-menu { + float: none; + clear: both; +} + + #wpp-menu ul { + text-align: center; + } + + #wpp-menu ul li { + padding: 0 15px 0 10px; + margin: 0 0px; + display: inline; + border-right: #ddd 1px solid; + } + + #wpp-menu ul li:first-child { + display: none; + } + + #wpp-menu ul li:last-child { + border: none; + } + + #wpp-menu ul li a { + } + + #wpp-menu ul li.current a { + color: #00a0d2; + text-decoration: none; + } + +.wpp-wrapper { + margin: 20px 20px 0 2px; + -webkit-font-smoothing: subpixel-antialiased; +} + +.wpp-lightbox { + display: none; + position: fixed; + top: 50%; + left: 50%; + z-index: 999; + margin: -140px 0 0 -140px; + padding: 15px; + width: 250px; + max-height: 280px; + background: #fff; + -webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); + box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); +} + + .wpp-lightbox-tabs { + margin: 0 0 25px 0; + padding: 0 0 0 0; + text-align: center; + } + + .wpp-lightbox-tabs li { + display: inline; + list-style: none; + margin: 0; + padding: 0 15px 0 10px; + border-right: #ddd 1px solid; + } + + .wpp-lightbox-tabs li:first-child { + padding: 0 15px 0 0; + } + + .wpp-lightbox-tabs li:last-child { + padding: 0 0 0 10px; + border-right: none; + } + + .wpp-lightbox-tabs li.active a { + color: #00a0d2; + text-decoration: none; + } + + .wpp-lightbox-tab-content { + overflow: hidden; + display: none; + width: 100%; + } + + .wpp-lightbox-tab-content-active { + display: block; + } + + .wpp-lightbox form { + display: block; + } + + .wpp-lightbox form input[type=text] { + display: block; + margin: 0 0 15px 0; + width: 100%; + box-sizing: border-box; + } + +.wpp-section-stats { + position: relative; +} + + .wpp-section-stats .dashicons-admin-generic { + position: absolute; + top: 22px; + left: 0; + width: 21px; + height: 21px; + transition: transform 0.3s; + } + + .wpp-section-stats .dashicons-admin-generic:hover { + transform: rotate(360deg); + } + + .wpp-header { + overflow: hidden; + display: block; + padding: 25px 0 0 0; + } + + .wpp-header h2, + .wpp-header h3, + .wpp-header h4, + .wpp-header h5 { + text-align: center; + } + + .wpp-header h2 { + margin: 0 0 5px 0; + font-size: 1.0em; + font-weight: 400; + line-height: 1.0em; + } + + .wpp-header h3 { + margin: 0 0 30px 0; + font-size: 3.5em; + letter-spacing: -1px; + line-height: 1.0em; + } + + .wpp-header h4, + #wpp-chart-wrapper h4 { + margin: 0 0 8px 0; + font-size: 2.0em; + font-weight: 100; + line-height: 1.0em; + letter-spacing: -2px; + } + + .wpp-header h5, + #wpp-chart-wrapper h5 { + margin: 0 0 0 0; + font-size: 0.9em; + font-weight: 300; + line-height: 0.9em; + } + + .wpp-header-nav { + margin: 55px auto 0px auto; + padding: 0; + text-align: center; + } + + .wpp-header-nav li { + display: inline; + list-style: none; + margin: 0 4px; + padding: 0; + } + + .wpp-header-nav li a { + display: inline-block; + padding: 6px 12px 7px; + line-height: 1.1em; + } + + .wpp-section-stats .wpp-header-nav li a:hover, + .wpp-section-stats .wpp-header-nav li.current a { + color: #00a0d2; + } + + .wpp-section-stats .wpp-header-nav li.current a { + text-decoration: none; + } + + #wpp-chart-wrapper { + width: 100%; + } + + #wpp-chart-wrapper h4, + #wpp-chart-wrapper h5 { + text-align: center; + } + + #wpp-chart-wrapper #wpp-chart { + position: relative; + overflow: hidden; + margin: 20px auto 0 auto; + width: 100%; + height: 250px; + } + + #wpp-chart-wrapper #wpp-chart p { + margin: 0 10px; + text-align: center; + } + + #wpp-chart-wrapper #wpp-chart a:hover { + text-decoration: underline; + } + + .wpp-content { + float: none; + clear: both; + width: 100%; + background: #fff; + } + + .wpp-content .wpp-tabbed-nav { + overflow: hidden; + margin: 0 0 0 0; + padding: 0; + background: #f9f9f9; + } + + .wpp-content .wpp-tabbed-nav li { + display: inline; + float: left; + margin: 0; + padding: 0; + width: 25%; + border-bottom: #f0f0f0 1px solid; + } + + .wpp-content .wpp-tabbed-nav li.active { + border-bottom: #bbb 1px solid; + } + + .wpp-content .wpp-tabbed-nav li a { + display: block; + padding: 15px; + font-size: 1.2em; + text-align: center; + text-decoration: none; + outline: none; + box-shadow: none; + } + + #wpp-listing .wpp-tabbed-nav li a .fa { + display: inline-block; + margin: 0 8px 0 0; + } + + .wpp-tab-content { + display: none; + overflow: hidden; + padding: 2% 30px; + width: 100%; + box-sizing: border-box; + } + + .wpp-tab-content-active { + display: block; + } + + .wpp-tab-content ul, + .wpp-tab-content ol { + margin: 0 0 0 0; + } + + .wpp-tab-content ul li, + .wpp-tab-content ol li { + margin: 0 1% 15px 1%; + padding: 0 0 10px 0; + border-bottom: #f0f0f0 1px solid; + } + + .wpp-tab-content ul li:last-child, + .wpp-tab-content ol li:last-child { + margin: 0 1%; + border: none; + } + + .popular-posts-list li > p > a { + font-size: 1.1em; + text-decoration: none; + } + + .popular-posts-list li:first-child, + .popular-posts-list li:first-child > p > a { + font-size: 1.9em; + } + + .popular-posts-list li:nth-child(2), + .popular-posts-list li:nth-child(2) > p > a { + font-size: 1.3em; + } + + .popular-posts-list li:nth-child(3), + .popular-posts-list li:nth-child(3) > p > a { + font-size: 1.1em; + } + + .popular-posts-list li:first-child > p > a, + .popular-posts-list li:nth-child(2) > p > a, + .popular-posts-list li:nth-child(3) > p > a { + font-weight: bold; + letter-spacing: -1px; + } + + .popular-posts-list li > p > a:hover { + text-decoration: underline; + } + + .popular-posts-list li > p > span { + color: #bbb; + font-size: 13px; + } + + .popular-posts-list li > p > small { + display: none; + } + + .popular-posts-list li:hover > p > small { + display: inline; + } + +.clear { + float:none; + clear:both; + width:100%; +} + +/* + * Media Queries + */ + +/* Small devices */ +@media only screen and (max-width: 480px){ + +} + +/* Tablets & small desktops */ +@media only screen and (max-width: 768px) { + + .wpp-wrapper { + margin: 20px 12px 0 2px; + } + + #wpp-listing .wpp-tabbed-nav li a span:last-child { + display: none; + } + + #wpp-listing .wpp-tabbed-nav li a .fa { + margin: 0 0 0 0; + } + +} + +/* Medium desktops, Large desktops & other devices */ +@media only screen and (max-width: 992px) { /* 960 + 16 + 16 */ + +} diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/datepicker.css b/wp-content/plugins/wordpress-popular-posts/admin/css/datepicker.css new file mode 100644 index 0000000000000000000000000000000000000000..146144ebff6c6fd3b4fd9cd765055da69612d4da --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/datepicker.css @@ -0,0 +1,399 @@ +/*! jQuery UI - v1.12.1 - 2017-08-15 +* http://jqueryui.com +* Includes: core.css, datepicker.css +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; + pointer-events: none; +} + + +/* Icons +----------------------------------*/ +.ui-icon { + display: inline-block; + vertical-align: middle; + margin-top: -.25em; + position: relative; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + +.ui-widget-icon-block { + left: 50%; + margin-left: -8px; + display: block; +} + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} + +/* Icons */ +.ui-datepicker .ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; + left: .5em; + top: .3em; +} + + +/* + * Custom datepicker theme for WPP. + * + * @author Hector Cabrera + */ + +.ui-datepicker { + background: #fff; + -webkit-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); + -moz-box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); + box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.25); + border-radius: 5px; +} + + .ui-datepicker-header {} + + .ui-datepicker .ui-datepicker-prev { + left: 0; + } + + .ui-datepicker .ui-datepicker-next { + right: 0; + } + + .ui-datepicker .ui-datepicker-prev span, + .ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + /*left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px;*/ + } + + .ui-datepicker-prev:before, + .ui-datepicker-next:after { + position: absolute; + top: 6px; + display: inline-block; + font-family: 'FontAwesome'; + line-height: 1.1em; + } + + .ui-datepicker-prev:before { + left: 9px; + content: "\f060"; + } + + .ui-datepicker-next:after { + right: 9px; + content: "\f061"; + } + + .ui-datepicker .ui-datepicker-prev-hover, + .ui-datepicker .ui-datepicker-next-hover { + top: 2px !important; + } + + .ui-datepicker-calendar {} + + .ui-datepicker-calendar tr td { + text-align: center; + } + + .ui-datepicker-unselectable span { + color: #ccc; + text-align: center !important; + } + + .ui-datepicker-calendar tr td a { + text-align: center; + background: #fcfcfc; + } + + .ui-datepicker-calendar tr td.date-range-selected a { + color: #fff; + text-shadow: 0 -1px 1px #ba281e, 1px 0 1px #ba281e, 0 1px 1px #ba281e, -1px 0 1px #ba281e; + background: #e14d43; + } + + .ui-datepicker-buttonpane {} + + .ui-datepicker-buttonpane button { + display: inline-block; + text-decoration: none; + font-size: 13px; + line-height: 26px; + height: 28px; + margin: 0; + padding: 0 10px 1px !important; + border-color: #ccc; + background: #f7f7f7; + vertical-align: top; + cursor: pointer; + border-width: 1px; + border-style: solid; + -webkit-appearance: none; + -webkit-border-radius: 3px; + border-radius: 3px; + white-space: nowrap; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + + /* Today button */ + .ui-datepicker-buttonpane .ui-datepicker-current { + display: none; + } + + .ui-datepicker-buttonpane .ui-priority-primary { + color: #fff; + background: #e14d43; + border-color: #d02c21 #ba281e #ba281e; + -webkit-box-shadow: 0 1px 0 #ba281e; + box-shadow: 0 1px 0 #ba281e; + text-shadow: 0 -1px 1px #ba281e, 1px 0 1px #ba281e, 0 1px 1px #ba281e, -1px 0 1px #ba281e; + } + + .ui-datepicker-buttonpane .ui-priority-primary:hover { + background: #e35950; + border-color: #ba281e; + } + + .ui-datepicker-buttonpane .ui-priority-secondary { + color: #555; + border-color: #ccc; + background: #f7f7f7; + -webkit-box-shadow: 0 1px 0 #ccc; + box-shadow: 0 1px 0 #ccc; + } diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/FontAwesome.otf b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..401ec0f36e4f73b8efa40bd6f604fe80d286db70 Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/FontAwesome.otf differ diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.eot b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..e9f60ca953f93e35eab4108bd414bc02ddcf3928 Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.eot differ diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.svg b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000000000000000000000000000000000..d7534c975b2a23edd3bd0b3f7e8c4be104f2a276 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg> +<metadata> +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. +</metadata> +<defs> +<font id="FontAwesome" horiz-adv-x="1536" > + <font-face + font-family="FontAwesome" + font-weight="400" + font-stretch="normal" + units-per-em="1792" + panose-1="0 0 0 0 0 0 0 0 0 0" + ascent="1536" + descent="-256" + bbox="-1.02083 -256.962 2304.6 1537.02" + underline-thickness="0" + underline-position="0" + unicode-range="U+0020-F500" + /> +<missing-glyph horiz-adv-x="896" +d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> + <glyph glyph-name=".notdef" horiz-adv-x="896" +d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" /> + <glyph glyph-name=".null" horiz-adv-x="0" + /> + <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" + /> + <glyph glyph-name="space" unicode=" " horiz-adv-x="448" + /> + <glyph glyph-name="dieresis" unicode="¨" horiz-adv-x="1792" + /> + <glyph glyph-name="copyright" unicode="©" horiz-adv-x="1792" + /> + <glyph glyph-name="registered" unicode="®" horiz-adv-x="1792" + /> + <glyph glyph-name="acute" unicode="´" horiz-adv-x="1792" + /> + <glyph glyph-name="AE" unicode="Æ" horiz-adv-x="1792" + /> + <glyph glyph-name="Oslash" unicode="Ø" horiz-adv-x="1792" + /> + <glyph glyph-name="trademark" unicode="™" horiz-adv-x="1792" + /> + <glyph glyph-name="infinity" unicode="∞" horiz-adv-x="1792" + /> + <glyph glyph-name="notequal" unicode="≠" horiz-adv-x="1792" + /> + <glyph glyph-name="glass" unicode="" horiz-adv-x="1792" +d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" /> + <glyph glyph-name="music" unicode="" +d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 +t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" /> + <glyph glyph-name="search" unicode="" horiz-adv-x="1664" +d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 +t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> + <glyph glyph-name="envelope" unicode="" horiz-adv-x="1792" +d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 +t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z +M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="heart" unicode="" horiz-adv-x="1792" +d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 +q-18 -18 -44 -18z" /> + <glyph glyph-name="star" unicode="" horiz-adv-x="1664" +d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 +l502 -73q56 -9 56 -46z" /> + <glyph glyph-name="star_empty" unicode="" horiz-adv-x="1664" +d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 +l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" /> + <glyph glyph-name="user" unicode="" horiz-adv-x="1280" +d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5 +t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="film" unicode="" horiz-adv-x="1920" +d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 +q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 +t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 +q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 +t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="th_large" unicode="" horiz-adv-x="1664" +d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 +h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> + <glyph glyph-name="th" unicode="" horiz-adv-x="1792" +d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 +h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 +q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" /> + <glyph glyph-name="th_list" unicode="" horiz-adv-x="1792" +d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 +h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" /> + <glyph glyph-name="ok" unicode="" horiz-adv-x="1792" +d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" /> + <glyph glyph-name="remove" unicode="" horiz-adv-x="1408" +d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 +t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /> + <glyph glyph-name="zoom_in" unicode="" horiz-adv-x="1664" +d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 +q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 +t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> + <glyph glyph-name="zoom_out" unicode="" horiz-adv-x="1664" +d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z +M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z +" /> + <glyph glyph-name="off" unicode="" +d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 +t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /> + <glyph glyph-name="signal" unicode="" horiz-adv-x="1792" +d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 +v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" /> + <glyph glyph-name="cog" unicode="" +d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 +q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 +l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 +q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" /> + <glyph glyph-name="trash" unicode="" horiz-adv-x="1408" +d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 +q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 +q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> + <glyph glyph-name="home" unicode="" horiz-adv-x="1664" +d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 +l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" /> + <glyph glyph-name="file_alt" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +" /> + <glyph glyph-name="time" unicode="" +d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="road" unicode="" horiz-adv-x="1920" +d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 +q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" /> + <glyph glyph-name="download_alt" unicode="" horiz-adv-x="1664" +d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 +q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" /> + <glyph glyph-name="download" unicode="" +d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 +t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="upload" unicode="" +d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 +t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="inbox" unicode="" +d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 +q25 -61 25 -123z" /> + <glyph glyph-name="play_circle" unicode="" +d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="repeat" unicode="" +d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9 +l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" /> + <glyph glyph-name="refresh" unicode="" +d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 +q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 +q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" /> + <glyph glyph-name="list_alt" unicode="" horiz-adv-x="1792" +d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z +M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 +t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 +t47 -113z" /> + <glyph glyph-name="lock" unicode="" horiz-adv-x="1152" +d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" /> + <glyph glyph-name="flag" unicode="" horiz-adv-x="1792" +d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 +t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" /> + <glyph glyph-name="headphones" unicode="" horiz-adv-x="1664" +d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 +t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 +t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" /> + <glyph glyph-name="volume_off" unicode="" horiz-adv-x="768" +d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" /> + <glyph glyph-name="volume_down" unicode="" horiz-adv-x="1152" +d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 +t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" /> + <glyph glyph-name="volume_up" unicode="" horiz-adv-x="1664" +d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36 +t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 +t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 +t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" /> + <glyph glyph-name="qrcode" unicode="" horiz-adv-x="1408" +d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z +M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" /> + <glyph glyph-name="barcode" unicode="" horiz-adv-x="1792" +d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z +M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" /> + <glyph glyph-name="tag" unicode="" +d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 +l715 -714q37 -39 37 -91z" /> + <glyph glyph-name="tags" unicode="" horiz-adv-x="1920" +d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 +l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" /> + <glyph glyph-name="book" unicode="" horiz-adv-x="1664" +d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 +q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 +q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 +t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" /> + <glyph glyph-name="bookmark" unicode="" horiz-adv-x="1280" +d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> + <glyph glyph-name="print" unicode="" horiz-adv-x="1664" +d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 +v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" /> + <glyph glyph-name="camera" unicode="" horiz-adv-x="1920" +d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 +q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="font" unicode="" horiz-adv-x="1664" +d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 +q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 +q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" /> + <glyph glyph-name="bold" unicode="" horiz-adv-x="1408" +d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 +q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 +t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 +t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" /> + <glyph glyph-name="italic" unicode="" horiz-adv-x="1024" +d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 +q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" /> + <glyph glyph-name="text_height" unicode="" horiz-adv-x="1792" +d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 +t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 +q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 +q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" /> + <glyph glyph-name="text_width" unicode="" +d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 +t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 +q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 +t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 +t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" /> + <glyph glyph-name="align_left" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 +t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="align_center" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 +h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" /> + <glyph glyph-name="align_right" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 +t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="align_justify" unicode="" horiz-adv-x="1792" +d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 +t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> + <glyph glyph-name="list" unicode="" horiz-adv-x="1792" +d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 +t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 +q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 +t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 +q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="indent_left" unicode="" horiz-adv-x="1792" +d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 +t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 +q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="indent_right" unicode="" horiz-adv-x="1792" +d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 +t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 +q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="facetime_video" unicode="" horiz-adv-x="1792" +d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 +q39 -17 39 -59z" /> + <glyph glyph-name="picture" unicode="" horiz-adv-x="1920" +d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 +q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="pencil" unicode="" +d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 +q53 0 91 -38l235 -234q37 -39 37 -91z" /> + <glyph glyph-name="map_marker" unicode="" horiz-adv-x="1024" +d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" /> + <glyph glyph-name="adjust" unicode="" +d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="tint" unicode="" horiz-adv-x="1024" +d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 +q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" /> + <glyph glyph-name="edit" unicode="" horiz-adv-x="1792" +d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 +q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 +l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" /> + <glyph glyph-name="share" unicode="" horiz-adv-x="1664" +d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 +q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 +t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" /> + <glyph glyph-name="check" unicode="" horiz-adv-x="1664" +d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 +q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 +q24 -24 24 -57t-24 -57z" /> + <glyph glyph-name="move" unicode="" horiz-adv-x="1792" +d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 +t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> + <glyph glyph-name="step_backward" unicode="" horiz-adv-x="1024" +d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" /> + <glyph glyph-name="fast_backward" unicode="" horiz-adv-x="1792" +d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710 +q19 19 32 13t13 -32v-710q4 10 13 19z" /> + <glyph glyph-name="backward" unicode="" horiz-adv-x="1664" +d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" /> + <glyph glyph-name="play" unicode="" horiz-adv-x="1408" +d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" /> + <glyph glyph-name="pause" unicode="" +d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" /> + <glyph glyph-name="stop" unicode="" +d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> + <glyph glyph-name="forward" unicode="" horiz-adv-x="1664" +d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> + <glyph glyph-name="fast_forward" unicode="" horiz-adv-x="1792" +d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710 +q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" /> + <glyph glyph-name="step_forward" unicode="" horiz-adv-x="1024" +d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" /> + <glyph glyph-name="eject" unicode="" horiz-adv-x="1538" +d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" /> + <glyph glyph-name="chevron_left" unicode="" horiz-adv-x="1280" +d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" /> + <glyph glyph-name="chevron_right" unicode="" horiz-adv-x="1280" +d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" /> + <glyph glyph-name="plus_sign" unicode="" +d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 +t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="minus_sign" unicode="" +d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 +t103 -385.5z" /> + <glyph glyph-name="remove_sign" unicode="" +d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 +q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ok_sign" unicode="" +d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="question_sign" unicode="" +d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 +q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="info_sign" unicode="" +d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 +t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="screenshot" unicode="" +d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 +q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 +q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" /> + <glyph glyph-name="remove_circle" unicode="" +d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 +l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 +t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ok_circle" unicode="" +d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 +t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ban_circle" unicode="" +d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 +t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" /> + <glyph glyph-name="arrow_left" unicode="" +d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 +t32.5 -90.5z" /> + <glyph glyph-name="arrow_right" unicode="" +d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" /> + <glyph glyph-name="arrow_up" unicode="" horiz-adv-x="1664" +d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 +q37 -39 37 -91z" /> + <glyph glyph-name="arrow_down" unicode="" horiz-adv-x="1664" +d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" /> + <glyph glyph-name="share_alt" unicode="" horiz-adv-x="1792" +d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 +t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" /> + <glyph glyph-name="resize_full" unicode="" +d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 +q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" /> + <glyph glyph-name="resize_small" unicode="" +d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 +t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" /> + <glyph glyph-name="plus" unicode="" horiz-adv-x="1408" +d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" /> + <glyph glyph-name="minus" unicode="" horiz-adv-x="1408" +d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" /> + <glyph glyph-name="asterisk" unicode="" horiz-adv-x="1664" +d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 +q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" /> + <glyph glyph-name="exclamation_sign" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 +q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" /> + <glyph glyph-name="gift" unicode="" +d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 +q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 +t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" /> + <glyph glyph-name="leaf" unicode="" horiz-adv-x="1792" +d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 +q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 +t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" /> + <glyph glyph-name="fire" unicode="" horiz-adv-x="1408" +d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 +q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" /> + <glyph glyph-name="eye_open" unicode="" horiz-adv-x="1792" +d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 +t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" /> + <glyph glyph-name="eye_close" unicode="" horiz-adv-x="1792" +d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 +q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 +q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z +" /> + <glyph glyph-name="warning_sign" unicode="" horiz-adv-x="1792" +d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 +q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" /> + <glyph glyph-name="plane" unicode="" horiz-adv-x="1408" +d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 +q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" /> + <glyph glyph-name="calendar" unicode="" horiz-adv-x="1664" +d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z +M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 +q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 +h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="random" unicode="" horiz-adv-x="1792" +d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 +t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 +v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 +t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> + <glyph glyph-name="comment" unicode="" horiz-adv-x="1792" +d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 +q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" /> + <glyph glyph-name="magnet" unicode="" +d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 +q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" /> + <glyph glyph-name="chevron_up" unicode="" horiz-adv-x="1792" +d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /> + <glyph glyph-name="chevron_down" unicode="" horiz-adv-x="1792" +d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /> + <glyph glyph-name="retweet" unicode="" horiz-adv-x="1920" +d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21 +zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z +" /> + <glyph glyph-name="shopping_cart" unicode="" horiz-adv-x="1664" +d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 +t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" /> + <glyph glyph-name="folder_close" unicode="" horiz-adv-x="1664" +d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> + <glyph glyph-name="folder_open" unicode="" horiz-adv-x="1920" +d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 +t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" /> + <glyph glyph-name="resize_vertical" unicode="" horiz-adv-x="768" +d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" /> + <glyph glyph-name="resize_horizontal" unicode="" horiz-adv-x="1792" +d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> + <glyph glyph-name="bar_chart" unicode="" horiz-adv-x="2048" +d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" /> + <glyph glyph-name="twitter_sign" unicode="" +d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 +q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 +t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="facebook_sign" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 +q0 119 84.5 203.5t203.5 84.5h960z" /> + <glyph glyph-name="camera_retro" unicode="" horiz-adv-x="1792" +d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 +t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 +q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="key" unicode="" horiz-adv-x="1792" +d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 +l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 +t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" /> + <glyph glyph-name="cogs" unicode="" horiz-adv-x="1920" +d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 +t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 +l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 +l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 +q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 +t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 +q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 +q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" /> + <glyph glyph-name="comments" unicode="" horiz-adv-x="1792" +d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 +q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 +q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" /> + <glyph glyph-name="thumbs_up_alt" unicode="" +d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 +t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 +q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 +q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" /> + <glyph glyph-name="thumbs_down_alt" unicode="" +d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 +t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z +M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 +h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" /> + <glyph glyph-name="star_half" unicode="" horiz-adv-x="896" +d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" /> + <glyph glyph-name="heart_empty" unicode="" horiz-adv-x="1792" +d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 +q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 +q224 0 351 -124t127 -344z" /> + <glyph glyph-name="signout" unicode="" horiz-adv-x="1664" +d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 +q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" /> + <glyph glyph-name="linkedin_sign" unicode="" +d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 +q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="pushpin" unicode="" horiz-adv-x="1152" +d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 +t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" /> + <glyph glyph-name="external_link" unicode="" horiz-adv-x="1792" +d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 +q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" /> + <glyph glyph-name="signin" unicode="" +d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 +q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="trophy" unicode="" horiz-adv-x="1664" +d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 +t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 +q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" /> + <glyph glyph-name="github_sign" unicode="" +d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 +q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 +t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 +q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="upload_alt" unicode="" horiz-adv-x="1664" +d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 +t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" /> + <glyph glyph-name="lemon" unicode="" +d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 +q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 +q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 +q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" /> + <glyph glyph-name="phone" unicode="" horiz-adv-x="1408" +d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186 +q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14 +t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" /> + <glyph glyph-name="check_empty" unicode="" horiz-adv-x="1408" +d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 +q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="bookmark_empty" unicode="" horiz-adv-x="1280" +d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 +q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> + <glyph glyph-name="phone_sign" unicode="" +d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5 +t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5 +t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z +" /> + <glyph glyph-name="twitter" unicode="" horiz-adv-x="1664" +d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 +q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" /> + <glyph glyph-name="facebook" unicode="" horiz-adv-x="1024" +d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" /> + <glyph glyph-name="github" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 +q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 +t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 +q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z +M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" /> + <glyph glyph-name="unlock" unicode="" horiz-adv-x="1664" +d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 +t316.5 -131.5t131.5 -316.5z" /> + <glyph glyph-name="credit_card" unicode="" horiz-adv-x="1920" +d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 +q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" /> + <glyph glyph-name="rss" unicode="" horiz-adv-x="1408" +d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 +t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 +q187 -186 294 -425.5t120 -501.5z" /> + <glyph glyph-name="hdd" unicode="" +d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 +h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 +l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" /> + <glyph glyph-name="bullhorn" unicode="" horiz-adv-x="1792" +d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 +t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" /> + <glyph glyph-name="bell" unicode="" horiz-adv-x="1792" +d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z +M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 +t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> + <glyph glyph-name="certificate" unicode="" +d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 +l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 +l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" /> + <glyph glyph-name="hand_right" unicode="" horiz-adv-x="1792" +d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 +q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 +q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 +t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" /> + <glyph glyph-name="hand_left" unicode="" horiz-adv-x="1792" +d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5 +t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z +M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67 +q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="hand_up" unicode="" +d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 +q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 +t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 +q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" /> + <glyph glyph-name="hand_down" unicode="" +d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 +t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 +q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 +q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" /> + <glyph glyph-name="circle_arrow_left" unicode="" +d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="circle_arrow_right" unicode="" +d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="circle_arrow_up" unicode="" +d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="circle_arrow_down" unicode="" +d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="globe" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 +q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 +q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 +q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 +t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 +q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 +q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 +t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 +t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 +q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 +q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 +q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 +t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 +q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 +q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" /> + <glyph glyph-name="wrench" unicode="" horiz-adv-x="1664" +d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 +t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" /> + <glyph glyph-name="tasks" unicode="" horiz-adv-x="1792" +d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 +t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> + <glyph glyph-name="filter" unicode="" horiz-adv-x="1408" +d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" /> + <glyph glyph-name="briefcase" unicode="" horiz-adv-x="1792" +d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 +t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" /> + <glyph glyph-name="fullscreen" unicode="" +d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 +l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z +" /> + <glyph glyph-name="group" unicode="" horiz-adv-x="1920" +d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 +t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 +t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 +t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" /> + <glyph glyph-name="link" unicode="" horiz-adv-x="1664" +d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 +l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 +t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 +q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" /> + <glyph glyph-name="cloud" unicode="" horiz-adv-x="1920" +d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z +" /> + <glyph glyph-name="beaker" unicode="" horiz-adv-x="1664" +d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" /> + <glyph glyph-name="cut" unicode="" horiz-adv-x="1792" +d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 +q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 +q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 +q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 +q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" /> + <glyph glyph-name="copy" unicode="" horiz-adv-x="1792" +d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 +h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" /> + <glyph glyph-name="paper_clip" unicode="" horiz-adv-x="1408" +d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 +l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 +z" /> + <glyph glyph-name="save" unicode="" +d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 +h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" /> + <glyph glyph-name="sign_blank" unicode="" +d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="reorder" unicode="" +d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 +t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> + <glyph glyph-name="ul" unicode="" horiz-adv-x="1792" +d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 +t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z +M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="ol" unicode="" horiz-adv-x="1792" +d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 +q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 +t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216 +q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> + <glyph glyph-name="strikethrough" unicode="" horiz-adv-x="1792" +d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 +l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 +l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" /> + <glyph glyph-name="underline" unicode="" +d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 +q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 +q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 +q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" /> + <glyph glyph-name="table" unicode="" horiz-adv-x="1664" +d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 +v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 +q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 +q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 +z" /> + <glyph glyph-name="magic" unicode="" horiz-adv-x="1664" +d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 +l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" /> + <glyph glyph-name="truck" unicode="" horiz-adv-x="1792" +d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 +t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 +t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" /> + <glyph glyph-name="pinterest" unicode="" +d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 +q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 +q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="pinterest_sign" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 +t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 +t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" /> + <glyph glyph-name="google_plus_sign" unicode="" +d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 +h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="google_plus" unicode="" horiz-adv-x="2304" +d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 +q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" /> + <glyph glyph-name="money" unicode="" horiz-adv-x="1920" +d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 +v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" /> + <glyph glyph-name="caret_down" unicode="" horiz-adv-x="1024" +d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> + <glyph glyph-name="caret_up" unicode="" horiz-adv-x="1024" +d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="caret_left" unicode="" horiz-adv-x="640" +d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" /> + <glyph glyph-name="caret_right" unicode="" horiz-adv-x="640" +d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="columns" unicode="" horiz-adv-x="1664" +d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" /> + <glyph glyph-name="sort" unicode="" horiz-adv-x="1024" +d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="sort_down" unicode="" horiz-adv-x="1024" +d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> + <glyph glyph-name="sort_up" unicode="" horiz-adv-x="1024" +d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> + <glyph glyph-name="envelope_alt" unicode="" horiz-adv-x="1792" +d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 +q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" /> + <glyph glyph-name="linkedin" unicode="" +d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 +q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" /> + <glyph glyph-name="undo" unicode="" +d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 +t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" /> + <glyph glyph-name="legal" unicode="" horiz-adv-x="1792" +d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 +t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 +q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 +q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" /> + <glyph glyph-name="dashboard" unicode="" horiz-adv-x="1792" +d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 +t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 +t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 +q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="comment_alt" unicode="" horiz-adv-x="1792" +d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 +q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 +t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> + <glyph glyph-name="comments_alt" unicode="" horiz-adv-x="1792" +d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 +t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 +t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 +q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" /> + <glyph glyph-name="bolt" unicode="" horiz-adv-x="896" +d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" /> + <glyph glyph-name="sitemap" unicode="" horiz-adv-x="1792" +d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 +q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 +z" /> + <glyph glyph-name="umbrella" unicode="" horiz-adv-x="1664" +d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 +q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 +q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" /> + <glyph glyph-name="paste" unicode="" horiz-adv-x="1792" +d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 +h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" /> + <glyph glyph-name="light_bulb" unicode="" horiz-adv-x="1024" +d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 +q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 +q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 +t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" /> + <glyph glyph-name="exchange" unicode="" horiz-adv-x="1792" +d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 +q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> + <glyph glyph-name="cloud_download" unicode="" horiz-adv-x="1920" +d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 +q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> + <glyph glyph-name="cloud_upload" unicode="" horiz-adv-x="1920" +d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 +q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> + <glyph glyph-name="user_md" unicode="" horiz-adv-x="1408" +d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 +t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 +t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 +t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="stethoscope" unicode="" horiz-adv-x="1408" +d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 +t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 +t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" /> + <glyph glyph-name="suitcase" unicode="" horiz-adv-x="1792" +d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 +t66 -158z" /> + <glyph glyph-name="bell_alt" unicode="" horiz-adv-x="1792" +d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 +t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> + <glyph glyph-name="coffee" unicode="" horiz-adv-x="1920" +d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 +t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="food" unicode="" horiz-adv-x="1408" +d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 +t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" /> + <glyph glyph-name="file_text_alt" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 +q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" /> + <glyph glyph-name="building" unicode="" horiz-adv-x="1408" +d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" /> + <glyph glyph-name="hospital" unicode="" horiz-adv-x="1408" +d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z +M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 +t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 +v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" /> + <glyph glyph-name="ambulance" unicode="" horiz-adv-x="1920" +d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 +t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 +q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="medkit" unicode="" horiz-adv-x="1792" +d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 +q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" /> + <glyph glyph-name="fighter_jet" unicode="" horiz-adv-x="1920" +d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 +q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" /> + <glyph glyph-name="beer" unicode="" horiz-adv-x="1664" +d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" /> + <glyph glyph-name="h_sign" unicode="" +d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="f0fe" unicode="" +d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="double_angle_left" unicode="" horiz-adv-x="1024" +d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 +t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" /> + <glyph glyph-name="double_angle_right" unicode="" horiz-adv-x="1024" +d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 +l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="double_angle_up" unicode="" horiz-adv-x="1152" +d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 +q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="double_angle_down" unicode="" horiz-adv-x="1152" +d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 +t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> + <glyph glyph-name="angle_left" unicode="" horiz-adv-x="640" +d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> + <glyph glyph-name="angle_right" unicode="" horiz-adv-x="640" +d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="angle_up" unicode="" horiz-adv-x="1152" +d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> + <glyph glyph-name="angle_down" unicode="" horiz-adv-x="1152" +d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> + <glyph glyph-name="desktop" unicode="" horiz-adv-x="1920" +d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 +t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="laptop" unicode="" horiz-adv-x="1920" +d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z +M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" /> + <glyph glyph-name="tablet" unicode="" horiz-adv-x="1152" +d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 +q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" /> + <glyph glyph-name="mobile_phone" unicode="" horiz-adv-x="768" +d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 +q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> + <glyph glyph-name="circle_blank" unicode="" +d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 +t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="quote_left" unicode="" horiz-adv-x="1664" +d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z +M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" /> + <glyph glyph-name="quote_right" unicode="" horiz-adv-x="1664" +d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 +v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" /> + <glyph glyph-name="spinner" unicode="" horiz-adv-x="1792" +d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 +t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z +M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 +q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" /> + <glyph glyph-name="circle" unicode="" +d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="reply" unicode="" horiz-adv-x="1792" +d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 +l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" /> + <glyph glyph-name="github_alt" unicode="" horiz-adv-x="1664" +d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 +q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 +t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 +q0 -87 -27 -168q136 -160 136 -398z" /> + <glyph glyph-name="folder_close_alt" unicode="" horiz-adv-x="1664" +d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 +q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> + <glyph glyph-name="folder_open_alt" unicode="" horiz-adv-x="1920" +d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 +v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z +" /> + <glyph glyph-name="expand_alt" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="collapse_alt" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="smile" unicode="" +d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 +t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 +t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="frown" unicode="" +d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 +t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 +t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="meh" unicode="" +d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 +t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="gamepad" unicode="" horiz-adv-x="1920" +d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 +t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 +t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" /> + <glyph glyph-name="keyboard" unicode="" horiz-adv-x="1920" +d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 +h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 +h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 +q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 +h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="flag_alt" unicode="" horiz-adv-x="1792" +d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 +h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 +q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> + <glyph glyph-name="flag_checkered" unicode="" horiz-adv-x="1792" +d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 +q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 +q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 +q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> + <glyph glyph-name="terminal" unicode="" horiz-adv-x="1664" +d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 +t9 -23z" /> + <glyph glyph-name="code" unicode="" horiz-adv-x="1920" +d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 +l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" /> + <glyph glyph-name="reply_all" unicode="" horiz-adv-x="1792" +d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 +q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" /> + <glyph glyph-name="star_half_empty" unicode="" horiz-adv-x="1664" +d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 +l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" /> + <glyph glyph-name="location_arrow" unicode="" horiz-adv-x="1408" +d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" /> + <glyph glyph-name="crop" unicode="" horiz-adv-x="1664" +d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 +v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" /> + <glyph glyph-name="code_fork" unicode="" horiz-adv-x="1024" +d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 +q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 +q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" /> + <glyph glyph-name="unlink" unicode="" horiz-adv-x="1664" +d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 +q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 +l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 +t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> + <glyph glyph-name="question" unicode="" horiz-adv-x="1024" +d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 +t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" /> + <glyph glyph-name="_279" unicode="" horiz-adv-x="640" +d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 +q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" /> + <glyph glyph-name="exclamation" unicode="" horiz-adv-x="640" +d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" /> + <glyph glyph-name="superscript" unicode="" +d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z +M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5 +t-65.5 -51.5t-30.5 -63h232v80h126z" /> + <glyph glyph-name="subscript" unicode="" +d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z +M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73 +h232v80h126z" /> + <glyph glyph-name="_283" unicode="" horiz-adv-x="1920" +d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" /> + <glyph glyph-name="puzzle_piece" unicode="" horiz-adv-x="1664" +d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 +t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 +q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 +q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" /> + <glyph glyph-name="microphone" unicode="" horiz-adv-x="1152" +d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 +t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" /> + <glyph glyph-name="microphone_off" unicode="" horiz-adv-x="1408" +d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 +q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 +t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" /> + <glyph glyph-name="shield" unicode="" horiz-adv-x="1280" +d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 +t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> + <glyph glyph-name="calendar_empty" unicode="" horiz-adv-x="1664" +d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 +q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="fire_extinguisher" unicode="" horiz-adv-x="1408" +d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 +q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 +q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" /> + <glyph glyph-name="rocket" unicode="" horiz-adv-x="1664" +d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 +q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" /> + <glyph glyph-name="maxcdn" unicode="" horiz-adv-x="1792" +d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" /> + <glyph glyph-name="chevron_sign_left" unicode="" +d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="chevron_sign_right" unicode="" +d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="chevron_sign_up" unicode="" +d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="chevron_sign_down" unicode="" +d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 +t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="html5" unicode="" horiz-adv-x="1408" +d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" /> + <glyph glyph-name="css3" unicode="" horiz-adv-x="1792" +d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" /> + <glyph glyph-name="anchor" unicode="" horiz-adv-x="1792" +d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 +q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 +t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" /> + <glyph glyph-name="unlock_alt" unicode="" horiz-adv-x="1152" +d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 +v-320h736z" /> + <glyph glyph-name="bullseye" unicode="" +d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 +t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 +q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="ellipsis_horizontal" unicode="" horiz-adv-x="1408" +d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> + <glyph glyph-name="ellipsis_vertical" unicode="" horiz-adv-x="384" +d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 +q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> + <glyph glyph-name="_303" unicode="" +d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128 +q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="play_sign" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 +q16 -8 32 -8q17 0 32 9z" /> + <glyph glyph-name="ticket" unicode="" horiz-adv-x="1792" +d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 +t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" /> + <glyph glyph-name="minus_sign_alt" unicode="" +d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 +t84.5 -203.5z" /> + <glyph glyph-name="check_minus" unicode="" horiz-adv-x="1408" +d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 +t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="level_up" unicode="" horiz-adv-x="1024" +d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" /> + <glyph glyph-name="level_down" unicode="" horiz-adv-x="1024" +d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" /> + <glyph glyph-name="check_sign" unicode="" +d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 +t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="edit_sign" unicode="" +d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 +v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_312" unicode="" +d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 +q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="share_sign" unicode="" +d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 +t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="compass" unicode="" +d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="collapse" unicode="" +d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 +v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="collapse_top" unicode="" +d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_317" unicode="" +d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 +t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="eur" unicode="" horiz-adv-x="1024" +d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 +t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 +l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" /> + <glyph glyph-name="gbp" unicode="" horiz-adv-x="1024" +d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 +q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" /> + <glyph glyph-name="usd" unicode="" horiz-adv-x="1024" +d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 +t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 +t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 +t53 -63.5t31.5 -76.5t13 -94z" /> + <glyph glyph-name="inr" unicode="" horiz-adv-x="898" +d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 +q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" /> + <glyph glyph-name="jpy" unicode="" horiz-adv-x="1027" +d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 +l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" /> + <glyph glyph-name="rub" unicode="" horiz-adv-x="1280" +d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 +q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" /> + <glyph glyph-name="krw" unicode="" horiz-adv-x="1792" +d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 +t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 +q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" /> + <glyph glyph-name="btc" unicode="" horiz-adv-x="1280" +d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 +l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 +t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" /> + <glyph glyph-name="file" unicode="" +d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" /> + <glyph glyph-name="file_text" unicode="" +d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 +q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" /> + <glyph glyph-name="sort_by_alphabet" unicode="" horiz-adv-x="1664" +d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 +v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 +l230 -662h70z" /> + <glyph glyph-name="_329" unicode="" horiz-adv-x="1664" +d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 +v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 +v119h121z" /> + <glyph glyph-name="sort_by_attributes" unicode="" horiz-adv-x="1792" +d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 +q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 +q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" /> + <glyph glyph-name="sort_by_attributes_alt" unicode="" horiz-adv-x="1792" +d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 +q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 +q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" /> + <glyph glyph-name="sort_by_order" unicode="" +d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 +zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 +t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" /> + <glyph glyph-name="sort_by_order_alt" unicode="" +d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 +t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 +q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" /> + <glyph glyph-name="_334" unicode="" horiz-adv-x="1664" +d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 +q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 +t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" /> + <glyph glyph-name="_335" unicode="" horiz-adv-x="1664" +d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 +t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 +t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" /> + <glyph glyph-name="youtube_sign" unicode="" +d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 +q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 +q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 +q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38 +q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5 +h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="youtube" unicode="" +d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 +q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 +q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 +q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51 +q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" /> + <glyph glyph-name="xing" unicode="" horiz-adv-x="1408" +d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 +q25 45 64 45h241q22 0 31 -15z" /> + <glyph glyph-name="xing_sign" unicode="" +d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 +l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="youtube_play" unicode="" horiz-adv-x="1792" +d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5 +l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136 +q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" /> + <glyph glyph-name="dropbox" unicode="" horiz-adv-x="1792" +d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" /> + <glyph glyph-name="stackexchange" unicode="" +d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" /> + <glyph glyph-name="instagram" unicode="" +d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 +q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5 +t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317 +q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" /> + <glyph glyph-name="flickr" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 +t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" /> + <glyph glyph-name="adn" unicode="" +d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="f171" unicode="" horiz-adv-x="1408" +d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 +t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 +t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 +t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" /> + <glyph glyph-name="bitbucket_sign" unicode="" +d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 +t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z +M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 +v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="tumblr" unicode="" horiz-adv-x="1024" +d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 +q78 2 134 29z" /> + <glyph glyph-name="tumblr_sign" unicode="" +d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z +M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="long_arrow_down" unicode="" horiz-adv-x="768" +d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" /> + <glyph glyph-name="long_arrow_up" unicode="" horiz-adv-x="768" +d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" /> + <glyph glyph-name="long_arrow_left" unicode="" horiz-adv-x="1792" +d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" /> + <glyph glyph-name="long_arrow_right" unicode="" horiz-adv-x="1792" +d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" /> + <glyph glyph-name="apple" unicode="" horiz-adv-x="1408" +d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 +q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" /> + <glyph glyph-name="windows" unicode="" horiz-adv-x="1664" +d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" /> + <glyph glyph-name="android" unicode="" horiz-adv-x="1408" +d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 +t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 +h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" /> + <glyph glyph-name="linux" unicode="" +d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z +M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 +q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 +q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 +t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 +q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 +q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 +q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 +q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4 +t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5 +t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43 +q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49 +t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54 +q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5 +t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5 +t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" /> + <glyph glyph-name="dribble" unicode="" +d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 +t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 +q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 +t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="skype" unicode="" +d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 +t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 +q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 +q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" /> + <glyph glyph-name="foursquare" unicode="" horiz-adv-x="1280" +d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z +M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 +l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" /> + <glyph glyph-name="trello" unicode="" +d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 +q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> + <glyph glyph-name="female" unicode="" horiz-adv-x="1280" +d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 +q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="male" unicode="" horiz-adv-x="1024" +d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z +M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="gittip" unicode="" +d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="sun" unicode="" horiz-adv-x="1792" +d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 +l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 +q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" /> + <glyph glyph-name="_366" unicode="" +d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 +t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" /> + <glyph glyph-name="archive" unicode="" horiz-adv-x="1792" +d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 +q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" /> + <glyph glyph-name="bug" unicode="" horiz-adv-x="1664" +d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 +q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 +t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" /> + <glyph glyph-name="vk" unicode="" horiz-adv-x="1920" +d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 +t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 +q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24 +q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 +q39 5 64 -2.5t31 -16.5z" /> + <glyph glyph-name="weibo" unicode="" horiz-adv-x="1792" +d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 +q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 +q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 +q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z +M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" /> + <glyph glyph-name="renren" unicode="" +d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 +q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" /> + <glyph glyph-name="_372" unicode="" horiz-adv-x="1408" +d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 +t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 +t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 +t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" /> + <glyph glyph-name="stack_exchange" unicode="" horiz-adv-x="1280" +d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z +" /> + <glyph glyph-name="_374" unicode="" +d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 +t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="arrow_circle_alt_left" unicode="" +d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 +t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_376" unicode="" +d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z +M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="dot_circle_alt" unicode="" +d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 +t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_378" unicode="" horiz-adv-x="1664" +d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 +q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" /> + <glyph glyph-name="vimeo_square" unicode="" +d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 +q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_380" unicode="" horiz-adv-x="1152" +d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 +q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> + <glyph glyph-name="plus_square_o" unicode="" horiz-adv-x="1408" +d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 +q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_382" unicode="" horiz-adv-x="2176" +d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 +t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 +q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" /> + <glyph glyph-name="_383" unicode="" horiz-adv-x="1664" +d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 +q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 +t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" /> + <glyph glyph-name="_384" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 +q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 +t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" /> + <glyph glyph-name="_385" unicode="" horiz-adv-x="1792" +d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 +t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 +t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 +t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 +t273 -182.5t331.5 -68z" /> + <glyph glyph-name="_386" unicode="" horiz-adv-x="1792" +d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" /> + <glyph glyph-name="_387" unicode="" horiz-adv-x="2048" +d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 +q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" /> + <glyph glyph-name="_388" unicode="" horiz-adv-x="2304" +d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 +q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" /> + <glyph glyph-name="_389" unicode="" +d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 +q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" /> + <glyph glyph-name="uniF1A0" unicode="" +d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 +t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" /> + <glyph glyph-name="f1a1" unicode="" horiz-adv-x="1792" +d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 +t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 +q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 +t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_392" unicode="" +d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 +q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 +q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 +q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_393" unicode="" +d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 +v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 +t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="f1a4" unicode="" horiz-adv-x="1920" +d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 +v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" /> + <glyph glyph-name="_395" unicode="" +d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 +t84.5 -203.5z" /> + <glyph glyph-name="_396" unicode="" horiz-adv-x="2048" +d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 +v-369h123z" /> + <glyph glyph-name="_397" unicode="" +d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 +v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 +q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_398" unicode="" horiz-adv-x="2038" +d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 +q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 +q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 +q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 +t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 +q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 +t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 +t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" /> + <glyph glyph-name="_399" unicode="" +d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 +q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 +q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 +t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 +q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" /> + <glyph glyph-name="_400" unicode="" +d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z +M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 +t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 +q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 +t135.5 51q85 0 145 -60.5t60 -145.5z" /> + <glyph glyph-name="f1ab" unicode="" +d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 +q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 +q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z +M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 +q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 +q20 0 20 -21v-418z" /> + <glyph glyph-name="_402" unicode="" horiz-adv-x="1792" +d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 +l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 +t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 +q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 +q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" /> + <glyph glyph-name="_403" unicode="" +d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 +t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 +q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 +q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 +t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 +q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 +q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 +t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" /> + <glyph glyph-name="_404" unicode="" horiz-adv-x="1280" +d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152 +q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="uniF1B1" unicode="" horiz-adv-x="1664" +d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 +q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 +q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 +t100.5 134t141.5 55.5z" /> + <glyph glyph-name="_406" unicode="" horiz-adv-x="768" +d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" /> + <glyph glyph-name="_407" unicode="" horiz-adv-x="1792" +d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z +" /> + <glyph glyph-name="_408" unicode="" horiz-adv-x="2304" +d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 +t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 +v-400l434 -186q36 -16 57 -48t21 -70z" /> + <glyph glyph-name="_409" unicode="" horiz-adv-x="2048" +d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 +q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 +q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" /> + <glyph glyph-name="_410" unicode="" +d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 +t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 +t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" /> + <glyph glyph-name="_411" unicode="" horiz-adv-x="1792" +d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 +q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 +q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" /> + <glyph glyph-name="_412" unicode="" +d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 +q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 +q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z +" /> + <glyph glyph-name="_413" unicode="" horiz-adv-x="1792" +d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 +l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 +t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 +q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" /> + <glyph glyph-name="_414" unicode="" horiz-adv-x="2048" +d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 +q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 +l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="_415" unicode="" horiz-adv-x="2048" +d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 +t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z +M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" /> + <glyph glyph-name="_416" unicode="" +d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 +q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" /> + <glyph glyph-name="_417" unicode="" +d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 +q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 +q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_418" unicode="" horiz-adv-x="1024" +d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" /> + <glyph glyph-name="_419" unicode="" horiz-adv-x="2304" +d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 +q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 +q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 +l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 +q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236 +q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786 +q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" /> + <glyph glyph-name="uniF1C0" unicode="" +d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 +t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 +t-103 128v128q0 69 103 128t280 93.5t385 34.5z" /> + <glyph glyph-name="uniF1C1" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 +q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 +q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" /> + <glyph glyph-name="_422" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5 +t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" /> + <glyph glyph-name="_423" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 +h-290v-107h68l189 -272l-194 -283h-68z" /> + <glyph glyph-name="_424" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" /> + <glyph glyph-name="_425" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" /> + <glyph glyph-name="_426" unicode="" +d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 +v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 +q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" /> + <glyph glyph-name="_427" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 +q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" /> + <glyph glyph-name="_428" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" /> + <glyph glyph-name="_429" unicode="" +d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z +M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 +l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" /> + <glyph glyph-name="_430" unicode="" +d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 +q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" /> + <glyph glyph-name="_431" unicode="" horiz-adv-x="1792" +d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 +q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" /> + <glyph glyph-name="_432" unicode="" horiz-adv-x="2048" +d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 +q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 +t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" /> + <glyph glyph-name="_433" unicode="" horiz-adv-x="1792" +d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 +q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 +t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" /> + <glyph glyph-name="_434" unicode="" horiz-adv-x="1792" +d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 +t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" /> + <glyph glyph-name="uniF1D0" unicode="" horiz-adv-x="1792" +d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 +t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 +t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 +q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" /> + <glyph glyph-name="uniF1D1" unicode="" horiz-adv-x="1792" +d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 +l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 +q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 +q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 +t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 +t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF1D2" unicode="" +d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 +q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 +q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 +q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_438" unicode="" horiz-adv-x="1792" +d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 +q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 +q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 +v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" /> + <glyph glyph-name="_439" unicode="" +d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="uniF1D5" unicode="" horiz-adv-x="1280" +d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 +t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 +t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" /> + <glyph glyph-name="uniF1D6" unicode="" horiz-adv-x="1792" +d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 +q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 +t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 +t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" /> + <glyph glyph-name="uniF1D7" unicode="" horiz-adv-x="2048" +d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 +q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 +q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 +q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" /> + <glyph glyph-name="_443" unicode="" horiz-adv-x="1792" +d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" /> + <glyph glyph-name="_444" unicode="" horiz-adv-x="1792" +d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 +l863 639l-478 -797z" /> + <glyph glyph-name="_445" unicode="" +d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 +t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 +t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_446" unicode="" +d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 +t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_447" unicode="" horiz-adv-x="1792" +d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 +t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 +t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 +q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 +q0 -26 -12 -48t-36 -22z" /> + <glyph glyph-name="_448" unicode="" horiz-adv-x="1280" +d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 +q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" /> + <glyph glyph-name="_449" unicode="" +d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 +q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" /> + <glyph glyph-name="uniF1E0" unicode="" +d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 +t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" /> + <glyph glyph-name="_451" unicode="" +d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 +t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_452" unicode="" horiz-adv-x="1792" +d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 +t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 +q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 +t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> + <glyph glyph-name="_453" unicode="" horiz-adv-x="1792" +d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 +l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" /> + <glyph glyph-name="_454" unicode="" horiz-adv-x="1792" +d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 +v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 +q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 +zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 +t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" /> + <glyph glyph-name="_455" unicode="" horiz-adv-x="1792" +d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z +M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_456" unicode="" horiz-adv-x="1792" +d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234 +l401 400q38 37 91 37t90 -37z" /> + <glyph glyph-name="_457" unicode="" horiz-adv-x="1792" +d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 +t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z +M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7 +t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" /> + <glyph glyph-name="_458" unicode="" horiz-adv-x="1792" +d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" /> + <glyph glyph-name="_459" unicode="" +d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 +q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 +t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 +q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" /> + <glyph glyph-name="_460" unicode="" horiz-adv-x="2048" +d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 +t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" /> + <glyph glyph-name="_461" unicode="" horiz-adv-x="2048" +d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 +q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z +M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" /> + <glyph glyph-name="_462" unicode="" horiz-adv-x="1792" +d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 +t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 +t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 +t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z +M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 +h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_463" unicode="" +d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 +q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 +q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" /> + <glyph glyph-name="_464" unicode="" horiz-adv-x="1792" +d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 +q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" /> + <glyph glyph-name="uniF1F0" unicode="" horiz-adv-x="2304" +d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 +q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 +q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_466" unicode="" horiz-adv-x="2304" +d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249 +q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z +M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32 +h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4 +q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75 +q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14 +q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22 +q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12 +q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122 +h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5 +t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_467" unicode="" horiz-adv-x="2304" +d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 +q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 +v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 +q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 +t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" /> + <glyph glyph-name="f1f3" unicode="" horiz-adv-x="2304" +d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z +M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 +l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 +v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 +q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 +q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 +t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 +h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 +t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" /> + <glyph glyph-name="_469" unicode="" horiz-adv-x="2304" +d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 +t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 +q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 +t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 +l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 +q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_470" unicode="" horiz-adv-x="2304" +d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 +q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 +q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 +q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 +q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_471" unicode="" horiz-adv-x="2048" +d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 +l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 +l418 363q10 8 23.5 7t21.5 -11z" /> + <glyph glyph-name="_472" unicode="" horiz-adv-x="2048" +d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 +q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 +q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" /> + <glyph glyph-name="_473" unicode="" horiz-adv-x="1408" +d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 +q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 +q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_474" unicode="" +d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 +t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 +t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_475" unicode="" +d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 +q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 +t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 +t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" /> + <glyph glyph-name="_476" unicode="" horiz-adv-x="1792" +d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 +t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" /> + <glyph glyph-name="f1fc" unicode="" horiz-adv-x="1792" +d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 +t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" /> + <glyph glyph-name="_478" unicode="" horiz-adv-x="1792" +d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5 +t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38 +t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448 +h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5 +q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" /> + <glyph glyph-name="_479" unicode="" horiz-adv-x="2048" +d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" /> + <glyph glyph-name="_480" unicode="" horiz-adv-x="1792" +d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_481" unicode="" horiz-adv-x="2048" +d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 +t9 -23z" /> + <glyph glyph-name="_482" unicode="" horiz-adv-x="1792" +d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 +q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 +t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 +q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" /> + <glyph glyph-name="_483" unicode="" +d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 +q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 +q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 +q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_484" unicode="" horiz-adv-x="2048" +d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 +t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 +t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" /> + <glyph glyph-name="_485" unicode="" horiz-adv-x="2048" +d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 +t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" /> + <glyph glyph-name="_486" unicode="" horiz-adv-x="2304" +d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 +q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 +q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 +q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" /> + <glyph glyph-name="_487" unicode="" +d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 +h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 +t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" /> + <glyph glyph-name="_488" unicode="" horiz-adv-x="2048" +d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 +q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 +q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" /> + <glyph glyph-name="_489" unicode="" horiz-adv-x="1280" +d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 +t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 +t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 +q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 +q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 +t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" /> + <glyph glyph-name="_490" unicode="" horiz-adv-x="2048" +d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 +q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 +t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 +t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" /> + <glyph glyph-name="_491" unicode="" +d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 +t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> + <glyph glyph-name="_492" unicode="" +d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 +q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 +q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" /> + <glyph glyph-name="_493" unicode="" +d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" /> + <glyph glyph-name="_494" unicode="" horiz-adv-x="2048" +d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 +q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 +q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438 +h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66 +l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946 +l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82 +zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" /> + <glyph glyph-name="f210" unicode="" +d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" /> + <glyph glyph-name="_496" unicode="" +d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 +q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" /> + <glyph glyph-name="f212" unicode="" horiz-adv-x="2048" +d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 +q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 +q209 0 374 -102q172 107 374 102z" /> + <glyph glyph-name="_498" unicode="" horiz-adv-x="2048" +d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 +q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 +q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" /> + <glyph glyph-name="_499" unicode="" +d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 +l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 +v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z +M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 +v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 +h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 +t-43 -34t-16.5 -53.5z" /> + <glyph glyph-name="_500" unicode="" horiz-adv-x="2048" +d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 +q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" /> + <glyph glyph-name="_501" unicode="" horiz-adv-x="2048" +d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 +t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 +t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 +q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" /> + <glyph glyph-name="_502" unicode="" horiz-adv-x="1664" +d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 +t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 +q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> + <glyph glyph-name="_503" unicode="" horiz-adv-x="1664" +d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 +t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 +q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> + <glyph glyph-name="_504" unicode="" horiz-adv-x="2048" +d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 +l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" /> + <glyph glyph-name="_505" unicode="" horiz-adv-x="2048" +d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 +q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 +q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 +v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 +q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" /> + <glyph glyph-name="_506" unicode="" +d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 +t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 +q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 +t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" /> + <glyph glyph-name="_507" unicode="" horiz-adv-x="2304" +d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 +t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 +l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 +t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" /> + <glyph glyph-name="_508" unicode="" +d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 +q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 +q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 +t158.5 -65.5t65.5 -158.5z" /> + <glyph glyph-name="_509" unicode="" horiz-adv-x="1792" +d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 +q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 +t127 -344z" /> + <glyph glyph-name="venus" unicode="" horiz-adv-x="1280" +d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 +q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" /> + <glyph glyph-name="_511" unicode="" +d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 +q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_512" unicode="" horiz-adv-x="1280" +d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 +t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 +t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_513" unicode="" +d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 +q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 +t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_514" unicode="" horiz-adv-x="1792" +d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 +q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 +t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 +t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_515" unicode="" horiz-adv-x="1792" +d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 +t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 +q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 +q0 -226 -154 -391q103 -57 218 -57z" /> + <glyph glyph-name="_516" unicode="" horiz-adv-x="1920" +d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 +q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 +t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 +q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" /> + <glyph glyph-name="_517" unicode="" horiz-adv-x="2048" +d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 +t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 +t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 +t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" /> + <glyph glyph-name="_518" unicode="" +d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 +t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 +t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_519" unicode="" horiz-adv-x="1280" +d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 +t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 +t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_520" unicode="" horiz-adv-x="2048" +d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 +t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 +t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_521" unicode="" horiz-adv-x="1280" +d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 +t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> + <glyph glyph-name="_522" unicode="" horiz-adv-x="1280" +d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 +t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" /> + <glyph glyph-name="_523" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="_524" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="_525" unicode="" +d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" /> + <glyph glyph-name="_526" unicode="" horiz-adv-x="1280" +d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 +l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 +q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" /> + <glyph glyph-name="_527" unicode="" +d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 +t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 +l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" /> + <glyph glyph-name="_528" unicode="" horiz-adv-x="1792" +d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 +q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" /> + <glyph glyph-name="_529" unicode="" horiz-adv-x="2048" +d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 +t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 +t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" /> + <glyph glyph-name="_530" unicode="" horiz-adv-x="2048" +d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 +q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 +t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" /> + <glyph glyph-name="_531" unicode="" horiz-adv-x="2048" +d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 +q-26 0 -45 -19t-19 -45v-384h1152z" /> + <glyph glyph-name="_532" unicode="" +d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" /> + <glyph glyph-name="_533" unicode="" +d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 +t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" /> + <glyph glyph-name="_534" unicode="" +d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 +t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" /> + <glyph glyph-name="_535" unicode="" horiz-adv-x="1792" +d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 +q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" /> + <glyph glyph-name="_536" unicode="" +d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" /> + <glyph glyph-name="_537" unicode="" horiz-adv-x="2296" +d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 +q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 +q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 +q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 +q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 +q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 +q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8 +t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 +q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 +q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z +M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86 +t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 +q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4 +l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130 +t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 +q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 +q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" /> + <glyph glyph-name="_538" unicode="" horiz-adv-x="2304" +d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 +t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 +t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" /> + <glyph glyph-name="_539" unicode="" horiz-adv-x="1792" +d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 +t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 +t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 +q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 +q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" /> + <glyph glyph-name="_540" unicode="" horiz-adv-x="2304" +d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 +v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" /> + <glyph glyph-name="_541" unicode="" horiz-adv-x="2304" +d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 +h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_542" unicode="" horiz-adv-x="2304" +d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 +h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_543" unicode="" horiz-adv-x="2304" +d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 +h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_544" unicode="" horiz-adv-x="2304" +d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 +v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> + <glyph glyph-name="_545" unicode="" horiz-adv-x="1280" +d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" /> + <glyph glyph-name="_546" unicode="" horiz-adv-x="1024" +d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" /> + <glyph glyph-name="_547" unicode="" horiz-adv-x="2048" +d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 +h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" /> + <glyph glyph-name="_548" unicode="" horiz-adv-x="2304" +d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 +v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" /> + <glyph glyph-name="_549" unicode="" +d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" /> + <glyph glyph-name="_550" unicode="" +d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 +z" /> + <glyph glyph-name="_551" unicode="" horiz-adv-x="2304" +d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 +t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 +t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 +t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_552" unicode="" horiz-adv-x="2304" +d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 +t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z +M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_553" unicode="" horiz-adv-x="1792" +d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 +zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" /> + <glyph glyph-name="_554" unicode="" horiz-adv-x="2304" +d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 +q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 +t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 +t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" /> + <glyph glyph-name="_555" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 +t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> + <glyph glyph-name="_556" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" /> + <glyph glyph-name="_557" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" /> + <glyph glyph-name="_558" unicode="" +d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 +t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 +h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> + <glyph glyph-name="_559" unicode="" +d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 +t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 +h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" /> + <glyph glyph-name="_560" unicode="" +d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 +q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 +t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 +q72 69 174 69z" /> + <glyph glyph-name="_561" unicode="" horiz-adv-x="1792" +d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 +t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 +h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" /> + <glyph glyph-name="_562" unicode="" horiz-adv-x="1792" +d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 +q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 +t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 +t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 +q0 -42 -23 -78t-61 -53l-310 -141h91z" /> + <glyph glyph-name="_563" unicode="" horiz-adv-x="2048" +d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 +q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 +q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" /> + <glyph glyph-name="_564" unicode="" horiz-adv-x="2048" +d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79 +t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24 +q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26 +l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" /> + <glyph glyph-name="_565" unicode="" horiz-adv-x="1792" +d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 +q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 +v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 +v-384h32z" /> + <glyph glyph-name="_566" unicode="" +d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 +v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 +q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 +q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 +q0 -53 37.5 -90.5t90.5 -37.5h668z" /> + <glyph glyph-name="_567" unicode="" horiz-adv-x="1973" +d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 +t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 +q13 0 22 -8.5t10 -20.5z" /> + <glyph glyph-name="_568" unicode="" horiz-adv-x="1792" +d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 +t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 +q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_569" unicode="" horiz-adv-x="1792" +d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 +q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5 +t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 +q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 +t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" /> + <glyph glyph-name="f260" unicode="" horiz-adv-x="2048" +d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" /> + <glyph glyph-name="f261" unicode="" horiz-adv-x="1792" +d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 +t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_572" unicode="" horiz-adv-x="2304" +d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 +t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 +t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 +t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 +t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 +q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" /> + <glyph glyph-name="f263" unicode="" horiz-adv-x="1280" +d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 +t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 +q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" /> + <glyph glyph-name="_574" unicode="" +d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 +q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 +zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="_575" unicode="" horiz-adv-x="1720" +d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 +l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" /> + <glyph glyph-name="_576" unicode="" horiz-adv-x="2304" +d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 +q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 +l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" /> + <glyph glyph-name="_577" unicode="" horiz-adv-x="1792" +d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 +q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 +t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 +t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 +t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 +t191 -286t71 -348z" /> + <glyph glyph-name="_578" unicode="" horiz-adv-x="1792" +d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 +q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" /> + <glyph glyph-name="_579" unicode="" horiz-adv-x="1792" +d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 +q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 +q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" /> + <glyph glyph-name="_580" unicode="" horiz-adv-x="1792" +d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 +q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z +" /> + <glyph glyph-name="_581" unicode="" horiz-adv-x="1792" +d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 +q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z +M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" /> + <glyph glyph-name="_582" unicode="" horiz-adv-x="2048" +d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 +v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> + <glyph glyph-name="_583" unicode="" horiz-adv-x="1792" +d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 +h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 +q-68 175 -180 287z" /> + <glyph glyph-name="_584" unicode="" +d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 +q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 +q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 +q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 +q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 +t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" /> + <glyph glyph-name="_585" unicode="" horiz-adv-x="1792" +d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z +M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 +q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 +t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 +q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" /> + <glyph glyph-name="_586" unicode="" horiz-adv-x="1792" +d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 +h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 +v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" /> + <glyph glyph-name="_587" unicode="" horiz-adv-x="1792" +d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 +t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 +t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_588" unicode="" horiz-adv-x="1792" +d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z +M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 +q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_589" unicode="" horiz-adv-x="1792" +d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 +t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 +t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> + <glyph glyph-name="_590" unicode="" horiz-adv-x="1792" +d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" /> + <glyph glyph-name="_591" unicode="" horiz-adv-x="1024" +d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 +q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" /> + <glyph glyph-name="_592" unicode="" horiz-adv-x="1792" +d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 +q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" /> + <glyph glyph-name="_593" unicode="" horiz-adv-x="2048" +d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 +v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" /> + <glyph glyph-name="_594" unicode="" horiz-adv-x="1792" +d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 +q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" /> + <glyph glyph-name="_595" unicode="" horiz-adv-x="1792" +d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 +t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 +t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> + <glyph glyph-name="_596" unicode="" horiz-adv-x="1792" +d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 +t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 +t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 +t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" /> + <glyph glyph-name="_597" unicode="" horiz-adv-x="1024" +d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" /> + <glyph glyph-name="_598" unicode="" horiz-adv-x="1792" +d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 +q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" /> + <glyph glyph-name="f27e" unicode="" +d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" /> + <glyph glyph-name="uniF280" unicode="" +d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 +h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 +l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" /> + <glyph glyph-name="uniF281" unicode="" horiz-adv-x="1792" +d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 +l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 +t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 +q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" /> + <glyph glyph-name="_602" unicode="" horiz-adv-x="1792" +d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 +q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" /> + <glyph glyph-name="_603" unicode="" horiz-adv-x="2304" +d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" /> + <glyph glyph-name="_604" unicode="" horiz-adv-x="1792" +d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308 +t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20 +t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" /> + <glyph glyph-name="uniF285" unicode="" horiz-adv-x="1792" +d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" /> + <glyph glyph-name="uniF286" unicode="" horiz-adv-x="1792" +d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 +q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5 +q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96 +q16 0 16 -16z" /> + <glyph glyph-name="_607" unicode="" horiz-adv-x="2304" +d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 +q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 +t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" /> + <glyph glyph-name="_608" unicode="" horiz-adv-x="1792" +d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 +t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_609" unicode="" horiz-adv-x="2304" +d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 +q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 +q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 +q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" /> + <glyph glyph-name="_610" unicode="" +d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 +t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 +q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 +t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" /> + <glyph glyph-name="_611" unicode="" +d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 +t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_612" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 +t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" /> + <glyph glyph-name="_613" unicode="" +d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 +t103 -385.5z" /> + <glyph glyph-name="_614" unicode="" +d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 +t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" /> + <glyph glyph-name="_615" unicode="" horiz-adv-x="1792" +d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 +t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="_616" unicode="" horiz-adv-x="2048" +d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 +t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 +q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 +h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" /> + <glyph glyph-name="_617" unicode="" horiz-adv-x="1792" +d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 +q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 +q15 0 25 -12q9 -12 6 -28z" /> + <glyph glyph-name="_618" unicode="" +d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 +t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" /> + <glyph glyph-name="_619" unicode="" horiz-adv-x="1024" +d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" /> + <glyph glyph-name="_620" unicode="" +d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 +t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 +t271.5 -112.5t112.5 -271.5z" /> + <glyph glyph-name="_621" unicode="" horiz-adv-x="1792" +d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" /> + <glyph glyph-name="_622" unicode="" horiz-adv-x="1792" +d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 +q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" /> + <glyph glyph-name="_623" unicode="" +d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 +t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" /> + <glyph glyph-name="_624" unicode="" horiz-adv-x="1792" +d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 +q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 +q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" /> + <glyph glyph-name="_625" unicode="" horiz-adv-x="1792" +d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 +q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z +M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 +t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="_626" unicode="" +d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 +l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z +M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" /> + <glyph glyph-name="_627" unicode="" +d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 +t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 +t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 +t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="_628" unicode="" horiz-adv-x="1408" +d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 +q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 +q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 +q3 -1 7 1t7 4l3 2q11 9 11 17z" /> + <glyph glyph-name="_629" unicode="" horiz-adv-x="2304" +d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 +t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 +t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 +h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 +t9.5 -70.5z" /> + <glyph glyph-name="uniF2A0" unicode="" horiz-adv-x="1408" +d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 +q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 +l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 +t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 +q-18 -19 -45 -19z" /> + <glyph glyph-name="uniF2A1" unicode="" horiz-adv-x="2176" +d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 +q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 +q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 +t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 +t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 +t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 +t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" /> + <glyph glyph-name="uniF2A2" unicode="" horiz-adv-x="1792" +d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z +M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 +t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 +t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 +q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" /> + <glyph glyph-name="uniF2A3" unicode="" horiz-adv-x="2304" +d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 +q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 +q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 +q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 +q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 +q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" /> + <glyph glyph-name="uniF2A4" unicode="" horiz-adv-x="1792" +d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 +t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 +t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 +l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" /> + <glyph glyph-name="uniF2A5" unicode="" +d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 +q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 +q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 +t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="uniF2A6" unicode="" horiz-adv-x="1535" +d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 +l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 +q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 +q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" /> + <glyph glyph-name="uniF2A7" unicode="" horiz-adv-x="1664" +d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 +t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 +l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148 +q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26 +l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" /> + <glyph glyph-name="uniF2A8" unicode="" horiz-adv-x="1792" +d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 +q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 +q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 +q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" /> + <glyph glyph-name="uniF2A9" unicode="" horiz-adv-x="1280" +d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 +q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z +M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" /> + <glyph glyph-name="uniF2AA" unicode="" +d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z +M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 +q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 +t84.5 -203.5z" /> + <glyph glyph-name="uniF2AB" unicode="" +d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 +q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 +t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 +t103 -385.5z" /> + <glyph glyph-name="uniF2AC" unicode="" horiz-adv-x="1664" +d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 +q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 +t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" /> + <glyph glyph-name="uniF2AD" unicode="" +d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 +q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 +t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 +q119 0 203.5 -84.5t84.5 -203.5z" /> + <glyph glyph-name="uniF2AE" unicode="" horiz-adv-x="2304" +d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 +q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158 +q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" /> + <glyph glyph-name="uniF2B0" unicode="" +d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 +q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108 +l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z +M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" /> + <glyph glyph-name="uniF2B1" unicode="" horiz-adv-x="1664" +d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 +t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" /> + <glyph glyph-name="uniF2B2" unicode="" horiz-adv-x="1792" +d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 +t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114 +q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50 +q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5 +t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46 +q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5 +q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177 +t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" /> + <glyph glyph-name="uniF2B3" unicode="" +d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 +h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> + <glyph glyph-name="uniF2B4" unicode="" +d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 +q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" /> + <glyph glyph-name="uniF2B5" unicode="" horiz-adv-x="2304" +d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66 +l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180 +q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z +M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421 +q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" /> + <glyph glyph-name="uniF2B6" unicode="" horiz-adv-x="1792" +d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107 +t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39 +q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" /> + <glyph glyph-name="uniF2B7" unicode="" horiz-adv-x="1792" +d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5 +l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5 +h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94 +q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" /> + <glyph glyph-name="uniF2B8" unicode="" +d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465 +l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161 +q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74 +q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" /> + <glyph glyph-name="uniF2B9" unicode="" horiz-adv-x="1664" +d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576 +q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216 +q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" /> + <glyph glyph-name="uniF2BA" unicode="" horiz-adv-x="1664" +d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5 +t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96 +q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216 +q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" /> + <glyph glyph-name="uniF2BB" unicode="" horiz-adv-x="2048" +d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z +M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568 +q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9 +h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2BC" unicode="" horiz-adv-x="2048" +d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925 +q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568 +q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5 +t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113 +t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2BD" unicode="" horiz-adv-x="1792" +d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5 +t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2BE" unicode="" horiz-adv-x="1792" +d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61 +t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" /> + <glyph glyph-name="uniF2C0" unicode="" +d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5 +t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145 +q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" /> + <glyph glyph-name="uniF2C1" unicode="" horiz-adv-x="1280" +d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5 +t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352 +q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2C2" unicode="" horiz-adv-x="2048" +d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56 +t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23 +v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728 +q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2C3" unicode="" horiz-adv-x="2048" +d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z +M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64 +q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47 +h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2C4" unicode="" horiz-adv-x="1792" +d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117 +q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5 +t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" /> + <glyph glyph-name="uniF2C5" unicode="" horiz-adv-x="2304" +d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21 +t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46 +t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54 +t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29 +q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5 +t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314 +q2 -42 2 -64z" /> + <glyph glyph-name="uniF2C6" unicode="" horiz-adv-x="1792" +d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 +t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2C7" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2C8" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2C9" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2CA" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5 +t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192 +v128h192z" /> + <glyph glyph-name="uniF2CB" unicode="" horiz-adv-x="1024" +d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z +M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" /> + <glyph glyph-name="uniF2CC" unicode="" horiz-adv-x="1920" +d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41 +t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19 +t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768 +q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19 +t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384 +q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" /> + <glyph glyph-name="uniF2CD" unicode="" horiz-adv-x="1792" +d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9 +t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9 +t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42 +q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9 +t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23 +t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" /> + <glyph glyph-name="uniF2CE" unicode="" +d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5 +t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70 +q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20 +q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5 +t72.5 -263.5z" /> + <glyph glyph-name="uniF2D0" unicode="" horiz-adv-x="1792" +d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D1" unicode="" horiz-adv-x="1792" +d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D2" unicode="" horiz-adv-x="2048" +d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47 +t47 -113z" /> + <glyph glyph-name="uniF2D3" unicode="" horiz-adv-x="1792" +d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10 +l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D4" unicode="" horiz-adv-x="1792" +d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 +l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D5" unicode="" horiz-adv-x="1792" +d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2D6" unicode="" horiz-adv-x="1794" +d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12 +t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5 +t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5 +q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5 +q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34 +q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5 +t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2D7" unicode="" +d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89 +q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5 +t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" /> + <glyph glyph-name="uniF2D8" unicode="" +d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7 +t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5 +h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113 +v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" /> + <glyph glyph-name="uniF2D9" unicode="" horiz-adv-x="2176" +d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584 +q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5 +q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15 +q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82 +q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104 +t302 11t306.5 -97q220 -115 333 -336t87 -474z" /> + <glyph glyph-name="uniF2DA" unicode="" horiz-adv-x="1792" +d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178 +q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199 +t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297 +t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208 +t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" /> + <glyph glyph-name="uniF2DB" unicode="" +d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16 +q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28 +t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32 +q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16 +h48q16 0 16 -16z" /> + <glyph glyph-name="uniF2DC" unicode="" horiz-adv-x="1664" +d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45 +t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33 +q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313 +l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106 +q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" /> + <glyph glyph-name="uniF2DD" unicode="" horiz-adv-x="1792" +d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321 +q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" /> + <glyph glyph-name="uniF2DE" unicode="" horiz-adv-x="1792" +d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62 +t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71 +t286 -191t191 -286t71 -348z" /> + <glyph glyph-name="uniF2E0" unicode="" horiz-adv-x="1920" +d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3 +t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53 +q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5 +q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5 +t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5 +q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z +M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21 +q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16 +q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" /> + <glyph glyph-name="uniF2E1" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E2" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E3" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E4" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E5" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E6" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E7" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="_698" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2E9" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EA" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EB" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EC" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2ED" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="uniF2EE" unicode="" horiz-adv-x="1792" + /> + <glyph glyph-name="lessequal" unicode="" horiz-adv-x="1792" + /> + </font> +</defs></svg> diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.ttf b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..35acda2fa1196aad98c2adf4378a7611dd713aa3 Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.ttf differ diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.woff b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..400014a4b06eee3d0c0d54402a47ab2601b2862b Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.woff differ diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.woff2 b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4d13fc60404b91e398a37200c4a77b645cfd9586 Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/fontawesome-webfont.woff2 differ diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/index.php b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/index.php new file mode 100644 index 0000000000000000000000000000000000000000..a99ea83b68d5e3249c7ef33505976f7beb972072 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/fonts/index.php @@ -0,0 +1 @@ +<?php // Silence is golden ?> \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/index.php b/wp-content/plugins/wordpress-popular-posts/admin/css/index.php new file mode 100644 index 0000000000000000000000000000000000000000..a99ea83b68d5e3249c7ef33505976f7beb972072 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/index.php @@ -0,0 +1 @@ +<?php // Silence is golden ?> \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/vendor/font-awesome.min.css b/wp-content/plugins/wordpress-popular-posts/admin/css/vendor/font-awesome.min.css new file mode 100644 index 0000000000000000000000000000000000000000..5578ea5d6f1c9b24843d461dab816a721e327ed9 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/vendor/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/wp-content/plugins/wordpress-popular-posts/admin/css/vendor/index.php b/wp-content/plugins/wordpress-popular-posts/admin/css/vendor/index.php new file mode 100644 index 0000000000000000000000000000000000000000..a99ea83b68d5e3249c7ef33505976f7beb972072 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/css/vendor/index.php @@ -0,0 +1 @@ +<?php // Silence is golden ?> \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/index.php b/wp-content/plugins/wordpress-popular-posts/admin/index.php new file mode 100644 index 0000000000000000000000000000000000000000..e71af0ef21ae90eb61db4b117bfd97b00e65113b --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/index.php @@ -0,0 +1 @@ +<?php // Silence is golden \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/js/admin.js b/wp-content/plugins/wordpress-popular-posts/admin/js/admin.js new file mode 100644 index 0000000000000000000000000000000000000000..b08cb5968a3929f6efd9a3bc3de7cf4485c5fa53 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/js/admin.js @@ -0,0 +1,386 @@ +(function ($) { + "use strict"; + $(function () { + + // Stats config + $("#wpp-stats-config-btn, #wpp_stats_options .button-secondary").on("click", function(e){ + e.preventDefault(); + + // Hide custom range modal box + if ( $("#wpp-stats-range").is(":visible") ) { + $("#wpp-stats-range").hide(); + } + + if ( $("#wpp-stats-config").is(":visible") ) { + $("#wpp-stats-config").hide(); + } + else{ + $("#wpp-stats-config").show(); + } + + }); + + // Stats range + $("#wpp-stats-range form").on('submit', function(e){ + e.preventDefault(); + + if ( $("#wpp-stats-range").is(":visible") ) { + $("#wpp-stats-range").hide(); + } + + get_chart_data( $("#wpp-time-ranges li a[data-range='custom']") ); + + $(".wpp-lightbox-tabs li:eq(0) a").trigger("click"); + + }); + + $("#wpp-stats-range form .button-secondary").on('click', function(e){ + e.preventDefault(); + + if ( $("#wpp-stats-range").is(":visible") ) { + $("#wpp-stats-range").hide(); + } + + $("#stats_range_date").val(''); + + $(".wpp-lightbox-tabs li:eq(0) a").trigger("click"); + + }); + + function get_chart_data( me ) { + + var args = { + action: 'wpp_update_chart', + nonce: wpp_admin_params.nonce, + range: me.data("range"), + time_quantity: $("#stats_range_time_quantity").val(), + time_unit: $("#stats_range_time_unit").val() + }; + + if ( '' != $("#stats_range_date").val() ){ + args.dates = $("#stats_range_date").val(); + } + + $.get( + ajaxurl, + args, + function( response ){ + + if ( 'ok' == response.status ) { + + me.parent().addClass("current").siblings().removeClass("current"); + + var labels = [], + dataset_views = [], + dataset_comments = []; + + for ( var date in response.data.dates ) { + + labels.push( response.data.dates[date].nicename ); + + if ( !$.isEmptyObject( response.data.dates[date] ) ) { + + if ( 'undefined' != typeof response.data.dates[date].views ) { + dataset_views.push( response.data.dates[date].views ); + } + else { + dataset_views.push( 0 ); + } + + if ( 'undefined' != typeof response.data.dates[date].comments ) { + dataset_comments.push( response.data.dates[date].comments ); + } + else { + dataset_comments.push( 0 ); + } + + } + else { + dataset_views.push( 0 ); + dataset_comments.push( 0 ); + } + + } + + // Update titles + $("#wpp-chart-wrapper h4").html( response.data.totals.label_summary ); + $("#wpp-chart-wrapper h5").html( response.data.totals.label_date_range ); + + // Update chart + WPPChart.populate({ + labels: labels, + datasets: [ + { + label: 'Comments', + data: dataset_comments, + }, + { + label: 'Views', + data: dataset_views, + }, + ] + }); + + $("#wpp-listing .wpp-tabbed-nav li:eq(0) a").trigger("click"); + + // Update lists + args = { + action: 'wpp_get_most_viewed', + nonce: wpp_admin_params.nonce + }; + + if ( '' != $("#stats_range_date").val() ){ + args.dates = $("#stats_range_date").val(); + } + + $.get( + ajaxurl, + args, + function( response ){ + $("#wpp-listing .wpp-tab-content:eq(0)").html(response); + } + ); + + args = { + action: 'wpp_get_most_commented', + nonce: wpp_admin_params.nonce + }; + + if ( '' != $("#stats_range_date").val() ){ + args.dates = $("#stats_range_date").val(); + } + + $.get( + ajaxurl, + args, + function( response ){ + $("#wpp-listing .wpp-tab-content:eq(1)").html(response); + } + ); + + // Unset date range + $("#stats_range_date").val(''); + + } + + } + ); + + } + + $("#wpp-time-ranges li a").on("click", function(e){ + e.preventDefault(); + + var me = $(this); + + // Update chart + if ( WPPChart.canRender() ) { + + if ( 'custom' != me.data("range") ) { + get_chart_data( me ); + } + else { + // Hide Config modal box + if ( $("#wpp-stats-config").is(":visible") ) { + $("#wpp-stats-config").hide(); + } + + if ( !$("#wpp-stats-range").is(":visible") ) { + $("#wpp-stats-range").show(); + } + } + + } + + }); + + $(".wpp-lightbox-tabs li a").on("click", function(e){ + e.preventDefault(); + + var me = $(this); + + me.parent().addClass("active").siblings().removeClass("active"); + + me.closest(".wpp-lightbox").find(".wpp-lightbox-tab-content").removeClass("wpp-lightbox-tab-content-active").filter(function( index ) { + return me.parent().index() == index; + }).addClass("wpp-lightbox-tab-content-active"); + + }); + + // Datepicker + $.datepicker._defaults.onAfterUpdate = null; + var datepicker__updateDatepicker = $.datepicker._updateDatepicker; + + $.datepicker._updateDatepicker = function( instance ){ + + datepicker__updateDatepicker.call( this, instance ); + + var onAfterUpdate = this._get( instance, 'onAfterUpdate' ); + + if ( onAfterUpdate ) { + onAfterUpdate.apply( ( instance.input ? instance.input[0] : null ), [( instance.input ? instance.input.val() : '' ), instance] ); + } + }; + + var curr = -1, + prev = -1; + + var dp_field = $("#stats_range_date"); + + var wpp_datepicker = dp_field.datepicker({ + maxDate: 0, + dateFormat: 'yy-mm-dd', + showButtonPanel: true, + beforeShowDay: function(date){ + return [true, ( (date.getTime() >= Math.min(prev, curr) && date.getTime() <= Math.max(prev, curr) ) ? 'date-range-selected' : '' )] + }, + onSelect: function(dateText, instance){ + + var d1, d2; + + prev = curr; + + curr = ( new Date(instance.selectedYear, instance.selectedMonth, instance.selectedDay) ).getTime(); + + if ( + -1 == prev + || prev == curr + ) { + prev = curr; + dp_field.val( dateText ); + } + else { + + d1 = $.datepicker.formatDate('yy-mm-dd', new Date( Math.min(prev, curr) ), {}); + d2 = $.datepicker.formatDate('yy-mm-dd', new Date( Math.max(prev, curr) ), {}); + + dp_field.val( d1 + ' ~ ' + d2 ); + + } + + $(this).data('datepicker').inline = true; + + }, + onClose: function(){ + $(this).data('datepicker').inline = false; + }, + onAfterUpdate: function( instance ){ + + var calendar = $(this); + + if ( + prev > -1 + && curr > -1 + ){ + + $('<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">OK</button>').appendTo( $(".ui-datepicker-buttonpane") ).on('click', function(){ + dp_field.datepicker('hide'); + }); + + } + } + }); + + // STATISTICS TABS + $("#wpp-listing .wpp-tabbed-nav li a").on("click", function(e){ + e.preventDefault(); + + var me = $(this), + target = me.parent().index(); + + me.parent().addClass("active").siblings().removeClass("active"); + + me.closest("#wpp-listing").children(".wpp-tab-content:eq(" + target + ")").addClass("wpp-tab-content-active").siblings().removeClass("wpp-tab-content-active"); + + }); + + // TOOLS + // thumb source selection + $("#thumb_source").change(function() { + if ($(this).val() == "custom_field") { + $("#lbl_field, #thumb_field, #row_custom_field, #row_custom_field_resize").show(); + } else { + $("#lbl_field, #thumb_field, #row_custom_field, #row_custom_field_resize").hide(); + } + }); + // file upload + $('#upload_thumb_button').click(function(e) { + tb_show('Upload a thumbnail', 'media-upload.php?referer=wpp_admin&type=image&TB_iframe=true&post_id=0', false); + e.preventDefault(); + }); + window.send_to_editor = function(html) { + var regex = /<img[^>]+src="(https?:\/\/[^">]+)"/g; + var result = regex.exec(html); + + if ( null != result ) { + $('#upload_thumb_src').val(result[1]); + + var img = new Image(); + img.onload = function() { + $("#thumb-review").html( this ).parent().fadeIn(); + } + img.src = result[1]; + } + + tb_remove(); + }; + // log limit + $("#log_limit").change(function(){ + var me = $(this); + + if (me.val() == 1) { + me.parent().children("label, .description").show(); + me.parent().children("br").hide(); + } else { + me.parent().children("label, .description").hide(); + me.parent().children("br").show(); + } + }); + // cache interval + $("#cache").change(function() { + if ($(this).val() == 1) { + $("#cache_refresh_interval").show(); + } else { + $("#cache_refresh_interval, #cache_too_long").hide(); + } + }); + // interval + $("#cache_interval_time").change(function() { + var value = parseInt( $("#cache_interval_value").val() ); + var time = $(this).val(); + + if ( time == "hour" && value > 72 ) { + $("#cache_too_long").show(); + } else if ( time == "day" && value > 3 ) { + $("#cache_too_long").show(); + } else if ( time == "week" && value > 1 ) { + $("#cache_too_long").show(); + } else if ( time == "month" && value >= 1 ) { + $("#cache_too_long").show(); + } else if ( time == "year" && value >= 1 ) { + $("#cache_too_long").show(); + } else { + $("#cache_too_long").hide(); + } + }); + + $("#cache_interval_value").change(function() { + var value = parseInt( $(this).val() ); + var time = $("#cache_interval_time").val(); + + if ( time == "hour" && value > 72 ) { + $("#cache_too_long").show(); + } else if ( time == "day" && value > 3 ) { + $("#cache_too_long").show(); + } else if ( time == "week" && value > 1 ) { + $("#cache_too_long").show(); + } else if ( time == "month" && value >= 1 ) { + $("#cache_too_long").show(); + } else if ( time == "year" && value >= 1 ) { + $("#cache_too_long").show(); + } else { + $("#cache_too_long").hide(); + } + }); + }); +}(jQuery)); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/js/chart.js b/wp-content/plugins/wordpress-popular-posts/admin/js/chart.js new file mode 100644 index 0000000000000000000000000000000000000000..72e505fef46d9e3821c3cc9fa20324a34c781d40 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/js/chart.js @@ -0,0 +1,201 @@ +var WPPChart = (function() { + + "use strict"; + + /* + * Private functions and variables + */ + + var defaults = { + type: 'line', + data: { + labels: [], + datasets: [ + { + label: "", + fill: true, + lineTension: 0.2, + borderWidth: 3, + backgroundColor: "rgba(221, 66, 66, 0.8)", + borderColor: "#881111", + borderCapStyle: 'butt', + borderDash: [], + borderDashOffset: 0.0, + borderJoinStyle: 'miter', + pointBorderColor: "#881111", + pointBackgroundColor: "#fff", + pointBorderWidth: 2, + pointHoverRadius: 4, + pointHoverBackgroundColor: "#881111", + pointHoverBorderColor: "#881111", + pointHoverBorderWidth: 3, + pointRadius: 3, + pointHitRadius: 10, + data: [], + }, + { + label: "", + fill: true, + lineTension: 0.2, + borderWidth: 3, + backgroundColor: "rgba(136, 17, 17, 0.3)", + borderColor: "#a80000", + borderCapStyle: 'butt', + borderDash: [], + borderDashOffset: 0.0, + borderJoinStyle: 'miter', + pointBorderColor: "#a80000", + pointBackgroundColor: "#fff", + pointBorderWidth: 2, + pointHoverRadius: 4, + pointHoverBackgroundColor: "#a80000", + pointHoverBorderColor: "#a80000", + pointHoverBorderWidth: 3, + pointRadius: 3, + pointHitRadius: 10, + data: [], + } + ] + }, + options: { + legend: { + display: true, + labels: { + fontColor: '#23282d', + fontFamily: '-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif', + fontSize: 12 + } + }, + responsive: true, + maintainAspectRatio: false, + layout: { + padding: { + top: 2, + right: 5, + bottom: 0, + left: 5 + } + }, + scales: { + xAxes: [{ + display: true, + gridLines: { + display: false, + }, + ticks: { + fontSize: 10, + fontColor: '#23282d', + autoSkip: false, + maxRotation: 90, + minRotation: 90 + } + }], + yAxes: [{ + display: false + }] + } + } + }, + chart = null, + canRender = !!window.CanvasRenderingContext2D, + element = null, + cvs = null; + + var canRender = function(){ + return canRender; + }; + + // Source: http://stackoverflow.com/a/5624139 + var HexToRGB = function( hex ){ + + var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + + hex = hex.replace(shorthandRegex, function( m, r, g, b ) { + return r + r + g + g + b + b; + }); + + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + + return result ? { + r: parseInt( result[1], 16 ), + g: parseInt( result[2], 16 ), + b: parseInt( result[3], 16 ) + } : null; + }; + + /* + * Public functions + */ + + var init = function( container, options ){ + + if ( !canRender() ) { + throw new Error('Your browser is too old, WPPChart cannot create its data chart.'); + } + + if ( 'undefined' == typeof container ) { + throw new Error('Please tell WPPChart where to inject the chart.'); + } + + element = document.getElementById( container ); + + if ( !element ) { + throw new Error('WPPChart cannot find ' + container); + } + + if ( 'undefined' == typeof Chart ) { + throw new Error('ChartJS library not found'); + } + + cvs = document.createElement('canvas'); + element.appendChild( cvs ); + + }; + + var populate = function( data ){ + + if ( chart ) { + chart.destroy(); + } + + var config = defaults; + + config.data.labels = data.labels; + config.data.datasets[0].label = data.datasets[0].label; + config.data.datasets[0].data = data.datasets[0].data; + config.data.datasets[1].label = data.datasets[1].label; + config.data.datasets[1].data = data.datasets[1].data; + + if ( 'undefined' != typeof wpp_chart_comments_color && wpp_chart_comments_color ) { + var rgb_comments = HexToRGB(wpp_chart_comments_color); + config.data.datasets[1].backgroundColor = "rgba( " + rgb_comments.r + ", " + rgb_comments.g + ", " + rgb_comments.b + ", 0.9 )"; + config.data.datasets[1].borderColor = wpp_chart_comments_color; + config.data.datasets[1].pointBorderColor = wpp_chart_comments_color; + config.data.datasets[1].pointHoverBackgroundColor = wpp_chart_comments_color; + config.data.datasets[1].pointHoverBorderColor = wpp_chart_comments_color; + } + + if ( 'undefined' != typeof wpp_chart_views_color && wpp_chart_views_color ) { + var rgb_views = HexToRGB(wpp_chart_views_color); + config.data.datasets[0].backgroundColor = "rgba( " + rgb_views.r + ", " + rgb_views.g + ", " + rgb_views.b + ", 0.7 )"; + config.data.datasets[0].borderColor = wpp_chart_views_color; + config.data.datasets[0].pointBorderColor = wpp_chart_views_color; + config.data.datasets[0].pointHoverBackgroundColor = wpp_chart_views_color; + config.data.datasets[0].pointHoverBorderColor = wpp_chart_views_color; + } + + chart = new Chart( cvs, config ); + + }; + + /* + * Provide access to public methods + */ + + return { + init : init, + populate : populate, + canRender : canRender + }; + +})(); diff --git a/wp-content/plugins/wordpress-popular-posts/admin/js/vendor/Chart.min.js b/wp-content/plugins/wordpress-popular-posts/admin/js/vendor/Chart.min.js new file mode 100644 index 0000000000000000000000000000000000000000..af7f81001ac0a37f9a4446f0fa59a91120ac3738 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/js/vendor/Chart.min.js @@ -0,0 +1,14 @@ +/*! + * Chart.js + * http://chartjs.org/ + * Version: 2.5.0 + * + * Copyright 2017 Nick Downie + * Released under the MIT license + * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md + */ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Chart=t()}}(function(){return function t(e,a,i){function n(r,s){if(!a[r]){if(!e[r]){var l="function"==typeof require&&require;if(!s&&l)return l(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=a[r]={exports:{}};e[r][0].call(d.exports,function(t){var a=e[r][1][t];return n(a?a:t)},d,d.exports,t,e,a,i)}return a[r].exports}for(var o="function"==typeof require&&require,r=0;r<i.length;r++)n(i[r]);return n}({1:[function(t,e,a){},{}],2:[function(t,e,a){function i(t){if(t){var e=/^#([a-fA-F0-9]{3})$/,a=/^#([a-fA-F0-9]{6})$/,i=/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,n=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/,o=/(\w+)/,r=[0,0,0],s=1,l=t.match(e);if(l){l=l[1];for(var u=0;u<r.length;u++)r[u]=parseInt(l[u]+l[u],16)}else if(l=t.match(a)){l=l[1];for(var u=0;u<r.length;u++)r[u]=parseInt(l.slice(2*u,2*u+2),16)}else if(l=t.match(i)){for(var u=0;u<r.length;u++)r[u]=parseInt(l[u+1]);s=parseFloat(l[4])}else if(l=t.match(n)){for(var u=0;u<r.length;u++)r[u]=Math.round(2.55*parseFloat(l[u+1]));s=parseFloat(l[4])}else if(l=t.match(o)){if("transparent"==l[1])return[0,0,0,0];if(r=y[l[1]],!r)return}for(var u=0;u<r.length;u++)r[u]=b(r[u],0,255);return s=s||0==s?b(s,0,1):1,r[3]=s,r}}function n(t){if(t){var e=/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/,a=t.match(e);if(a){var i=parseFloat(a[4]),n=b(parseInt(a[1]),0,360),o=b(parseFloat(a[2]),0,100),r=b(parseFloat(a[3]),0,100),s=b(isNaN(i)?1:i,0,1);return[n,o,r,s]}}}function o(t){if(t){var e=/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/,a=t.match(e);if(a){var i=parseFloat(a[4]),n=b(parseInt(a[1]),0,360),o=b(parseFloat(a[2]),0,100),r=b(parseFloat(a[3]),0,100),s=b(isNaN(i)?1:i,0,1);return[n,o,r,s]}}}function r(t){var e=i(t);return e&&e.slice(0,3)}function s(t){var e=n(t);return e&&e.slice(0,3)}function l(t){var e=i(t);return e?e[3]:(e=n(t))?e[3]:(e=o(t))?e[3]:void 0}function u(t){return"#"+x(t[0])+x(t[1])+x(t[2])}function d(t,e){return e<1||t[3]&&t[3]<1?c(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"}function c(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function h(t,e){if(e<1||t[3]&&t[3]<1)return f(t,e);var a=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return"rgb("+a+"%, "+i+"%, "+n+"%)"}function f(t,e){var a=Math.round(t[0]/255*100),i=Math.round(t[1]/255*100),n=Math.round(t[2]/255*100);return"rgba("+a+"%, "+i+"%, "+n+"%, "+(e||t[3]||1)+")"}function g(t,e){return e<1||t[3]&&t[3]<1?p(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"}function p(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function m(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"}function v(t){return k[t.slice(0,3)]}function b(t,e,a){return Math.min(Math.max(e,t),a)}function x(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var y=t(6);e.exports={getRgba:i,getHsla:n,getRgb:r,getHsl:s,getHwb:o,getAlpha:l,hexString:u,rgbString:d,rgbaString:c,percentString:h,percentaString:f,hslString:g,hslaString:p,hwbString:m,keyword:v};var k={};for(var S in y)k[y[S]]=S},{6:6}],3:[function(t,e,a){var i=t(5),n=t(2),o=function(t){if(t instanceof o)return t;if(!(this instanceof o))return new o(t);this.values={rgb:[0,0,0],hsl:[0,0,0],hsv:[0,0,0],hwb:[0,0,0],cmyk:[0,0,0,0],alpha:1};var e;if("string"==typeof t)if(e=n.getRgba(t))this.setValues("rgb",e);else if(e=n.getHsla(t))this.setValues("hsl",e);else{if(!(e=n.getHwb(t)))throw new Error('Unable to parse color from string "'+t+'"');this.setValues("hwb",e)}else if("object"==typeof t)if(e=t,void 0!==e.r||void 0!==e.red)this.setValues("rgb",e);else if(void 0!==e.l||void 0!==e.lightness)this.setValues("hsl",e);else if(void 0!==e.v||void 0!==e.value)this.setValues("hsv",e);else if(void 0!==e.w||void 0!==e.whiteness)this.setValues("hwb",e);else{if(void 0===e.c&&void 0===e.cyan)throw new Error("Unable to parse color from object "+JSON.stringify(t));this.setValues("cmyk",e)}};o.prototype={rgb:function(){return this.setSpace("rgb",arguments)},hsl:function(){return this.setSpace("hsl",arguments)},hsv:function(){return this.setSpace("hsv",arguments)},hwb:function(){return this.setSpace("hwb",arguments)},cmyk:function(){return this.setSpace("cmyk",arguments)},rgbArray:function(){return this.values.rgb},hslArray:function(){return this.values.hsl},hsvArray:function(){return this.values.hsv},hwbArray:function(){var t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t%=360,t=t<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return n.hexString(this.values.rgb)},rgbString:function(){return n.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return n.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return n.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return n.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return n.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return n.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return n.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],a=0;a<t.length;a++){var i=t[a]/255;e[a]=i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),a=t.luminosity();return e>a?(e+.05)/(a+.05):(a+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb,e=(299*t[0]+587*t[1]+114*t[2])/1e3;return e<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,a=(e[0]+t)%360;return e[0]=a<0?360+a:a,this.setValues("hsl",e),this},mix:function(t,e){var a=this,i=t,n=void 0===e?.5:e,o=2*n-1,r=a.alpha()-i.alpha(),s=((o*r===-1?o:(o+r)/(1+o*r))+1)/2,l=1-s;return this.rgb(s*a.red()+l*i.red(),s*a.green()+l*i.green(),s*a.blue()+l*i.blue()).alpha(a.alpha()*n+i.alpha()*(1-n))},toJSON:function(){return this.rgb()},clone:function(){var t,e,a=new o,i=this.values,n=a.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],e={}.toString.call(t),"[object Array]"===e?n[r]=t.slice(0):"[object Number]"===e?n[r]=t:console.error("unexpected color value:",t));return a}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,a={},i=0;i<t.length;i++)a[t.charAt(i)]=e[t][i];return 1!==e.alpha&&(a.a=e.alpha),a},o.prototype.setValues=function(t,e){var a,n=this.values,o=this.spaces,r=this.maxes,s=1;if("alpha"===t)s=e;else if(e.length)n[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(a=0;a<t.length;a++)n[t][a]=e[t.charAt(a)];s=e.a}else if(void 0!==e[o[t][0]]){var l=o[t];for(a=0;a<t.length;a++)n[t][a]=e[l[a]];s=e.alpha}if(n.alpha=Math.max(0,Math.min(1,void 0===s?n.alpha:s)),"alpha"===t)return!1;var u;for(a=0;a<t.length;a++)u=Math.max(0,Math.min(r[t][a],n[t][a])),n[t][a]=Math.round(u);for(var d in o)d!==t&&(n[d]=i[t][d](n[t]));return!0},o.prototype.setSpace=function(t,e){var a=e[0];return void 0===a?this.getValues(t):("number"==typeof a&&(a=Array.prototype.slice.call(e)),this.setValues(t,a),this)},o.prototype.setChannel=function(t,e,a){var i=this.values[t];return void 0===a?i[e]:a===i[e]?this:(i[e]=a,this.setValues(t,i),this)},"undefined"!=typeof window&&(window.Color=o),e.exports=o},{2:2,5:5}],4:[function(t,e,a){function i(t){var e,a,i,n=t[0]/255,o=t[1]/255,r=t[2]/255,s=Math.min(n,o,r),l=Math.max(n,o,r),u=l-s;return l==s?e=0:n==l?e=(o-r)/u:o==l?e=2+(r-n)/u:r==l&&(e=4+(n-o)/u),e=Math.min(60*e,360),e<0&&(e+=360),i=(s+l)/2,a=l==s?0:i<=.5?u/(l+s):u/(2-l-s),[e,100*a,100*i]}function n(t){var e,a,i,n=t[0],o=t[1],r=t[2],s=Math.min(n,o,r),l=Math.max(n,o,r),u=l-s;return a=0==l?0:u/l*1e3/10,l==s?e=0:n==l?e=(o-r)/u:o==l?e=2+(r-n)/u:r==l&&(e=4+(n-o)/u),e=Math.min(60*e,360),e<0&&(e+=360),i=l/255*1e3/10,[e,a,i]}function o(t){var e=t[0],a=t[1],n=t[2],o=i(t)[0],r=1/255*Math.min(e,Math.min(a,n)),n=1-1/255*Math.max(e,Math.max(a,n));return[o,100*r,100*n]}function s(t){var e,a,i,n,o=t[0]/255,r=t[1]/255,s=t[2]/255;return n=Math.min(1-o,1-r,1-s),e=(1-o-n)/(1-n)||0,a=(1-r-n)/(1-n)||0,i=(1-s-n)/(1-n)||0,[100*e,100*a,100*i,100*n]}function l(t){return Z[JSON.stringify(t)]}function u(t){var e=t[0]/255,a=t[1]/255,i=t[2]/255;e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92;var n=.4124*e+.3576*a+.1805*i,o=.2126*e+.7152*a+.0722*i,r=.0193*e+.1192*a+.9505*i;return[100*n,100*o,100*r]}function d(t){var e,a,i,n=u(t),o=n[0],r=n[1],s=n[2];return o/=95.047,r/=100,s/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,e=116*r-16,a=500*(o-r),i=200*(r-s),[e,a,i]}function c(t){return z(d(t))}function h(t){var e,a,i,n,o,r=t[0]/360,s=t[1]/100,l=t[2]/100;if(0==s)return o=255*l,[o,o,o];a=l<.5?l*(1+s):l+s-l*s,e=2*l-a,n=[0,0,0];for(var u=0;u<3;u++)i=r+1/3*-(u-1),i<0&&i++,i>1&&i--,o=6*i<1?e+6*(a-e)*i:2*i<1?a:3*i<2?e+(a-e)*(2/3-i)*6:e,n[u]=255*o;return n}function f(t){var e,a,i=t[0],n=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,n*=o<=1?o:2-o,a=(o+n)/2,e=2*n/(o+n),[i,100*e,100*a])}function p(t){return o(h(t))}function m(t){return s(h(t))}function v(t){return l(h(t))}function x(t){var e=t[0]/60,a=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-a),s=255*i*(1-a*o),l=255*i*(1-a*(1-o)),i=255*i;switch(n){case 0:return[i,l,r];case 1:return[s,i,r];case 2:return[r,i,l];case 3:return[r,s,i];case 4:return[l,r,i];case 5:return[i,r,s]}}function y(t){var e,a,i=t[0],n=t[1]/100,o=t[2]/100;return a=(2-n)*o,e=n*o,e/=a<=1?a:2-a,e=e||0,a/=2,[i,100*e,100*a]}function k(t){return o(x(t))}function S(t){return s(x(t))}function M(t){return l(x(t))}function w(t){var e,a,i,n,o=t[0]/360,s=t[1]/100,l=t[2]/100,u=s+l;switch(u>1&&(s/=u,l/=u),e=Math.floor(6*o),a=1-l,i=6*o-e,0!=(1&e)&&(i=1-i),n=s+i*(a-s),e){default:case 6:case 0:r=a,g=n,b=s;break;case 1:r=n,g=a,b=s;break;case 2:r=s,g=a,b=n;break;case 3:r=s,g=n,b=a;break;case 4:r=n,g=s,b=a;break;case 5:r=a,g=s,b=n}return[255*r,255*g,255*b]}function C(t){return i(w(t))}function I(t){return n(w(t))}function D(t){return s(w(t))}function A(t){return l(w(t))}function T(t){var e,a,i,n=t[0]/100,o=t[1]/100,r=t[2]/100,s=t[3]/100;return e=1-Math.min(1,n*(1-s)+s),a=1-Math.min(1,o*(1-s)+s),i=1-Math.min(1,r*(1-s)+s),[255*e,255*a,255*i]}function P(t){return i(T(t))}function _(t){return n(T(t))}function F(t){return o(T(t))}function V(t){return l(T(t))}function R(t){var e,a,i,n=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*n+o*-1.5372+r*-.4986,a=n*-.9689+1.8758*o+.0415*r,i=.0557*n+o*-.204+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),a=Math.min(Math.max(0,a),1),i=Math.min(Math.max(0,i),1),[255*e,255*a,255*i]}function O(t){var e,a,i,n=t[0],o=t[1],r=t[2];return n/=95.047,o/=100,r/=108.883,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,a=500*(n-o),i=200*(o-r),[e,a,i]}function L(t){return z(O(t))}function B(t){var e,a,i,n,o=t[0],r=t[1],s=t[2];return o<=8?(a=100*o/903.3,n=7.787*(a/100)+16/116):(a=100*Math.pow((o+16)/116,3),n=Math.pow(a/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+n-16/116)/7.787:95.047*Math.pow(r/500+n,3),i=i/108.883<=.008859?i=108.883*(n-s/200-16/116)/7.787:108.883*Math.pow(n-s/200,3),[e,a,i]}function z(t){var e,a,i,n=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),a=360*e/2/Math.PI,a<0&&(a+=360),i=Math.sqrt(o*o+r*r),[n,i,a]}function W(t){return R(B(t))}function N(t){var e,a,i,n=t[0],o=t[1],r=t[2];return i=r/360*2*Math.PI,e=o*Math.cos(i),a=o*Math.sin(i),[n,e,a]}function E(t){return B(N(t))}function H(t){return W(N(t))}function j(t){return G[t]}function U(t){return i(j(t))}function q(t){return n(j(t))}function Y(t){return o(j(t))}function X(t){return s(j(t))}function K(t){return d(j(t))}function J(t){return u(j(t))}e.exports={rgb2hsl:i,rgb2hsv:n,rgb2hwb:o,rgb2cmyk:s,rgb2keyword:l,rgb2xyz:u,rgb2lab:d,rgb2lch:c,hsl2rgb:h,hsl2hsv:f,hsl2hwb:p,hsl2cmyk:m,hsl2keyword:v,hsv2rgb:x,hsv2hsl:y,hsv2hwb:k,hsv2cmyk:S,hsv2keyword:M,hwb2rgb:w,hwb2hsl:C,hwb2hsv:I,hwb2cmyk:D,hwb2keyword:A,cmyk2rgb:T,cmyk2hsl:P,cmyk2hsv:_,cmyk2hwb:F,cmyk2keyword:V,keyword2rgb:j,keyword2hsl:U,keyword2hsv:q,keyword2hwb:Y,keyword2cmyk:X,keyword2lab:K,keyword2xyz:J,xyz2rgb:R,xyz2lab:O,xyz2lch:L,lab2xyz:B,lab2rgb:W,lab2lch:z,lch2lab:N,lch2xyz:E,lch2rgb:H};var G={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},Z={};for(var Q in G)Z[JSON.stringify(G[Q])]=Q},{}],5:[function(t,e,a){var i=t(4),n=function(){return new u};for(var o in i){n[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),s=r[1],l=r[2];n[s]=n[s]||{},n[s][l]=n[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var a=i[t](e);if("string"==typeof a||void 0===a)return a;for(var n=0;n<a.length;n++)a[n]=Math.round(a[n]);return a}}(o)}var u=function(){this.convs={}};u.prototype.routeSpace=function(t,e){var a=e[0];return void 0===a?this.getValues(t):("number"==typeof a&&(a=Array.prototype.slice.call(e)),this.setValues(t,a))},u.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},u.prototype.getValues=function(t){var e=this.convs[t];if(!e){var a=this.space,i=this.convs[a];e=n[a][t](i),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach(function(t){u.prototype[t]=function(e){return this.routeSpace(t,arguments)}}),e.exports=n},{4:4}],6:[function(t,e,a){e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],7:[function(t,e,a){var i=t(28)();t(26)(i),t(42)(i),t(22)(i),t(31)(i),t(25)(i),t(21)(i),t(23)(i),t(24)(i),t(29)(i),t(33)(i),t(34)(i),t(32)(i),t(35)(i),t(30)(i),t(27)(i),t(36)(i),t(37)(i),t(38)(i),t(39)(i),t(40)(i),t(45)(i),t(43)(i),t(44)(i),t(46)(i),t(47)(i),t(48)(i),t(15)(i),t(16)(i),t(17)(i),t(18)(i),t(19)(i),t(20)(i),t(8)(i),t(9)(i),t(10)(i),t(11)(i),t(12)(i),t(13)(i),t(14)(i),window.Chart=e.exports=i},{10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,42:42,43:43,44:44,45:45,46:46,47:47,48:48,8:8,9:9}],8:[function(t,e,a){"use strict";e.exports=function(t){t.Bar=function(e,a){return a.type="bar",new t(e,a)}}},{}],9:[function(t,e,a){"use strict";e.exports=function(t){t.Bubble=function(e,a){return a.type="bubble",new t(e,a)}}},{}],10:[function(t,e,a){"use strict";e.exports=function(t){t.Doughnut=function(e,a){return a.type="doughnut",new t(e,a)}}},{}],11:[function(t,e,a){"use strict";e.exports=function(t){t.Line=function(e,a){return a.type="line",new t(e,a)}}},{}],12:[function(t,e,a){"use strict";e.exports=function(t){t.PolarArea=function(e,a){return a.type="polarArea",new t(e,a)}}},{}],13:[function(t,e,a){"use strict";e.exports=function(t){t.Radar=function(e,a){return a.type="radar",new t(e,a)}}},{}],14:[function(t,e,a){"use strict";e.exports=function(t){var e={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-1"}],yAxes:[{type:"linear",position:"left",id:"y-axis-1"}]},tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}};t.defaults.scatter=e,t.controllers.scatter=t.controllers.line,t.Scatter=function(e,a){return a.type="scatter",new t(e,a)}}},{}],15:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bar={hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}},t.controllers.bar=t.DatasetController.extend({dataElementType:t.elements.Rectangle,initialize:function(e,a){t.DatasetController.prototype.initialize.call(this,e,a);var i=this,n=i.getMeta(),o=i.getDataset();n.stack=o.stack,n.bar=!0},getStackCount:function(){var t=this,a=t.getMeta(),i=t.getScaleForId(a.yAxisID),n=[];return e.each(t.chart.data.datasets,function(e,a){var o=t.chart.getDatasetMeta(a);o.bar&&t.chart.isDatasetVisible(a)&&(i.options.stacked===!1||i.options.stacked===!0&&n.indexOf(o.stack)===-1||void 0===i.options.stacked&&(void 0===o.stack||n.indexOf(o.stack)===-1))&&n.push(o.stack)},t),n.length},update:function(t){var a=this;e.each(a.getMeta().data,function(e,i){a.updateElement(e,i,t)},a)},updateElement:function(t,a,i){var n=this,o=n.getMeta(),r=n.getScaleForId(o.xAxisID),s=n.getScaleForId(o.yAxisID),l=s.getBasePixel(),u=n.chart.options.elements.rectangle,d=t.custom||{},c=n.getDataset();t._xScale=r,t._yScale=s,t._datasetIndex=n.index,t._index=a;var h=n.getRuler(a);t._model={x:n.calculateBarX(a,n.index,h),y:i?l:n.calculateBarY(a,n.index),label:n.chart.data.labels[a],datasetLabel:c.label,horizontal:!1,base:i?l:n.calculateBarBase(n.index,a),width:n.calculateBarWidth(h),backgroundColor:d.backgroundColor?d.backgroundColor:e.getValueAtIndexOrDefault(c.backgroundColor,a,u.backgroundColor),borderSkipped:d.borderSkipped?d.borderSkipped:u.borderSkipped,borderColor:d.borderColor?d.borderColor:e.getValueAtIndexOrDefault(c.borderColor,a,u.borderColor),borderWidth:d.borderWidth?d.borderWidth:e.getValueAtIndexOrDefault(c.borderWidth,a,u.borderWidth)},t.pivot()},calculateBarBase:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=n.getBaseValue(),r=o;if(n.options.stacked===!0||void 0===n.options.stacked&&void 0!==i.stack){for(var s=a.chart,l=s.data.datasets,u=Number(l[t].data[e]),d=0;d<t;d++){var c=l[d],h=s.getDatasetMeta(d);if(h.bar&&h.yAxisID===n.id&&s.isDatasetVisible(d)&&i.stack===h.stack){var f=Number(c.data[e]);o+=u<0?Math.min(f,r):Math.max(f,r)}}return n.getPixelForValue(o)}return n.getBasePixel()},getRuler:function(){var t=this,e=t.getMeta(),a=t.getScaleForId(e.xAxisID),i=t.getStackCount(),n=a.width/a.ticks.length,o=n*a.options.categoryPercentage,r=(n-n*a.options.categoryPercentage)/2,s=o/i,l=s*a.options.barPercentage,u=s-s*a.options.barPercentage;return{stackCount:i,tickWidth:n,categoryWidth:o,categorySpacing:r,fullBarWidth:s,barWidth:l,barSpacing:u}},calculateBarWidth:function(t){var e=this,a=e.getMeta(),i=e.getScaleForId(a.xAxisID);return i.options.barThickness?i.options.barThickness:t.barWidth},getStackIndex:function(t){var e,a,i=this,n=i.chart.getDatasetMeta(t),o=i.getScaleForId(n.yAxisID),r=[n.stack];for(a=0;a<t;++a)e=this.chart.getDatasetMeta(a),e.bar&&this.chart.isDatasetVisible(a)&&(o.options.stacked===!1||o.options.stacked===!0&&r.indexOf(e.stack)===-1||void 0===o.options.stacked&&(void 0===e.stack||r.indexOf(e.stack)===-1))&&r.push(e.stack);return r.length-1},calculateBarX:function(t,e,a){var i=this,n=i.getMeta(),o=i.getScaleForId(n.xAxisID),r=i.getStackIndex(e),s=o.getPixelForValue(null,t,e,i.chart.isCombo);return s-=i.chart.isCombo?a.tickWidth/2:0,s+a.barWidth/2+a.categorySpacing+a.barWidth*r+a.barSpacing/2+a.barSpacing*r},calculateBarY:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.yAxisID),o=Number(a.getDataset().data[t]);if(n.options.stacked||void 0===n.options.stacked&&void 0!==i.stack){for(var r=n.getBaseValue(),s=r,l=r,u=0;u<e;u++){var d=a.chart.data.datasets[u],c=a.chart.getDatasetMeta(u);if(c.bar&&c.yAxisID===n.id&&a.chart.isDatasetVisible(u)&&i.stack===c.stack){var h=Number(d.data[t]);h<0?l+=h||0:s+=h||0}}return o<0?n.getPixelForValue(l+o):n.getPixelForValue(s+o)}return n.getPixelForValue(o)},draw:function(e){var a,i,n=this,o=e||1,r=n.getMeta().data,s=n.getDataset();for(t.canvasHelpers.clipArea(n.chart.chart.ctx,n.chart.chartArea),a=0,i=r.length;a<i;++a){var l=s.data[a];null===l||void 0===l||isNaN(l)||r[a].transition(o).draw()}t.canvasHelpers.unclipArea(n.chart.chart.ctx)},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model;o.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:e.getValueAtIndexOrDefault(a.hoverBackgroundColor,i,e.getHoverColor(o.backgroundColor)),o.borderColor=n.hoverBorderColor?n.hoverBorderColor:e.getValueAtIndexOrDefault(a.hoverBorderColor,i,e.getHoverColor(o.borderColor)),o.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:e.getValueAtIndexOrDefault(a.hoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model,r=this.chart.options.elements.rectangle;o.backgroundColor=n.backgroundColor?n.backgroundColor:e.getValueAtIndexOrDefault(a.backgroundColor,i,r.backgroundColor),o.borderColor=n.borderColor?n.borderColor:e.getValueAtIndexOrDefault(a.borderColor,i,r.borderColor),o.borderWidth=n.borderWidth?n.borderWidth:e.getValueAtIndexOrDefault(a.borderWidth,i,r.borderWidth)}}),t.defaults.horizontalBar={hover:{mode:"label"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{position:"left",type:"category",categoryPercentage:.8,barPercentage:.9,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{callbacks:{title:function(t,e){var a="";return t.length>0&&(t[0].yLabel?a=t[0].yLabel:e.labels.length>0&&t[0].index<e.labels.length&&(a=e.labels[t[0].index])),a},label:function(t,e){var a=e.datasets[t.datasetIndex].label||"";return a+": "+t.xLabel}}}},t.controllers.horizontalBar=t.controllers.bar.extend({getStackCount:function(){var t=this,a=t.getMeta(),i=t.getScaleForId(a.xAxisID),n=[];return e.each(t.chart.data.datasets,function(e,a){var o=t.chart.getDatasetMeta(a);o.bar&&t.chart.isDatasetVisible(a)&&(i.options.stacked===!1||i.options.stacked===!0&&n.indexOf(o.stack)===-1||void 0===i.options.stacked&&(void 0===o.stack||n.indexOf(o.stack)===-1))&&n.push(o.stack)},t),n.length},updateElement:function(t,a,i){var n=this,o=n.getMeta(),r=n.getScaleForId(o.xAxisID),s=n.getScaleForId(o.yAxisID),l=r.getBasePixel(),u=t.custom||{},d=n.getDataset(),c=n.chart.options.elements.rectangle;t._xScale=r,t._yScale=s,t._datasetIndex=n.index,t._index=a;var h=n.getRuler(a);t._model={x:i?l:n.calculateBarX(a,n.index),y:n.calculateBarY(a,n.index,h),label:n.chart.data.labels[a],datasetLabel:d.label,horizontal:!0,base:i?l:n.calculateBarBase(n.index,a),height:n.calculateBarHeight(h),backgroundColor:u.backgroundColor?u.backgroundColor:e.getValueAtIndexOrDefault(d.backgroundColor,a,c.backgroundColor),borderSkipped:u.borderSkipped?u.borderSkipped:c.borderSkipped,borderColor:u.borderColor?u.borderColor:e.getValueAtIndexOrDefault(d.borderColor,a,c.borderColor), +borderWidth:u.borderWidth?u.borderWidth:e.getValueAtIndexOrDefault(d.borderWidth,a,c.borderWidth)},t.pivot()},calculateBarBase:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=n.getBaseValue(),r=o;if(n.options.stacked||void 0===n.options.stacked&&void 0!==i.stack){for(var s=a.chart,l=s.data.datasets,u=Number(l[t].data[e]),d=0;d<t;d++){var c=l[d],h=s.getDatasetMeta(d);if(h.bar&&h.xAxisID===n.id&&s.isDatasetVisible(d)&&i.stack===h.stack){var f=Number(c.data[e]);o+=u<0?Math.min(f,r):Math.max(f,r)}}return n.getPixelForValue(o)}return n.getBasePixel()},getRuler:function(){var t=this,e=t.getMeta(),a=t.getScaleForId(e.yAxisID),i=t.getStackCount(),n=a.height/a.ticks.length,o=n*a.options.categoryPercentage,r=(n-n*a.options.categoryPercentage)/2,s=o/i,l=s*a.options.barPercentage,u=s-s*a.options.barPercentage;return{stackCount:i,tickHeight:n,categoryHeight:o,categorySpacing:r,fullBarHeight:s,barHeight:l,barSpacing:u}},calculateBarHeight:function(t){var e=this,a=e.getMeta(),i=e.getScaleForId(a.yAxisID);return i.options.barThickness?i.options.barThickness:t.barHeight},getStackIndex:function(t){var e,a,i=this,n=i.chart.getDatasetMeta(t),o=i.getScaleForId(n.xAxisID),r=[n.stack];for(a=0;a<t;++a)e=this.chart.getDatasetMeta(a),e.bar&&this.chart.isDatasetVisible(a)&&(o.options.stacked===!1||o.options.stacked===!0&&r.indexOf(e.stack)===-1||void 0===o.options.stacked&&(void 0===e.stack||r.indexOf(e.stack)===-1))&&r.push(e.stack);return r.length-1},calculateBarX:function(t,e){var a=this,i=a.getMeta(),n=a.getScaleForId(i.xAxisID),o=Number(a.getDataset().data[t]);if(n.options.stacked||void 0===n.options.stacked&&void 0!==i.stack){for(var r=n.getBaseValue(),s=r,l=r,u=0;u<e;u++){var d=a.chart.data.datasets[u],c=a.chart.getDatasetMeta(u);if(c.bar&&c.xAxisID===n.id&&a.chart.isDatasetVisible(u)&&i.stack===c.stack){var h=Number(d.data[t]);h<0?l+=h||0:s+=h||0}}return o<0?n.getPixelForValue(l+o):n.getPixelForValue(s+o)}return n.getPixelForValue(o)},calculateBarY:function(t,e,a){var i=this,n=i.getMeta(),o=i.getScaleForId(n.yAxisID),r=i.getStackIndex(e),s=o.getPixelForValue(null,t,e,i.chart.isCombo);return s-=i.chart.isCombo?a.tickHeight/2:0,s+a.barHeight/2+a.categorySpacing+a.barHeight*r+a.barSpacing/2+a.barSpacing*r}})}},{}],16:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.bubble={hover:{mode:"single"},scales:{xAxes:[{type:"linear",position:"bottom",id:"x-axis-0"}],yAxes:[{type:"linear",position:"left",id:"y-axis-0"}]},tooltips:{callbacks:{title:function(){return""},label:function(t,e){var a=e.datasets[t.datasetIndex].label||"",i=e.datasets[t.datasetIndex].data[t.index];return a+": ("+t.xLabel+", "+t.yLabel+", "+i.r+")"}}}},t.controllers.bubble=t.DatasetController.extend({dataElementType:t.elements.Point,update:function(t){var a=this,i=a.getMeta(),n=i.data;e.each(n,function(e,i){a.updateElement(e,i,t)})},updateElement:function(a,i,n){var o=this,r=o.getMeta(),s=o.getScaleForId(r.xAxisID),l=o.getScaleForId(r.yAxisID),u=a.custom||{},d=o.getDataset(),c=d.data[i],h=o.chart.options.elements.point,f=o.index;e.extend(a,{_xScale:s,_yScale:l,_datasetIndex:f,_index:i,_model:{x:n?s.getPixelForDecimal(.5):s.getPixelForValue("object"==typeof c?c:NaN,i,f,o.chart.isCombo),y:n?l.getBasePixel():l.getPixelForValue(c,i,f),radius:n?0:u.radius?u.radius:o.getRadius(c),hitRadius:u.hitRadius?u.hitRadius:e.getValueAtIndexOrDefault(d.hitRadius,i,h.hitRadius)}}),t.DatasetController.prototype.removeHoverStyle.call(o,a,h);var g=a._model;g.skip=u.skip?u.skip:isNaN(g.x)||isNaN(g.y),a.pivot()},getRadius:function(t){return t.r||this.chart.options.elements.point.radius},setHoverStyle:function(a){var i=this;t.DatasetController.prototype.setHoverStyle.call(i,a);var n=i.chart.data.datasets[a._datasetIndex],o=a._index,r=a.custom||{},s=a._model;s.radius=r.hoverRadius?r.hoverRadius:e.getValueAtIndexOrDefault(n.hoverRadius,o,i.chart.options.elements.point.hoverRadius)+i.getRadius(n.data[o])},removeHoverStyle:function(e){var a=this;t.DatasetController.prototype.removeHoverStyle.call(a,e,a.chart.options.elements.point);var i=a.chart.data.datasets[e._datasetIndex].data[e._index],n=e.custom||{},o=e._model;o.radius=n.radius?n.radius:a.getRadius(i)}})}},{}],17:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults;a.doughnut={animation:{animateRotate:!0,animateScale:!1},aspectRatio:1,hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var a=t.data,i=a.datasets,n=a.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style="background-color:'+i[0].backgroundColor[o]+'"></span>'),n[o]&&e.push(n[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var a=t.data;return a.labels.length&&a.datasets.length?a.labels.map(function(i,n){var o=t.getDatasetMeta(0),r=a.datasets[0],s=o.data[n],l=s&&s.custom||{},u=e.getValueAtIndexOrDefault,d=t.options.elements.arc,c=l.backgroundColor?l.backgroundColor:u(r.backgroundColor,n,d.backgroundColor),h=l.borderColor?l.borderColor:u(r.borderColor,n,d.borderColor),f=l.borderWidth?l.borderWidth:u(r.borderWidth,n,d.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[n])||o.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var a,i,n,o=e.index,r=this.chart;for(a=0,i=(r.data.datasets||[]).length;a<i;++a)n=r.getDatasetMeta(a),n.data[o]&&(n.data[o].hidden=!n.data[o].hidden);r.update()}},cutoutPercentage:50,rotation:Math.PI*-.5,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,a){var i=a.labels[t.index],n=": "+a.datasets[t.datasetIndex].data[t.index];return e.isArray(i)?(i=i.slice(),i[0]+=n):i+=n,i}}}},a.pie=e.clone(a.doughnut),e.extend(a.pie,{cutoutPercentage:0}),t.controllers.doughnut=t.controllers.pie=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,getRingIndex:function(t){for(var e=0,a=0;a<t;++a)this.chart.isDatasetVisible(a)&&++e;return e},update:function(t){var a=this,i=a.chart,n=i.chartArea,o=i.options,r=o.elements.arc,s=n.right-n.left-r.borderWidth,l=n.bottom-n.top-r.borderWidth,u=Math.min(s,l),d={x:0,y:0},c=a.getMeta(),h=o.cutoutPercentage,f=o.circumference;if(f<2*Math.PI){var g=o.rotation%(2*Math.PI);g+=2*Math.PI*(g>=Math.PI?-1:g<-Math.PI?1:0);var p=g+f,m={x:Math.cos(g),y:Math.sin(g)},v={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&0<=p||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,S=h/100,M={x:y?-1:Math.min(m.x*(m.x<0?1:S),v.x*(v.x<0?1:S)),y:k?-1:Math.min(m.y*(m.y<0?1:S),v.y*(v.y<0?1:S))},w={x:b?1:Math.max(m.x*(m.x>0?1:S),v.x*(v.x>0?1:S)),y:x?1:Math.max(m.y*(m.y>0?1:S),v.y*(v.y>0?1:S))},C={width:.5*(w.x-M.x),height:.5*(w.y-M.y)};u=Math.min(s/C.width,l/C.height),d={x:(w.x+M.x)*-.5,y:(w.y+M.y)*-.5}}i.borderWidth=a.getMaxBorderWidth(c.data),i.outerRadius=Math.max((u-i.borderWidth)/2,0),i.innerRadius=Math.max(h?i.outerRadius/100*h:0,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),i.offsetX=d.x*i.outerRadius,i.offsetY=d.y*i.outerRadius,c.total=a.calculateTotal(),a.outerRadius=i.outerRadius-i.radiusLength*a.getRingIndex(a.index),a.innerRadius=Math.max(a.outerRadius-i.radiusLength,0),e.each(c.data,function(e,i){a.updateElement(e,i,t)})},updateElement:function(t,a,i){var n=this,o=n.chart,r=o.chartArea,s=o.options,l=s.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=s.rotation,h=s.rotation,f=n.getDataset(),g=i&&l.animateRotate?0:t.hidden?0:n.calculateCircumference(f.data[a])*(s.circumference/(2*Math.PI)),p=i&&l.animateScale?0:n.innerRadius,m=i&&l.animateScale?0:n.outerRadius,v=e.getValueAtIndexOrDefault;e.extend(t,{_datasetIndex:n.index,_index:a,_model:{x:u+o.offsetX,y:d+o.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:m,innerRadius:p,label:v(f.label,a,o.data.labels[a])}});var b=t._model;this.removeHoverStyle(t),i&&l.animateRotate||(0===a?b.startAngle=s.rotation:b.startAngle=n.getMeta().data[a-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,a=this.getDataset(),i=this.getMeta(),n=0;return e.each(i.data,function(e,i){t=a.data[i],isNaN(t)||e.hidden||(n+=Math.abs(t))}),n},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,a,i=0,n=this.index,o=t.length,r=0;r<o;r++)e=t[r]._model?t[r]._model.borderWidth:0,a=t[r]._chart?t[r]._chart.config.data.datasets[n].hoverBorderWidth:0,i=e>i?e:i,i=a>i?a:i;return i}})}},{}],18:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return a.getValueOrDefault(t.showLine,e.showLines)}var a=t.helpers;t.defaults.line={showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}},t.controllers.line=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,update:function(t){var i,n,o,r=this,s=r.getMeta(),l=s.dataset,u=s.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(s.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(o=l.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),l._scale=h,l._datasetIndex=r.index,l._children=u,l._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:o.tension?o.tension:a.getValueOrDefault(f.lineTension,c.tension),backgroundColor:o.backgroundColor?o.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:o.borderWidth?o.borderWidth:f.borderWidth||c.borderWidth,borderColor:o.borderColor?o.borderColor:f.borderColor||c.borderColor,borderCapStyle:o.borderCapStyle?o.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:o.borderDash?o.borderDash:f.borderDash||c.borderDash,borderDashOffset:o.borderDashOffset?o.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:o.borderJoinStyle?o.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:o.fill?o.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:o.steppedLine?o.steppedLine:a.getValueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:o.cubicInterpolationMode?o.cubicInterpolationMode:a.getValueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode),scaleTop:h.top,scaleBottom:h.bottom,scaleZero:h.getBasePixel()},l.pivot()),i=0,n=u.length;i<n;++i)r.updateElement(u[i],i,t);for(g&&0!==l._model.tension&&r.updateBezierControlPoints(),i=0,n=u.length;i<n;++i)u[i].pivot()},getPointBackgroundColor:function(t,e){var i=this.chart.options.elements.point.backgroundColor,n=this.getDataset(),o=t.custom||{};return o.backgroundColor?i=o.backgroundColor:n.pointBackgroundColor?i=a.getValueAtIndexOrDefault(n.pointBackgroundColor,e,i):n.backgroundColor&&(i=n.backgroundColor),i},getPointBorderColor:function(t,e){var i=this.chart.options.elements.point.borderColor,n=this.getDataset(),o=t.custom||{};return o.borderColor?i=o.borderColor:n.pointBorderColor?i=a.getValueAtIndexOrDefault(n.pointBorderColor,e,i):n.borderColor&&(i=n.borderColor),i},getPointBorderWidth:function(t,e){var i=this.chart.options.elements.point.borderWidth,n=this.getDataset(),o=t.custom||{};return isNaN(o.borderWidth)?isNaN(n.pointBorderWidth)?isNaN(n.borderWidth)||(i=n.borderWidth):i=a.getValueAtIndexOrDefault(n.pointBorderWidth,e,i):i=o.borderWidth,i},updateElement:function(t,e,i){var n,o,r=this,s=r.getMeta(),l=t.custom||{},u=r.getDataset(),d=r.index,c=u.data[e],h=r.getScaleForId(s.yAxisID),f=r.getScaleForId(s.xAxisID),g=r.chart.options.elements.point,p=r.chart.data.labels||[],m=1===p.length||1===u.data.length||r.chart.isCombo;void 0!==u.radius&&void 0===u.pointRadius&&(u.pointRadius=u.radius),void 0!==u.hitRadius&&void 0===u.pointHitRadius&&(u.pointHitRadius=u.hitRadius),n=f.getPixelForValue("object"==typeof c?c:NaN,e,d,m),o=i?h.getBasePixel():r.calculatePointY(c,e,d),t._xScale=f,t._yScale=h,t._datasetIndex=d,t._index=e,t._model={x:n,y:o,skip:l.skip||isNaN(n)||isNaN(o),radius:l.radius||a.getValueAtIndexOrDefault(u.pointRadius,e,g.radius),pointStyle:l.pointStyle||a.getValueAtIndexOrDefault(u.pointStyle,e,g.pointStyle),backgroundColor:r.getPointBackgroundColor(t,e),borderColor:r.getPointBorderColor(t,e),borderWidth:r.getPointBorderWidth(t,e),tension:s.dataset._model?s.dataset._model.tension:0,steppedLine:!!s.dataset._model&&s.dataset._model.steppedLine,hitRadius:l.hitRadius||a.getValueAtIndexOrDefault(u.pointHitRadius,e,g.hitRadius)}},calculatePointY:function(t,e,a){var i,n,o,r=this,s=r.chart,l=r.getMeta(),u=r.getScaleForId(l.yAxisID),d=0,c=0;if(u.options.stacked){for(i=0;i<a;i++)if(n=s.data.datasets[i],o=s.getDatasetMeta(i),"line"===o.type&&o.yAxisID===u.id&&s.isDatasetVisible(i)){var h=Number(u.getRightValue(n.data[e]));h<0?c+=h||0:d+=h||0}var f=Number(u.getRightValue(t));return f<0?u.getPixelForValue(c+f):u.getPixelForValue(d+f)}return u.getPixelForValue(t)},updateBezierControlPoints:function(){function t(t,e,a){return Math.max(Math.min(t,a),e)}var e,i,n,o,r,s=this,l=s.getMeta(),u=s.chart.chartArea,d=l.data||[];if(l.dataset._model.spanGaps&&(d=d.filter(function(t){return!t._model.skip})),"monotone"===l.dataset._model.cubicInterpolationMode)a.splineCurveMonotone(d);else for(e=0,i=d.length;e<i;++e)n=d[e],o=n._model,r=a.splineCurve(a.previousItem(d,e)._model,o,a.nextItem(d,e)._model,l.dataset._model.tension),o.controlPointPreviousX=r.previous.x,o.controlPointPreviousY=r.previous.y,o.controlPointNextX=r.next.x,o.controlPointNextY=r.next.y;if(s.chart.options.elements.line.capBezierPoints)for(e=0,i=d.length;e<i;++e)o=d[e]._model,o.controlPointPreviousX=t(o.controlPointPreviousX,u.left,u.right),o.controlPointPreviousY=t(o.controlPointPreviousY,u.top,u.bottom),o.controlPointNextX=t(o.controlPointNextX,u.left,u.right),o.controlPointNextY=t(o.controlPointNextY,u.top,u.bottom)},draw:function(a){var i,n,o=this,r=o.getMeta(),s=r.data||[],l=a||1;for(i=0,n=s.length;i<n;++i)s[i].transition(l);for(t.canvasHelpers.clipArea(o.chart.chart.ctx,o.chart.chartArea),e(o.getDataset(),o.chart.options)&&r.dataset.transition(l).draw(),t.canvasHelpers.unclipArea(o.chart.chart.ctx),i=0,n=s.length;i<n;++i)s[i].draw(o.chart.chartArea)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],i=t._index,n=t.custom||{},o=t._model;o.radius=n.hoverRadius||a.getValueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),o.backgroundColor=n.hoverBackgroundColor||a.getValueAtIndexOrDefault(e.pointHoverBackgroundColor,i,a.getHoverColor(o.backgroundColor)),o.borderColor=n.hoverBorderColor||a.getValueAtIndexOrDefault(e.pointHoverBorderColor,i,a.getHoverColor(o.borderColor)),o.borderWidth=n.hoverBorderWidth||a.getValueAtIndexOrDefault(e.pointHoverBorderWidth,i,o.borderWidth)},removeHoverStyle:function(t){var e=this,i=e.chart.data.datasets[t._datasetIndex],n=t._index,o=t.custom||{},r=t._model;void 0!==i.radius&&void 0===i.pointRadius&&(i.pointRadius=i.radius),r.radius=o.radius||a.getValueAtIndexOrDefault(i.pointRadius,n,e.chart.options.elements.point.radius),r.backgroundColor=e.getPointBackgroundColor(t,n),r.borderColor=e.getPointBorderColor(t,n),r.borderWidth=e.getPointBorderWidth(t,n)}})}},{}],19:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.polarArea={scale:{type:"radialLinear",lineArc:!0,ticks:{beginAtZero:!0}},animation:{animateRotate:!0,animateScale:!0},startAngle:-.5*Math.PI,aspectRatio:1,legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var a=t.data,i=a.datasets,n=a.labels;if(i.length)for(var o=0;o<i[0].data.length;++o)e.push('<li><span style="background-color:'+i[0].backgroundColor[o]+'"></span>'),n[o]&&e.push(n[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var a=t.data;return a.labels.length&&a.datasets.length?a.labels.map(function(i,n){var o=t.getDatasetMeta(0),r=a.datasets[0],s=o.data[n],l=s.custom||{},u=e.getValueAtIndexOrDefault,d=t.options.elements.arc,c=l.backgroundColor?l.backgroundColor:u(r.backgroundColor,n,d.backgroundColor),h=l.borderColor?l.borderColor:u(r.borderColor,n,d.borderColor),f=l.borderWidth?l.borderWidth:u(r.borderWidth,n,d.borderWidth);return{text:i,fillStyle:c,strokeStyle:h,lineWidth:f,hidden:isNaN(r.data[n])||o.data[n].hidden,index:n}}):[]}},onClick:function(t,e){var a,i,n,o=e.index,r=this.chart;for(a=0,i=(r.data.datasets||[]).length;a<i;++a)n=r.getDatasetMeta(a),n.data[o].hidden=!n.data[o].hidden;r.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}},t.controllers.polarArea=t.DatasetController.extend({dataElementType:t.elements.Arc,linkScales:e.noop,update:function(t){var a=this,i=a.chart,n=i.chartArea,o=a.getMeta(),r=i.options,s=r.elements.arc,l=Math.min(n.right-n.left,n.bottom-n.top);i.outerRadius=Math.max((l-s.borderWidth/2)/2,0),i.innerRadius=Math.max(r.cutoutPercentage?i.outerRadius/100*r.cutoutPercentage:1,0),i.radiusLength=(i.outerRadius-i.innerRadius)/i.getVisibleDatasetCount(),a.outerRadius=i.outerRadius-i.radiusLength*a.index,a.innerRadius=a.outerRadius-i.radiusLength,o.count=a.countVisibleElements(),e.each(o.data,function(e,i){a.updateElement(e,i,t)})},updateElement:function(t,a,i){for(var n=this,o=n.chart,r=n.getDataset(),s=o.options,l=s.animation,u=o.scale,d=e.getValueAtIndexOrDefault,c=o.data.labels,h=n.calculateCircumference(r.data[a]),f=u.xCenter,g=u.yCenter,p=0,m=n.getMeta(),v=0;v<a;++v)isNaN(r.data[v])||m.data[v].hidden||++p;var b=s.startAngle,x=t.hidden?0:u.getDistanceFromCenterForValue(r.data[a]),y=b+h*p,k=y+(t.hidden?0:h),S=l.animateScale?0:u.getDistanceFromCenterForValue(r.data[a]);e.extend(t,{_datasetIndex:n.index,_index:a,_scale:u,_model:{x:f,y:g,innerRadius:0,outerRadius:i?S:x,startAngle:i&&l.animateRotate?b:y,endAngle:i&&l.animateRotate?b:k,label:d(c,a,c[a])}}),n.removeHoverStyle(t),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},countVisibleElements:function(){var t=this.getDataset(),a=this.getMeta(),i=0;return e.each(a.data,function(e,a){isNaN(t.data[a])||e.hidden||i++}),i},calculateCircumference:function(t){var e=this.getMeta().count;return e>0&&!isNaN(t)?2*Math.PI/e:0}})}},{}],20:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.radar={aspectRatio:1,scale:{type:"radialLinear"},elements:{line:{tension:0}}},t.controllers.radar=t.DatasetController.extend({datasetElementType:t.elements.Line,dataElementType:t.elements.Point,linkScales:e.noop,update:function(t){var a=this,i=a.getMeta(),n=i.dataset,o=i.data,r=n.custom||{},s=a.getDataset(),l=a.chart.options.elements.line,u=a.chart.scale;void 0!==s.tension&&void 0===s.lineTension&&(s.lineTension=s.tension),e.extend(i.dataset,{_datasetIndex:a.index,_children:o,_loop:!0,_model:{tension:r.tension?r.tension:e.getValueOrDefault(s.lineTension,l.tension),backgroundColor:r.backgroundColor?r.backgroundColor:s.backgroundColor||l.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:s.borderWidth||l.borderWidth,borderColor:r.borderColor?r.borderColor:s.borderColor||l.borderColor,fill:r.fill?r.fill:void 0!==s.fill?s.fill:l.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:s.borderCapStyle||l.borderCapStyle,borderDash:r.borderDash?r.borderDash:s.borderDash||l.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:s.borderDashOffset||l.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:s.borderJoinStyle||l.borderJoinStyle,scaleTop:u.top,scaleBottom:u.bottom,scaleZero:u.getBasePosition()}}),i.dataset.pivot(),e.each(o,function(e,i){a.updateElement(e,i,t)},a),a.updateBezierControlPoints()},updateElement:function(t,a,i){var n=this,o=t.custom||{},r=n.getDataset(),s=n.chart.scale,l=n.chart.options.elements.point,u=s.getPointPositionForValue(a,r.data[a]);e.extend(t,{_datasetIndex:n.index,_index:a,_scale:s,_model:{x:i?s.xCenter:u.x,y:i?s.yCenter:u.y,tension:o.tension?o.tension:e.getValueOrDefault(r.lineTension,n.chart.options.elements.line.tension),radius:o.radius?o.radius:e.getValueAtIndexOrDefault(r.pointRadius,a,l.radius),backgroundColor:o.backgroundColor?o.backgroundColor:e.getValueAtIndexOrDefault(r.pointBackgroundColor,a,l.backgroundColor),borderColor:o.borderColor?o.borderColor:e.getValueAtIndexOrDefault(r.pointBorderColor,a,l.borderColor),borderWidth:o.borderWidth?o.borderWidth:e.getValueAtIndexOrDefault(r.pointBorderWidth,a,l.borderWidth),pointStyle:o.pointStyle?o.pointStyle:e.getValueAtIndexOrDefault(r.pointStyle,a,l.pointStyle),hitRadius:o.hitRadius?o.hitRadius:e.getValueAtIndexOrDefault(r.hitRadius,a,l.hitRadius)}}),t._model.skip=o.skip?o.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,a=this.getMeta();e.each(a.data,function(i,n){var o=i._model,r=e.splineCurve(e.previousItem(a.data,n,!0)._model,o,e.nextItem(a.data,n,!0)._model,o.tension);o.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),o.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),o.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),o.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),i.pivot()})},draw:function(t){var a=this.getMeta(),i=t||1;e.each(a.data,function(t){t.transition(i)}),a.dataset.transition(i).draw(),e.each(a.data,function(t){t.draw()})},setHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,o=t._model;o.radius=i.hoverRadius?i.hoverRadius:e.getValueAtIndexOrDefault(a.pointHoverRadius,n,this.chart.options.elements.point.hoverRadius),o.backgroundColor=i.hoverBackgroundColor?i.hoverBackgroundColor:e.getValueAtIndexOrDefault(a.pointHoverBackgroundColor,n,e.getHoverColor(o.backgroundColor)),o.borderColor=i.hoverBorderColor?i.hoverBorderColor:e.getValueAtIndexOrDefault(a.pointHoverBorderColor,n,e.getHoverColor(o.borderColor)),o.borderWidth=i.hoverBorderWidth?i.hoverBorderWidth:e.getValueAtIndexOrDefault(a.pointHoverBorderWidth,n,o.borderWidth)},removeHoverStyle:function(t){var a=this.chart.data.datasets[t._datasetIndex],i=t.custom||{},n=t._index,o=t._model,r=this.chart.options.elements.point;o.radius=i.radius?i.radius:e.getValueAtIndexOrDefault(a.radius,n,r.radius),o.backgroundColor=i.backgroundColor?i.backgroundColor:e.getValueAtIndexOrDefault(a.pointBackgroundColor,n,r.backgroundColor),o.borderColor=i.borderColor?i.borderColor:e.getValueAtIndexOrDefault(a.pointBorderColor,n,r.borderColor),o.borderWidth=i.borderWidth?i.borderWidth:e.getValueAtIndexOrDefault(a.pointBorderWidth,n,r.borderWidth)}})}},{}],21:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.animation={duration:1e3,easing:"easeOutQuart",onProgress:e.noop,onComplete:e.noop},t.Animation=t.Element.extend({currentStep:null,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,a,i){var n=this;i||(t.animating=!0);for(var o=0;o<n.animations.length;++o)if(n.animations[o].chartInstance===t)return void(n.animations[o].animationObject=e);n.animations.push({chartInstance:t,animationObject:e}),1===n.animations.length&&n.requestAnimationFrame()},cancelAnimation:function(t){var a=e.findIndex(this.animations,function(e){return e.chartInstance===t});a!==-1&&(this.animations.splice(a,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=e.requestAnimFrame.call(window,function(){t.request=null,t.startDigest()}))},startDigest:function(){var t=this,e=Date.now(),a=0;t.dropFrames>1&&(a=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1);for(var i=0;i<t.animations.length;)null===t.animations[i].animationObject.currentStep&&(t.animations[i].animationObject.currentStep=0),t.animations[i].animationObject.currentStep+=1+a,t.animations[i].animationObject.currentStep>t.animations[i].animationObject.numSteps&&(t.animations[i].animationObject.currentStep=t.animations[i].animationObject.numSteps),t.animations[i].animationObject.render(t.animations[i].chartInstance,t.animations[i].animationObject),t.animations[i].animationObject.onAnimationProgress&&t.animations[i].animationObject.onAnimationProgress.call&&t.animations[i].animationObject.onAnimationProgress.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].animationObject.currentStep===t.animations[i].animationObject.numSteps?(t.animations[i].animationObject.onAnimationComplete&&t.animations[i].animationObject.onAnimationComplete.call&&t.animations[i].animationObject.onAnimationComplete.call(t.animations[i].chartInstance,t.animations[i]),t.animations[i].chartInstance.animating=!1,t.animations.splice(i,1)):++i;var n=Date.now(),o=(n-e)/t.frameDuration;t.dropFrames+=o,t.animations.length>0&&t.requestAnimationFrame()}}}},{}],22:[function(t,e,a){"use strict";e.exports=function(t){var e=t.canvasHelpers={};e.drawPoint=function(e,a,i,n,o){var r,s,l,u,d,c;if("object"==typeof a&&(r=a.toString(),"[object HTMLImageElement]"===r||"[object HTMLCanvasElement]"===r))return void e.drawImage(a,n-a.width/2,o-a.height/2);if(!(isNaN(i)||i<=0)){switch(a){default:e.beginPath(),e.arc(n,o,i,0,2*Math.PI),e.closePath(),e.fill();break;case"triangle":e.beginPath(),s=3*i/Math.sqrt(3),d=s*Math.sqrt(3)/2,e.moveTo(n-s/2,o+d/3),e.lineTo(n+s/2,o+d/3),e.lineTo(n,o-2*d/3),e.closePath(),e.fill();break;case"rect":c=1/Math.SQRT2*i,e.beginPath(),e.fillRect(n-c,o-c,2*c,2*c),e.strokeRect(n-c,o-c,2*c,2*c);break;case"rectRounded":var h=i/Math.SQRT2,f=n-h,g=o-h,p=Math.SQRT2*i;t.helpers.drawRoundedRectangle(e,f,g,p,p,i/2),e.fill();break;case"rectRot":c=1/Math.SQRT2*i,e.beginPath(),e.moveTo(n-c,o),e.lineTo(n,o+c),e.lineTo(n+c,o),e.lineTo(n,o-c),e.closePath(),e.fill();break;case"cross":e.beginPath(),e.moveTo(n,o+i),e.lineTo(n,o-i),e.moveTo(n-i,o),e.lineTo(n+i,o),e.closePath();break;case"crossRot":e.beginPath(),l=Math.cos(Math.PI/4)*i,u=Math.sin(Math.PI/4)*i,e.moveTo(n-l,o-u),e.lineTo(n+l,o+u),e.moveTo(n-l,o+u),e.lineTo(n+l,o-u),e.closePath();break;case"star":e.beginPath(),e.moveTo(n,o+i),e.lineTo(n,o-i),e.moveTo(n-i,o),e.lineTo(n+i,o),l=Math.cos(Math.PI/4)*i,u=Math.sin(Math.PI/4)*i,e.moveTo(n-l,o-u),e.lineTo(n+l,o+u),e.moveTo(n-l,o+u),e.lineTo(n+l,o-u),e.closePath();break;case"line":e.beginPath(),e.moveTo(n-i,o),e.lineTo(n+i,o),e.closePath();break;case"dash":e.beginPath(),e.moveTo(n,o),e.lineTo(n+i,o),e.closePath()}e.stroke()}},e.clipArea=function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},e.unclipArea=function(t){t.restore()}}},{}],23:[function(t,e,a){"use strict";e.exports=function(t){function e(e){e=e||{};var a=e.data=e.data||{};return a.datasets=a.datasets||[],a.labels=a.labels||[],e.options=i.configMerge(t.defaults.global,t.defaults[e.type],e.options||{}),e}function a(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}var i=t.helpers,n=t.plugins,o=t.platform;t.types={},t.instances={},t.controllers={},t.Controller=function(a,n,r){var s=this;n=e(n);var l=o.acquireContext(a,n),u=l&&l.canvas,d=u&&u.height,c=u&&u.width;return r.ctx=l,r.canvas=u,r.config=n,r.width=c,r.height=d,r.aspectRatio=d?c/d:null,s.id=i.uid(),s.chart=r,s.config=n,s.options=n.options,s._bufferedRender=!1,t.instances[s.id]=s,Object.defineProperty(s,"data",{get:function(){return s.config.data}}),l&&u?(s.initialize(),s.update(),s):(console.error("Failed to create chart: can't acquire context from the given item"),s)},i.extend(t.Controller.prototype,{initialize:function(){var t=this;return n.notify(t,"beforeInit"),i.retinaScale(t.chart),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),n.notify(t,"afterInit"),t},clear:function(){return i.clear(this.chart),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,a=e.chart,o=e.options,r=a.canvas,s=o.maintainAspectRatio&&a.aspectRatio||null,l=Math.floor(i.getMaximumWidth(r)),u=Math.floor(s?l/s:i.getMaximumHeight(r));if((a.width!==l||a.height!==u)&&(r.width=a.width=l,r.height=a.height=u,r.style.width=l+"px",r.style.height=u+"px",i.retinaScale(a),!t)){var d={width:l,height:u};n.notify(e,"resize",[d]),e.options.onResize&&e.options.onResize(e,d),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},a=t.scale;i.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),i.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),a&&(a.id=a.id||"scale")},buildScales:function(){var e=this,a=e.options,n=e.scales={},o=[];a.scales&&(o=o.concat((a.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category"}}),(a.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear"}}))),a.scale&&o.push({options:a.scale,dtype:"radialLinear",isDefault:!0}),i.each(o,function(a){var o=a.options,r=i.getValueOrDefault(o.type,a.dtype),s=t.scaleService.getScaleConstructor(r);if(s){var l=new s({id:o.id,options:o,ctx:e.chart.ctx,chart:e});n[l.id]=l,a.isDefault&&(e.scale=l)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,a=[],n=[];if(i.each(e.data.datasets,function(i,o){var r=e.getDatasetMeta(o);r.type||(r.type=i.type||e.config.type),a.push(r.type),r.controller?r.controller.updateIndex(o):(r.controller=new t.controllers[r.type](e,o),n.push(r.controller))},e),a.length>1)for(var o=1;o<a.length;o++)if(a[o]!==a[o-1]){e.isCombo=!0;break}return n},resetElements:function(){var t=this;i.each(t.data.datasets,function(e,a){t.getDatasetMeta(a).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t,e){var o=this;if(a(o),n.notify(o,"beforeUpdate")!==!1){o.tooltip._data=o.data;var r=o.buildOrUpdateControllers();i.each(o.data.datasets,function(t,e){o.getDatasetMeta(e).controller.buildOrUpdateElements()},o),o.updateLayout(),i.each(r,function(t){t.reset()}),o.updateDatasets(),n.notify(o,"afterUpdate"),o._bufferedRender?o._bufferedRequest={lazy:e,duration:t}:o.render(t,e)}},updateLayout:function(){var e=this;n.notify(e,"beforeLayout")!==!1&&(t.layoutService.update(this,this.chart.width,this.chart.height),n.notify(e,"afterScaleUpdate"),n.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(n.notify(t,"beforeDatasetsUpdate")!==!1){for(var e=0,a=t.data.datasets.length;e<a;++e)t.getDatasetMeta(e).controller.update();n.notify(t,"afterDatasetsUpdate")}},render:function(e,a){var o=this;if(n.notify(o,"beforeRender")!==!1){var r=o.options.animation,s=function(){n.notify(o,"afterRender");var t=r&&r.onComplete;t&&t.call&&t.call(o)};if(r&&("undefined"!=typeof e&&0!==e||"undefined"==typeof e&&0!==r.duration)){var l=new t.Animation;l.numSteps=(e||r.duration)/16.66,l.easing=r.easing,l.render=function(t,e){var a=i.easingEffects[e.easing],n=e.currentStep/e.numSteps,o=a(n);t.draw(o,n,e.currentStep)},l.onAnimationProgress=r.onProgress,l.onAnimationComplete=s,t.animationService.addAnimation(o,l,e,a)}else o.draw(),s();return o}},draw:function(t){var e=this;e.clear(),void 0!==t&&null!==t||(t=1),n.notify(e,"beforeDraw",[t])!==!1&&(i.each(e.boxes,function(t){t.draw(e.chartArea)},e),e.scale&&e.scale.draw(),e.drawDatasets(t),e.tooltip.transition(t).draw(),n.notify(e,"afterDraw",[t]))},drawDatasets:function(t){var e=this;n.notify(e,"beforeDatasetsDraw",[t])!==!1&&(i.each(e.data.datasets,function(a,i){e.isDatasetVisible(i)&&e.getDatasetMeta(i).controller.draw(t)},e,!0),n.notify(e,"afterDatasetsDraw",[t]))},getElementAtEvent:function(e){return t.Interaction.modes.single(this,e)},getElementsAtEvent:function(e){return t.Interaction.modes.label(this,e,{intersect:!0})},getElementsAtXAxis:function(e){return t.Interaction.modes["x-axis"](this,e,{intersect:!0})},getElementsAtEventForMode:function(e,a,i){ +var n=t.Interaction.modes[a];return"function"==typeof n?n(this,e,i):[]},getDatasetAtEvent:function(e){return t.Interaction.modes.dataset(this,e,{intersect:!0})},getDatasetMeta:function(t){var e=this,a=e.data.datasets[t];a._meta||(a._meta={});var i=a._meta[e.id];return i||(i=a._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,a=this.data.datasets.length;e<a;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroy:function(){var e,a,r,s=this,l=s.chart.canvas;for(s.stop(),a=0,r=s.data.datasets.length;a<r;++a)e=s.getDatasetMeta(a),e.controller&&(e.controller.destroy(),e.controller=null);l&&(s.unbindEvents(),i.clear(s.chart),o.releaseContext(s.chart.ctx),s.chart.canvas=null,s.chart.ctx=null),n.notify(s,"destroy"),delete t.instances[s.id]},toBase64Image:function(){return this.chart.canvas.toDataURL.apply(this.chart.canvas,arguments)},initToolTip:function(){var e=this;e.tooltip=new t.Tooltip({_chart:e.chart,_chartInstance:e,_data:e.data,_options:e.options.tooltips},e),e.tooltip.initialize()},bindEvents:function(){var t=this,e=t._listeners={},a=function(){t.eventHandler.apply(t,arguments)};i.each(t.options.events,function(i){o.addEventListener(t,i,a),e[i]=a}),t.options.responsive&&(a=function(){t.resize()},o.addEventListener(t,"resize",a),e.resize=a)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,i.each(e,function(e,a){o.removeEventListener(t,a,e)}))},updateHoverStyle:function(t,e,a){var i,n,o,r=a?"setHoverStyle":"removeHoverStyle";for(n=0,o=t.length;n<o;++n)i=t[n],i&&this.getDatasetMeta(i._datasetIndex).controller[r](i)},eventHandler:function(t){var e=this,a=e.tooltip;if(n.notify(e,"beforeEvent",[t])!==!1){e._bufferedRender=!0,e._bufferedRequest=null;var i=e.handleEvent(t);i|=a&&a.handleEvent(t),n.notify(e,"afterEvent",[t]);var o=e._bufferedRequest;return o?e.render(o.duration,o.lazy):i&&!e.animating&&(e.stop(),e.render(e.options.hover.animationDuration,!0)),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e=this,a=e.options||{},n=a.hover,o=!1;return e.lastActive=e.lastActive||[],"mouseout"===t.type?e.active=[]:e.active=e.getElementsAtEventForMode(t,n.mode,n),n.onHover&&n.onHover.call(e,t.native,e.active),"mouseup"!==t.type&&"click"!==t.type||a.onClick&&a.onClick.call(e,t.native,e.active),e.lastActive.length&&e.updateHoverStyle(e.lastActive,n.mode,!1),e.active.length&&n.mode&&e.updateHoverStyle(e.active,n.mode,!0),o=!i.arrayEquals(e.active,e.lastActive),e.lastActive=e.active,o}})}},{}],24:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return t._chartjs?void t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),void n.forEach(function(e){var a="onData"+e.charAt(0).toUpperCase()+e.slice(1),n=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),o=n.apply(this,e);return i.each(t._chartjs.listeners,function(t){"function"==typeof t[a]&&t[a].apply(t,e)}),o}})}))}function a(t,e){var a=t._chartjs;if(a){var i=a.listeners,o=i.indexOf(e);o!==-1&&i.splice(o,1),i.length>0||(n.forEach(function(e){delete t[e]}),delete t._chartjs)}}var i=t.helpers,n=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var a=this;a.chart=t,a.index=e,a.linkScales(),a.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),a=t.getDataset();null===e.xAxisID&&(e.xAxisID=a.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=a.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&a(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,a=e.dataElementType;return a&&new a({_chart:e.chart.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,a=this,i=a.getMeta(),n=a.getDataset().data||[],o=i.data;for(t=0,e=n.length;t<e;++t)o[t]=o[t]||a.createMetaData(t);i.dataset=i.dataset||a.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t=this,i=t.getDataset(),n=i.data||(i.data=[]);t._data!==n&&(t._data&&a(t._data,t),e(n,t),t._data=n),t.resyncElements()},update:i.noop,draw:function(t){var e,a,i=t||1,n=this.getMeta().data;for(e=0,a=n.length;e<a;++e)n[e].transition(i).draw()},removeHoverStyle:function(t,e){var a=this.chart.data.datasets[t._datasetIndex],n=t._index,o=t.custom||{},r=i.getValueAtIndexOrDefault,s=t._model;s.backgroundColor=o.backgroundColor?o.backgroundColor:r(a.backgroundColor,n,e.backgroundColor),s.borderColor=o.borderColor?o.borderColor:r(a.borderColor,n,e.borderColor),s.borderWidth=o.borderWidth?o.borderWidth:r(a.borderWidth,n,e.borderWidth)},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],a=t._index,n=t.custom||{},o=i.getValueAtIndexOrDefault,r=i.getHoverColor,s=t._model;s.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o(e.hoverBackgroundColor,a,r(s.backgroundColor)),s.borderColor=n.hoverBorderColor?n.hoverBorderColor:o(e.hoverBorderColor,a,r(s.borderColor)),s.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o(e.hoverBorderWidth,a,s.borderWidth)},resyncElements:function(){var t=this,e=t.getMeta(),a=t.getDataset().data,i=e.data.length,n=a.length;n<i?e.data.splice(n,i-n):n>i&&t.insertElements(i,n-i)},insertElements:function(t,e){for(var a=0;a<e;++a)this.addElementAndReset(t+a)},onDataPush:function(){this.insertElements(this.getDataset().data.length-1,arguments.length)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),t.DatasetController.extend=i.inherits}},{}],25:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.elements={},t.Element=function(t){e.extend(this,t),this.initialize.apply(this,arguments)},e.extend(t.Element.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=e.clone(t._model)),t._start=e.clone(t._view),t},transition:function(t){var a=this;return a._view||(a._view=e.clone(a._model)),1===t?(a._view=a._model,a._start=null,a):(a._start||a.pivot(),e.each(a._model,function(i,n){if("_"===n[0]);else if(a._view.hasOwnProperty(n))if(i===a._view[n]);else if("string"==typeof i)try{var o=e.color(a._model[n]).mix(e.color(a._start[n]),t);a._view[n]=o.rgbString()}catch(t){a._view[n]=i}else if("number"==typeof i){var r=void 0!==a._start[n]&&isNaN(a._start[n])===!1?a._start[n]:0;a._view[n]=(a._model[n]-r)*t+r}else a._view[n]=i;else"number"!=typeof i||isNaN(a._view[n])?a._view[n]=i:a._view[n]=i*t},a),a)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return e.isNumber(this._model.x)&&e.isNumber(this._model.y)}}),t.Element.extend=e.inherits}},{}],26:[function(t,e,a){"use strict";var i=t(3);e.exports=function(t){function e(t,e,a){var i;return"string"==typeof t?(i=parseInt(t,10),t.indexOf("%")!==-1&&(i=i/100*e.parentNode[a])):i=t,i}function a(t){return void 0!==t&&null!==t&&"none"!==t}function n(t,i,n){var o=document.defaultView,r=t.parentNode,s=o.getComputedStyle(t)[i],l=o.getComputedStyle(r)[i],u=a(s),d=a(l),c=Number.POSITIVE_INFINITY;return u||d?Math.min(u?e(s,t,n):c,d?e(l,r,n):c):"none"}var o=t.helpers={};o.each=function(t,e,a,i){var n,r;if(o.isArray(t))if(r=t.length,i)for(n=r-1;n>=0;n--)e.call(a,t[n],n);else for(n=0;n<r;n++)e.call(a,t[n],n);else if("object"==typeof t){var s=Object.keys(t);for(r=s.length,n=0;n<r;n++)e.call(a,t[s[n]],s[n])}},o.clone=function(t){var e={};return o.each(t,function(t,a){o.isArray(t)?e[a]=t.slice(0):"object"==typeof t&&null!==t?e[a]=o.clone(t):e[a]=t}),e},o.extend=function(t){for(var e=function(e,a){t[a]=e},a=1,i=arguments.length;a<i;a++)o.each(arguments[a],e);return t},o.configMerge=function(e){var a=o.clone(e);return o.each(Array.prototype.slice.call(arguments,1),function(e){o.each(e,function(e,i){var n=a.hasOwnProperty(i),r=n?a[i]:{};"scales"===i?a[i]=o.scaleMerge(r,e):"scale"===i?a[i]=o.configMerge(r,t.scaleService.getScaleDefaults(e.type),e):!n||"object"!=typeof r||o.isArray(r)||null===r||"object"!=typeof e||o.isArray(e)?a[i]=e:a[i]=o.configMerge(r,e)})}),a},o.scaleMerge=function(e,a){var i=o.clone(e);return o.each(a,function(e,a){"xAxes"===a||"yAxes"===a?i.hasOwnProperty(a)?o.each(e,function(e,n){var r=o.getValueOrDefault(e.type,"xAxes"===a?"category":"linear"),s=t.scaleService.getScaleDefaults(r);n>=i[a].length||!i[a][n].type?i[a].push(o.configMerge(s,e)):e.type&&e.type!==i[a][n].type?i[a][n]=o.configMerge(i[a][n],s,e):i[a][n]=o.configMerge(i[a][n],e)}):(i[a]=[],o.each(e,function(e){var n=o.getValueOrDefault(e.type,"xAxes"===a?"category":"linear");i[a].push(o.configMerge(t.scaleService.getScaleDefaults(n),e))})):i.hasOwnProperty(a)&&"object"==typeof i[a]&&null!==i[a]&&"object"==typeof e?i[a]=o.configMerge(i[a],e):i[a]=e}),i},o.getValueAtIndexOrDefault=function(t,e,a){return void 0===t||null===t?a:o.isArray(t)?e<t.length?t[e]:a:t},o.getValueOrDefault=function(t,e){return void 0===t?e:t},o.indexOf=Array.prototype.indexOf?function(t,e){return t.indexOf(e)}:function(t,e){for(var a=0,i=t.length;a<i;++a)if(t[a]===e)return a;return-1},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var a=[];return o.each(t,function(t){e(t)&&a.push(t)}),a},o.findIndex=Array.prototype.findIndex?function(t,e,a){return t.findIndex(e,a)}:function(t,e,a){a=void 0===a?t:a;for(var i=0,n=t.length;i<n;++i)if(e.call(a,t[i],i,t))return i;return-1},o.findNextWhere=function(t,e,a){void 0!==a&&null!==a||(a=-1);for(var i=a+1;i<t.length;i++){var n=t[i];if(e(n))return n}},o.findPreviousWhere=function(t,e,a){void 0!==a&&null!==a||(a=t.length);for(var i=a-1;i>=0;i--){var n=t[i];if(e(n))return n}},o.inherits=function(t){var e=this,a=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},i=function(){this.constructor=a};return i.prototype=e.prototype,a.prototype=new i,a.extend=o.inherits,t&&o.extend(a.prototype,t),a.__super__=e.prototype,a},o.noop=function(){},o.uid=function(){var t=0;return function(){return t++}}(),o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,a){return Math.abs(t-e)<a},o.almostWhole=function(t,e){var a=Math.round(t);return a-e<t&&a+e>t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return t=+t,0===t||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var a=e.x-t.x,i=e.y-t.y,n=Math.sqrt(a*a+i*i),o=Math.atan2(i,a);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:n}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2===0?0:.5},o.splineCurve=function(t,e,a,i){var n=t.skip?e:t,o=e,r=a.skip?e:a,s=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),l=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=s/(s+l),d=l/(s+l);u=isNaN(u)?0:u,d=isNaN(d)?0:d;var c=i*u,h=i*d;return{previous:{x:o.x-c*(r.x-n.x),y:o.y-c*(r.y-n.y)},next:{x:o.x+h*(r.x-n.x),y:o.y+h*(r.y-n.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,a,i,n,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),s=r.length;for(e=0;e<s;++e)if(i=r[e],!i.model.skip){if(a=e>0?r[e-1]:null,n=e<s-1?r[e+1]:null,n&&!n.model.skip){var l=n.model.x-i.model.x;i.deltaK=0!==l?(n.model.y-i.model.y)/l:0}!a||a.model.skip?i.mK=i.deltaK:!n||n.model.skip?i.mK=a.deltaK:this.sign(a.deltaK)!==this.sign(i.deltaK)?i.mK=0:i.mK=(a.deltaK+i.deltaK)/2}var u,d,c,h;for(e=0;e<s-1;++e)i=r[e],n=r[e+1],i.model.skip||n.model.skip||(o.almostEquals(i.deltaK,0,this.EPSILON)?i.mK=n.mK=0:(u=i.mK/i.deltaK,d=n.mK/i.deltaK,h=Math.pow(u,2)+Math.pow(d,2),h<=9||(c=3/Math.sqrt(h),i.mK=u*c*i.deltaK,n.mK=d*c*i.deltaK)));var f;for(e=0;e<s;++e)i=r[e],i.model.skip||(a=e>0?r[e-1]:null,n=e<s-1?r[e+1]:null,a&&!a.model.skip&&(f=(i.model.x-a.model.x)/3,i.model.controlPointPreviousX=i.model.x-f,i.model.controlPointPreviousY=i.model.y-f*i.mK),n&&!n.model.skip&&(f=(n.model.x-i.model.x)/3,i.model.controlPointNextX=i.model.x+f,i.model.controlPointNextY=i.model.y+f*i.mK))},o.nextItem=function(t,e,a){return a?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,a){return a?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var a,i=Math.floor(o.log10(t)),n=t/Math.pow(10,i);return a=e?n<1.5?1:n<3?2:n<7?5:10:n<=1?1:n<=2?2:n<=5?5:10,a*Math.pow(10,i)};var r=o.easingEffects={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-1*t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return 1*((t=t/1-1)*t*t+1)},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-1*((t=t/1-1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return 1*(t/=1)*t*t*t*t},easeOutQuint:function(t){return 1*((t=t/1-1)*t*t*t*t+1)},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return-1*Math.cos(t/1*(Math.PI/2))+1},easeOutSine:function(t){return 1*Math.sin(t/1*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t/1)-1)},easeInExpo:function(t){return 0===t?1:1*Math.pow(2,10*(t/1-1))},easeOutExpo:function(t){return 1===t?1:1*(-Math.pow(2,-10*t/1)+1)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(-Math.pow(2,-10*--t)+2)},easeInCirc:function(t){return t>=1?t:-1*(Math.sqrt(1-(t/=1)*t)-1)},easeOutCirc:function(t){return 1*Math.sqrt(1-(t=t/1-1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:1===(t/=1)?1:(a||(a=.3),i<Math.abs(1)?(i=1,e=a/4):e=a/(2*Math.PI)*Math.asin(1/i),-(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)))},easeOutElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:1===(t/=1)?1:(a||(a=.3),i<Math.abs(1)?(i=1,e=a/4):e=a/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((1*t-e)*(2*Math.PI)/a)+1)},easeInOutElastic:function(t){var e=1.70158,a=0,i=1;return 0===t?0:2===(t/=.5)?1:(a||(a=1*(.3*1.5)),i<Math.abs(1)?(i=1,e=a/4):e=a/(2*Math.PI)*Math.asin(1/i),t<1?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)):i*Math.pow(2,-10*(t-=1))*Math.sin((1*t-e)*(2*Math.PI)/a)*.5+1)},easeInBack:function(t){var e=1.70158;return 1*(t/=1)*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return 1*((t=t/1-1)*t*((e+1)*t+e)+1)},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?.5*(t*t*(((e*=1.525)+1)*t-e)):.5*((t-=2)*t*(((e*=1.525)+1)*t+e)+2)},easeInBounce:function(t){return 1-r.easeOutBounce(1-t)},easeOutBounce:function(t){return(t/=1)<1/2.75?1*(7.5625*t*t):t<2/2.75?1*(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?1*(7.5625*(t-=2.25/2.75)*t+.9375):1*(7.5625*(t-=2.625/2.75)*t+.984375)},easeInOutBounce:function(t){return t<.5?.5*r.easeInBounce(2*t):.5*r.easeOutBounce(2*t-1)+.5}};o.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)}}(),o.getRelativePosition=function(t,e){var a,i,n=t.originalEvent||t,r=t.currentTarget||t.srcElement,s=r.getBoundingClientRect(),l=n.touches;l&&l.length>0?(a=l[0].clientX,i=l[0].clientY):(a=n.clientX,i=n.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=s.right-s.left-u-c,g=s.bottom-s.top-d-h;return a=Math.round((a-s.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-s.top-d)/g*r.height/e.currentDevicePixelRatio),{x:a,y:i}},o.addEvent=function(t,e,a){t.addEventListener?t.addEventListener(e,a):t.attachEvent?t.attachEvent("on"+e,a):t["on"+e]=a},o.removeEvent=function(t,e,a){t.removeEventListener?t.removeEventListener(e,a,!1):t.detachEvent?t.detachEvent("on"+e,a):t["on"+e]=o.noop},o.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode,a=parseInt(o.getStyle(e,"padding-left"),10),i=parseInt(o.getStyle(e,"padding-right"),10),n=e.clientWidth-a-i,r=o.getConstraintWidth(t);return isNaN(r)?n:Math.min(n,r)},o.getMaximumHeight=function(t){var e=t.parentNode,a=parseInt(o.getStyle(e,"padding-top"),10),i=parseInt(o.getStyle(e,"padding-bottom"),10),n=e.clientHeight-a-i,r=o.getConstraintHeight(t);return isNaN(r)?n:Math.min(n,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t){var e=t.currentDevicePixelRatio=window.devicePixelRatio||1;if(1!==e){var a=t.canvas,i=t.height,n=t.width;a.height=i*e,a.width=n*e,t.ctx.scale(e,e),a.style.height=i+"px",a.style.width=n+"px"}},o.clear=function(t){t.ctx.clearRect(0,0,t.width,t.height)},o.fontString=function(t,e,a){return e+" "+t+"px "+a},o.longestText=function(t,e,a,i){i=i||{};var n=i.data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(n=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var s=0;o.each(a,function(e){void 0!==e&&null!==e&&o.isArray(e)!==!0?s=o.measureText(t,n,r,s,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(s=o.measureText(t,n,r,s,e))})});var l=r.length/2;if(l>a.length){for(var u=0;u<l;u++)delete n[r[u]];r.splice(0,l)}return s},o.measureText=function(t,e,a,i,n){var o=e[n];return o||(o=e[n]=t.measureText(n).width,a.push(n)),o>i&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.drawRoundedRectangle=function(t,e,a,i,n,o){t.beginPath(),t.moveTo(e+o,a),t.lineTo(e+i-o,a),t.quadraticCurveTo(e+i,a,e+i,a+o),t.lineTo(e+i,a+n-o),t.quadraticCurveTo(e+i,a+n,e+i-o,a+n),t.lineTo(e+o,a+n),t.quadraticCurveTo(e,a+n,e,a+n-o),t.lineTo(e,a+o),t.quadraticCurveTo(e,a,e+o,a),t.closePath()},o.color=function(e){return i?i(e instanceof CanvasGradient?t.defaults.global.defaultColor:e):(console.error("Color.js not found!"),e)},o.isArray=Array.isArray?function(t){return Array.isArray(t)}:function(t){return"[object Array]"===Object.prototype.toString.call(t)},o.arrayEquals=function(t,e){var a,i,n,r;if(!t||!e||t.length!==e.length)return!1;for(a=0,i=t.length;a<i;++a)if(n=t[a],r=e[a],n instanceof Array&&r instanceof Array){if(!o.arrayEquals(n,r))return!1}else if(n!==r)return!1;return!0},o.callCallback=function(t,e,a){t&&"function"==typeof t.call&&t.apply(a,e)},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{3:3}],27:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return t.native?{x:t.x,y:t.y}:r.getRelativePosition(t,e)}function a(t,e){var a,i,n,o,r,s=t.data.datasets;for(i=0,o=s.length;i<o;++i)if(t.isDatasetVisible(i))for(a=t.getDatasetMeta(i),n=0,r=a.data.length;n<r;++n){var l=a.data[n];l._view.skip||e(l)}}function i(t,e){var i=[];return a(t,function(t){t.inRange(e.x,e.y)&&i.push(t)}),i}function n(t,e,i,n){var o=Number.POSITIVE_INFINITY,s=[];return n||(n=r.distanceBetweenPoints),a(t,function(t){if(!i||t.inRange(e.x,e.y)){var a=t.getCenterPoint(),r=n(e,a);r<o?(s=[t],o=r):r===o&&s.push(t)}}),s}function o(t,a,o){var r=e(a,t.chart),s=function(t,e){return Math.abs(t.x-e.x)},l=o.intersect?i(t,r):n(t,r,!1,s),u=[];return l.length?(t.data.datasets.forEach(function(e,a){if(t.isDatasetVisible(a)){var i=t.getDatasetMeta(a),n=i.data[l[0]._index];n&&!n._view.skip&&u.push(n)}}),u):[]}var r=t.helpers;t.Interaction={modes:{single:function(t,i){var n=e(i,t.chart),o=[];return a(t,function(t){if(t.inRange(n.x,n.y))return o.push(t),o}),o.slice(0,1)},label:o,index:o,dataset:function(t,a,o){var r=e(a,t.chart),s=o.intersect?i(t,r):n(t,r,!1);return s.length>0&&(s=t.getDatasetMeta(s[0]._datasetIndex).data),s},"x-axis":function(t,e){return o(t,e,!0)},point:function(t,a){var n=e(a,t.chart);return i(t,n)},nearest:function(t,a,i){var o=e(a,t.chart),r=n(t,o,i.intersect);return r.length>1&&r.sort(function(t,e){var a=t.getArea(),i=e.getArea(),n=a-i;return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),r.slice(0,1)},x:function(t,i,n){var o=e(i,t.chart),r=[],s=!1;return a(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(s=!0)}),n.intersect&&!s&&(r=[]),r},y:function(t,i,n){var o=e(i,t.chart),r=[],s=!1;return a(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(s=!0)}),n.intersect&&!s&&(r=[]),r}}}}},{}],28:[function(t,e,a){"use strict";e.exports=function(){var t=function(e,a){return this.controller=new t.Controller(e,a,this),this.controller};return t.defaults={global:{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var a=0;a<t.data.datasets.length;a++)e.push('<li><span style="background-color:'+t.data.datasets[a].backgroundColor+'"></span>'),t.data.datasets[a].label&&e.push(t.data.datasets[a].label),e.push("</li>");return e.push("</ul>"),e.join("")}}},t.Chart=t,t}},{}],29:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),t.boxes.push(e)},removeBox:function(t,e){t.boxes&&t.boxes.splice(t.boxes.indexOf(e),1)},update:function(t,a,i){function n(t){var e,a=t.isHorizontal();a?(e=t.update(t.options.fullWidth?x:C,w),I-=e.height):(e=t.update(M,S),C-=e.width),D.push({horizontal:a,minSize:e,box:t})}function o(t){var a=e.findNextWhere(D,function(e){return e.box===t});if(a)if(t.isHorizontal()){var i={left:Math.max(F,A),right:Math.max(V,T),top:0,bottom:0};t.update(t.options.fullWidth?x:C,y/2,i)}else t.update(a.minSize.width,I)}function r(t){var a=e.findNextWhere(D,function(e){return e.box===t}),i={left:0,right:0,top:R,bottom:O};a&&t.update(a.minSize.width,I,i)}function s(t){t.isHorizontal()?(t.left=t.options.fullWidth?d:F,t.right=t.options.fullWidth?a-c:F+C,t.top=E,t.bottom=E+t.height,E=t.bottom):(t.left=N,t.right=N+t.width,t.top=R,t.bottom=R+I,N=t.right)}if(t){var l=t.options.layout,u=l?l.padding:null,d=0,c=0,h=0,f=0;isNaN(u)?(d=u.left||0,c=u.right||0,h=u.top||0,f=u.bottom||0):(d=u,c=u,h=u,f=u);var g=e.where(t.boxes,function(t){return"left"===t.options.position}),p=e.where(t.boxes,function(t){return"right"===t.options.position}),m=e.where(t.boxes,function(t){return"top"===t.options.position}),v=e.where(t.boxes,function(t){return"bottom"===t.options.position}),b=e.where(t.boxes,function(t){return"chartArea"===t.options.position});m.sort(function(t,e){return(e.options.fullWidth?1:0)-(t.options.fullWidth?1:0)}),v.sort(function(t,e){return(t.options.fullWidth?1:0)-(e.options.fullWidth?1:0)});var x=a-d-c,y=i-h-f,k=x/2,S=y/2,M=(a-k)/(g.length+p.length),w=(i-S)/(m.length+v.length),C=x,I=y,D=[];e.each(g.concat(p,m,v),n);var A=0,T=0,P=0,_=0;e.each(m.concat(v),function(t){if(t.getPadding){var e=t.getPadding();A=Math.max(A,e.left),T=Math.max(T,e.right)}}),e.each(g.concat(p),function(t){if(t.getPadding){var e=t.getPadding();P=Math.max(P,e.top),_=Math.max(_,e.bottom)}});var F=d,V=c,R=h,O=f;e.each(g.concat(p),o),e.each(g,function(t){F+=t.width}),e.each(p,function(t){V+=t.width}),e.each(m.concat(v),o),e.each(m,function(t){R+=t.height}),e.each(v,function(t){O+=t.height}),e.each(g.concat(p),r),F=d,V=c,R=h,O=f,e.each(g,function(t){F+=t.width}),e.each(p,function(t){V+=t.width}),e.each(m,function(t){R+=t.height}),e.each(v,function(t){O+=t.height});var L=Math.max(A-F,0);F+=L,V+=Math.max(T-V,0);var B=Math.max(P-R,0);R+=B,O+=Math.max(_-O,0);var z=i-R-O,W=a-F-V;W===C&&z===I||(e.each(g,function(t){t.height=z}),e.each(p,function(t){t.height=z}),e.each(m,function(t){t.options.fullWidth||(t.width=W)}),e.each(v,function(t){t.options.fullWidth||(t.width=W)}),I=z,C=W);var N=d+L,E=h+B;e.each(g.concat(m),s),N+=C,E+=I,e.each(p,s),e.each(v,s),t.chartArea={left:F,top:R,right:F+C,bottom:R+I},e.each(b,function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(C,I)})}}}}},{}],30:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function a(e,a){var i=new t.Legend({ctx:e.chart.ctx,options:a,chart:e});e.legend=i,t.layoutService.addBox(e,i)}var i=t.helpers,n=i.noop;t.defaults.global.legend={display:!0,position:"top",fullWidth:!0,reverse:!1,onClick:function(t,e){var a=e.datasetIndex,i=this.chart,n=i.getDatasetMeta(a);n.hidden=null===n.hidden?!i.data.datasets[a].hidden:null,i.update()},onHover:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return i.isArray(e.datasets)?e.datasets.map(function(e,a){return{text:e.label,fillStyle:i.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(a),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:a}},this):[]}}},t.Legend=t.Element.extend({initialize:function(t){i.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:n,update:function(t,e,a){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=a,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:n,beforeSetDimensions:n,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:n,beforeBuildLabels:n,buildLabels:function(){var t=this,e=t.options.labels,a=e.generateLabels.call(t,t.chart);e.filter&&(a=a.filter(function(a){return e.filter(a,t.chart.data)})),t.options.reverse&&a.reverse(),t.legendItems=a},afterBuildLabels:n,beforeFit:n,fit:function(){var a=this,n=a.options,o=n.labels,r=n.display,s=a.ctx,l=t.defaults.global,u=i.getValueOrDefault,d=u(o.fontSize,l.defaultFontSize),c=u(o.fontStyle,l.defaultFontStyle),h=u(o.fontFamily,l.defaultFontFamily),f=i.fontString(d,c,h),g=a.legendHitBoxes=[],p=a.minSize,m=a.isHorizontal();if(m?(p.width=a.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=a.maxHeight),r)if(s.font=f,m){var v=a.lineWidths=[0],b=a.legendItems.length?d+o.padding:0;s.textAlign="left",s.textBaseline="top",i.each(a.legendItems,function(t,i){var n=e(o,d),r=n+d/2+s.measureText(t.text).width;v[v.length-1]+r+o.padding>=a.width&&(b+=d+o.padding,v[v.length]=a.left),g[i]={left:0,top:0,width:r,height:d},v[v.length-1]+=r+o.padding}),p.height+=b}else{var x=o.padding,y=a.columnWidths=[],k=o.padding,S=0,M=0,w=d+x;i.each(a.legendItems,function(t,a){var i=e(o,d),n=i+d/2+s.measureText(t.text).width;M+w>p.height&&(k+=S+o.padding,y.push(S),S=0,M=0),S=Math.max(S,n),M+=w,g[a]={left:0,top:0,width:n,height:d}}),k+=S,y.push(S),p.width+=k}a.width=p.width,a.height=p.height},afterFit:n,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var a=this,n=a.options,o=n.labels,r=t.defaults.global,s=r.elements.line,l=a.width,u=a.lineWidths;if(n.display){var d,c=a.ctx,h=i.getValueOrDefault,f=h(o.fontColor,r.defaultFontColor),g=h(o.fontSize,r.defaultFontSize),p=h(o.fontStyle,r.defaultFontStyle),m=h(o.fontFamily,r.defaultFontFamily),v=i.fontString(g,p,m);c.textAlign="left",c.textBaseline="top",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=v;var b=e(o,g),x=a.legendHitBoxes,y=function(e,a,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,s.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,s.borderDashOffset),c.lineJoin=h(i.lineJoin,s.borderJoinStyle),c.lineWidth=h(i.lineWidth,s.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var o=0===h(i.lineWidth,s.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,s.borderDash)),n.labels&&n.labels.usePointStyle){var l=g*Math.SQRT2/2,u=l/Math.SQRT2,d=e+u,f=a+u;t.canvasHelpers.drawPoint(c,i.pointStyle,l,d,f)}else o||c.strokeRect(e,a,b,g),c.fillRect(e,a,b,g);c.restore()}},k=function(t,e,a,i){c.fillText(a.text,b+g/2+t,e),a.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(b+g/2+t,e+g/2),c.lineTo(b+g/2+t+i,e+g/2),c.stroke())},S=a.isHorizontal();d=S?{x:a.left+(l-u[0])/2,y:a.top+o.padding,line:0}:{x:a.left+o.padding,y:a.top+o.padding,line:0};var M=g+o.padding;i.each(a.legendItems,function(t,e){var i=c.measureText(t.text).width,n=b+g/2+i,r=d.x,s=d.y;S?r+n>=l&&(s=d.y+=M,d.line++,r=d.x=a.left+(l-u[d.line])/2):s+M>a.bottom&&(r=d.x=r+a.columnWidths[d.line]+o.padding,s=d.y=a.top+o.padding,d.line++),y(r,s,t),x[e].left=r,x[e].top=s,k(r,s,t,i),S?d.x+=n+o.padding:d.y+=M})}},handleEvent:function(t){var e=this,a=e.options,i="mouseup"===t.type?"click":t.type,n=!1;if("mousemove"===i){if(!a.onHover)return}else{if("click"!==i)return;if(!a.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var s=e.legendHitBoxes,l=0;l<s.length;++l){var u=s[l];if(o>=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===i){a.onClick.call(e,t.native,e.legendItems[l]),n=!0;break}if("mousemove"===i){a.onHover.call(e,t.native,e.legendItems[l]),n=!0;break}}}return n}}),t.plugins.register({beforeInit:function(t){var e=t.options.legend;e&&a(t,e)},beforeUpdate:function(e){var n=e.options.legend;n?(n=i.configMerge(t.defaults.global.legend,n),e.legend?e.legend.options=n:a(e,n)):(t.layoutService.removeBox(e,e.legend),delete e.legend)},afterEvent:function(t,e){var a=t.legend;a&&a.handleEvent(e)}})}},{}],31:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.defaults.global.plugins={},t.plugins={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach(function(t){e.indexOf(t)===-1&&e.push(t)}),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach(function(t){var a=e.indexOf(t);a!==-1&&e.splice(a,1)}),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length; +},getAll:function(){return this._plugins},notify:function(t,e,a){var i,n,o,r,s,l=this.descriptors(t),u=l.length;for(i=0;i<u;++i)if(n=l[i],o=n.plugin,s=o[e],"function"==typeof s&&(r=[t].concat(a||[]),r.push(n.options),s.apply(o,r)===!1))return!1;return!0},descriptors:function(a){var i=a._plugins||(a._plugins={});if(i.id===this._cacheId)return i.descriptors;var n=[],o=[],r=a&&a.config||{},s=t.defaults.global.plugins,l=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach(function(t){var a=n.indexOf(t);if(a===-1){var i=t.id,r=l[i];r!==!1&&(r===!0&&(r=e.clone(s[i])),n.push(t),o.push({plugin:t,options:r||{}}))}}),i.descriptors=o,i.id=this._cacheId,o}},t.pluginService=t.plugins,t.PluginBase=e.inherits({})}},{}],32:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e,a){return i.isArray(e)?i.longestText(t,a,e):t.measureText(e).width}function a(e){var a=i.getValueOrDefault,n=t.defaults.global,o=a(e.fontSize,n.defaultFontSize),r=a(e.fontStyle,n.defaultFontStyle),s=a(e.fontFamily,n.defaultFontFamily);return{size:o,style:r,family:s,font:i.fontString(o,r,s)}}var i=t.helpers;t.defaults.scale={display:!0,position:"left",gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{labelString:"",display:!1},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:t.Ticks.formatters.values}},t.Scale=t.Element.extend({getPadding:function(){var t=this;return{left:t.paddingLeft||0,top:t.paddingTop||0,right:t.paddingRight||0,bottom:t.paddingBottom||0}},beforeUpdate:function(){i.callCallback(this.options.beforeUpdate,[this])},update:function(t,e,a){var n=this;return n.beforeUpdate(),n.maxWidth=t,n.maxHeight=e,n.margins=i.extend({left:0,right:0,top:0,bottom:0},a),n.longestTextCache=n.longestTextCache||{},n.beforeSetDimensions(),n.setDimensions(),n.afterSetDimensions(),n.beforeDataLimits(),n.determineDataLimits(),n.afterDataLimits(),n.beforeBuildTicks(),n.buildTicks(),n.afterBuildTicks(),n.beforeTickToLabelConversion(),n.convertTicksToLabels(),n.afterTickToLabelConversion(),n.beforeCalculateTickRotation(),n.calculateTickRotation(),n.afterCalculateTickRotation(),n.beforeFit(),n.fit(),n.afterFit(),n.afterUpdate(),n.minSize},afterUpdate:function(){i.callCallback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){i.callCallback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){i.callCallback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){i.callCallback(this.options.beforeDataLimits,[this])},determineDataLimits:i.noop,afterDataLimits:function(){i.callCallback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){i.callCallback(this.options.beforeBuildTicks,[this])},buildTicks:i.noop,afterBuildTicks:function(){i.callCallback(this.options.afterBuildTicks,[this])},beforeTickToLabelConversion:function(){i.callCallback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this,e=t.options.ticks;t.ticks=t.ticks.map(e.userCallback||e.callback)},afterTickToLabelConversion:function(){i.callCallback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){i.callCallback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,n=t.options.ticks,o=a(n);e.font=o.font;var r=n.minRotation||0;if(t.options.display&&t.isHorizontal())for(var s,l,u=i.longestText(e,o.font,t.ticks,t.longestTextCache),d=u,c=t.getPixelForTick(1)-t.getPixelForTick(0)-6;d>c&&r<n.maxRotation;){var h=i.toRadians(r);if(s=Math.cos(h),l=Math.sin(h),l*u>t.maxHeight){r--;break}r++,d=s*u}t.labelRotation=r},afterCalculateTickRotation:function(){i.callCallback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){i.callCallback(this.options.beforeFit,[this])},fit:function(){var t=this,n=t.minSize={width:0,height:0},o=t.options,r=o.ticks,s=o.scaleLabel,l=o.gridLines,u=o.display,d=t.isHorizontal(),c=a(r),h=1.5*a(s).size,f=o.gridLines.tickMarkLength;if(d?n.width=t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:n.width=u&&l.drawTicks?f:0,d?n.height=u&&l.drawTicks?f:0:n.height=t.maxHeight,s.display&&u&&(d?n.height+=h:n.width+=h),r.display&&u){var g=i.longestText(t.ctx,c.font,t.ticks,t.longestTextCache),p=i.numberOfLabelLines(t.ticks),m=.5*c.size;if(d){t.longestLabelWidth=g;var v=i.toRadians(t.labelRotation),b=Math.cos(v),x=Math.sin(v),y=x*g+c.size*p+m*p;n.height=Math.min(t.maxHeight,n.height+y),t.ctx.font=c.font;var k=t.ticks[0],S=e(t.ctx,k,c.font),M=t.ticks[t.ticks.length-1],w=e(t.ctx,M,c.font);0!==t.labelRotation?(t.paddingLeft="bottom"===o.position?b*S+3:b*m+3,t.paddingRight="bottom"===o.position?b*m+3:b*w+3):(t.paddingLeft=S/2+3,t.paddingRight=w/2+3)}else r.mirror?g=0:g+=t.options.ticks.padding,n.width+=g,t.paddingTop=c.size/2,t.paddingBottom=c.size/2}t.handleMargins(),t.width=n.width,t.height=n.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){i.callCallback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){return null===t||"undefined"==typeof t?NaN:"number"!=typeof t||isFinite(t)?"object"==typeof t?t instanceof Date||t.isValid?t:this.getRightValue(this.isHorizontal()?t.x:t.y):t:NaN},getLabelForIndex:i.noop,getPixelForValue:i.noop,getValueForPixel:i.noop,getPixelForTick:function(t,e){var a=this;if(a.isHorizontal()){var i=a.width-(a.paddingLeft+a.paddingRight),n=i/Math.max(a.ticks.length-(a.options.gridLines.offsetGridLines?0:1),1),o=n*t+a.paddingLeft;e&&(o+=n/2);var r=a.left+Math.round(o);return r+=a.isFullWidth()?a.margins.left:0}var s=a.height-(a.paddingTop+a.paddingBottom);return a.top+t*(s/(a.ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var a=e.width-(e.paddingLeft+e.paddingRight),i=a*t+e.paddingLeft,n=e.left+Math.round(i);return n+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,a=t.max;return t.beginAtZero?0:e<0&&a<0?a:e>0&&a>0?e:0},draw:function(e){var n=this,o=n.options;if(o.display){var r,s,l=n.ctx,u=t.defaults.global,d=o.ticks,c=o.gridLines,h=o.scaleLabel,f=0!==n.labelRotation,g=d.autoSkip,p=n.isHorizontal();d.maxTicksLimit&&(s=d.maxTicksLimit);var m=i.getValueOrDefault(d.fontColor,u.defaultFontColor),v=a(d),b=c.drawTicks?c.tickMarkLength:0,x=i.getValueOrDefault(c.borderDash,u.borderDash),y=i.getValueOrDefault(c.borderDashOffset,u.borderDashOffset),k=i.getValueOrDefault(h.fontColor,u.defaultFontColor),S=a(h),M=i.toRadians(n.labelRotation),w=Math.cos(M),C=n.longestLabelWidth*w;l.fillStyle=m;var I=[];if(p){if(r=!1,f&&(C/=2),(C+d.autoSkipPadding)*n.ticks.length>n.width-(n.paddingLeft+n.paddingRight)&&(r=1+Math.floor((C+d.autoSkipPadding)*n.ticks.length/(n.width-(n.paddingLeft+n.paddingRight)))),s&&n.ticks.length>s)for(;!r||n.ticks.length/(r||1)>s;)r||(r=1),r+=1;g||(r=!1)}var D="right"===o.position?n.left:n.right-b,A="right"===o.position?n.left+b:n.right,T="bottom"===o.position?n.top:n.bottom-b,P="bottom"===o.position?n.top+b:n.bottom;if(i.each(n.ticks,function(t,a){if(void 0!==t&&null!==t){var s=n.ticks.length===a+1,l=r>1&&a%r>0||a%r===0&&a+r>=n.ticks.length;if((!l||s)&&void 0!==t&&null!==t){var u,h;a===("undefined"!=typeof n.zeroLineIndex?n.zeroLineIndex:0)?(u=c.zeroLineWidth,h=c.zeroLineColor):(u=i.getValueAtIndexOrDefault(c.lineWidth,a),h=i.getValueAtIndexOrDefault(c.color,a));var g,m,v,k,S,w,C,_,F,V,R="middle",O="middle";if(p){"bottom"===o.position?(O=f?"middle":"top",R=f?"right":"center",V=n.top+b):(O=f?"middle":"bottom",R=f?"left":"center",V=n.bottom-b);var L=n.getPixelForTick(a)+i.aliasPixel(u);F=n.getPixelForTick(a,c.offsetGridLines)+d.labelOffset,g=v=S=C=L,m=T,k=P,w=e.top,_=e.bottom}else{var B,z="left"===o.position,W=d.padding;d.mirror?(R=z?"left":"right",B=W):(R=z?"right":"left",B=b+W),F=z?n.right-B:n.left+B;var N=n.getPixelForTick(a);N+=i.aliasPixel(u),V=n.getPixelForTick(a,c.offsetGridLines),g=D,v=A,S=e.left,C=e.right,m=k=w=_=N}I.push({tx1:g,ty1:m,tx2:v,ty2:k,x1:S,y1:w,x2:C,y2:_,labelX:F,labelY:V,glWidth:u,glColor:h,glBorderDash:x,glBorderDashOffset:y,rotation:-1*M,label:t,textBaseline:O,textAlign:R})}}}),i.each(I,function(t){if(c.display&&(l.save(),l.lineWidth=t.glWidth,l.strokeStyle=t.glColor,l.setLineDash&&(l.setLineDash(t.glBorderDash),l.lineDashOffset=t.glBorderDashOffset),l.beginPath(),c.drawTicks&&(l.moveTo(t.tx1,t.ty1),l.lineTo(t.tx2,t.ty2)),c.drawOnChartArea&&(l.moveTo(t.x1,t.y1),l.lineTo(t.x2,t.y2)),l.stroke(),l.restore()),d.display){l.save(),l.translate(t.labelX,t.labelY),l.rotate(t.rotation),l.font=v.font,l.textBaseline=t.textBaseline,l.textAlign=t.textAlign;var e=t.label;if(i.isArray(e))for(var a=0,n=0;a<e.length;++a)l.fillText(""+e[a],0,n),n+=1.5*v.size;else l.fillText(e,0,0);l.restore()}}),h.display){var _,F,V=0;if(p)_=n.left+(n.right-n.left)/2,F="bottom"===o.position?n.bottom-S.size/2:n.top+S.size/2;else{var R="left"===o.position;_=R?n.left+S.size/2:n.right-S.size/2,F=n.top+(n.bottom-n.top)/2,V=R?-.5*Math.PI:.5*Math.PI}l.save(),l.translate(_,F),l.rotate(V),l.textAlign="center",l.textBaseline="middle",l.fillStyle=k,l.font=S.font,l.fillText(h.labelString,0,0),l.restore()}if(c.drawBorder){l.lineWidth=i.getValueAtIndexOrDefault(c.lineWidth,0),l.strokeStyle=i.getValueAtIndexOrDefault(c.color,0);var O=n.left,L=n.right,B=n.top,z=n.bottom,W=i.aliasPixel(l.lineWidth);p?(B=z="top"===o.position?n.bottom:n.top,B+=W,z+=W):(O=L="left"===o.position?n.right:n.left,O+=W,L+=W),l.beginPath(),l.moveTo(O,B),l.lineTo(L,z),l.stroke()}}}})}},{}],33:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.scaleService={constructors:{},defaults:{},registerScaleType:function(t,a,i){this.constructors[t]=a,this.defaults[t]=e.clone(i)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(a){return this.defaults.hasOwnProperty(a)?e.scaleMerge(t.defaults.scale,this.defaults[a]):{}},updateScaleDefaults:function(t,a){var i=this.defaults;i.hasOwnProperty(t)&&(i[t]=e.extend(i[t],a))},addScalesToLayout:function(a){e.each(a.scales,function(e){t.layoutService.addBox(a,e)})}}}},{}],34:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers;t.Ticks={generators:{linear:function(t,a){var i,n=[];if(t.stepSize&&t.stepSize>0)i=t.stepSize;else{var o=e.niceNum(a.max-a.min,!1);i=e.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(a.min/i)*i,s=Math.ceil(a.max/i)*i;t.min&&t.max&&t.stepSize&&e.almostWhole((t.max-t.min)/t.stepSize,i/1e3)&&(r=t.min,s=t.max);var l=(s-r)/i;l=e.almostEquals(l,Math.round(l),i/1e3)?Math.round(l):Math.ceil(l),n.push(void 0!==t.min?t.min:r);for(var u=1;u<l;++u)n.push(r+u*i);return n.push(void 0!==t.max?t.max:s),n},logarithmic:function(t,a){var i,n,o=[],r=e.getValueOrDefault,s=r(t.min,Math.pow(10,Math.floor(e.log10(a.min)))),l=Math.floor(e.log10(a.max)),u=Math.ceil(a.max/Math.pow(10,l));0===s?(i=Math.floor(e.log10(a.minNotZero)),n=Math.floor(a.minNotZero/Math.pow(10,i)),o.push(s),s=n*Math.pow(10,i)):(i=Math.floor(e.log10(s)),n=Math.floor(s/Math.pow(10,i)));do o.push(s),++n,10===n&&(n=1,++i),s=n*Math.pow(10,i);while(i<l||i===l&&n<u);var d=r(t.max,s);return o.push(d),o}},formatters:{values:function(t){return e.isArray(t)?t:""+t},linear:function(t,a,i){var n=i.length>3?i[2]-i[1]:i[1]-i[0];Math.abs(n)>1&&t!==Math.floor(t)&&(n=t-Math.floor(t));var o=e.log10(Math.abs(n)),r="";if(0!==t){var s=-1*Math.floor(o);s=Math.max(Math.min(s,20),0),r=t.toFixed(s)}else r="0";return r},logarithmic:function(t,a,i){var n=t/Math.pow(10,Math.floor(e.log10(t)));return 0===t?"0":1===n||2===n||5===n||0===a||a===i.length-1?t.toExponential():""}}}}},{}],35:[function(t,e,a){"use strict";e.exports=function(t){function e(e,a){var i=new t.Title({ctx:e.chart.ctx,options:a,chart:e});e.titleBlock=i,t.layoutService.addBox(e,i)}var a=t.helpers;t.defaults.global.title={display:!1,position:"top",fullWidth:!0,fontStyle:"bold",padding:10,text:""};var i=a.noop;t.Title=t.Element.extend({initialize:function(t){var e=this;a.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:i,update:function(t,e,a){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=a,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:i,beforeSetDimensions:i,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:i,beforeBuildLabels:i,buildLabels:i,afterBuildLabels:i,beforeFit:i,fit:function(){var e=this,i=a.getValueOrDefault,n=e.options,o=t.defaults.global,r=n.display,s=i(n.fontSize,o.defaultFontSize),l=e.minSize;e.isHorizontal()?(l.width=e.maxWidth,l.height=r?s+2*n.padding:0):(l.width=r?s+2*n.padding:0,l.height=e.maxHeight),e.width=l.width,e.height=l.height},afterFit:i,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var e=this,i=e.ctx,n=a.getValueOrDefault,o=e.options,r=t.defaults.global;if(o.display){var s,l,u,d=n(o.fontSize,r.defaultFontSize),c=n(o.fontStyle,r.defaultFontStyle),h=n(o.fontFamily,r.defaultFontFamily),f=a.fontString(d,c,h),g=0,p=e.top,m=e.left,v=e.bottom,b=e.right;i.fillStyle=n(o.fontColor,r.defaultFontColor),i.font=f,e.isHorizontal()?(s=m+(b-m)/2,l=p+(v-p)/2,u=b-m):(s="left"===o.position?m+d/2:b-d/2,l=p+(v-p)/2,u=v-p,g=Math.PI*("left"===o.position?-.5:.5)),i.save(),i.translate(s,l),i.rotate(g),i.textAlign="center",i.textBaseline="middle",i.fillText(o.text,0,0,u),i.restore()}}}),t.plugins.register({beforeInit:function(t){var a=t.options.title;a&&e(t,a)},beforeUpdate:function(i){var n=i.options.title;n?(n=a.configMerge(t.defaults.global.title,n),i.titleBlock?i.titleBlock.options=n:e(i,n)):(t.layoutService.removeBox(i,i.titleBlock),delete i.titleBlock)}})}},{}],36:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){var a=l.color(t);return a.alpha(e*a.alpha()).rgbaString()}function a(t,e){return e&&(l.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function i(t){var e=t._xScale,a=t._yScale||t._scale,i=t._index,n=t._datasetIndex;return{xLabel:e?e.getLabelForIndex(i,n):"",yLabel:a?a.getLabelForIndex(i,n):"",index:i,datasetIndex:n,x:t._model.x,y:t._model.y}}function n(e){var a=t.defaults.global,i=l.getValueOrDefault;return{xPadding:e.xPadding,yPadding:e.yPadding,xAlign:e.xAlign,yAlign:e.yAlign,bodyFontColor:e.bodyFontColor,_bodyFontFamily:i(e.bodyFontFamily,a.defaultFontFamily),_bodyFontStyle:i(e.bodyFontStyle,a.defaultFontStyle),_bodyAlign:e.bodyAlign,bodyFontSize:i(e.bodyFontSize,a.defaultFontSize),bodySpacing:e.bodySpacing,titleFontColor:e.titleFontColor,_titleFontFamily:i(e.titleFontFamily,a.defaultFontFamily),_titleFontStyle:i(e.titleFontStyle,a.defaultFontStyle),titleFontSize:i(e.titleFontSize,a.defaultFontSize),_titleAlign:e.titleAlign,titleSpacing:e.titleSpacing,titleMarginBottom:e.titleMarginBottom,footerFontColor:e.footerFontColor,_footerFontFamily:i(e.footerFontFamily,a.defaultFontFamily),_footerFontStyle:i(e.footerFontStyle,a.defaultFontStyle),footerFontSize:i(e.footerFontSize,a.defaultFontSize),_footerAlign:e.footerAlign,footerSpacing:e.footerSpacing,footerMarginTop:e.footerMarginTop,caretSize:e.caretSize,cornerRadius:e.cornerRadius,backgroundColor:e.backgroundColor,opacity:0,legendColorBackground:e.multiKeyBackground,displayColors:e.displayColors}}function o(t,e){var a=t._chart.ctx,i=2*e.yPadding,n=0,o=e.body,r=o.reduce(function(t,e){return t+e.before.length+e.lines.length+e.after.length},0);r+=e.beforeBody.length+e.afterBody.length;var s=e.title.length,u=e.footer.length,d=e.titleFontSize,c=e.bodyFontSize,h=e.footerFontSize;i+=s*d,i+=s?(s-1)*e.titleSpacing:0,i+=s?e.titleMarginBottom:0,i+=r*c,i+=r?(r-1)*e.bodySpacing:0,i+=u?e.footerMarginTop:0,i+=u*h,i+=u?(u-1)*e.footerSpacing:0;var f=0,g=function(t){n=Math.max(n,a.measureText(t).width+f)};return a.font=l.fontString(d,e._titleFontStyle,e._titleFontFamily),l.each(e.title,g),a.font=l.fontString(c,e._bodyFontStyle,e._bodyFontFamily),l.each(e.beforeBody.concat(e.afterBody),g),f=e.displayColors?c+2:0,l.each(o,function(t){l.each(t.before,g),l.each(t.lines,g),l.each(t.after,g)}),f=0,a.font=l.fontString(h,e._footerFontStyle,e._footerFontFamily),l.each(e.footer,g),n+=2*e.xPadding,{width:n,height:i}}function r(t,e){var a=t._model,i=t._chart,n=t._chartInstance.chartArea,o="center",r="center";a.y<e.height?r="top":a.y>i.height-e.height&&(r="bottom");var s,l,u,d,c,h=(n.left+n.right)/2,f=(n.top+n.bottom)/2;"center"===r?(s=function(t){return t<=h},l=function(t){return t>h}):(s=function(t){return t<=e.width/2},l=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},s(a.x)?(o="left",u(a.x)&&(o="center",r=c(a.y))):l(a.x)&&(o="right",d(a.x)&&(o="center",r=c(a.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function s(t,e,a){var i=t.x,n=t.y,o=t.caretSize,r=t.caretPadding,s=t.cornerRadius,l=a.xAlign,u=a.yAlign,d=o+r,c=s+r;return"right"===l?i-=e.width:"center"===l&&(i-=e.width/2),"top"===u?n+=d:n-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===l?i+=d:"right"===l&&(i-=d):"left"===l?i-=c:"right"===l&&(i+=c),{x:i,y:n}}var l=t.helpers;t.defaults.global.tooltips={enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,callbacks:{beforeTitle:l.noop,title:function(t,e){var a="",i=e.labels,n=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?a=o.xLabel:n>0&&o.index<n&&(a=i[o.index])}return a},afterTitle:l.noop,beforeBody:l.noop,beforeLabel:l.noop,label:function(t,e){var a=e.datasets[t.datasetIndex].label||"";return a+": "+t.yLabel},labelColor:function(t,e){var a=e.getDatasetMeta(t.datasetIndex),i=a.data[t.index],n=i._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},afterLabel:l.noop,afterBody:l.noop,beforeFooter:l.noop,footer:l.noop,afterFooter:l.noop}},t.Tooltip=t.Element.extend({initialize:function(){this._model=n(this._options)},getTitle:function(){var t=this,e=t._options,i=e.callbacks,n=i.beforeTitle.apply(t,arguments),o=i.title.apply(t,arguments),r=i.afterTitle.apply(t,arguments),s=[];return s=a(s,n),s=a(s,o),s=a(s,r)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return l.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,n=i._options.callbacks,o=[];return l.each(t,function(t){var r={before:[],lines:[],after:[]};a(r.before,n.beforeLabel.call(i,t,e)),a(r.lines,n.label.call(i,t,e)),a(r.after,n.afterLabel.call(i,t,e)),o.push(r)}),o},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return l.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),n=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return r=a(r,i),r=a(r,n),r=a(r,o)},update:function(e){var a,u,d=this,c=d._options,h=d._model,f=d._model=n(c),g=d._active,p=d._data,m=d._chartInstance,v={xAlign:h.xAlign,yAlign:h.yAlign},b={x:h.x,y:h.y},x={width:h.width,height:h.height},y={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var k=[];y=t.Tooltip.positioners[c.position](g,d._eventPosition);var S=[];for(a=0,u=g.length;a<u;++a)S.push(i(g[a]));c.filter&&(S=S.filter(function(t){return c.filter(t,p)})),c.itemSort&&(S=S.sort(function(t,e){return c.itemSort(t,e,p)})),l.each(S,function(t){k.push(c.callbacks.labelColor.call(d,t,m))}),f.title=d.getTitle(S,p),f.beforeBody=d.getBeforeBody(S,p),f.body=d.getBody(S,p),f.afterBody=d.getAfterBody(S,p),f.footer=d.getFooter(S,p),f.x=Math.round(y.x),f.y=Math.round(y.y),f.caretPadding=l.getValueOrDefault(y.padding,2),f.labelColors=k,f.dataPoints=S,x=o(this,f),v=r(this,x),b=s(f,x,v)}else f.opacity=0;return f.xAlign=v.xAlign,f.yAlign=v.yAlign,f.x=b.x,f.y=b.y,f.width=x.width,f.height=x.height,f.caretX=y.x,f.caretY=y.y,d._model=f,e&&c.custom&&c.custom.call(d,f),d},drawCaret:function(t,a,i){var n,o,r,s,l,u,d=this._view,c=this._chart.ctx,h=d.caretSize,f=d.cornerRadius,g=d.xAlign,p=d.yAlign,m=t.x,v=t.y,b=a.width,x=a.height;"center"===p?("left"===g?(n=m,o=n-h,r=n):(n=m+b,o=n+h,r=n),l=v+x/2,s=l-h,u=l+h):("left"===g?(n=m+f,o=n+h,r=o+h):"right"===g?(n=m+b-f,o=n-h,r=o-h):(o=m+b/2,n=o-h,r=o+h),"top"===p?(s=v,l=s-h,u=s):(s=v+x,l=s+h,u=s)),c.fillStyle=e(d.backgroundColor,i),c.beginPath(),c.moveTo(n,s),c.lineTo(o,l),c.lineTo(r,u),c.closePath(),c.fill()},drawTitle:function(t,a,i,n){var o=a.title;if(o.length){i.textAlign=a._titleAlign,i.textBaseline="top";var r=a.titleFontSize,s=a.titleSpacing;i.fillStyle=e(a.titleFontColor,n),i.font=l.fontString(r,a._titleFontStyle,a._titleFontFamily);var u,d;for(u=0,d=o.length;u<d;++u)i.fillText(o[u],t.x,t.y),t.y+=r+s,u+1===o.length&&(t.y+=a.titleMarginBottom-s)}},drawBody:function(t,a,i,n){var o=a.bodyFontSize,r=a.bodySpacing,s=a.body;i.textAlign=a._bodyAlign,i.textBaseline="top";var u=e(a.bodyFontColor,n);i.fillStyle=u,i.font=l.fontString(o,a._bodyFontStyle,a._bodyFontFamily);var d=0,c=function(e){i.fillText(e,t.x+d,t.y),t.y+=o+r};l.each(a.beforeBody,c);var h=a.displayColors;d=h?o+2:0,l.each(s,function(r,s){l.each(r.before,c),l.each(r.lines,function(r){h&&(i.fillStyle=e(a.legendColorBackground,n),i.fillRect(t.x,t.y,o,o),i.strokeStyle=e(a.labelColors[s].borderColor,n),i.strokeRect(t.x,t.y,o,o),i.fillStyle=e(a.labelColors[s].backgroundColor,n),i.fillRect(t.x+1,t.y+1,o-2,o-2),i.fillStyle=u),c(r)}),l.each(r.after,c)}),d=0,l.each(a.afterBody,c),t.y-=r},drawFooter:function(t,a,i,n){var o=a.footer;o.length&&(t.y+=a.footerMarginTop,i.textAlign=a._footerAlign,i.textBaseline="top",i.fillStyle=e(a.footerFontColor,n),i.font=l.fontString(a.footerFontSize,a._footerFontStyle,a._footerFontFamily),l.each(o,function(e){i.fillText(e,t.x,t.y),t.y+=a.footerFontSize+a.footerSpacing}))},drawBackground:function(t,a,i,n,o){i.fillStyle=e(a.backgroundColor,o),l.drawRoundedRectangle(i,t.x,t.y,n.width,n.height,a.cornerRadius),i.fill()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var a={width:e.width,height:e.height},i={x:e.x,y:e.y},n=Math.abs(e.opacity<.001)?0:e.opacity;this._options.enabled&&(this.drawBackground(i,e,t,a,n),this.drawCaret(i,a,n),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,n),this.drawBody(i,e,t,n),this.drawFooter(i,e,t,n))}},handleEvent:function(t){var e=this,a=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chartInstance.getElementsAtEventForMode(t,a.mode,a),i=!l.arrayEquals(e._active,e._lastActive),e._lastActive=e._active,a.enabled||a.custom){e._eventPosition={x:t.x,y:t.y};var n=e._model;e.update(!0),e.pivot(),i|=n.x!==e._model.x||n.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,a,i=0,n=0,o=0;for(e=0,a=t.length;e<a;++e){var r=t[e];if(r&&r.hasValue()){var s=r.tooltipPosition();i+=s.x,n+=s.y,++o}}return{x:Math.round(i/o),y:Math.round(n/o)}},nearest:function(t,e){var a,i,n,o=e.x,r=e.y,s=Number.POSITIVE_INFINITY;for(i=0,n=t.length;i<n;++i){var u=t[i];if(u&&u.hasValue()){var d=u.getCenterPoint(),c=l.distanceBetweenPoints(e,d);c<s&&(s=c,a=u)}}if(a){var h=a.tooltipPosition();o=h.x,r=h.y}return{x:o,y:r}}}}},{}],37:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global;a.elements.arc={backgroundColor:a.defaultColor,borderColor:"#fff",borderWidth:2},t.elements.Arc=t.Element.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,a){var i=this._view;if(i){for(var n=e.getAngleFromPoint(i,{x:t,y:a}),o=n.angle,r=n.distance,s=i.startAngle,l=i.endAngle;l<s;)l+=2*Math.PI;for(;o>l;)o-=2*Math.PI;for(;o<s;)o+=2*Math.PI;var u=o>=s&&o<=l,d=r>=i.innerRadius&&r<=i.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,a=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*a,y:t.y+Math.sin(e)*a}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,a=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*a,y:t.y+Math.sin(e)*a}},draw:function(){var t=this._chart.ctx,e=this._view,a=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,a,i),t.arc(e.x,e.y,e.innerRadius,i,a,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})}},{}],38:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=t.defaults.global;t.defaults.global.elements.line={tension:.4,backgroundColor:a.defaultColor,borderWidth:3,borderColor:a.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0},t.elements.Line=t.Element.extend({draw:function(){function t(t,e){var a=e._view;e._view.steppedLine===!0?(l.lineTo(a.x,t._view.y),l.lineTo(a.x,a.y)):0===e._view.tension?l.lineTo(a.x,a.y):l.bezierCurveTo(t._view.controlPointNextX,t._view.controlPointNextY,a.controlPointPreviousX,a.controlPointPreviousY,a.x,a.y)}var i=this,n=i._view,o=n.spanGaps,r=n.scaleZero,s=i._loop;s||("top"===n.fill?r=n.scaleTop:"bottom"===n.fill&&(r=n.scaleBottom));var l=i._chart.ctx;l.save();var u=i._children.slice(),d=-1;s&&u.length&&u.push(u[0]);var c,h,f,g;if(u.length&&n.fill){for(l.beginPath(),c=0;c<u.length;++c)h=u[c],f=e.previousItem(u,c),g=h._view,0===c?(s?l.moveTo(r.x,r.y):l.moveTo(g.x,r),g.skip||(d=c,l.lineTo(g.x,g.y))):(f=d===-1?f:u[d],g.skip?o||d!==c-1||(s?l.lineTo(r.x,r.y):l.lineTo(f._view.x,r)):(d!==c-1?o&&d!==-1?t(f,h):s?l.lineTo(g.x,g.y):(l.lineTo(g.x,r),l.lineTo(g.x,g.y)):t(f,h),d=c));s||d===-1||l.lineTo(u[d]._view.x,r),l.fillStyle=n.backgroundColor||a.defaultColor,l.closePath(),l.fill()}var p=a.elements.line;for(l.lineCap=n.borderCapStyle||p.borderCapStyle,l.setLineDash&&l.setLineDash(n.borderDash||p.borderDash),l.lineDashOffset=n.borderDashOffset||p.borderDashOffset,l.lineJoin=n.borderJoinStyle||p.borderJoinStyle,l.lineWidth=n.borderWidth||p.borderWidth,l.strokeStyle=n.borderColor||a.defaultColor,l.beginPath(),d=-1,c=0;c<u.length;++c)h=u[c],f=e.previousItem(u,c),g=h._view,0===c?g.skip||(l.moveTo(g.x,g.y),d=c):(f=d===-1?f:u[d],g.skip||(d!==c-1&&!o||d===-1?l.moveTo(g.x,g.y):t(f,h),d=c));l.stroke(),l.restore()}})}},{}],39:[function(t,e,a){"use strict";e.exports=function(t){function e(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hitRadius,2)}function a(t){var e=this._view;return!!e&&Math.pow(t-e.y,2)<Math.pow(e.radius+e.hitRadius,2)}var i=t.helpers,n=t.defaults.global,o=n.defaultColor;n.elements.point={radius:3,pointStyle:"circle",backgroundColor:o,borderWidth:1,borderColor:o,hitRadius:1,hoverRadius:4,hoverBorderWidth:1},t.elements.Point=t.Element.extend({inRange:function(t,e){var a=this._view;return!!a&&Math.pow(t-a.x,2)+Math.pow(e-a.y,2)<Math.pow(a.hitRadius+a.radius,2)},inLabelRange:e,inXRange:e,inYRange:a,getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(e){var a=this._view,r=this._model,s=this._chart.ctx,l=a.pointStyle,u=a.radius,d=a.x,c=a.y,h=t.helpers.color,f=1.01,g=0;a.skip||(s.strokeStyle=a.borderColor||o,s.lineWidth=i.getValueOrDefault(a.borderWidth,n.elements.point.borderWidth),s.fillStyle=a.backgroundColor||o,void 0!==e&&(r.x<e.left||e.right*f<r.x||r.y<e.top||e.bottom*f<r.y)&&(r.x<e.left?g=(d-r.x)/(e.left-r.x):e.right*f<r.x?g=(r.x-d)/(r.x-e.right):r.y<e.top?g=(c-r.y)/(e.top-r.y):e.bottom*f<r.y&&(g=(r.y-c)/(r.y-e.bottom)),g=Math.round(100*g)/100,s.strokeStyle=h(s.strokeStyle).alpha(g).rgbString(),s.fillStyle=h(s.fillStyle).alpha(g).rgbString()),t.canvasHelpers.drawPoint(s,l,u,d,c))}})}},{}],40:[function(t,e,a){"use strict";e.exports=function(t){function e(t){return void 0!==t._view.width}function a(t){var a,i,n,o,r=t._view;if(e(t)){var s=r.width/2;a=r.x-s,i=r.x+s,n=Math.min(r.y,r.base),o=Math.max(r.y,r.base)}else{var l=r.height/2;a=Math.min(r.x,r.base),i=Math.max(r.x,r.base),n=r.y-l,o=r.y+l}return{left:a,top:n,right:i,bottom:o}}var i=t.defaults.global;i.elements.rectangle={backgroundColor:i.defaultColor,borderWidth:0,borderColor:i.defaultColor,borderSkipped:"bottom"},t.elements.Rectangle=t.Element.extend({draw:function(){function t(t){return v[(x+t)%4]}var e,a,i,n,o,r,s,l=this._chart.ctx,u=this._view,d=u.borderWidth;if(u.horizontal?(e=u.base,a=u.x,i=u.y-u.height/2,n=u.y+u.height/2,o=a>e?1:-1,r=1,s=u.borderSkipped||"left"):(e=u.x-u.width/2,a=u.x+u.width/2,i=u.y,n=u.base,o=1,r=n>i?1:-1,s=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-a),Math.abs(i-n));d=d>c?c:d;var h=d/2,f=e+("left"!==s?h*o:0),g=a+("right"!==s?-h*o:0),p=i+("top"!==s?h*r:0),m=n+("bottom"!==s?-h*r:0);f!==g&&(i=p,n=m),p!==m&&(e=f,a=g)}l.beginPath(),l.fillStyle=u.backgroundColor,l.strokeStyle=u.borderColor,l.lineWidth=d;var v=[[e,n],[e,i],[a,i],[a,n]],b=["bottom","left","top","right"],x=b.indexOf(s,0);x===-1&&(x=0);var y=t(0);l.moveTo(y[0],y[1]);for(var k=1;k<4;k++)y=t(k),l.lineTo(y[0],y[1]);l.fill(),d&&l.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var i=!1;if(this._view){var n=a(this);i=t>=n.left&&t<=n.right&&e>=n.top&&e<=n.bottom}return i},inLabelRange:function(t,i){var n=this;if(!n._view)return!1;var o=!1,r=a(n);return o=e(n)?t>=r.left&&t<=r.right:i>=r.top&&i<=r.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,a,i=this._view;return e(this)?(t=i.x,a=(i.y+i.base)/2):(t=(i.x+i.base)/2,a=i.y),{x:t,y:a}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})}},{}],41:[function(t,e,a){"use strict";e.exports=function(t){function e(t,e){var a=l.getStyle(t,e),i=a&&a.match(/(\d+)px/);return i?Number(i[1]):void 0}function a(t,a){var i=t.style,n=t.getAttribute("height"),o=t.getAttribute("width");if(t._chartjs={initial:{height:n,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",null===o||""===o){var r=e(t,"width");void 0!==r&&(t.width=r)}if(null===n||""===n)if(""===t.style.height)t.height=t.width/(a.options.aspectRatio||2);else{var s=e(t,"height");void 0!==r&&(t.height=s)}return t}function i(t,e,a,i,n){return{type:t,chart:e,native:n||null,x:void 0!==a?a:null,y:void 0!==i?i:null}}function n(t,e){ +var a=u[t.type]||t.type,n=l.getRelativePosition(t,e);return i(a,e,n.x,n.y,t)}function o(t){var e=document.createElement("iframe");return e.className="chartjs-hidden-iframe",e.style.cssText="display:block;overflow:hidden;border:0;margin:0;top:0;left:0;bottom:0;right:0;height:100%;width:100%;position:absolute;pointer-events:none;z-index:-1;",e.tabIndex=-1,l.addEvent(e,"load",function(){l.addEvent(e.contentWindow||e,"resize",t),t()}),e}function r(t,e,a){var n=t._chartjs={ticking:!1},r=function(){n.ticking||(n.ticking=!0,l.requestAnimFrame.call(window,function(){if(n.resizer)return n.ticking=!1,e(i("resize",a))}))};n.resizer=o(r),t.insertBefore(n.resizer,t.firstChild)}function s(t){if(t&&t._chartjs){var e=t._chartjs.resizer;e&&(e.parentNode.removeChild(e),t._chartjs.resizer=null),delete t._chartjs}}var l=t.helpers,u={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};return{acquireContext:function(t,e){if("string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t instanceof HTMLCanvasElement){var i=t.getContext&&t.getContext("2d");if(i instanceof CanvasRenderingContext2D)return a(t,e),i}return null},releaseContext:function(t){var e=t.canvas;if(e._chartjs){var a=e._chartjs.initial;["height","width"].forEach(function(t){var i=a[t];void 0===i||null===i?e.removeAttribute(t):e.setAttribute(t,i)}),l.each(a.style||{},function(t,a){e.style[a]=t}),e.width=e.width,delete e._chartjs}},addEventListener:function(t,e,a){var i=t.chart.canvas;if("resize"===e)return void r(i.parentNode,a,t.chart);var o=a._chartjs||(a._chartjs={}),s=o.proxies||(o.proxies={}),u=s[t.id+"_"+e]=function(e){a(n(e,t.chart))};l.addEvent(i,e,u)},removeEventListener:function(t,e,a){var i=t.chart.canvas;if("resize"===e)return void s(i.parentNode,a);var n=a._chartjs||{},o=n.proxies||{},r=o[t.id+"_"+e];r&&l.removeEvent(i,e,r)}}}},{}],42:[function(t,e,a){"use strict";var i=t(41);e.exports=function(t){t.platform={acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},t.helpers.extend(t.platform,i(t))}},{41:41}],43:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"bottom"},i=t.Scale.extend({getLabels:function(){var t=this.chart.data;return(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t=this,a=t.getLabels();t.minIndex=0,t.maxIndex=a.length-1;var i;void 0!==t.options.ticks.min&&(i=e.indexOf(a,t.options.ticks.min),t.minIndex=i!==-1?i:t.minIndex),void 0!==t.options.ticks.max&&(i=e.indexOf(a,t.options.ticks.max),t.maxIndex=i!==-1?i:t.maxIndex),t.min=a[t.minIndex],t.max=a[t.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var a=this,i=a.chart.data,n=a.isHorizontal();return i.yLabels&&!n?a.getRightValue(i.datasets[e].data[t]):a.ticks[t-a.minIndex]},getPixelForValue:function(t,e,a,i){var n=this,o=Math.max(n.maxIndex+1-n.minIndex-(n.options.gridLines.offsetGridLines?0:1),1);if(void 0!==t&&isNaN(e)){var r=n.getLabels(),s=r.indexOf(t);e=s!==-1?s:e}if(n.isHorizontal()){var l=n.width/o,u=l*(e-n.minIndex);return(n.options.gridLines.offsetGridLines&&i||n.maxIndex===n.minIndex&&i)&&(u+=l/2),n.left+Math.round(u)}var d=n.height/o,c=d*(e-n.minIndex);return n.options.gridLines.offsetGridLines&&i&&(c+=d/2),n.top+Math.round(c)},getPixelForTick:function(t,e){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null,e)},getValueForPixel:function(t){var e,a=this,i=Math.max(a.ticks.length-(a.options.gridLines.offsetGridLines?0:1),1),n=a.isHorizontal(),o=(n?a.width:a.height)/i;return t-=n?a.left:a.top,a.options.gridLines.offsetGridLines&&(t-=o/2),e=t<=0?0:Math.round(t/o)},getBasePixel:function(){return this.bottom}});t.scaleService.registerScaleType("category",i,a)}},{}],44:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"left",ticks:{callback:t.Ticks.formatters.linear}},i=t.LinearScaleBase.extend({determineDataLimits:function(){function t(t){return s?t.xAxisID===a.id:t.yAxisID===a.id}var a=this,i=a.options,n=a.chart,o=n.data,r=o.datasets,s=a.isHorizontal();a.min=null,a.max=null;var l=i.stacked;if(void 0===l&&e.each(r,function(e,a){if(!l){var i=n.getDatasetMeta(a);n.isDatasetVisible(a)&&t(i)&&void 0!==i.stack&&(l=!0)}}),i.stacked||l){var u={};e.each(r,function(o,r){var s=n.getDatasetMeta(r),l=[s.type,void 0===i.stacked&&void 0===s.stack?r:"",s.stack].join(".");void 0===u[l]&&(u[l]={positiveValues:[],negativeValues:[]});var d=u[l].positiveValues,c=u[l].negativeValues;n.isDatasetVisible(r)&&t(s)&&e.each(o.data,function(t,e){var n=+a.getRightValue(t);isNaN(n)||s.data[e].hidden||(d[e]=d[e]||0,c[e]=c[e]||0,i.relativePoints?d[e]=100:n<0?c[e]+=n:d[e]+=n)})}),e.each(u,function(t){var i=t.positiveValues.concat(t.negativeValues),n=e.min(i),o=e.max(i);a.min=null===a.min?n:Math.min(a.min,n),a.max=null===a.max?o:Math.max(a.max,o)})}else e.each(r,function(i,o){var r=n.getDatasetMeta(o);n.isDatasetVisible(o)&&t(r)&&e.each(i.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===a.min?a.min=i:i<a.min&&(a.min=i),null===a.max?a.max=i:i>a.max&&(a.max=i))})});this.handleTickRangeOptions()},getTickLimit:function(){var a,i=this,n=i.options.ticks;if(i.isHorizontal())a=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(i.width/50));else{var o=e.getValueOrDefault(n.fontSize,t.defaults.global.defaultFontSize);a=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(i.height/(2*o)))}return a},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,a=this,i=a.start,n=+a.getRightValue(t),o=a.end-i;return a.isHorizontal()?(e=a.left+a.width/o*(n-i),Math.round(e)):(e=a.bottom-a.height/o*(n-i),Math.round(e))},getValueForPixel:function(t){var e=this,a=e.isHorizontal(),i=a?e.width:e.height,n=(a?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*n},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",i,a)}},{}],45:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a=e.noop;t.LinearScaleBase=t.Scale.extend({handleTickRangeOptions:function(){var t=this,a=t.options,i=a.ticks;if(i.beginAtZero){var n=e.sign(t.min),o=e.sign(t.max);n<0&&o<0?t.max=0:n>0&&o>0&&(t.min=0)}void 0!==i.min?t.min=i.min:void 0!==i.suggestedMin&&(t.min=Math.min(t.min,i.suggestedMin)),void 0!==i.max?t.max=i.max:void 0!==i.suggestedMax&&(t.max=Math.max(t.max,i.suggestedMax)),t.min===t.max&&(t.max++,i.beginAtZero||t.min--)},getTickLimit:a,handleDirectionalChanges:a,buildTicks:function(){var a=this,i=a.options,n=i.ticks,o=a.getTickLimit();o=Math.max(2,o);var r={maxTicks:o,min:n.min,max:n.max,stepSize:e.getValueOrDefault(n.fixedStepSize,n.stepSize)},s=a.ticks=t.Ticks.generators.linear(r,a);a.handleDirectionalChanges(),a.max=e.max(s),a.min=e.min(s),n.reverse?(s.reverse(),a.start=a.max,a.end=a.min):(a.start=a.min,a.end=a.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{}],46:[function(t,e,a){"use strict";e.exports=function(t){var e=t.helpers,a={position:"left",ticks:{callback:t.Ticks.formatters.logarithmic}},i=t.Scale.extend({determineDataLimits:function(){function t(t){return u?t.xAxisID===a.id:t.yAxisID===a.id}var a=this,i=a.options,n=i.ticks,o=a.chart,r=o.data,s=r.datasets,l=e.getValueOrDefault,u=a.isHorizontal();a.min=null,a.max=null,a.minNotZero=null;var d=i.stacked;if(void 0===d&&e.each(s,function(e,a){if(!d){var i=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(i)&&void 0!==i.stack&&(d=!0)}}),i.stacked||d){var c={};e.each(s,function(n,r){var s=o.getDatasetMeta(r),l=[s.type,void 0===i.stacked&&void 0===s.stack?r:"",s.stack].join(".");o.isDatasetVisible(r)&&t(s)&&(void 0===c[l]&&(c[l]=[]),e.each(n.data,function(t,e){var n=c[l],o=+a.getRightValue(t);isNaN(o)||s.data[e].hidden||(n[e]=n[e]||0,i.relativePoints?n[e]=100:n[e]+=o)}))}),e.each(c,function(t){var i=e.min(t),n=e.max(t);a.min=null===a.min?i:Math.min(a.min,i),a.max=null===a.max?n:Math.max(a.max,n)})}else e.each(s,function(i,n){var r=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(r)&&e.each(i.data,function(t,e){var i=+a.getRightValue(t);isNaN(i)||r.data[e].hidden||(null===a.min?a.min=i:i<a.min&&(a.min=i),null===a.max?a.max=i:i>a.max&&(a.max=i),0!==i&&(null===a.minNotZero||i<a.minNotZero)&&(a.minNotZero=i))})});a.min=l(n.min,a.min),a.max=l(n.max,a.max),a.min===a.max&&(0!==a.min&&null!==a.min?(a.min=Math.pow(10,Math.floor(e.log10(a.min))-1),a.max=Math.pow(10,Math.floor(e.log10(a.max))+1)):(a.min=1,a.max=10))},buildTicks:function(){var a=this,i=a.options,n=i.ticks,o={min:n.min,max:n.max},r=a.ticks=t.Ticks.generators.logarithmic(o,a);a.isHorizontal()||r.reverse(),a.max=e.max(r),a.min=e.min(r),n.reverse?(r.reverse(),a.start=a.max,a.end=a.min):(a.start=a.min,a.end=a.max)},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),t.Scale.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},getPixelForValue:function(t){var a,i,n,o=this,r=o.start,s=+o.getRightValue(t),l=o.options,u=l.ticks;return o.isHorizontal()?(n=e.log10(o.end)-e.log10(r),0===s?i=o.left:(a=o.width,i=o.left+a/n*(e.log10(s)-e.log10(r)))):(a=o.height,0!==r||u.reverse?0===o.end&&u.reverse?(n=e.log10(o.start)-e.log10(o.minNotZero),i=s===o.end?o.top:s===o.minNotZero?o.top+.02*a:o.top+.02*a+.98*a/n*(e.log10(s)-e.log10(o.minNotZero))):(n=e.log10(o.end)-e.log10(r),a=o.height,i=o.bottom-a/n*(e.log10(s)-e.log10(r))):(n=e.log10(o.end)-e.log10(o.minNotZero),i=s===r?o.bottom:s===o.minNotZero?o.bottom-.02*a:o.bottom-.02*a-.98*a/n*(e.log10(s)-e.log10(o.minNotZero)))),i},getValueForPixel:function(t){var a,i,n=this,o=e.log10(n.end)-e.log10(n.start);return n.isHorizontal()?(i=n.width,a=n.start*Math.pow(10,(t-n.left)*o/i)):(i=n.height,a=Math.pow(10,(n.bottom-t)*o/i)/n.start),a}});t.scaleService.registerScaleType("logarithmic",i,a)}},{}],47:[function(t,e,a){"use strict";e.exports=function(t){function e(t){return t.options.lineArc?0:t.chart.data.labels.length}function a(t){var e=t.options.pointLabels,a=f.getValueOrDefault(e.fontSize,g.defaultFontSize),i=f.getValueOrDefault(e.fontStyle,g.defaultFontStyle),n=f.getValueOrDefault(e.fontFamily,g.defaultFontFamily),o=f.fontString(a,i,n);return{size:a,style:i,family:n,font:o}}function i(t,e,a){return f.isArray(a)?{w:f.longestText(t,t.font,a),h:a.length*e+1.5*(a.length-1)*e}:{w:t.measureText(a).width,h:e}}function n(t,e,a,i,n){return t===i||t===n?{start:e-a/2,end:e+a/2}:t<i||t>n?{start:e-a-5,end:e}:{start:e,end:e+a+5}}function o(t){var o,r,s,l=a(t),u=Math.min(t.height/2,t.width/2),d={l:t.width,r:0,t:t.height,b:0},c={};t.ctx.font=l.font,t._pointLabelSizes=[];var h=e(t);for(o=0;o<h;o++){s=t.getPointPosition(o,u),r=i(t.ctx,l.size,t.pointLabels[o]||""),t._pointLabelSizes[o]=r;var g=t.getIndexAngle(o),p=f.toDegrees(g)%360,m=n(p,s.x,r.w,0,180),v=n(p,s.y,r.h,90,270);m.start<d.l&&(d.l=m.start,c.l=g),m.end>d.r&&(d.r=m.end,c.r=g),v.start<d.t&&(d.t=v.start,c.t=g),v.end>d.b&&(d.b=v.end,c.b=g)}t.setReductions(u,d,c)}function r(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function s(t){return 0===t||180===t?"center":t<180?"left":"right"}function l(t,e,a,i){if(f.isArray(e))for(var n=a.y,o=1.5*i,r=0;r<e.length;++r)t.fillText(e[r],a.x,n),n+=o;else t.fillText(e,a.x,a.y)}function u(t,e,a){90===t||270===t?a.y-=e.h/2:(t>270||t<90)&&(a.y-=e.h)}function d(t){var i=t.ctx,n=f.getValueOrDefault,o=t.options,r=o.angleLines,d=o.pointLabels;i.lineWidth=r.lineWidth,i.strokeStyle=r.color;var c=t.getDistanceFromCenterForValue(o.reverse?t.min:t.max),h=a(t);i.textBaseline="top";for(var p=e(t)-1;p>=0;p--){if(r.display){var m=t.getPointPosition(p,c);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(m.x,m.y),i.stroke(),i.closePath()}var v=t.getPointPosition(p,c+5),b=n(d.fontColor,g.defaultFontColor);i.font=h.font,i.fillStyle=b;var x=t.getIndexAngle(p),y=f.toDegrees(x);i.textAlign=s(y),u(y,t._pointLabelSizes[p],v),l(i,t.pointLabels[p]||"",v,h.size)}}function c(t,a,i,n){var o=t.ctx;if(o.strokeStyle=f.getValueAtIndexOrDefault(a.color,n-1),o.lineWidth=f.getValueAtIndexOrDefault(a.lineWidth,n-1),t.options.lineArc)o.beginPath(),o.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),o.closePath(),o.stroke();else{var r=e(t);if(0===r)return;o.beginPath();var s=t.getPointPosition(0,i);o.moveTo(s.x,s.y);for(var l=1;l<r;l++)s=t.getPointPosition(l,i),o.lineTo(s.x,s.y);o.closePath(),o.stroke()}}function h(t){return f.isNumber(t)?t:0}var f=t.helpers,g=t.defaults.global,p={display:!0,animate:!0,lineArc:!1,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:t.Ticks.formatters.linear},pointLabels:{fontSize:10,callback:function(t){return t}}},m=t.LinearScaleBase.extend({setDimensions:function(){var t=this,e=t.options,a=e.ticks;t.width=t.maxWidth,t.height=t.maxHeight,t.xCenter=Math.round(t.width/2),t.yCenter=Math.round(t.height/2);var i=f.min([t.height,t.width]),n=f.getValueOrDefault(a.fontSize,g.defaultFontSize);t.drawingArea=e.display?i/2-(n/2+a.backdropPaddingY):i/2},determineDataLimits:function(){var t=this,e=t.chart,a=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;f.each(e.data.datasets,function(n,o){if(e.isDatasetVisible(o)){var r=e.getDatasetMeta(o);f.each(n.data,function(e,n){var o=+t.getRightValue(e);isNaN(o)||r.data[n].hidden||(a=Math.min(o,a),i=Math.max(o,i))})}}),t.min=a===Number.POSITIVE_INFINITY?0:a,t.max=i===Number.NEGATIVE_INFINITY?0:i,t.handleTickRangeOptions()},getTickLimit:function(){var t=this.options.ticks,e=f.getValueOrDefault(t.fontSize,g.defaultFontSize);return Math.min(t.maxTicksLimit?t.maxTicksLimit:11,Math.ceil(this.drawingArea/(1.5*e)))},convertTicksToLabels:function(){var e=this;t.LinearScaleBase.prototype.convertTicksToLabels.call(e),e.pointLabels=e.chart.data.labels.map(e.options.pointLabels.callback,e)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){this.options.lineArc?r(this):o(this)},setReductions:function(t,e,a){var i=this,n=e.l/Math.sin(a.l),o=Math.max(e.r-i.width,0)/Math.sin(a.r),r=-e.t/Math.cos(a.t),s=-Math.max(e.b-i.height,0)/Math.cos(a.b);n=h(n),o=h(o),r=h(r),s=h(s),i.drawingArea=Math.min(Math.round(t-(n+o)/2),Math.round(t-(r+s)/2)),i.setCenterPoint(n,o,r,s)},setCenterPoint:function(t,e,a,i){var n=this,o=n.width-e-n.drawingArea,r=t+n.drawingArea,s=a+n.drawingArea,l=n.height-i-n.drawingArea;n.xCenter=Math.round((r+o)/2+n.left),n.yCenter=Math.round((s+l)/2+n.top)},getIndexAngle:function(t){var a=2*Math.PI/e(this),i=this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0,n=i*Math.PI*2/360;return t*a+n},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var a=e.drawingArea/(e.max-e.min);return e.options.reverse?(e.max-t)*a:(t-e.min)*a},getPointPosition:function(t,e){var a=this,i=a.getIndexAngle(t)-Math.PI/2;return{x:Math.round(Math.cos(i)*e)+a.xCenter,y:Math.round(Math.sin(i)*e)+a.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this,e=t.min,a=t.max;return t.getPointPositionForValue(0,t.beginAtZero?0:e<0&&a<0?a:e>0&&a>0?e:0)},draw:function(){var t=this,e=t.options,a=e.gridLines,i=e.ticks,n=f.getValueOrDefault;if(e.display){var o=t.ctx,r=n(i.fontSize,g.defaultFontSize),s=n(i.fontStyle,g.defaultFontStyle),l=n(i.fontFamily,g.defaultFontFamily),u=f.fontString(r,s,l);f.each(t.ticks,function(s,l){if(l>0||e.reverse){var d=t.getDistanceFromCenterForValue(t.ticksAsNumbers[l]),h=t.yCenter-d;if(a.display&&0!==l&&c(t,a,d,l),i.display){var f=n(i.fontColor,g.defaultFontColor);if(o.font=u,i.showLabelBackdrop){var p=o.measureText(s).width;o.fillStyle=i.backdropColor,o.fillRect(t.xCenter-p/2-i.backdropPaddingX,h-r/2-i.backdropPaddingY,p+2*i.backdropPaddingX,r+2*i.backdropPaddingY)}o.textAlign="center",o.textBaseline="middle",o.fillStyle=f,o.fillText(s,t.xCenter,h)}}}),e.lineArc||d(t)}}});t.scaleService.registerScaleType("radialLinear",m,p)}},{}],48:[function(t,e,a){"use strict";var i=t(1);i="function"==typeof i?i:window.moment,e.exports=function(t){var e=t.helpers,a={units:[{name:"millisecond",steps:[1,2,5,10,20,50,100,250,500]},{name:"second",steps:[1,2,5,10,30]},{name:"minute",steps:[1,2,5,10,30]},{name:"hour",steps:[1,2,3,6,12]},{name:"day",steps:[1,2,5]},{name:"week",maxStep:4},{name:"month",maxStep:3},{name:"quarter",maxStep:4},{name:"year",maxStep:!1}]},n={position:"bottom",time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{millisecond:"h:mm:ss.SSS a",second:"h:mm:ss a",minute:"h:mm:ss a",hour:"MMM D, hA",day:"ll",week:"ll",month:"MMM YYYY",quarter:"[Q]Q - YYYY",year:"YYYY"}},ticks:{autoSkip:!1}},o=t.Scale.extend({initialize:function(){if(!i)throw new Error("Chart.js - Moment.js could not be found! You must include it before Chart.js to use the time scale. Download at https://momentjs.com");t.Scale.prototype.initialize.call(this)},getLabelMoment:function(t,e){return null===t||null===e?null:"undefined"!=typeof this.labelMoments[t]?this.labelMoments[t][e]:null},getLabelDiff:function(t,e){var a=this;return null===t||null===e?null:(void 0===a.labelDiffs&&a.buildLabelDiffs(),"undefined"!=typeof a.labelDiffs[t]?a.labelDiffs[t][e]:null)},getMomentStartOf:function(t){var e=this;return"week"===e.options.time.unit&&e.options.time.isoWeekday!==!1?t.clone().startOf("isoWeek").isoWeekday(e.options.time.isoWeekday):t.clone().startOf(e.tickUnit)},determineDataLimits:function(){var t=this;t.labelMoments=[];var a=[];t.chart.data.labels&&t.chart.data.labels.length>0?(e.each(t.chart.data.labels,function(e){var i=t.parseTime(e);i.isValid()&&(t.options.time.round&&i.startOf(t.options.time.round),a.push(i))},t),t.firstTick=i.min.call(t,a),t.lastTick=i.max.call(t,a)):(t.firstTick=null,t.lastTick=null),e.each(t.chart.data.datasets,function(n,o){var r=[],s=t.chart.isDatasetVisible(o);"object"==typeof n.data[0]&&null!==n.data[0]?e.each(n.data,function(e){var a=t.parseTime(t.getRightValue(e));a.isValid()&&(t.options.time.round&&a.startOf(t.options.time.round),r.push(a),s&&(t.firstTick=null!==t.firstTick?i.min(t.firstTick,a):a,t.lastTick=null!==t.lastTick?i.max(t.lastTick,a):a))},t):r=a,t.labelMoments.push(r)},t),t.options.time.min&&(t.firstTick=t.parseTime(t.options.time.min)),t.options.time.max&&(t.lastTick=t.parseTime(t.options.time.max)),t.firstTick=(t.firstTick||i()).clone(),t.lastTick=(t.lastTick||i()).clone()},buildLabelDiffs:function(){var t=this;t.labelDiffs=[];var a=[];t.chart.data.labels&&t.chart.data.labels.length>0&&e.each(t.chart.data.labels,function(e){var i=t.parseTime(e);i.isValid()&&(t.options.time.round&&i.startOf(t.options.time.round),a.push(i.diff(t.firstTick,t.tickUnit,!0)))},t),e.each(t.chart.data.datasets,function(i){var n=[];"object"==typeof i.data[0]&&null!==i.data[0]?e.each(i.data,function(e){var a=t.parseTime(t.getRightValue(e));a.isValid()&&(t.options.time.round&&a.startOf(t.options.time.round),n.push(a.diff(t.firstTick,t.tickUnit,!0)))},t):n=a,t.labelDiffs.push(n)},t)},buildTicks:function(){var i=this;i.ctx.save();var n=e.getValueOrDefault(i.options.ticks.fontSize,t.defaults.global.defaultFontSize),o=e.getValueOrDefault(i.options.ticks.fontStyle,t.defaults.global.defaultFontStyle),r=e.getValueOrDefault(i.options.ticks.fontFamily,t.defaults.global.defaultFontFamily),s=e.fontString(n,o,r);if(i.ctx.font=s,i.ticks=[],i.unitScale=1,i.scaleSizeInUnits=0,i.options.time.unit)i.tickUnit=i.options.time.unit||"day",i.displayFormat=i.options.time.displayFormats[i.tickUnit],i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,1);else{var l=i.isHorizontal()?i.width:i.height,u=i.tickFormatFunction(i.firstTick,0,[]),d=i.ctx.measureText(u).width,c=Math.cos(e.toRadians(i.options.ticks.maxRotation)),h=Math.sin(e.toRadians(i.options.ticks.maxRotation));d=d*c+n*h;var f=l/d;i.tickUnit=i.options.time.minUnit,i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0),i.displayFormat=i.options.time.displayFormats[i.tickUnit];for(var g=0,p=a.units[g];g<a.units.length;){if(i.unitScale=1,e.isArray(p.steps)&&Math.ceil(i.scaleSizeInUnits/f)<e.max(p.steps)){for(var m=0;m<p.steps.length;++m)if(p.steps[m]>=Math.ceil(i.scaleSizeInUnits/f)){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,p.steps[m]);break}break}if(p.maxStep===!1||Math.ceil(i.scaleSizeInUnits/f)<p.maxStep){i.unitScale=e.getValueOrDefault(i.options.time.unitStepSize,Math.ceil(i.scaleSizeInUnits/f));break}++g,p=a.units[g],i.tickUnit=p.name;var v=i.firstTick.diff(i.getMomentStartOf(i.firstTick),i.tickUnit,!0),b=i.getMomentStartOf(i.lastTick.clone().add(1,i.tickUnit)).diff(i.lastTick,i.tickUnit,!0);i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)+v+b,i.displayFormat=i.options.time.displayFormats[p.name]}}var x;if(i.options.time.min?x=i.getMomentStartOf(i.firstTick):(i.firstTick=i.getMomentStartOf(i.firstTick),x=i.firstTick),!i.options.time.max){var y=i.getMomentStartOf(i.lastTick),k=y.diff(i.lastTick,i.tickUnit,!0);k<0?i.lastTick=i.getMomentStartOf(i.lastTick.add(1,i.tickUnit)):k>=0&&(i.lastTick=y),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0)}i.options.time.displayFormat&&(i.displayFormat=i.options.time.displayFormat),i.ticks.push(i.firstTick.clone());for(var S=i.unitScale;S<=i.scaleSizeInUnits;S+=i.unitScale){var M=x.clone().add(S,i.tickUnit);if(i.options.time.max&&M.diff(i.lastTick,i.tickUnit,!0)>=0)break;i.ticks.push(M)}var w=i.ticks[i.ticks.length-1].diff(i.lastTick,i.tickUnit);0===w&&0!==i.scaleSizeInUnits||(i.options.time.max?(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.ticks[0],i.tickUnit,!0)):(i.ticks.push(i.lastTick.clone()),i.scaleSizeInUnits=i.lastTick.diff(i.firstTick,i.tickUnit,!0))),i.ctx.restore(),i.labelDiffs=void 0},getLabelForIndex:function(t,e){var a=this,i=a.chart.data.labels&&t<a.chart.data.labels.length?a.chart.data.labels[t]:"",n=a.chart.data.datasets[e].data[t];return null!==n&&"object"==typeof n&&(i=a.getRightValue(n)),a.options.time.tooltipFormat&&(i=a.parseTime(i).format(a.options.time.tooltipFormat)),i},tickFormatFunction:function(t,a,i){var n=t.format(this.displayFormat),o=this.options.ticks,r=e.getValueOrDefault(o.callback,o.userCallback);return r?r(n,a,i):n},convertTicksToLabels:function(){var t=this;t.tickMoments=t.ticks,t.ticks=t.ticks.map(t.tickFormatFunction,t)},getPixelForValue:function(t,e,a){var i=this,n=null;if(void 0!==e&&void 0!==a&&(n=i.getLabelDiff(a,e)),null===n&&(t&&t.isValid||(t=i.parseTime(i.getRightValue(t))),t&&t.isValid&&t.isValid()&&(n=t.diff(i.firstTick,i.tickUnit,!0))),null!==n){var o=0!==n?n/i.scaleSizeInUnits:n;if(i.isHorizontal()){var r=i.width*o;return i.left+Math.round(r)}var s=i.height*o;return i.top+Math.round(s)}},getPixelForTick:function(t){return this.getPixelForValue(this.tickMoments[t],null,null)},getValueForPixel:function(t){var e=this,a=e.isHorizontal()?e.width:e.height,n=(t-(e.isHorizontal()?e.left:e.top))/a;return n*=e.scaleSizeInUnits,e.firstTick.clone().add(i.duration(n,e.tickUnit).asSeconds(),"seconds")},parseTime:function(t){var e=this;return"string"==typeof e.options.time.parser?i(t,e.options.time.parser):"function"==typeof e.options.time.parser?e.options.time.parser(t):"function"==typeof t.getMonth||"number"==typeof t?i(t):t.isValid&&t.isValid()?t:"string"!=typeof e.options.time.format&&e.options.time.format.call?(console.warn("options.time.format is deprecated and replaced by options.time.parser. See http://nnnick.github.io/Chart.js/docs-v2/#scales-time-scale"),e.options.time.format(t)):i(t,e.options.time.format)}});t.scaleService.registerScaleType("time",o,n)}},{1:1}]},{},[7])(7)}); \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/partials/admin.php b/wp-content/plugins/wordpress-popular-posts/admin/partials/admin.php new file mode 100644 index 0000000000000000000000000000000000000000..b766cc317825c1e647cc83ea85fa351d91161ef9 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/partials/admin.php @@ -0,0 +1,970 @@ +<?php +if ( basename($_SERVER['SCRIPT_NAME']) == basename(__FILE__) ) + exit( 'Please do not load this page directly' ); + +// Set active tab +if ( isset( $_GET['tab'] ) ) + $current = $_GET['tab']; +else + $current = 'stats'; + +// Update options on form submission +if ( isset($_POST['section']) ) { + + if ( "stats" == $_POST['section'] ) { + + $current = 'stats'; + + if ( isset( $_POST['wpp-admin-token'] ) && wp_verify_nonce( $_POST['wpp-admin-token'], 'wpp-update-stats-options' ) ) { + + //$this->options['stats']['order_by'] = $_POST['stats_order']; + $this->options['stats']['limit'] = ( WPP_Helper::is_number( $_POST['stats_limit'] ) && $_POST['stats_limit'] > 0 ) ? $_POST['stats_limit'] : 10; + $this->options['stats']['post_type'] = empty( $_POST['stats_type'] ) ? "post,page" : $_POST['stats_type']; + $this->options['stats']['freshness'] = empty( $_POST['stats_freshness'] ) ? false : $_POST['stats_freshness']; + + update_site_option( 'wpp_settings_config', $this->options ); + echo "<div class=\"updated\"><p><strong>" . __( 'Settings saved.', 'wordpress-popular-posts' ) . "</strong></p></div>"; + + } + + } + elseif ( "misc" == $_POST['section'] ) { + + $current = 'tools'; + + if ( isset( $_POST['wpp-admin-token'] ) && wp_verify_nonce( $_POST['wpp-admin-token'], 'wpp-update-misc-options' ) ) { + + $this->options['tools']['link']['target'] = $_POST['link_target']; + $this->options['tools']['css'] = $_POST['css']; + + update_site_option( 'wpp_settings_config', $this->options ); + echo "<div class=\"updated\"><p><strong>" . __( 'Settings saved.', 'wordpress-popular-posts' ) . "</strong></p></div>"; + + } + } + elseif ( "thumb" == $_POST['section'] ) { + + $current = 'tools'; + + if ( isset( $_POST['wpp-admin-token'] ) && wp_verify_nonce( $_POST['wpp-admin-token'], 'wpp-update-thumbnail-options' ) ) { + + if ( + $_POST['thumb_source'] == "custom_field" + && ( !isset( $_POST['thumb_field'] ) || empty( $_POST['thumb_field'] ) ) + ) { + echo '<div id="wpp-message" class="error fade"><p>'.__( 'Please provide the name of your custom field.', 'wordpress-popular-posts' ).'</p></div>'; + } else { + + $this->options['tools']['thumbnail']['source'] = $_POST['thumb_source']; + $this->options['tools']['thumbnail']['field'] = ( !empty( $_POST['thumb_field']) ) ? $_POST['thumb_field'] : "wpp_thumbnail"; + $this->options['tools']['thumbnail']['default'] = ( !empty( $_POST['upload_thumb_src']) ) ? $_POST['upload_thumb_src'] : ""; + $this->options['tools']['thumbnail']['resize'] = $_POST['thumb_field_resize']; + $this->options['tools']['thumbnail']['responsive'] = $_POST['thumb_responsive']; + + update_site_option( 'wpp_settings_config', $this->options ); + echo "<div class=\"updated\"><p><strong>" . __( 'Settings saved.', 'wordpress-popular-posts' ) . "</strong></p></div>"; + + } + + } + + } + elseif ( "data" == $_POST['section'] ) { + + $current = 'tools'; + + if ( isset( $_POST['wpp-admin-token'] ) && wp_verify_nonce( $_POST['wpp-admin-token'], 'wpp-update-data-options' ) ) { + + $this->options['tools']['log']['level'] = $_POST['log_option']; + $this->options['tools']['log']['limit'] = $_POST['log_limit']; + $this->options['tools']['log']['expires_after'] = ( WPP_Helper::is_number( $_POST['log_expire_time'] ) && $_POST['log_expire_time'] > 0 ) + ? $_POST['log_expire_time'] + : $this->default_user_settings['tools']['log']['expires_after']; + $this->options['tools']['ajax'] = $_POST['ajax']; + + // if any of the caching settings was updated, destroy all transients created by the plugin + if ( + $this->options['tools']['cache']['active'] != $_POST['cache'] + || $this->options['tools']['cache']['interval']['time'] != $_POST['cache_interval_time'] + || $this->options['tools']['cache']['interval']['value'] != $_POST['cache_interval_value'] + ) { + $this->flush_transients(); + } + + $this->options['tools']['cache']['active'] = $_POST['cache']; + $this->options['tools']['cache']['interval']['time'] = $_POST['cache_interval_time']; + $this->options['tools']['cache']['interval']['value'] = ( isset( $_POST['cache_interval_value'] ) && WPP_Helper::is_number( $_POST['cache_interval_value'] ) && $_POST['cache_interval_value'] > 0 ) + ? $_POST['cache_interval_value'] + : 1; + + $this->options['tools']['sampling']['active'] = $_POST['sampling']; + $this->options['tools']['sampling']['rate'] = ( isset( $_POST['sample_rate'] ) && WPP_Helper::is_number( $_POST['sample_rate'] ) && $_POST['sample_rate'] > 0 ) + ? $_POST['sample_rate'] + : 100; + + update_site_option( 'wpp_settings_config', $this->options ); + echo "<div class=\"updated\"><p><strong>" . __( 'Settings saved.', 'wordpress-popular-posts' ) . "</strong></p></div>"; + + } + } + +} + +if ( $this->options['tools']['css'] && !file_exists( get_stylesheet_directory() . '/wpp.css' ) ) { + echo '<div id="wpp-message" class="update-nag">'. __( 'Any changes made to WPP\'s default stylesheet will be lost after every plugin update. In order to prevent this from happening, please copy the wpp.css file (located at wp-content/plugins/wordpress-popular-posts/style) into your theme\'s directory', 'wordpress-popular-posts' ) .'.</div>'; +} + +$rand = md5( uniqid(rand(), true) ); + +if ( !$wpp_rand = get_site_option("wpp_rand") ) { + add_site_option( "wpp_rand", $rand ); +} else { + update_site_option( "wpp_rand", $rand ); +} + +?> +<script type="text/javascript"> + // TOOLS + function confirm_reset_cache() { + if ( confirm("<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( "This operation will delete all entries from WordPress Popular Posts' cache table and cannot be undone.", 'wordpress-popular-posts'); ?> \n\n" + "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( "Do you want to continue?", 'wordpress-popular-posts' ); ?>") ) { + jQuery.post( + ajaxurl, + { + action: 'wpp_clear_data', + token: '<?php echo get_site_option("wpp_rand"); ?>', + clear: 'cache' + }, function(data){ + var response = ""; + + switch( data ) { + case "1": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Success! The cache table has been cleared!', 'wordpress-popular-posts' ); ?>"; + break; + + case "2": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Error: cache table does not exist.', 'wordpress-popular-posts' ); ?>"; + break; + + case "3": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Invalid action.', 'wordpress-popular-posts' ); ?>"; + break; + + case "4": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Sorry, you do not have enough permissions to do this. Please contact the site administrator for support.', 'wordpress-popular-posts' ); ?>"; + break; + + default: + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Invalid action.', 'wordpress-popular-posts' ); ?>"; + break; + } + + alert( response ); + } + ); + } + } + + function confirm_reset_all() { + if ( confirm("<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( "This operation will delete all stored info from WordPress Popular Posts' data tables and cannot be undone.", 'wordpress-popular-posts'); ?> \n\n" + "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e("Do you want to continue?", 'wordpress-popular-posts'); ?>")) { + jQuery.post( + ajaxurl, + { + action: 'wpp_clear_data', + token: '<?php echo get_site_option("wpp_rand"); ?>', + clear: 'all' + }, function(data){ + var response = ""; + + switch( data ) { + case "1": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Success! All data have been cleared!', 'wordpress-popular-posts' ); ?>"; + break; + + case "2": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Error: one or both data tables are missing.', 'wordpress-popular-posts' ); ?>"; + break; + + case "3": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Invalid action.', 'wordpress-popular-posts' ); ?>"; + break; + + case "4": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Sorry, you do not have enough permissions to do this. Please contact the site administrator for support.', 'wordpress-popular-posts' ); ?>"; + break; + + default: + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Invalid action.', 'wordpress-popular-posts' ); ?>"; + break; + } + + alert( response ); + } + ); + } + } + + function confirm_clear_image_cache() { + if ( confirm("<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e("This operation will delete all cached thumbnails and cannot be undone.", 'wordpress-popular-posts'); ?> \n\n" + "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( "Do you want to continue?", 'wordpress-popular-posts' ); ?>") ) { + jQuery.post( + ajaxurl, + { + action: 'wpp_clear_thumbnail', + token: '<?php echo get_site_option("wpp_rand"); ?>' + }, function(data){ + var response = ""; + + switch( data ) { + case "1": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Success! All files have been deleted!', 'wordpress-popular-posts' ); ?>"; + break; + + case "2": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'The thumbnail cache is already empty!', 'wordpress-popular-posts' ); ?>"; + break; + + case "3": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Invalid action.', 'wordpress-popular-posts' ); ?>"; + break; + + case "4": + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Sorry, you do not have enough permissions to do this. Please contact the site administrator for support.', 'wordpress-popular-posts' ); ?>"; + break; + + default: + response = "<?php /*translators: Special characters (such as accents) must be replaced with Javascript Octal codes (eg. \341 is the Octal code for small a with acute accent) */ _e( 'Invalid action.', 'wordpress-popular-posts' ); ?>"; + break; + } + + alert( response ); + } + ); + } + } +</script> + +<nav id="wpp-menu"> + <ul> + <li><a href="#" title="<?php esc_attr_e( 'Menu' ); ?>"><span><?php _e( 'Menu' ); ?></span></a></li> + <li<?php echo ( 'stats' == $current ) ? ' class="current"' : ''; ?>><a href="<?php echo admin_url( 'options-general.php?page=wordpress-popular-posts&tab=stats' ); ?>" title="<?php esc_attr_e( 'Stats', 'wordpress-popular-posts' ); ?>"><span><?php _e( 'Stats', 'wordpress-popular-posts' ); ?></span></a></li> + <li<?php echo ( 'tools' == $current ) ? ' class="current"' : ''; ?>><a href="<?php echo admin_url( 'options-general.php?page=wordpress-popular-posts&tab=tools' ); ?>" title="<?php esc_attr_e( 'Tools', 'wordpress-popular-posts' ); ?>"><span><?php _e( 'Tools', 'wordpress-popular-posts' ); ?></span></a></li> + <li<?php echo ( 'params' == $current ) ? ' class="current"' : ''; ?>><a href="<?php echo admin_url( 'options-general.php?page=wordpress-popular-posts&tab=params' ); ?>" title="<?php esc_attr_e( 'Parameters', 'wordpress-popular-posts' ); ?>"><span><?php _e( 'Parameters', 'wordpress-popular-posts' ); ?></span></a></li> + </ul> +</nav> + +<?php +$tabs = array( + 'stats' => __( 'Stats', 'wordpress-popular-posts' ), + 'tools' => __( 'Tools', 'wordpress-popular-posts' ), + 'params' => __( 'Parameters', 'wordpress-popular-posts' ), + 'about' => __( 'About', 'wordpress-popular-posts' ) +); +?> +<div class="wpp-wrapper wpp-section-<?php echo $current; ?>"> + + <div class="wpp-header"> + <h2>WordPress Popular Posts</h2> + <h3><?php echo $tabs[$current]; ?></h3> + </div> + + <?php + // Stats chart + if ( 'stats' == $current ) { + + $chart_data = $this->get_chart_data( $this->options['stats']['range'] ); + + ?> + + <a href="#" id="wpp-stats-config-btn" class="dashicons dashicons-admin-generic"></a> + + <div id="wpp-stats-config" class="wpp-lightbox"> + + <form action="" method="post" id="wpp_stats_options" name="wpp_stats_options"> + + <label for="stats_type"><?php _e("Post type", 'wordpress-popular-posts'); ?>:</label> + <input type="text" name="stats_type" value="<?php echo esc_attr( $this->options['stats']['post_type'] ); ?>" size="15" /> + + <label for="stats_limits"><?php _e("Limit", 'wordpress-popular-posts'); ?>:</label> + <input type="text" name="stats_limit" value="<?php echo $this->options['stats']['limit']; ?>" size="5" /> + + <label for="stats_freshness"><input type="checkbox" class="checkbox" <?php echo ($this->options['stats']['freshness']) ? 'checked="checked"' : ''; ?> id="stats_freshness" name="stats_freshness" /> <small><?php _e('Display only posts published within the selected Time Range', 'wordpress-popular-posts'); ?></small></label> + + <div class="clear"></div> + <br /><br /> + + <input type="hidden" name="section" value="stats" /> + <button type="submit" class="button-primary action"><?php _e("Apply", 'wordpress-popular-posts'); ?></button> + <button class="button-secondary action right"><?php _e("Cancel"); ?></button> + + <?php wp_nonce_field( 'wpp-update-stats-options', 'wpp-admin-token' ); ?> + + </form> + + </div> + + <div id="wpp-stats-range" class="wpp-lightbox"> + + <form action="" method="post"> + + <ul class="wpp-lightbox-tabs"> + <li class="active"><a href="#"><?php _e('Custom Time Range', 'wordpress-popular-posts'); ?></a></li> + <li><a href="#"><?php _e('Date Range', 'wordpress-popular-posts'); ?></a></li> + </ul> + + <div class="wpp-lightbox-tab-content wpp-lightbox-tab-content-active" id="custom-time-range"> + + <input type="text" id="stats_range_time_quantity" name="stats_range_time_quantity" value="<?php echo $this->options['stats']['time_quantity']; ?>"> + + <select id="stats_range_time_unit" name="stats_range_time_unit"> + <option <?php if ($this->options['stats']['time_unit'] == "minute") {?>selected="selected"<?php } ?> value="minute"><?php _e("Minute(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['stats']['time_unit'] == "hour") {?>selected="selected"<?php } ?> value="hour"><?php _e("Hour(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['stats']['time_unit'] == "day") {?>selected="selected"<?php } ?> value="day"><?php _e("Day(s)", 'wordpress-popular-posts'); ?></option> + </select> + + </div> + + <div class="wpp-lightbox-tab-content" id="custom-date-range"> + <input type="text" id="stats_range_date" name="stats_range_date" value="" placeholder="<?php esc_attr_e('Select a date...', 'wordpress-popular-posts'); ?>" readonly> + </div> + + <div class="clear"></div> + <br /> + + <button type="submit" class="button-primary action"> + <?php _e("Apply", 'wordpress-popular-posts'); ?> + </button> + <button class="button-secondary action right"> + <?php _e("Cancel"); ?> + </button> + + </form> + + </div> + + <div id="wpp-chart-wrapper"> + <h4><?php echo $chart_data['totals']['label_summary']; ?></h4> + <h5><?php echo $chart_data['totals']['label_date_range']; ?></h5> + + <ul class="wpp-header-nav" id="wpp-time-ranges"> + <li <?php echo ( 'daily' == $this->options['stats']['range'] || 'last24hours' == $this->options['stats']['range'] ) ? ' class="current"' : ''; ?>><a href="#" data-range="last24hours" title="Last 24 hours">24h</a></li> + <li <?php echo ( 'weekly' == $this->options['stats']['range'] || 'last7days' == $this->options['stats']['range'] ) ? ' class="current"' : ''; ?>><a href="#" data-range="last7days" title="Last 7 days">7d</a></li> + <li <?php echo ( 'monthly' == $this->options['stats']['range'] || 'last30days' == $this->options['stats']['range'] ) ? ' class="current"' : ''; ?>><a href="#" data-range="last30days" title="Last 30 days">30d</a></li> + <li <?php echo ( 'custom' == $this->options['stats']['range'] ) ? ' class="current"' : ''; ?>><a href="#" data-range="custom" title="Custom">Custom</a></li> + </ul> + + <div id="wpp-chart"> + <p><?php echo sprintf( __('Err... A nice little chart is supposed to be here, instead you are seeing this because your browser is too old. <br /> Please <a href="%s" target="_blank">get a better browser</a>.', 'wordpress-popular-posts'), 'https://browsehappy.com/'); ?></p> + + <?php $this->print_chart_script( $chart_data, 'wpp-chart' ); ?> + </div> + </div> + <?php + } // End stats chart + ?> + + <div id="wpp-listing" class="wpp-content"<?php echo ( 'stats' == $current ) ? '' : ' style="display: none;"'; ?>> + <ul class="wpp-tabbed-nav"> + <li class="active"><a href="#" title="Most viewed"><span class="fa fa-eye"></span><span>Most viewed</span></a></li> + <li><a href="#" title="Most commented"><span class="fa fa-comment-o"></span><span>Most commented</span></a></li> + <li><a href="#" title="Trending now"><span class="fa fa-rocket"></span><span>Trending now</span></a></li> + <li><a href="#" title="Hall of Fame"><span class="fa fa-trophy"></span><span>Hall of Fame</span></a></li> + </ul> + + <div class="wpp-tab-content wpp-tab-content-active"> + <?php $this->get_most_viewed(); ?> + </div> + + <div class="wpp-tab-content"> + <?php $this->get_most_commented(); ?> + </div> + + <div class="wpp-tab-content"> + <?php + $args = array( + 'range' => 'custom', + 'time_unit' => 'HOUR', + 'time_quantity'=> 1, + 'post_type' => $this->options['stats']['post_type'], + 'order_by' => 'views', + 'limit' => $this->options['stats']['limit'], + 'stats_tag' => array( + 'comment_count' => 1, + 'views' => 1, + 'date' => array( + 'active' => 1 + ) + ) + ); + $trending = new WPP_query( $args ); + $posts = $trending->get_posts(); + + if ( + is_array( $posts ) + && !empty( $posts ) + ) { + ?> + <ol class="popular-posts-list"> + <?php + foreach ( $posts as $post ) { ?> + <li> + <p> + <a href="<?php echo get_permalink( $post->id ); ?>"><?php echo sanitize_text_field( $post->title ); ?></a> + <br /> + <span><?php printf( _n( '1 view', '%s views', $post->pageviews, 'wordpress-popular-posts' ), number_format_i18n( $post->pageviews ) ); ?>, <?php printf( _n( '1 comment', '%s comments', $post->comment_count, 'wordpress-popular-posts' ), number_format_i18n( $post->comment_count ) ); ?></span> + <small> — <a href="<?php echo get_permalink( $post->id ); ?>"><?php _e("View"); ?></a> | <a href="<?php echo get_edit_post_link( $post->id ); ?>"><?php _e("Edit"); ?></a></small> + </p> + </li> + <?php + } + ?> + </ol> + <?php + } + else { + ?> + <p style="text-align: center;"><?php _e("Looks like traffic to your site is a little light right now. <br />Spread the word and come back later!", "wordpress-popular-posts"); ?></p> + <?php + } + ?> + </div> + <div class="wpp-tab-content"> + <?php + $args = array( + 'range' => 'all', + 'post_type' => $this->options['stats']['post_type'], + 'order_by' => 'views', + 'limit' => $this->options['stats']['limit'], + 'stats_tag' => array( + 'comment_count' => 1, + 'views' => 1, + 'date' => array( + 'active' => 1 + ) + ) + ); + $hof = new WPP_query( $args ); + $posts = $hof->get_posts(); + + if ( + is_array( $posts ) + && !empty( $posts ) + ) { + ?> + <ol class="popular-posts-list"> + <?php + foreach ( $posts as $post ) { ?> + <li> + <p> + <a href="<?php echo get_permalink( $post->id ); ?>"><?php echo sanitize_text_field( $post->title ); ?></a> + <br /> + <span><?php printf( _n( '1 view', '%s views', $post->pageviews, 'wordpress-popular-posts' ), number_format_i18n( $post->pageviews ) ); ?>, <?php printf( _n( '1 comment', '%s comments', $post->comment_count, 'wordpress-popular-posts' ), number_format_i18n( $post->comment_count ) ); ?></span> + <small> — <a href="<?php echo get_permalink( $post->id ); ?>"><?php _e("View"); ?></a> | <a href="<?php echo get_edit_post_link( $post->id ); ?>"><?php _e("Edit"); ?></a></small> + </p> + </li> + <?php + } + ?> + </ol> + <?php + } + else { + ?> + <p style="text-align: center;"><?php _e("Looks like traffic to your site is a little light right now. <br />Spread the word and come back later!", "wordpress-popular-posts"); ?></p> + <?php + } + ?> + </div> + </div> + + <!-- Start tools --> + <div id="wpp_tools" <?php echo ( "tools" == $current ) ? '' : ' style="display: none;"'; ?>> + + <h3 class="wmpp-subtitle"><?php _e("Thumbnails", 'wordpress-popular-posts'); ?></h3> + <form action="" method="post" id="wpp_thumbnail_options" name="wpp_thumbnail_options"> + <table class="form-table"> + <tbody> + <tr valign="top"> + <th scope="row"><label for="thumb_default"><?php _e("Default thumbnail", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <div id="thumb-review"> + <img src="<?php echo ( $this->options['tools']['thumbnail']['default'] ) ? str_replace( parse_url( $this->options['tools']['thumbnail']['default'], PHP_URL_SCHEME ) . ':', '', $this->options['tools']['thumbnail']['default'] ) : plugins_url() . '/wordpress-popular-posts/public/images/no_thumb.jpg'; ?>" alt="" border="0" /> + </div> + <input id="upload_thumb_button" type="button" class="button" value="<?php _e( "Upload thumbnail", 'wordpress-popular-posts' ); ?>" /> + <input type="hidden" id="upload_thumb_src" name="upload_thumb_src" value="" /> + <p class="description"><?php _e("How-to: upload (or select) an image, set Size to Full and click on Upload. After it's done, hit on Apply to save changes", 'wordpress-popular-posts'); ?>.</p> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="thumb_source"><?php _e("Pick image from", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="thumb_source" id="thumb_source"> + <option <?php if ($this->options['tools']['thumbnail']['source'] == "featured") {?>selected="selected"<?php } ?> value="featured"><?php _e("Featured image", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['thumbnail']['source'] == "first_image") {?>selected="selected"<?php } ?> value="first_image"><?php _e("First image on post", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['thumbnail']['source'] == "first_attachment") {?>selected="selected"<?php } ?> value="first_attachment"><?php _e("First attachment", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['thumbnail']['source'] == "custom_field") {?>selected="selected"<?php } ?> value="custom_field"><?php _e("Custom field", 'wordpress-popular-posts'); ?></option> + </select> + <br /> + <p class="description"><?php _e("Tell WordPress Popular Posts where it should get thumbnails from", 'wordpress-popular-posts'); ?>.</p> + </td> + </tr> + <tr valign="top" <?php if ($this->options['tools']['thumbnail']['source'] != "custom_field") {?>style="display:none;"<?php } ?> id="row_custom_field"> + <th scope="row"><label for="thumb_field"><?php _e("Custom field name", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <input type="text" id="thumb_field" name="thumb_field" value="<?php echo esc_attr( $this->options['tools']['thumbnail']['field'] ); ?>" size="10" <?php if ($this->options['tools']['thumbnail']['source'] != "custom_field") {?>style="display:none;"<?php } ?> /> + </td> + </tr> + <tr valign="top" <?php if ($this->options['tools']['thumbnail']['source'] != "custom_field") {?>style="display:none;"<?php } ?> id="row_custom_field_resize"> + <th scope="row"><label for="thumb_field_resize"><?php _e("Resize image from Custom field?", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="thumb_field_resize" id="thumb_field_resize"> + <option <?php if ( !$this->options['tools']['thumbnail']['resize'] ) {?>selected="selected"<?php } ?> value="0"><?php _e("No, I will upload my own thumbnail", 'wordpress-popular-posts'); ?></option> + <option <?php if ( $this->options['tools']['thumbnail']['resize'] == 1 ) {?>selected="selected"<?php } ?> value="1"><?php _e("Yes", 'wordpress-popular-posts'); ?></option> + </select> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="thumb_responsive"><?php _e("Responsive support", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="thumb_responsive" id="thumb_responsive"> + <option <?php if ($this->options['tools']['thumbnail']['responsive']) {?>selected="selected"<?php } ?> value="1"><?php _e("Enabled", 'wordpress-popular-posts'); ?></option> + <option <?php if (!$this->options['tools']['thumbnail']['responsive']) {?>selected="selected"<?php } ?> value="0"><?php _e("Disabled", 'wordpress-popular-posts'); ?></option> + </select> + <br /> + <p class="description"><?php _e("If enabled, WordPress Popular Posts will strip height and width attributes out of thumbnails' image tags", 'wordpress-popular-posts'); ?>.</p> + </td> + </tr> + <?php + $wp_upload_dir = wp_upload_dir(); + if ( is_dir( $wp_upload_dir['basedir'] . "/" . 'wordpress-popular-posts' ) ) : + ?> + <tr valign="top"> + <th scope="row"></th> + <td> + <input type="button" name="wpp-reset-cache" id="wpp-reset-cache" class="button-secondary" value="<?php _e("Empty image cache", 'wordpress-popular-posts'); ?>" onclick="confirm_clear_image_cache()" /> + <p class="description"><?php _e("Use this button to clear WPP's thumbnails cache", 'wordpress-popular-posts'); ?>.</p> + </td> + </tr> + <?php + endif; + ?> + <tr valign="top"> + <td colspan="2"> + <input type="hidden" name="section" value="thumb" /> + <input type="submit" class="button-secondary action" id="btn_th_ops" value="<?php _e("Apply", 'wordpress-popular-posts'); ?>" name="" /> + </td> + </tr> + </tbody> + </table> + + <?php wp_nonce_field( 'wpp-update-thumbnail-options', 'wpp-admin-token' ); ?> + </form> + <br /> + <p style="display:block; float:none; clear:both"> </p> + + <h3 class="wmpp-subtitle"><?php _e("Data", 'wordpress-popular-posts'); ?></h3> + <form action="" method="post" id="wpp_ajax_options" name="wpp_ajax_options"> + <table class="form-table"> + <tbody> + <tr valign="top"> + <th scope="row"><label for="log_option"><?php _e("Log views from", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="log_option" id="log_option"> + <option <?php if ($this->options['tools']['log']['level'] == 0) {?>selected="selected"<?php } ?> value="0"><?php _e("Visitors only", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['log']['level'] == 2) {?>selected="selected"<?php } ?> value="2"><?php _e("Logged-in users only", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['log']['level'] == 1) {?>selected="selected"<?php } ?> value="1"><?php _e("Everyone", 'wordpress-popular-posts'); ?></option> + </select> + <br /> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="log_limit"><?php _e("Log limit", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="log_limit" id="log_limit"> + <option <?php if ($this->options['tools']['log']['limit'] == 0) {?>selected="selected"<?php } ?> value="0"><?php _e("Disabled", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['log']['limit'] == 1) {?>selected="selected"<?php } ?> value="1"><?php _e("Keep data for", 'wordpress-popular-posts'); ?></option> + </select> + + <label for="log_expire_time"<?php echo ($this->options['tools']['log']['limit'] == 0) ? ' style="display:none;"' : ''; ?>><input type="text" id="log_expire_time" name="log_expire_time" value="<?php echo esc_attr( $this->options['tools']['log']['expires_after'] ); ?>" size="3" /> <?php _e("day(s)", 'wordpress-popular-posts'); ?></label> + + <p class="description"<?php echo ($this->options['tools']['log']['limit'] == 0) ? ' style="display:none;"' : ''; ?>><?php _e("Data from entries that haven't been viewed within the specified time frame will be automatically discarded", 'wordpress-popular-posts'); ?>.</p> + + <br<?php echo ($this->options['tools']['log']['limit'] == 1) ? ' style="display:none;"' : ''; ?> /> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="ajax"><?php _e("Ajaxify widget", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="ajax" id="ajax"> + <option <?php if (!$this->options['tools']['ajax']) {?>selected="selected"<?php } ?> value="0"><?php _e("Disabled", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['ajax']) {?>selected="selected"<?php } ?> value="1"><?php _e("Enabled", 'wordpress-popular-posts'); ?></option> + </select> + + <br /> + <p class="description"><?php _e("If you are using a caching plugin such as WP Super Cache, enabling this feature will keep the popular list from being cached by it", 'wordpress-popular-posts'); ?>.</p> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="cache"><?php _e("WPP Cache Expiry Policy", 'wordpress-popular-posts'); ?>:</label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/7.-Performance#caching" target="_blank" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>">?</a>]</small></th> + <td> + <select name="cache" id="cache"> + <option <?php if ( !$this->options['tools']['cache']['active'] ) { ?>selected="selected"<?php } ?> value="0"><?php _e("Never cache", 'wordpress-popular-posts'); ?></option> + <option <?php if ( $this->options['tools']['cache']['active'] ) { ?>selected="selected"<?php } ?> value="1"><?php _e("Enable caching", 'wordpress-popular-posts'); ?></option> + </select> + + <br /> + <p class="description"><?php _e("Sets WPP's cache expiration time. WPP can cache the popular list for a specified amount of time. Recommended for large / high traffic sites", 'wordpress-popular-posts'); ?>.</p> + </td> + </tr> + <tr valign="top" <?php if ( !$this->options['tools']['cache']['active'] ) { ?>style="display:none;"<?php } ?> id="cache_refresh_interval"> + <th scope="row"><label for="cache_interval_value"><?php _e("Refresh cache every", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <input name="cache_interval_value" type="text" id="cache_interval_value" value="<?php echo ( isset($this->options['tools']['cache']['interval']['value']) ) ? (int) $this->options['tools']['cache']['interval']['value'] : 1; ?>" class="small-text"> + <select name="cache_interval_time" id="cache_interval_time"> + <option <?php if ($this->options['tools']['cache']['interval']['time'] == "minute") {?>selected="selected"<?php } ?> value="minute"><?php _e("Minute(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['cache']['interval']['time'] == "hour") {?>selected="selected"<?php } ?> value="hour"><?php _e("Hour(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['cache']['interval']['time'] == "day") {?>selected="selected"<?php } ?> value="day"><?php _e("Day(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['cache']['interval']['time'] == "week") {?>selected="selected"<?php } ?> value="week"><?php _e("Week(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['cache']['interval']['time'] == "month") {?>selected="selected"<?php } ?> value="month"><?php _e("Month(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($this->options['tools']['cache']['interval']['time'] == "year") {?>selected="selected"<?php } ?> value="month"><?php _e("Year(s)", 'wordpress-popular-posts'); ?></option> + </select> + <br /> + <p class="description" style="display:none;" id="cache_too_long"><?php _e("Really? That long?", 'wordpress-popular-posts'); ?></p> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="sampling"><?php _e("Data Sampling", 'wordpress-popular-posts'); ?>:</label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/7.-Performance#data-sampling" target="_blank" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>">?</a>]</small></th> + <td> + <select name="sampling" id="sampling"> + <option <?php if ( !$this->options['tools']['sampling']['active'] ) { ?>selected="selected"<?php } ?> value="0"><?php _e("Disabled", 'wordpress-popular-posts'); ?></option> + <option <?php if ( $this->options['tools']['sampling']['active'] ) { ?>selected="selected"<?php } ?> value="1"><?php _e("Enabled", 'wordpress-popular-posts'); ?></option> + </select> + + <br /> + <p class="description"><?php echo sprintf( __('By default, WordPress Popular Posts stores in database every single visit your site receives. For small / medium sites this is generally OK, but on large / high traffic sites the constant writing to the database may have an impact on performance. With <a href="%1$s" target="_blank">data sampling</a>, WordPress Popular Posts will store only a subset of your traffic and report on the tendencies detected in that sample set (for more, <a href="%2$s" target="_blank">please read here</a>)', 'wordpress-popular-posts'), 'http://en.wikipedia.org/wiki/Sample_%28statistics%29', 'https://github.com/cabrerahector/wordpress-popular-posts/wiki/7.-Performance#data-sampling' ); ?>.</p> + </td> + </tr> + <tr valign="top" <?php if ( !$this->options['tools']['sampling']['active'] ) { ?>style="display:none;"<?php } ?>> + <th scope="row"><label for="sample_rate"><?php _e("Sample Rate", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <input name="sample_rate" type="text" id="sample_rate" value="<?php echo ( isset($this->options['tools']['sampling']['rate']) ) ? (int) $this->options['tools']['sampling']['rate'] : 100; ?>" class="small-text"> + <br /> + <p class="description"><?php echo sprintf( __("A sampling rate of %d is recommended for large / high traffic sites. For lower traffic sites, you should lower the value", 'wordpress-popular-posts'), WPP_Settings::$defaults['admin_options']['tools']['sampling']['rate'] ); ?>.</p> + </td> + </tr> + <tr valign="top"> + <td colspan="2"> + <input type="hidden" name="section" value="data" /> + <input type="submit" class="button-secondary action" id="btn_ajax_ops" value="<?php _e("Apply", 'wordpress-popular-posts'); ?>" name="" /> + </td> + </tr> + </tbody> + </table> + + <?php wp_nonce_field( 'wpp-update-data-options', 'wpp-admin-token' ); ?> + </form> + <br /> + <p style="display:block; float:none; clear:both"> </p> + + <h3 class="wmpp-subtitle"><?php _e("Miscellaneous", 'wordpress-popular-posts'); ?></h3> + <form action="" method="post" id="wpp_link_options" name="wpp_link_options"> + <table class="form-table"> + <tbody> + <tr valign="top"> + <th scope="row"><label for="link_target"><?php _e("Open links in", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="link_target" id="link_target"> + <option <?php if ( $this->options['tools']['link']['target'] == '_self' ) {?>selected="selected"<?php } ?> value="_self"><?php _e("Current window", 'wordpress-popular-posts'); ?></option> + <option <?php if ( $this->options['tools']['link']['target'] == '_blank' ) {?>selected="selected"<?php } ?> value="_blank"><?php _e("New tab/window", 'wordpress-popular-posts'); ?></option> + </select> + <br /> + </td> + </tr> + <tr valign="top"> + <th scope="row"><label for="css"><?php _e("Use plugin's stylesheet", 'wordpress-popular-posts'); ?>:</label></th> + <td> + <select name="css" id="css"> + <option <?php if ($this->options['tools']['css']) {?>selected="selected"<?php } ?> value="1"><?php _e("Enabled", 'wordpress-popular-posts'); ?></option> + <option <?php if (!$this->options['tools']['css']) {?>selected="selected"<?php } ?> value="0"><?php _e("Disabled", 'wordpress-popular-posts'); ?></option> + </select> + <br /> + <p class="description"><?php _e("By default, the plugin includes a stylesheet called wpp.css which you can use to style your popular posts listing. If you wish to use your own stylesheet or do not want it to have it included in the header section of your site, use this.", 'wordpress-popular-posts'); ?></p> + </td> + </tr> + <tr valign="top"> + <td colspan="2"> + <input type="hidden" name="section" value="misc" /> + <input type="submit" class="button-secondary action" value="<?php _e("Apply", 'wordpress-popular-posts'); ?>" name="" /> + </td> + </tr> + </tbody> + </table> + + <?php wp_nonce_field( 'wpp-update-misc-options', 'wpp-admin-token' ); ?> + </form> + <br /> + <p style="display:block; float:none; clear:both"> </p> + + <br /><br /> + + <p><?php _e('WordPress Popular Posts maintains data in two separate tables: one for storing the most popular entries on a daily basis (from now on, "cache"), and another one to keep the All-time data (from now on, "historical data" or just "data"). If for some reason you need to clear the cache table, or even both historical and cache tables, please use the buttons below to do so.', 'wordpress-popular-posts') ?></p> + <p><input type="button" name="wpp-reset-cache" id="wpp-reset-cache" class="button-secondary" value="<?php _e("Empty cache", 'wordpress-popular-posts'); ?>" onclick="confirm_reset_cache()" /> <label for="wpp-reset-cache"><small><?php _e('Use this button to manually clear entries from WPP cache only', 'wordpress-popular-posts'); ?></small></label></p> + <p><input type="button" name="wpp-reset-all" id="wpp-reset-all" class="button-secondary" value="<?php _e("Clear all data", 'wordpress-popular-posts'); ?>" onclick="confirm_reset_all()" /> <label for="wpp-reset-all"><small><?php _e('Use this button to manually clear entries from all WPP data tables', 'wordpress-popular-posts'); ?></small></label></p> + </div> + <!-- End tools --> + + <!-- Start params --> + <div id="wpp_params" <?php echo ( "params" == $current ) ? '' : ' style="display: none;"'; ?>> + <div> + <p><?php printf( __('With the following parameters you can customize the popular posts list when using either the <a href="%1$s">wpp_get_mostpopular() template tag</a> or the <a href="%2$s">[wpp] shortcode</a>.', 'wordpress-popular-posts'), + 'https://github.com/cabrerahector/wordpress-popular-posts/wiki/2.-Template-tags#wpp_get_mostpopular', + 'https://github.com/cabrerahector/wordpress-popular-posts/wiki/1.-Using-WPP-on-posts-&-pages' + ); ?></p> + <br /> + <table cellspacing="0" class="wp-list-table widefat fixed posts"> + <thead> + <tr> + <th class="manage-column column-title"><?php _e('Parameter', 'wordpress-popular-posts'); ?></th> + <th class="manage-column column-title"><?php _e('What it does ', 'wordpress-popular-posts'); ?></th> + <th class="manage-column column-title"><?php _e('Possible values', 'wordpress-popular-posts'); ?></th> + <th class="manage-column column-title"><?php _e('Defaults to', 'wordpress-popular-posts'); ?></th> + <th class="manage-column column-title"><?php _e('Example', 'wordpress-popular-posts'); ?></th> + </tr> + </thead> + <tbody> + <tr> + <td><strong>header</strong></td> + <td><?php _e('Sets a heading for the list', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><?php _e('None', 'wordpress-popular-posts'); ?></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'header' => 'Popular Posts'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp header='Popular Posts']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>header_start</strong></td> + <td><?php _e('Set the opening tag for the heading of the list', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><h2></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'header' => 'Popular Posts', <br /> 'header_start' => '<h3 class="title">',<br /> 'header_end' => '</h3>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp header='Popular Posts' header_start='<h3 class="title">' header_end='</h3>']<br /><br /></td> + </tr> + <tr> + <td><strong>header_end</strong></td> + <td><?php _e('Set the closing tag for the heading of the list', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td></h2></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'header' => 'Popular Posts', <br /> 'header_start' => '<h3 class="title">',<br /> 'header_end' => '</h3>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp header='Popular Posts' header_start='<h3 class="title">' header_end='</h3>']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>limit</strong></td> + <td><?php _e('Sets the maximum number of popular posts to be shown on the listing', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Positive integer', 'wordpress-popular-posts'); ?></td> + <td>10</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'limit' => 5<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp limit=5]<br /><br /></td> + </tr> + <tr> + <td><strong>range</strong></td> + <td><?php _e('Tells WordPress Popular Posts to retrieve the most popular entries within the time range specified by you', 'wordpress-popular-posts'); ?></td> + <td>"last24hours", "last7days", "last30days", "all", "custom"</td> + <td>last24hours</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'range' => 'last7days'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp range='last7days']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>time_quantity</strong></td> + <td><?php _e('Especifies the number of time units of the custom time range', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Positive integer', 'wordpress-popular-posts'); ?></td> + <td>24</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'range' => 'custom',<br /> 'time_quantity' => 1,<br /> 'time_unit' => 'hour'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp range='custom' time_quantity=1 time_unit='hour']<br /><br /></td> + </tr> + <tr> + <td><strong>time_unit</strong></td> + <td><?php _e('Especifies the time unit of the custom time range', 'wordpress-popular-posts'); ?></td> + <td>minute, hour, day, week, month</td> + <td>hour</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'range' => 'custom',<br /> 'time_quantity' => 1,<br /> 'time_unit' => 'hour'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp range='custom' time_quantity=1 time_unit='hour']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>freshness</strong></td> + <td><?php _e('Tells WordPress Popular Posts to retrieve the most popular entries published within the time range specified by you', 'wordpress-popular-posts'); ?></td> + <td>1 (true), 0 (false)</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'range' => 'weekly',<br /> 'freshness' => 1<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp range='last7days' freshness=1]<br /><br /></td> + </tr> + <tr> + <td><strong>order_by</strong></td> + <td><?php _e('Sets the sorting option of the popular posts', 'wordpress-popular-posts'); ?></td> + <td>"comments", "views", "avg" <?php _e('(for average views per day)', 'wordpress-popular-posts'); ?></td> + <td>views</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'order_by' => 'comments'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp order_by='comments']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>post_type</strong></td> + <td><?php _e('Defines the type of posts to show on the listing', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td>post,page</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'post_type' => 'post,page,your-custom-post-type'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp post_type='post,page,your-custom-post-type']<br /><br /></td> + </tr> + <tr> + <td><strong>pid</strong></td> + <td><?php _e('If set, WordPress Popular Posts will exclude the specified post(s) ID(s) form the listing.', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><?php _e('None', 'wordpress-popular-posts'); ?></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'pid' => '60,25,31'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp pid='60,25,31']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>cat</strong></td> + <td><?php _e('If set, WordPress Popular Posts will retrieve all entries that belong to the specified category ID(s). If a minus sign is used, entries associated to the category will be excluded instead.', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><?php _e('None', 'wordpress-popular-posts'); ?></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'cat' => '1,55,-74'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp cat='1,55,-74']<br /><br /></td> + </tr> + <tr> + <td><strong>taxonomy</strong></td> + <td><?php _e('If set, WordPress Popular Posts will filter posts by a given taxonomy.', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><?php _e('None', 'wordpress-popular-posts'); ?></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'taxonomy' => 'post_tag',<br /> 'term_id' => '118,75,15'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp taxonomy='post_tag' term_id='118,75,15']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>term_id</strong></td> + <td><?php _e('If set, WordPress Popular Posts will retrieve all entries that belong to the specified term ID(s). If a minus sign is used, entries associated to the term(s) will be excluded instead.', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><?php _e('None', 'wordpress-popular-posts'); ?></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'taxonomy' => 'post_tag',<br /> 'term_id' => '118,75,15'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp taxonomy='post_tag' term_id='118,75,15']<br /><br /></td> + </tr> + <tr> + <td><strong>author</strong></td> + <td><?php _e('If set, WordPress Popular Posts will retrieve all entries created by specified author(s) ID(s).', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><?php _e('None', 'wordpress-popular-posts'); ?></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'author' => '75,8,120'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp author='75,8,120']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>title_length</strong></td> + <td><?php _e('If set, WordPress Popular Posts will shorten each post title to "n" characters whenever possible', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Positive integer', 'wordpress-popular-posts'); ?></td> + <td>25</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'title_length' => 25<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp title_length=25]<br /><br /></td> + </tr> + <tr> + <td><strong>title_by_words</strong></td> + <td><?php _e('If set to 1, WordPress Popular Posts will shorten each post title to "n" words instead of characters', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'title_by_words' => 1,<br /> 'title_length' => 25<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp title_by_words=1 title_length=25]<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>excerpt_length</strong></td> + <td><?php _e('If set, WordPress Popular Posts will build and include an excerpt of "n" characters long from the content of each post listed as popular', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Positive integer', 'wordpress-popular-posts'); ?></td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'excerpt_length' => 55,<br /> 'post_html' => '<li>{thumb} {title} <span class="wpp-excerpt">{summary}</span></li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp excerpt_length=25 post_html='<li>{thumb} {title} <span class="wpp-excerpt">{summary}</span></li>']<br /><br /></td> + </tr> + <tr> + <td><strong>excerpt_format</strong></td> + <td><?php _e('If set, WordPress Popular Posts will maintaing all styling tags (strong, italic, etc) and hyperlinks found in the excerpt', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'excerpt_format' => 1,<br /> 'excerpt_length' => 55,<br /> 'post_html' => '<li>{thumb} {title} <span class="wpp-excerpt">{summary}</span></li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp excerpt_format=1 excerpt_length=25 post_html='<li>{thumb} {title} <span class="wpp-excerpt">{summary}</span></li>']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>excerpt_by_words</strong></td> + <td><?php _e('If set to 1, WordPress Popular Posts will shorten the excerpt to "n" words instead of characters', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'excerpt_by_words' => 1,<br /> 'excerpt_length' => 55,<br /> 'post_html' => '<li>{thumb} {title} <span class="wpp-excerpt">{summary}</span></li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp excerpt_by_words=1 excerpt_length=55 post_html='<li>{thumb} {title} <span class="wpp-excerpt">{summary}</span></li>']<br /><br /></td> + </tr> + <tr> + <td><strong>thumbnail_width</strong></td> + <td><?php _e('If set, and if your current server configuration allows it, you will be able to display thumbnails of your posts. This attribute sets the width for thumbnails', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Positive integer', 'wordpress-popular-posts'); ?></td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'thumbnail_width' => 30,<br /> 'thumbnail_height' => 30<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp thumbnail_width=30 thumbnail_height=30]<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>thumbnail_height</strong></td> + <td><?php _e('If set, and if your current server configuration allows it, you will be able to display thumbnails of your posts. This attribute sets the height for thumbnails', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Positive integer', 'wordpress-popular-posts'); ?></td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'thumbnail_width' => 30,<br /> 'thumbnail_height' => 30<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp thumbnail_width=30 thumbnail_height=30]<br /><br /></td> + </tr> + <tr> + <td><strong>rating</strong></td> + <td><?php _e('If set, and if the WP-PostRatings plugin is installed and enabled on your blog, WordPress Popular Posts will show how your visitors are rating your entries', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'rating' => 1,<br /> 'post_html' => '<li>{thumb} {title} {rating}</li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp rating=1 post_html='<li>{thumb} {title} {rating}</li>']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>stats_comments</strong></td> + <td><?php _e('If set, WordPress Popular Posts will show how many comments each popular post has got during the specified time range', 'wordpress-popular-posts'); ?></td> + <td>1 (true), 0 (false)</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_comments' => 1<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_comments=1]<br /><br /></td> + </tr> + <tr> + <td><strong>stats_views</strong></td> + <td><?php _e('If set, WordPress Popular Posts will show how many views each popular post has got during the specified time range', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>1</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_views' => 0<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_views=0]<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>stats_author</strong></td> + <td><?php _e('If set, WordPress Popular Posts will show who published each popular post on the list', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_author' => 1<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_author=1]<br /><br /></td> + </tr> + <tr> + <td><strong>stats_date</strong></td> + <td><?php _e('If set, WordPress Popular Posts will display the date when each popular post on the list was published', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_date' => 1<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_date=1]<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>stats_date_format</strong></td> + <td><?php _e('Sets the date format', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_date' => 1,<br /> 'stats_date_format' => 'F j, Y'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_date=1 stats_date_format='F j, Y']<br /><br /></td> + </tr> + <tr> + <td><strong>stats_category</strong></td> + <td><?php _e('If set, WordPress Popular Posts will display the categories associated to each entry', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_category' => 1, <br /> 'post_html' => '<li>{thumb} <a href="{url}">{text_title}</a> {category}</li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_taxonomy=1 post_html='<li>{thumb} <a href="{url}">{text_title}</a> {category}</li>']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>stats_taxonomy</strong></td> + <td><?php _e('If set, WordPress Popular Posts will display the taxonomies associated to each entry', 'wordpress-popular-posts'); ?></td> + <td>1 (true), (0) false</td> + <td>0</td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'stats_taxonomy' => 1, <br /> 'post_html' => '<li>{thumb} <a href="{url}">{text_title}</a> {taxonomy}</li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp stats_taxonomy=1 post_html='<li>{thumb} <a href="{url}">{text_title}</a> {taxonomy}</li>']<br /><br /></td> + </tr> + <tr> + <td><strong>wpp_start</strong></td> + <td><?php _e('Sets the opening tag for the listing', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td><ul></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'wpp_start' => '<ol>',<br /> 'wpp_end' => '</ol>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp wpp_start='<ol>' wpp_end='</ol>']<br /><br /></td> + </tr> + <tr class="alternate"> + <td><strong>wpp_end</strong></td> + <td><?php _e('Sets the closing tag for the listing', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string', 'wordpress-popular-posts'); ?></td> + <td></ul></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'wpp_start' => '<ol>',<br /> 'wpp_end' => '</ol>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp wpp_start='<ol>' wpp_end='</ol>']<br /><br /></td> + </tr> + <tr> + <td><strong>post_html</strong></td> + <td><?php _e('Sets the HTML structure of each post', 'wordpress-popular-posts'); ?></td> + <td><?php _e('Text string, custom HTML', 'wordpress-popular-posts'); ?>.<br /><br /><strong><?php _e('Available Content Tags', 'wordpress-popular-posts'); ?>:</strong> <br /><br /><em>{thumb}</em> (<?php _e('displays thumbnail linked to post/page, requires thumbnail_width & thumbnail_height', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{thumb_img}</em> (<?php _e('displays thumbnail image without linking to post/page, requires thumbnail_width & thumbnail_height', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{thumb_url}</em> (<?php _e('displays thumbnail url, requires thumbnail_width & thumbnail_height', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{title}</em> (<?php _e('displays linked post/page title', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{summary}</em> (<?php _e('displays post/page excerpt, and requires excerpt_length to be greater than 0', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{stats}</em> (<?php _e('displays the default stats tags', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{rating}</em> (<?php _e('displays post/page current rating, requires WP-PostRatings installed and enabled', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{score}</em> (<?php _e('displays post/page current rating as an integer, requires WP-PostRatings installed and enabled', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{url}</em> (<?php _e('outputs the URL of the post/page', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{text_title}</em> (<?php _e('displays post/page title, no link', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{author}</em> (<?php _e('displays linked author name, requires stats_author=1', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{category}</em> (<?php _e('displays linked category name, requires stats_category=1', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{taxonomy}</em> (<?php _e('displays linked taxonomy names, requires stats_taxonomy=1', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{views}</em> (<?php _e('displays views count only, no text', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{comments}</em> (<?php _e('displays comments count only, no text, requires stats_comments=1', 'wordpress-popular-posts'); ?>)<br /><br /> <em>{date}</em> (<?php _e('displays post/page date, requires stats_date=1', 'wordpress-popular-posts'); ?>)</td> + <td><li>{thumb} {title} <span class="wpp-meta post-stats">{stats}</span></li></td> + <td><strong><?php _e('With wpp_get_mostpopular():', 'wordpress-popular-posts'); ?></strong><br /><br /><?php<br />$args = array(<br /> 'post_html' => '<li>{thumb} <a href="{url}">{text_title}</a></li>'<br />);<br /><br />wpp_get_mostpopular( $args );<br />?><br /><br /><hr /><br /><strong><?php _e('With the [wpp] shortcode:', 'wordpress-popular-posts'); ?></strong><br /><br />[wpp post_html='<li>{thumb} <a href="{url}">{text_title}</a></li>']<br /><br /></td> + </tr> + </tbody> + </table> + </div> + </div> + <!-- End params --> + +</div> \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/admin/partials/index.php b/wp-content/plugins/wordpress-popular-posts/admin/partials/index.php new file mode 100644 index 0000000000000000000000000000000000000000..a0cf42a0a344342a3a3fd6ba524a11ea39de9f08 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/admin/partials/index.php @@ -0,0 +1,2 @@ +<?php +// Silence is golden diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-activator.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-activator.php new file mode 100644 index 0000000000000000000000000000000000000000..b6b3d5e8a16432ecc5f64e201637680c032c1c14 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-activator.php @@ -0,0 +1,134 @@ +<?php + +/** + * Fired during plugin activation + * + * @link http://cabrerahector.com + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ + +/** + * Fired during plugin activation. + * + * This class defines all code necessary to run during the plugin's activation. + * + * @since 4.0.0 + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + * @author Hector Cabrera <me@cabrerahector.com> + */ +class WPP_Activator { + + /** + * Fired when the plugin is activated. + * + * @since 1.0.0 + * @param bool $network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog. + */ + public static function activate( $network_wide ) { + + global $wpdb; + + if ( function_exists( 'is_multisite' ) && is_multisite() ) { + + // run activation for each blog in the network + if ( $network_wide ) { + + $original_blog_id = get_current_blog_id(); + $blogs_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); + + foreach( $blogs_ids as $blog_id ) { + switch_to_blog( $blog_id ); + self::plugin_activate(); + } + + // switch back to current blog + switch_to_blog( $original_blog_id ); + + return; + + } + + } + + self::plugin_activate(); + + } // end activate + + /** + * When a new MU site is added, generate its WPP DB tables. + * + * @since 4.0.0 + */ + public static function track_new_site() { + self::plugin_activate(); + } // end track_new_site + + /** + * On plugin activation, checks that the WPP database tables are present. + * + * @since 2.4.0 + * @global object wpdb + */ + private static function plugin_activate() { + + global $wpdb; + + // set table name + $prefix = $wpdb->prefix . "popularposts"; + + // fresh setup + if ( $prefix != $wpdb->get_var("SHOW TABLES LIKE '{$prefix}data'") ) { + self::do_db_tables( $prefix ); + } + + } // end plugin_activate + + /** + * Creates/updates the WPP database tables. + * + * @since 2.4.0 + * @global object wpdb + */ + private static function do_db_tables( $prefix ) { + + global $wpdb; + + $charset_collate = ""; + + if ( !empty( $wpdb->charset ) ) + $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset} "; + + if ( !empty( $wpdb->collate ) ) + $charset_collate .= "COLLATE {$wpdb->collate}"; + + $sql = " + CREATE TABLE {$prefix}data ( + postid bigint(20) NOT NULL, + day datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + last_viewed datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + pageviews bigint(20) DEFAULT 1, + PRIMARY KEY (postid) + ) {$charset_collate} ENGINE=InnoDB; + CREATE TABLE {$prefix}summary ( + ID bigint(20) NOT NULL AUTO_INCREMENT, + postid bigint(20) NOT NULL, + pageviews bigint(20) NOT NULL DEFAULT 1, + view_date date NOT NULL DEFAULT '0000-00-00', + last_viewed datetime NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (ID), + UNIQUE KEY ID_date (postid,view_date), + KEY postid (postid), + KEY view_date (view_date), + KEY last_viewed (last_viewed) + ) {$charset_collate} ENGINE=InnoDB;"; + + require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); + dbDelta( $sql ); + + } // end do_db_tables + +} // end WPP_Activator class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-deactivator.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-deactivator.php new file mode 100644 index 0000000000000000000000000000000000000000..d5c29498b8faf9435b1505427f61532dcd428e77 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-deactivator.php @@ -0,0 +1,74 @@ +<?php + +/** + * Fired during plugin deactivation + * + * @link http://cabrerahector.com + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ + +/** + * Fired during plugin deactivation. + * + * This class defines all code necessary to run during the plugin's deactivation. + * + * @since 4.0.0 + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + * @author Hector Cabrera <me@cabrerahector.com> + */ +class WPP_Deactivator { + + /** + * Fired when the plugin is deactivated. + * + * @since 1.0.0 + * @global object wpbd + * @param bool network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog + */ + public static function deactivate( $network_wide ) { + + global $wpdb; + + if ( function_exists( 'is_multisite' ) && is_multisite() ) { + + // Run deactivation for each blog in the network + if ( $network_wide ) { + + $original_blog_id = get_current_blog_id(); + $blogs_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); + + foreach( $blogs_ids as $blog_id ) { + switch_to_blog( $blog_id ); + self::plugin_deactivate(); + } + + // Switch back to current blog + switch_to_blog( $original_blog_id ); + + return; + + } + + } + + self::plugin_deactivate(); + + } // end deactivate + + /** + * On plugin deactivation, disables the shortcode and removes the scheduled task. + * + * @since 2.4.0 + */ + private static function plugin_deactivate() { + + remove_shortcode( 'wpp' ); + wp_clear_scheduled_hook( 'wpp_cache_event' ); + + } // end plugin_deactivate + +} // end WPP_Activator class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-helper.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-helper.php new file mode 100644 index 0000000000000000000000000000000000000000..1ba105e3276cb43d2773e62557059fa4c985b29d --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-helper.php @@ -0,0 +1,214 @@ +<?php + +class WPP_Helper { + + /** + * Checks for valid number. + * + * @since 2.1.6 + * @param int number + * @return bool + */ + public static function is_number( $number ){ + return !empty($number) && is_numeric($number) && (intval($number) == floatval($number)); + } + + /** + * Checks for valid date. + * + * @since 4.0.0 + * @param string $date + * @param string $format + * @return bool + */ + public static function is_valid_date( $date = null, $format = 'Y-m-d' ){ + $d = DateTime::createFromFormat( $format, $date ); + return $d && $d->format($format) === $date; + } + + /** + * Returns an array of dates between two dates. + * + * @since 4.0.0 + * @param string $start_date + * @param string $end_date + * @param string $format + * @return array|bool + */ + public static function get_date_range( $start_date = null, $end_date = null, $format = 'Y-m-d' ) { + + if ( + self::is_valid_date( $start_date ) + && self::is_valid_date( $end_date ) + ) { + + $dates = array(); + + $begin = new DateTime( $start_date ); + $end = new DateTime( $end_date ); + + if ( $begin < $end ) { + while( $begin <= $end ) { + $dates[] = $begin->format( $format ); + $begin->modify('+1 day'); + } + } + else { + while( $begin >= $end ) { + $dates[] = $begin->format( $format ); + $begin->modify('-1 day'); + } + } + + return $dates; + + } + + return false; + + } + + /** + * Returns server date. + * + * @since 2.1.6 + * @access private + * @return string + */ + public static function curdate() { + return gmdate( 'Y-m-d', ( time() + ( get_site_option( 'gmt_offset' ) * 3600 ) ) ); + } + + /** + * Returns mysql datetime. + * + * @since 2.1.6 + * @access private + * @return string + */ + public static function now() { + return current_time( 'mysql' ); + } + + /** + * Returns time. + * + * @since 2.3.0 + * @return string + */ + public static function microtime_float() { + + list( $msec, $sec ) = explode( ' ', microtime() ); + + return (float) $msec + (float) $sec; + + } + + /** + * Merges two associative arrays recursively. + * + * @since 2.3.4 + * @link http://www.php.net/manual/en/function.array-merge-recursive.php#92195 + * @param array array1 + * @param array array2 + * @return array + */ + public static function merge_array_r( array $array1, array $array2 ) { + + $merged = $array1; + + foreach ( $array2 as $key => &$value ) { + + if ( is_array( $value ) && isset ( $merged[$key] ) && is_array( $merged[$key] ) ) { + $merged[$key] = self::merge_array_r( $merged[$key], $value ); + } else { + $merged[$key] = $value; + } + } + + return $merged; + + } + + /** + * Debug function. + * + * @since 3.0.0 + * @param mixed $v variable to display with var_dump() + * @param mixed $v,... unlimited optional number of variables to display with var_dump() + */ + public static function debug( $v ) { + + if ( !defined('WPP_DEBUG') || !WPP_DEBUG ) + return; + + foreach ( func_get_args() as $arg ) { + + print "<pre>"; + var_dump($arg); + print "</pre>"; + + } + + } + + /** + * Truncates text. + * + * @since 4.0.0 + * @param string $text + * @param int $length + * @param bool $truncate_by_words + * @return string + */ + public static function truncate( $text = '', $length = 25, $truncate_by_words = false ) { + + if ( '' !== $text ) { + + // Truncate by words + if ( $truncate_by_words ) { + + $words = explode( " ", $text, $length + 1 ); + + if ( count($words) > $length ) { + array_pop( $words ); + $text = rtrim( implode(" ", $words), ",." ) . " ..."; + } + + } + // Truncate by characters + elseif ( strlen($text) > $length ) { + $text = rtrim( mb_substr($text, 0, $length , get_bloginfo('charset')), " ,." ) . "..."; + } + + } + + return $text; + + } + + /** + * Gets post/page ID if current page is singular + * + * @since 3.1.2 + */ + public static function is_single() { + + $trackable = array(); + $registered_post_types = get_post_types( array('public' => true), 'names' ); + + foreach ( $registered_post_types as $post_type ) { + $trackable[] = $post_type; + } + + $trackable = apply_filters( 'wpp_trackable_post_types', $trackable ); + + if ( is_singular( $trackable ) && !is_front_page() && !is_preview() && !is_trackback() && !is_feed() && !is_robots() && !is_customize_preview() ) { + return get_queried_object_id(); + } + + return false; + + } + +} // End WPP_Helper class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-i18n.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-i18n.php new file mode 100644 index 0000000000000000000000000000000000000000..c03a0ca73d1c5130841f943c3296a6029c5200d4 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-i18n.php @@ -0,0 +1,42 @@ +<?php + +/** + * Define the internationalization functionality + * + * Loads and defines the internationalization files for this plugin + * so that it is ready for translation. + * + * @link http://cabrerahector.com + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ +/** + * Define the internationalization functionality. + * + * Loads and defines the internationalization files for this plugin + * so that it is ready for translation. + * + * @since 4.0.0 + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + * @author Hector Cabrera <me@cabrerahector.com> + */ + +class WPP_i18n { + + /** + * Load the plugin text domain for translation. + * + * @since 1.0.0 + */ + public function load_plugin_textdomain() { + + $locale = apply_filters( 'plugin_locale', get_locale(), 'wordpress-popular-posts' ); + load_textdomain( 'wordpress-popular-posts', WP_LANG_DIR . '/' . 'wordpress-popular-posts' . '/' . 'wordpress-popular-posts' . '-' . $locale . '.mo' ); + load_plugin_textdomain( 'wordpress-popular-posts', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' ); + + } + +} // End WPP_i18n class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-image.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-image.php new file mode 100644 index 0000000000000000000000000000000000000000..0f9d1ea4a0e722086971fd98f6a92a222fc515db --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-image.php @@ -0,0 +1,521 @@ +<?php + +class WPP_Image { + + /** + * The array of actions registered with WordPress. + * + * @since 4.0.0 + * @access private + * @var object|WPP_Image + */ + private static $instance; + + /** + * The array of actions registered with WordPress. + * + * @since 4.0.0 + * @access private + * @var bool $can_create_thumbnails Checks if WPP is able to build thumbnails. + */ + private $can_create_thumbnails; + + /** + * Default thumbnail. + * + * @since 2.2.0 + * @var string + */ + private $default_thumbnail = ''; + + /** + * Plugin uploads directory. + * + * @since 3.0.4 + * @var array + */ + private $uploads_dir = array(); + + /** + * Initialize the collections used to maintain the actions and filters. + * + * @since 4.0.0 + * @access private + */ + private function __construct() { + + // Check if WPP can create images + $this->can_create_thumbnails = ( extension_loaded('ImageMagick') || extension_loaded('imagick') || (extension_loaded('GD') && function_exists('gd_info')) ); + + if ( $this->can_create_thumbnails ) { + + // Set default thumbnail + $this->default_thumbnail = $this->get_plugin_dir_url() . "public/images/no_thumb.jpg"; + + // Set uploads folder + $wp_upload_dir = ( function_exists('wp_get_upload_dir') ) ? wp_get_upload_dir() : wp_upload_dir(); // wp_get_upload_dir() was introduced in WP 4.5! + $this->uploads_dir['basedir'] = $wp_upload_dir['basedir'] . "/" . 'wordpress-popular-posts'; + $this->uploads_dir['baseurl'] = $wp_upload_dir['baseurl'] . "/" . 'wordpress-popular-posts'; + + if ( !is_dir($this->uploads_dir['basedir']) ) { + if ( !wp_mkdir_p($this->uploads_dir['basedir']) ) { + $this->uploads_dir['basedir'] = $wp_upload_dir['basedir']; + $this->uploads_dir['baseurl'] = $wp_upload_dir['baseurl']; + } + } + + } + + } + + /** + * Get an instance of this class. + * + * @since 4.0.0 + * @return object|\WPP_Image + */ + public static function get_instance() { + + if ( is_null(self::$instance) ) { + self::$instance = new WPP_Image(); + } + + return self::$instance; + + } + + /** + * Tells whether WPP can create thumbnails or not. + * + * @since 4.0.0 + * @access public + * @return bool + */ + public function can_create_thumbnails() { + return $this->can_create_thumbnails; + } + + public function get_plugin_dir() { + return WP_PLUGIN_DIR . '/wordpress-popular-posts/'; + } + + public function get_plugin_dir_url() { + return plugins_url() . '/wordpress-popular-posts/'; + } + + /** + * Get WPP's uploads folder. + * + * @since 4.0.0 + * @access public + * @return array|bool + */ + public function get_plugin_uploads_dir() { + + if ( is_array($this->uploads_dir) && !empty($this->uploads_dir) ) + return $this->uploads_dir; + + return false; + + } + + /** + * Retrieves / creates the post thumbnail. + * + * @since 2.3.3 + * @param object $post_object Post object (must contain, at least, the properties id and title) + * @param string $url Image URL + * @param array $size Thumbnail's width and height + * @param array $crop Image cropping + * @param string $source Image source + * @return string + */ + public function get_img( $post_object = null, $url = null, $size = array(80, 80), $crop = true, $source = "featured" ) { + + // WPP cannot create thumbnails + if ( !$this->can_create_thumbnails ) + return ''; + + if ( + ( false === $post_object instanceof stdClass || !isset($post_object->id) ) + && !filter_var( $url, FILTER_VALIDATE_URL ) + ) { + return $this->render_image( $this->default_thumbnail, $size, 'wpp-thumbnail wpp_def_no_src wpp_' . $source, $post_object ); + } + + // Get image by post ID (parent) + if ( + isset( $post_object->id ) + && !$url + ) { + $file_path = $this->get_image_file_paths( $post_object->id, $source ); + + // No images found, return default thumbnail + if ( !$file_path ) { + return $this->render_image( $this->default_thumbnail, $size, 'wpp-thumbnail wpp_def_noPath wpp_' . $source, $post_object ); + } + } + // Get image from URL + else { + // sanitize URL, just in case + $image_url = esc_url( $url ); + // remove querystring + preg_match( '/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $image_url, $matches ); + $image_url = $matches[0]; + + $attachment_id = $this->get_attachment_id( $image_url ); + + // Image is hosted locally + if ( $attachment_id ) { + $file_path = get_attached_file( $attachment_id ); + } + // Image is hosted outside WordPress + else { + $external_image = $this->fetch_external_image( $post_object->id, $image_url ); + + if ( !$external_image ) { + return $this->render_image( $this->default_thumbnail, $size, 'wpp-thumbnail wpp_def_noPath wpp_no_external', $post_object ); + } + + $file_path = $external_image; + } + } + + $extension = pathinfo( $file_path, PATHINFO_EXTENSION ); + + $image_meta = array( + 'filename' => $post_object->id . '-' . $source . '-' . $size[0] . 'x' . $size[1], + 'extension' => $extension, + 'width' => $size[0], + 'height' => $size[1], + 'alt' => esc_attr( wp_strip_all_tags( $post_object->title ) ), + 'crop' => $crop, + 'source' => $source, + 'parent_id' => $post_object->id + ); + + // there is a thumbnail already + if ( is_file( trailingslashit( $this->uploads_dir['basedir'] ) . $image_meta['filename'] . '.' . $image_meta['extension'] ) ) { + return $this->render_image( + trailingslashit( $this->uploads_dir['baseurl'] ) . $image_meta['filename'] . '.' . $image_meta['extension'], + $size, + 'wpp-thumbnail wpp_cached_thumb wpp_' . $source, + $post_object + ); + } + + return $this->image_resize( $file_path, $image_meta ); + + } // end get_img + + /** + * Resizes image. + * + * @since 3.0.0 + * @access private + * @param object $post_object Post object + * @param string $path Image path + * @param array $size Image's width and height + * @param string $source Image source + * @return string + */ + private function image_resize( $path, $image_meta ) { + + $image = wp_get_image_editor( $path ); + + // valid image, create thumbnail + if ( !is_wp_error($image) ) { + + $image->resize( $image_meta['width'], $image_meta['height'], $image_meta['crop'] ); + $new_img = $image->save( trailingslashit($this->uploads_dir['basedir']) . $image_meta['filename'] . '.' . $image_meta['extension'] ); + + if ( is_wp_error($new_img) ) { + return $this->render_image( $this->default_thumbnail, array( $image_meta['width'], $image_meta['height'] ), 'wpp-thumbnail wpp_imgeditor_error wpp_' . $image_meta['source'], null, $new_img->get_error_message() ); + } + + return $this->render_image( trailingslashit($this->uploads_dir['baseurl']) . $new_img['file'], array( $image_meta['width'], $image_meta['height'] ), 'wpp-thumbnail wpp_imgeditor_thumb wpp_' . $image_meta['source'], null ); + + } + + // ELSE + // image file path is invalid + return $this->render_image($this->default_thumbnail, $size, 'wpp-thumbnail wpp_imgeditor_error wpp_' . $image_meta['source'], null, $image->get_error_message()); + + } // end image_resize + + /** + * Get image absolute path / URL. + * + * @since 3.0.0 + * @access private + * @param int $id Post ID + * @param string $source Image source + * @return array + */ + private function get_image_file_paths( $id, $source ) { + + $file_path = ''; + + // get thumbnail path from the Featured Image + if ( "featured" == $source ) { + + if ( $thumbnail_id = get_post_thumbnail_id($id) ) { + // image path + return get_attached_file( $thumbnail_id ); + } + + } + // get thumbnail path from first image attachment + elseif ( "first_attachment" == $source ) { + + $args = array( + 'numberposts' => 1, + 'order' => 'ASC', + 'post_parent' => $id, + 'post_type' => 'attachment', + 'post_mime_type' => 'image' + ); + $post_attachments = get_children( $args ); + + if ( !empty($post_attachments) ) { + $first_img = array_shift( $post_attachments ); + return get_attached_file( $first_img->ID ); + } + + } + // get thumbnail path from post content + elseif ( "first_image" == $source ) { + + /** @var wpdb $wpdb */ + global $wpdb; + + if ( $content = $wpdb->get_var( "SELECT post_content FROM {$wpdb->posts} WHERE ID = {$id};" ) ) { + + // at least one image has been found + if ( preg_match( '/<img[^>]+>/i', $content, $img ) ) { + + // get img src attribute from the first image found + preg_match( '/(src)="([^"]*)"/i', $img[0], $src_attr ); + + if ( isset($src_attr[2]) && !empty($src_attr[2]) ) { + + // image from Media Library + if ( $attachment_id = $this->get_attachment_id( $src_attr[2] ) ) { + + $file_path = get_attached_file( $attachment_id ); + + // There's a file path, so return it + if ( !empty($file_path) ) { + return $file_path; + } + + } // external image? + else { + return $this->fetch_external_image( $id, $src_attr[2] ); + } + + } + + } + + } + + } + + return false; + + } // end get_image_file_paths + + /** + * Render image tag. + * + * @since 3.0.0 + * @access public + * @param string src Image URL + * @param array dimension Image's width and height + * @param string class CSS class + * @param object $post_object Post object (must contain, at least, the properties id and title) + * @param string error Error, if the image could not be created + * @return string + */ + public function render_image( $src, $size, $class, $post_object, $error = null ) { + + $img_tag = ''; + + if ( $error ) { + $img_tag = '<!-- ' . $error . ' --> '; + } + + $img_tag .= '<img src="' . ( is_ssl() ? str_ireplace( "http://", "https://", $src ) : $src ) . '" width="' . $size[0] . '" height="' . $size[1] . '" alt="' . ( ($post_object instanceof stdClass && !isset($post_object->id) ? esc_attr( wp_strip_all_tags($post_object->title) ) : '' ) ) . '" class="' . $class . '" />'; + + return apply_filters( 'wpp_render_image', $img_tag ); + + } // render_image + + /** + * Get the Attachment ID for a given image URL. + * + * @since 3.0.0 + * @access private + * @author Frankie Jarrett + * @link http://frankiejarrett.com/get-an-attachment-id-by-url-in-wordpress/ + * @param string $url + * @return bool|int + */ + private function get_attachment_id( $url ) { + + // Split the $url into two parts with the wp-content directory as the separator. + $parse_url = explode( parse_url( WP_CONTENT_URL, PHP_URL_PATH ), $url ); + + // Get the host of the current site and the host of the $url, ignoring www. + $this_host = str_ireplace( 'www.', '', parse_url( home_url(), PHP_URL_HOST ) ); + $file_host = str_ireplace( 'www.', '', parse_url( $url, PHP_URL_HOST ) ); + + // Return nothing if there aren't any $url parts or if the current host and $url host do not match. + if ( + !isset( $parse_url[1] ) + || empty( $parse_url[1] ) + || ( $this_host != $file_host ) + ) { + return false; + } + + // Now we're going to quickly search the DB for any attachment GUID with a partial path match. + // Example: /uploads/2013/05/test-image.jpg + global $wpdb; + + if ( !$attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parse_url[1] ) ) ) { + // Maybe it's a resized image, so try to get the full one + $parse_url[1] = preg_replace( '/-[0-9]{1,4}x[0-9]{1,4}\.(jpg|jpeg|png|gif|bmp)$/i', '.$1', $parse_url[1] ); + $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parse_url[1] ) ); + } + + // Returns null if no attachment is found. + return isset( $attachment[0] ) ? $attachment[0] : NULL; + + } // get_attachment_id + + /** + * Fetchs external images. + * + * @since 2.3.3 + * @access private + * @param int $id Post ID. + * @param string $url Image url. + * @return bool|int + */ + private function fetch_external_image( $id, $url ){ + + $full_image_path = trailingslashit( $this->uploads_dir['basedir'] ) . "{$id}_". sanitize_file_name( rawurldecode(wp_basename( $url )) ); + + // if the file exists already, return URL and path + if ( file_exists($full_image_path) ) + return $full_image_path; + + $accepted_status_codes = array( 200, 301, 302 ); + $response = wp_remote_head( $url, array( 'timeout' => 5, 'sslverify' => false ) ); + + if ( + !is_wp_error($response) + && in_array( wp_remote_retrieve_response_code($response), $accepted_status_codes ) + ) { + + require_once( ABSPATH . 'wp-admin/includes/file.php' ); + $url = str_replace( 'https://', 'http://', $url ); + $tmp = download_url( $url ); + + if ( !is_wp_error( $tmp ) ) { + + if ( function_exists('exif_imagetype') ) { + $image_type = exif_imagetype( $tmp ); + } else { + $image_type = getimagesize( $tmp ); + $image_type = ( isset($image_type[2]) ) ? $image_type[2] : NULL; + } + + if ( in_array($image_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) ) { + + // move file to Uploads + if ( @rename($tmp, $full_image_path) ) { + // borrowed from WP - set correct file permissions + $stat = stat( dirname( $full_image_path ) ); + $perms = $stat['mode'] & 0000644; + @chmod( $full_image_path, $perms ); + + return $full_image_path; + } + + } + + // remove temp file + @unlink( $tmp ); + + } + + } + + return false; + + } // end fetch_external_image + + /** + * Gets list of available thumbnails sizes + * + * @since 3.2.0 + * @link http://codex.wordpress.org/Function_Reference/get_intermediate_image_sizes + * @param string $size + * @return array|bool + */ + public function get_image_sizes( $size = '' ) { + + global $_wp_additional_image_sizes; + + $sizes = array(); + $get_intermediate_image_sizes = get_intermediate_image_sizes(); + + // Create the full array with sizes and crop info + foreach( $get_intermediate_image_sizes as $_size ) { + + if ( in_array( $_size, array( 'thumbnail', 'medium', 'large' ) ) ) { + + $sizes[ $_size ]['width'] = get_option( $_size . '_size_w' ); + $sizes[ $_size ]['height'] = get_option( $_size . '_size_h' ); + $sizes[ $_size ]['crop'] = (bool) get_option( $_size . '_crop' ); + + } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) { + + $sizes[ $_size ] = array( + 'width' => $_wp_additional_image_sizes[ $_size ]['width'], + 'height' => $_wp_additional_image_sizes[ $_size ]['height'], + 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'] + ); + + } + + } + + // Get only 1 size if found + if ( $size ) { + + if( isset( $sizes[ $size ] ) ) { + return $sizes[ $size ]; + } else { + return false; + } + + } + + return $sizes; + } + + /** + * Sets default thumbnail image. + * + * @since 4.0.2 + * @param string $url + */ + public function set_default( $url ) { + $this->default_thumbnail = esc_url( $url ); + } + +} // End WPP_Image class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-loader.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-loader.php new file mode 100644 index 0000000000000000000000000000000000000000..58f8a3f1e228fc0239f55a5c85826dab97005aae --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-loader.php @@ -0,0 +1,155 @@ +<?php + +/** + * Register all actions, filters and shortcodes for the plugin + * + * @link http://cabrerahector.com + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ + +/** + * Register all actions, filters and shortcodes for the plugin. + * + * Maintain a list of all hooks that are registered throughout + * the plugin, and register them with the WordPress API. Call the + * run function to execute the list of actions, filters and shortcodes. + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + * @author Hector Cabrera <me@cabrerahector.com> + */ +class WPP_Loader { + + /** + * The array of actions registered with WordPress. + * + * @since 4.0.0 + * @access protected + * @var array $actions The actions registered with WordPress to fire when the plugin loads. + */ + protected $actions; + + /** + * The array of filters registered with WordPress. + * + * @since 4.0.0 + * @access protected + * @var array $filters The filters registered with WordPress to fire when the plugin loads. + */ + protected $filters; + + /** + * The array of shortcodes registered with WordPress. + * + * @since 4.0.0 + * @access protected + * @var array $shortcodes The shortcodes registered with WordPress to fire when the plugin loads. + */ + protected $shortcodes; + + /** + * Initialize the collections used to maintain the actions and filters. + * + * @since 4.0.0 + */ + public function __construct() { + + $this->actions = array(); + $this->filters = array(); + $this->shortcodes = array(); + + } + + /** + * Add a new action to the collection to be registered with WordPress. + * + * @since 4.0.0 + * @param string $hook The name of the WordPress action that is being registered. + * @param object $component A reference to the instance of the object on which the action is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. he priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. + */ + public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { + $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args ); + } + + /** + * Add a new filter to the collection to be registered with WordPress. + * + * @since 4.0.0 + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority Optional. he priority at which the function should be fired. Default is 10. + * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1 + */ + public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { + $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args ); + } + + /** + * Add a new shortcode to the collection to be registered with WordPress + * + * @since 4.0.0 + * @param string $tag The name of the new shortcode. + * @param object $component A reference to the instance of the object on which the shortcode is defined. + * @param string $callback The name of the function that defines the shortcode. + */ + public function add_shortcode( $tag, $component, $callback) { + $this->shortcodes = $this->add( $this->shortcodes, $tag, $component, $callback, 10, 2 ); + } + + /** + * A utility function that is used to register the actions and hooks into a single + * collection. + * + * @since 4.0.0 + * @access private + * @param array $hooks The collection of hooks that is being registered (that is, actions or filters). + * @param string $hook The name of the WordPress filter that is being registered. + * @param object $component A reference to the instance of the object on which the filter is defined. + * @param string $callback The name of the function definition on the $component. + * @param int $priority The priority at which the function should be fired. + * @param int $accepted_args The number of arguments that should be passed to the $callback. + * @return array The collection of actions and filters registered with WordPress. + */ + private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) { + + $hooks[] = array( + 'hook' => $hook, + 'component' => $component, + 'callback' => $callback, + 'priority' => $priority, + 'accepted_args' => $accepted_args + ); + + return $hooks; + + } + + /** + * Register the filters and actions with WordPress. + * + * @since 4.0.0 + */ + public function run() { + + foreach ( $this->filters as $hook ) { + add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } + + foreach ( $this->actions as $hook ) { + add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); + } + + foreach ( $this->shortcodes as $hook ) { + add_shortcode( $hook['hook'], array( $hook['component'], $hook['callback'] ) ); + } + + } + +} diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-output.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-output.php new file mode 100644 index 0000000000000000000000000000000000000000..2239d6673d50aff2b0c496f28be570272219a013 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-output.php @@ -0,0 +1,899 @@ +<?php + +class WPP_Output { + + private $data; + + private $output; + + /** + * Widget / shortcode settings. + * + * @since 4.0.0 + * @var array + */ + private $options; + + /** + * Administrative settings. + * + * @since 2.3.3 + * @var array + */ + private $admin_options = array(); + + /** + * Default thumbnail sizes + * + * @since 3.2.2 + * @var array + */ + private $default_thumbnail_sizes = array(); + + /** + * WPP_Image object + * + * @since 4.0.2 + * @var object + */ + private $wpp_image; + + public function __construct( array $popular_posts = array(), array $options = array() ) { + + $this->data = $popular_posts; + $this->options = $options; + $this->admin_options = WPP_Settings::get( 'admin_options' ); + + $this->wpp_image = WPP_Image::get_instance(); + + if ( filter_var( $this->admin_options['tools']['thumbnail']['default'], FILTER_VALIDATE_URL ) ) { + $this->wpp_image->set_default( $this->admin_options['tools']['thumbnail']['default'] ); + } + + $this->default_thumbnail_sizes = $this->wpp_image->get_image_sizes(); + + $this->build_output(); + + } + + /** + * Build the HTML output. + * + * @since 4.0.0 + */ + private function build_output() { + + // Got some posts, format 'em! + if ( !empty($this->data) ) { + + $this->options = WPP_Helper::merge_array_r( + WPP_Settings::$defaults[ 'widget_options' ], + $this->options + ); + + // Allow WP themers / coders access to raw data + // so they can build their own output + if ( has_filter( 'wpp_custom_html' ) ) { + $this->output = apply_filters( 'wpp_custom_html', $this->data, $this->options ); + return; + } + + /* Open HTML wrapper */ + // Output a custom wrapper + if ( + isset($this->options['markup']['custom_html']) + && $this->options['markup']['custom_html'] + && isset($this->options['markup']['wpp-start']) + && isset($this->options['markup']['wpp-end']) + ){ + $this->output .= "\n" . htmlspecialchars_decode( $this->options['markup']['wpp-start'], ENT_QUOTES ) ."\n"; + } + // Output the default wrapper + else { + + $classes = "wpp-list"; + + if ( $this->options['thumbnail']['active'] ) + $classes .= " wpp-list-with-thumbnails"; + + $this->output .= "\n" . "<ul class=\"{$classes}\">" . "\n"; + + } + + // Format each post + foreach( $this->data as $post_object ) { + $this->output .= $this->render_post( $post_object ); + } + + /* Close HTML wrapper */ + // Output a custom wrapper + if ( + isset($this->options['markup']['custom_html']) + && $this->options['markup']['custom_html'] + && isset($this->options['markup']['wpp-start']) + && isset($this->options['markup']['wpp-end']) + ){ + $this->output .= "\n" . htmlspecialchars_decode( $this->options['markup']['wpp-end'], ENT_QUOTES ) ."\n"; + } + // Output default wrapper + else { + $this->output .= "</ul>" . "\n"; + } + + } + // Got nothing to show, give 'em the old "Sorry. No data so far." message! + else { + $this->output = apply_filters( 'wpp_no_data', "<p class=\"wpp-no-data\">" . __('Sorry. No data so far.', 'wordpress-popular-posts') . "</p>" ); + } + + } + + /** + * Build the HTML markup for a single post. + * + * @since 4.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function render_post( stdClass $post_object ) { + + $post = ''; + + $postID = $post_object->id; + + // Permalink + $permalink = get_permalink( $postID ); + + // Thumbnail + $post_thumbnail = $this->get_thumbnail( $post_object ); + + // Post title (and title attribute) + $post_title_attr = esc_attr( wp_strip_all_tags( $this->get_title( $post_object ) ) ); + $post_title = $this->get_title( $post_object ); + + if ( $this->options['shorten_title']['active'] ) { + + $length = ( filter_var($this->options['shorten_title']['length'], FILTER_VALIDATE_INT) && $this->options['shorten_title']['length'] > 0 ) + ? $this->options['shorten_title']['length'] + : 25; + + $post_title = WPP_Helper::truncate( $post_title, $length, $this->options['shorten_title']['words'] ); + + } + + // Post excerpt + $post_excerpt = $this->get_excerpt( $post_object ); + + // Post rating + $post_rating = $this->get_rating( $post_object ); + + /** + * Post meta + */ + + // Post date + $post_date = $this->get_date( $post_object ); + + // Post taxonomies + $post_taxonomies = $this->get_taxonomies( $post_object ); + + // Post author + $post_author = $this->get_author( $post_object ); + + // Post views count + $post_views = $this->get_pageviews( $post_object ); + + // Post comments count + $post_comments = $this->get_comments( $post_object ); + + // Post meta + $post_meta = join( ' | ', $this->get_metadata( $post_object ) ); + + // Build custom HTML output + if ( $this->options['markup']['custom_html'] ) { + + $data = array( + 'id' => $post_object->id, + 'title' => '<a href="' . $permalink . '" title="' . $post_title_attr . '" class="wpp-post-title" target="' . $this->admin_options['tools']['link']['target'] . '">' . $post_title . '</a>', + 'summary' => $post_excerpt, + 'stats' => $post_meta, + 'img' => ( !empty( $post_thumbnail ) ) ? '<a href="' . $permalink . '" title="' . $post_title_attr . '" target="' . $this->admin_options['tools']['link']['target'] . '">' . $post_thumbnail . '</a>' : '', + 'img_no_link' => $post_thumbnail, + 'url' => $permalink, + 'text_title' => $post_title_attr, + 'taxonomy' => $post_taxonomies, + 'author' => ( !empty($post_author) ) ? '<a href="' . get_author_posts_url( $post_object->uid ) . '">' . $post_author . '</a>' : '', + 'views' => ( $this->options['order_by'] == "views" || $this->options['order_by'] == "comments" ) ? number_format_i18n( $post_views ) : number_format_i18n( $post_views, 2 ), + 'comments' => number_format_i18n( $post_comments ), + 'date' => $post_date + ); + + $post = $this->format_content( htmlspecialchars_decode( $this->options['markup']['post-html'], ENT_QUOTES ), $data, $this->options['rating'] ). "\n"; + + } // Use the "stock" HTML output + else { + + $is_single = WPP_Helper::is_single(); + + $post_thumbnail = ( !empty($post_thumbnail) ) + ? "<a " . ( $is_single == $postID ? '' : "href=\"{$permalink}\"" ) . " title=\"{$post_title_attr}\" target=\"{$this->admin_options['tools']['link']['target']}\">{$post_thumbnail}</a>\n" + : ""; + + $post_excerpt = ( !empty($post_excerpt) ) + ? " <span class=\"wpp-excerpt\">{$post_excerpt}</span>\n" + : ""; + + $post_meta = ( !empty($post_meta) ) + ? " <span class=\"wpp-meta post-stats\">{$post_meta}</span>\n" + : ''; + + $post_rating = ( !empty($post_rating) ) + ? " <span class=\"wpp-rating\">{$post_rating}</span>\n" + : ""; + + $wpp_post_class = array(); + + if ( $is_single == $postID ) { + $wpp_post_class[] = "current"; + } + + // Allow themers / plugin developer + // to add custom classes to each post + $wpp_post_class = apply_filters( "wpp_post_class", $wpp_post_class, $postID ); + + $post = + "<li" . ( ( is_array( $wpp_post_class ) && !empty( $wpp_post_class ) ) ? ' class="' . esc_attr( implode( " ", $wpp_post_class ) ) . '"' : '' ) . ">\n" + . $post_thumbnail + . "<a " . ( $is_single == $postID ? '' : "href=\"{$permalink}\"" ) . " title=\"{$post_title_attr}\" class=\"wpp-post-title\" target=\"{$this->admin_options['tools']['link']['target']}\">{$post_title}</a>\n" + . $post_excerpt + . $post_meta + . $post_rating + . "</li>\n"; + + } + + return apply_filters( 'wpp_post', $post, $post_object, $this->options ); + + } + + /** + * Return the processed post/page title. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_title( stdClass $post_object ) { + + $translate = WPP_translate::get_instance(); + $trid = $translate->get_object_id( $post_object->id, get_post_type( $post_object->id ) ); + + if ( $post_object->id != $trid ) { + $title = get_the_title( $trid ); + } + else { + $title = $post_object->title; + } + + return apply_filters( 'the_title', $title, $post_object->id ); + + } + + /** + * Return the processed thumbnail. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_thumbnail( stdClass $post_object ) { + + $this->wpp_image = WPP_Image::get_instance(); + + $thumbnail = ''; + + if ( + $this->options['thumbnail']['active'] + && $this->wpp_image->can_create_thumbnails() + ) { + + // Create / get thumbnail from custom field + if ( 'custom_field' == $this->admin_options['tools']['thumbnail']['source'] ) { + + $thumb_url = get_post_meta( + $post_object->id, + $this->admin_options['tools']['thumbnail']['field'], + true + ); + + if ( '' != $thumb_url ) { + + // Resize CF image + if ( $this->admin_options['tools']['thumbnail']['resize'] ) { + + $thumbnail = $this->wpp_image->get_img( + $post_object, + $thumb_url, + array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ), + $this->options['thumbnail']['crop'], + $this->admin_options['tools']['thumbnail']['source'] + ); + + } // Use original CF image + else { + + $thumbnail = $this->wpp_image->render_image( + $thumb_url, + array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ), + 'wpp-thumbnail wpp_cf', + $post_object + ); + + } + + } // Custom field is empty / not set, use default thumbnail + else { + + $thumbnail = $this->wpp_image->get_img( + null, + null, + array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ), + $this->options['thumbnail']['crop'], + $this->admin_options['tools']['thumbnail']['source'] + ); + + } + + } // Create / get thumbnail from Featured Image, post images, etc. + else { + + // Use stock images as defined in theme's function.php + if ( + 'predefined' == $this->options['thumbnail']['build'] + && 'featured' == $this->admin_options['tools']['thumbnail']['source'] + ) { + + if ( current_theme_supports( 'post-thumbnails' ) ) { + + // Featured Image found! + if ( has_post_thumbnail( $post_object->id ) ) { + + // Find corresponding image size + $size = null; + + foreach ( $this->default_thumbnail_sizes as $name => $attr ) : + if ( + $attr['width'] == $this->options['thumbnail']['width'] + && $attr['height'] == $this->options['thumbnail']['height'] + && $attr['crop'] == $this->options['thumbnail']['crop'] + ) { + $size = $name; + break; + } + endforeach; + + // Couldn't find a matching size so let's go with width/height combo instead (this should never happen but better safe than sorry!) + if ( null == $size ) { + $size = array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ); + } + + $thumbnail = get_the_post_thumbnail( + $post_object->id, + $size, + array( 'class' => 'wpp-thumbnail wpp_featured_stock' ) + ); + + } // There's no Featured Image set for this post + else { + + $thumbnail = $this->wpp_image->get_img( + null, + null, + array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ), + $this->options['thumbnail']['crop'], + $this->admin_options['tools']['thumbnail']['source'] + ); + + } + + } // Current theme does not support Featured Images (?) + else { + + $thumbnail = $this->wpp_image->get_img( + null, + null, + array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ), + $this->options['thumbnail']['crop'], + $this->admin_options['tools']['thumbnail']['source'] + ); + + } + + } // Build / Fetch WPP thumbnail + else { + + $thumbnail = $this->wpp_image->get_img( + $post_object, + null, + array( $this->options['thumbnail']['width'], $this->options['thumbnail']['height'] ), + $this->options['thumbnail']['crop'], + $this->admin_options['tools']['thumbnail']['source'] + ); + + } + + } + + } + + return $thumbnail; + + } + + /** + * Return post views count. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return int|float + */ + private function get_pageviews( stdClass $post_object ) { + + $pageviews = 0; + + if ( + ( + $this->options['order_by'] == "views" + || $this->options['order_by'] == "avg" + || $this->options['stats_tag']['views'] + ) + && ( isset( $post_object->pageviews ) || isset( $post_object->avg_views ) ) + ) { + $pageviews = ( $this->options['order_by'] == "views" || $this->options['order_by'] == "comments" ) + ? $post_object->pageviews + : $post_object->avg_views; + } + + return $pageviews; + + } + + /** + * Return post comment count. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return int + */ + private function get_comments( stdClass $post_object ) { + + $comments = ( ( $this->options['order_by'] == "comments" || $this->options['stats_tag']['comment_count'] ) && isset( $post_object->comment_count ) ) + ? $post_object->comment_count + : 0; + + return $comments; + + } + + /** + * Get post date. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_date( stdClass $post_object ) { + + $date = ''; + + if ( $this->options['stats_tag']['date']['active'] ) { + $date = ( 'relative' == $this->options['stats_tag']['date']['format'] ) + ? sprintf( __( '%s ago', 'wordpress-popular-posts' ), human_time_diff( strtotime($post_object->date), current_time( 'timestamp' ) ) ) + : date_i18n( $this->options['stats_tag']['date']['format'], strtotime($post_object->date) ); + } + + return $date; + + } + + /** + * Get post taxonomies. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_taxonomies( stdClass $post_object ) { + + $post_tax = ''; + + if ( (isset($this->options['stats_tag']['category']) && $this->options['stats_tag']['category']) || $this->options['stats_tag']['taxonomy'] ) { + + $taxonomy = 'category'; + + if ( + $this->options['stats_tag']['taxonomy']['active'] + && !empty( $this->options['stats_tag']['taxonomy']['name'] ) + ) { + $taxonomy = $this->options['stats_tag']['taxonomy']['name']; + } + + $translate = WPP_translate::get_instance(); + $trid = $translate->get_object_id( $post_object->id, get_post_type( $post_object->id ) ); + + if ( $post_object->id != $trid ) { + $terms = wp_get_post_terms( $trid, $taxonomy ); + } + else { + $terms = wp_get_post_terms( $post_object->id, $taxonomy ); + } + + if ( !is_wp_error( $terms ) ) { + + // Usage: https://wordpress.stackexchange.com/a/46824 + if ( has_filter( 'wpp_post_exclude_terms' ) ) { + $args = apply_filters( 'wpp_post_exclude_terms', array() ); + $terms = wp_list_filter( $terms, $args, 'NOT' ); + } + + if ( + is_array( $terms ) + && !empty( $terms ) + ) { + + foreach( $terms as $term ) { + + $term_link = get_term_link( $term ); + + if ( is_wp_error( $term_link ) ) + continue; + + $post_tax .= "<a href=\"{$term_link}\" class=\"{$taxonomy} {$taxonomy}-{$term->term_id}\">{$term->name}</a>, "; + + } + + } + + } + + if ( '' != $post_tax ) + $post_tax = rtrim( $post_tax, ", " ); + + } + + return $post_tax; + + } + + /** + * Get post author. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_author( stdClass $post_object ) { + + $author = ( $this->options['stats_tag']['author'] ) + ? get_the_author_meta( 'display_name', $post_object->uid ) + : ""; + + return $author; + + } + + /** + * Return post excerpt. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_excerpt( stdClass $post_object ) { + + $excerpt = ''; + + if ( $this->options['post-excerpt']['active'] ) { + + $translate = WPP_translate::get_instance(); + $trid = $translate->get_object_id( $post_object->id, get_post_type( $post_object->id ) ); + + if ( $post_object->id != $trid ) { + $the_post = get_post( $trid ); + + $excerpt = ( empty($the_post->post_excerpt) ) + ? $the_post->post_content + : $post_object->post_excerpt; + } + else { + $excerpt = ( empty( $post_object->post_excerpt ) ) + ? $post_object->post_content + : $post_object->post_excerpt; + } + + // remove caption tags + $excerpt = preg_replace( "/\[caption.*\[\/caption\]/", "", $excerpt ); + + // remove Flash objects + $excerpt = preg_replace( "/<object[0-9 a-z_?*=\":\-\/\.#\,\\n\\r\\t]+/smi", "", $excerpt ); + + // remove iframes + $excerpt = preg_replace( "/<iframe.*?\/iframe>/i", "", $excerpt ); + + // remove WP shortcodes + $excerpt = strip_shortcodes( $excerpt ); + + // remove style/script tags + $excerpt = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $excerpt ); + + // remove HTML tags if requested + if ( $this->options['post-excerpt']['keep_format'] ) { + $excerpt = strip_tags( $excerpt, '<a><b><i><em><strong>' ); + } else { + $excerpt = strip_tags( $excerpt ); + + // remove URLs, too + $excerpt = preg_replace( '_^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS', '', $excerpt ); + } + + } + + // Balance tags, if needed + if ( '' !== $excerpt ) { + + $excerpt = WPP_helper::truncate( $excerpt, $this->options['post-excerpt']['length'], $this->options['post-excerpt']['words'] ); + + if ( $this->options['post-excerpt']['keep_format'] ) + $excerpt = force_balance_tags( $excerpt ); + + } + + return $excerpt; + + } + + /** + * Return post rating. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return string + */ + private function get_rating( stdClass $post_object ) { + + $rating = ''; + + if ( function_exists('the_ratings') && $this->options['rating'] ) { + $rating = the_ratings( 'span', $post_object->id, false ); + } + + return $rating; + } + + /** + * Return post metadata. + * + * @since 3.0.0 + * @access private + * @param object $post_object + * @return array + */ + private function get_metadata( stdClass $post_object ) { + + $stats = array(); + + // comments + if ( $this->options['stats_tag']['comment_count'] ) { + + $comments = $this->get_comments( $post_object ); + + $comments_text = sprintf( + _n( '1 comment', '%s comments', $comments, 'wordpress-popular-posts' ), + number_format_i18n( $comments ) + ); + + } + + // views + if ( $this->options['stats_tag']['views'] ) { + + $pageviews = $this->get_pageviews( $post_object ); + + if ( $this->options['order_by'] == 'avg' ) { + $views_text = sprintf( + _n( '1 view per day', '%s views per day', $pageviews, 'wordpress-popular-posts' ), + number_format_i18n( $pageviews, 2 ) + ); + } + else { + $views_text = sprintf( + _n( '1 view', '%s views', $pageviews, 'wordpress-popular-posts' ), + number_format_i18n( $pageviews ) + ); + } + + } + + if ( "comments" == $this->options['order_by'] ) { + if ( $this->options['stats_tag']['comment_count'] ) + $stats[] = '<span class="wpp-comments">' . $comments_text . '</span>'; // First comments count + if ( $this->options['stats_tag']['views'] ) + $stats[] = '<span class="wpp-views">' . $views_text . "</span>"; // ... then views + } else { + if ( $this->options['stats_tag']['views'] ) + $stats[] = '<span class="wpp-views">' . $views_text . "</span>"; // First views count + if ( $this->options['stats_tag']['comment_count'] ) + $stats[] = '<span class="wpp-comments">' . $comments_text . '</span>'; // ... then comments + } + + // author + if ( $this->options['stats_tag']['author'] ) { + $author = $this->get_author( $post_object ); + $display_name = '<a href="' . get_author_posts_url( $post_object->uid ) . '">' . $author . '</a>'; + $stats[] = '<span class="wpp-author">' . sprintf(__('by %s', 'wordpress-popular-posts'), $display_name).'</span>'; + } + + // date + if ( $this->options['stats_tag']['date']['active'] ) { + $date = $this->get_date( $post_object ); + $stats[] = '<span class="wpp-date">' . ( 'relative' == $this->options['stats_tag']['date']['format'] ? sprintf(__('posted %s', 'wordpress-popular-posts'), $date) : sprintf(__('posted on %s', 'wordpress-popular-posts'), $date) ) . '</span>'; + } + + // taxonomy + if ( $this->options['stats_tag']['category'] ) { + + $post_tax = $this->get_taxonomies( $post_object ); + + if ( $post_tax != '' ) { + $stats[] = '<span class="wpp-category">' . sprintf( __('under %s', 'wordpress-popular-posts'), $post_tax ) . '</span>'; + } + + } + + return $stats; + + } + + /** + * Parse content tags. + * + * @since 1.4.6 + * @access private + * @param string HTML string with content tags + * @param array Post data + * @param bool Used to display post rating (if functionality is available) + * @return string + */ + private function format_content( $string, $data = array(), $rating ) { + + if ( empty( $string ) || ( empty( $data ) || !is_array( $data ) ) ) + return false; + + $params = array(); + $pattern = '/\{(pid|excerpt|summary|meta|stats|title|image|thumb|thumb_img|thumb_url|rating|score|url|text_title|author|taxonomy|category|views|comments|date)\}/i'; + preg_match_all( $pattern, $string, $matches ); + + array_map( 'strtolower', $matches[0] ); + + if ( in_array( "{pid}", $matches[0] ) ) { + $string = str_replace( "{pid}", $data['id'], $string ); + } + + if ( in_array( "{title}", $matches[0] ) ) { + $string = str_replace( "{title}", $data['title'], $string ); + } + + if ( in_array( "{meta}", $matches[0] ) || in_array( "{stats}", $matches[0] ) ) { + $string = str_replace( array("{meta}", "{stats}"), $data['stats'], $string ); + } + + if ( in_array( "{excerpt}", $matches[0] ) || in_array( "{summary}", $matches[0] ) ) { + $string = str_replace( array("{excerpt}", "{summary}"), $data['summary'], $string ); + } + + if ( in_array( "{image}", $matches[0]) || in_array("{thumb}", $matches[0] ) ) { + $string = str_replace( array("{image}", "{thumb}"), $data['img'], $string ); + } + + if ( in_array( "{thumb_img}", $matches[0] ) ) { + $string = str_replace( "{thumb_img}", $data['img_no_link'], $string ); + } + + if ( in_array( "{thumb_url}", $matches[0] ) && !empty( $data['img_no_link'] ) ) { + + $dom = new DOMDocument; + + if ( $dom->loadHTML( $data['img_no_link'] ) ) { + + $img_tag = $dom->getElementsByTagName( 'img' ); + + if ( $img_tag->length ) { + + foreach( $img_tag as $node ) { + if ( $node->hasAttribute( 'src' ) ) { + $string = str_replace( "{thumb_url}", $node->getAttribute( 'src' ), $string ); + } + } + + } + + } + + } + + // WP-PostRatings check + if ( $rating ) { + + if ( function_exists( 'the_ratings_results' ) && in_array( "{rating}", $matches[0] ) ) { + $string = str_replace( "{rating}", the_ratings_results($data['id']), $string ); + } + + if ( function_exists( 'expand_ratings_template' ) && in_array( "{score}", $matches[0] ) ) { + $string = str_replace( "{score}", expand_ratings_template( '%RATINGS_SCORE%', $data['id'] ), $string); + // removing the redundant plus sign + $string = str_replace( '+', '', $string ); + } + } + + if ( in_array( "{url}", $matches[0] ) ) { + $string = str_replace( "{url}", $data['url'], $string ); + } + + if ( in_array( "{text_title}", $matches[0] ) ) { + $string = str_replace( "{text_title}", $data['text_title'], $string ); + } + + if ( in_array( "{author}", $matches[0] ) ) { + $string = str_replace( "{author}", $data['author'], $string ); + } + + if ( in_array( "{taxonomy}", $matches[0] ) || in_array( "{category}", $matches[0] ) ) { + $string = str_replace( array("{taxonomy}", "{category}"), $data['taxonomy'], $string ); + } + + if ( in_array( "{views}", $matches[0] ) ) { + $string = str_replace( "{views}", $data['views'], $string ); + } + + if ( in_array( "{comments}", $matches[0] ) ) { + $string = str_replace( "{comments}", $data['comments'], $string ); + } + + if ( in_array( "{date}", $matches[0] ) ) { + $string = str_replace( "{date}", $data['date'], $string ); + } + + return $string; + + } + + /** + * Output the HTML. + * + * @since 4.0.0 + */ + public function output() { + echo $this->output; + } + + /** + * Return the HTML. + * + * @since 4.0.0 + * @return string + */ + public function get_output() { + return $this->output; + } + +} // End WPP_Output class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-query.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-query.php new file mode 100644 index 0000000000000000000000000000000000000000..04a6f3906c21723a5010f3802c7db1e02bb37d16 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-query.php @@ -0,0 +1,458 @@ +<?php +/** + * Queries the database for popular posts. + * + * To use this class, you must pass it an array of parameters (mostly the same ones used with + * the wpp_get_mostpopular() template tag). The very minimum required parameters are 'range', 'order_by' + * and 'limit'. + * + * eg.: $popular_posts = new WPP_Query( array('range' => 'last7days', 'order_by' => 'views', 'limit' => 5) ); + * + * @since 4.0.0 + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ + +class WPP_Query { + + /* + * Database query string. + * + * @since 4.0.0 + * @access private + * @var string $query + */ + private $query; + + /* + * List of posts. + * + * @since 4.0.0 + * @access private + * @var array $posts + */ + private $posts = array(); + + /* + * Plugin options. + * + * @since 4.0.0 + * @access private + * @var array $options + */ + private $options; + + /* + * Constructor. + * + * @since 4.0.0 + * @param array $options + */ + public function __construct( array $options = array() ){ + $this->options = $options; + $this->build_query(); + $this->run_query(); + } + + /* + * Builds the database query. + * + * @since 4.0.0 + * @access private + */ + private function build_query(){ + + /* + * @var wpdb $wpdb + */ + global $wpdb; + + if ( isset($wpdb) ) { + + $this->options = WPP_Helper::merge_array_r( + WPP_Settings::$defaults[ 'widget_options' ], + (array) $this->options + ); + + $args = array(); + $fields = "p.ID AS id, p.post_title AS title, p.post_author AS uid"; + $table = ""; + $join = ""; + $where = "WHERE 1 = 1"; + $groupby = ""; + $orderby = ""; + $limit = "LIMIT " . ( filter_var($this->options['limit'], FILTER_VALIDATE_INT) && $this->options['limit'] > 0 ? $this->options['limit'] : 10 ) . ( isset($this->options['offset']) && filter_var($this->options['offset'], FILTER_VALIDATE_INT) !== false && $this->options['offset'] >= 0 ? " OFFSET {$this->options['offset']}" : "" ); + + // Get post date + if ( isset($this->options['stats_tag']['date']['active']) && $this->options['stats_tag']['date']['active'] ) { + $fields .= ", p.post_date AS date"; + } + + // Get post excerpt $instance + if ( isset($this->options['post-excerpt']['active']) && $this->options['post-excerpt']['active'] ) { + $fields .= ", p.post_excerpt AS post_excerpt, p.post_content AS post_content"; + } + + // Get entries from these post types + if ( isset($this->options['post_type']) && !empty($this->options['post_type']) ) { + + $post_types = explode( ",", $this->options['post_type'] ); + $pt = ''; + $where .= " AND p.post_type IN("; + + foreach( $post_types as $post_type ) { + $pt .= "%s, "; + array_push( $args, trim($post_type) ); + } + + $where .= rtrim($pt, ", ") . ")"; + + } + else { + $where .= " AND p.post_type IN('post', 'page')"; + } + + // Get entries from these authors + if ( isset($this->options['author']) && !empty($this->options['author']) ) { + + $author_IDs = explode( ",", $this->options['author'] ); + $uid = ''; + $where .= " AND p.post_author IN("; + + foreach( $author_IDs as $author_ID ) { + $uid .= "%d, "; + array_push( $args, trim($author_ID) ); + } + + $where .= rtrim($uid, ", ") . ")"; + + } + + // Get / exclude entries from this taxonomy + if ( + ( isset($this->options['cat']) && !empty($this->options['cat']) ) + || ( isset($this->options['term_id']) && !empty($this->options['term_id']) ) + ) { + + if ( isset($this->options['taxonomy']) && !empty($this->options['taxonomy']) ) { + + $registered_taxonomies = get_taxonomies( array('public' => true) ); + + // Invalid taxonomy, fallback to "category" + if ( !isset($registered_taxonomies[$this->options['taxonomy']]) ) { + $this->options['taxonomy'] = 'category'; + } + + } // Default to "category" + else { + $this->options['taxonomy'] = 'category'; + } + + if ( isset($this->options['cat']) && !empty($this->options['cat']) ) { + $this->options['term_id'] = $this->options['cat']; + } + + $term_IDs = explode( ",", $this->options['term_id'] ); + $in_term_IDs = array(); + $out_term_IDs = array(); + + foreach( $term_IDs as $term_ID ) { + + if ( $term_ID >= 0 ) + $in_term_IDs[] = trim( $term_ID ); + else + $out_term_IDs[] = trim( $term_ID ) * -1; + + } + + if ( !empty($in_term_IDs) ) { + + $where .= " AND p.ID IN ( + SELECT object_id + FROM `{$wpdb->term_relationships}` AS r + JOIN `{$wpdb->term_taxonomy}` AS x ON x.term_taxonomy_id = r.term_taxonomy_id + WHERE x.taxonomy = '{$this->options['taxonomy']}'"; + + $inTID = ''; + + foreach( $in_term_IDs as $in_term_ID ) { + $inTID .= "%d, "; + array_push( $args, $in_term_ID ); + } + + $where .= " AND x.term_id IN(" . rtrim($inTID, ", ") . ") )"; + + } + + if ( !empty($out_term_IDs) ) { + + $post_ids = get_posts( + array( + 'posts_per_page' => -1, + 'tax_query' => array( + array( + 'taxonomy' => $this->options['taxonomy'], + 'field' => 'id', + 'terms' => $out_term_IDs, + ), + ), + 'fields' => 'ids' + ) + ); + + if ( is_array($post_ids) && !empty($post_ids) ) { + + if ( isset($this->options['pid']) && !empty($this->options['pid']) ) { + $this->options['pid'] .= "," . implode( ",", $post_ids ); + } + else { + $this->options['pid'] = implode( ",", $post_ids ); + } + + } + + } + + } + + // Exclude these entries from the listing + if ( isset($this->options['pid']) && !empty($this->options['pid']) ) { + + $excluded_post_IDs = explode( ",", $this->options['pid'] ); + $xpid = ''; + $where .= " AND p.ID NOT IN("; + + foreach( $excluded_post_IDs as $excluded_post_ID ) { + $xpid .= "%d, "; + array_push( $args, trim($excluded_post_ID) ); + } + + $where .= rtrim($xpid, ", ") . ")"; + + } + + // All-time range + if ( "all" == $this->options['range'] ) { + + // Order by views count + if ( "comments" != $this->options['order_by'] ) { + + $table = "`{$wpdb->prefix}popularpostsdata` v"; + $join = "LEFT JOIN `{$wpdb->posts}` p ON v.postid = p.ID"; + + // Order by views + if ( "views" == $this->options['order_by'] ) { + + if ( !isset($this->options['stats_tag']['views']) || $this->options['stats_tag']['views'] ) { + $fields .= ", v.pageviews"; + } + + $orderby = "ORDER BY v.pageviews DESC"; + + } + // Order by average views + else { + + $now = current_time( 'mysql' ); + + $fields .= ", ( v.pageviews/(IF ( DATEDIFF('{$now}', MIN(v.day)) > 0, DATEDIFF('{$now}', MIN(v.day)), 1) ) ) AS avg_views"; + $groupby = "GROUP BY v.postid"; + $orderby = "ORDER BY avg_views DESC"; + + } + + // Display comments count, too + if ( isset($this->options['stats_tag']['comment_count']) && $this->options['stats_tag']['comment_count'] ) { + $fields .= ", p.comment_count"; + } + + } + // Order by comments count + else { + + $table = "`{$wpdb->posts}` p"; + $where .= " AND p.comment_count > 0"; + $orderby = "ORDER BY p.comment_count DESC"; + + // Display comment count + if ( isset($this->options['stats_tag']['comment_count']) && $this->options['stats_tag']['comment_count'] ) { + $fields .= ", p.comment_count"; + } + + // Display views count, too + if ( isset($this->options['stats_tag']['views']) && $this->options['stats_tag']['views'] ) { + $fields .= ", IFNULL(v.pageviews, 0) AS pageviews"; + $join = "LEFT JOIN `{$wpdb->prefix}popularpostsdata` v ON p.ID = v.postid"; + } + + } + + } + // Custom time range + else { + + $now = current_time( 'mysql' ); + + // Determine time range + switch( $this->options['range'] ){ + case "last24hours": + case "daily": + $interval = "24 HOUR"; + break; + + case "last7days": + case "weekly": + $interval = "6 DAY"; + break; + + case "last30days": + case "monthly": + $interval = "29 DAY"; + break; + + case "custom": + $time_units = array( "MINUTE", "HOUR", "DAY", "WEEK", "MONTH" ); + $interval = "24 HOUR"; + + // Valid time unit + if ( + isset( $this->options['time_unit'] ) + && in_array( strtoupper( $this->options['time_unit'] ), $time_units ) + && isset( $this->options['time_quantity'] ) + && filter_var( $this->options['time_quantity'], FILTER_VALIDATE_INT ) + && $this->options['time_quantity'] > 0 + ) { + $interval = "{$this->options['time_quantity']} " . strtoupper( $this->options['time_unit'] ); + } + + break; + + default: + $interval = "24 HOUR"; + break; + } + + // Get entries published within the specified time range + if ( isset($this->options['freshness']) && $this->options['freshness'] ) { + $where .= " AND p.post_date > DATE_SUB('{$now}', INTERVAL {$interval})"; + } + + // Order by views count + if ( "comments" != $this->options['order_by'] ) { + + $table = "`{$wpdb->prefix}popularpostssummary` v"; + $join = "LEFT JOIN `{$wpdb->posts}` p ON v.postid = p.ID"; + $where .= " AND v.last_viewed > DATE_SUB('{$now}', INTERVAL {$interval})"; + $groupby = "GROUP BY v.postid"; + + // Order by views + if ( "views" == $this->options['order_by'] ) { + + if ( !isset($this->options['stats_tag']['views']) || $this->options['stats_tag']['views'] ) { + $fields .= ", SUM(v.pageviews) AS pageviews"; + $orderby = "ORDER BY pageviews DESC"; + } + else { + $orderby = "ORDER BY SUM(v.pageviews) DESC"; + } + + } + // Order by average views + else { + $fields .= ", ( SUM(v.pageviews)/(IF ( DATEDIFF('{$now}', DATE_SUB('{$now}', INTERVAL {$interval})) > 0, DATEDIFF('{$now}', DATE_SUB('{$now}', INTERVAL {$interval})), 1) ) ) AS avg_views"; + $orderby = "ORDER BY avg_views DESC"; + } + + // Display comments count, too + if ( isset($this->options['stats_tag']['comment_count']) && $this->options['stats_tag']['comment_count'] ) { + $fields .= ", IFNULL(c.comment_count, 0) AS comment_count"; + $join .= " LEFT JOIN (SELECT comment_post_ID, COUNT(comment_post_ID) AS comment_count FROM `{$wpdb->comments}` WHERE comment_date_gmt > DATE_SUB('{$now}', INTERVAL {$interval}) AND comment_approved = 1 GROUP BY comment_post_ID) c ON p.ID = c.comment_post_ID"; + } + + } + // Order by comments count + else { + + $table = "`{$wpdb->comments}` c"; + $join = "LEFT JOIN {$wpdb->posts} p ON c.comment_post_ID = p.ID"; + $where .= " AND c.comment_date_gmt > DATE_SUB('{$now}', INTERVAL {$interval}) AND c.comment_approved = 1"; + $groupby = "GROUP BY c.comment_post_ID"; + + // Display comment count + if ( isset($this->options['stats_tag']['comment_count']) && $this->options['stats_tag']['comment_count'] ) { + $fields .= ", COUNT(c.comment_post_ID) AS comment_count"; + $orderby = "ORDER BY comment_count DESC"; + } + else { + $orderby = "ORDER BY COUNT(c.comment_post_ID) DESC"; + } + + // Display views count, too + if ( isset($this->options['stats_tag']['views']) && $this->options['stats_tag']['views'] ) { + $fields .= ", IFNULL(v.pageviews, 0) AS pageviews"; + $join .= " LEFT JOIN (SELECT postid, SUM(pageviews) AS pageviews FROM `{$wpdb->prefix}popularpostssummary` WHERE last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) GROUP BY postid) v ON p.ID = v.postid"; + } + + } + + } + + // List only published, non password-protected posts + $where .= " AND p.post_password = '' AND p.post_status = 'publish'"; + + $fields = apply_filters( 'wpp_query_fields', $fields, $this->options ); + $table = apply_filters( 'wpp_query_table', $table, $this->options ); + $join = apply_filters( 'wpp_query_join', $join, $this->options ); + $where = apply_filters( 'wpp_query_where', $where, $this->options ); + $groupby = apply_filters( 'wpp_query_group_by', $groupby, $this->options ); + $orderby = apply_filters( 'wpp_query_order_by', $orderby, $this->options ); + $limit = apply_filters( 'wpp_query_limit', $limit, $this->options ); + + // Finally, build the query + $query = "SELECT {$fields} FROM {$table} {$join} {$where} {$groupby} {$orderby} {$limit};"; + $this->query = ( !empty($args) && !has_filter('wpp_query_where') ) ? $wpdb->prepare( $query, $args ) : $query; + + } + + } + + /* + * Queries the database. + * + * @since 4.0.0 + * @access private + */ + private function run_query(){ + + /* + * @var wpdb $wpdb + */ + global $wpdb; + + if ( isset($wpdb) && !empty($this->query) && !is_wp_error($this->query) ) { + $this->posts = $wpdb->get_results( $this->query ); + } + + } + + /* + * Returns the query string. + * + * @since 4.0.0 + * @return WP_Error|string Query string on success, WP_Error on failure + */ + public function get_query(){ + return $this->query; + } + + /* + * Returns the list of posts. + * + * @since 4.0.0 + * @return array + */ + public function get_posts(){ + return $this->posts; + } + +} // end WPP_Query class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-settings.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-settings.php new file mode 100644 index 0000000000000000000000000000000000000000..c43bea311eaf425bd804f3e1179dbfd46a15bb3f --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-settings.php @@ -0,0 +1,165 @@ +<?php + +/** + * Set / get plugin default options. + * + * @link http://cabrerahector.com + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ + +/** + * Set / get plugin default options. + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + * @author Hector Cabrera <me@cabrerahector.com> + */ + +class WPP_Settings { + + /** + * Plugin uploads directory. + * + * @since 3.0.4 + * @var array + */ + static public $defaults = array( + 'widget_options' => array( + 'title' => '', + 'limit' => 10, + 'range' => 'daily', + 'time_unit' => 'hour', + 'time_quantity' => 24, + 'freshness' => false, + 'order_by' => 'views', + 'post_type' => 'post,page', + 'pid' => '', + 'author' => '', + 'cat' => '', + 'taxonomy' => 'category', + 'term_id' => '', + 'shorten_title' => array( + 'active' => false, + 'length' => 25, + 'words' => false + ), + 'post-excerpt' => array( + 'active' => false, + 'length' => 55, + 'keep_format' => false, + 'words' => false + ), + 'thumbnail' => array( + 'active' => false, + 'build' => 'manual', + 'width' => 75, + 'height' => 75, + 'crop' => true + ), + 'rating' => false, + 'stats_tag' => array( + 'comment_count' => false, + 'views' => true, + 'author' => false, + 'date' => array( + 'active' => false, + 'format' => 'F j, Y' + ), + 'category' => false, + 'taxonomy' => array( + 'active' => false, + 'name' => 'category' + ) + ), + 'markup' => array( + 'custom_html' => false, + 'title-start' => '<h2>', + 'title-end' => '</h2>', + 'wpp-start' => '<ul class="wpp-list">', + 'wpp-end' => '</ul>', + 'post-html' => '<li>{thumb} {title} <span class="wpp-meta post-stats">{stats}</span></li>' + + ) + ), + 'admin_options' => array( + 'stats' => array( + 'range' => 'last7days', + 'time_unit' => 'hour', + 'time_quantity' => 24, + 'order_by' => 'views', + 'limit' => 10, + 'post_type' => 'post,page', + 'freshness' => false + ), + 'tools' => array( + 'ajax' => false, + 'css' => true, + 'link' => array( + 'target' => '_self' + ), + 'thumbnail' => array( + 'source' => 'featured', + 'field' => '', + 'resize' => false, + 'default' => '', + 'responsive' => false + ), + 'log' => array( + 'level' => 1, + 'limit' => 0, + 'expires_after' => 180 + ), + 'cache' => array( + 'active' => false, + 'interval' => array( + 'time' => 'hour', + 'value' => 1 + ) + ), + 'sampling' => array( + 'active' => false, + 'rate' => 100 + ) + ) + ) + ); + + /** + * Returns plugin options. + * + * @since 4.0.0 + * @access public + * @param string $option_set + * @return array + */ + public static function get( $option_set = null ){ + + $options = self::$defaults; + + if ( 'widget_options' == $option_set ) { + return $options[ 'widget_options' ]; + } + + if ( !$admin_options = get_site_option( 'wpp_settings_config' ) ) { + $admin_options = $options[ 'admin_options' ]; + add_site_option( 'wpp_settings_config', $admin_options ); + } + else { + $options[ 'admin_options' ] = WPP_Helper::merge_array_r( + $options[ 'admin_options' ], + (array) $admin_options + ); + } + + if ( 'admin_options' == $option_set ) { + return $options[ 'admin_options' ]; + } + + return $options; + + } + +} // End WPP_Settings class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-template.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-template.php new file mode 100644 index 0000000000000000000000000000000000000000..fa2fcd9bc3c60db29353d739a4a426f86f78b46d --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-template.php @@ -0,0 +1,105 @@ +<?php +/** + * WordPress Popular Posts template tags for use in themes. + */ + +/** + * Template tag - gets views count. + * + * @since 2.0.3 + * @global object wpdb + * @param int id + * @param string range + * @param bool number_format + * @return string + */ +function wpp_get_views($id = NULL, $range = NULL, $number_format = true) { + + // have we got an id? + if ( empty($id) || is_null($id) || !is_numeric($id) ) { + return "-1"; + } else { + global $wpdb; + + $table_name = $wpdb->prefix . "popularposts"; + + if ( !$range || 'all' == $range ) { + $query = "SELECT pageviews FROM {$table_name}data WHERE postid = '{$id}'"; + } else { + $interval = ""; + + switch( $range ){ + case "last24hours": + case "daily": + $interval = "24 HOUR"; + break; + + case "last7days": + case "weekly": + $interval = "6 DAY"; + break; + + case "last30days": + case "monthly": + $interval = "29 DAY"; + break; + + default: + $interval = "24 HOUR"; + break; + } + + $now = current_time('mysql'); + + $query = "SELECT SUM(pageviews) FROM {$table_name}summary WHERE postid = '{$id}' AND last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) LIMIT 1;"; + } + + $result = $wpdb->get_var($query); + + if ( !$result ) { + return "0"; + } + + return ($number_format) ? number_format_i18n( intval($result) ) : $result; + } + +} + +/** + * Template tag - gets popular posts. + * + * @since 2.0.3 + * @param mixed args + */ +function wpp_get_mostpopular($args = NULL) { + + $shortcode = '[wpp'; + + if ( is_null( $args ) ) { + $shortcode .= ']'; + } else { + if( is_array( $args ) ){ + $atts = ''; + foreach( $args as $key => $arg ){ + $atts .= ' ' . $key . '="' . htmlspecialchars($arg, ENT_QUOTES, $encoding = ini_get("default_charset"), false) . '"'; + } + } else { + $atts = trim( str_replace( "&", " ", $args ) ); + } + + $shortcode .= ' ' . $atts . ' php=true]'; + } + + echo do_shortcode( $shortcode ); + +} + +/** + * Template tag - gets popular posts. Deprecated in 2.0.3, use wpp_get_mostpopular instead. + * + * @since 1.0 + * @param mixed args + */ +function get_mostpopular($args = NULL) { + trigger_error( 'The get_mostpopular() template tag has been deprecated since 2.0.3. Please use wpp_get_mostpopular() instead.', E_USER_WARNING ); +} diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-translate.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-translate.php new file mode 100644 index 0000000000000000000000000000000000000000..de05c595d27a3158b2720d9b962180e7937862bf --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-translate.php @@ -0,0 +1,141 @@ +<?php +/** + * Obtains translation data from objects. + * + * @link http://cabrerahector.com + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + */ +/** + * Obtains translation data from objects. + * + * @since 4.0.0 + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/includes + * @author Hector Cabrera <me@cabrerahector.com> + */ + +class WPP_translate { + + /** + * Class instance. + * + * @since 4.0.0 + * @access private + * @var object|WPP_translate + */ + private static $instance; + + /** + * Default language code. + * + * @since 4.0.0 + * @access private + * @var string + */ + private $default_language; + + /** + * Current language code. + * + * @since 4.0.0 + * @access private + * @var string + */ + private $current_language; + + /** + * Initialize the collections used to maintain the actions and filters. + * + * @since 4.0.0 + * @access private + */ + private function __construct() { + + $this->default_language = apply_filters( 'wpml_default_language', NULL ); + $this->current_language = apply_filters( 'wpml_current_language', NULL ); + + } + + /** + * Get an instance of this class. + * + * @since 4.0.0 + * @return object|\WPP_translate + */ + public static function get_instance() { + + if ( is_null(self::$instance) ) { + self::$instance = new WPP_translate(); + } + + return self::$instance; + + } + + /* + * Retrieves the code of the default language. + * + * @since 4.0.0 + * @return string|null + */ + public function get_default_language() { + return $this->default_language; + } + + /* + * Retrieves the code of the currently active language. + * + * @since 4.0.0 + * @return string|null + */ + public function get_current_language() { + return $this->current_language; + } + + /* + * Retrieves the ID of an object. + * + * @since 4.0.0 + * @param integer $object_id + * @param string $object_type + * @param boolean $return_original_if_missing + * @param string $lang_code + * @return integer + */ + public function get_object_id( $object_id = null, $object_type = 'post', $return_original_if_missing = true, $lang_code = null ) { + + return apply_filters( + 'wpml_object_id', + $object_id, + $object_type, + $return_original_if_missing, + $lang_code + ); + + } + + /* + * Retrieves the language code of an object. + * + * @since 4.0.0 + * @param integer $object_id + * @param string $object_type + * @return string|null + */ + public function get_object_lang_code( $object_id = null, $object_type = 'post' ) { + + return apply_filters( + 'wpml_element_language_code', + null, + array( + 'element_id' => $object_id, + 'element_type' => $object_type + ) + ); + + } + +} // End WPP_translate class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-widget.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-widget.php new file mode 100644 index 0000000000000000000000000000000000000000..da7c0cbb97d2774ba6cbf561675263e91dec24e8 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts-widget.php @@ -0,0 +1,401 @@ +<?php + +class WPP_Widget extends WP_Widget { + + /** + * Administrative settings. + * + * @since 2.3.3 + * @var array + */ + private $admin_options = array(); + + public function __construct(){ + + // Create the widget + parent::__construct( + 'wpp', + 'WordPress Popular Posts', + array( + 'classname' => 'popular-posts', + 'description' => __( 'The most Popular Posts on your blog.', 'wordpress-popular-posts' ) + ) + ); + + $this->admin_options = WPP_Settings::get( 'admin_options' ); + + // Widget's AJAX hook + if ( $this->admin_options['tools']['ajax'] ) { + add_action( 'wp_ajax_wpp_get_popular', array( $this, 'get_popular') ); + add_action( 'wp_ajax_nopriv_wpp_get_popular', array( $this, 'get_popular') ); + } + + } + + /** + * Outputs the content of the widget. + * + * @since 1.0.0 + * @param array args The array of form elements + * @param array instance The current instance of the widget + */ + public function widget( $args, $instance ){ + /** + * @var string $name + * @var string $id + * @var string $description + * @var string $class + * @var string $before_widget + * @var string $after_widget + * @var string $before_title + * @var string $after_title + * @var string $widget_id + * @var string $widget_name + */ + extract( $args, EXTR_SKIP ); + + $markup = ( $instance['markup']['custom_html'] || has_filter('wpp_custom_html') || has_filter('wpp_post') ) + ? 'custom' + : 'regular'; + + echo "\n". "<!-- WordPress Popular Posts Plugin [W] [{$instance['range']}] [{$instance['order_by']}] [{$markup}]" . ( !empty($instance['pid']) ? " [PID]" : "" ) . ( !empty($instance['cat']) ? " [CAT]" : "" ) . ( !empty($instance['author']) ? " [UID]" : "" ) . " -->" . "\n"; + + echo "\n" . $before_widget . "\n"; + + // Has user set a title? + if ( '' != $instance['title'] ) { + + $title = apply_filters( 'widget_title', $instance['title'] ); + + if ( + $instance['markup']['custom_html'] + && $instance['markup']['title-start'] != "" + && $instance['markup']['title-end'] != "" + ) { + echo htmlspecialchars_decode( $instance['markup']['title-start'], ENT_QUOTES) . $title . htmlspecialchars_decode($instance['markup']['title-end'], ENT_QUOTES ); + } else { + echo $before_title . $title . $after_title; + } + } + + // Expose Widget ID for customization + $instance['widget_id'] = $widget_id; + + // Get posts + if ( $this->admin_options['tools']['ajax'] ) { + + if ( empty( $before_widget ) || !preg_match( '/id="[^"]*"/', $before_widget ) ) { + ?> + <p><?php printf( __('Error: cannot ajaxify WordPress Popular Posts on this theme. It\'s missing the <em>id</em> attribute on before_widget (see <a href="%s" target="_blank" rel="nofollow">register_sidebar</a> for more)', 'wordpress-popular-posts'), 'https://codex.wordpress.org/Function_Reference/register_sidebar' ); ?>.</p> + <?php + } else { + ?> + <script type="text/javascript"> + /* jQuery is available, so proceed */ + if ( window.jQuery ) { + + jQuery(document).ready(function($){ + + var widget_container = $('#<?php echo $widget_id; ?>'); + widget_container.append('<p class="wpp-loader"><span><?php _e( "Loading...", "wordpress-popular-posts" ); ?></span></p>'); + + $.get( + '<?php echo admin_url('admin-ajax.php'); ?>', + { + action: 'wpp_get_popular', + id: '<?php echo $this->number; ?>' + }, function( response ){ + widget_container.children("p.wpp-loader").remove(); + widget_container.append(response); + } + ); + + }); + + } /* jQuery is not defined */ + else { + if ( window.console && window.console.log ) { + window.console.log( 'WordPress Popular Posts: jQuery is not defined!' ); + } + } + </script> + <?php + } + } else { + $this->get_popular( $instance ); + } + + echo "\n" . $after_widget . "\n"; + + } + + /** + * Generates the administration form for the widget. + * + * @since 1.0.0 + * @param array instance The array of keys and values for the widget. + */ + public function form( $instance ){ + + $instance = WPP_Helper::merge_array_r( + WPP_Settings::$defaults[ 'widget_options' ], + (array) $instance + ); + $wpp_image = WPP_Image::get_instance(); + + include( plugin_dir_path( __FILE__ ) . '/widget-form.php' ); + + } + + /** + * Processes the widget's options to be saved. + * + * @since 1.0.0 + * @param array new_instance The previous instance of values before the update. + * @param array old_instance The new instance of values to be generated via the update. + * @return array instance Updated instance. + */ + public function update( $new_instance, $old_instance ){ + + $wpp_image = WPP_Image::get_instance(); + + $instance = $old_instance; + + $instance['title'] = htmlspecialchars( stripslashes_deep(strip_tags( $new_instance['title'] )), ENT_QUOTES ); + $instance['limit'] = ( WPP_Helper::is_number($new_instance['limit']) && $new_instance['limit'] > 0 ) + ? $new_instance['limit'] + : 10; + $instance['range'] = $new_instance['range']; + $instance['time_quantity'] = ( WPP_Helper::is_number($new_instance['time_quantity']) && $new_instance['time_quantity'] > 0 ) + ? $new_instance['time_quantity'] + : 24; + $instance['time_unit'] = $new_instance['time_unit']; + $instance['order_by'] = $new_instance['order_by']; + + // FILTERS + // user did not set a post type name, so we fall back to default + $instance['post_type'] = ( '' == $new_instance['post_type'] ) + ? 'post,page' + : $new_instance['post_type']; + + $instance['freshness'] = isset( $new_instance['freshness'] ); + + // Post / Page / CTP filter + $ids = array_filter( explode( ",", rtrim(preg_replace( '|[^0-9,]|', '', $new_instance['pid'] ), ",") ), 'is_numeric' ); + // Got no valid IDs, clear + if ( empty( $ids ) ) { + $instance['pid'] = ''; + } + else { + $instance['pid'] = implode( ",", $ids ); + } + + // Taxonomy filter + $instance['taxonomy'] = $new_instance['taxonomy']; + $instance['cat'] = ''; // Deprecated in 4.0.0! + + $ids = array_filter( explode( ",", rtrim(preg_replace( '|[^0-9,-]|', '', $new_instance['term_id'] ), ",") ), 'is_numeric' ); + // Got no valid IDs, clear + if ( empty( $ids ) ) { + $instance['term_id'] = ''; + } + else { + $instance['term_id'] = implode( ",", $ids ); + } + + // Author filter + $ids = array_filter( explode( ",", rtrim(preg_replace( '|[^0-9,]|', '', $new_instance['uid'] ), ",") ), 'is_numeric' ); + // Got no valid IDs, clear + if ( empty( $ids ) ) { + $instance['uid'] = ''; + } + else { + $instance['uid'] = implode( ",", $ids ); + } + + $instance['shorten_title']['words'] = $new_instance['shorten_title-words']; + $instance['shorten_title']['active'] = isset( $new_instance['shorten_title-active'] ); + $instance['shorten_title']['length'] = ( WPP_Helper::is_number($new_instance['shorten_title-length']) && $new_instance['shorten_title-length'] > 0 ) + ? $new_instance['shorten_title-length'] + : 25; + + $instance['post-excerpt']['keep_format'] = isset( $new_instance['post-excerpt-format'] ); + $instance['post-excerpt']['words'] = $new_instance['post-excerpt-words']; + $instance['post-excerpt']['active'] = isset( $new_instance['post-excerpt-active'] ); + $instance['post-excerpt']['length'] = ( WPP_Helper::is_number($new_instance['post-excerpt-length']) && $new_instance['post-excerpt-length'] > 0 ) + ? $new_instance['post-excerpt-length'] + : 55; + + $instance['thumbnail']['active'] = false; + $instance['thumbnail']['width'] = 15; + $instance['thumbnail']['height'] = 15; + + // can create thumbnails + if ( $wpp_image->can_create_thumbnails() ) { + + $instance['thumbnail']['active'] = isset( $new_instance['thumbnail-active'] ); + $instance['thumbnail']['build'] = $new_instance['thumbnail-size-source']; + + // Use predefined thumbnail sizes + if ( 'predefined' == $new_instance['thumbnail-size-source'] ) { + + $default_thumbnail_sizes = $wpp_image->get_image_sizes(); + $size = $default_thumbnail_sizes[ $new_instance['thumbnail-size'] ]; + + $instance['thumbnail']['width'] = $size['width']; + $instance['thumbnail']['height'] = $size['height']; + $instance['thumbnail']['crop'] = $size['crop']; + + } // Set thumbnail size manually + else { + if ( WPP_Helper::is_number($new_instance['thumbnail-width']) && WPP_Helper::is_number($new_instance['thumbnail-height']) ) { + $instance['thumbnail']['width'] = $new_instance['thumbnail-width']; + $instance['thumbnail']['height'] = $new_instance['thumbnail-height']; + $instance['thumbnail']['crop'] = true; + } + } + + } + + $instance['rating'] = isset( $new_instance['rating'] ); + $instance['stats_tag']['comment_count'] = isset( $new_instance['comment_count'] ); + $instance['stats_tag']['views'] = isset( $new_instance['views'] ); + $instance['stats_tag']['author'] = isset( $new_instance['author'] ); + $instance['stats_tag']['date']['active'] = isset( $new_instance['date'] ); + $instance['stats_tag']['date']['format'] = empty($new_instance['date_format']) + ? 'F j, Y' + : $new_instance['date_format']; + + $instance['stats_tag']['taxonomy']['active'] = isset( $new_instance['stats_taxonomy'] ); + $instance['stats_tag']['taxonomy']['name'] = isset( $new_instance['stats_taxonomy_name'] ) ? $new_instance['stats_taxonomy_name'] : 'category'; + $instance['stats_tag']['category'] = isset( $new_instance['stats_taxonomy'] ); // Deprecated in 4.0.0! + + $instance['markup']['custom_html'] = isset( $new_instance['custom_html'] ); + $instance['markup']['wpp-start'] = empty($new_instance['wpp-start']) + ? htmlspecialchars( '<ul class="wpp-list">', ENT_QUOTES ) + : htmlspecialchars( $new_instance['wpp-start'], ENT_QUOTES ); + + $instance['markup']['wpp-end'] = empty($new_instance['wpp-end']) + ? htmlspecialchars( '</ul>', ENT_QUOTES ) + : htmlspecialchars( $new_instance['wpp-end'], ENT_QUOTES ); + + $instance['markup']['post-html'] = empty($new_instance['post-html']) + ? htmlspecialchars( '<li>{thumb} {title} {stats}</li>', ENT_QUOTES ) + : htmlspecialchars( $new_instance['post-html'], ENT_QUOTES ); + + $instance['markup']['title-start'] = empty($new_instance['title-start']) + ? '' + : htmlspecialchars( $new_instance['title-start'], ENT_QUOTES ); + + $instance['markup']['title-end'] = empty($new_instance['title-end']) + ? '' : + htmlspecialchars( $new_instance['title-end'], ENT_QUOTES ); + + return $instance; + + } + + /** + * Returns HTML list via AJAX + * + * @since 2.3.3 + */ + public function get_popular( $instance = null ) { + + if ( defined('DOING_AJAX') && DOING_AJAX ) { + + if ( isset( $_GET['id'] ) && WPP_helper::is_number( $_GET['id'] ) ) { + + $id = $_GET['id']; + $widget_instances = $this->get_settings(); + + if ( isset( $widget_instances[$id] ) ) { + $instance = $widget_instances[$id]; + + if ( !isset( $instance['widget_id'] ) ) { + $instance['widget_id'] = $this->id; + } + } + + } + + } + + if ( is_array( $instance ) && !empty( $instance ) ) { + + // Return cached results + if ( $this->admin_options['tools']['cache']['active'] ) { + + $transient_name = md5( json_encode($instance) ); + $popular_posts = get_transient( $transient_name ); + + if ( false === $popular_posts ) { + + $popular_posts = new WPP_Query( $instance ); + + switch( $this->admin_options['tools']['cache']['interval']['time'] ){ + + case 'minute': + $time = 60; + break; + + case 'hour': + $time = 60 * 60; + break; + + case 'day': + $time = 60 * 60 * 24; + break; + + case 'week': + $time = 60 * 60 * 24 * 7; + break; + + case 'month': + $time = 60 * 60 * 24 * 30; + break; + + case 'year': + $time = 60 * 60 * 24 * 365; + break; + + $expiration = $time * $this->admin_options['tools']['cache']['interval']['value']; + + // Store transient + set_transient( $transient_name, $popular_posts, $expiration ); + + // Store transient in WPP transients array for garbage collection + $wpp_transients = get_site_option('wpp_transients'); + + if ( !$wpp_transients ) { + $wpp_transients = array( $transient_name ); + add_site_option( 'wpp_transients', $wpp_transients ); + } else { + if ( !in_array($transient_name, $wpp_transients) ) { + $wpp_transients[] = $transient_name; + update_site_option( 'wpp_transients', $wpp_transients ); + } + } + + } + + } + + } // Get popular posts + else { + $popular_posts = new WPP_Query( $instance ); + } + + $output = new WPP_Output( $popular_posts->get_posts(), $instance ); + + echo ( $this->admin_options['tools']['cache']['active'] ? '<!-- cached -->' : '' ); + $output->output(); + + } + + if ( defined('DOING_AJAX') && DOING_AJAX ) + wp_die(); + + } + +} // end class WPP_Widget diff --git a/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts.php b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts.php new file mode 100644 index 0000000000000000000000000000000000000000..d1629366861e0cc2dd300076de20a5a528217836 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/class-wordpress-popular-posts.php @@ -0,0 +1,231 @@ +<?php + +class WordPressPopularPosts { + + /** + * The unique identifier of this plugin. + * + * @since 4.0.0 + * @access protected + * @var string $plugin_name + */ + protected $plugin_name; + + /** + * The current version of this plugin. + * + * @since 4.0.0 + * @access protected + * @var string $version + */ + protected $version; + + /** + * Constructor. + * + * @since 4.0.0 + */ + public function __construct(){ + + $this->plugin_name = 'wordpress-popular-posts'; + $this->version = '4.0.0'; + + $this->load_dependencies(); + $this->set_locale(); + $this->define_admin_hooks(); + $this->define_public_hooks(); + + } + + /** + * Loads the required dependencies for this plugin. + * + * @since 4.0.0 + * @access private + */ + private function load_dependencies(){ + + /** + * The class responsible for defining internationalization functionality of the plugin. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-i18n.php'; + + /** + * The class responsible for translating objects. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-translate.php'; + + /** + * Settings class. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-settings.php'; + + /** + * Helper class. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-helper.php'; + + /** + * Template functions. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-template.php'; + + /** + * The class responsible for handling the actions and filters of the plugin. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-loader.php'; + + /** + * The class responsible for querying the database. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-query.php'; + + /** + * The class responsible for creating images. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-image.php'; + + /** + * The class responsible for building the HTML output. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-output.php'; + + /** + * The widget class. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-wordpress-popular-posts-widget.php'; + + /** + * The class responsible for defining all actions that occur on the admin-facing side of the site. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-wordpress-popular-posts-admin.php'; + + /** + * The class responsible for defining all actions that occur on the public-facing side of the site. + */ + require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-wordpress-popular-posts-public.php'; + + /** + * Get loader. + */ + $this->loader = new WPP_Loader(); + + } + + /** + * Register all of the hooks related to the admin area functionality of the plugin. + * + * @since 4.0.0 + * @access private + */ + public function define_admin_hooks() { + + $plugin_admin = new WPP_Admin( $this->get_plugin_name(), $this->get_version() ); + + // Check admin notices + $this->loader->add_action( 'admin_notices', $plugin_admin, 'check_admin_notices' ); + // Upgrade check + $this->loader->add_action( 'init', $plugin_admin, 'upgrade_check' ); + // Hook fired when a new blog is activated on WP Multisite + $this->loader->add_action( 'wpmu_new_blog', $plugin_admin, 'activate_new_site' ); + // Hook fired when a blog is deleted on WP Multisite + $this->loader->add_filter( 'wpmu_drop_tables', $plugin_admin, 'delete_site_data', 10, 2 ); + // Load WPP's admin styles and scripts + $this->loader->add_action( 'admin_print_styles', $plugin_admin, 'enqueue_styles' ); + $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' ); + // Add admin screen + $this->loader->add_action( 'admin_menu', $plugin_admin, 'add_plugin_admin_menu' ); + // Thickbox setup + $this->loader->add_action( 'admin_init', $plugin_admin, 'thickbox_setup' ); + // Contextual help + $this->loader->add_action( 'admin_head', $plugin_admin, 'add_contextual_help' ); + // Add plugin settings link + $this->loader->add_filter( 'plugin_action_links', $plugin_admin, 'add_plugin_settings_link', 10, 2 ); + // Update chart + $this->loader->add_action( 'wp_ajax_wpp_update_chart', $plugin_admin, 'update_chart' ); + // Get lists + $this->loader->add_action( 'wp_ajax_wpp_get_most_viewed', $plugin_admin, 'get_most_viewed' ); + $this->loader->add_action( 'wp_ajax_wpp_get_most_commented', $plugin_admin, 'get_most_commented' ); + // Delete plugin data + $this->loader->add_action( 'wp_ajax_wpp_clear_data', $plugin_admin, 'clear_data' ); + // Empty plugin's images cache + $this->loader->add_action( 'wp_ajax_wpp_clear_thumbnail', $plugin_admin, 'clear_thumbnails' ); + // Flush cached thumbnail on featured image change + $this->loader->add_action( 'update_postmeta', $plugin_admin, 'flush_post_thumbnail', 10, 4 ); + // Purge post data on post/page deletion + $this->loader->add_action( 'admin_init', $plugin_admin, 'purge_post_data' ); + // Purge old data on demand + $this->loader->add_action( 'wpp_cache_event', $plugin_admin, 'purge_data' ); + // Initialize widget + $this->loader->add_action( 'widgets_init', $plugin_admin, 'register_widget' ); + + } + + /** + * Register all of the hooks related to the public area functionality of the plugin. + * + * @since 4.0.0 + * @access private + */ + public function define_public_hooks() { + + $plugin_public = new WPP_Public( $this->get_plugin_name(), $this->get_version() ); + + // Register logging AJAX hook + $this->loader->add_action( 'wp_ajax_update_views_ajax', $plugin_public, 'update_views' ); + $this->loader->add_action( 'wp_ajax_nopriv_update_views_ajax', $plugin_public, 'update_views' ); + // Add WPP's stylesheet and scripts + $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' ); + $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts' ); + // Add [wpp] shortcode + $this->loader->add_shortcode( 'wpp', $plugin_public, 'wpp_shortcode' ); + + } + + /** + * Define the locale for this plugin for internationalization. + * + * Uses the Plugin_Name_i18n class in order to set the domain and to register the hook + * with WordPress. + * + * @since 4.0.0 + * @access private + */ + private function set_locale() { + + $plugin_i18n = new WPP_i18n(); + $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' ); + + } + + /** + * The name of the plugin used to uniquely identify it within the context of + * WordPress and to define internationalization functionality. + * + * @since 4.0.0 + * @return string The name of the plugin. + */ + public function get_plugin_name() { + return $this->plugin_name; + } + + /** + * Retrieve the version number of the plugin. + * + * @since 4.0.0 + * @return string The version number of the plugin. + */ + public function get_version() { + return $this->version; + } + + /** + * Run the loader to execute all of the hooks with WordPress. + * + * @since 4.0.0 + */ + public function run() { + $this->loader->run(); + } + +} // End WordPressPopularPosts class diff --git a/wp-content/plugins/wordpress-popular-posts/includes/widget-form.php b/wp-content/plugins/wordpress-popular-posts/includes/widget-form.php new file mode 100644 index 0000000000000000000000000000000000000000..631e67f5795d178a82f3147775c7bdc6ee969b35 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/includes/widget-form.php @@ -0,0 +1,189 @@ +<!-- Widget title --> +<p> + <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title', 'wordpress-popular-posts'); ?>:</label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#what-does-title-do" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>" target="_blank">?</a>]</small> <br /> + <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" class="widefat" /> +</p> + +<!-- Limit --> +<p> + <label for="<?php echo $this->get_field_id( 'limit' ); ?>"><?php _e('Show up to', 'wordpress-popular-posts'); ?>:</label><br /> + <input type="text" id="<?php echo $this->get_field_id( 'limit' ); ?>" name="<?php echo $this->get_field_name( 'limit' ); ?>" value="<?php echo $instance['limit']; ?>" class="widefat" style="width:50px!important" /> <?php _e('posts', 'wordpress-popular-posts'); ?> +</p> + +<!-- Order by --> +<p> + <label for="<?php echo $this->get_field_id( 'order_by' ); ?>"><?php _e('Sort posts by', 'wordpress-popular-posts'); ?>:</label><br /> + <select id="<?php echo $this->get_field_id( 'order_by' ); ?>" name="<?php echo $this->get_field_name( 'order_by' ); ?>" class="widefat"> + <option value="comments" <?php if ( 'comments' == $instance['order_by'] ) echo 'selected="selected"'; ?>><?php _e('Comments', 'wordpress-popular-posts'); ?></option> + <option value="views" <?php if ( 'views' == $instance['order_by'] ) echo 'selected="selected"'; ?>><?php _e('Total views', 'wordpress-popular-posts'); ?></option> + <option value="avg" <?php if ( 'avg' == $instance['order_by'] ) echo 'selected="selected"'; ?>><?php _e('Avg. daily views', 'wordpress-popular-posts'); ?></option> + </select> +</p> + +<!-- Filters --> +<br /><hr /><br /> + +<legend><strong><?php _e('Filters', 'wordpress-popular-posts'); ?></strong></legend><br /> + +<label for="<?php echo $this->get_field_id( 'range' ); ?>"><?php _e('Time Range', 'wordpress-popular-posts'); ?>:</label><br /> +<select id="<?php echo $this->get_field_id( 'range' ); ?>" name="<?php echo $this->get_field_name( 'range' ); ?>" class="widefat" style="margin-bottom:5px;"> + <option value="daily" <?php if ( 'daily' == $instance['range'] || 'last24hours' == $instance['range'] ) echo 'selected="selected"'; ?>><?php _e('Last 24 hours', 'wordpress-popular-posts'); ?></option> + <option value="weekly" <?php if ( 'weekly' == $instance['range'] || 'last7days' == $instance['range'] ) echo 'selected="selected"'; ?>><?php _e('Last 7 days', 'wordpress-popular-posts'); ?></option> + <option value="monthly" <?php if ( 'monthly' == $instance['range'] || 'last30days' == $instance['range'] ) echo 'selected="selected"'; ?>><?php _e('Last 30 days', 'wordpress-popular-posts'); ?></option> + <option value="all" <?php if ( 'all' == $instance['range'] ) echo 'selected="selected"'; ?>><?php _e('All-time', 'wordpress-popular-posts'); ?></option> + <option value="custom" <?php if ( 'custom' == $instance['range'] ) echo 'selected="selected"'; ?>><?php _e('Custom', 'wordpress-popular-posts'); ?></option> +</select><br /> + +<div style="display: <?php echo ( 'custom' == $instance['range'] ) ? "block" : "none"; ?>"> + <input type="text" id="<?php echo $this->get_field_id( 'time_quantity' ); ?>" name="<?php echo $this->get_field_name( 'time_quantity' ); ?>" value="<?php echo $instance['time_quantity']; ?>" style="display: inline; float: left; width: 50px!important;" /> + + <select id="<?php echo $this->get_field_id( 'time_unit' ); ?>" name="<?php echo $this->get_field_name( 'time_unit' ); ?>" style="margin-bottom: 5px;"> + <option <?php if ($instance['time_unit'] == "minute") {?>selected="selected"<?php } ?> value="minute"><?php _e("Minute(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($instance['time_unit'] == "hour") {?>selected="selected"<?php } ?> value="hour"><?php _e("Hour(s)", 'wordpress-popular-posts'); ?></option> + <option <?php if ($instance['time_unit'] == "day") {?>selected="selected"<?php } ?> value="day"><?php _e("Day(s)", 'wordpress-popular-posts'); ?></option> + </select> +</div> +<div class="clearfix"></div> + +<input type="checkbox" class="checkbox" <?php echo ($instance['freshness']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'freshness' ); ?>" name="<?php echo $this->get_field_name( 'freshness' ); ?>" /> <label for="<?php echo $this->get_field_id( 'freshness' ); ?>"><small><?php _e('Display only posts published within the selected Time Range', 'wordpress-popular-posts'); ?></small></label><br /><br /> + +<label for="<?php echo $this->get_field_id( 'post_type' ); ?>"><?php _e('Post type(s)', 'wordpress-popular-posts'); ?>:</label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#what-is-post-type-for" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>" target="_blank">?</a>]</small> +<input type="text" id="<?php echo $this->get_field_id( 'post_type' ); ?>" name="<?php echo $this->get_field_name( 'post_type' ); ?>" value="<?php echo $instance['post_type']; ?>" class="widefat" /><br /><br /> + +<label for="<?php echo $this->get_field_id( 'pid' ); ?>"><?php _e('Post ID(s) to exclude', 'wordpress-popular-posts'); ?>:</label> +<input type="text" id="<?php echo $this->get_field_id( 'pid' ); ?>" name="<?php echo $this->get_field_name( 'pid' ); ?>" value="<?php echo $instance['pid']; ?>" class="widefat" /><br /><br /> + +<label for="<?php echo $this->get_field_id( 'tax_id' ); ?>"><?php _e('Taxonomy', 'wordpress-popular-posts'); ?>:</label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#what-is-category-ids-for" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>" target="_blank">?</a>]</small><br /> +<?php +// Taxonomy filter +if ( $taxonomies = get_taxonomies( array('public' => true), 'objects' ) ) { + + foreach ( $taxonomies as $taxonomy ) { + if ( 'post_format' == $taxonomy->name ) + continue; + + echo '<label><input type="radio" name="' . $this->get_field_name( 'taxonomy' ) . '" value="' . $taxonomy->name . '"' . ( ( !empty($instance['cat']) && 'category' == $taxonomy->name ) || ( $instance['taxonomy'] == $taxonomy->name ) ? ' checked' : '' ) . '> ' . $taxonomy->labels->singular_name . '</label><br>'; + } +?> +<input type="text" id="<?php echo $this->get_field_id( 'term_id' ); ?>" name="<?php echo $this->get_field_name( 'term_id' ); ?>" value="<?php echo ( !empty($instance['cat']) ) ? $instance['cat'] : $instance['term_id']; ?>" class="widefat" style="margin-top: 4px;" /><br /> +<small><?php _e('Taxonomy IDs, separated by comma (prefix a minus sign to exclude)', 'wordpress-popular-posts'); ?></small> +<br /><br /> +<?php +} +?> + +<label for="<?php echo $this->get_field_id( 'uid' ); ?>"><?php _e('Author ID(s)', 'wordpress-popular-posts'); ?>:</label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#what-is-authors-ids-for" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>" target="_blank">?</a>]</small> +<input type="text" id="<?php echo $this->get_field_id( 'uid' ); ?>" name="<?php echo $this->get_field_name( 'uid' ); ?>" value="<?php echo $instance['author']; ?>" class="widefat" /><br /><br /> + +<!-- Post features --> +<br /><hr /><br /> + +<legend><strong><?php _e('Posts settings', 'wordpress-popular-posts'); ?></strong></legend> +<br /> + +<div style="display:<?php if ( function_exists('the_ratings_results') ) : ?>block<?php else: ?>none<?php endif; ?>;"> + <input type="checkbox" class="checkbox" <?php echo ($instance['rating']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'rating' ); ?>" name="<?php echo $this->get_field_name( 'rating' ); ?>" /> <label for="<?php echo $this->get_field_id( 'rating' ); ?>"><?php _e('Display post rating', 'wordpress-popular-posts'); ?></label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#what-does-display-post-rating-do" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>" target="_blank">?</a>]</small> +</div> + +<input type="checkbox" class="checkbox" <?php echo ($instance['shorten_title']['active']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'shorten_title-active' ); ?>" name="<?php echo $this->get_field_name( 'shorten_title-active' ); ?>" /> <label for="<?php echo $this->get_field_id( 'shorten_title-active' ); ?>"><?php _e('Shorten title', 'wordpress-popular-posts'); ?></label><br /> + +<div style="display:<?php if ($instance['shorten_title']['active']) : ?>block<?php else: ?>none<?php endif; ?>; width:90%; margin:10px 0; padding:3% 5%; background:#f5f5f5;"> + <label for="<?php echo $this->get_field_id( 'shorten_title-length' ); ?>"><?php _e('Shorten title to', 'wordpress-popular-posts'); ?> <input type="text" id="<?php echo $this->get_field_id( 'shorten_title-length' ); ?>" name="<?php echo $this->get_field_name( 'shorten_title-length' ); ?>" value="<?php echo $instance['shorten_title']['length']; ?>" class="widefat" style="width:50px!important" /></label><br /> + <label><input type="radio" name="<?php echo $this->get_field_name( 'shorten_title-words' ); ?>" value="0" <?php echo (!isset($instance['shorten_title']['words']) || !$instance['shorten_title']['words']) ? 'checked="checked"' : ''; ?> /> <?php _e('characters', 'wordpress-popular-posts'); ?></label><br /> + <label><input type="radio" name="<?php echo $this->get_field_name( 'shorten_title-words' ); ?>" value="1" <?php echo (isset($instance['shorten_title']['words']) && $instance['shorten_title']['words']) ? 'checked="checked"' : ''; ?> /> <?php _e('words', 'wordpress-popular-posts'); ?></label> +</div> + +<input type="checkbox" class="checkbox" <?php echo ($instance['post-excerpt']['active']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'post-excerpt-active' ); ?>" name="<?php echo $this->get_field_name( 'post-excerpt-active' ); ?>" /> <label for="<?php echo $this->get_field_id( 'post-excerpt-active' ); ?>"><?php _e('Display post excerpt', 'wordpress-popular-posts'); ?></label><br /> + +<div style="display:<?php if ($instance['post-excerpt']['active']) : ?>block<?php else: ?>none<?php endif; ?>; width:90%; margin:10px 0; padding:3% 5%; background:#f5f5f5;"> + <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id( 'post-excerpt-format' ); ?>" name="<?php echo $this->get_field_name( 'post-excerpt-format' ); ?>" <?php echo ($instance['post-excerpt']['keep_format']) ? 'checked="checked"' : ''; ?> /> <label for="<?php echo $this->get_field_id( 'post-excerpt-format' ); ?>"><?php _e('Keep text format and links', 'wordpress-popular-posts'); ?></label><br /><br /> + <label for="<?php echo $this->get_field_id( 'post-excerpt-length' ); ?>"><?php _e('Excerpt length', 'wordpress-popular-posts'); ?>: <input type="text" id="<?php echo $this->get_field_id( 'post-excerpt-length' ); ?>" name="<?php echo $this->get_field_name( 'post-excerpt-length' ); ?>" value="<?php echo $instance['post-excerpt']['length']; ?>" class="widefat" style="width:50px!important" /></label><br /> + + <label><input type="radio" name="<?php echo $this->get_field_name( 'post-excerpt-words' ); ?>" value="0" <?php echo (!isset($instance['post-excerpt']['words']) || !$instance['post-excerpt']['words']) ? 'checked="checked"' : ''; ?> /> <?php _e('characters', 'wordpress-popular-posts'); ?></label><br /> + <label><input type="radio" name="<?php echo $this->get_field_name( 'post-excerpt-words' ); ?>" value="1" <?php echo (isset($instance['post-excerpt']['words']) && $instance['post-excerpt']['words']) ? 'checked="checked"' : ''; ?> /> <?php _e('words', 'wordpress-popular-posts'); ?></label> +</div> + +<input type="checkbox" class="checkbox" <?php echo ($instance['thumbnail']['active'] && $wpp_image->can_create_thumbnails()) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'thumbnail-active' ); ?>" name="<?php echo $this->get_field_name( 'thumbnail-active' ); ?>" /> <label for="<?php echo $this->get_field_id( 'thumbnail-active' ); ?>"><?php _e('Display post thumbnail', 'wordpress-popular-posts'); ?></label> + +<div style="display:<?php if ($instance['thumbnail']['active']) : ?>block<?php else: ?>none<?php endif; ?>; width:90%; margin:10px 0; padding:3% 5%; background:#f5f5f5;"> + <label><input type='radio' id='thumbnail-predefined-size' name='<?php echo $this->get_field_name( 'thumbnail-size-source' ); ?>' value='predefined' <?php echo ($instance['thumbnail']['build'] == 'predefined') ? 'checked="checked"' : ''; ?> /><?php _e('Use predefined size', 'wordpress-popular-posts'); ?></label><br /> + + <select id="<?php echo $this->get_field_id( 'thumbnail-size' ); ?>" name="<?php echo $this->get_field_name( 'thumbnail-size' ); ?>" class="widefat" style="margin:5px 0;"> + <?php + foreach ( $wpp_image->get_image_sizes() as $name => $attr ) : + echo '<option value="' . $name . '"' . ( ($instance['thumbnail']['build'] == 'predefined' && $attr['width'] == $instance['thumbnail']['width'] && $attr['height'] == $instance['thumbnail']['height'] ) ? ' selected="selected"' : '' ) . '>' . $name . ' (' . $attr['width'] . ' x ' . $attr['height'] . ( $attr['crop'] ? ', hard crop' : ', soft crop' ) . ')</option>'; + endforeach; + ?> + </select> + + <hr /> + + <label><input type='radio' id='thumbnail-manual-size' name='<?php echo $this->get_field_name( 'thumbnail-size-source' ); ?>' value='manual' <?php echo ($instance['thumbnail']['build'] == 'manual') ? 'checked="checked"' : ''; ?> /><?php _e('Set size manually', 'wordpress-popular-posts'); ?></label><br /> + + <label for="<?php echo $this->get_field_id( 'thumbnail-width' ); ?>"><?php _e('Width', 'wordpress-popular-posts'); ?>:</label> + <input type="text" id="<?php echo $this->get_field_id( 'thumbnail-width' ); ?>" name="<?php echo $this->get_field_name( 'thumbnail-width' ); ?>" value="<?php echo $instance['thumbnail']['width']; ?>" class="widefat" style="margin:3px 0; width:50px!important" <?php echo ($wpp_image->can_create_thumbnails()) ? '' : 'disabled="disabled"' ?> /> px<br /> + + <label for="<?php echo $this->get_field_id( 'thumbnail-height' ); ?>"><?php _e('Height', 'wordpress-popular-posts'); ?>:</label> + <input type="text" id="<?php echo $this->get_field_id( 'thumbnail-height' ); ?>" name="<?php echo $this->get_field_name( 'thumbnail-height' ); ?>" value="<?php echo $instance['thumbnail']['height']; ?>" class="widefat" style="width:50px!important" <?php echo ($wpp_image->can_create_thumbnails()) ? '' : 'disabled="disabled"' ?> /> px +</div><br /> + +<!-- Stats tag options --> +<br /><hr /><br /> + +<legend><strong><?php _e('Stats Tag settings', 'wordpress-popular-posts'); ?></strong></legend><br /> + +<input type="checkbox" class="checkbox" <?php echo ($instance['stats_tag']['comment_count']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'comment_count' ); ?>" name="<?php echo $this->get_field_name( 'comment_count' ); ?>" /> <label for="<?php echo $this->get_field_id( 'comment_count' ); ?>"><?php _e('Display comment count', 'wordpress-popular-posts'); ?></label><br /> + +<input type="checkbox" class="checkbox" <?php echo ($instance['stats_tag']['views']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'views' ); ?>" name="<?php echo $this->get_field_name( 'views' ); ?>" /> <label for="<?php echo $this->get_field_id( 'views' ); ?>"><?php _e('Display views', 'wordpress-popular-posts'); ?></label><br /> + +<input type="checkbox" class="checkbox" <?php echo ($instance['stats_tag']['author']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'author' ); ?>" name="<?php echo $this->get_field_name( 'author' ); ?>" /> <label for="<?php echo $this->get_field_id( 'author' ); ?>"><?php _e('Display author', 'wordpress-popular-posts'); ?></label><br /> + +<input type="checkbox" class="checkbox" <?php echo ($instance['stats_tag']['date']['active']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'date' ); ?>" name="<?php echo $this->get_field_name( 'date' ); ?>" /> <label for="<?php echo $this->get_field_id( 'date' ); ?>"><?php _e('Display date', 'wordpress-popular-posts'); ?></label><br /> + +<div style="display:<?php if ($instance['stats_tag']['date']['active']) : ?>block<?php else: ?>none<?php endif; ?>; width:90%; margin:10px 0; padding:3% 5%; background:#f5f5f5;"> + <legend><strong><?php _e('Date Format', 'wordpress-popular-posts'); ?></strong></legend><br /> + + <label title='m/d/Y'><input type='radio' name='<?php echo $this->get_field_name( 'date_format' ); ?>' value='relative' <?php echo ($instance['stats_tag']['date']['format'] == 'relative') ? 'checked="checked"' : ''; ?> /><?php _e('Relative', 'wordpress-popular-posts'); ?></label><br /> + <label title='<?php echo get_option('date_format'); ?>'><input type='radio' name='<?php echo $this->get_field_name( 'date_format' ); ?>' value='<?php echo get_option('date_format'); ?>' <?php echo ($instance['stats_tag']['date']['format'] == get_option('date_format')) ? 'checked="checked"' : ''; ?> /><?php echo date_i18n(get_option('date_format'), time()); ?></label> <small>(<a href="<?php echo admin_url('options-general.php'); ?>" title="<?php _e('WordPress Date Format', 'wordpress-popular-posts'); ?>" target="_blank"><?php _e('WordPress Date Format', 'wordpress-popular-posts'); ?></a>)</small><br /> + <label title='F j, Y'><input type='radio' name='<?php echo $this->get_field_name( 'date_format' ); ?>' value='F j, Y' <?php echo ($instance['stats_tag']['date']['format'] == 'F j, Y') ? 'checked="checked"' : ''; ?> /><?php echo date_i18n('F j, Y', time()); ?></label><br /> + <label title='Y/m/d'><input type='radio' name='<?php echo $this->get_field_name( 'date_format' ); ?>' value='Y/m/d' <?php echo ($instance['stats_tag']['date']['format'] == 'Y/m/d') ? 'checked="checked"' : ''; ?> /><?php echo date_i18n('Y/m/d', time()); ?></label><br /> + <label title='m/d/Y'><input type='radio' name='<?php echo $this->get_field_name( 'date_format' ); ?>' value='m/d/Y' <?php echo ($instance['stats_tag']['date']['format'] == 'm/d/Y') ? 'checked="checked"' : ''; ?> /><?php echo date_i18n('m/d/Y', time()); ?></label><br /> + <label title='d/m/Y'><input type='radio' name='<?php echo $this->get_field_name( 'date_format' ); ?>' value='d/m/Y' <?php echo ($instance['stats_tag']['date']['format'] == 'd/m/Y') ? 'checked="checked"' : ''; ?> /><?php echo date_i18n('d/m/Y', time()); ?></label> +</div> + +<input type="checkbox" class="checkbox" <?php echo ($instance['stats_tag']['taxonomy']['active'] || $instance['stats_tag']['category']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'stats_taxonomy' ); ?>" name="<?php echo $this->get_field_name( 'stats_taxonomy' ); ?>" /> <label for="<?php echo $this->get_field_id( 'stats_taxonomy' ); ?>"><?php _e('Display taxonomy', 'wordpress-popular-posts'); ?></label><br /> +<?php +if ( $taxonomies ) { +?> +<div style="display:<?php if ($instance['stats_tag']['taxonomy']['active'] || $instance['stats_tag']['category']) : ?>block<?php else: ?>none<?php endif; ?>; width:90%; margin:10px 0; padding:3% 5%; background:#f5f5f5;"> +<?php + foreach ( $taxonomies as $taxonomy ) { + if ( 'post_format' == $taxonomy->name ) + continue; + + echo '<label><input type="radio" name="' . $this->get_field_name( 'stats_taxonomy_name' ) . '" value="' . $taxonomy->name . '"' . ( ( $instance['stats_tag']['taxonomy']['name'] == $taxonomy->name ) ? ' checked' : '' ) . '> ' . $taxonomy->labels->singular_name . '</label><br>'; + } +?> +</div> +<?php +} +?> + +<!-- HTML Markup options --> +<br /><hr /><br /> + +<legend><strong><?php _e('HTML Markup settings', 'wordpress-popular-posts'); ?></strong></legend><br /> + +<input type="checkbox" class="checkbox" <?php echo ($instance['markup']['custom_html']) ? 'checked="checked"' : ''; ?> id="<?php echo $this->get_field_id( 'custom_html' ); ?>" name="<?php echo $this->get_field_name( 'custom_html' ); ?>" /> <label for="<?php echo $this->get_field_id( 'custom_html' ); ?>"><?php _e('Use custom HTML Markup', 'wordpress-popular-posts'); ?></label> <small>[<a href="https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#what-does-use-custom-html-markup-do" title="<?php _e('What is this?', 'wordpress-popular-posts'); ?>" target="_blank">?</a>]</small><br /> + +<div style="display:<?php if ($instance['markup']['custom_html']) : ?>block<?php else: ?>none<?php endif; ?>; width:90%; margin:10px 0; padding:3% 5%; background:#f5f5f5;"> + <p style="font-size:11px"><label for="<?php echo $this->get_field_id( 'title-start' ); ?>"><?php _e('Before / after title', 'wordpress-popular-posts'); ?>:</label> <br /> + <input type="text" id="<?php echo $this->get_field_id( 'title-start' ); ?>" name="<?php echo $this->get_field_name( 'title-start' ); ?>" value="<?php echo $instance['markup']['title-start']; ?>" class="widefat" style="width:49%!important" <?php echo ($instance['markup']['custom_html']) ? '' : 'disabled="disabled"' ?> /> <input type="text" id="<?php echo $this->get_field_id( 'title-end' ); ?>" name="<?php echo $this->get_field_name( 'title-end' ); ?>" value="<?php echo $instance['markup']['title-end']; ?>" class="widefat" style="width:49%!important" <?php echo ($instance['markup']['custom_html']) ? '' : 'disabled="disabled"' ?> /></p> + + <p style="font-size:11px"><label for="<?php echo $this->get_field_id( 'wpp_start' ); ?>"><?php _e('Before / after Popular Posts', 'wordpress-popular-posts'); ?>:</label> <br /> + <input type="text" id="<?php echo $this->get_field_id( 'wpp-start' ); ?>" name="<?php echo $this->get_field_name( 'wpp-start' ); ?>" value="<?php echo esc_attr($instance['markup']['wpp-start']); ?>" class="widefat" style="width:49%!important" <?php echo ($instance['markup']['custom_html']) ? '' : 'disabled="disabled"' ?> /> <input type="text" id="<?php echo $this->get_field_id( 'wpp-end' ); ?>" name="<?php echo $this->get_field_name( 'wpp-end' ); ?>" value="<?php echo $instance['markup']['wpp-end']; ?>" class="widefat" style="width:49%!important" <?php echo ($instance['markup']['custom_html']) ? '' : 'disabled="disabled"' ?> /></p> + + <p style="font-size:11px"><label for="<?php echo $this->get_field_id( 'post-html' ); ?>"><?php _e('Post HTML Markup', 'wordpress-popular-posts'); ?>:</label> <br /> + <textarea class="widefat" rows="10" id="<?php echo $this->get_field_id( 'post-html' ); ?>" name="<?php echo $this->get_field_name( 'post-html' ); ?>"><?php echo $instance['markup']['post-html']; ?></textarea> +</div> +<br /> \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/index.php b/wp-content/plugins/wordpress-popular-posts/index.php index a99ea83b68d5e3249c7ef33505976f7beb972072..a0cf42a0a344342a3a3fd6ba524a11ea39de9f08 100644 --- a/wp-content/plugins/wordpress-popular-posts/index.php +++ b/wp-content/plugins/wordpress-popular-posts/index.php @@ -1 +1,2 @@ -<?php // Silence is golden ?> \ No newline at end of file +<?php +// Silence is golden diff --git a/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_ES.mo b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_ES.mo new file mode 100644 index 0000000000000000000000000000000000000000..9af872539b1645f4d769ff70b0051278ce6c8b21 Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_ES.mo differ diff --git a/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_ES.po b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_ES.po new file mode 100644 index 0000000000000000000000000000000000000000..0b76ed338b2d9768de58d43bb2524d2fbbc32504 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_ES.po @@ -0,0 +1,1332 @@ +# Copyright (C) 2014 Wordpress Popular Posts +# This file is distributed under the same license as the Wordpress Popular Posts package. +msgid "" +msgstr "" +"Project-Id-Version: WordPress Popular Posts\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/wordpress-popular-posts\n" +"POT-Creation-Date: 2017-09-19 15:36-0400\n" +"PO-Revision-Date: 2017-09-19 15:38-0400\n" +"Last-Translator: \n" +"Language-Team: Héctor Cabrera <me@cabrerahector.com>\n" +"Language: es_ES\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" +"X-Poedit-KeywordsList: _e;__;__ngettext;__ngettext_noop;_n_noop;_x;_nx;" +"_nx_noop;_ex;esc_attr__;esc_attr_e;esc_attr_x;esc_html__;esc_html_e;" +"esc_html_x;_c;_nc;_n:1,2\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPath-1: ..\n" + +#: ../admin/class-wordpress-popular-posts-admin.php:221 +msgid "Upload" +msgstr "Subir" + +#: ../admin/class-wordpress-popular-posts-admin.php:238 +msgid "Overview" +msgstr "General" + +#: ../admin/class-wordpress-popular-posts-admin.php:239 +msgid "" +"Welcome to WordPress Popular Posts' Dashboard! In this screen you will find " +"statistics on what's popular on your site, tools to further tweak WPP to " +"your needs, and more!" +msgstr "" +"¡Bienvenido al Dashboard de WordPress Popular Posts! En esta pantalla " +"encontrarás estadísticas de lo más popular en tu sitio, " +"herramientas para configurar WPP a tu gusto, ¡y mucho más!" + +#: ../admin/class-wordpress-popular-posts-admin.php:245 +msgid "Like this plugin?" +msgstr "¿Te gusta este plugin?" + +#: ../admin/class-wordpress-popular-posts-admin.php:247 +msgid "" +"Each donation motivates me to keep releasing free stuff for the WordPress " +"community!" +msgstr "" +"¡Cada donación me motiva a seguir publicando cosas gratuitas " +"para la comunidad de WordPress!" + +#: ../admin/class-wordpress-popular-posts-admin.php:254 +#, php-format +msgid "You can <a href=\"%s\" target=\"_blank\">leave a review</a>, too!" +msgstr "" +"¡Puedes <a href=\"%s\" target=\"_blank\">dejar una reseña</a> " +"también!" + +#: ../admin/class-wordpress-popular-posts-admin.php:263 +#, php-format +msgid "" +"<p><strong>For more information:</strong></p><ul><li><a href=\"%1$s" +"\">Documentation</a></li><li><a href=\"%2$s\">Support</a></li></ul>" +msgstr "" +"<p><strong>Para más información:</strong></p><ul><li><a href=" +"\"%1$s\">Documentación</a></li><li><a href=\"%2$s\">Soporte</a></li></" +"ul>" + +#: ../admin/class-wordpress-popular-posts-admin.php:631 +#: ../admin/class-wordpress-popular-posts-admin.php:750 +#: ../admin/partials/admin.php:412 ../admin/partials/admin.php:459 +#: ../includes/class-wordpress-popular-posts-output.php:689 +#, php-format +msgid "1 view" +msgid_plural "%s views" +msgstr[0] "1 vista" +msgstr[1] "%s vistas" + +#: ../admin/class-wordpress-popular-posts-admin.php:631 +#: ../admin/class-wordpress-popular-posts-admin.php:805 +#: ../admin/partials/admin.php:412 ../admin/partials/admin.php:459 +#: ../includes/class-wordpress-popular-posts-output.php:670 +#, php-format +msgid "1 comment" +msgid_plural "%s comments" +msgstr[0] "1 comentario" +msgstr[1] "%s comentarios" + +#: ../admin/class-wordpress-popular-posts-admin.php:663 +#: ../includes/widget-form.php:17 +msgid "Comments" +msgstr "Comentarios" + +#: ../admin/class-wordpress-popular-posts-admin.php:667 +msgid "Views" +msgstr "Vistas" + +#: ../admin/class-wordpress-popular-posts-admin.php:751 +#: ../admin/class-wordpress-popular-posts-admin.php:806 +#: ../admin/partials/admin.php:413 ../admin/partials/admin.php:460 +msgid "View" +msgstr "Vista" + +#: ../admin/class-wordpress-popular-posts-admin.php:751 +#: ../admin/class-wordpress-popular-posts-admin.php:806 +#: ../admin/partials/admin.php:413 ../admin/partials/admin.php:460 +msgid "Edit" +msgstr "Editar" + +#: ../admin/class-wordpress-popular-posts-admin.php:762 +#: ../admin/class-wordpress-popular-posts-admin.php:817 +#: ../admin/partials/admin.php:424 ../admin/partials/admin.php:471 +msgid "" +"Looks like traffic to your site is a little light right now. <br />Spread " +"the word and come back later!" +msgstr "" +"Parece que el tráfico hacia tu sitio web está un poco ligero. " +"<br />¡Haz un poco de promoción y regresa luego!" + +#: ../admin/class-wordpress-popular-posts-admin.php:889 +msgid "Settings" +msgstr "Configuración" + +#: ../admin/class-wordpress-popular-posts-admin.php:1241 +#, php-format +msgid "" +"Your PHP installation is too old. WordPress Popular Posts requires at least " +"PHP version %1$s to function correctly. Please contact your hosting provider " +"and ask them to upgrade PHP to %1$s or higher." +msgstr "" +"Tu versión de PHP es muy antigua. El plugin WordPress Popular Posts " +"requiere al menos PHP version %1$s para funcionar correctamente. Por favor " +"contacta a tu proveedor de hosting y solicita que se actualice PHP a %1$s o " +"mejor." + +#: ../admin/class-wordpress-popular-posts-admin.php:1248 +#, php-format +msgid "" +"Your WordPress version is too old. WordPress Popular Posts requires at least " +"WordPress version %1$s to function correctly. Please update your blog via " +"Dashboard > Update." +msgstr "" +"Tu versión de WordPress es muy antigua. El plugin WordPress Popular " +"Posts requiere al menos la versión %1$s para funcionar correctamente. " +"Por favor actualiza tu blog via Escritorio > Actualizaciones." + +#: ../admin/class-wordpress-popular-posts-admin.php:1273 +#, php-format +msgid "" +"<div class=\"error\"><p>%1$s</p><p><i>%2$s</i> has been <strong>deactivated</" +"strong>.</p></div>" +msgstr "" +"<div class=\"error\"><p>%1$s</p><p><i>%2$s</i> ha sido <strong>desactivado</" +"strong>.</p></div>" + +#: ../admin/partials/admin.php:26 ../admin/partials/admin.php:41 +#: ../admin/partials/admin.php:65 ../admin/partials/admin.php:106 +msgid "Settings saved." +msgstr "Configuración guardada." + +#: ../admin/partials/admin.php:55 +msgid "Please provide the name of your custom field." +msgstr "Por favor indica el nombre de tu custom field." + +#: ../admin/partials/admin.php:114 +msgid "" +"Any changes made to WPP's default stylesheet will be lost after every plugin " +"update. In order to prevent this from happening, please copy the wpp.css " +"file (located at wp-content/plugins/wordpress-popular-posts/style) into your " +"theme's directory" +msgstr "" +"Cualquier cambio hecho a la hoja de estilos por defecto de WPP se " +"perderá cada vez que el plugin se actualize. Para evitar esto, por " +"favor copia el archivo wpp.css (ubicado en wp-content/plugins/wordpress-" +"popular-posts/style) a la carpeta de tu tema actual" + +#: ../admin/partials/admin.php:129 +msgid "" +"This operation will delete all entries from WordPress Popular Posts' cache " +"table and cannot be undone." +msgstr "" +"Esta operaci\\363n borrar\\341 todas las entradas en el cach\\351 de " +"WordPress Popular Posts y no se puede deshacer." + +#: ../admin/partials/admin.php:129 ../admin/partials/admin.php:168 +#: ../admin/partials/admin.php:207 +msgid "Do you want to continue?" +msgstr "\\277Deseas continuar?" + +#: ../admin/partials/admin.php:141 +msgid "Success! The cache table has been cleared!" +msgstr "\\241\\311xito! \\241La tabla cach\\351 ha sido borrada!" + +#: ../admin/partials/admin.php:145 +msgid "Error: cache table does not exist." +msgstr "Error: la tabla cach\\351 no existe." + +#: ../admin/partials/admin.php:149 ../admin/partials/admin.php:157 +#: ../admin/partials/admin.php:188 ../admin/partials/admin.php:196 +#: ../admin/partials/admin.php:226 ../admin/partials/admin.php:234 +msgid "Invalid action." +msgstr "Acci\\363n inv\\311lida." + +#: ../admin/partials/admin.php:153 ../admin/partials/admin.php:192 +#: ../admin/partials/admin.php:230 +msgid "" +"Sorry, you do not have enough permissions to do this. Please contact the " +"site administrator for support." +msgstr "" +"Lo lamento, no tienes permisos suficientes para hacer esto. Por favor " +"contacta al administrador del sitio." + +#: ../admin/partials/admin.php:168 +msgid "" +"This operation will delete all stored info from WordPress Popular Posts' " +"data tables and cannot be undone." +msgstr "" +"Esta operaci\\363n borrar\\341 toda la informaci\\363n guardada en las " +"tablas de WordPress Popular Posts y no se puede deshacer." + +#: ../admin/partials/admin.php:180 +msgid "Success! All data have been cleared!" +msgstr "\\241\\311xito! \\241Toda la data ha sido borrada!" + +#: ../admin/partials/admin.php:184 +msgid "Error: one or both data tables are missing." +msgstr "Error: una o ambas tablas de datos no existen." + +#: ../admin/partials/admin.php:207 +msgid "This operation will delete all cached thumbnails and cannot be undone." +msgstr "" +"Esta operaci\\363n borrar\\341 todas las miniaturas en el cach\\351 y no se " +"puede deshacer." + +#: ../admin/partials/admin.php:218 +msgid "Success! All files have been deleted!" +msgstr "\\241\\311xito! \\241Todos los archivos han sido borrados!" + +#: ../admin/partials/admin.php:222 +msgid "The thumbnail cache is already empty!" +msgstr "\\241El cach\\351 de miniaturas ya est\\341 vac\\355o!" + +#: ../admin/partials/admin.php:247 +msgid "Menu" +msgstr "Menú" + +#: ../admin/partials/admin.php:248 ../admin/partials/admin.php:256 +msgid "Stats" +msgstr "Estadísticas" + +#: ../admin/partials/admin.php:249 ../admin/partials/admin.php:257 +msgid "Tools" +msgstr "Herramientas" + +#: ../admin/partials/admin.php:250 ../admin/partials/admin.php:258 +msgid "Parameters" +msgstr "Parámetros" + +#: ../admin/partials/admin.php:259 +msgid "About" +msgstr "Acerca de" + +#: ../admin/partials/admin.php:283 +msgid "Post type" +msgstr "Post type" + +#: ../admin/partials/admin.php:286 +msgid "Limit" +msgstr "Límite" + +#: ../admin/partials/admin.php:289 ../includes/widget-form.php:48 +msgid "Display only posts published within the selected Time Range" +msgstr "" +"Mostrar sólo entradas publicadas en el Rango de Tiempo seleccionado" + +#: ../admin/partials/admin.php:295 ../admin/partials/admin.php:333 +#: ../admin/partials/admin.php:552 ../admin/partials/admin.php:656 +#: ../admin/partials/admin.php:695 +msgid "Apply" +msgstr "Aplicar" + +#: ../admin/partials/admin.php:296 ../admin/partials/admin.php:336 +msgid "Cancel" +msgstr "Cancelar" + +#: ../admin/partials/admin.php:309 +msgid "Custom Time Range" +msgstr "Rango de Tiempo Personalizado" + +#: ../admin/partials/admin.php:310 +msgid "Date Range" +msgstr "Rango de Fechas" + +#: ../admin/partials/admin.php:318 ../admin/partials/admin.php:622 +#: ../includes/widget-form.php:41 +msgid "Minute(s)" +msgstr "Minuto(s)" + +#: ../admin/partials/admin.php:319 ../admin/partials/admin.php:623 +#: ../includes/widget-form.php:42 +msgid "Hour(s)" +msgstr "Hora(s)" + +#: ../admin/partials/admin.php:320 ../admin/partials/admin.php:624 +#: ../includes/widget-form.php:43 +msgid "Day(s)" +msgstr "Día(s)" + +#: ../admin/partials/admin.php:326 +msgid "Select a date..." +msgstr "Selecciona una fecha..." + +#: ../admin/partials/admin.php:355 +#, php-format +msgid "" +"Err... A nice little chart is supposed to be here, instead you are seeing " +"this because your browser is too old. <br /> Please <a href=\"%s\" target=" +"\"_blank\">get a better browser</a>." +msgstr "" +"Ehh... se supone que aquí saldría un gráfico, pero en " +"vez de eso estás viendo ésto porque tu navegador es demasiado " +"anticuado.<br /> Por favor <a href=\"%s\" target=\"_blank\">instala un mejor " +"navegador</a>." + +#: ../admin/partials/admin.php:481 +msgid "Thumbnails" +msgstr "Miniaturas" + +#: ../admin/partials/admin.php:486 +msgid "Default thumbnail" +msgstr "Miniatura por defecto" + +#: ../admin/partials/admin.php:491 +msgid "Upload thumbnail" +msgstr "Subir miniatura" + +#: ../admin/partials/admin.php:493 +msgid "" +"How-to: upload (or select) an image, set Size to Full and click on Upload. " +"After it's done, hit on Apply to save changes" +msgstr "" +"Tutorial: sube (o selecciona) una imagen, selecciona Tamaño Completo " +"y haz clic en Subir. Cuando termine, dale a Aplicar para guardar los cambios" + +#: ../admin/partials/admin.php:497 +msgid "Pick image from" +msgstr "Seleccionar imagen desde" + +#: ../admin/partials/admin.php:500 +msgid "Featured image" +msgstr "\tImagen destacada" + +#: ../admin/partials/admin.php:501 +msgid "First image on post" +msgstr "Primera imagen de la entrada" + +#: ../admin/partials/admin.php:502 +msgid "First attachment" +msgstr "Primer adjunto" + +#: ../admin/partials/admin.php:503 +msgid "Custom field" +msgstr "Custom field" + +#: ../admin/partials/admin.php:506 +msgid "Tell WordPress Popular Posts where it should get thumbnails from" +msgstr "" +"Dile a WordPress Popular Posts de dónde debe obtener las miniaturas" + +#: ../admin/partials/admin.php:510 +msgid "Custom field name" +msgstr "Nombre del custom field" + +#: ../admin/partials/admin.php:516 +msgid "Resize image from Custom field?" +msgstr "¡Ajustar la imagen del Custom field?" + +#: ../admin/partials/admin.php:519 +msgid "No, I will upload my own thumbnail" +msgstr "No, subiré mi propia miniatura" + +#: ../admin/partials/admin.php:520 +msgid "Yes" +msgstr "Sí" + +#: ../admin/partials/admin.php:525 +msgid "Responsive support" +msgstr "Soporte Responsive" + +#: ../admin/partials/admin.php:528 ../admin/partials/admin.php:598 +#: ../admin/partials/admin.php:638 ../admin/partials/admin.php:685 +msgid "Enabled" +msgstr "Habilitado" + +#: ../admin/partials/admin.php:529 ../admin/partials/admin.php:582 +#: ../admin/partials/admin.php:597 ../admin/partials/admin.php:637 +#: ../admin/partials/admin.php:686 +msgid "Disabled" +msgstr "Deshabilitado" + +#: ../admin/partials/admin.php:532 +msgid "" +"If enabled, WordPress Popular Posts will strip height and width attributes " +"out of thumbnails' image tags" +msgstr "" +"Si se activa, WordPress Popular Posts quitará los atributos height y " +"width de las etiquetas image de las miniaturas" + +#: ../admin/partials/admin.php:542 +msgid "Empty image cache" +msgstr "Vaciar el caché de imágenes" + +#: ../admin/partials/admin.php:543 +msgid "Use this button to clear WPP's thumbnails cache" +msgstr "" +"Utiliza este botón para vaciar el caché de miniaturas de WPP" + +#: ../admin/partials/admin.php:563 +msgid "Data" +msgstr "Datos" + +#: ../admin/partials/admin.php:568 +msgid "Log views from" +msgstr "Registrar vistas de" + +#: ../admin/partials/admin.php:571 +msgid "Visitors only" +msgstr "Sólo visitantes" + +#: ../admin/partials/admin.php:572 +msgid "Logged-in users only" +msgstr "Sólo usuarios conectados" + +#: ../admin/partials/admin.php:573 +msgid "Everyone" +msgstr "Todos" + +#: ../admin/partials/admin.php:579 +msgid "Log limit" +msgstr "Límite del registro" + +#: ../admin/partials/admin.php:583 +msgid "Keep data for" +msgstr "Guardar datos por" + +#: ../admin/partials/admin.php:586 +msgid "day(s)" +msgstr "día(s)" + +#: ../admin/partials/admin.php:588 +msgid "" +"Data from entries that haven't been viewed within the specified time frame " +"will be automatically discarded" +msgstr "" +"Los datos de aquellas entradas que no han sido vistas en el tiempo " +"especificado serán automáticamente descartados" + +#: ../admin/partials/admin.php:594 +msgid "Ajaxify widget" +msgstr "Usar Ajax con el widget" + +#: ../admin/partials/admin.php:602 +msgid "" +"If you are using a caching plugin such as WP Super Cache, enabling this " +"feature will keep the popular list from being cached by it" +msgstr "" +"Si estás utilizando un plugin de cacheo como WP Super Cache, " +"habilitar esta característica evitará que la lista de entradas " +"populares sea guardada en caché" + +#: ../admin/partials/admin.php:606 +msgid "WPP Cache Expiry Policy" +msgstr "WPP Política de Expiración del Cache" + +#: ../admin/partials/admin.php:606 ../admin/partials/admin.php:634 +#: ../includes/widget-form.php:3 ../includes/widget-form.php:50 +#: ../includes/widget-form.php:56 ../includes/widget-form.php:75 +#: ../includes/widget-form.php:85 ../includes/widget-form.php:177 +msgid "What is this?" +msgstr "¿Qué es ésto?" + +#: ../admin/partials/admin.php:609 +msgid "Never cache" +msgstr "Nunca almacenar en caché" + +#: ../admin/partials/admin.php:610 +msgid "Enable caching" +msgstr "Habilitar caché" + +#: ../admin/partials/admin.php:614 +msgid "" +"Sets WPP's cache expiration time. WPP can cache the popular list for a " +"specified amount of time. Recommended for large / high traffic sites" +msgstr "" +"Configura lel tiempo de expiración del cache de WPP. WPP puede " +"almacenar en caché el listado de entradas populares por una cantidad " +"de tiempo especificada. Recomendado para sitios web grandes / de alto " +"tráfico" + +#: ../admin/partials/admin.php:618 +msgid "Refresh cache every" +msgstr "Refrescar el caché cada" + +#: ../admin/partials/admin.php:625 +msgid "Week(s)" +msgstr "Semana(s)" + +#: ../admin/partials/admin.php:626 +msgid "Month(s)" +msgstr "Mes(es)" + +#: ../admin/partials/admin.php:627 +msgid "Year(s)" +msgstr "Año(s)" + +#: ../admin/partials/admin.php:630 +msgid "Really? That long?" +msgstr "¿En serio? ¿Tanto tiempo?" + +#: ../admin/partials/admin.php:634 +msgid "Data Sampling" +msgstr "Sampleo de Datos" + +#: ../admin/partials/admin.php:642 +#, php-format +msgid "" +"By default, WordPress Popular Posts stores in database every single visit " +"your site receives. For small / medium sites this is generally OK, but on " +"large / high traffic sites the constant writing to the database may have an " +"impact on performance. With <a href=\"%1$s\" target=\"_blank\">data " +"sampling</a>, WordPress Popular Posts will store only a subset of your " +"traffic and report on the tendencies detected in that sample set (for more, " +"<a href=\"%2$s\" target=\"_blank\">please read here</a>)" +msgstr "" +"Por defecto, WordPress Popular Posts almacena en la base de datos todas y " +"cada una de las visitas que recibe tu sitio. Para sitios pequeños / " +"medianos esto generalmente está bien, pero en sitios grandes / de " +"mucho tráfico la escritura constante en la base de datos pudiese " +"causar un impacto en su rendimiento. Con <a href=\"%1$s\" target=\"_blank" +"\">data sampling</a>, WordPress Popular Posts almacenará sólo " +"un subconjunto de tu tráfico y reportará sobre las tendencias " +"detectadas en ese conjunto de muestras (para más, <a href=\"%2$s\" " +"target=\"_blank\">por favor leer acá</a>)" + +#: ../admin/partials/admin.php:646 +msgid "Sample Rate" +msgstr "Rata de Sampleo" + +#: ../admin/partials/admin.php:650 +#, php-format +msgid "" +"A sampling rate of %d is recommended for large / high traffic sites. For " +"lower traffic sites, you should lower the value" +msgstr "" +"Se recomienda una rata de sampleo de %d para sitios grandes / de alto " +"tráfico. Para sitios con menos tráfico, deberías " +"disminuir el valor" + +#: ../admin/partials/admin.php:667 +msgid "Miscellaneous" +msgstr "Misceláneos" + +#: ../admin/partials/admin.php:672 +msgid "Open links in" +msgstr "Abrir enlaces en" + +#: ../admin/partials/admin.php:675 +msgid "Current window" +msgstr "Ventana actual" + +#: ../admin/partials/admin.php:676 +msgid "New tab/window" +msgstr "Nueva pestaña/ventana" + +#: ../admin/partials/admin.php:682 +msgid "Use plugin's stylesheet" +msgstr "Utilizar la hoja de estilos del plugin" + +#: ../admin/partials/admin.php:689 +msgid "" +"By default, the plugin includes a stylesheet called wpp.css which you can " +"use to style your popular posts listing. If you wish to use your own " +"stylesheet or do not want it to have it included in the header section of " +"your site, use this." +msgstr "" +"Por defecto, el plugin incluye una hoja de estilos llamada wpp.css que " +"puedes utilizar para darle estilos a tu listado de entradas populares. Si " +"deseas utilizar tu propia hoja de estilos, o no quieres que wpp.css se " +"incluya en el header de tu sitio web, utiliza esto." + +#: ../admin/partials/admin.php:708 +msgid "" +"WordPress Popular Posts maintains data in two separate tables: one for " +"storing the most popular entries on a daily basis (from now on, \"cache\"), " +"and another one to keep the All-time data (from now on, \"historical data\" " +"or just \"data\"). If for some reason you need to clear the cache table, or " +"even both historical and cache tables, please use the buttons below to do so." +msgstr "" +"WordPress Popular Posts mantiene la data en dos tablas separadas: una para " +"guardar diariamente las entradas más populares (\"caché\", de " +"aquí en adelante), y otra tabla para almacenar la data de Todos los " +"tiempos (\"data histórica\" o simplemente \"data\"). Si por alguna " +"razón necesitas vaciar la tabla caché, o inclusive las dos " +"tablas históricas y de caché, por favor utiliza los botones de " +"abajo." + +#: ../admin/partials/admin.php:709 +msgid "Empty cache" +msgstr "Vaciar el caché" + +#: ../admin/partials/admin.php:709 +msgid "Use this button to manually clear entries from WPP cache only" +msgstr "" +"Utiliza este botón para vaciar manualmente sólo las entradas " +"del caché de WPP" + +#: ../admin/partials/admin.php:710 +msgid "Clear all data" +msgstr "Eliminar toda la data" + +#: ../admin/partials/admin.php:710 +msgid "Use this button to manually clear entries from all WPP data tables" +msgstr "" +"Utiliza este botón para limpiar manualmente las tablas de datos de WPP" + +#: ../admin/partials/admin.php:717 +#, php-format +msgid "" +"With the following parameters you can customize the popular posts list when " +"using either the <a href=\"%1$s\">wpp_get_mostpopular() template tag</a> or " +"the <a href=\"%2$s\">[wpp] shortcode</a>." +msgstr "" +"Con los siguientes parámetros puedes personalizar el listado de " +"entradas populares cuando utilices el <a href=\"%1$s\">template tag " +"wpp_get_mostpopular()</a> o el <a href=\"%2$s\">shortcode [wpp]</a>." + +#: ../admin/partials/admin.php:725 +msgid "Parameter" +msgstr "Parámetro" + +#: ../admin/partials/admin.php:726 +msgid "What it does " +msgstr "Qué hace" + +#: ../admin/partials/admin.php:727 +msgid "Possible values" +msgstr "Valores posibles" + +#: ../admin/partials/admin.php:728 +msgid "Defaults to" +msgstr "Por defecto" + +#: ../admin/partials/admin.php:729 +msgid "Example" +msgstr "Ejemplo" + +#: ../admin/partials/admin.php:735 +msgid "Sets a heading for the list" +msgstr "Configura el encabezado de la lista" + +#: ../admin/partials/admin.php:736 ../admin/partials/admin.php:743 +#: ../admin/partials/admin.php:750 ../admin/partials/admin.php:799 +#: ../admin/partials/admin.php:806 ../admin/partials/admin.php:813 +#: ../admin/partials/admin.php:820 ../admin/partials/admin.php:827 +#: ../admin/partials/admin.php:834 ../admin/partials/admin.php:925 +#: ../admin/partials/admin.php:946 ../admin/partials/admin.php:953 +msgid "Text string" +msgstr "Texto" + +#: ../admin/partials/admin.php:737 ../admin/partials/admin.php:807 +#: ../admin/partials/admin.php:814 ../admin/partials/admin.php:821 +#: ../admin/partials/admin.php:828 ../admin/partials/admin.php:835 +msgid "None" +msgstr "Ninguno" + +#: ../admin/partials/admin.php:738 ../admin/partials/admin.php:745 +#: ../admin/partials/admin.php:752 ../admin/partials/admin.php:759 +#: ../admin/partials/admin.php:766 ../admin/partials/admin.php:773 +#: ../admin/partials/admin.php:780 ../admin/partials/admin.php:787 +#: ../admin/partials/admin.php:794 ../admin/partials/admin.php:801 +#: ../admin/partials/admin.php:808 ../admin/partials/admin.php:815 +#: ../admin/partials/admin.php:822 ../admin/partials/admin.php:829 +#: ../admin/partials/admin.php:836 ../admin/partials/admin.php:843 +#: ../admin/partials/admin.php:850 ../admin/partials/admin.php:857 +#: ../admin/partials/admin.php:864 ../admin/partials/admin.php:871 +#: ../admin/partials/admin.php:878 ../admin/partials/admin.php:885 +#: ../admin/partials/admin.php:892 ../admin/partials/admin.php:899 +#: ../admin/partials/admin.php:906 ../admin/partials/admin.php:913 +#: ../admin/partials/admin.php:920 ../admin/partials/admin.php:927 +#: ../admin/partials/admin.php:934 ../admin/partials/admin.php:941 +#: ../admin/partials/admin.php:948 ../admin/partials/admin.php:955 +#: ../admin/partials/admin.php:962 +msgid "With wpp_get_mostpopular():" +msgstr "Con wpp_get_mostpopular():" + +#: ../admin/partials/admin.php:738 ../admin/partials/admin.php:745 +#: ../admin/partials/admin.php:752 ../admin/partials/admin.php:759 +#: ../admin/partials/admin.php:766 ../admin/partials/admin.php:773 +#: ../admin/partials/admin.php:780 ../admin/partials/admin.php:787 +#: ../admin/partials/admin.php:794 ../admin/partials/admin.php:801 +#: ../admin/partials/admin.php:808 ../admin/partials/admin.php:815 +#: ../admin/partials/admin.php:822 ../admin/partials/admin.php:829 +#: ../admin/partials/admin.php:836 ../admin/partials/admin.php:843 +#: ../admin/partials/admin.php:850 ../admin/partials/admin.php:857 +#: ../admin/partials/admin.php:864 ../admin/partials/admin.php:871 +#: ../admin/partials/admin.php:878 ../admin/partials/admin.php:885 +#: ../admin/partials/admin.php:892 ../admin/partials/admin.php:899 +#: ../admin/partials/admin.php:906 ../admin/partials/admin.php:913 +#: ../admin/partials/admin.php:920 ../admin/partials/admin.php:927 +#: ../admin/partials/admin.php:934 ../admin/partials/admin.php:941 +#: ../admin/partials/admin.php:948 ../admin/partials/admin.php:955 +#: ../admin/partials/admin.php:962 +msgid "With the [wpp] shortcode:" +msgstr "Con el shortcode [wpp]:" + +#: ../admin/partials/admin.php:742 +msgid "Set the opening tag for the heading of the list" +msgstr "Configura la etiqueta de apertura para el encabezado de la lista" + +#: ../admin/partials/admin.php:749 +msgid "Set the closing tag for the heading of the list" +msgstr "Configura la etiqueta de cierre para el encabezado de la lista" + +#: ../admin/partials/admin.php:756 +msgid "Sets the maximum number of popular posts to be shown on the listing" +msgstr "" +"Configura el máximo de entradas populares a ser mostradas en la lista" + +#: ../admin/partials/admin.php:757 ../admin/partials/admin.php:771 +#: ../admin/partials/admin.php:841 ../admin/partials/admin.php:855 +#: ../admin/partials/admin.php:876 ../admin/partials/admin.php:883 +msgid "Positive integer" +msgstr "Entero positivo" + +#: ../admin/partials/admin.php:763 +msgid "" +"Tells WordPress Popular Posts to retrieve the most popular entries within " +"the time range specified by you" +msgstr "" +"Le indica a WordPress Popular Posts que debe listar aquellas entradas que " +"hayan sido populares dentro del rango de tiempo especificado por ti" + +#: ../admin/partials/admin.php:770 +msgid "Especifies the number of time units of the custom time range" +msgstr "" +"Especifica el número de unidades de tiempo del rango de tiempo " +"personalizado" + +#: ../admin/partials/admin.php:777 +msgid "Especifies the time unit of the custom time range" +msgstr "Especifica la unidad de tiempo del rango de tiempo personalizado" + +#: ../admin/partials/admin.php:784 +msgid "" +"Tells WordPress Popular Posts to retrieve the most popular entries published " +"within the time range specified by you" +msgstr "" +"Le indica a WordPress Popular Posts que debe listar aquellas entradas " +"populares publicadas dentro del rango de tiempo especificado por ti" + +#: ../admin/partials/admin.php:791 +msgid "Sets the sorting option of the popular posts" +msgstr "Configura el ordenado de las entradas populares" + +#: ../admin/partials/admin.php:792 +msgid "(for average views per day)" +msgstr "(para el porcentaje de vistas por día)" + +#: ../admin/partials/admin.php:798 +msgid "Defines the type of posts to show on the listing" +msgstr "Define el tipo de entrada a mostrar en el listado" + +#: ../admin/partials/admin.php:805 +msgid "" +"If set, WordPress Popular Posts will exclude the specified post(s) ID(s) " +"form the listing." +msgstr "" +"Si se configura, WordPress Popular Posts excluirá todos los IDs de " +"las entradas especificadas." + +#: ../admin/partials/admin.php:812 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries that belong to the " +"specified category ID(s). If a minus sign is used, entries associated to the " +"category will be excluded instead." +msgstr "" +"Si se configura, WordPress Popular Posts mostrará todas las entradas " +"que pertenecen a la(s) categoría(s) especificada(s). Si se usa un " +"signo negativo, las entradas asociadas a dicha categoría serán " +"excluídas." + +#: ../admin/partials/admin.php:819 +msgid "If set, WordPress Popular Posts will filter posts by a given taxonomy." +msgstr "" +"Si se tilda, WordPress Popular Posts filtrará entradas por la " +"taxonomía indicada." + +#: ../admin/partials/admin.php:826 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries that belong to the " +"specified term ID(s). If a minus sign is used, entries associated to the " +"term(s) will be excluded instead." +msgstr "" +"Si se configura, WordPress Popular Posts mostrará todas las entradas " +"que pertenecen al Term ID especificado(s). Si se usa un signo negativo, las " +"entradas asociadas a dicho term serán excluídas." + +#: ../admin/partials/admin.php:833 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries created by " +"specified author(s) ID(s)." +msgstr "" +"Si se configura, WordPress Popular Posts traerá todas las entradas " +"creadas por el (los) ID(s) de autor(es) especificado(s)." + +#: ../admin/partials/admin.php:840 +msgid "" +"If set, WordPress Popular Posts will shorten each post title to \"n\" " +"characters whenever possible" +msgstr "" +"Si se configura, WordPress Popular Posts acortará cada titulo en \"n" +"\" caracteres cuando sea posible" + +#: ../admin/partials/admin.php:847 +msgid "" +"If set to 1, WordPress Popular Posts will shorten each post title to \"n\" " +"words instead of characters" +msgstr "" +"Si se pasa el valor 1, WordPress Popular Posts acortará cada titulo " +"en \"n\" palabras en vez de caracteres" + +#: ../admin/partials/admin.php:854 +msgid "" +"If set, WordPress Popular Posts will build and include an excerpt of \"n\" " +"characters long from the content of each post listed as popular" +msgstr "" +"Si se configura, WordPress Popular Posts construirá e incluirá " +"un extracto de \"n\" caracteres del contenido de cada entrada listada como " +"popular" + +#: ../admin/partials/admin.php:861 +msgid "" +"If set, WordPress Popular Posts will maintaing all styling tags (strong, " +"italic, etc) and hyperlinks found in the excerpt" +msgstr "" +"Si se configura, WordPress Popular Posts mantendrá todas las " +"etiquetas de estilo (strong, italic, etc) y los hipervínculos " +"encontrados en el extracto" + +#: ../admin/partials/admin.php:868 +msgid "" +"If set to 1, WordPress Popular Posts will shorten the excerpt to \"n\" words " +"instead of characters" +msgstr "" +"Si se configura, WordPress Popular Posts acortará el resumen en \"n\" " +"palabras en vez de caracteres" + +#: ../admin/partials/admin.php:875 +msgid "" +"If set, and if your current server configuration allows it, you will be able " +"to display thumbnails of your posts. This attribute sets the width for " +"thumbnails" +msgstr "" +"Si se configura, y si la configuración actual de tu servidor lo " +"permite, podrás mostrar miniaturas de tus entradas. Este atributo " +"configura el ancho de tus miniaturas" + +#: ../admin/partials/admin.php:882 +msgid "" +"If set, and if your current server configuration allows it, you will be able " +"to display thumbnails of your posts. This attribute sets the height for " +"thumbnails" +msgstr "" +"Si se configura, y si la configuración actual de tu servidor lo " +"permite, podrás mostrar miniaturas de tus entradas. Este atributo " +"configura el alto de tus miniaturas" + +#: ../admin/partials/admin.php:889 +msgid "" +"If set, and if the WP-PostRatings plugin is installed and enabled on your " +"blog, WordPress Popular Posts will show how your visitors are rating your " +"entries" +msgstr "" +"Si se configura, y si el plugin WP-PostRatings está instalado y " +"habilitado en tu blog, WordPress Popular Posts mostrará como tus " +"visitantes han calificado a tus entradas" + +#: ../admin/partials/admin.php:896 +msgid "" +"If set, WordPress Popular Posts will show how many comments each popular " +"post has got during the specified time range" +msgstr "" +"Si se configura, WordPress Popular Posts mostrará cuántos " +"comentarios ha obtenido cada entrada popular dentro del rango de tiempo " +"especificado" + +#: ../admin/partials/admin.php:903 +msgid "" +"If set, WordPress Popular Posts will show how many views each popular post " +"has got during the specified time range" +msgstr "" +"Si se configura, WordPress Popular Posts mostrará cuántas " +"vistas ha obtenido cada entrada popular dentro del rango de tiempo " +"especificado" + +#: ../admin/partials/admin.php:910 +msgid "" +"If set, WordPress Popular Posts will show who published each popular post on " +"the list" +msgstr "" +"Si se configura, WordPress Popular Posts mostrará quién " +"publicó cada entrada popular de la lista" + +#: ../admin/partials/admin.php:917 +msgid "" +"If set, WordPress Popular Posts will display the date when each popular post " +"on the list was published" +msgstr "" +"Si se tilda, WordPress Popular Posts mostrará la fecha en la que fue " +"publicada cada entrada popular" + +#: ../admin/partials/admin.php:924 +msgid "Sets the date format" +msgstr "Configura el formato de la fecha" + +#: ../admin/partials/admin.php:931 +msgid "" +"If set, WordPress Popular Posts will display the categories associated to " +"each entry" +msgstr "" +"Si se tilda, WordPress Popular Posts mostrará las categorías " +"asociadas a cada entrada" + +#: ../admin/partials/admin.php:938 +msgid "" +"If set, WordPress Popular Posts will display the taxonomies associated to " +"each entry" +msgstr "" +"Si se tilda, WordPress Popular Posts mostrará las taxonomías " +"asociadas a cada entrada" + +#: ../admin/partials/admin.php:945 +msgid "Sets the opening tag for the listing" +msgstr "Configura la etiqueta de apertura del listado" + +#: ../admin/partials/admin.php:952 +msgid "Sets the closing tag for the listing" +msgstr "Configura la etiqueta de cierre del listado" + +#: ../admin/partials/admin.php:959 +msgid "Sets the HTML structure of each post" +msgstr "Configura la estructura HTML de cada entrada" + +#: ../admin/partials/admin.php:960 +msgid "Text string, custom HTML" +msgstr "Texto, HTML personalizado" + +#: ../admin/partials/admin.php:960 +msgid "Available Content Tags" +msgstr "Content Tags disponibles" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays thumbnail linked to post/page, requires thumbnail_width & " +"thumbnail_height" +msgstr "" +"muestra la miniatura con un link hacia la entrada/página, requiere " +"thumbnail_width & thumbnail_height" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays thumbnail image without linking to post/page, requires " +"thumbnail_width & thumbnail_height" +msgstr "" +"muestra la miniatura sin link hacia la entrada/página, requiere " +"thumbnail_width & thumbnail_height" + +#: ../admin/partials/admin.php:960 +msgid "displays thumbnail url, requires thumbnail_width & thumbnail_height" +msgstr "" +"muestra la url de la miniatura, requires thumbnail_width & thumbnail_height" + +#: ../admin/partials/admin.php:960 +msgid "displays linked post/page title" +msgstr "muestra el título de la entrada/página con enlace" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page excerpt, and requires excerpt_length to be greater than 0" +msgstr "" +"muestra el resumen de la entrada/página, requiere que excerpt_length " +"sea mayor a 0" + +#: ../admin/partials/admin.php:960 +msgid "displays the default stats tags" +msgstr "muestra el stats tag por defecto" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page current rating, requires WP-PostRatings installed and " +"enabled" +msgstr "" +"muestra el rating actual de la entrada/página, requiere que WP-" +"PostRatings esté instalado y activo" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page current rating as an integer, requires WP-PostRatings " +"installed and enabled" +msgstr "" +"muestra el rating actual de la entrada/página como un entero, " +"requiere que WP-PostRatings esté instalado y activo" + +#: ../admin/partials/admin.php:960 +msgid "outputs the URL of the post/page" +msgstr "muestra la URL de la entrada/página" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page title, no link" +msgstr "muestra el título de la entrada/página, sin enlace" + +#: ../admin/partials/admin.php:960 +msgid "displays linked author name, requires stats_author=1" +msgstr "muestra el nombre del autor con enlace, requiere stats_author=1" + +#: ../admin/partials/admin.php:960 +msgid "displays linked category name, requires stats_category=1" +msgstr "" +"muestra el nombre de la categoría con enlace, requiere " +"stats_category=1" + +#: ../admin/partials/admin.php:960 +msgid "displays linked taxonomy names, requires stats_taxonomy=1" +msgstr "" +"muestra los nombres de las taxonomías con enlace, requiere " +"stats_taxonomy=1" + +#: ../admin/partials/admin.php:960 +msgid "displays views count only, no text" +msgstr "muestra el número de vistas, sin texto adicional" + +#: ../admin/partials/admin.php:960 +msgid "displays comments count only, no text, requires stats_comments=1" +msgstr "" +"muestra el número de comentarios, sin texto adicional, requiere " +"stats_comments=1" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page date, requires stats_date=1" +msgstr "muestra la fecha de la entrada/página, requiere stats_date=1" + +#: ../includes/class-wordpress-popular-posts-output.php:95 +msgid "Sorry. No data so far." +msgstr "Lo lamentamos. No hay nada que mostrar aún." + +#: ../includes/class-wordpress-popular-posts-output.php:466 +#, php-format +msgid "%s ago" +msgstr "hace %s" + +#: ../includes/class-wordpress-popular-posts-output.php:683 +#, php-format +msgid "1 view per day" +msgid_plural "%s views per day" +msgstr[0] "1 vista por día" +msgstr[1] "%s vistas por día" + +#: ../includes/class-wordpress-popular-posts-output.php:712 +#, php-format +msgid "by %s" +msgstr "por %s" + +#: ../includes/class-wordpress-popular-posts-output.php:718 +#, php-format +msgid "posted %s" +msgstr "publicado %s" + +#: ../includes/class-wordpress-popular-posts-output.php:718 +#, php-format +msgid "posted on %s" +msgstr "publicado el %s" + +#: ../includes/class-wordpress-popular-posts-output.php:727 +#, php-format +msgid "under %s" +msgstr "bajo %s" + +#: ../includes/class-wordpress-popular-posts-widget.php:21 +msgid "The most Popular Posts on your blog." +msgstr "Las entradas más populares en tu blog." + +#: ../includes/class-wordpress-popular-posts-widget.php:89 +#, php-format +msgid "" +"Error: cannot ajaxify WordPress Popular Posts on this theme. It's missing " +"the <em>id</em> attribute on before_widget (see <a href=\"%s\" target=" +"\"_blank\" rel=\"nofollow\">register_sidebar</a> for more)" +msgstr "" +"Error: no se puede ajaxificar WordPress Popular Posts en este tema. Le falta " +"el atributo <em>id</em> en before_widget (ver <a href=\"%s\" target=\"_blank" +"\" rel=\"nofollow\">register_sidebar</a> para más detalles)" + +#: ../includes/class-wordpress-popular-posts-widget.php:100 +msgid "Loading..." +msgstr "Cargando..." + +#: ../includes/widget-form.php:3 +msgid "Title" +msgstr "Título" + +#: ../includes/widget-form.php:9 +msgid "Show up to" +msgstr "Mostrar hasta" + +#: ../includes/widget-form.php:10 +msgid "posts" +msgstr "entradas" + +#: ../includes/widget-form.php:15 +msgid "Sort posts by" +msgstr "Ordenar entradas por" + +#: ../includes/widget-form.php:18 +msgid "Total views" +msgstr "Total de vistas" + +#: ../includes/widget-form.php:19 +msgid "Avg. daily views" +msgstr "Porcentaje de vistas diarias" + +#: ../includes/widget-form.php:26 +msgid "Filters" +msgstr "Filtros" + +#: ../includes/widget-form.php:28 +msgid "Time Range" +msgstr "Rango de Tiempo" + +#: ../includes/widget-form.php:30 +msgid "Last 24 hours" +msgstr "Últimas 24 horas" + +#: ../includes/widget-form.php:31 +msgid "Last 7 days" +msgstr "Últimos 7 días" + +#: ../includes/widget-form.php:32 +msgid "Last 30 days" +msgstr "Últimos 30 días" + +#: ../includes/widget-form.php:33 +msgid "All-time" +msgstr "Todos los tiempos" + +#: ../includes/widget-form.php:34 +msgid "Custom" +msgstr "Personalizado" + +#: ../includes/widget-form.php:50 +msgid "Post type(s)" +msgstr "Post type(s)" + +#: ../includes/widget-form.php:53 +msgid "Post ID(s) to exclude" +msgstr "ID(s) de Entrada(s) a excluir" + +#: ../includes/widget-form.php:56 +msgid "Taxonomy" +msgstr "Taxonomía" + +#: ../includes/widget-form.php:69 +msgid "Taxonomy IDs, separated by comma (prefix a minus sign to exclude)" +msgstr "" +"IDs de taxonomía separados por comma (agrega un símbolo " +"negativo para excluir)" + +#: ../includes/widget-form.php:75 +msgid "Author ID(s)" +msgstr "ID(s) de Autor(es)" + +#: ../includes/widget-form.php:81 +msgid "Posts settings" +msgstr "Configuración de las entradas" + +#: ../includes/widget-form.php:85 +msgid "Display post rating" +msgstr "Mostrar calificación de la entrada" + +#: ../includes/widget-form.php:88 +msgid "Shorten title" +msgstr "Acortar título" + +#: ../includes/widget-form.php:91 +msgid "Shorten title to" +msgstr "Acortar título en" + +#: ../includes/widget-form.php:92 ../includes/widget-form.php:102 +msgid "characters" +msgstr "caracteres" + +#: ../includes/widget-form.php:93 ../includes/widget-form.php:103 +msgid "words" +msgstr "palabras" + +#: ../includes/widget-form.php:96 +msgid "Display post excerpt" +msgstr "Mostrar resumen de la entrada" + +#: ../includes/widget-form.php:99 +msgid "Keep text format and links" +msgstr "Mantener formato de texto y enlaces" + +#: ../includes/widget-form.php:100 +msgid "Excerpt length" +msgstr "Largo del resumen" + +#: ../includes/widget-form.php:106 +msgid "Display post thumbnail" +msgstr "Mostrar miniatura" + +#: ../includes/widget-form.php:109 +msgid "Use predefined size" +msgstr "Utilizar un tamaño predefinido" + +#: ../includes/widget-form.php:121 +msgid "Set size manually" +msgstr "Configurar el tamaño manualmente" + +#: ../includes/widget-form.php:123 +msgid "Width" +msgstr "Ancho" + +#: ../includes/widget-form.php:126 +msgid "Height" +msgstr "Alto" + +#: ../includes/widget-form.php:133 +msgid "Stats Tag settings" +msgstr "Configuración del Stats Tag" + +#: ../includes/widget-form.php:135 +msgid "Display comment count" +msgstr "Mostrar cantidad de comentarios" + +#: ../includes/widget-form.php:137 +msgid "Display views" +msgstr "Mostrar vistas" + +#: ../includes/widget-form.php:139 +msgid "Display author" +msgstr "Mostrar autor" + +#: ../includes/widget-form.php:141 +msgid "Display date" +msgstr "Mostrar fecha" + +#: ../includes/widget-form.php:144 +msgid "Date Format" +msgstr "Formato de la fecha" + +#: ../includes/widget-form.php:146 +msgid "Relative" +msgstr "Relativo" + +#: ../includes/widget-form.php:147 +msgid "WordPress Date Format" +msgstr "Formato de fecha de WordPress" + +#: ../includes/widget-form.php:154 +msgid "Display taxonomy" +msgstr "Mostrar taxonomía" + +#: ../includes/widget-form.php:175 +msgid "HTML Markup settings" +msgstr "Configuración del Markup HTML" + +#: ../includes/widget-form.php:177 +msgid "Use custom HTML Markup" +msgstr "Utilizar Markup HTML personalizado" + +#: ../includes/widget-form.php:180 +msgid "Before / after title" +msgstr "Antes / después del título" + +#: ../includes/widget-form.php:183 +msgid "Before / after Popular Posts" +msgstr "Antes / después de las entradas populares" + +#: ../includes/widget-form.php:186 +msgid "Post HTML Markup" +msgstr "Markup HTML de la entrada" + +#~ msgid "About WordPress Popular Posts %s" +#~ msgstr "Acerca de WordPress Popular Posts %s" + +#~ msgid "This version includes the following changes" +#~ msgstr "Esta versión incluye los siguientes cambios" + +#~ msgid "Need help?" +#~ msgstr "¿Necesitas ayuda?" + +#~ msgid "" +#~ "Visit <a href=\"%s\" target=\"_blank\">the forum</a> for support, " +#~ "questions and feedback." +#~ msgstr "" +#~ "Visita <a href=\"%s\" target=\"_blank\">el foro</a> para obtener soporte, " +#~ "hacer preguntas y dejar tu feedback." + +#~ msgid "Let's make this plugin even better!" +#~ msgstr "¡Hagamos a este plugin inclusive mejor!" + +#~ msgid "" +#~ "Click on each tab to see what are the most popular entries on your blog " +#~ "in the last 24 hours, this week, last 30 days or all time since WordPress " +#~ "Popular Posts was installed." +#~ msgstr "" +#~ "Haz clic en cada pestaña para ver las entradas más " +#~ "populares de tu blog en las últimas 24 horas, esta semana, los " +#~ "últimos 30 días o de todos los tiempos desde que WordPress " +#~ "Popular Posts fue instalado." + +#~ msgid "Order by comments" +#~ msgstr "Ordenar por comentarios" + +#~ msgid "Order by avg. daily views" +#~ msgstr "Ordenar por average de vistas diarias" + +#~ msgid "Category(ies) ID(s)" +#~ msgstr "ID(s) de Categoría(s)" diff --git a/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_VE.mo b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_VE.mo new file mode 100644 index 0000000000000000000000000000000000000000..8dc9203b952de6fc44c44fa0c3d8414165520bdf Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_VE.mo differ diff --git a/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_VE.po b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_VE.po new file mode 100644 index 0000000000000000000000000000000000000000..49dfd802cf7e313613868edaf3b18f48a3b1274b --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts-es_VE.po @@ -0,0 +1,1332 @@ +# Copyright (C) 2014 Wordpress Popular Posts +# This file is distributed under the same license as the Wordpress Popular Posts package. +msgid "" +msgstr "" +"Project-Id-Version: WordPress Popular Posts\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/wordpress-popular-posts\n" +"POT-Creation-Date: 2017-09-19 15:38-0400\n" +"PO-Revision-Date: 2017-09-19 15:39-0400\n" +"Last-Translator: \n" +"Language-Team: Héctor Cabrera <me@cabrerahector.com>\n" +"Language: es_VE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" +"X-Poedit-KeywordsList: _e;__;__ngettext;__ngettext_noop;_n_noop;_x;_nx;" +"_nx_noop;_ex;esc_attr__;esc_attr_e;esc_attr_x;esc_html__;esc_html_e;" +"esc_html_x;_c;_nc;_n:1,2\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPath-1: ..\n" + +#: ../admin/class-wordpress-popular-posts-admin.php:221 +msgid "Upload" +msgstr "Subir" + +#: ../admin/class-wordpress-popular-posts-admin.php:238 +msgid "Overview" +msgstr "General" + +#: ../admin/class-wordpress-popular-posts-admin.php:239 +msgid "" +"Welcome to WordPress Popular Posts' Dashboard! In this screen you will find " +"statistics on what's popular on your site, tools to further tweak WPP to " +"your needs, and more!" +msgstr "" +"¡Bienvenido al Dashboard de WordPress Popular Posts! En esta pantalla " +"encontrarás estadísticas de lo más popular en tu sitio, " +"herramientas para configurar WPP a tu gusto, ¡y mucho más!" + +#: ../admin/class-wordpress-popular-posts-admin.php:245 +msgid "Like this plugin?" +msgstr "¿Te gusta este plugin?" + +#: ../admin/class-wordpress-popular-posts-admin.php:247 +msgid "" +"Each donation motivates me to keep releasing free stuff for the WordPress " +"community!" +msgstr "" +"¡Cada donación me motiva a seguir publicando cosas gratuitas " +"para la comunidad de WordPress!" + +#: ../admin/class-wordpress-popular-posts-admin.php:254 +#, php-format +msgid "You can <a href=\"%s\" target=\"_blank\">leave a review</a>, too!" +msgstr "" +"¡Puedes <a href=\"%s\" target=\"_blank\">dejar una reseña</a> " +"también!" + +#: ../admin/class-wordpress-popular-posts-admin.php:263 +#, php-format +msgid "" +"<p><strong>For more information:</strong></p><ul><li><a href=\"%1$s" +"\">Documentation</a></li><li><a href=\"%2$s\">Support</a></li></ul>" +msgstr "" +"<p><strong>Para más información:</strong></p><ul><li><a href=" +"\"%1$s\">Documentación</a></li><li><a href=\"%2$s\">Soporte</a></li></" +"ul>" + +#: ../admin/class-wordpress-popular-posts-admin.php:631 +#: ../admin/class-wordpress-popular-posts-admin.php:750 +#: ../admin/partials/admin.php:412 ../admin/partials/admin.php:459 +#: ../includes/class-wordpress-popular-posts-output.php:689 +#, php-format +msgid "1 view" +msgid_plural "%s views" +msgstr[0] "1 vista" +msgstr[1] "%s vistas" + +#: ../admin/class-wordpress-popular-posts-admin.php:631 +#: ../admin/class-wordpress-popular-posts-admin.php:805 +#: ../admin/partials/admin.php:412 ../admin/partials/admin.php:459 +#: ../includes/class-wordpress-popular-posts-output.php:670 +#, php-format +msgid "1 comment" +msgid_plural "%s comments" +msgstr[0] "1 comentario" +msgstr[1] "%s comentarios" + +#: ../admin/class-wordpress-popular-posts-admin.php:663 +#: ../includes/widget-form.php:17 +msgid "Comments" +msgstr "Comentarios" + +#: ../admin/class-wordpress-popular-posts-admin.php:667 +msgid "Views" +msgstr "Vistas" + +#: ../admin/class-wordpress-popular-posts-admin.php:751 +#: ../admin/class-wordpress-popular-posts-admin.php:806 +#: ../admin/partials/admin.php:413 ../admin/partials/admin.php:460 +msgid "View" +msgstr "Vista" + +#: ../admin/class-wordpress-popular-posts-admin.php:751 +#: ../admin/class-wordpress-popular-posts-admin.php:806 +#: ../admin/partials/admin.php:413 ../admin/partials/admin.php:460 +msgid "Edit" +msgstr "Editar" + +#: ../admin/class-wordpress-popular-posts-admin.php:762 +#: ../admin/class-wordpress-popular-posts-admin.php:817 +#: ../admin/partials/admin.php:424 ../admin/partials/admin.php:471 +msgid "" +"Looks like traffic to your site is a little light right now. <br />Spread " +"the word and come back later!" +msgstr "" +"Parece que el tráfico hacia tu sitio web está un poco ligero. " +"<br />¡Haz un poco de promoción y regresa luego!" + +#: ../admin/class-wordpress-popular-posts-admin.php:889 +msgid "Settings" +msgstr "Configuración" + +#: ../admin/class-wordpress-popular-posts-admin.php:1241 +#, php-format +msgid "" +"Your PHP installation is too old. WordPress Popular Posts requires at least " +"PHP version %1$s to function correctly. Please contact your hosting provider " +"and ask them to upgrade PHP to %1$s or higher." +msgstr "" +"Tu versión de PHP es muy antigua. El plugin WordPress Popular Posts " +"requiere al menos PHP version %1$s para funcionar correctamente. Por favor " +"contacta a tu proveedor de hosting y solicita que se actualice PHP a %1$s o " +"mejor." + +#: ../admin/class-wordpress-popular-posts-admin.php:1248 +#, php-format +msgid "" +"Your WordPress version is too old. WordPress Popular Posts requires at least " +"WordPress version %1$s to function correctly. Please update your blog via " +"Dashboard > Update." +msgstr "" +"Tu versión de WordPress es muy antigua. El plugin WordPress Popular " +"Posts requiere al menos la versión %1$s para funcionar correctamente. " +"Por favor actualiza tu blog via Escritorio > Actualizaciones." + +#: ../admin/class-wordpress-popular-posts-admin.php:1273 +#, php-format +msgid "" +"<div class=\"error\"><p>%1$s</p><p><i>%2$s</i> has been <strong>deactivated</" +"strong>.</p></div>" +msgstr "" +"<div class=\"error\"><p>%1$s</p><p><i>%2$s</i> ha sido <strong>desactivado</" +"strong>.</p></div>" + +#: ../admin/partials/admin.php:26 ../admin/partials/admin.php:41 +#: ../admin/partials/admin.php:65 ../admin/partials/admin.php:106 +msgid "Settings saved." +msgstr "Configuración guardada." + +#: ../admin/partials/admin.php:55 +msgid "Please provide the name of your custom field." +msgstr "Por favor indica el nombre de tu custom field." + +#: ../admin/partials/admin.php:114 +msgid "" +"Any changes made to WPP's default stylesheet will be lost after every plugin " +"update. In order to prevent this from happening, please copy the wpp.css " +"file (located at wp-content/plugins/wordpress-popular-posts/style) into your " +"theme's directory" +msgstr "" +"Cualquier cambio hecho a la hoja de estilos por defecto de WPP se " +"perderá cada vez que el plugin se actualize. Para evitar esto, por " +"favor copia el archivo wpp.css (ubicado en wp-content/plugins/wordpress-" +"popular-posts/style) a la carpeta de tu tema actual" + +#: ../admin/partials/admin.php:129 +msgid "" +"This operation will delete all entries from WordPress Popular Posts' cache " +"table and cannot be undone." +msgstr "" +"Esta operaci\\363n borrar\\341 todas las entradas en el cach\\351 de " +"WordPress Popular Posts y no se puede deshacer." + +#: ../admin/partials/admin.php:129 ../admin/partials/admin.php:168 +#: ../admin/partials/admin.php:207 +msgid "Do you want to continue?" +msgstr "\\277Deseas continuar?" + +#: ../admin/partials/admin.php:141 +msgid "Success! The cache table has been cleared!" +msgstr "\\241\\311xito! \\241La tabla cach\\351 ha sido borrada!" + +#: ../admin/partials/admin.php:145 +msgid "Error: cache table does not exist." +msgstr "Error: la tabla cach\\351 no existe." + +#: ../admin/partials/admin.php:149 ../admin/partials/admin.php:157 +#: ../admin/partials/admin.php:188 ../admin/partials/admin.php:196 +#: ../admin/partials/admin.php:226 ../admin/partials/admin.php:234 +msgid "Invalid action." +msgstr "Acci\\363n inv\\311lida." + +#: ../admin/partials/admin.php:153 ../admin/partials/admin.php:192 +#: ../admin/partials/admin.php:230 +msgid "" +"Sorry, you do not have enough permissions to do this. Please contact the " +"site administrator for support." +msgstr "" +"Lo lamento, no tienes permisos suficientes para hacer esto. Por favor " +"contacta al administrador del sitio." + +#: ../admin/partials/admin.php:168 +msgid "" +"This operation will delete all stored info from WordPress Popular Posts' " +"data tables and cannot be undone." +msgstr "" +"Esta operaci\\363n borrar\\341 toda la informaci\\363n guardada en las " +"tablas de WordPress Popular Posts y no se puede deshacer." + +#: ../admin/partials/admin.php:180 +msgid "Success! All data have been cleared!" +msgstr "\\241\\311xito! \\241Toda la data ha sido borrada!" + +#: ../admin/partials/admin.php:184 +msgid "Error: one or both data tables are missing." +msgstr "Error: una o ambas tablas de datos no existen." + +#: ../admin/partials/admin.php:207 +msgid "This operation will delete all cached thumbnails and cannot be undone." +msgstr "" +"Esta operaci\\363n borrar\\341 todas las miniaturas en el cach\\351 y no se " +"puede deshacer." + +#: ../admin/partials/admin.php:218 +msgid "Success! All files have been deleted!" +msgstr "\\241\\311xito! \\241Todos los archivos han sido borrados!" + +#: ../admin/partials/admin.php:222 +msgid "The thumbnail cache is already empty!" +msgstr "\\241El cach\\351 de miniaturas ya est\\341 vac\\355o!" + +#: ../admin/partials/admin.php:247 +msgid "Menu" +msgstr "Menú" + +#: ../admin/partials/admin.php:248 ../admin/partials/admin.php:256 +msgid "Stats" +msgstr "Estadísticas" + +#: ../admin/partials/admin.php:249 ../admin/partials/admin.php:257 +msgid "Tools" +msgstr "Herramientas" + +#: ../admin/partials/admin.php:250 ../admin/partials/admin.php:258 +msgid "Parameters" +msgstr "Parámetros" + +#: ../admin/partials/admin.php:259 +msgid "About" +msgstr "Acerca de" + +#: ../admin/partials/admin.php:283 +msgid "Post type" +msgstr "Post type" + +#: ../admin/partials/admin.php:286 +msgid "Limit" +msgstr "Límite" + +#: ../admin/partials/admin.php:289 ../includes/widget-form.php:48 +msgid "Display only posts published within the selected Time Range" +msgstr "" +"Mostrar sólo entradas publicadas en el Rango de Tiempo seleccionado" + +#: ../admin/partials/admin.php:295 ../admin/partials/admin.php:333 +#: ../admin/partials/admin.php:552 ../admin/partials/admin.php:656 +#: ../admin/partials/admin.php:695 +msgid "Apply" +msgstr "Aplicar" + +#: ../admin/partials/admin.php:296 ../admin/partials/admin.php:336 +msgid "Cancel" +msgstr "Cancelar" + +#: ../admin/partials/admin.php:309 +msgid "Custom Time Range" +msgstr "Rango de Tiempo Personalizado" + +#: ../admin/partials/admin.php:310 +msgid "Date Range" +msgstr "Rango de Fechas" + +#: ../admin/partials/admin.php:318 ../admin/partials/admin.php:622 +#: ../includes/widget-form.php:41 +msgid "Minute(s)" +msgstr "Minuto(s)" + +#: ../admin/partials/admin.php:319 ../admin/partials/admin.php:623 +#: ../includes/widget-form.php:42 +msgid "Hour(s)" +msgstr "Hora(s)" + +#: ../admin/partials/admin.php:320 ../admin/partials/admin.php:624 +#: ../includes/widget-form.php:43 +msgid "Day(s)" +msgstr "Día(s)" + +#: ../admin/partials/admin.php:326 +msgid "Select a date..." +msgstr "Selecciona una fecha..." + +#: ../admin/partials/admin.php:355 +#, php-format +msgid "" +"Err... A nice little chart is supposed to be here, instead you are seeing " +"this because your browser is too old. <br /> Please <a href=\"%s\" target=" +"\"_blank\">get a better browser</a>." +msgstr "" +"Ehh... se supone que aquí saldría un gráfico, pero en " +"vez de eso estás viendo ésto porque tu navegador es demasiado " +"anticuado.<br /> Por favor <a href=\"%s\" target=\"_blank\">instala un mejor " +"navegador</a>." + +#: ../admin/partials/admin.php:481 +msgid "Thumbnails" +msgstr "Miniaturas" + +#: ../admin/partials/admin.php:486 +msgid "Default thumbnail" +msgstr "Miniatura por defecto" + +#: ../admin/partials/admin.php:491 +msgid "Upload thumbnail" +msgstr "Subir miniatura" + +#: ../admin/partials/admin.php:493 +msgid "" +"How-to: upload (or select) an image, set Size to Full and click on Upload. " +"After it's done, hit on Apply to save changes" +msgstr "" +"Tutorial: sube (o selecciona) una imagen, selecciona Tamaño Completo " +"y haz clic en Subir. Cuando termine, dale a Aplicar para guardar los cambios" + +#: ../admin/partials/admin.php:497 +msgid "Pick image from" +msgstr "Seleccionar imagen desde" + +#: ../admin/partials/admin.php:500 +msgid "Featured image" +msgstr "\tImagen destacada" + +#: ../admin/partials/admin.php:501 +msgid "First image on post" +msgstr "Primera imagen de la entrada" + +#: ../admin/partials/admin.php:502 +msgid "First attachment" +msgstr "Primer adjunto" + +#: ../admin/partials/admin.php:503 +msgid "Custom field" +msgstr "Custom field" + +#: ../admin/partials/admin.php:506 +msgid "Tell WordPress Popular Posts where it should get thumbnails from" +msgstr "" +"Dile a WordPress Popular Posts de dónde debe obtener las miniaturas" + +#: ../admin/partials/admin.php:510 +msgid "Custom field name" +msgstr "Nombre del custom field" + +#: ../admin/partials/admin.php:516 +msgid "Resize image from Custom field?" +msgstr "¡Ajustar la imagen del Custom field?" + +#: ../admin/partials/admin.php:519 +msgid "No, I will upload my own thumbnail" +msgstr "No, subiré mi propia miniatura" + +#: ../admin/partials/admin.php:520 +msgid "Yes" +msgstr "Sí" + +#: ../admin/partials/admin.php:525 +msgid "Responsive support" +msgstr "Soporte Responsive" + +#: ../admin/partials/admin.php:528 ../admin/partials/admin.php:598 +#: ../admin/partials/admin.php:638 ../admin/partials/admin.php:685 +msgid "Enabled" +msgstr "Habilitado" + +#: ../admin/partials/admin.php:529 ../admin/partials/admin.php:582 +#: ../admin/partials/admin.php:597 ../admin/partials/admin.php:637 +#: ../admin/partials/admin.php:686 +msgid "Disabled" +msgstr "Deshabilitado" + +#: ../admin/partials/admin.php:532 +msgid "" +"If enabled, WordPress Popular Posts will strip height and width attributes " +"out of thumbnails' image tags" +msgstr "" +"Si se activa, WordPress Popular Posts quitará los atributos height y " +"width de las etiquetas image de las miniaturas" + +#: ../admin/partials/admin.php:542 +msgid "Empty image cache" +msgstr "Vaciar el caché de imágenes" + +#: ../admin/partials/admin.php:543 +msgid "Use this button to clear WPP's thumbnails cache" +msgstr "" +"Utiliza este botón para vaciar el caché de miniaturas de WPP" + +#: ../admin/partials/admin.php:563 +msgid "Data" +msgstr "Datos" + +#: ../admin/partials/admin.php:568 +msgid "Log views from" +msgstr "Registrar vistas de" + +#: ../admin/partials/admin.php:571 +msgid "Visitors only" +msgstr "Sólo visitantes" + +#: ../admin/partials/admin.php:572 +msgid "Logged-in users only" +msgstr "Sólo usuarios conectados" + +#: ../admin/partials/admin.php:573 +msgid "Everyone" +msgstr "Todos" + +#: ../admin/partials/admin.php:579 +msgid "Log limit" +msgstr "Límite del registro" + +#: ../admin/partials/admin.php:583 +msgid "Keep data for" +msgstr "Guardar datos por" + +#: ../admin/partials/admin.php:586 +msgid "day(s)" +msgstr "día(s)" + +#: ../admin/partials/admin.php:588 +msgid "" +"Data from entries that haven't been viewed within the specified time frame " +"will be automatically discarded" +msgstr "" +"Los datos de aquellas entradas que no han sido vistas en el tiempo " +"especificado serán automáticamente descartados" + +#: ../admin/partials/admin.php:594 +msgid "Ajaxify widget" +msgstr "Usar Ajax con el widget" + +#: ../admin/partials/admin.php:602 +msgid "" +"If you are using a caching plugin such as WP Super Cache, enabling this " +"feature will keep the popular list from being cached by it" +msgstr "" +"Si estás utilizando un plugin de cacheo como WP Super Cache, " +"habilitar esta característica evitará que la lista de entradas " +"populares sea guardada en caché" + +#: ../admin/partials/admin.php:606 +msgid "WPP Cache Expiry Policy" +msgstr "WPP Política de Expiración del Cache" + +#: ../admin/partials/admin.php:606 ../admin/partials/admin.php:634 +#: ../includes/widget-form.php:3 ../includes/widget-form.php:50 +#: ../includes/widget-form.php:56 ../includes/widget-form.php:75 +#: ../includes/widget-form.php:85 ../includes/widget-form.php:177 +msgid "What is this?" +msgstr "¿Qué es ésto?" + +#: ../admin/partials/admin.php:609 +msgid "Never cache" +msgstr "Nunca almacenar en caché" + +#: ../admin/partials/admin.php:610 +msgid "Enable caching" +msgstr "Habilitar caché" + +#: ../admin/partials/admin.php:614 +msgid "" +"Sets WPP's cache expiration time. WPP can cache the popular list for a " +"specified amount of time. Recommended for large / high traffic sites" +msgstr "" +"Configura lel tiempo de expiración del cache de WPP. WPP puede " +"almacenar en caché el listado de entradas populares por una cantidad " +"de tiempo especificada. Recomendado para sitios web grandes / de alto " +"tráfico" + +#: ../admin/partials/admin.php:618 +msgid "Refresh cache every" +msgstr "Refrescar el caché cada" + +#: ../admin/partials/admin.php:625 +msgid "Week(s)" +msgstr "Semana(s)" + +#: ../admin/partials/admin.php:626 +msgid "Month(s)" +msgstr "Mes(es)" + +#: ../admin/partials/admin.php:627 +msgid "Year(s)" +msgstr "Año(s)" + +#: ../admin/partials/admin.php:630 +msgid "Really? That long?" +msgstr "¿En serio? ¿Tanto tiempo?" + +#: ../admin/partials/admin.php:634 +msgid "Data Sampling" +msgstr "Sampleo de Datos" + +#: ../admin/partials/admin.php:642 +#, php-format +msgid "" +"By default, WordPress Popular Posts stores in database every single visit " +"your site receives. For small / medium sites this is generally OK, but on " +"large / high traffic sites the constant writing to the database may have an " +"impact on performance. With <a href=\"%1$s\" target=\"_blank\">data " +"sampling</a>, WordPress Popular Posts will store only a subset of your " +"traffic and report on the tendencies detected in that sample set (for more, " +"<a href=\"%2$s\" target=\"_blank\">please read here</a>)" +msgstr "" +"Por defecto, WordPress Popular Posts almacena en la base de datos todas y " +"cada una de las visitas que recibe tu sitio. Para sitios pequeños / " +"medianos esto generalmente está bien, pero en sitios grandes / de " +"mucho tráfico la escritura constante en la base de datos pudiese " +"causar un impacto en su rendimiento. Con <a href=\"%1$s\" target=\"_blank" +"\">data sampling</a>, WordPress Popular Posts almacenará sólo " +"un subconjunto de tu tráfico y reportará sobre las tendencias " +"detectadas en ese conjunto de muestras (para más, <a href=\"%2$s\" " +"target=\"_blank\">por favor leer acá</a>)" + +#: ../admin/partials/admin.php:646 +msgid "Sample Rate" +msgstr "Rata de Sampleo" + +#: ../admin/partials/admin.php:650 +#, php-format +msgid "" +"A sampling rate of %d is recommended for large / high traffic sites. For " +"lower traffic sites, you should lower the value" +msgstr "" +"Se recomienda una rata de sampleo de %d para sitios grandes / de alto " +"tráfico. Para sitios con menos tráfico, deberías " +"disminuir el valor" + +#: ../admin/partials/admin.php:667 +msgid "Miscellaneous" +msgstr "Misceláneos" + +#: ../admin/partials/admin.php:672 +msgid "Open links in" +msgstr "Abrir enlaces en" + +#: ../admin/partials/admin.php:675 +msgid "Current window" +msgstr "Ventana actual" + +#: ../admin/partials/admin.php:676 +msgid "New tab/window" +msgstr "Nueva pestaña/ventana" + +#: ../admin/partials/admin.php:682 +msgid "Use plugin's stylesheet" +msgstr "Utilizar la hoja de estilos del plugin" + +#: ../admin/partials/admin.php:689 +msgid "" +"By default, the plugin includes a stylesheet called wpp.css which you can " +"use to style your popular posts listing. If you wish to use your own " +"stylesheet or do not want it to have it included in the header section of " +"your site, use this." +msgstr "" +"Por defecto, el plugin incluye una hoja de estilos llamada wpp.css que " +"puedes utilizar para darle estilos a tu listado de entradas populares. Si " +"deseas utilizar tu propia hoja de estilos, o no quieres que wpp.css se " +"incluya en el header de tu sitio web, utiliza esto." + +#: ../admin/partials/admin.php:708 +msgid "" +"WordPress Popular Posts maintains data in two separate tables: one for " +"storing the most popular entries on a daily basis (from now on, \"cache\"), " +"and another one to keep the All-time data (from now on, \"historical data\" " +"or just \"data\"). If for some reason you need to clear the cache table, or " +"even both historical and cache tables, please use the buttons below to do so." +msgstr "" +"WordPress Popular Posts mantiene la data en dos tablas separadas: una para " +"guardar diariamente las entradas más populares (\"caché\", de " +"aquí en adelante), y otra tabla para almacenar la data de Todos los " +"tiempos (\"data histórica\" o simplemente \"data\"). Si por alguna " +"razón necesitas vaciar la tabla caché, o inclusive las dos " +"tablas históricas y de caché, por favor utiliza los botones de " +"abajo." + +#: ../admin/partials/admin.php:709 +msgid "Empty cache" +msgstr "Vaciar el caché" + +#: ../admin/partials/admin.php:709 +msgid "Use this button to manually clear entries from WPP cache only" +msgstr "" +"Utiliza este botón para vaciar manualmente sólo las entradas " +"del caché de WPP" + +#: ../admin/partials/admin.php:710 +msgid "Clear all data" +msgstr "Eliminar toda la data" + +#: ../admin/partials/admin.php:710 +msgid "Use this button to manually clear entries from all WPP data tables" +msgstr "" +"Utiliza este botón para limpiar manualmente las tablas de datos de WPP" + +#: ../admin/partials/admin.php:717 +#, php-format +msgid "" +"With the following parameters you can customize the popular posts list when " +"using either the <a href=\"%1$s\">wpp_get_mostpopular() template tag</a> or " +"the <a href=\"%2$s\">[wpp] shortcode</a>." +msgstr "" +"Con los siguientes parámetros puedes personalizar el listado de " +"entradas populares cuando utilices el <a href=\"%1$s\">template tag " +"wpp_get_mostpopular()</a> o el <a href=\"%2$s\">shortcode [wpp]</a>." + +#: ../admin/partials/admin.php:725 +msgid "Parameter" +msgstr "Parámetro" + +#: ../admin/partials/admin.php:726 +msgid "What it does " +msgstr "Qué hace" + +#: ../admin/partials/admin.php:727 +msgid "Possible values" +msgstr "Valores posibles" + +#: ../admin/partials/admin.php:728 +msgid "Defaults to" +msgstr "Por defecto" + +#: ../admin/partials/admin.php:729 +msgid "Example" +msgstr "Ejemplo" + +#: ../admin/partials/admin.php:735 +msgid "Sets a heading for the list" +msgstr "Configura el encabezado de la lista" + +#: ../admin/partials/admin.php:736 ../admin/partials/admin.php:743 +#: ../admin/partials/admin.php:750 ../admin/partials/admin.php:799 +#: ../admin/partials/admin.php:806 ../admin/partials/admin.php:813 +#: ../admin/partials/admin.php:820 ../admin/partials/admin.php:827 +#: ../admin/partials/admin.php:834 ../admin/partials/admin.php:925 +#: ../admin/partials/admin.php:946 ../admin/partials/admin.php:953 +msgid "Text string" +msgstr "Texto" + +#: ../admin/partials/admin.php:737 ../admin/partials/admin.php:807 +#: ../admin/partials/admin.php:814 ../admin/partials/admin.php:821 +#: ../admin/partials/admin.php:828 ../admin/partials/admin.php:835 +msgid "None" +msgstr "Ninguno" + +#: ../admin/partials/admin.php:738 ../admin/partials/admin.php:745 +#: ../admin/partials/admin.php:752 ../admin/partials/admin.php:759 +#: ../admin/partials/admin.php:766 ../admin/partials/admin.php:773 +#: ../admin/partials/admin.php:780 ../admin/partials/admin.php:787 +#: ../admin/partials/admin.php:794 ../admin/partials/admin.php:801 +#: ../admin/partials/admin.php:808 ../admin/partials/admin.php:815 +#: ../admin/partials/admin.php:822 ../admin/partials/admin.php:829 +#: ../admin/partials/admin.php:836 ../admin/partials/admin.php:843 +#: ../admin/partials/admin.php:850 ../admin/partials/admin.php:857 +#: ../admin/partials/admin.php:864 ../admin/partials/admin.php:871 +#: ../admin/partials/admin.php:878 ../admin/partials/admin.php:885 +#: ../admin/partials/admin.php:892 ../admin/partials/admin.php:899 +#: ../admin/partials/admin.php:906 ../admin/partials/admin.php:913 +#: ../admin/partials/admin.php:920 ../admin/partials/admin.php:927 +#: ../admin/partials/admin.php:934 ../admin/partials/admin.php:941 +#: ../admin/partials/admin.php:948 ../admin/partials/admin.php:955 +#: ../admin/partials/admin.php:962 +msgid "With wpp_get_mostpopular():" +msgstr "Con wpp_get_mostpopular():" + +#: ../admin/partials/admin.php:738 ../admin/partials/admin.php:745 +#: ../admin/partials/admin.php:752 ../admin/partials/admin.php:759 +#: ../admin/partials/admin.php:766 ../admin/partials/admin.php:773 +#: ../admin/partials/admin.php:780 ../admin/partials/admin.php:787 +#: ../admin/partials/admin.php:794 ../admin/partials/admin.php:801 +#: ../admin/partials/admin.php:808 ../admin/partials/admin.php:815 +#: ../admin/partials/admin.php:822 ../admin/partials/admin.php:829 +#: ../admin/partials/admin.php:836 ../admin/partials/admin.php:843 +#: ../admin/partials/admin.php:850 ../admin/partials/admin.php:857 +#: ../admin/partials/admin.php:864 ../admin/partials/admin.php:871 +#: ../admin/partials/admin.php:878 ../admin/partials/admin.php:885 +#: ../admin/partials/admin.php:892 ../admin/partials/admin.php:899 +#: ../admin/partials/admin.php:906 ../admin/partials/admin.php:913 +#: ../admin/partials/admin.php:920 ../admin/partials/admin.php:927 +#: ../admin/partials/admin.php:934 ../admin/partials/admin.php:941 +#: ../admin/partials/admin.php:948 ../admin/partials/admin.php:955 +#: ../admin/partials/admin.php:962 +msgid "With the [wpp] shortcode:" +msgstr "Con el shortcode [wpp]:" + +#: ../admin/partials/admin.php:742 +msgid "Set the opening tag for the heading of the list" +msgstr "Configura la etiqueta de apertura para el encabezado de la lista" + +#: ../admin/partials/admin.php:749 +msgid "Set the closing tag for the heading of the list" +msgstr "Configura la etiqueta de cierre para el encabezado de la lista" + +#: ../admin/partials/admin.php:756 +msgid "Sets the maximum number of popular posts to be shown on the listing" +msgstr "" +"Configura el máximo de entradas populares a ser mostradas en la lista" + +#: ../admin/partials/admin.php:757 ../admin/partials/admin.php:771 +#: ../admin/partials/admin.php:841 ../admin/partials/admin.php:855 +#: ../admin/partials/admin.php:876 ../admin/partials/admin.php:883 +msgid "Positive integer" +msgstr "Entero positivo" + +#: ../admin/partials/admin.php:763 +msgid "" +"Tells WordPress Popular Posts to retrieve the most popular entries within " +"the time range specified by you" +msgstr "" +"Le indica a WordPress Popular Posts que debe listar aquellas entradas que " +"hayan sido populares dentro del rango de tiempo especificado por ti" + +#: ../admin/partials/admin.php:770 +msgid "Especifies the number of time units of the custom time range" +msgstr "" +"Especifica el número de unidades de tiempo del rango de tiempo " +"personalizado" + +#: ../admin/partials/admin.php:777 +msgid "Especifies the time unit of the custom time range" +msgstr "Especifica la unidad de tiempo del rango de tiempo personalizado" + +#: ../admin/partials/admin.php:784 +msgid "" +"Tells WordPress Popular Posts to retrieve the most popular entries published " +"within the time range specified by you" +msgstr "" +"Le indica a WordPress Popular Posts que debe listar aquellas entradas " +"populares publicadas dentro del rango de tiempo especificado por ti" + +#: ../admin/partials/admin.php:791 +msgid "Sets the sorting option of the popular posts" +msgstr "Configura el ordenado de las entradas populares" + +#: ../admin/partials/admin.php:792 +msgid "(for average views per day)" +msgstr "(para el porcentaje de vistas por día)" + +#: ../admin/partials/admin.php:798 +msgid "Defines the type of posts to show on the listing" +msgstr "Define el tipo de entrada a mostrar en el listado" + +#: ../admin/partials/admin.php:805 +msgid "" +"If set, WordPress Popular Posts will exclude the specified post(s) ID(s) " +"form the listing." +msgstr "" +"Si se configura, WordPress Popular Posts excluirá todos los IDs de " +"las entradas especificadas." + +#: ../admin/partials/admin.php:812 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries that belong to the " +"specified category ID(s). If a minus sign is used, entries associated to the " +"category will be excluded instead." +msgstr "" +"Si se configura, WordPress Popular Posts mostrará todas las entradas " +"que pertenecen a la(s) categoría(s) especificada(s). Si se usa un " +"signo negativo, las entradas asociadas a dicha categoría serán " +"excluídas." + +#: ../admin/partials/admin.php:819 +msgid "If set, WordPress Popular Posts will filter posts by a given taxonomy." +msgstr "" +"Si se tilda, WordPress Popular Posts filtrará entradas por la " +"taxonomía indicada." + +#: ../admin/partials/admin.php:826 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries that belong to the " +"specified term ID(s). If a minus sign is used, entries associated to the " +"term(s) will be excluded instead." +msgstr "" +"Si se configura, WordPress Popular Posts mostrará todas las entradas " +"que pertenecen al Term ID especificado(s). Si se usa un signo negativo, las " +"entradas asociadas a dicho term serán excluídas." + +#: ../admin/partials/admin.php:833 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries created by " +"specified author(s) ID(s)." +msgstr "" +"Si se configura, WordPress Popular Posts traerá todas las entradas " +"creadas por el (los) ID(s) de autor(es) especificado(s)." + +#: ../admin/partials/admin.php:840 +msgid "" +"If set, WordPress Popular Posts will shorten each post title to \"n\" " +"characters whenever possible" +msgstr "" +"Si se configura, WordPress Popular Posts acortará cada titulo en \"n" +"\" caracteres cuando sea posible" + +#: ../admin/partials/admin.php:847 +msgid "" +"If set to 1, WordPress Popular Posts will shorten each post title to \"n\" " +"words instead of characters" +msgstr "" +"Si se pasa el valor 1, WordPress Popular Posts acortará cada titulo " +"en \"n\" palabras en vez de caracteres" + +#: ../admin/partials/admin.php:854 +msgid "" +"If set, WordPress Popular Posts will build and include an excerpt of \"n\" " +"characters long from the content of each post listed as popular" +msgstr "" +"Si se configura, WordPress Popular Posts construirá e incluirá " +"un extracto de \"n\" caracteres del contenido de cada entrada listada como " +"popular" + +#: ../admin/partials/admin.php:861 +msgid "" +"If set, WordPress Popular Posts will maintaing all styling tags (strong, " +"italic, etc) and hyperlinks found in the excerpt" +msgstr "" +"Si se configura, WordPress Popular Posts mantendrá todas las " +"etiquetas de estilo (strong, italic, etc) y los hipervínculos " +"encontrados en el extracto" + +#: ../admin/partials/admin.php:868 +msgid "" +"If set to 1, WordPress Popular Posts will shorten the excerpt to \"n\" words " +"instead of characters" +msgstr "" +"Si se configura, WordPress Popular Posts acortará el resumen en \"n\" " +"palabras en vez de caracteres" + +#: ../admin/partials/admin.php:875 +msgid "" +"If set, and if your current server configuration allows it, you will be able " +"to display thumbnails of your posts. This attribute sets the width for " +"thumbnails" +msgstr "" +"Si se configura, y si la configuración actual de tu servidor lo " +"permite, podrás mostrar miniaturas de tus entradas. Este atributo " +"configura el ancho de tus miniaturas" + +#: ../admin/partials/admin.php:882 +msgid "" +"If set, and if your current server configuration allows it, you will be able " +"to display thumbnails of your posts. This attribute sets the height for " +"thumbnails" +msgstr "" +"Si se configura, y si la configuración actual de tu servidor lo " +"permite, podrás mostrar miniaturas de tus entradas. Este atributo " +"configura el alto de tus miniaturas" + +#: ../admin/partials/admin.php:889 +msgid "" +"If set, and if the WP-PostRatings plugin is installed and enabled on your " +"blog, WordPress Popular Posts will show how your visitors are rating your " +"entries" +msgstr "" +"Si se configura, y si el plugin WP-PostRatings está instalado y " +"habilitado en tu blog, WordPress Popular Posts mostrará como tus " +"visitantes han calificado a tus entradas" + +#: ../admin/partials/admin.php:896 +msgid "" +"If set, WordPress Popular Posts will show how many comments each popular " +"post has got during the specified time range" +msgstr "" +"Si se configura, WordPress Popular Posts mostrará cuántos " +"comentarios ha obtenido cada entrada popular dentro del rango de tiempo " +"especificado" + +#: ../admin/partials/admin.php:903 +msgid "" +"If set, WordPress Popular Posts will show how many views each popular post " +"has got during the specified time range" +msgstr "" +"Si se configura, WordPress Popular Posts mostrará cuántas " +"vistas ha obtenido cada entrada popular dentro del rango de tiempo " +"especificado" + +#: ../admin/partials/admin.php:910 +msgid "" +"If set, WordPress Popular Posts will show who published each popular post on " +"the list" +msgstr "" +"Si se configura, WordPress Popular Posts mostrará quién " +"publicó cada entrada popular de la lista" + +#: ../admin/partials/admin.php:917 +msgid "" +"If set, WordPress Popular Posts will display the date when each popular post " +"on the list was published" +msgstr "" +"Si se tilda, WordPress Popular Posts mostrará la fecha en la que fue " +"publicada cada entrada popular" + +#: ../admin/partials/admin.php:924 +msgid "Sets the date format" +msgstr "Configura el formato de la fecha" + +#: ../admin/partials/admin.php:931 +msgid "" +"If set, WordPress Popular Posts will display the categories associated to " +"each entry" +msgstr "" +"Si se tilda, WordPress Popular Posts mostrará las categorías " +"asociadas a cada entrada" + +#: ../admin/partials/admin.php:938 +msgid "" +"If set, WordPress Popular Posts will display the taxonomies associated to " +"each entry" +msgstr "" +"Si se tilda, WordPress Popular Posts mostrará las taxonomías " +"asociadas a cada entrada" + +#: ../admin/partials/admin.php:945 +msgid "Sets the opening tag for the listing" +msgstr "Configura la etiqueta de apertura del listado" + +#: ../admin/partials/admin.php:952 +msgid "Sets the closing tag for the listing" +msgstr "Configura la etiqueta de cierre del listado" + +#: ../admin/partials/admin.php:959 +msgid "Sets the HTML structure of each post" +msgstr "Configura la estructura HTML de cada entrada" + +#: ../admin/partials/admin.php:960 +msgid "Text string, custom HTML" +msgstr "Texto, HTML personalizado" + +#: ../admin/partials/admin.php:960 +msgid "Available Content Tags" +msgstr "Content Tags disponibles" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays thumbnail linked to post/page, requires thumbnail_width & " +"thumbnail_height" +msgstr "" +"muestra la miniatura con un link hacia la entrada/página, requiere " +"thumbnail_width & thumbnail_height" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays thumbnail image without linking to post/page, requires " +"thumbnail_width & thumbnail_height" +msgstr "" +"muestra la miniatura sin link hacia la entrada/página, requiere " +"thumbnail_width & thumbnail_height" + +#: ../admin/partials/admin.php:960 +msgid "displays thumbnail url, requires thumbnail_width & thumbnail_height" +msgstr "" +"muestra la url de la miniatura, requires thumbnail_width & thumbnail_height" + +#: ../admin/partials/admin.php:960 +msgid "displays linked post/page title" +msgstr "muestra el título de la entrada/página con enlace" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page excerpt, and requires excerpt_length to be greater than 0" +msgstr "" +"muestra el resumen de la entrada/página, requiere que excerpt_length " +"sea mayor a 0" + +#: ../admin/partials/admin.php:960 +msgid "displays the default stats tags" +msgstr "muestra el stats tag por defecto" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page current rating, requires WP-PostRatings installed and " +"enabled" +msgstr "" +"muestra el rating actual de la entrada/página, requiere que WP-" +"PostRatings esté instalado y activo" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page current rating as an integer, requires WP-PostRatings " +"installed and enabled" +msgstr "" +"muestra el rating actual de la entrada/página como un entero, " +"requiere que WP-PostRatings esté instalado y activo" + +#: ../admin/partials/admin.php:960 +msgid "outputs the URL of the post/page" +msgstr "muestra la URL de la entrada/página" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page title, no link" +msgstr "muestra el título de la entrada/página, sin enlace" + +#: ../admin/partials/admin.php:960 +msgid "displays linked author name, requires stats_author=1" +msgstr "muestra el nombre del autor con enlace, requiere stats_author=1" + +#: ../admin/partials/admin.php:960 +msgid "displays linked category name, requires stats_category=1" +msgstr "" +"muestra el nombre de la categoría con enlace, requiere " +"stats_category=1" + +#: ../admin/partials/admin.php:960 +msgid "displays linked taxonomy names, requires stats_taxonomy=1" +msgstr "" +"muestra los nombres de las taxonomiías con enlace, requiere " +"stats_taxonomy=1" + +#: ../admin/partials/admin.php:960 +msgid "displays views count only, no text" +msgstr "muestra el número de vistas, sin texto adicional" + +#: ../admin/partials/admin.php:960 +msgid "displays comments count only, no text, requires stats_comments=1" +msgstr "" +"muestra el número de comentarios, sin texto adicional, requiere " +"stats_comments=1" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page date, requires stats_date=1" +msgstr "muestra la fecha de la entrada/página, requiere stats_date=1" + +#: ../includes/class-wordpress-popular-posts-output.php:95 +msgid "Sorry. No data so far." +msgstr "Lo lamentamos. No hay nada que mostrar aún." + +#: ../includes/class-wordpress-popular-posts-output.php:466 +#, php-format +msgid "%s ago" +msgstr "hace %s" + +#: ../includes/class-wordpress-popular-posts-output.php:683 +#, php-format +msgid "1 view per day" +msgid_plural "%s views per day" +msgstr[0] "1 vista por día" +msgstr[1] "%s vistas por día" + +#: ../includes/class-wordpress-popular-posts-output.php:712 +#, php-format +msgid "by %s" +msgstr "por %s" + +#: ../includes/class-wordpress-popular-posts-output.php:718 +#, php-format +msgid "posted %s" +msgstr "publicado %s" + +#: ../includes/class-wordpress-popular-posts-output.php:718 +#, php-format +msgid "posted on %s" +msgstr "publicado el %s" + +#: ../includes/class-wordpress-popular-posts-output.php:727 +#, php-format +msgid "under %s" +msgstr "bajo %s" + +#: ../includes/class-wordpress-popular-posts-widget.php:21 +msgid "The most Popular Posts on your blog." +msgstr "Las entradas más populares en tu blog." + +#: ../includes/class-wordpress-popular-posts-widget.php:89 +#, php-format +msgid "" +"Error: cannot ajaxify WordPress Popular Posts on this theme. It's missing " +"the <em>id</em> attribute on before_widget (see <a href=\"%s\" target=" +"\"_blank\" rel=\"nofollow\">register_sidebar</a> for more)" +msgstr "" +"Error: no se puede ajaxificar WordPress Popular Posts en este tema. Le falta " +"el atributo <em>id</em> en before_widget (ver <a href=\"%s\" target=\"_blank" +"\" rel=\"nofollow\">register_sidebar</a> para más detalles)" + +#: ../includes/class-wordpress-popular-posts-widget.php:100 +msgid "Loading..." +msgstr "Cargando..." + +#: ../includes/widget-form.php:3 +msgid "Title" +msgstr "Título" + +#: ../includes/widget-form.php:9 +msgid "Show up to" +msgstr "Mostrar hasta" + +#: ../includes/widget-form.php:10 +msgid "posts" +msgstr "entradas" + +#: ../includes/widget-form.php:15 +msgid "Sort posts by" +msgstr "Ordenar entradas por" + +#: ../includes/widget-form.php:18 +msgid "Total views" +msgstr "Total de vistas" + +#: ../includes/widget-form.php:19 +msgid "Avg. daily views" +msgstr "Porcentaje de vistas diarias" + +#: ../includes/widget-form.php:26 +msgid "Filters" +msgstr "Filtros" + +#: ../includes/widget-form.php:28 +msgid "Time Range" +msgstr "Rango de Tiempo" + +#: ../includes/widget-form.php:30 +msgid "Last 24 hours" +msgstr "Últimas 24 horas" + +#: ../includes/widget-form.php:31 +msgid "Last 7 days" +msgstr "Últimos 7 días" + +#: ../includes/widget-form.php:32 +msgid "Last 30 days" +msgstr "Últimos 30 días" + +#: ../includes/widget-form.php:33 +msgid "All-time" +msgstr "Todos los tiempos" + +#: ../includes/widget-form.php:34 +msgid "Custom" +msgstr "Personalizado" + +#: ../includes/widget-form.php:50 +msgid "Post type(s)" +msgstr "Post type(s)" + +#: ../includes/widget-form.php:53 +msgid "Post ID(s) to exclude" +msgstr "ID(s) de Entrada(s) a excluir" + +#: ../includes/widget-form.php:56 +msgid "Taxonomy" +msgstr "Taxonomía" + +#: ../includes/widget-form.php:69 +msgid "Taxonomy IDs, separated by comma (prefix a minus sign to exclude)" +msgstr "" +"IDs de taxonomía separados por comma (agrega un símbolo " +"negativo para excluir)" + +#: ../includes/widget-form.php:75 +msgid "Author ID(s)" +msgstr "ID(s) de Autor(es)" + +#: ../includes/widget-form.php:81 +msgid "Posts settings" +msgstr "Configuración de las entradas" + +#: ../includes/widget-form.php:85 +msgid "Display post rating" +msgstr "Mostrar calificación de la entrada" + +#: ../includes/widget-form.php:88 +msgid "Shorten title" +msgstr "Acortar título" + +#: ../includes/widget-form.php:91 +msgid "Shorten title to" +msgstr "Acortar título en" + +#: ../includes/widget-form.php:92 ../includes/widget-form.php:102 +msgid "characters" +msgstr "caracteres" + +#: ../includes/widget-form.php:93 ../includes/widget-form.php:103 +msgid "words" +msgstr "palabras" + +#: ../includes/widget-form.php:96 +msgid "Display post excerpt" +msgstr "Mostrar resumen de la entrada" + +#: ../includes/widget-form.php:99 +msgid "Keep text format and links" +msgstr "Mantener formato de texto y enlaces" + +#: ../includes/widget-form.php:100 +msgid "Excerpt length" +msgstr "Largo del resumen" + +#: ../includes/widget-form.php:106 +msgid "Display post thumbnail" +msgstr "Mostrar miniatura" + +#: ../includes/widget-form.php:109 +msgid "Use predefined size" +msgstr "Utilizar un tamaño predefinido" + +#: ../includes/widget-form.php:121 +msgid "Set size manually" +msgstr "Configurar el tamaño manualmente" + +#: ../includes/widget-form.php:123 +msgid "Width" +msgstr "Ancho" + +#: ../includes/widget-form.php:126 +msgid "Height" +msgstr "Alto" + +#: ../includes/widget-form.php:133 +msgid "Stats Tag settings" +msgstr "Configuración del Stats Tag" + +#: ../includes/widget-form.php:135 +msgid "Display comment count" +msgstr "Mostrar cantidad de comentarios" + +#: ../includes/widget-form.php:137 +msgid "Display views" +msgstr "Mostrar vistas" + +#: ../includes/widget-form.php:139 +msgid "Display author" +msgstr "Mostrar autor" + +#: ../includes/widget-form.php:141 +msgid "Display date" +msgstr "Mostrar fecha" + +#: ../includes/widget-form.php:144 +msgid "Date Format" +msgstr "Formato de la fecha" + +#: ../includes/widget-form.php:146 +msgid "Relative" +msgstr "Relativo" + +#: ../includes/widget-form.php:147 +msgid "WordPress Date Format" +msgstr "Formato de fecha de WordPress" + +#: ../includes/widget-form.php:154 +msgid "Display taxonomy" +msgstr "Mostrar taxonomía" + +#: ../includes/widget-form.php:175 +msgid "HTML Markup settings" +msgstr "Configuración del Markup HTML" + +#: ../includes/widget-form.php:177 +msgid "Use custom HTML Markup" +msgstr "Utilizar Markup HTML personalizado" + +#: ../includes/widget-form.php:180 +msgid "Before / after title" +msgstr "Antes / después del título" + +#: ../includes/widget-form.php:183 +msgid "Before / after Popular Posts" +msgstr "Antes / después de las entradas populares" + +#: ../includes/widget-form.php:186 +msgid "Post HTML Markup" +msgstr "Markup HTML de la entrada" + +#~ msgid "About WordPress Popular Posts %s" +#~ msgstr "Acerca de WordPress Popular Posts %s" + +#~ msgid "This version includes the following changes" +#~ msgstr "Esta versión incluye los siguientes cambios" + +#~ msgid "Need help?" +#~ msgstr "¿Necesitas ayuda?" + +#~ msgid "" +#~ "Visit <a href=\"%s\" target=\"_blank\">the forum</a> for support, " +#~ "questions and feedback." +#~ msgstr "" +#~ "Visita <a href=\"%s\" target=\"_blank\">el foro</a> para obtener soporte, " +#~ "hacer preguntas y dejar tu feedback." + +#~ msgid "Let's make this plugin even better!" +#~ msgstr "¡Hagamos a este plugin inclusive mejor!" + +#~ msgid "" +#~ "Click on each tab to see what are the most popular entries on your blog " +#~ "in the last 24 hours, this week, last 30 days or all time since WordPress " +#~ "Popular Posts was installed." +#~ msgstr "" +#~ "Haz clic en cada pestaña para ver las entradas más " +#~ "populares de tu blog en las últimas 24 horas, esta semana, los " +#~ "últimos 30 días o de todos los tiempos desde que WordPress " +#~ "Popular Posts fue instalado." + +#~ msgid "Order by comments" +#~ msgstr "Ordenar por comentarios" + +#~ msgid "Order by avg. daily views" +#~ msgstr "Ordenar por average de vistas diarias" + +#~ msgid "Category(ies) ID(s)" +#~ msgstr "ID(s) de Categoría(s)" diff --git a/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts.pot b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts.pot new file mode 100644 index 0000000000000000000000000000000000000000..5d3c54a61e9021e4e167fd12c2a7a73424a5090c --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/languages/wordpress-popular-posts.pot @@ -0,0 +1,1118 @@ +# Copyright (C) 2014 Wordpress Popular Posts +# This file is distributed under the same license as the Wordpress Popular Posts package. +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: WordPress Popular Posts\n" +"Report-Msgid-Bugs-To: http://wordpress.org/tag/wordpress-popular-posts\n" +"POT-Creation-Date: 2017-09-19 15:36-0400\n" +"PO-Revision-Date: 2015-04-24 13:30-0430\n" +"Last-Translator: Héctor Cabrera <hcabrerab@gmail.com>\n" +"Language-Team: Héctor Cabrera <me@cabrerahector.com>\n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.3\n" +"X-Poedit-KeywordsList: _e;__;__ngettext;__ngettext_noop;_n_noop;_x;_nx;_nx_noop;_ex;" +"esc_attr__;esc_attr_e;esc_attr_x;esc_html__;esc_html_e;esc_html_x;_c;_nc;_n:1,2\n" +"X-Poedit-Basepath: .\n" +"X-Poedit-SourceCharset: UTF-8\n" +"X-Poedit-SearchPath-0: .\n" +"X-Poedit-SearchPath-1: ..\n" + +#: ../admin/class-wordpress-popular-posts-admin.php:221 +msgid "Upload" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:238 +msgid "Overview" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:239 +msgid "" +"Welcome to WordPress Popular Posts' Dashboard! In this screen you will find statistics " +"on what's popular on your site, tools to further tweak WPP to your needs, and more!" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:245 +msgid "Like this plugin?" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:247 +msgid "" +"Each donation motivates me to keep releasing free stuff for the WordPress community!" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:254 +#, php-format +msgid "You can <a href=\"%s\" target=\"_blank\">leave a review</a>, too!" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:263 +#, php-format +msgid "" +"<p><strong>For more information:</strong></p><ul><li><a href=\"%1$s\">Documentation</" +"a></li><li><a href=\"%2$s\">Support</a></li></ul>" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:631 +#: ../admin/class-wordpress-popular-posts-admin.php:750 ../admin/partials/admin.php:412 +#: ../admin/partials/admin.php:459 +#: ../includes/class-wordpress-popular-posts-output.php:689 +#, php-format +msgid "1 view" +msgid_plural "%s views" +msgstr[0] "" +msgstr[1] "" + +#: ../admin/class-wordpress-popular-posts-admin.php:631 +#: ../admin/class-wordpress-popular-posts-admin.php:805 ../admin/partials/admin.php:412 +#: ../admin/partials/admin.php:459 +#: ../includes/class-wordpress-popular-posts-output.php:670 +#, php-format +msgid "1 comment" +msgid_plural "%s comments" +msgstr[0] "" +msgstr[1] "" + +#: ../admin/class-wordpress-popular-posts-admin.php:663 ../includes/widget-form.php:17 +msgid "Comments" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:667 +msgid "Views" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:751 +#: ../admin/class-wordpress-popular-posts-admin.php:806 ../admin/partials/admin.php:413 +#: ../admin/partials/admin.php:460 +msgid "View" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:751 +#: ../admin/class-wordpress-popular-posts-admin.php:806 ../admin/partials/admin.php:413 +#: ../admin/partials/admin.php:460 +msgid "Edit" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:762 +#: ../admin/class-wordpress-popular-posts-admin.php:817 ../admin/partials/admin.php:424 +#: ../admin/partials/admin.php:471 +msgid "" +"Looks like traffic to your site is a little light right now. <br />Spread the word and " +"come back later!" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:889 +msgid "Settings" +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:1241 +#, php-format +msgid "" +"Your PHP installation is too old. WordPress Popular Posts requires at least PHP " +"version %1$s to function correctly. Please contact your hosting provider and ask them " +"to upgrade PHP to %1$s or higher." +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:1248 +#, php-format +msgid "" +"Your WordPress version is too old. WordPress Popular Posts requires at least WordPress " +"version %1$s to function correctly. Please update your blog via Dashboard > Update." +msgstr "" + +#: ../admin/class-wordpress-popular-posts-admin.php:1273 +#, php-format +msgid "" +"<div class=\"error\"><p>%1$s</p><p><i>%2$s</i> has been <strong>deactivated</strong>.</" +"p></div>" +msgstr "" + +#: ../admin/partials/admin.php:26 ../admin/partials/admin.php:41 +#: ../admin/partials/admin.php:65 ../admin/partials/admin.php:106 +msgid "Settings saved." +msgstr "" + +#: ../admin/partials/admin.php:55 +msgid "Please provide the name of your custom field." +msgstr "" + +#: ../admin/partials/admin.php:114 +msgid "" +"Any changes made to WPP's default stylesheet will be lost after every plugin update. " +"In order to prevent this from happening, please copy the wpp.css file (located at wp-" +"content/plugins/wordpress-popular-posts/style) into your theme's directory" +msgstr "" + +#: ../admin/partials/admin.php:129 +msgid "" +"This operation will delete all entries from WordPress Popular Posts' cache table and " +"cannot be undone." +msgstr "" + +#: ../admin/partials/admin.php:129 ../admin/partials/admin.php:168 +#: ../admin/partials/admin.php:207 +msgid "Do you want to continue?" +msgstr "" + +#: ../admin/partials/admin.php:141 +msgid "Success! The cache table has been cleared!" +msgstr "" + +#: ../admin/partials/admin.php:145 +msgid "Error: cache table does not exist." +msgstr "" + +#: ../admin/partials/admin.php:149 ../admin/partials/admin.php:157 +#: ../admin/partials/admin.php:188 ../admin/partials/admin.php:196 +#: ../admin/partials/admin.php:226 ../admin/partials/admin.php:234 +msgid "Invalid action." +msgstr "" + +#: ../admin/partials/admin.php:153 ../admin/partials/admin.php:192 +#: ../admin/partials/admin.php:230 +msgid "" +"Sorry, you do not have enough permissions to do this. Please contact the site " +"administrator for support." +msgstr "" + +#: ../admin/partials/admin.php:168 +msgid "" +"This operation will delete all stored info from WordPress Popular Posts' data tables " +"and cannot be undone." +msgstr "" + +#: ../admin/partials/admin.php:180 +msgid "Success! All data have been cleared!" +msgstr "" + +#: ../admin/partials/admin.php:184 +msgid "Error: one or both data tables are missing." +msgstr "" + +#: ../admin/partials/admin.php:207 +msgid "This operation will delete all cached thumbnails and cannot be undone." +msgstr "" + +#: ../admin/partials/admin.php:218 +msgid "Success! All files have been deleted!" +msgstr "" + +#: ../admin/partials/admin.php:222 +msgid "The thumbnail cache is already empty!" +msgstr "" + +#: ../admin/partials/admin.php:247 +msgid "Menu" +msgstr "" + +#: ../admin/partials/admin.php:248 ../admin/partials/admin.php:256 +msgid "Stats" +msgstr "" + +#: ../admin/partials/admin.php:249 ../admin/partials/admin.php:257 +msgid "Tools" +msgstr "" + +#: ../admin/partials/admin.php:250 ../admin/partials/admin.php:258 +msgid "Parameters" +msgstr "" + +#: ../admin/partials/admin.php:259 +msgid "About" +msgstr "" + +#: ../admin/partials/admin.php:283 +msgid "Post type" +msgstr "" + +#: ../admin/partials/admin.php:286 +msgid "Limit" +msgstr "" + +#: ../admin/partials/admin.php:289 ../includes/widget-form.php:48 +msgid "Display only posts published within the selected Time Range" +msgstr "" + +#: ../admin/partials/admin.php:295 ../admin/partials/admin.php:333 +#: ../admin/partials/admin.php:552 ../admin/partials/admin.php:656 +#: ../admin/partials/admin.php:695 +msgid "Apply" +msgstr "" + +#: ../admin/partials/admin.php:296 ../admin/partials/admin.php:336 +msgid "Cancel" +msgstr "" + +#: ../admin/partials/admin.php:309 +msgid "Custom Time Range" +msgstr "" + +#: ../admin/partials/admin.php:310 +msgid "Date Range" +msgstr "" + +#: ../admin/partials/admin.php:318 ../admin/partials/admin.php:622 +#: ../includes/widget-form.php:41 +msgid "Minute(s)" +msgstr "" + +#: ../admin/partials/admin.php:319 ../admin/partials/admin.php:623 +#: ../includes/widget-form.php:42 +msgid "Hour(s)" +msgstr "" + +#: ../admin/partials/admin.php:320 ../admin/partials/admin.php:624 +#: ../includes/widget-form.php:43 +msgid "Day(s)" +msgstr "" + +#: ../admin/partials/admin.php:326 +msgid "Select a date..." +msgstr "" + +#: ../admin/partials/admin.php:355 +#, php-format +msgid "" +"Err... A nice little chart is supposed to be here, instead you are seeing this because " +"your browser is too old. <br /> Please <a href=\"%s\" target=\"_blank\">get a better " +"browser</a>." +msgstr "" + +#: ../admin/partials/admin.php:481 +msgid "Thumbnails" +msgstr "" + +#: ../admin/partials/admin.php:486 +msgid "Default thumbnail" +msgstr "" + +#: ../admin/partials/admin.php:491 +msgid "Upload thumbnail" +msgstr "" + +#: ../admin/partials/admin.php:493 +msgid "" +"How-to: upload (or select) an image, set Size to Full and click on Upload. After it's " +"done, hit on Apply to save changes" +msgstr "" + +#: ../admin/partials/admin.php:497 +msgid "Pick image from" +msgstr "" + +#: ../admin/partials/admin.php:500 +msgid "Featured image" +msgstr "" + +#: ../admin/partials/admin.php:501 +msgid "First image on post" +msgstr "" + +#: ../admin/partials/admin.php:502 +msgid "First attachment" +msgstr "" + +#: ../admin/partials/admin.php:503 +msgid "Custom field" +msgstr "" + +#: ../admin/partials/admin.php:506 +msgid "Tell WordPress Popular Posts where it should get thumbnails from" +msgstr "" + +#: ../admin/partials/admin.php:510 +msgid "Custom field name" +msgstr "" + +#: ../admin/partials/admin.php:516 +msgid "Resize image from Custom field?" +msgstr "" + +#: ../admin/partials/admin.php:519 +msgid "No, I will upload my own thumbnail" +msgstr "" + +#: ../admin/partials/admin.php:520 +msgid "Yes" +msgstr "" + +#: ../admin/partials/admin.php:525 +msgid "Responsive support" +msgstr "" + +#: ../admin/partials/admin.php:528 ../admin/partials/admin.php:598 +#: ../admin/partials/admin.php:638 ../admin/partials/admin.php:685 +msgid "Enabled" +msgstr "" + +#: ../admin/partials/admin.php:529 ../admin/partials/admin.php:582 +#: ../admin/partials/admin.php:597 ../admin/partials/admin.php:637 +#: ../admin/partials/admin.php:686 +msgid "Disabled" +msgstr "" + +#: ../admin/partials/admin.php:532 +msgid "" +"If enabled, WordPress Popular Posts will strip height and width attributes out of " +"thumbnails' image tags" +msgstr "" + +#: ../admin/partials/admin.php:542 +msgid "Empty image cache" +msgstr "" + +#: ../admin/partials/admin.php:543 +msgid "Use this button to clear WPP's thumbnails cache" +msgstr "" + +#: ../admin/partials/admin.php:563 +msgid "Data" +msgstr "" + +#: ../admin/partials/admin.php:568 +msgid "Log views from" +msgstr "" + +#: ../admin/partials/admin.php:571 +msgid "Visitors only" +msgstr "" + +#: ../admin/partials/admin.php:572 +msgid "Logged-in users only" +msgstr "" + +#: ../admin/partials/admin.php:573 +msgid "Everyone" +msgstr "" + +#: ../admin/partials/admin.php:579 +msgid "Log limit" +msgstr "" + +#: ../admin/partials/admin.php:583 +msgid "Keep data for" +msgstr "" + +#: ../admin/partials/admin.php:586 +msgid "day(s)" +msgstr "" + +#: ../admin/partials/admin.php:588 +msgid "" +"Data from entries that haven't been viewed within the specified time frame will be " +"automatically discarded" +msgstr "" + +#: ../admin/partials/admin.php:594 +msgid "Ajaxify widget" +msgstr "" + +#: ../admin/partials/admin.php:602 +msgid "" +"If you are using a caching plugin such as WP Super Cache, enabling this feature will " +"keep the popular list from being cached by it" +msgstr "" + +#: ../admin/partials/admin.php:606 +msgid "WPP Cache Expiry Policy" +msgstr "" + +#: ../admin/partials/admin.php:606 ../admin/partials/admin.php:634 +#: ../includes/widget-form.php:3 ../includes/widget-form.php:50 +#: ../includes/widget-form.php:56 ../includes/widget-form.php:75 +#: ../includes/widget-form.php:85 ../includes/widget-form.php:177 +msgid "What is this?" +msgstr "" + +#: ../admin/partials/admin.php:609 +msgid "Never cache" +msgstr "" + +#: ../admin/partials/admin.php:610 +msgid "Enable caching" +msgstr "" + +#: ../admin/partials/admin.php:614 +msgid "" +"Sets WPP's cache expiration time. WPP can cache the popular list for a specified " +"amount of time. Recommended for large / high traffic sites" +msgstr "" + +#: ../admin/partials/admin.php:618 +msgid "Refresh cache every" +msgstr "" + +#: ../admin/partials/admin.php:625 +msgid "Week(s)" +msgstr "" + +#: ../admin/partials/admin.php:626 +msgid "Month(s)" +msgstr "" + +#: ../admin/partials/admin.php:627 +msgid "Year(s)" +msgstr "" + +#: ../admin/partials/admin.php:630 +msgid "Really? That long?" +msgstr "" + +#: ../admin/partials/admin.php:634 +msgid "Data Sampling" +msgstr "" + +#: ../admin/partials/admin.php:642 +#, php-format +msgid "" +"By default, WordPress Popular Posts stores in database every single visit your site " +"receives. For small / medium sites this is generally OK, but on large / high traffic " +"sites the constant writing to the database may have an impact on performance. With <a " +"href=\"%1$s\" target=\"_blank\">data sampling</a>, WordPress Popular Posts will store " +"only a subset of your traffic and report on the tendencies detected in that sample set " +"(for more, <a href=\"%2$s\" target=\"_blank\">please read here</a>)" +msgstr "" + +#: ../admin/partials/admin.php:646 +msgid "Sample Rate" +msgstr "" + +#: ../admin/partials/admin.php:650 +#, php-format +msgid "" +"A sampling rate of %d is recommended for large / high traffic sites. For lower traffic " +"sites, you should lower the value" +msgstr "" + +#: ../admin/partials/admin.php:667 +msgid "Miscellaneous" +msgstr "" + +#: ../admin/partials/admin.php:672 +msgid "Open links in" +msgstr "" + +#: ../admin/partials/admin.php:675 +msgid "Current window" +msgstr "" + +#: ../admin/partials/admin.php:676 +msgid "New tab/window" +msgstr "" + +#: ../admin/partials/admin.php:682 +msgid "Use plugin's stylesheet" +msgstr "" + +#: ../admin/partials/admin.php:689 +msgid "" +"By default, the plugin includes a stylesheet called wpp.css which you can use to style " +"your popular posts listing. If you wish to use your own stylesheet or do not want it " +"to have it included in the header section of your site, use this." +msgstr "" + +#: ../admin/partials/admin.php:708 +msgid "" +"WordPress Popular Posts maintains data in two separate tables: one for storing the " +"most popular entries on a daily basis (from now on, \"cache\"), and another one to " +"keep the All-time data (from now on, \"historical data\" or just \"data\"). If for " +"some reason you need to clear the cache table, or even both historical and cache " +"tables, please use the buttons below to do so." +msgstr "" + +#: ../admin/partials/admin.php:709 +msgid "Empty cache" +msgstr "" + +#: ../admin/partials/admin.php:709 +msgid "Use this button to manually clear entries from WPP cache only" +msgstr "" + +#: ../admin/partials/admin.php:710 +msgid "Clear all data" +msgstr "" + +#: ../admin/partials/admin.php:710 +msgid "Use this button to manually clear entries from all WPP data tables" +msgstr "" + +#: ../admin/partials/admin.php:717 +#, php-format +msgid "" +"With the following parameters you can customize the popular posts list when using " +"either the <a href=\"%1$s\">wpp_get_mostpopular() template tag</a> or the <a href=" +"\"%2$s\">[wpp] shortcode</a>." +msgstr "" + +#: ../admin/partials/admin.php:725 +msgid "Parameter" +msgstr "" + +#: ../admin/partials/admin.php:726 +msgid "What it does " +msgstr "" + +#: ../admin/partials/admin.php:727 +msgid "Possible values" +msgstr "" + +#: ../admin/partials/admin.php:728 +msgid "Defaults to" +msgstr "" + +#: ../admin/partials/admin.php:729 +msgid "Example" +msgstr "" + +#: ../admin/partials/admin.php:735 +msgid "Sets a heading for the list" +msgstr "" + +#: ../admin/partials/admin.php:736 ../admin/partials/admin.php:743 +#: ../admin/partials/admin.php:750 ../admin/partials/admin.php:799 +#: ../admin/partials/admin.php:806 ../admin/partials/admin.php:813 +#: ../admin/partials/admin.php:820 ../admin/partials/admin.php:827 +#: ../admin/partials/admin.php:834 ../admin/partials/admin.php:925 +#: ../admin/partials/admin.php:946 ../admin/partials/admin.php:953 +msgid "Text string" +msgstr "" + +#: ../admin/partials/admin.php:737 ../admin/partials/admin.php:807 +#: ../admin/partials/admin.php:814 ../admin/partials/admin.php:821 +#: ../admin/partials/admin.php:828 ../admin/partials/admin.php:835 +msgid "None" +msgstr "" + +#: ../admin/partials/admin.php:738 ../admin/partials/admin.php:745 +#: ../admin/partials/admin.php:752 ../admin/partials/admin.php:759 +#: ../admin/partials/admin.php:766 ../admin/partials/admin.php:773 +#: ../admin/partials/admin.php:780 ../admin/partials/admin.php:787 +#: ../admin/partials/admin.php:794 ../admin/partials/admin.php:801 +#: ../admin/partials/admin.php:808 ../admin/partials/admin.php:815 +#: ../admin/partials/admin.php:822 ../admin/partials/admin.php:829 +#: ../admin/partials/admin.php:836 ../admin/partials/admin.php:843 +#: ../admin/partials/admin.php:850 ../admin/partials/admin.php:857 +#: ../admin/partials/admin.php:864 ../admin/partials/admin.php:871 +#: ../admin/partials/admin.php:878 ../admin/partials/admin.php:885 +#: ../admin/partials/admin.php:892 ../admin/partials/admin.php:899 +#: ../admin/partials/admin.php:906 ../admin/partials/admin.php:913 +#: ../admin/partials/admin.php:920 ../admin/partials/admin.php:927 +#: ../admin/partials/admin.php:934 ../admin/partials/admin.php:941 +#: ../admin/partials/admin.php:948 ../admin/partials/admin.php:955 +#: ../admin/partials/admin.php:962 +msgid "With wpp_get_mostpopular():" +msgstr "" + +#: ../admin/partials/admin.php:738 ../admin/partials/admin.php:745 +#: ../admin/partials/admin.php:752 ../admin/partials/admin.php:759 +#: ../admin/partials/admin.php:766 ../admin/partials/admin.php:773 +#: ../admin/partials/admin.php:780 ../admin/partials/admin.php:787 +#: ../admin/partials/admin.php:794 ../admin/partials/admin.php:801 +#: ../admin/partials/admin.php:808 ../admin/partials/admin.php:815 +#: ../admin/partials/admin.php:822 ../admin/partials/admin.php:829 +#: ../admin/partials/admin.php:836 ../admin/partials/admin.php:843 +#: ../admin/partials/admin.php:850 ../admin/partials/admin.php:857 +#: ../admin/partials/admin.php:864 ../admin/partials/admin.php:871 +#: ../admin/partials/admin.php:878 ../admin/partials/admin.php:885 +#: ../admin/partials/admin.php:892 ../admin/partials/admin.php:899 +#: ../admin/partials/admin.php:906 ../admin/partials/admin.php:913 +#: ../admin/partials/admin.php:920 ../admin/partials/admin.php:927 +#: ../admin/partials/admin.php:934 ../admin/partials/admin.php:941 +#: ../admin/partials/admin.php:948 ../admin/partials/admin.php:955 +#: ../admin/partials/admin.php:962 +msgid "With the [wpp] shortcode:" +msgstr "" + +#: ../admin/partials/admin.php:742 +msgid "Set the opening tag for the heading of the list" +msgstr "" + +#: ../admin/partials/admin.php:749 +msgid "Set the closing tag for the heading of the list" +msgstr "" + +#: ../admin/partials/admin.php:756 +msgid "Sets the maximum number of popular posts to be shown on the listing" +msgstr "" + +#: ../admin/partials/admin.php:757 ../admin/partials/admin.php:771 +#: ../admin/partials/admin.php:841 ../admin/partials/admin.php:855 +#: ../admin/partials/admin.php:876 ../admin/partials/admin.php:883 +msgid "Positive integer" +msgstr "" + +#: ../admin/partials/admin.php:763 +msgid "" +"Tells WordPress Popular Posts to retrieve the most popular entries within the time " +"range specified by you" +msgstr "" + +#: ../admin/partials/admin.php:770 +msgid "Especifies the number of time units of the custom time range" +msgstr "" + +#: ../admin/partials/admin.php:777 +msgid "Especifies the time unit of the custom time range" +msgstr "" + +#: ../admin/partials/admin.php:784 +msgid "" +"Tells WordPress Popular Posts to retrieve the most popular entries published within " +"the time range specified by you" +msgstr "" + +#: ../admin/partials/admin.php:791 +msgid "Sets the sorting option of the popular posts" +msgstr "" + +#: ../admin/partials/admin.php:792 +msgid "(for average views per day)" +msgstr "" + +#: ../admin/partials/admin.php:798 +msgid "Defines the type of posts to show on the listing" +msgstr "" + +#: ../admin/partials/admin.php:805 +msgid "" +"If set, WordPress Popular Posts will exclude the specified post(s) ID(s) form the " +"listing." +msgstr "" + +#: ../admin/partials/admin.php:812 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries that belong to the specified " +"category ID(s). If a minus sign is used, entries associated to the category will be " +"excluded instead." +msgstr "" + +#: ../admin/partials/admin.php:819 +msgid "If set, WordPress Popular Posts will filter posts by a given taxonomy." +msgstr "" + +#: ../admin/partials/admin.php:826 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries that belong to the specified " +"term ID(s). If a minus sign is used, entries associated to the term(s) will be " +"excluded instead." +msgstr "" + +#: ../admin/partials/admin.php:833 +msgid "" +"If set, WordPress Popular Posts will retrieve all entries created by specified " +"author(s) ID(s)." +msgstr "" + +#: ../admin/partials/admin.php:840 +msgid "" +"If set, WordPress Popular Posts will shorten each post title to \"n\" characters " +"whenever possible" +msgstr "" + +#: ../admin/partials/admin.php:847 +msgid "" +"If set to 1, WordPress Popular Posts will shorten each post title to \"n\" words " +"instead of characters" +msgstr "" + +#: ../admin/partials/admin.php:854 +msgid "" +"If set, WordPress Popular Posts will build and include an excerpt of \"n\" characters " +"long from the content of each post listed as popular" +msgstr "" + +#: ../admin/partials/admin.php:861 +msgid "" +"If set, WordPress Popular Posts will maintaing all styling tags (strong, italic, etc) " +"and hyperlinks found in the excerpt" +msgstr "" + +#: ../admin/partials/admin.php:868 +msgid "" +"If set to 1, WordPress Popular Posts will shorten the excerpt to \"n\" words instead " +"of characters" +msgstr "" + +#: ../admin/partials/admin.php:875 +msgid "" +"If set, and if your current server configuration allows it, you will be able to " +"display thumbnails of your posts. This attribute sets the width for thumbnails" +msgstr "" + +#: ../admin/partials/admin.php:882 +msgid "" +"If set, and if your current server configuration allows it, you will be able to " +"display thumbnails of your posts. This attribute sets the height for thumbnails" +msgstr "" + +#: ../admin/partials/admin.php:889 +msgid "" +"If set, and if the WP-PostRatings plugin is installed and enabled on your blog, " +"WordPress Popular Posts will show how your visitors are rating your entries" +msgstr "" + +#: ../admin/partials/admin.php:896 +msgid "" +"If set, WordPress Popular Posts will show how many comments each popular post has got " +"during the specified time range" +msgstr "" + +#: ../admin/partials/admin.php:903 +msgid "" +"If set, WordPress Popular Posts will show how many views each popular post has got " +"during the specified time range" +msgstr "" + +#: ../admin/partials/admin.php:910 +msgid "" +"If set, WordPress Popular Posts will show who published each popular post on the list" +msgstr "" + +#: ../admin/partials/admin.php:917 +msgid "" +"If set, WordPress Popular Posts will display the date when each popular post on the " +"list was published" +msgstr "" + +#: ../admin/partials/admin.php:924 +msgid "Sets the date format" +msgstr "" + +#: ../admin/partials/admin.php:931 +msgid "" +"If set, WordPress Popular Posts will display the categories associated to each entry" +msgstr "" + +#: ../admin/partials/admin.php:938 +msgid "" +"If set, WordPress Popular Posts will display the taxonomies associated to each entry" +msgstr "" + +#: ../admin/partials/admin.php:945 +msgid "Sets the opening tag for the listing" +msgstr "" + +#: ../admin/partials/admin.php:952 +msgid "Sets the closing tag for the listing" +msgstr "" + +#: ../admin/partials/admin.php:959 +msgid "Sets the HTML structure of each post" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "Text string, custom HTML" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "Available Content Tags" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays thumbnail linked to post/page, requires thumbnail_width & thumbnail_height" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays thumbnail image without linking to post/page, requires thumbnail_width & " +"thumbnail_height" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays thumbnail url, requires thumbnail_width & thumbnail_height" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays linked post/page title" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page excerpt, and requires excerpt_length to be greater than 0" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays the default stats tags" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page current rating, requires WP-PostRatings installed and enabled" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "" +"displays post/page current rating as an integer, requires WP-PostRatings installed and " +"enabled" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "outputs the URL of the post/page" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page title, no link" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays linked author name, requires stats_author=1" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays linked category name, requires stats_category=1" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays linked taxonomy names, requires stats_taxonomy=1" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays views count only, no text" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays comments count only, no text, requires stats_comments=1" +msgstr "" + +#: ../admin/partials/admin.php:960 +msgid "displays post/page date, requires stats_date=1" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-output.php:95 +msgid "Sorry. No data so far." +msgstr "" + +#: ../includes/class-wordpress-popular-posts-output.php:466 +#, php-format +msgid "%s ago" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-output.php:683 +#, php-format +msgid "1 view per day" +msgid_plural "%s views per day" +msgstr[0] "" +msgstr[1] "" + +#: ../includes/class-wordpress-popular-posts-output.php:712 +#, php-format +msgid "by %s" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-output.php:718 +#, php-format +msgid "posted %s" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-output.php:718 +#, php-format +msgid "posted on %s" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-output.php:727 +#, php-format +msgid "under %s" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-widget.php:21 +msgid "The most Popular Posts on your blog." +msgstr "" + +#: ../includes/class-wordpress-popular-posts-widget.php:89 +#, php-format +msgid "" +"Error: cannot ajaxify WordPress Popular Posts on this theme. It's missing the <em>id</" +"em> attribute on before_widget (see <a href=\"%s\" target=\"_blank\" rel=\"nofollow" +"\">register_sidebar</a> for more)" +msgstr "" + +#: ../includes/class-wordpress-popular-posts-widget.php:100 +msgid "Loading..." +msgstr "" + +#: ../includes/widget-form.php:3 +msgid "Title" +msgstr "" + +#: ../includes/widget-form.php:9 +msgid "Show up to" +msgstr "" + +#: ../includes/widget-form.php:10 +msgid "posts" +msgstr "" + +#: ../includes/widget-form.php:15 +msgid "Sort posts by" +msgstr "" + +#: ../includes/widget-form.php:18 +msgid "Total views" +msgstr "" + +#: ../includes/widget-form.php:19 +msgid "Avg. daily views" +msgstr "" + +#: ../includes/widget-form.php:26 +msgid "Filters" +msgstr "" + +#: ../includes/widget-form.php:28 +msgid "Time Range" +msgstr "" + +#: ../includes/widget-form.php:30 +msgid "Last 24 hours" +msgstr "" + +#: ../includes/widget-form.php:31 +msgid "Last 7 days" +msgstr "" + +#: ../includes/widget-form.php:32 +msgid "Last 30 days" +msgstr "" + +#: ../includes/widget-form.php:33 +msgid "All-time" +msgstr "" + +#: ../includes/widget-form.php:34 +msgid "Custom" +msgstr "" + +#: ../includes/widget-form.php:50 +msgid "Post type(s)" +msgstr "" + +#: ../includes/widget-form.php:53 +msgid "Post ID(s) to exclude" +msgstr "" + +#: ../includes/widget-form.php:56 +msgid "Taxonomy" +msgstr "" + +#: ../includes/widget-form.php:69 +msgid "Taxonomy IDs, separated by comma (prefix a minus sign to exclude)" +msgstr "" + +#: ../includes/widget-form.php:75 +msgid "Author ID(s)" +msgstr "" + +#: ../includes/widget-form.php:81 +msgid "Posts settings" +msgstr "" + +#: ../includes/widget-form.php:85 +msgid "Display post rating" +msgstr "" + +#: ../includes/widget-form.php:88 +msgid "Shorten title" +msgstr "" + +#: ../includes/widget-form.php:91 +msgid "Shorten title to" +msgstr "" + +#: ../includes/widget-form.php:92 ../includes/widget-form.php:102 +msgid "characters" +msgstr "" + +#: ../includes/widget-form.php:93 ../includes/widget-form.php:103 +msgid "words" +msgstr "" + +#: ../includes/widget-form.php:96 +msgid "Display post excerpt" +msgstr "" + +#: ../includes/widget-form.php:99 +msgid "Keep text format and links" +msgstr "" + +#: ../includes/widget-form.php:100 +msgid "Excerpt length" +msgstr "" + +#: ../includes/widget-form.php:106 +msgid "Display post thumbnail" +msgstr "" + +#: ../includes/widget-form.php:109 +msgid "Use predefined size" +msgstr "" + +#: ../includes/widget-form.php:121 +msgid "Set size manually" +msgstr "" + +#: ../includes/widget-form.php:123 +msgid "Width" +msgstr "" + +#: ../includes/widget-form.php:126 +msgid "Height" +msgstr "" + +#: ../includes/widget-form.php:133 +msgid "Stats Tag settings" +msgstr "" + +#: ../includes/widget-form.php:135 +msgid "Display comment count" +msgstr "" + +#: ../includes/widget-form.php:137 +msgid "Display views" +msgstr "" + +#: ../includes/widget-form.php:139 +msgid "Display author" +msgstr "" + +#: ../includes/widget-form.php:141 +msgid "Display date" +msgstr "" + +#: ../includes/widget-form.php:144 +msgid "Date Format" +msgstr "" + +#: ../includes/widget-form.php:146 +msgid "Relative" +msgstr "" + +#: ../includes/widget-form.php:147 +msgid "WordPress Date Format" +msgstr "" + +#: ../includes/widget-form.php:154 +msgid "Display taxonomy" +msgstr "" + +#: ../includes/widget-form.php:175 +msgid "HTML Markup settings" +msgstr "" + +#: ../includes/widget-form.php:177 +msgid "Use custom HTML Markup" +msgstr "" + +#: ../includes/widget-form.php:180 +msgid "Before / after title" +msgstr "" + +#: ../includes/widget-form.php:183 +msgid "Before / after Popular Posts" +msgstr "" + +#: ../includes/widget-form.php:186 +msgid "Post HTML Markup" +msgstr "" diff --git a/wp-content/plugins/wordpress-popular-posts/public/class-wordpress-popular-posts-public.php b/wp-content/plugins/wordpress-popular-posts/public/class-wordpress-popular-posts-public.php new file mode 100644 index 0000000000000000000000000000000000000000..984b31d94b9321d1d02e5d04a8ee5c9ffcad0ccc --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/public/class-wordpress-popular-posts-public.php @@ -0,0 +1,479 @@ +<?php + +/** + * The public-facing functionality of the plugin. + * + * @link http://cabrerahector.com/ + * @since 4.0.0 + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/public + */ + +/** + * The public-facing functionality of the plugin. + * + * Defines the plugin name, version, and hooks to + * enqueue the public-specific stylesheet and JavaScript. + * + * @package WordPressPopularPosts + * @subpackage WordPressPopularPosts/public + * @author Hector Cabrera <me@cabrerahector.com> + */ +class WPP_Public { + + /** + * The ID of this plugin. + * + * @since 4.0.0 + * @access private + * @var string $plugin_name The ID of this plugin. + */ + private $plugin_name; + + /** + * The version of this plugin. + * + * @since 4.0.0 + * @access private + * @var string $version The current version of this plugin. + */ + private $version; + + /** + * Administrative settings. + * + * @since 2.3.3 + * @var array + */ + private $admin_options = array(); + + /** + * Initialize the class and set its properties. + * + * @since 4.0.0 + * @param string $plugin_name The name of the plugin. + * @param string $version The version of this plugin. + */ + public function __construct( $plugin_name, $version ) { + + $this->plugin_name = $plugin_name; + $this->version = $version; + $this->admin_options = WPP_Settings::get( 'admin_options' ); + + } + + /** + * Register the stylesheets for the public-facing side of the site. + * + * @since 4.0.0 + */ + public function enqueue_styles() { + if ( $this->admin_options['tools']['css'] ) + wp_enqueue_style( 'wordpress-popular-posts-css', plugin_dir_url( __FILE__ ) . 'css/wpp.css', array(), $this->version, 'all' ); + } + + /** + * Register the stylesheets for the public-facing side of the site. + * + * @since 4.0.0 + */ + public function enqueue_scripts() { + + /** + * Enqueue WPP's tracking code. + */ + + $is_single = WPP_Helper::is_single(); + + if ( $is_single ) { + + if ( + ( 0 == $this->admin_options['tools']['log']['level'] && !is_user_logged_in() ) + || ( 1 == $this->admin_options['tools']['log']['level'] ) + || ( 2 == $this->admin_options['tools']['log']['level'] && is_user_logged_in() ) + ) { + + wp_register_script( 'wpp-tracking', plugin_dir_url( __FILE__ ) . 'js/tracking.js', array(), $this->version, false ); + + $params = array( + 'sampling_active' => $this->admin_options['tools']['sampling']['active'], + 'sampling_rate' => $this->admin_options['tools']['sampling']['rate'], + 'ajax_url' => admin_url( 'admin-ajax.php', is_ssl() ? 'https' : 'http' ), + 'action' => 'update_views_ajax', + 'ID' => $is_single, + 'token' => wp_create_nonce( 'wpp-token' ) + ); + wp_localize_script( 'wpp-tracking', 'wpp_params', $params ); + + wp_enqueue_script( 'wpp-tracking' ); + + } + + } + + } + + /** + * Updates views count on page load via AJAX. + * + * @since 2.0.0 + */ + public function update_views(){ + + if ( !wp_verify_nonce($_POST['token'], 'wpp-token') || !WPP_helper::is_number($_POST['wpp_id']) ) { + die( "WPP: Oops, invalid request!" ); + } + + $nonce = $_POST['token']; + $post_ID = $_POST['wpp_id']; + + $exec_time = 0; + + $start = WPP_helper::microtime_float(); + $result = $this->update_views_count( $post_ID ); + $end = WPP_helper::microtime_float(); + + $exec_time += round( $end - $start, 6 ); + + if ( $result ) { + die( "WPP: OK. Execution time: " . $exec_time . " seconds" ); + } + + die( "WPP: Oops, could not update the views count!" ); + + } // end update_views_ajax + + /** + * Updates views count. + * + * @since 1.4.0 + * @access private + * @global object $wpdb + * @param int $post_ID + * @return bool|int FALSE if query failed, TRUE on success + */ + private function update_views_count( $post_ID ) { + + /* + TODO: + For WordPress Multisite, we must define the DIEONDBERROR constant for database errors to display like so: + <?php define( 'DIEONDBERROR', true ); ?> + */ + + global $wpdb; + $table = $wpdb->prefix . "popularposts"; + $wpdb->show_errors(); + + // Get translated object ID + $translate = WPP_translate::get_instance(); + $post_ID = $translate->get_object_id( + $post_ID, + get_post_type( $post_ID ), + true, + $translate->get_default_language() + ); + + $now = WPP_helper::now(); + $curdate = WPP_helper::curdate(); + $views = ( $this->admin_options['tools']['sampling']['active'] ) + ? $this->admin_options['tools']['sampling']['rate'] + : 1; + + // Allow WP themers / coders perform an action + // before updating views count + if ( has_action( 'wpp_pre_update_views' ) ) + do_action( 'wpp_pre_update_views', $post_ID, $views ); + + // Update all-time table + $result1 = $wpdb->query( $wpdb->prepare( + "INSERT INTO {$table}data + (postid, day, last_viewed, pageviews) VALUES (%d, %s, %s, %d) + ON DUPLICATE KEY UPDATE pageviews = pageviews + %d, last_viewed = %s;", + $post_ID, + $now, + $now, + $views, + $views, + $now + )); + + // Update range (summary) table + $result2 = $wpdb->query( $wpdb->prepare( + "INSERT INTO {$table}summary + (postid, pageviews, view_date, last_viewed) VALUES (%d, %d, %s, %s) + ON DUPLICATE KEY UPDATE pageviews = pageviews + %d, last_viewed = %s;", + $post_ID, + $views, + $curdate, + $now, + $views, + $now + )); + + if ( !$result1 || !$result2 ) + return false; + + // Allow WP themers / coders perform an action + // after updating views count + if ( has_action( 'wpp_post_update_views' ) ) + do_action( 'wpp_post_update_views', $post_ID ); + + return true; + + } // end update_views_count + + /** + * WPP shortcode handler. + * + * @since 1.4.0 + * @param array $atts User defined attributes in shortcode tag + * @return string + */ + public function wpp_shortcode( $atts = null ) { + /** + * @var string $header + * @var int $limit + * @var string $range + * @var bool $freshness + * @var string $order_by + * @var string $post_type + * @var string $pid + * @var string $cat + * @var string $author + * @var int $title_length + * @var int $title_by_words + * @var int $excerpt_length + * @var int $excerpt_format + * @var int $excerpt_by_words + * @var int $thumbnail_width + * @var int $thumbnail_height + * @var bool $rating + * @var bool $stats_comments + * @var bool $stats_views + * @var bool $stats_author + * @var bool $stats_date + * @var string $stats_date_format + * @var bool $stats_category + * @var string $wpp_start + * @var string $wpp_end + * @var string $header_start + * @var string $header_end + * @var string $post_html + * @var bool $php + */ + extract( shortcode_atts( array( + 'header' => '', + 'limit' => 10, + 'range' => 'daily', + 'time_unit' => 'hour', + 'time_quantity' => 24, + 'freshness' => false, + 'order_by' => 'views', + 'post_type' => 'post,page', + 'pid' => '', + 'cat' => '', + 'taxonomy' => 'category', + 'term_id' => '', + 'author' => '', + 'title_length' => 0, + 'title_by_words' => 0, + 'excerpt_length' => 0, + 'excerpt_format' => 0, + 'excerpt_by_words' => 0, + 'thumbnail_width' => 0, + 'thumbnail_height' => 0, + 'rating' => false, + 'stats_comments' => false, + 'stats_views' => true, + 'stats_author' => false, + 'stats_date' => false, + 'stats_date_format' => 'F j, Y', + 'stats_category' => false, + 'stats_taxonomy' => false, + 'wpp_start' => '<ul class="wpp-list">', + 'wpp_end' => '</ul>', + 'header_start' => '<h2>', + 'header_end' => '</h2>', + 'post_html' => '', + 'php' => false + ), $atts, 'wpp') ); + + // possible values for "Time Range" and "Order by" + $time_units = array( "minute", "hour", "day", "week", "month" ); + $range_values = array( "daily", "last24hours", "weekly", "last7days", "monthly", "last30days", "all", "custom" ); + $order_by_values = array( "comments", "views", "avg" ); + + $shortcode_ops = array( + 'title' => strip_tags( $header ), + 'limit' => ( !empty( $limit ) && WPP_Helper::is_number( $limit ) && $limit > 0 ) ? $limit : 10, + 'range' => ( in_array($range, $range_values) ) ? $range : 'daily', + 'time_quantity' => ( !empty( $time_quantity ) && WPP_Helper::is_number( $time_quantity ) && $time_quantity > 0 ) ? $time_quantity : 24, + 'time_unit' => ( in_array($time_unit, $time_units) ) ? $time_unit : 'hour', + 'freshness' => empty( $freshness ) ? false : $freshness, + 'order_by' => ( in_array( $order_by, $order_by_values ) ) ? $order_by : 'views', + 'post_type' => empty( $post_type ) ? 'post,page' : $post_type, + 'pid' => rtrim( preg_replace( '|[^0-9,]|', '', $pid ), "," ), + 'cat' => rtrim( preg_replace( '|[^0-9,-]|', '', $cat ), "," ), + 'taxonomy' => empty( $taxonomy ) ? 'category' : $taxonomy, + 'term_id' => rtrim( preg_replace( '|[^0-9,-]|', '', $term_id ), "," ), + 'author' => rtrim( preg_replace( '|[^0-9,]|', '', $author ), "," ), + 'shorten_title' => array( + 'active' => ( !empty( $title_length ) && WPP_Helper::is_number( $title_length ) && $title_length > 0 ), + 'length' => ( !empty( $title_length ) && WPP_Helper::is_number( $title_length) ) ? $title_length : 0, + 'words' => ( !empty( $title_by_words ) && WPP_Helper::is_number( $title_by_words ) && $title_by_words > 0 ), + ), + 'post-excerpt' => array( + 'active' => ( !empty( $excerpt_length ) && WPP_Helper::is_number( $excerpt_length ) && $excerpt_length > 0 ), + 'length' => ( !empty( $excerpt_length ) && WPP_Helper::is_number( $excerpt_length ) ) ? $excerpt_length : 0, + 'keep_format' => ( !empty( $excerpt_format ) && WPP_Helper::is_number( $excerpt_format ) && $excerpt_format > 0 ), + 'words' => ( !empty( $excerpt_by_words ) && WPP_Helper::is_number( $excerpt_by_words ) && $excerpt_by_words > 0 ), + ), + 'thumbnail' => array( + 'active' => ( !empty( $thumbnail_width ) && WPP_Helper::is_number( $thumbnail_width ) && $thumbnail_width > 0 ), + 'width' => ( !empty( $thumbnail_width ) && WPP_Helper::is_number( $thumbnail_width ) && $thumbnail_width > 0 ) ? $thumbnail_width : 0, + 'height' => ( !empty( $thumbnail_height ) && WPP_Helper::is_number( $thumbnail_height ) && $thumbnail_height > 0 ) ? $thumbnail_height : 0, + ), + 'rating' => empty( $rating ) ? false : $rating, + 'stats_tag' => array( + 'comment_count' => empty( $stats_comments ) ? false : $stats_comments, + 'views' => empty( $stats_views ) ? false : $stats_views, + 'author' => empty( $stats_author ) ? false : $stats_author, + 'date' => array( + 'active' => empty( $stats_date ) ? false : $stats_date, + 'format' => empty( $stats_date_format ) ? 'F j, Y' : $stats_date_format + ), + 'category' => empty( $stats_category ) ? false : $stats_category, + 'taxonomy' => array( + 'active' => empty( $stats_taxonomy ) ? false : $stats_taxonomy, + 'name' => empty( $taxonomy ) ? 'category' : $taxonomy, + ) + ), + 'markup' => array( + 'custom_html' => true, + 'wpp-start' => empty( $wpp_start ) ? '<ul class="wpp-list">' : $wpp_start, + 'wpp-end' => empty( $wpp_end) ? '</ul>' : $wpp_end, + 'title-start' => empty( $header_start ) ? '' : $header_start, + 'title-end' => empty( $header_end ) ? '' : $header_end, + 'post-html' => empty( $post_html ) ? '<li>{thumb} {title} <span class="wpp-meta post-stats">{stats}</span></li>' : $post_html + ) + ); + + // Post / Page / CTP filter + $ids = array_filter( explode( ",", $shortcode_ops['pid'] ), 'is_numeric' ); + // Got no valid IDs, clear + if ( empty( $ids ) ) { + $shortcode_ops['pid'] = ''; + } + else { + $instance['pid'] = implode( ",", $ids ); + } + + // Category filter + $ids = array_filter( explode( ",", $shortcode_ops['cat'] ), 'is_numeric' ); + // Got no valid IDs, clear + if ( empty( $ids ) ) { + $shortcode_ops['cat'] = ''; + } + else { + $instance['cat'] = implode( ",", $ids ); + } + + // Author filter + $ids = array_filter( explode( ",", $shortcode_ops['author'] ), 'is_numeric' ); + // Got no valid IDs, clear + if ( empty( $ids ) ) { + $shortcode_ops['author'] = ''; + } + else { + $instance['author'] = implode( ",", $ids ); + } + + $shortcode_content = "\n". "<!-- WordPress Popular Posts Plugin v". $this->version ." [" . ( $php ? "PHP" : "SC" ) . "] [".$shortcode_ops['range']."] [".$shortcode_ops['order_by']."] [custom]" . ( !empty($shortcode_ops['pid']) ? " [PID]" : "" ) . ( !empty($shortcode_ops['cat']) ? " [CAT]" : "" ) . ( !empty($shortcode_ops['author']) ? " [UID]" : "" ) . " -->"."\n"; + + // is there a title defined by user? + if ( + !empty( $header ) + && !empty( $header_start ) + && !empty( $header_end ) + ) { + $shortcode_content .= htmlspecialchars_decode( $header_start, ENT_QUOTES ) . apply_filters( 'widget_title', $header ) . htmlspecialchars_decode( $header_end, ENT_QUOTES ); + } + + $cached = false; + + // Return cached results + if ( $this->admin_options['tools']['cache']['active'] ) { + + $transient_name = md5( json_encode($shortcode_ops) ); + $popular_posts = get_transient( $transient_name ); + + if ( false === $popular_posts ) { + + $popular_posts = new WPP_Query( $shortcode_ops ); + + switch( $this->admin_options['tools']['cache']['interval']['time'] ){ + + case 'minute': + $time = 60; + break; + + case 'hour': + $time = 60 * 60; + break; + + case 'day': + $time = 60 * 60 * 24; + break; + + case 'week': + $time = 60 * 60 * 24 * 7; + break; + + case 'month': + $time = 60 * 60 * 24 * 30; + break; + + case 'year': + $time = 60 * 60 * 24 * 365; + break; + + $expiration = $time * $this->admin_options['tools']['cache']['interval']['value']; + + // Store transient + set_transient( $transient_name, $popular_posts, $expiration ); + + // Store transient in WPP transients array for garbage collection + $wpp_transients = get_site_option('wpp_transients'); + + if ( !$wpp_transients ) { + $wpp_transients = array( $transient_name ); + add_site_option( 'wpp_transients', $wpp_transients ); + } else { + if ( !in_array($transient_name, $wpp_transients) ) { + $wpp_transients[] = $transient_name; + update_site_option( 'wpp_transients', $wpp_transients ); + } + } + + } + + } + + $cached = true; + + } // Get popular posts + else { + $popular_posts = new WPP_Query( $shortcode_ops ); + } + + $output = new WPP_Output( $popular_posts->get_posts(), $shortcode_ops ); + + $shortcode_content .= $output->get_output(); + $shortcode_content .= "\n" . "<!-- End WordPress Popular Posts Plugin v" . $this->version . " -->" . ( $cached ? '<!-- cached -->' : '' ) . "\n"; + + return $shortcode_content; + + } + +} // End WPP_Public class diff --git a/wp-content/plugins/wordpress-popular-posts/public/css/wpp.css b/wp-content/plugins/wordpress-popular-posts/public/css/wpp.css new file mode 100644 index 0000000000000000000000000000000000000000..48ad582739e88206ac3f2f4477fe918489f97701 --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/public/css/wpp.css @@ -0,0 +1,73 @@ +/* +Wordpress Popular Posts plugin stylesheet +Developed by Hector Cabrera +cabrerahector.com | @cabrerahector + +Use the following classes to style your popular posts list as you like. +*/ + +/* Styles the "Sorry, no data so far" message */ +.wpp-no-data { +} + +/* UL - Popular Posts container styles */ +.wpp-list { +} + + /* LI - Post container styles */ + .wpp-list li { + overflow: hidden; + float: none; + clear: both; + } + + /* Styles for the popular post in view */ + .wpp-list li.current { + } + + /* Thumbnail styles */ + .wpp-thumbnail { + display: inline; + float: left; + margin: 0 5px 0 0; + border: none; + } + + /* Title styles */ + .wpp-post-title { + } + + /* Excerpt styles */ + .wpp-excerpt { + } + + /* Stats tag styles */ + .wpp-meta, .post-stats { + display: block; + font-size: 0.8em; + font-weight: bold; + } + + /* Comments count styles */ + .wpp-comments { + } + + /* Views count styles */ + .wpp-views { + } + + /* Author styles */ + .wpp-author { + } + + /* Post date styles */ + .wpp-date { + } + + /* Post category styles */ + .wpp-category { + } + + /* WP-PostRatings styles */ + .wpp-rating { + } \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/public/images/no_thumb.jpg b/wp-content/plugins/wordpress-popular-posts/public/images/no_thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2f59fabe0b315a7038f85429ba84dc0185dc105 Binary files /dev/null and b/wp-content/plugins/wordpress-popular-posts/public/images/no_thumb.jpg differ diff --git a/wp-content/plugins/wordpress-popular-posts/public/index.php b/wp-content/plugins/wordpress-popular-posts/public/index.php new file mode 100644 index 0000000000000000000000000000000000000000..e71af0ef21ae90eb61db4b117bfd97b00e65113b --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/public/index.php @@ -0,0 +1 @@ +<?php // Silence is golden \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/public/js/tracking.js b/wp-content/plugins/wordpress-popular-posts/public/js/tracking.js new file mode 100644 index 0000000000000000000000000000000000000000..efbd5164075d6e1377428c77fd4c9c7f9534209a --- /dev/null +++ b/wp-content/plugins/wordpress-popular-posts/public/js/tracking.js @@ -0,0 +1 @@ +;if("undefined"!==typeof wpp_params){var do_request=!0;if(1==wpp_params.sampling_active)var num=Math.floor(Math.random()*wpp_params.sampling_rate)+1,do_request=1===num;if(do_request){var xhr=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP"),url=wpp_params.ajax_url,params="action="+wpp_params.action+"&token="+wpp_params.token+"&wpp_id="+wpp_params.ID;xhr.open("POST",url,!0);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.onreadystatechange=function(){4===xhr.readyState&&200===xhr.status&&window.console&&window.console.log&&window.console.log(xhr.responseText)};xhr.send(params)}}; \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/readme.txt b/wp-content/plugins/wordpress-popular-posts/readme.txt index e9af4939df176c7c5d1e433c6c449b875601bb56..1812b27e5a7254fc82a70160cee0898b2aa2b06f 100644 --- a/wp-content/plugins/wordpress-popular-posts/readme.txt +++ b/wp-content/plugins/wordpress-popular-posts/readme.txt @@ -2,9 +2,9 @@ Contributors: hcabrera Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=hcabrerab%40gmail%2ecom&lc=GB&item_name=WordPress%20Popular%20Posts%20Plugin¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG_global%2egif%3aNonHosted Tags: popular, posts, widget, popularity, top -Requires at least: 3.8 -Tested up to: 4.6 -Stable tag: 3.3.4 +Requires at least: 4.1 +Tested up to: 4.8.2 +Stable tag: 4.0.3 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -12,24 +12,25 @@ A highly customizable, easy-to-use popular posts widget! == Description == -WordPress Popular Posts is a highly customizable widget that displays the most popular posts on your blog. +WordPress Popular Posts is a highly customizable widget that displays your most popular posts. = Main Features = -* **Multi-widget capable**. That is, you can have several widgets of WordPress Popular Posts on your blog - each with its own settings! -* **Time Range** - list those posts of your blog that have been the most popular ones within a specific time range (eg. last 24 hours, last 7 days, last 30 days, etc.)! -* **Custom Post-type support**. Wanna show other stuff than just posts and pages? -* Display a **thumbnail** of your posts! (*see the [FAQ section](http://wordpress.org/extend/plugins/wordpress-popular-posts/faq/) for technical requirements*). -* Use **your own layout**! WPP is flexible enough to let you customize the look and feel of your popular posts! (see [customizing WPP's HTML markup](https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#how-can-i-use-my-own-html-markup-with-your-plugin) and [styling the list](https://github.com/cabrerahector/wordpress-popular-posts/wiki/6.-Styling-the-list) for more). -* **WPML** support! -* **WordPress Multisite** support! +* **Multi-widget capable** - You can have several widgets of WordPress Popular Posts on your blog, each with its own settings! +* **Time Range** - List those posts of your blog that have been the most popular ones within a specific time range (eg. last 24 hours, last 7 days, last 30 days, etc)! +* **Custom Post-type support** - Wanna show other stuff than just posts and pages? +* **Thumbnails!** - Display a thumbnail of your posts! (*see the [FAQ section](http://wordpress.org/extend/plugins/wordpress-popular-posts/faq/) for technical requirements*.) +* **Statistics dashboard** - See how your popular posts are doing directly from your admin area. +* **Sorting options** - Order your popular list by comments, views (default) or average views per day! +* **Use your own layout!** - WPP is flexible enough to let you customize the look and feel of your popular posts! (see [customizing WPP's HTML markup](https://github.com/cabrerahector/wordpress-popular-posts/wiki/5.-FAQ#how-can-i-use-my-own-html-markup-with-your-plugin) and [How to style WordPress Popular Posts](https://github.com/cabrerahector/wordpress-popular-posts/wiki/6.-Styling-the-list) for more.) +* **Disqus support** - Sort your popular posts by Disqus comments count! +* **WPML support!** +* **WordPress Multisite support** - Each site on the network can have its own popular posts! = Other Features = -* Check the **statistics** on your most popular posts from the dashboard. -* Order your popular list by comments, views (default) or average views per day! -* **Shortcode support** - use the [wpp] shortcode to showcase your most popular posts on pages, too! For usage and instructions, please refer to the [installation section](http://wordpress.org/extend/plugins/wordpress-popular-posts/installation/). +* **Shortcode support** - Use the [wpp] shortcode to showcase your most popular posts on pages, too! For usage and instructions, please refer to the [installation section](http://wordpress.org/extend/plugins/wordpress-popular-posts/installation/). * **Template tags** - Don't feel like using widgets? No problem! You can still embed your most popular entries on your theme using the *wpp_get_mostpopular()* template tag. Additionally, the *wpp_get_views()* template tag allows you to retrieve the views count for a particular post. For usage and instructions, please refer to the [installation section](http://wordpress.org/extend/plugins/wordpress-popular-posts/installation/). -* **Localizable** to your own language (*See the [FAQ section](http://wordpress.org/extend/plugins/wordpress-popular-posts/faq/) for more info*). -* **[WP-PostRatings](http://wordpress.org/extend/plugins/wp-postratings/) support**. Show your visitors how your readers are rating your posts! +* **Localization** - Translate WPP to your own language (*See the [FAQ section](http://wordpress.org/extend/plugins/wordpress-popular-posts/faq/) for more info*). +* **[WP-PostRatings](http://wordpress.org/extend/plugins/wp-postratings/) support** - Show your visitors how your readers are rating your posts! **WordPress Popular Posts** is now also on [GitHub](https://github.com/cabrerahector/wordpress-popular-posts)! @@ -81,6 +82,49 @@ The FAQ section has been moved [here](https://github.com/cabrerahector/wordpress 4. WordPress Popular Posts Stats panel. == Changelog == += 4.0.3 = + +**This is a hotfix release.** + +- Dashboard: escapes post titles to prevent potential XSS (props Delta!) +- Restores ability to use a custom default thumbnail. + += 4.0.2 = + +**This is a hotfix release.** + +- Dashboard: fixes thumbnail picker on HTTPS. +- Adds the wpp_custom_html filter back. + += 4.0.1 = + +**This is a hotfix release.** + +- Fixes a warning message triggered on old PHP versions. +- Fixes undefined default_thumbnail_sizes warning message. +- Removes a hardcoded table prefix causing issues on sites that uses a different prefix than the stock one. + += 4.0.0 = + +**If you're using a caching plugin, flushing its cache after installing / upgrading to this version is highly recommended.** + +- Plugin code refactored! +- Dashboard section redesigned (now mobile-friendly, too!) +- New Statistics chart and other goodies. +- Adds ability to pick a Custom Time Range! +- Adds ability to filter posts by other taxonomies than just categories! +- Adds Relative Date Format. +- Fixes error caused by changeset 41508 https://core.trac.wordpress.org/changeset/41508 (props hykw!) +- Improves PHP7+ compatibility. +- Improves compatibility with WP-SpamShield, WooCommerce, Polylang and WPML. +- Drops qTranslate support (that plugin has been long removed from WordPress.org anyways.) +- New content tags added: {img_url}, {taxonomy}. +- New filters: wpp_post_class, wpp_post_exclude_terms. +- French and German translation files became too outdated and so support has been dropped for now (want to help? Contact me!) +- Tons of minor bug fixes and improvements. + +Also, see [Release notes](https://cabrerahector.com/development/wordpress-popular-posts-4-0-is-finally-out/). + = 3.3.4 = - Attempt to convert tables to InnoDB during upgrade if other engine is being used. - Adds a check to prevent the upgrade process from running too many times. @@ -114,32 +158,6 @@ The FAQ section has been moved [here](https://github.com/cabrerahector/wordpress - Adds Settings page advertisement support. - FAQ section has been moved over to Github. -= 3.2.3 = -**If you're using a caching plugin, flushing its cache after installing / upgrading to this version is highly recommended.** - -- Fixes a potential bug that might affect other plugins & themes (thanks @pippinsplugins). -- Defines INNODB as default storage engine. -- Adds the wpp-no-data CSS class to style the "Sorry, no data so far" message. -- Adds a new index to summary table. -- Updates plugin's documentation. -- Other small bug fixes and improvements. - -= 3.2.2 = -**If you're using a caching plugin, flushing its cache after installing / upgrading to this version is recommended.** - -* Moves sampling logic into Javascript (thanks, [@kurtpayne](https://github.com/kurtpayne)!) -* Simplifies category filtering logic. -* Fixes list sorting issue that some users were experimenting (thanks, sponker!) -* Widget uses stock thumbnails when using predefined size (some conditions apply). -* Adds the ability to enable / disable responsive support for thumbails. -* Renames wpp_update_views action hook to wpp_post_update_views, **update your code!** -* Adds wpp_pre_update_views action hook. -* Adds filter wpp_render_image. -* Drops support for get_mostpopular() template tag. -* Fixes empty HTML tags (thumbnail, stats). -* Removes Japanese, French and Norwegian Bokmal translation files from plugin. -* Many minor bug fixes / enhancements. - See [full changelog](https://github.com/cabrerahector/wordpress-popular-posts/blob/master/changelog.md). == Credits == @@ -147,5 +165,5 @@ See [full changelog](https://github.com/cabrerahector/wordpress-popular-posts/bl * Flame graphic by freevector/Vecteezy.com. == Upgrade Notice == -= 3.3.4 = -If you're using a caching plugin, clearing its cache before upgrading to v.3.3.4 is recommended. \ No newline at end of file += 4.0 = +If you're using a caching plugin, flush its cache before upgrading to v4.0. \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/uninstall.php b/wp-content/plugins/wordpress-popular-posts/uninstall.php index a24b5ac86d69b5fbdfc7055e49f6f04ae5d6a86d..058a8f5ee206d3e6dc10616a72d884d6f49124f2 100644 --- a/wp-content/plugins/wordpress-popular-posts/uninstall.php +++ b/wp-content/plugins/wordpress-popular-posts/uninstall.php @@ -11,83 +11,83 @@ // If uninstall, not called from WordPress, then exit if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) { - exit; + exit; } // Run uninstall for each blog in the network if ( function_exists( 'is_multisite' ) && is_multisite() ) { - - global $wpdb; - - $original_blog_id = get_current_blog_id(); - $blogs_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); - - foreach( $blogs_ids as $blog_id ) { - - switch_to_blog( $blog_id ); - - // Delete plugin's options - delete_site_option( 'wpp_ver' ); - delete_site_option( 'wpp_settings_config' ); - delete_site_option( 'wpp_rand' ); - delete_site_option( 'wpp_transients' ); - - // delete tables - uninstall(); - - // delete thumbnails cache and its directory - delete_thumb_cache(); - - } - - // Switch back to current blog - switch_to_blog( $original_blog_id ); + + global $wpdb; + + $original_blog_id = get_current_blog_id(); + $blogs_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); + + foreach( $blogs_ids as $blog_id ) { + + switch_to_blog( $blog_id ); + + // Delete plugin's options + delete_site_option( 'wpp_ver' ); + delete_site_option( 'wpp_settings_config' ); + delete_site_option( 'wpp_rand' ); + delete_site_option( 'wpp_transients' ); + + // delete tables + uninstall(); + + // delete thumbnails cache and its directory + delete_thumb_cache(); + + } + + // Switch back to current blog + switch_to_blog( $original_blog_id ); } else { - - // Delete plugin's options - delete_option( 'wpp_ver' ); - delete_option( 'wpp_settings_config' ); - delete_option( 'wpp_rand' ); - delete_option( 'wpp_transients' ); - - // delete tables - uninstall(); - - // delete thumbnails cache and its directory - delete_thumb_cache(); + + // Delete plugin's options + delete_option( 'wpp_ver' ); + delete_option( 'wpp_settings_config' ); + delete_option( 'wpp_rand' ); + delete_option( 'wpp_transients' ); + + // delete tables + uninstall(); + + // delete thumbnails cache and its directory + delete_thumb_cache(); } function delete_thumb_cache() { - $wp_upload_dir = wp_upload_dir(); - - if ( is_dir( $wp_upload_dir['basedir'] . "/wordpress-popular-posts" ) ) { - $files = glob( $wp_upload_dir['basedir'] . "/wordpress-popular-posts/*" ); // get all file names - - if ( is_array($files) && !empty($files) ) { - foreach($files as $file){ // iterate files - if ( is_file($file) ) - @unlink($file); // delete file - } - } - - // Finally, delete wpp's upload directory - @rmdir( $wp_upload_dir['basedir'] . "/wordpress-popular-posts" ); - - } + $wp_upload_dir = wp_upload_dir(); + + if ( is_dir( $wp_upload_dir['basedir'] . "/wordpress-popular-posts" ) ) { + $files = glob( $wp_upload_dir['basedir'] . "/wordpress-popular-posts/*" ); // get all file names + + if ( is_array($files) && !empty($files) ) { + foreach($files as $file){ // iterate files + if ( is_file($file) ) + @unlink($file); // delete file + } + } + + // Finally, delete wpp's upload directory + @rmdir( $wp_upload_dir['basedir'] . "/wordpress-popular-posts" ); + + } } function uninstall(){ - - global $wpdb; - - // Delete db tables - $prefix = $wpdb->prefix . "popularposts"; - $wpdb->query( "DROP TABLE IF EXISTS {$prefix}data;" ); - $wpdb->query( "DROP TABLE IF EXISTS {$prefix}datacache;" ); - $wpdb->query( "DROP TABLE IF EXISTS {$prefix}datacache_backup;" ); - $wpdb->query( "DROP TABLE IF EXISTS {$prefix}log;" ); - $wpdb->query( "DROP TABLE IF EXISTS {$prefix}summary" ); - + + global $wpdb; + + // Delete db tables + $prefix = $wpdb->prefix . "popularposts"; + $wpdb->query( "DROP TABLE IF EXISTS {$prefix}data;" ); + $wpdb->query( "DROP TABLE IF EXISTS {$prefix}datacache;" ); + $wpdb->query( "DROP TABLE IF EXISTS {$prefix}datacache_backup;" ); + $wpdb->query( "DROP TABLE IF EXISTS {$prefix}log;" ); + $wpdb->query( "DROP TABLE IF EXISTS {$prefix}summary" ); + } \ No newline at end of file diff --git a/wp-content/plugins/wordpress-popular-posts/wordpress-popular-posts.php b/wp-content/plugins/wordpress-popular-posts/wordpress-popular-posts.php index c2a4a24bb1eaf86a2f041a9fa02cf5f3aca09c63..cc358815ebb4ab21f19a82905b605e2ba8052299 100644 --- a/wp-content/plugins/wordpress-popular-posts/wordpress-popular-posts.php +++ b/wp-content/plugins/wordpress-popular-posts/wordpress-popular-posts.php @@ -1,3404 +1,53 @@ <?php -/* -Plugin Name: WordPress Popular Posts -Plugin URI: http://wordpress.org/extend/plugins/wordpress-popular-posts -Description: WordPress Popular Posts is a highly customizable widget that displays the most popular posts on your blog -Version: 3.3.4 -Author: Hector Cabrera -Author URI: http://cabrerahector.com -Author Email: hcabrerab@gmail.com -Text Domain: wordpress-popular-posts -Domain Path: /lang/ -Network: false -License: GPLv2 or later -License URI: http://www.gnu.org/licenses/gpl-2.0.html - -Copyright 2008-2015 Hector Cabrera (hcabrerab@gmail.com) - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License, version 2, as -published by the Free Software Foundation. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ - -if ( !defined('ABSPATH') ) - exit('Please do not load this file directly.'); - -/** - * WordPress Popular Posts class. - */ -if ( !class_exists('WordpressPopularPosts') ) { - - /** - * Register plugin's activation / deactivation functions - * @since 1.3 - */ - register_activation_hook( __FILE__, array( 'WordpressPopularPosts', 'activate' ) ); - register_deactivation_hook( __FILE__, array( 'WordpressPopularPosts', 'deactivate' ) ); - - /** - * Add function to widgets_init that'll load WPP. - * @since 2.0 - */ - function load_wpp() { - register_widget( 'WordpressPopularPosts' ); - } - add_action( 'widgets_init', 'load_wpp' ); - - class WordpressPopularPosts extends WP_Widget { - - /** - * Plugin version, used for cache-busting of style and script file references. - * - * @since 1.3.0 - * @var string - */ - private $version = '3.3.4'; - - /** - * Plugin identifier. - * - * @since 3.0.0 - * @var string - */ - private $plugin_slug = 'wordpress-popular-posts'; - - /** - * Instance of this class. - * - * @since 3.0.0 - * @var object - */ - protected static $instance = NULL; - - /** - * Slug of the plugin screen. - * - * @since 3.0.0 - * @var string - */ - protected $plugin_screen_hook_suffix = NULL; - - /** - * Flag for singular pages. - * - * @since 3.1.2 - * @var int - */ - private $current_post_id = 0; - - /** - * Plugin directory. - * - * @since 1.4.6 - * @var string - */ - private $plugin_dir = ''; - - /** - * Plugin uploads directory. - * - * @since 3.0.4 - * @var array - */ - private $uploads_dir = array(); - - /** - * Default thumbnail. - * - * @since 2.2.0 - * @var string - */ - private $default_thumbnail = ''; - - /** - * Default thumbnail sizes - * - * @since 3.2.2 - * @var array - */ - private $default_thumbnail_sizes = array(); - - /** - * Flag to verify if thumbnails can be created or not. - * - * @since 1.4.6 - * @var bool - */ - private $thumbnailing = false; - - /** - * Flag to verify if qTrans is present. - * - * @since 1.4.6 - * @var bool - */ - private $qTrans = false; - - /** - * Default charset. - * - * @since 2.1.4 - * @var string - */ - private $charset = "UTF-8"; - - /** - * Plugin defaults. - * - * @since 2.3.3 - * @var array - */ - protected $defaults = array( - 'title' => '', - 'limit' => 10, - 'range' => 'daily', - 'freshness' => false, - 'order_by' => 'views', - 'post_type' => 'post,page', - 'pid' => '', - 'author' => '', - 'cat' => '', - 'shorten_title' => array( - 'active' => false, - 'length' => 25, - 'words' => false - ), - 'post-excerpt' => array( - 'active' => false, - 'length' => 55, - 'keep_format' => false, - 'words' => false - ), - 'thumbnail' => array( - 'active' => false, - 'build' => 'manual', - 'width' => 15, - 'height' => 15, - 'crop' => true - ), - 'rating' => false, - 'stats_tag' => array( - 'comment_count' => false, - 'views' => true, - 'author' => false, - 'date' => array( - 'active' => false, - 'format' => 'F j, Y' - ), - 'category' => false - ), - 'markup' => array( - 'custom_html' => false, - 'wpp-start' => '<ul class="wpp-list">', - 'wpp-end' => '</ul>', - 'post-html' => '<li>{thumb} {title} {stats}</li>', - 'post-start' => '<li>', - 'post-end' => '</li>', - 'title-start' => '<h2>', - 'title-end' => '</h2>' - ) - ); - - /** - * Admin page user settings defaults. - * - * @since 2.3.3 - * @var array - */ - protected $default_user_settings = array( - 'stats' => array( - 'order_by' => 'views', - 'limit' => 10, - 'post_type' => 'post,page', - 'freshness' => false - ), - 'tools' => array( - 'ajax' => false, - 'css' => true, - 'link' => array( - 'target' => '_self' - ), - 'thumbnail' => array( - 'source' => 'featured', - 'field' => '', - 'resize' => false, - 'default' => '', - 'responsive' => false - ), - 'log' => array( - 'level' => 1, - 'limit' => 0, - 'expires_after' => 180 - ), - 'cache' => array( - 'active' => false, - 'interval' => array( - 'time' => 'hour', - 'value' => 1 - ) - ), - 'sampling' => array( - 'active' => false, - 'rate' => 100 - ) - ) - ); - - /** - * Admin page user settings. - * - * @since 2.3.3 - * @var array - */ - private $user_settings = array(); - - /** - * Bots list. - * - * @since 3.0.0 - * @var array - */ - protected $botlist = array( 'bot', 'crawl', 'curl', 'facebookexternalhit', 'geturl', 'google', 'java', 'msn', 'perl', 'slurp', 'spider', 'sqworm', 'search', 'wget' ); - - /*--------------------------------------------------*/ - /* Constructor - /*--------------------------------------------------*/ - - /** - * Initialize the widget by setting localization, filters, and administration functions. - * - * @since 1.0.0 - */ - public function __construct() { - - // Load plugin text domain - add_action( 'init', array( $this, 'widget_textdomain' ) ); - - // Upgrade check - add_action( 'init', array( $this, 'upgrade_check' ) ); - - // Check location on template redirect - add_action( 'template_redirect', array( $this, 'is_single' ) ); - - // Hook fired when a new blog is activated on WP Multisite - add_action( 'wpmu_new_blog', array( $this, 'activate_new_site' ) ); - - // Notices check - add_action( 'admin_notices', array( $this, 'check_admin_notices' ) ); - - // Create the widget - parent::__construct( - 'wpp', - 'WordPress Popular Posts', - array( - 'classname' => 'popular-posts', - 'description' => __( 'The most Popular Posts on your blog.', $this->plugin_slug ) - ) - ); - - // Get user options - $this->user_settings = get_site_option('wpp_settings_config'); - if ( !$this->user_settings ) { - add_site_option('wpp_settings_config', $this->default_user_settings); - $this->user_settings = $this->default_user_settings; - } else { - $this->user_settings = $this->__merge_array_r( $this->default_user_settings, $this->user_settings ); - } - - // Allow WP themers / coders to override data sampling status (active/inactive) - $this->user_settings['tools']['sampling']['active'] = apply_filters( 'wpp_data_sampling', $this->user_settings['tools']['sampling']['active'] ); - - // Add the options page and menu item. - add_action( 'admin_menu', array( $this, 'add_plugin_admin_menu' ) ); - - // Register admin styles and scripts - add_action( 'admin_print_styles', array( $this, 'register_admin_styles' ) ); - add_action( 'admin_enqueue_scripts', array( $this, 'register_admin_scripts' ) ); - add_action( 'admin_init', array( $this, 'thickbox_setup' ) ); - - // Register site styles and scripts - if ( $this->user_settings['tools']['css'] ) - add_action( 'wp_enqueue_scripts', array( $this, 'register_widget_styles' ) ); - add_action( 'wp_enqueue_scripts', array( $this, 'register_widget_scripts' ) ); - - // Add plugin settings link - add_filter( 'plugin_action_links', array( $this, 'add_plugin_settings_link' ), 10, 2 ); - - // Set plugin directory - $this->plugin_dir = plugin_dir_url(__FILE__); - - // Get blog charset - $this->charset = get_bloginfo('charset'); - - // Add ajax table truncation to wp_ajax_ hook - add_action('wp_ajax_wpp_clear_data', array( $this, 'clear_data' )); - - // Add thumbnail cache truncation to wp_ajax_ hook - add_action('wp_ajax_wpp_clear_thumbnail', array( $this, 'clear_thumbnails' )); - - // Add ajax hook for widget - add_action('wp_ajax_wpp_get_popular', array( $this, 'get_popular') ); - add_action('wp_ajax_nopriv_wpp_get_popular', array( $this, 'get_popular') ); - - // Check if images can be created - if ( extension_loaded('ImageMagick') || (extension_loaded('GD') && function_exists('gd_info')) ) { - // Enable thumbnail feature - $this->thumbnailing = true; - // Get available thumbnail size(s) - $this->default_thumbnail_sizes = $this->__get_image_sizes(); - // Add hook to flush cached thumbnail when image is changed - add_action( 'update_postmeta', array( $this, 'flush_post_thumbnail'), 10, 4 ); - } - - // Set default thumbnail - $this->default_thumbnail = $this->plugin_dir . "no_thumb.jpg"; - $this->default_user_settings['tools']['thumbnail']['default'] = $this->default_thumbnail; - - if ( !empty($this->user_settings['tools']['thumbnail']['default']) ) - $this->default_thumbnail = $this->user_settings['tools']['thumbnail']['default']; - else - $this->user_settings['tools']['thumbnail']['default'] = $this->default_thumbnail; - - // Set uploads folder - $wp_upload_dir = ( function_exists('wp_get_upload_dir') ) ? wp_get_upload_dir() : wp_upload_dir(); // wp_get_upload_dir() was introduced in WP 4.5! - $this->uploads_dir['basedir'] = $wp_upload_dir['basedir'] . "/" . $this->plugin_slug; - $this->uploads_dir['baseurl'] = $wp_upload_dir['baseurl'] . "/" . $this->plugin_slug; - - if ( !is_dir($this->uploads_dir['basedir']) ) { - if ( !wp_mkdir_p($this->uploads_dir['basedir']) ) { - $this->uploads_dir['basedir'] = $wp_upload_dir['basedir']; - $this->uploads_dir['baseurl'] = $wp_upload_dir['baseurl']; - } - } - - // qTrans plugin support - if ( function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage') ) - $this->qTrans = true; - - // Remove post/page prefetching! - remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head' ); - // Add the update hooks only if the logging conditions are met - if ( (0 == $this->user_settings['tools']['log']['level'] && !is_user_logged_in()) || (1 == $this->user_settings['tools']['log']['level']) || (2 == $this->user_settings['tools']['log']['level'] && is_user_logged_in()) ) { - - add_action( 'wp_head', array(&$this, 'print_ajax') ); - - // Register views from everyone and/or connected users - if ( 0 != $this->user_settings['tools']['log']['level'] ) - add_action( 'wp_ajax_update_views_ajax', array($this, 'update_views_ajax') ); - // Register views from everyone and/or visitors only - if ( 2 != $this->user_settings['tools']['log']['level'] ) - add_action( 'wp_ajax_nopriv_update_views_ajax', array($this, 'update_views_ajax') ); - - } - - // Add shortcode - add_shortcode('wpp', array(&$this, 'shortcode')); - - // Purge post data from DB on deletion - add_action( 'admin_init', array($this, 'purge_post_init') ); - - // Enable data purging at midnight - if ( 1 == $this->user_settings['tools']['log']['limit'] ) { - - add_action( 'wpp_cache_event', array($this, 'purge_data') ); - if ( !wp_next_scheduled('wpp_cache_event') ) { - $tomorrow = time() + 86400; - $midnight = mktime(0, 0, 0, - date("m", $tomorrow), - date("d", $tomorrow), - date("Y", $tomorrow)); - wp_schedule_event( $midnight, 'daily', 'wpp_cache_event' ); - } - - } else { - // Remove the scheduled event if exists - if ( $timestamp = wp_next_scheduled('wpp_cache_event') ) { - wp_unschedule_event( $timestamp, 'wpp_cache_event' ); - } - - } - - } // end constructor - - /*--------------------------------------------------*/ - /* Widget API Functions - /*--------------------------------------------------*/ - - /** - * Outputs the content of the widget. - * - * @since 1.0.0 - * @param array args The array of form elements - * @param array instance The current instance of the widget - */ - public function widget( $args, $instance ) { - - $this->__debug($args); - - /** - * @var String $name - * @var String $id - * @var String $description - * @var String $class - * @var String $before_widget - * @var String $after_widget - * @var String $before_title - * @var String $after_title - * @var String $widget_id - * @var String $widget_name - */ - extract( $args, EXTR_SKIP ); - - $markup = ( $instance['markup']['custom_html'] || has_filter('wpp_custom_html') || has_filter('wpp_post') ) - ? 'custom' - : 'regular'; - - echo "\n". "<!-- WordPress Popular Posts Plugin v{$this->version} [W] [{$instance['range']}] [{$instance['order_by']}] [{$markup}]" . ( !empty($instance['pid']) ? " [PID]" : "" ) . ( !empty($instance['cat']) ? " [CAT]" : "" ) . ( !empty($instance['author']) ? " [UID]" : "" ) . " -->" . "\n"; - - echo $before_widget . "\n"; - - // has user set a title? - if ( '' != $instance['title'] ) { - - $title = apply_filters( 'widget_title', $instance['title'] ); - - if ($instance['markup']['custom_html'] && $instance['markup']['title-start'] != "" && $instance['markup']['title-end'] != "" ) { - echo htmlspecialchars_decode($instance['markup']['title-start'], ENT_QUOTES) . $title . htmlspecialchars_decode($instance['markup']['title-end'], ENT_QUOTES); - } else { - echo $before_title . $title . $after_title; - } - } - - if ( $this->user_settings['tools']['ajax'] ) { - if ( empty($before_widget) || !preg_match('/id="[^"]*"/', $before_widget) ) { - ?> - <p><?php _e('Error: cannot ajaxify WordPress Popular Posts on this theme. It\'s missing the <em>id</em> attribute on before_widget (see <a href="http://codex.wordpress.org/Function_Reference/register_sidebar" target="_blank" rel="nofollow">register_sidebar</a> for more).', $this->plugin_slug ); ?></p> - <?php - } else { - ?> - <script type="text/javascript"> - /* jQuery is available, so proceed */ - if ( window.jQuery ) { - - jQuery(document).ready(function($){ - $.get('<?php echo admin_url('admin-ajax.php'); ?>', { - action: 'wpp_get_popular', - id: '<?php echo $this->number; ?>' - }, function(data){ - $('#<?php echo $widget_id; ?>').append(data); - }); - }); - - } /* jQuery is not defined */ - else { - if ( window.console && window.console.log ) { - window.console.log('WordPress Popular Posts: jQuery is not defined!'); - } - } - </script> - <?php - } - } else { - echo $this->__get_popular_posts( $instance ); - } - - echo $after_widget . "\n"; - echo "<!-- End WordPress Popular Posts Plugin v{$this->version} -->"."\n"; - - } // end widget - - /** - * Processes the widget's options to be saved. - * - * @since 1.0.0 - * @param array new_instance The previous instance of values before the update. - * @param array old_instance The new instance of values to be generated via the update. - * @return array instance Updated instance. - */ - public function update( $new_instance, $old_instance ) { - - $instance = $old_instance; - - $instance['title'] = htmlspecialchars( stripslashes_deep(strip_tags( $new_instance['title'] )), ENT_QUOTES ); - $instance['limit'] = ( $this->__is_numeric($new_instance['limit']) && $new_instance['limit'] > 0 ) - ? $new_instance['limit'] - : 10; - $instance['range'] = $new_instance['range']; - $instance['order_by'] = $new_instance['order_by']; - - // FILTERS - // user did not define the custom post type name, so we fall back to default - $instance['post_type'] = ( '' == $new_instance['post_type'] ) - ? 'post,page' - : $new_instance['post_type']; - - $instance['freshness'] = isset( $new_instance['freshness'] ); - - $instance['pid'] = implode(",", array_filter(explode(",", preg_replace( '|[^0-9,]|', '', $new_instance['pid'] )))); - $instance['cat'] = implode(",", array_filter(explode(",", preg_replace( '|[^0-9,-]|', '', $new_instance['cat'] )))); - $instance['author'] = implode(",", array_filter(explode(",", preg_replace( '|[^0-9,]|', '', $new_instance['uid'] )))); - - $instance['shorten_title']['words'] = $new_instance['shorten_title-words']; - $instance['shorten_title']['active'] = isset( $new_instance['shorten_title-active'] ); - $instance['shorten_title']['length'] = ( $this->__is_numeric($new_instance['shorten_title-length']) && $new_instance['shorten_title-length'] > 0 ) - ? $new_instance['shorten_title-length'] - : 25; - - $instance['post-excerpt']['keep_format'] = isset( $new_instance['post-excerpt-format'] ); - $instance['post-excerpt']['words'] = $new_instance['post-excerpt-words']; - $instance['post-excerpt']['active'] = isset( $new_instance['post-excerpt-active'] ); - $instance['post-excerpt']['length'] = ( $this->__is_numeric($new_instance['post-excerpt-length']) && $new_instance['post-excerpt-length'] > 0 ) - ? $new_instance['post-excerpt-length'] - : 55; - - $instance['thumbnail']['active'] = false; - $instance['thumbnail']['width'] = 15; - $instance['thumbnail']['height'] = 15; - - // can create thumbnails - if ( $this->thumbnailing ) { - - $instance['thumbnail']['active'] = isset( $new_instance['thumbnail-active'] ); - $instance['thumbnail']['build'] = $new_instance['thumbnail-size-source']; - - // Use predefined thumbnail sizes - if ( 'predefined' == $new_instance['thumbnail-size-source'] ) { - $size = $this->default_thumbnail_sizes[ $new_instance['thumbnail-size'] ]; - $instance['thumbnail']['width'] = $size['width']; - $instance['thumbnail']['height'] = $size['height']; - $instance['thumbnail']['crop'] = $size['crop']; - } // Set thumbnail size manually - else { - if ($this->__is_numeric($new_instance['thumbnail-width']) && $this->__is_numeric($new_instance['thumbnail-height'])) { - $instance['thumbnail']['width'] = $new_instance['thumbnail-width']; - $instance['thumbnail']['height'] = $new_instance['thumbnail-height']; - $instance['thumbnail']['crop'] = true; - } - } - - } - - $instance['rating'] = isset( $new_instance['rating'] ); - $instance['stats_tag']['comment_count'] = isset( $new_instance['comment_count'] ); - $instance['stats_tag']['views'] = isset( $new_instance['views'] ); - $instance['stats_tag']['author'] = isset( $new_instance['author'] ); - $instance['stats_tag']['date']['active'] = isset( $new_instance['date'] ); - $instance['stats_tag']['date']['format'] = empty($new_instance['date_format']) - ? 'F j, Y' - : $new_instance['date_format']; - - $instance['stats_tag']['category'] = isset( $new_instance['category'] ); - $instance['markup']['custom_html'] = isset( $new_instance['custom_html'] ); - $instance['markup']['wpp-start'] = empty($new_instance['wpp-start']) - ? htmlspecialchars( '<ul class="wpp-list">', ENT_QUOTES ) - : htmlspecialchars( $new_instance['wpp-start'], ENT_QUOTES ); - - $instance['markup']['wpp-end'] = empty($new_instance['wpp-end']) - ? htmlspecialchars( '</ul>', ENT_QUOTES ) - : htmlspecialchars( $new_instance['wpp-end'], ENT_QUOTES ); - - $instance['markup']['post-html'] = empty($new_instance['post-html']) - ? htmlspecialchars( '<li>{thumb} {title} {stats}</li>', ENT_QUOTES ) - : htmlspecialchars( $new_instance['post-html'], ENT_QUOTES ); - - $instance['markup']['title-start'] = empty($new_instance['title-start']) - ? '' - : htmlspecialchars( $new_instance['title-start'], ENT_QUOTES ); - - $instance['markup']['title-end'] = empty($new_instance['title-end']) - ? '' : - htmlspecialchars( $new_instance['title-end'], ENT_QUOTES ); - - return $instance; - - } // end widget - - /** - * Generates the administration form for the widget. - * - * @since 1.0.0 - * @param array instance The array of keys and values for the widget. - */ - public function form( $instance ) { - - // parse instance values - $instance = $this->__merge_array_r( - $this->defaults, - $instance - ); - - // Display the admin form - include( plugin_dir_path(__FILE__) . '/views/form.php' ); - - } // end form - - /*--------------------------------------------------*/ - /* Public methods - /*--------------------------------------------------*/ - - /** - * Loads the Widget's text domain for localization and translation. - * - * @since 1.0.0 - */ - public function widget_textdomain() { - - $domain = $this->plugin_slug; - $locale = apply_filters( 'plugin_locale', get_locale(), $domain ); - - load_textdomain( $domain, WP_LANG_DIR . '/' . $domain . '/' . $domain . '-' . $locale . '.mo' ); - load_plugin_textdomain( $domain, FALSE, dirname( plugin_basename( __FILE__ ) ) . '/lang/' ); - - } // end widget_textdomain - - /** - * Registers and enqueues admin-specific styles. - * - * @since 1.0.0 - */ - public function register_admin_styles() { - - if ( ! isset( $this->plugin_screen_hook_suffix ) ) { - return; - } - - $screen = get_current_screen(); - if ( $screen->id == $this->plugin_screen_hook_suffix ) { - wp_enqueue_style( $this->plugin_slug .'-admin-styles', plugins_url( 'style/admin.css', __FILE__ ), array(), $this->version ); - } - - } // end register_admin_styles - - /** - * Registers and enqueues admin-specific JavaScript. - * - * @since 2.3.4 - */ - public function register_admin_scripts() { - - if ( ! isset( $this->plugin_screen_hook_suffix ) ) { - return; - } - - $screen = get_current_screen(); - if ( $screen->id == $this->plugin_screen_hook_suffix ) { - wp_enqueue_script( 'thickbox' ); - wp_enqueue_style( 'thickbox' ); - wp_enqueue_script( 'media-upload' ); - wp_enqueue_script( $this->plugin_slug .'-admin-script', plugins_url( 'js/admin.js', __FILE__ ), array('jquery'), $this->version, true ); - } - - } // end register_admin_scripts - - /** - * Hooks into getttext to change upload button text when uploader is called by WPP. - * - * @since 2.3.4 - */ - function thickbox_setup() { - - global $pagenow; - if ( 'media-upload.php' == $pagenow || 'async-upload.php' == $pagenow ) { - add_filter( 'gettext', array( $this, 'replace_thickbox_text' ), 1, 3 ); - } - - } // end thickbox_setup - - /** - * Replaces upload button text when uploader is called by WPP. - * - * @since 2.3.4 - * @param string translated_text - * @param string text - * @param string domain - * @return string - */ - function replace_thickbox_text($translated_text, $text, $domain) { - - if ('Insert into Post' == $text) { - $referer = strpos( wp_get_referer(), 'wpp_admin' ); - if ( $referer != '' ) { - return __('Upload', $this->plugin_slug ); - } - } - - return $translated_text; - - } // end replace_thickbox_text - - /** - * Registers and enqueues widget-specific styles. - * - * @since 1.0.0 - */ - public function register_widget_styles() { - - $theme_file = get_stylesheet_directory() . '/wpp.css'; - $plugin_file = plugin_dir_path(__FILE__) . 'style/wpp.css'; - - if ( @file_exists($theme_file) ) { // user stored a custom wpp.css on theme's directory, so use it - wp_enqueue_style( $this->plugin_slug, get_stylesheet_directory_uri() . "/wpp.css", array(), $this->version ); - } elseif ( @file_exists($plugin_file) ) { // no custom wpp.css, use plugin's instead - wp_enqueue_style( $this->plugin_slug, plugins_url( 'style/wpp.css', __FILE__ ), array(), $this->version ); - } - - } // end register_widget_styles - - /** - * Registers and enqueues widget-specific scripts. - */ - public function register_widget_scripts() { - // We need jQuery in the front-end only when ajaxifying the widget - if ( $this->user_settings['tools']['ajax'] ) - wp_enqueue_script( 'jquery' ); - } // end register_widget_scripts - - /** - * Register the administration menu for this plugin into the WordPress Dashboard menu. - * - * @since 1.0.0 - */ - public function add_plugin_admin_menu() { - - $this->plugin_screen_hook_suffix = add_options_page( - 'WordPress Popular Posts', - 'WordPress Popular Posts', - 'manage_options', - $this->plugin_slug, - array( $this, 'display_plugin_admin_page' ) - ); - - } - - /** - * Render the settings page for this plugin. - * - * @since 1.0.0 - */ - public function display_plugin_admin_page() { - include_once( 'views/admin.php' ); - } - - /** - * Registers Settings link on plugin description. - * - * @since 2.3.3 - * @param array links - * @param string file - * @return array - */ - public function add_plugin_settings_link( $links, $file ){ - - $this_plugin = plugin_basename(__FILE__); - - if ( is_plugin_active($this_plugin) && $file == $this_plugin ) { - $links[] = '<a href="' . admin_url( 'options-general.php?page=wordpress-popular-posts' ) . '">Settings</a>'; - } - - return $links; - - } // end add_plugin_settings_link - - /*--------------------------------------------------*/ - /* Install / activation / deactivation methods - /*--------------------------------------------------*/ - - /** - * Return an instance of this class. - * - * @since 3.0.0 - * @return object A single instance of this class. - */ - public static function get_instance() { - - // If the single instance hasn't been set, set it now. - if ( NULL == self::$instance ) { - self::$instance = new self; - } - - return self::$instance; - - } // end get_instance - - /** - * Fired when the plugin is activated. - * - * @since 1.0.0 - * @global object wpdb - * @param bool network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog. - */ - public static function activate( $network_wide ) { - - global $wpdb; - - if ( function_exists( 'is_multisite' ) && is_multisite() ) { - - // run activation for each blog in the network - if ( $network_wide ) { - - $original_blog_id = get_current_blog_id(); - $blogs_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); - - foreach( $blogs_ids as $blog_id ) { - switch_to_blog( $blog_id ); - self::__activate(); - } - - // switch back to current blog - switch_to_blog( $original_blog_id ); - - return; - - } - - } - - self::__activate(); - - } // end activate - - /** - * Fired when a new blog is activated on WP Multisite. - * - * @since 3.0.0 - * @param int blog_id New blog ID - */ - public function activate_new_site( $blog_id ){ - - if ( 1 !== did_action( 'wpmu_new_blog' ) ) - return; - - // run activation for the new blog - switch_to_blog( $blog_id ); - self::__activate(); - - // switch back to current blog - restore_current_blog(); - - } // end activate_new_site - - /** - * On plugin activation, checks that the WPP database tables are present. - * - * @since 2.4.0 - * @global object wpdb - */ - private static function __activate() { - - global $wpdb; - - // set table name - $prefix = $wpdb->prefix . "popularposts"; - - // fresh setup - if ( $prefix != $wpdb->get_var("SHOW TABLES LIKE '{$prefix}data'") ) { - self::__do_db_tables( $prefix ); - } - - } // end __activate - - /** - * Fired when the plugin is deactivated. - * - * @since 1.0.0 - * @global object wpbd - * @param bool network_wide True if WPMU superadmin uses "Network Activate" action, false if WPMU is disabled or plugin is activated on an individual blog - */ - public static function deactivate( $network_wide ) { - - global $wpdb; - - if ( function_exists( 'is_multisite' ) && is_multisite() ) { - - // Run deactivation for each blog in the network - if ( $network_wide ) { - - $original_blog_id = get_current_blog_id(); - $blogs_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->blogs}" ); - - foreach( $blogs_ids as $blog_id ) { - switch_to_blog( $blog_id ); - self::__deactivate(); - } - - // Switch back to current blog - switch_to_blog( $original_blog_id ); - - return; - - } - - } - - self::__deactivate(); - - } // end deactivate - - /** - * On plugin deactivation, disables the shortcode and removes the scheduled task. - * - * @since 2.4.0 - */ - private static function __deactivate() { - - remove_shortcode('wpp'); - wp_clear_scheduled_hook('wpp_cache_event'); - - } // end __deactivate - - /** - * Checks if an upgrade procedure is required. - * - * @since 2.4.0 - */ - public function upgrade_check(){ - - // Get WPP version - $wpp_ver = get_site_option('wpp_ver'); - - if ( !$wpp_ver ) { - add_site_option('wpp_ver', $this->version); - } elseif ( version_compare($wpp_ver, $this->version, '<') ) { - $this->__upgrade(); - } - - } // end upgrade_check - - /** - * On plugin upgrade, performs a number of actions: update WPP database tables structures (if needed), - * run the setup wizard (if needed), and some other checks. - * - * @since 2.4.0 - * @global object wpdb - */ - private function __upgrade() { - - // Keep the upgrade process from running too many times - if ( get_site_option('wpp_update') ) - return; - - add_site_option( 'wpp_update', 1 ); - - global $wpdb; - - // set table name - $prefix = $wpdb->prefix . "popularposts"; - - // validate the structure of the tables and create missing tables - self::__do_db_tables( $prefix ); - - // If summary is empty, import data from popularpostsdatacache - if ( !$wpdb->get_var("SELECT COUNT(*) FROM {$prefix}summary") ) { - - // popularpostsdatacache table is still there - if ( $wpdb->get_var("SHOW TABLES LIKE '{$prefix}datacache'") ) { - - $sql = " - INSERT INTO {$prefix}summary (postid, pageviews, view_date, last_viewed) - SELECT id, pageviews, day_no_time, day - FROM {$prefix}datacache - GROUP BY day_no_time, id - ORDER BY day_no_time DESC"; - - $result = $wpdb->query( $sql ); - - } - - } - - // Deletes old caching tables, if found - $wpdb->query( "DROP TABLE IF EXISTS {$prefix}datacache, {$prefix}datacache_backup;" ); - - // Check storage engine - $storage_engine_data = $wpdb->get_var("SELECT `ENGINE` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`='{$wpdb->dbname}' AND `TABLE_NAME`='{$prefix}data';"); - - if ( 'InnoDB' != $storage_engine_data ) { - $wpdb->query("ALTER TABLE {$prefix}data ENGINE=INNODB;"); - } - - $storage_engine_summary = $wpdb->get_var("SELECT `ENGINE` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA`='{$wpdb->dbname}' AND `TABLE_NAME`='{$prefix}summary';"); - - if ( 'InnoDB' != $storage_engine_summary ) { - $wpdb->query("ALTER TABLE {$prefix}summary ENGINE=INNODB;"); - } - - // Update WPP version - update_site_option('wpp_ver', $this->version); - - // Remove upgrade flag - delete_site_option('wpp_update'); - - } // end __upgrade - - /** - * Creates/updates the WPP database tables. - * - * @since 2.4.0 - * @global object wpdb - */ - private static function __do_db_tables( $prefix ) { - - global $wpdb; - - $sql = ""; - $charset_collate = ""; - - if ( !empty($wpdb->charset) ) - $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset} "; - - if ( !empty($wpdb->collate) ) - $charset_collate .= "COLLATE {$wpdb->collate}"; - - $sql = " - CREATE TABLE {$prefix}data ( - postid bigint(20) NOT NULL, - day datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - last_viewed datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - pageviews bigint(20) DEFAULT 1, - PRIMARY KEY (postid) - ) {$charset_collate} ENGINE=INNODB; - CREATE TABLE {$prefix}summary ( - ID bigint(20) NOT NULL AUTO_INCREMENT, - postid bigint(20) NOT NULL, - pageviews bigint(20) NOT NULL DEFAULT 1, - view_date date NOT NULL DEFAULT '0000-00-00', - last_viewed datetime NOT NULL DEFAULT '0000-00-00 00:00:00', - PRIMARY KEY (ID), - UNIQUE KEY ID_date (postid,view_date), - KEY postid (postid), - KEY view_date (view_date), - KEY last_viewed (last_viewed) - ) {$charset_collate} ENGINE=INNODB;"; - - require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); - dbDelta($sql); - - } // end __do_db_tables - - /** - * Checks if the technical requirements are met. - * - * @since 2.4.0 - * @link http://wordpress.stackexchange.com/questions/25910/uninstall-activate-deactivate-a-plugin-typical-features-how-to/25979#25979 - * @global string $wp_version - * @return array - */ - private function __check_requirements() { - - global $wp_version; - - $php_min_version = '5.2'; - $wp_min_version = '3.8'; - $php_current_version = phpversion(); - $errors = array(); - - if ( version_compare( $php_min_version, $php_current_version, '>' ) ) { - $errors[] = sprintf( - __( 'Your PHP installation is too old. WordPress Popular Posts requires at least PHP version %1$s to function correctly. Please contact your hosting provider and ask them to upgrade PHP to %1$s or higher.', $this->plugin_slug ), - $php_min_version - ); - } - - if ( version_compare( $wp_min_version, $wp_version, '>' ) ) { - $errors[] = sprintf( - __( 'Your WordPress version is too old. WordPress Popular Posts requires at least WordPress version %1$s to function correctly. Please update your blog via Dashboard > Update.', $this->plugin_slug ), - $wp_min_version - ); - } - - return $errors; - - } // end __check_requirements - - /** - * Outputs error messages to wp-admin. - * - * @since 2.4.0 - */ - public function check_admin_notices() { - - $errors = $this->__check_requirements(); - - if ( empty($errors) ) - return; - - if ( isset($_GET['activate']) ) - unset($_GET['activate']); - - printf( - __('<div class="error"><p>%1$s</p><p><i>%2$s</i> has been <strong>deactivated</strong>.</p></div>', $this->plugin_slug), - join( '</p><p>', $errors ), - 'WordPress Popular Posts' - ); - - deactivate_plugins( plugin_basename( __FILE__ ) ); - - } // end check_admin_notices - - - /*--------------------------------------------------*/ - /* Plugin methods / functions - /*--------------------------------------------------*/ - - /** - * Purges post from data/summary tables. - * - * @since 3.3.0 - */ - public function purge_post_init() { - - if ( current_user_can( 'delete_posts' ) ) - add_action( 'delete_post', array( $this, 'purge_post' ), 10 ); - - } // end purge_post_init - - /** - * Purges post from data/summary tables. - * - * @since 3.3.0 - * @global object $wpdb - * @return bool - */ - public function purge_post( $pID ) { - - global $wpdb; - - if ( $wpdb->get_var( $wpdb->prepare( "SELECT postid FROM {$wpdb->prefix}popularpostsdata WHERE postid = %d", $pID ) ) ) { - // Delete from data table - $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}popularpostsdata WHERE postid = %d;", $pID ) ); - // Delete from summary table - $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->prefix}popularpostssummary WHERE postid = %d;", $pID ) ); - } - - return true; - - } // end purge_post - - /** - * Purges old post data from summary table. - * - * @since 2.0.0 - * @global object $wpdb - */ - public function purge_data() { - - global $wpdb; - - $wpdb->query( "DELETE FROM {$wpdb->prefix}popularpostssummary WHERE view_date < DATE_SUB('{$this->__curdate()}', INTERVAL {$this->user_settings['tools']['log']['expires_after']} DAY);" ); - - } // end purge_data - - /** - * Truncates data and cache on demand. - * - * @since 2.0.0 - * @global object wpdb - */ - public function clear_data() { - - $token = $_POST['token']; - $clear = isset($_POST['clear']) ? $_POST['clear'] : ''; - $key = get_site_option("wpp_rand"); - - if (current_user_can('manage_options') && ($token === $key) && !empty($clear)) { - global $wpdb; - - // set table name - $prefix = $wpdb->prefix . "popularposts"; - - if ($clear == 'cache') { - if ( $wpdb->get_var("SHOW TABLES LIKE '{$prefix}summary'") ) { - $wpdb->query("TRUNCATE TABLE {$prefix}summary;"); - $this->__flush_transients(); - - echo 1; - } else { - echo 2; - } - } else if ($clear == 'all') { - if ( $wpdb->get_var("SHOW TABLES LIKE '{$prefix}data'") && $wpdb->get_var("SHOW TABLES LIKE '{$prefix}summary'") ) { - $wpdb->query("TRUNCATE TABLE {$prefix}data;"); - $wpdb->query("TRUNCATE TABLE {$prefix}summary;"); - $this->__flush_transients(); - - echo 1; - } else { - echo 2; - } - } else { - echo 3; - } - } else { - echo 4; - } - - die(); - - } // end clear_data - - /** - * Flushes post's cached thumbnail(s) when the image is changed. - * - * @since 3.3.4 - * - * @param integer $meta_id ID of the meta data field - * @param integer $object_id Object ID - * @param string $meta_key Name of meta field - * @param string $meta_value Value of meta field - */ - public function flush_post_thumbnail( $meta_id, $object_id, $meta_key, $meta_value ) { - - $files = null; - - // User changed the featured image - if ( '_thumbnail_id' == $meta_key ) { - $files = glob( "{$this->uploads_dir['basedir']}/{$object_id}-featured-*.*" ); // get all related images - } - - if ( is_array($files) && !empty($files) ) { - foreach( $files as $file ){ // iterate files - if ( is_file($file) ) - @unlink($file); // delete file - } - } - - } - - /** - * Truncates thumbnails cache on demand. - * - * @since 2.0.0 - * @global object wpdb - */ - public function clear_thumbnails() { - - $token = $_POST['token']; - $key = get_site_option("wpp_rand"); - - if ( current_user_can('manage_options') && ($token === $key) ) { - $wp_upload_dir = wp_upload_dir(); - - if ( is_dir( $wp_upload_dir['basedir'] . "/" . $this->plugin_slug ) ) { - $files = glob( $wp_upload_dir['basedir'] . "/" . $this->plugin_slug . "/*" ); // get all file names - - if ( is_array($files) && !empty($files) ) { - foreach($files as $file){ // iterate files - if ( is_file($file) ) - @unlink($file); // delete file - } - - echo 1; - } else { - echo 2; - } - } else { - echo 3; - } - } else { - echo 4; - } - - die(); - - } // end clear_data - - /** - * Updates views count on page load via AJAX. - * - * @since 2.0.0 - */ - public function update_views_ajax(){ - - if ( !wp_verify_nonce($_POST['token'], 'wpp-token') || !$this->__is_numeric($_POST['wpp_id']) ) - die("WPP: Oops, invalid request!"); - - $nonce = $_POST['token']; - $post_ID = $_POST['wpp_id']; - - $exec_time = 0; - - $start = $this->__microtime_float(); - $result = $this->__update_views($post_ID); - $end = $this->__microtime_float(); - - $exec_time += round($end - $start, 6); - - if ( $result ) { - die( "WPP: OK. Execution time: " . $exec_time . " seconds" ); - } - - die( "WPP: Oops, could not update the views count!" ); - - } // end update_views_ajax - - /** - * Outputs script to update views via AJAX. - * - * @since 2.0.0 - * @global object post - */ - public function print_ajax(){ - - if ( 0 != $this->current_post_id ) { - ?> - <!-- WordPress Popular Posts v<?php echo $this->version; ?> --> - <script type="text/javascript"> - - var sampling_active = <?php echo ( $this->user_settings['tools']['sampling']['active'] ) ? 1 : 0; ?>; - var sampling_rate = <?php echo intval( $this->user_settings['tools']['sampling']['rate'] ); ?>; - var do_request = false; - - if ( !sampling_active ) { - do_request = true; - } else { - var num = Math.floor(Math.random() * sampling_rate) + 1; - do_request = ( 1 === num ); - } - - if ( do_request ) { - - /* Create XMLHttpRequest object and set variables */ - var xhr = ( window.XMLHttpRequest ) - ? new XMLHttpRequest() - : new ActiveXObject( "Microsoft.XMLHTTP" ), - url = '<?php echo admin_url('admin-ajax.php', is_ssl() ? 'https' : 'http'); ?>', - params = 'action=update_views_ajax&token=<?php echo wp_create_nonce('wpp-token') ?>&wpp_id=<?php echo $this->current_post_id; ?>'; - /* Set request method and target URL */ - xhr.open( "POST", url, true ); - /* Set request header */ - xhr.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" ); - /* Hook into onreadystatechange */ - xhr.onreadystatechange = function() { - if ( 4 === xhr.readyState && 200 === xhr.status ) { - if ( window.console && window.console.log ) { - window.console.log( xhr.responseText ); - } - } - }; - /* Send request */ - xhr.send( params ); - - } - - </script> - <!-- End WordPress Popular Posts v<?php echo $this->version; ?> --> - <?php - } - - } // end print_ajax - - /** - * Deletes cached (transient) data. - * - * @since 3.0.0 - */ - private function __flush_transients() { - - $wpp_transients = get_site_option('wpp_transients'); - - if ( $wpp_transients && is_array($wpp_transients) && !empty($wpp_transients) ) { - for ($t=0; $t < count($wpp_transients); $t++) - delete_transient( $wpp_transients[$t] ); - - update_site_option('wpp_transients', array()); - } - - } // end __flush_transients - - /** - * Updates views count. - * - * @since 1.4.0 - * @global object $wpdb - * @param int Post ID - * @return bool|int FALSE if query failed, TRUE on success - */ - private function __update_views($id) { - - /* - TODO: - For WordPress Multisite, we must define the DIEONDBERROR constant for database errors to display like so: - <?php define( 'DIEONDBERROR', true ); ?> - */ - - global $wpdb; - $table = $wpdb->prefix . "popularposts"; - $wpdb->show_errors(); - - // WPML support, get original post/page ID - if ( defined('ICL_LANGUAGE_CODE') && function_exists('icl_object_id') ) { - global $sitepress; - if ( isset( $sitepress )) { // avoids a fatal error with Polylang - $id = icl_object_id( $id, get_post_type( $id ), true, $sitepress->get_default_language() ); - } - else if ( function_exists( 'pll_default_language' ) ) { // adds Polylang support - $id = icl_object_id( $id, get_post_type( $id ), true, pll_default_language() ); - } - } - - $now = $this->__now(); - $curdate = $this->__curdate(); - $views = ( $this->user_settings['tools']['sampling']['active'] ) - ? $this->user_settings['tools']['sampling']['rate'] - : 1; - - // Allow WP themers / coders perform an action - // before updating views count - if ( has_action( 'wpp_pre_update_views' ) ) - do_action( 'wpp_pre_update_views', $id, $views ); - - // Update all-time table - $result1 = $wpdb->query( $wpdb->prepare( - "INSERT INTO {$table}data - (postid, day, last_viewed, pageviews) VALUES (%d, %s, %s, %d) - ON DUPLICATE KEY UPDATE pageviews = pageviews + %4\$d, last_viewed = '%3\$s';", - $id, - $now, - $now, - $views - )); - - // Update range (summary) table - $result2 = $wpdb->query( $wpdb->prepare( - "INSERT INTO {$table}summary - (postid, pageviews, view_date, last_viewed) VALUES (%d, %d, %s, %s) - ON DUPLICATE KEY UPDATE pageviews = pageviews + %2\$d, last_viewed = '%4\$s';", - $id, - $views, - $curdate, - $now - )); - - if ( !$result1 || !$result2 ) - return false; - - // Allow WP themers / coders perform an action - // after updating views count - if ( has_action( 'wpp_post_update_views' ) ) - do_action( 'wpp_post_update_views', $id ); - - return true; - - } // end __update_views - - /** - * Queries the database and returns the posts (if any met the criteria set by the user). - * - * @since 1.4.0 - * @global object $wpdb - * @param array Widget instance - * @return null|array Array of posts, or null if nothing was found - */ - protected function _query_posts($instance) { - - global $wpdb; - - // parse instance values - $instance = $this->__merge_array_r( - $this->defaults, - $instance - ); - - $prefix = $wpdb->prefix . "popularposts"; - $fields = "p.ID AS 'id', p.post_title AS 'title', p.post_date AS 'date', p.post_author AS 'uid'"; - $from = ""; - $where = "WHERE 1 = 1"; - $orderby = ""; - $groupby = ""; - $limit = "LIMIT {$instance['limit']}"; - - $post_types = ""; - $pids = ""; - $cats = ""; - $authors = ""; - $content = ""; - - $now = $this->__now(); - - // post filters - // * freshness - get posts published within the selected time range only - if ( $instance['freshness'] ) { - switch( $instance['range'] ){ - case "daily": - $where .= " AND p.post_date > DATE_SUB('{$now}', INTERVAL 1 DAY) "; - break; - - case "weekly": - $where .= " AND p.post_date > DATE_SUB('{$now}', INTERVAL 1 WEEK) "; - break; - - case "monthly": - $where .= " AND p.post_date > DATE_SUB('{$now}', INTERVAL 1 MONTH) "; - break; - - default: - $where .= ""; - break; - } - } - - // * post types - based on code seen at https://github.com/williamsba/WordPress-Popular-Posts-with-Custom-Post-Type-Support - $types = explode(",", $instance['post_type']); - $sql_post_types = ""; - $join_cats = true; - - // if we're getting just pages, why join the categories table? - if ( 'page' == strtolower($instance['post_type']) ) { - - $join_cats = false; - $where .= " AND p.post_type = '{$instance['post_type']}'"; - - } - // we're listing other custom type(s) - else { - - if ( count($types) > 1 ) { - - foreach ( $types as $post_type ) { - $post_type = trim($post_type); // required in case user places whitespace between commas - $sql_post_types .= "'{$post_type}',"; - } - - $sql_post_types = rtrim( $sql_post_types, ","); - $where .= " AND p.post_type IN({$sql_post_types})"; - - } else { - $where .= " AND p.post_type = '{$instance['post_type']}'"; - } - - } - - // * posts exclusion - if ( !empty($instance['pid']) ) { - - $ath = explode(",", $instance['pid']); - - $where .= ( count($ath) > 1 ) - ? " AND p.ID NOT IN({$instance['pid']})" - : " AND p.ID <> '{$instance['pid']}'"; - - } - - // * categories - if ( !empty($instance['cat']) && $join_cats ) { - - $cat_ids = explode(",", $instance['cat']); - $in = array(); - $out = array(); - - for ($i=0; $i < count($cat_ids); $i++) { - if ($cat_ids[$i] >= 0) - $in[] = $cat_ids[$i]; - else - $out[] = $cat_ids[$i]; - } - - $in_cats = implode(",", $in); - $out_cats = implode(",", $out); - $out_cats = preg_replace( '|[^0-9,]|', '', $out_cats ); - - if ($in_cats != "" && $out_cats == "") { // get posts from from given cats only - $where .= " AND p.ID IN ( - SELECT object_id - FROM {$wpdb->term_relationships} AS r - JOIN {$wpdb->term_taxonomy} AS x ON x.term_taxonomy_id = r.term_taxonomy_id - WHERE x.taxonomy = 'category' AND x.term_id IN({$in_cats}) - )"; - } else if ($in_cats == "" && $out_cats != "") { // exclude posts from given cats only - $where .= " AND p.ID NOT IN ( - SELECT object_id - FROM {$wpdb->term_relationships} AS r - JOIN {$wpdb->term_taxonomy} AS x ON x.term_taxonomy_id = r.term_taxonomy_id - WHERE x.taxonomy = 'category' AND x.term_id IN({$out_cats}) - )"; - } else { // mixed - $where .= " AND p.ID IN ( - SELECT object_id - FROM {$wpdb->term_relationships} AS r - JOIN {$wpdb->term_taxonomy} AS x ON x.term_taxonomy_id = r.term_taxonomy_id - WHERE x.taxonomy = 'category' AND x.term_id IN({$in_cats}) AND x.term_id NOT IN({$out_cats}) - ) "; - } - - } - - // * authors - if ( !empty($instance['author']) ) { - - $ath = explode(",", $instance['author']); - - $where .= ( count($ath) > 1 ) - ? " AND p.post_author IN({$instance['author']})" - : " AND p.post_author = '{$instance['author']}'"; - - } - - // All-time range - if ( "all" == $instance['range'] ) { - - $fields .= ", p.comment_count AS 'comment_count'"; - - // order by comments - if ( "comments" == $instance['order_by'] ) { - - $from = "{$wpdb->posts} p"; - $where .= " AND p.comment_count > 0 "; - $orderby = " ORDER BY p.comment_count DESC"; - - // get views, too - if ( $instance['stats_tag']['views'] ) { - - $fields .= ", IFNULL(v.pageviews, 0) AS 'pageviews'"; - $from .= " LEFT JOIN {$prefix}data v ON p.ID = v.postid"; - - } - - } - // order by (avg) views - else { - - $from = "{$prefix}data v LEFT JOIN {$wpdb->posts} p ON v.postid = p.ID"; - - // order by views - if ( "views" == $instance['order_by'] ) { - - $fields .= ", v.pageviews AS 'pageviews'"; - $orderby = "ORDER BY pageviews DESC"; - - } - // order by avg views - elseif ( "avg" == $instance['order_by'] ) { - - $fields .= ", ( v.pageviews/(IF ( DATEDIFF('{$now}', MIN(v.day)) > 0, DATEDIFF('{$now}', MIN(v.day)), 1) ) ) AS 'avg_views'"; - $groupby = "GROUP BY v.postid"; - $orderby = "ORDER BY avg_views DESC"; - - } - - } - - } else { // CUSTOM RANGE - - $interval = ""; - - switch( $instance['range'] ){ - case "daily": - $interval = "1 DAY"; - break; - - case "weekly": - $interval = "1 WEEK"; - break; - - case "monthly": - $interval = "1 MONTH"; - break; - - default: - $interval = "1 DAY"; - break; - } - - // order by comments - if ( "comments" == $instance['order_by'] ) { - - $fields .= ", COUNT(c.comment_post_ID) AS 'comment_count'"; - $from = "{$wpdb->comments} c LEFT JOIN {$wpdb->posts} p ON c.comment_post_ID = p.ID"; - $where .= " AND c.comment_date_gmt > DATE_SUB('{$now}', INTERVAL {$interval}) AND c.comment_approved = 1 "; - $groupby = "GROUP BY c.comment_post_ID"; - $orderby = "ORDER BY comment_count DESC"; - - if ( $instance['stats_tag']['views'] ) { // get views, too - - $fields .= ", IFNULL(v.pageviews, 0) AS 'pageviews'"; - $from .= " LEFT JOIN (SELECT postid, SUM(pageviews) AS pageviews FROM {$prefix}summary WHERE last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) GROUP BY postid) v ON p.ID = v.postid"; - - } - - } - // ordered by views / avg - else { - - $from = "{$prefix}summary v LEFT JOIN {$wpdb->posts} p ON v.postid = p.ID"; - $where .= " AND v.last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) "; - $groupby = "GROUP BY v.postid"; - - // ordered by views - if ( "views" == $instance['order_by'] ) { - - $fields .= ", SUM(v.pageviews) AS 'pageviews'"; - $orderby = "ORDER BY pageviews DESC"; - - } - // ordered by avg views - elseif ( "avg" == $instance['order_by'] ) { - - $fields .= ", ( SUM(v.pageviews)/(IF ( DATEDIFF('{$now}', DATE_SUB('{$now}', INTERVAL {$interval})) > 0, DATEDIFF('{$now}', DATE_SUB('{$now}', INTERVAL {$interval})), 1) ) ) AS 'avg_views' "; - $orderby = "ORDER BY avg_views DESC"; - - } - - // get comments, too - if ( $instance['stats_tag']['comment_count'] ) { - - $fields .= ", IFNULL(c.comment_count, 0) AS 'comment_count'"; - $from .= " LEFT JOIN (SELECT comment_post_ID, COUNT(comment_post_ID) AS 'comment_count' FROM {$wpdb->comments} WHERE comment_date_gmt > DATE_SUB('{$now}', INTERVAL {$interval}) AND comment_approved = 1 GROUP BY comment_post_ID) c ON p.ID = c.comment_post_ID"; - - } - - } - - } - - // List only published, non password-protected posts - $where .= " AND p.post_password = '' AND p.post_status = 'publish'"; - - // Build query - $query = "SELECT {$fields} FROM {$from} {$where} {$groupby} {$orderby} {$limit};"; - - $this->__debug( $query ); - - $result = $wpdb->get_results($query); - - return apply_filters( 'wpp_query_posts', $result, $instance ); - - } // end query_posts - - /** - * Returns the formatted list of posts. - * - * @since 3.0.0 - * @param array instance The current instance of the widget / shortcode parameters - * @return string HTML list of popular posts - */ - private function __get_popular_posts( $instance ) { - - // Parse instance values - $instance = $this->__merge_array_r( - $this->defaults, - $instance - ); - - // Pass the widget ID, might come in handy - if ( isset($this->id) ) - $instance['widget_id'] = $this->id; - - $content = ""; - - // Fetch posts - if ( !defined('WPP_ADMIN') && $this->user_settings['tools']['cache']['active'] ) { - $transient_name = md5(json_encode($instance)); - $mostpopular = ( function_exists( 'is_multisite' ) && is_multisite() ) - ? get_site_transient( $transient_name ) - : get_transient( $transient_name ); - - $content = "\n" . "<!-- cached -->" . "\n"; - - // It wasn't there, so regenerate the data and save the transient - if ( false === $mostpopular ) { - $mostpopular = $this->_query_posts( $instance ); - - switch($this->user_settings['tools']['cache']['interval']['time']){ - case 'minute': - $time = 60; - break; - - case 'hour': - $time = 60 * 60; - break; - - case 'day': - $time = 60 * 60 * 24; - break; - - case 'week': - $time = 60 * 60 * 24 * 7; - break; - - case 'month': - $time = 60 * 60 * 24 * 30; - break; - - case 'year': - $time = 60 * 60 * 24 * 365; - break; - } - - $expiration = $time * $this->user_settings['tools']['cache']['interval']['value']; - - if ( function_exists( 'is_multisite' ) && is_multisite() ) - set_site_transient( $transient_name, $mostpopular, $expiration ); - else - set_transient( $transient_name, $mostpopular, $expiration ); - - $wpp_transients = get_site_option('wpp_transients'); - - if ( !$wpp_transients ) { - $wpp_transients = array( $transient_name ); - add_site_option('wpp_transients', $wpp_transients); - } else { - if ( !in_array($transient_name, $wpp_transients) ) { - $wpp_transients[] = $transient_name; - update_site_option('wpp_transients', $wpp_transients); - } - } - } - } else { - $mostpopular = $this->_query_posts( $instance ); - } - - // No posts to show - if ( !is_array($mostpopular) || empty($mostpopular) ) { - return apply_filters( 'wpp_no_data', "<p class=\"wpp-no-data\">" . __('Sorry. No data so far.', $this->plugin_slug) . "</p>" ); - } - - // Allow WP themers / coders access to raw data - // so they can build their own output - if ( has_filter( 'wpp_custom_html' ) && !defined('WPP_ADMIN') ) { - return apply_filters( 'wpp_custom_html', $mostpopular, $instance ); - } - - // HTML wrapper - if ($instance['markup']['custom_html']) { - $content .= "\n" . htmlspecialchars_decode($instance['markup']['wpp-start'], ENT_QUOTES) ."\n"; - } else { - $content .= "\n" . "<ul class=\"wpp-list\">" . "\n"; - } - - // Loop through posts - foreach($mostpopular as $p) { - $content .= $this->__render_popular_post( $p, $instance ); - } - - // END HTML wrapper - if ($instance['markup']['custom_html']) { - $content .= "\n". htmlspecialchars_decode($instance['markup']['wpp-end'], ENT_QUOTES) ."\n"; - } else { - $content .= "\n". "</ul>". "\n"; - } - - return $content; - - } // end __get_popular_posts - - /** - * Returns the formatted post. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - private function __render_popular_post($p, $instance) { - - // WPML support, based on Serhat Evren's suggestion - see http://wordpress.org/support/topic/wpml-trick#post-5452607 - if ( defined('ICL_LANGUAGE_CODE') && function_exists('icl_object_id') ) { - $current_id = icl_object_id( $p->id, get_post_type( $p->id ), true, ICL_LANGUAGE_CODE ); - $permalink = get_permalink( $current_id ); - } // Get original permalink - else { - $permalink = get_permalink($p->id); - } - - $title = $this->_get_title($p, $instance); - $title_sub = $this->_get_title_sub($p, $instance); - - $author = $this->_get_author($p, $instance); - $post_cat = $this->_get_post_cat($p, $instance); - - $thumb = $this->_get_thumb($p, $instance); - $excerpt = $this->_get_excerpt($p, $instance); - - $pageviews = $this->_get_pageviews($p, $instance); - $comments = $this->_get_comments($p, $instance); - $rating = $this->_get_rating($p, $instance); - $date = $this->_get_date($p, $instance); - - $_stats = join(' | ', $this->_get_stats($p, $instance)); - - // PUTTING IT ALL TOGETHER - // build custom layout - if ($instance['markup']['custom_html']) { - - $data = array( - 'title' => '<a href="'.$permalink.'" title="'. esc_attr($title) .'" class="wpp-post-title" target="' . $this->user_settings['tools']['link']['target'] . '">'.$title_sub.'</a>', - 'summary' => $excerpt, - 'stats' => $_stats, - 'img' => ( !empty($thumb) ) ? '<a href="'.$permalink.'" title="'. esc_attr($title) .'" target="' . $this->user_settings['tools']['link']['target'] . '">' . $thumb . '</a>' : '', - 'img_no_link' => $thumb, - 'id' => $p->id, - 'url' => $permalink, - 'text_title' => esc_attr($title), - 'category' => $post_cat, - 'author' => '<a href="' . get_author_posts_url($p->uid) . '">' . $author . '</a>', - 'views' => ($instance['order_by'] == "views" || $instance['order_by'] == "comments") ? number_format_i18n( $pageviews ) : number_format_i18n( $pageviews, 2 ), - 'comments' => number_format_i18n( $comments ), - 'date' => $date - ); - - $content = $this->__format_content( htmlspecialchars_decode($instance['markup']['post-html'], ENT_QUOTES ), $data, $instance['rating'] ). "\n"; - - } - // build regular layout - else { - $thumb = ( !empty($thumb) ) - ? '<a ' . ( ( $this->current_post_id == $p->id ) ? '' : 'href="' . $permalink . '"' ) . ' title="' . esc_attr($title) . '" target="' . $this->user_settings['tools']['link']['target'] . '">' . $thumb . '</a> ' - : ''; - - $_stats = ( !empty($_stats) ) - ? ' <span class="post-stats">' . $_stats . '</span> ' - : ''; - - $content = - '<li' . ( ( $this->current_post_id == $p->id ) ? ' class="current"' : '' ) . '>' - . $thumb - . '<a ' . ( ( $this->current_post_id == $p->id ) ? '' : 'href="' . $permalink . '"' ) . ' title="' . esc_attr($title) . '" class="wpp-post-title" target="' . $this->user_settings['tools']['link']['target'] . '">' . $title_sub . '</a> ' - . $excerpt . $_stats - . $rating - . "</li>\n"; - } - - return apply_filters('wpp_post', $content, $p, $instance); - - } // end __render_popular_post - - /** - * Cache. - * - * @since 3.0.0 - * @param string $func function name - * @param mixed $default - * @return mixed - */ - private function &__cache($func, $default = null) { - - static $cache; - - if ( !isset($cache) ) { - $cache = array(); - } - - if ( !isset($cache[$func]) ) { - $cache[$func] = $default; - } - - return $cache[$func]; - - } // end __cache - - /** - * Gets post title. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_title($p, $instance) { - - $cache = &$this->__cache(__FUNCTION__, array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - // WPML support, based on Serhat Evren's suggestion - see http://wordpress.org/support/topic/wpml-trick#post-5452607 - if ( defined('ICL_LANGUAGE_CODE') && function_exists('icl_object_id') ) { - $current_id = icl_object_id( $p->id, get_post_type( $p->id ), true, ICL_LANGUAGE_CODE ); - $title = get_the_title( $current_id ); - } // Check for qTranslate - else if ( $this->qTrans && function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage') ) { - $title = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $p->title ); - } // Use ol' plain title - else { - $title = $p->title; - } - - // Strip HTML tags - $title = strip_tags($title); - - return $cache[$p->id] = apply_filters('the_title', $title, $p->id); - - } // end _get_title - - /** - * Gets substring of post title. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_title_sub($p, $instance) { - - $cache = &$this->__cache(__FUNCTION__, array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - // TITLE - $title_sub = $this->_get_title($p, $instance); - - // truncate title - if ($instance['shorten_title']['active']) { - // by words - if (isset($instance['shorten_title']['words']) && $instance['shorten_title']['words']) { - - $words = explode(" ", $title_sub, $instance['shorten_title']['length'] + 1); - if (count($words) > $instance['shorten_title']['length']) { - array_pop($words); - $title_sub = rtrim( implode(" ", $words), ",." ) . " ..."; - } - - } - elseif (strlen($title_sub) > $instance['shorten_title']['length']) { - $title_sub = rtrim( mb_substr($title_sub, 0, $instance['shorten_title']['length'], $this->charset), " ,." ) . "..."; - } - } - - return $cache[$p->id] = $title_sub; - - } // end _get_title_sub - - /** - * Gets post's excerpt. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_excerpt($p, $instance) { - - $excerpt = ''; - - // EXCERPT - if ($instance['post-excerpt']['active']) { - - $excerpt = trim($this->_get_summary($p->id, $instance)); - - if (!empty($excerpt) && !$instance['markup']['custom_html']) { - $excerpt = '<span class="wpp-excerpt">' . $excerpt . '</span>'; - } - - } - - return $excerpt; - - } // end _get_excerpt - - /** - * Gets post's thumbnail. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_thumb($p, $instance) { - - if ( !$instance['thumbnail']['active'] || !$this->thumbnailing ) { - return ''; - } - - $tbWidth = $instance['thumbnail']['width']; - $tbHeight = $instance['thumbnail']['height']; - $crop = $instance['thumbnail']['crop']; - $title = $this->_get_title($p, $instance); - - $thumb = ''; - - // get image from custom field - if ($this->user_settings['tools']['thumbnail']['source'] == "custom_field") { - $path = get_post_meta($p->id, $this->user_settings['tools']['thumbnail']['field'], true); - - if ($path != '') { - // user has requested to resize cf image - if ( $this->user_settings['tools']['thumbnail']['resize'] ) { - $thumb .= $this->__get_img($p, null, $path, array($tbWidth, $tbHeight), $crop, $this->user_settings['tools']['thumbnail']['source'], $title); - } - // use original size - else { - $thumb .= $this->_render_image($path, array($tbWidth, $tbHeight), 'wpp-thumbnail wpp_cf', $title); - } - } - else { - $thumb .= $this->_render_image($this->default_thumbnail, array($tbWidth, $tbHeight), 'wpp-thumbnail wpp_cf_def', $title); - } - } - // get image from post / Featured Image - else { - - // User wants to use the Featured Image using the 'stock' sizes, get stock thumbnails - if ( 'predefined' == $instance['thumbnail']['build'] && 'featured' == $this->user_settings['tools']['thumbnail']['source'] ) { - - // The has_post_thumbnail() functions requires theme's 'post-thumbnails' support, otherwise an error will be thrown - if ( current_theme_supports( 'post-thumbnails' ) ) { - - // Featured image found, retrieve it - if ( has_post_thumbnail($p->id) ) { - $size = null; - - foreach ( $this->default_thumbnail_sizes as $name => $attr ) : - if ( $attr['width'] == $tbWidth && $attr['height'] == $tbHeight && $attr['crop'] == $crop ) { - $size = $name; - break; - } - endforeach; - - // Couldn't find a matching size (this should like never happen, but...) let's use width & height instead - if ( null == $size ) { - $size = array( $tbWidth, $tbHeight ); - } - - if ( $this->user_settings['tools']['thumbnail']['responsive'] ) - $thumb .= preg_replace( '/(width|height)=["\']\d*["\']\s?/', "", get_the_post_thumbnail($p->id, $size, array( 'class' => 'wpp-thumbnail wpp_featured_stock' )) ); - else - $thumb .= get_the_post_thumbnail( $p->id, $size, array( 'class' => 'wpp-thumbnail wpp_featured_stock' ) ); - } - // No featured image found - else { - $thumb .= $this->_render_image($this->default_thumbnail, array($tbWidth, $tbHeight), 'wpp-thumbnail wpp_featured_def', $title); - } - - } // Current theme does not support 'post-thumbnails' feature - else { - $thumb .= $this->_render_image($this->default_thumbnail, array($tbWidth, $tbHeight), 'wpp-thumbnail wpp_featured_def', $title, 'No post-thumbnail support?'); - } - - } - // Get/generate custom thumbnail - else { - $thumb .= $this->__get_img($p, $p->id, null, array($tbWidth, $tbHeight), $crop, $this->user_settings['tools']['thumbnail']['source'], $title); - } - - } - - return $thumb; - - } // end _get_thumb - - /** - * Gets post's views. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return int|float - */ - protected function _get_pageviews($p, $instance) { - - $pageviews = 0; - - if ( - $instance['order_by'] == "views" - || $instance['order_by'] == "avg" - || $instance['stats_tag']['views'] - ) { - $pageviews = ($instance['order_by'] == "views" || $instance['order_by'] == "comments") - ? $p->pageviews - : $p->avg_views; - } - - return $pageviews; - - } // end _get_pageviews - - /** - * Gets post's comment count. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return int - */ - protected function _get_comments($p, $instance) { - - $comments = ($instance['order_by'] == "comments" || $instance['stats_tag']['comment_count']) - ? $p->comment_count - : 0; - - return $comments; - - } // end _get_comments - - /** - * Gets post's rating. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_rating($p, $instance) { - - $cache = &$this->__cache(__FUNCTION__, array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - $rating = ''; - - // RATING - if (function_exists('the_ratings') && $instance['rating']) { - $rating = '<span class="wpp-rating">' . the_ratings('span', $p->id, false) . '</span>'; - } - - return $cache[$p->id] = $rating; - } // end _get_rating - - /** - * Gets post's author. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_author($p, $instance) { - - $cache = &$this->__cache(__FUNCTION__, array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - $author = ($instance['stats_tag']['author']) - ? get_the_author_meta('display_name', $p->uid) - : ""; - - return $cache[$p->id] = $author; - - } // end _get_author - - /** - * Gets post's date. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_date($p, $instance) { - - $cache = &$this->__cache(__FUNCTION__, array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - $date = date_i18n($instance['stats_tag']['date']['format'], strtotime($p->date)); - return $cache[$p->id] = $date; - - } // end _get_date - - /** - * Gets post's category. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return string - */ - protected function _get_post_cat($p, $instance) { - - $post_cat = ''; - - if ($instance['stats_tag']['category']) { - - $cache = &$this->__cache(__FUNCTION__, array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - // Try and get parent category - $cats = get_the_category($p->id); - - foreach( $cats as $cat ) { - if( $cat->category_parent == 0) { - $post_cat = $cat; - } - } - - // Default to first category avaliable - if ( $post_cat == "" && isset($cats[0]) && isset($cats[0]->slug) ) { - $post_cat = $cats[0]; - } - - // Build category tag - if ( "" != $post_cat ) { - - $category_id = $post_cat->term_id; - $category_name = $post_cat->cat_name; - - // WPML support, based on Serhat Evren's suggestion - see http://wordpress.org/support/topic/wpml-trick#post-5452607 - if ( defined('ICL_LANGUAGE_CODE') && function_exists('icl_object_id') ) { - $category_id = icl_object_id( $category_id, 'category', true, ICL_LANGUAGE_CODE ); - $category_name = get_the_category_by_ID( $category_id ); - } - - $post_cat = '<a href="' . get_category_link( $category_id ) . '" class="cat-id-' . $category_id . '">' . $category_name . '</a>'; - - } - - return $cache[$p->id] = $post_cat; - - } - - return $post_cat; - - } // end _get_post_cat - - /** - * Gets statistics data. - * - * @since 3.0.0 - * @param object p - * @param array instance The current instance of the widget / shortcode parameters - * @return array - */ - protected function _get_stats($p, $instance) { - - $cache = &$this->__cache(__FUNCTION__ . md5(json_encode($instance)), array()); - - if ( isset($cache[$p->id]) ) { - return $cache[$p->id]; - } - - $stats = array(); - - // STATS - // comments - if ($instance['stats_tag']['comment_count']) { - $comments = $this->_get_comments($p, $instance); - - $comments_text = sprintf( - _n('1 comment', '%s comments', $comments, $this->plugin_slug), - number_format_i18n( $comments ) - ); - - } - - // views - if ($instance['stats_tag']['views']) { - $pageviews = $this->_get_pageviews($p, $instance); - - if ($instance['order_by'] == 'avg') { - $views_text = sprintf( - _n('1 view per day', '%s views per day', $pageviews, $this->plugin_slug), - number_format_i18n( $pageviews, 2 ) - ); - } - else { - $views_text = sprintf( - _n('1 view', '%s views', $pageviews, $this->plugin_slug), - number_format_i18n( $pageviews ) - ); - } - - } - - if ( "comments" == $instance['order_by'] ) { - if ($instance['stats_tag']['comment_count']) - $stats[] = '<span class="wpp-comments">' . $comments_text . '</span>'; // First comments count - if ($instance['stats_tag']['views']) - $stats[] = '<span class="wpp-views">' . $views_text . "</span>"; // ... then views - } else { - if ($instance['stats_tag']['views']) - $stats[] = '<span class="wpp-views">' . $views_text . "</span>"; // First views count - if ($instance['stats_tag']['comment_count']) - $stats[] = '<span class="wpp-comments">' . $comments_text . '</span>'; // ... then comments - } - - // author - if ($instance['stats_tag']['author']) { - $author = $this->_get_author($p, $instance); - $display_name = '<a href="' . get_author_posts_url($p->uid) . '">' . $author . '</a>'; - $stats[] = '<span class="wpp-author">' . sprintf(__('by %s', $this->plugin_slug), $display_name).'</span>'; - } - - // date - if ($instance['stats_tag']['date']['active']) { - $date = $this->_get_date($p, $instance); - $stats[] = '<span class="wpp-date">' . sprintf(__('posted on %s', $this->plugin_slug), $date) . '</span>'; - } - - // category - if ($instance['stats_tag']['category']) { - $post_cat = $this->_get_post_cat($p, $instance); - - if ($post_cat != '') { - $stats[] = '<span class="wpp-category">' . sprintf(__('under %s', $this->plugin_slug), $post_cat) . '</span>'; - } - } - - return $cache[$p->id] = $stats; - - } // end _get_stats - - /** - * Retrieves / creates the post thumbnail. - * - * @since 2.3.3 - * @param int id Post ID - * @param string url Image URL - * @param array dim Thumbnail width & height - * @param string source Image source - * @return string - */ - private function __get_img($p, $id = null, $url = null, $dim = array(80, 80), $crop = true, $source = "featured", $title) { - - if ( (!$id || empty($id) || !$this->__is_numeric($id)) && (!$url || empty($url)) ) { - return $this->_render_image($this->default_thumbnail, $dim, 'wpp-thumbnail wpp_def_noID', $title); - } - - // Get image by post ID (parent) - if ( $id ) { - $file_path = $this->__get_image_file_paths($id, $source); - - // No images found, return default thumbnail - if ( !$file_path ) { - return $this->_render_image($this->default_thumbnail, $dim, 'wpp-thumbnail wpp_def_noPath wpp_' . $source, $title); - } - } - // Get image from URL - else { - // sanitize URL, just in case - $image_url = esc_url( $url ); - // remove querystring - preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $image_url, $matches); - $image_url = $matches[0]; - - $attachment_id = $this->__get_attachment_id($image_url); - - // Image is hosted locally - if ( $attachment_id ) { - $file_path = get_attached_file($attachment_id); - } - // Image is hosted outside WordPress - else { - $external_image = $this->__fetch_external_image($p->id, $image_url); - - if ( !$external_image ) { - return $this->_render_image($this->default_thumbnail, $dim, 'wpp-thumbnail wpp_def_noPath wpp_no_external', $title); - } - - $file_path = $external_image; - } - } - - $file_info = pathinfo($file_path); - - // there is a thumbnail already - if ( file_exists(trailingslashit($this->uploads_dir['basedir']) . $p->id . '-' . $source . '-' . $dim[0] . 'x' . $dim[1] . '.' . $file_info['extension']) ) { - return $this->_render_image( trailingslashit($this->uploads_dir['baseurl']) . $p->id . '-' . $source . '-' . $dim[0] . 'x' . $dim[1] . '.' . $file_info['extension'], $dim, 'wpp-thumbnail wpp_cached_thumb wpp_' . $source, $title ); - } - - return $this->__image_resize($p, $file_path, $dim, $crop, $source); - - } // end __get_img - - /** - * Resizes image. - * - * @since 3.0.0 - * @param object p Post object - * @param string path Image path - * @param array dimension Image's width and height - * @param string source Image source - * @return string - */ - private function __image_resize($p, $path, $dimension, $crop, $source) { - - $image = wp_get_image_editor($path); - - // valid image, create thumbnail - if ( !is_wp_error($image) ) { - $file_info = pathinfo($path); - - $image->resize($dimension[0], $dimension[1], $crop); - $new_img = $image->save( trailingslashit($this->uploads_dir['basedir']) . $p->id . '-' . $source . '-' . $dimension[0] . 'x' . $dimension[1] . '.' . $file_info['extension'] ); - - if ( is_wp_error($new_img) ) { - return $this->_render_image($this->default_thumbnail, $dimension, 'wpp-thumbnail wpp_imgeditor_error wpp_' . $source, '', $new_img->get_error_message()); - } - - return $this->_render_image( trailingslashit($this->uploads_dir['baseurl']) . $new_img['file'], $dimension, 'wpp-thumbnail wpp_imgeditor_thumb wpp_' . $source, ''); - } - - // ELSE - // image file path is invalid - return $this->_render_image($this->default_thumbnail, $dimension, 'wpp-thumbnail wpp_imgeditor_error wpp_' . $source, '', $image->get_error_message()); - - } // end __image_resize - - /** - * Get image absolute path / URL. - * - * @since 3.0.0 - * @param int id Post ID - * @param string source Image source - * @return array - */ - private function __get_image_file_paths($id, $source) { - - $file_path = ''; - - // get thumbnail path from the Featured Image - if ($source == "featured") { - - // thumb attachment ID - $thumbnail_id = get_post_thumbnail_id($id); - - if ($thumbnail_id) { - // image path - return get_attached_file($thumbnail_id); - } - - } - // get thumbnail path from first image attachment - elseif ($source == "first_attachment") { - - $post_attachments = get_children( - array( 'numberposts' => 1, - 'order' => 'ASC', - 'post_parent' => $id, - 'post_type' => 'attachment', - 'post_mime_type' => 'image' - )); - if ( !empty($post_attachments) ) { - $first_img = array_shift( $post_attachments ); - return get_attached_file($first_img->ID); - } - } - // get thumbnail path from post content - elseif ($source == "first_image") { - - /** @var wpdb $wpdb */ - global $wpdb; - - if ( $content = $wpdb->get_var( "SELECT post_content FROM {$wpdb->posts} WHERE ID = {$id};" ) ) { - - // at least one image has been found - if ( preg_match( '/<img[^>]+>/i', $content, $img ) ) { - - // get img src attribute from the first image found - preg_match( '/(src)="([^"]*)"/i', $img[0], $src_attr ); - - if ( isset($src_attr[2]) && !empty($src_attr[2]) ) { - - // image from Media Library - if ( $attachment_id = $this->__get_attachment_id( $src_attr[2] ) ) { - - $file_path = get_attached_file($attachment_id); - - // There's a file path, so return it - if ( !empty($file_path) ) { - return $file_path; - } - - } // external image? - else { - return $this->__fetch_external_image($id, $src_attr[2]); - } - - } - - } - - } - - } - - return false; - - } // end __get_image_file_paths - - /** - * Render image tag. - * - * @since 3.0.0 - * @param string src Image URL - * @param array dimension Image's width and height - * @param string class CSS class - * @param string title Image's title/alt attribute - * @param string error Error, if the image could not be created - * @return string - */ - protected function _render_image($src, $dimension, $class, $title = "", $error = null) { - - $msg = ''; - - if ($error) { - $msg = '<!-- ' . $error . ' --> '; - } - - if ( is_ssl() ) { - $src = str_ireplace( "http://", "https://", $src ); - } - - return apply_filters( 'wpp_render_image', $msg . - '<img src="' . $src . '" ' . ( false == $this->user_settings['tools']['thumbnail']['responsive'] ? 'width="' . $dimension[0] . '" height="' . $dimension[1] . '"' : '' ) . ' title="' . esc_attr($title) . '" alt="' . esc_attr($title) . '" class="' . $class . '" />' ); - - } // _render_image - - /** - * Get the Attachment ID for a given image URL. - * - * @since 3.0.0 - * @author Frankie Jarrett - * @link http://frankiejarrett.com/get-an-attachment-id-by-url-in-wordpress/ - * @param string url - * @return bool|int - */ - private function __get_attachment_id($url) { - - // Split the $url into two parts with the wp-content directory as the separator. - $parse_url = explode( parse_url( WP_CONTENT_URL, PHP_URL_PATH ), $url ); - - // Get the host of the current site and the host of the $url, ignoring www. - $this_host = str_ireplace( 'www.', '', parse_url( home_url(), PHP_URL_HOST ) ); - $file_host = str_ireplace( 'www.', '', parse_url( $url, PHP_URL_HOST ) ); - - // Return nothing if there aren't any $url parts or if the current host and $url host do not match. - if ( ! isset( $parse_url[1] ) || empty( $parse_url[1] ) || ( $this_host != $file_host ) ) { - return false; - } - - // Now we're going to quickly search the DB for any attachment GUID with a partial path match. - // Example: /uploads/2013/05/test-image.jpg - global $wpdb; - - if ( !$attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parse_url[1] ) ) ) { - // Maybe it's a resized image, so try to get the full one - $parse_url[1] = preg_replace( '/-[0-9]{1,4}x[0-9]{1,4}\.(jpg|jpeg|png|gif|bmp)$/i', '.$1', $parse_url[1] ); - $attachment = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM {$wpdb->prefix}posts WHERE guid RLIKE %s;", $parse_url[1] ) ); - } - - // Returns null if no attachment is found. - return isset($attachment[0]) ? $attachment[0] : NULL; - - } // __get_attachment_id - - /** - * Fetchs external images. - * - * @since 2.3.3 - * @param string url - * @return bool|int - */ - private function __fetch_external_image($id, $url){ - - $full_image_path = trailingslashit( $this->uploads_dir['basedir'] ) . "{$id}_". sanitize_file_name( rawurldecode(wp_basename( $url )) ); - - // if the file exists already, return URL and path - if ( file_exists($full_image_path) ) - return $full_image_path; - - $accepted_status_codes = array( 200, 301, 302 ); - $response = wp_remote_head( $url, array( 'timeout' => 5, 'sslverify' => false ) ); - - if ( !is_wp_error($response) && in_array(wp_remote_retrieve_response_code($response), $accepted_status_codes) ) { - - require_once( ABSPATH . 'wp-admin/includes/file.php' ); - $url = str_replace( 'https://', 'http://', $url ); - $tmp = download_url( $url ); - - if ( !is_wp_error( $tmp ) ) { - - if ( function_exists('exif_imagetype') ) { - $image_type = exif_imagetype( $tmp ); - } else { - $image_type = getimagesize( $tmp ); - $image_type = ( isset($image_type[2]) ) ? $image_type[2] : NULL; - } - - if ( in_array($image_type, array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG)) ) { - - // move file to Uploads - if ( @rename($tmp, $full_image_path) ) { - // borrowed from WP - set correct file permissions - $stat = stat( dirname( $full_image_path )); - $perms = $stat['mode'] & 0000644; - @chmod( $full_image_path, $perms ); - - return $full_image_path; - } - - } - - // remove temp file - @unlink( $tmp ); - - } - - } - - return false; - - } // end __fetch_external_image - - /** - * Builds post's excerpt - * - * @since 1.4.6 - * @global object wpdb - * @param int post ID - * @param array widget instance - * @return string - */ - protected function _get_summary($id, $instance){ - - if ( !$this->__is_numeric($id) ) - return false; - - global $wpdb; - - $excerpt = ""; - - // WPML support, get excerpt for current language - if ( defined('ICL_LANGUAGE_CODE') && function_exists('icl_object_id') ) { - $current_id = icl_object_id( $id, get_post_type( $id ), true, ICL_LANGUAGE_CODE ); - - $the_post = get_post( $current_id ); - $excerpt = ( empty($the_post->post_excerpt) ) - ? $the_post->post_content - : $the_post->post_excerpt; - } // Use ol' plain excerpt - else { - $the_post = get_post( $id ); - $excerpt = ( empty($the_post->post_excerpt) ) - ? $the_post->post_content - : $the_post->post_excerpt; - - // RRR added call to the_content filters, allows qTranslate to hook in. - if ( $this->qTrans ) - $excerpt = qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage( $excerpt ); - } - - // remove caption tags - $excerpt = preg_replace( "/\[caption.*\[\/caption\]/", "", $excerpt ); - - // remove Flash objects - $excerpt = preg_replace( "/<object[0-9 a-z_?*=\":\-\/\.#\,\\n\\r\\t]+/smi", "", $excerpt ); - - // remove Iframes - $excerpt = preg_replace( "/<iframe.*?\/iframe>/i", "", $excerpt); - - // remove WP shortcodes - $excerpt = strip_shortcodes( $excerpt ); - - // remove style/script tags - $excerpt = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $excerpt ); - - // remove HTML tags if requested - if ( $instance['post-excerpt']['keep_format'] ) { - $excerpt = strip_tags($excerpt, '<a><b><i><em><strong>'); - } else { - $excerpt = strip_tags($excerpt); - // remove URLs, too - $excerpt = preg_replace( '_^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS', '', $excerpt ); - } - - // Fix RSS CDATA tags - $excerpt = str_replace( ']]>', ']]>', $excerpt ); - - // do we still have something to display? - if ( !empty($excerpt) ) { - - // truncate excerpt - if ( isset($instance['post-excerpt']['words']) && $instance['post-excerpt']['words'] ) { // by words - - $words = explode(" ", $excerpt, $instance['post-excerpt']['length'] + 1); - - if ( count($words) > $instance['post-excerpt']['length'] ) { - array_pop($words); - $excerpt = rtrim( implode(" ", $words), ".," ) . " ..."; - } - - } else { // by characters - - if ( strlen($excerpt) > $instance['post-excerpt']['length'] ) { - $excerpt = rtrim( mb_substr( $excerpt, 0, $instance['post-excerpt']['length'], $this->charset ), ".," ) . "..."; - } - - } - - } - - // Balance tags, if needed - if ( $instance['post-excerpt']['keep_format'] ) { - $excerpt = force_balance_tags($excerpt); - } - - return $excerpt; - - } // _get_summary - - /** - * WPP shortcode handler - * Since 2.0.0 - */ - public function shortcode($atts = null, $content = null) { - /** - * @var String $header - * @var Int $limit - * @var String $range - * @var Bool $freshness - * @var String $order_by - * @var String $post_type - * @var String $pid - * @var String $cat - * @var String $author - * @var Int $title_length - * @var Int $title_by_words - * @var Int $excerpt_length - * @var Int $excerpt_format - * @var Int $excerpt_by_words - * @var Int $thumbnail_width - * @var Int $thumbnail_height - * @var Bool $rating - * @var Bool $stats_comments - * @var Bool $stats_views - * @var Bool $stats_author - * @var Bool $stats_date - * @var String $stats_date_format - * @var Bool $stats_category - * @var String $wpp_start - * @var String $wpp_end - * @var String $header_start - * @var String $header_end - * @var String $post_html - * @var Bool $php - */ - extract( shortcode_atts( array( - 'header' => '', - 'limit' => 10, - 'range' => 'daily', - 'freshness' => false, - 'order_by' => 'views', - 'post_type' => 'post,page', - 'pid' => '', - 'cat' => '', - 'author' => '', - 'title_length' => 0, - 'title_by_words' => 0, - 'excerpt_length' => 0, - 'excerpt_format' => 0, - 'excerpt_by_words' => 0, - 'thumbnail_width' => 0, - 'thumbnail_height' => 0, - 'rating' => false, - 'stats_comments' => false, - 'stats_views' => true, - 'stats_author' => false, - 'stats_date' => false, - 'stats_date_format' => 'F j, Y', - 'stats_category' => false, - 'wpp_start' => '<ul class="wpp-list">', - 'wpp_end' => '</ul>', - 'header_start' => '<h2>', - 'header_end' => '</h2>', - 'post_html' => '', - 'php' => false - ), $atts, 'wpp')); - - // possible values for "Time Range" and "Order by" - $range_values = array("yesterday", "daily", "weekly", "monthly", "all"); - $order_by_values = array("comments", "views", "avg"); - - $shortcode_ops = array( - 'title' => strip_tags($header), - 'limit' => (!empty($limit) && $this->__is_numeric($limit) && $limit > 0) ? $limit : 10, - 'range' => (in_array($range, $range_values)) ? $range : 'daily', - 'freshness' => empty($freshness) ? false : $freshness, - 'order_by' => (in_array($order_by, $order_by_values)) ? $order_by : 'views', - 'post_type' => empty($post_type) ? 'post,page' : $post_type, - 'pid' => preg_replace('|[^0-9,]|', '', $pid), - 'cat' => preg_replace('|[^0-9,-]|', '', $cat), - 'author' => preg_replace('|[^0-9,]|', '', $author), - 'shorten_title' => array( - 'active' => (!empty($title_length) && $this->__is_numeric($title_length) && $title_length > 0), - 'length' => (!empty($title_length) && $this->__is_numeric($title_length)) ? $title_length : 0, - 'words' => (!empty($title_by_words) && $this->__is_numeric($title_by_words) && $title_by_words > 0), - ), - 'post-excerpt' => array( - 'active' => (!empty($excerpt_length) && $this->__is_numeric($excerpt_length) && ($excerpt_length > 0)), - 'length' => (!empty($excerpt_length) && $this->__is_numeric($excerpt_length)) ? $excerpt_length : 0, - 'keep_format' => (!empty($excerpt_format) && $this->__is_numeric($excerpt_format) && ($excerpt_format > 0)), - 'words' => (!empty($excerpt_by_words) && $this->__is_numeric($excerpt_by_words) && $excerpt_by_words > 0), - ), - 'thumbnail' => array( - 'active' => (!empty($thumbnail_width) && $this->__is_numeric($thumbnail_width) && $thumbnail_width > 0), - 'width' => (!empty($thumbnail_width) && $this->__is_numeric($thumbnail_width) && $thumbnail_width > 0) ? $thumbnail_width : 0, - 'height' => (!empty($thumbnail_height) && $this->__is_numeric($thumbnail_height) && $thumbnail_height > 0) ? $thumbnail_height : 0, - ), - 'rating' => empty($rating) ? false : $rating, - 'stats_tag' => array( - 'comment_count' => empty($stats_comments) ? false : $stats_comments, - 'views' => empty($stats_views) ? false : $stats_views, - 'author' => empty($stats_author) ? false : $stats_author, - 'date' => array( - 'active' => empty($stats_date) ? false : $stats_date, - 'format' => empty($stats_date_format) ? 'F j, Y' : $stats_date_format - ), - 'category' => empty($stats_category) ? false : $stats_category, - ), - 'markup' => array( - 'custom_html' => true, - 'wpp-start' => empty($wpp_start) ? '<ul class="wpp-list">' : $wpp_start, - 'wpp-end' => empty($wpp_end) ? '</ul>' : $wpp_end, - 'title-start' => empty($header_start) ? '' : $header_start, - 'title-end' => empty($header_end) ? '' : $header_end, - 'post-html' => empty($post_html) ? '<li>{thumb} {title} {stats}</li>' : $post_html - ) - ); - - $shortcode_content = "\n". "<!-- WordPress Popular Posts Plugin v". $this->version ." [" . ( $php ? "PHP" : "SC" ) . "] [".$shortcode_ops['range']."] [".$shortcode_ops['order_by']."] [custom]" . ( !empty($shortcode_ops['pid']) ? " [PID]" : "" ) . ( !empty($shortcode_ops['cat']) ? " [CAT]" : "" ) . ( !empty($shortcode_ops['author']) ? " [UID]" : "" ) . " -->"."\n"; - - // is there a title defined by user? - if (!empty($header) && !empty($header_start) && !empty($header_end)) { - $shortcode_content .= htmlspecialchars_decode($header_start, ENT_QUOTES) . apply_filters('widget_title', $header) . htmlspecialchars_decode($header_end, ENT_QUOTES); - } - - // print popular posts list - $shortcode_content .= $this->__get_popular_posts($shortcode_ops); - $shortcode_content .= "\n". "<!-- End WordPress Popular Posts Plugin v". $this->version ." -->"."\n"; - - return $shortcode_content; - - } // end shortcode - - /** - * Parses content tags - * - * @since 1.4.6 - * @param string HTML string with content tags - * @param array Post data - * @param bool Used to display post rating (if functionality is available) - * @return string - */ - private function __format_content($string, $data = array(), $rating) { - - if (empty($string) || (empty($data) || !is_array($data))) - return false; - - $params = array(); - $pattern = '/\{(pid|excerpt|summary|stats|title|image|thumb|thumb_img|rating|score|url|text_title|author|category|views|comments|date)\}/i'; - preg_match_all($pattern, $string, $matches); - - array_map('strtolower', $matches[0]); - - if ( in_array("{pid}", $matches[0]) ) { - $string = str_replace( "{pid}", $data['id'], $string ); - } - - if ( in_array("{title}", $matches[0]) ) { - $string = str_replace( "{title}", $data['title'], $string ); - } - - if ( in_array("{stats}", $matches[0]) ) { - $string = str_replace( "{stats}", $data['stats'], $string ); - } - - if ( in_array("{excerpt}", $matches[0]) || in_array("{summary}", $matches[0]) ) { - $string = str_replace( array("{excerpt}", "{summary}"), $data['summary'], $string ); - } - - if ( in_array("{image}", $matches[0]) || in_array("{thumb}", $matches[0]) ) { - $string = str_replace( array("{image}", "{thumb}"), $data['img'], $string ); - } - - if ( in_array("{thumb_img}", $matches[0]) ) { - $string = str_replace( "{thumb_img}", $data['img_no_link'], $string ); - } - - // WP-PostRatings check - if ( $rating ) { - if ( function_exists('the_ratings_results') && in_array("{rating}", $matches[0]) ) { - $string = str_replace( "{rating}", the_ratings_results($data['id']), $string ); - } - - if ( function_exists('expand_ratings_template') && in_array("{score}", $matches[0]) ) { - $string = str_replace( "{score}", expand_ratings_template('%RATINGS_SCORE%', $data['id']), $string); - // removing the redundant plus sign - $string = str_replace('+', '', $string); - } - } - - if ( in_array("{url}", $matches[0]) ) { - $string = str_replace( "{url}", $data['url'], $string ); - } - - if ( in_array("{text_title}", $matches[0]) ) { - $string = str_replace( "{text_title}", $data['text_title'], $string ); - } - - if ( in_array("{author}", $matches[0]) ) { - $string = str_replace( "{author}", $data['author'], $string ); - } - - if ( in_array("{category}", $matches[0]) ) { - $string = str_replace( "{category}", $data['category'], $string ); - } - - if ( in_array("{views}", $matches[0]) ) { - $string = str_replace( "{views}", $data['views'], $string ); - } - - if ( in_array("{comments}", $matches[0]) ) { - $string = str_replace( "{comments}", $data['comments'], $string ); - } - - if ( in_array("{date}", $matches[0]) ) { - $string = str_replace( "{date}", $data['date'], $string ); - } - - return $string; - - } // end __format_content - - /** - * Returns HTML list via AJAX - * - * @since 2.3.3 - * @return string - */ - public function get_popular( ) { - - if ( $this->__is_numeric($_GET['id']) && ($_GET['id'] != '') ) { - $id = $_GET['id']; - } else { - die("Invalid ID"); - } - - $widget_instances = $this->get_settings(); - - if ( isset($widget_instances[$id]) ) { - - echo $this->__get_popular_posts( $widget_instances[$id] ); - - } else { - - echo "Invalid Widget ID"; - } - - exit(); - - } // end get_popular - - /*--------------------------------------------------*/ - /* Helper functions - /*--------------------------------------------------*/ - - /** - * Gets list of available thumbnails sizes - * - * @since 3.2.0 - * @link http://codex.wordpress.org/Function_Reference/get_intermediate_image_sizes - * @param string $size - * @return array|bool - */ - private function __get_image_sizes( $size = '' ) { - - global $_wp_additional_image_sizes; - - $sizes = array(); - $get_intermediate_image_sizes = get_intermediate_image_sizes(); - - // Create the full array with sizes and crop info - foreach( $get_intermediate_image_sizes as $_size ) { - - if ( in_array( $_size, array( 'thumbnail', 'medium', 'large' ) ) ) { - - $sizes[ $_size ]['width'] = get_option( $_size . '_size_w' ); - $sizes[ $_size ]['height'] = get_option( $_size . '_size_h' ); - $sizes[ $_size ]['crop'] = (bool) get_option( $_size . '_crop' ); - - } elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) { - - $sizes[ $_size ] = array( - 'width' => $_wp_additional_image_sizes[ $_size ]['width'], - 'height' => $_wp_additional_image_sizes[ $_size ]['height'], - 'crop' => $_wp_additional_image_sizes[ $_size ]['crop'] - ); - - } - - } - - // Get only 1 size if found - if ( $size ) { - - if( isset( $sizes[ $size ] ) ) { - return $sizes[ $size ]; - } else { - return false; - } - - } - - return $sizes; - } - - /** - * Gets post/page ID if current page is singular - * - * @since 3.1.2 - */ - public function is_single() { - $trackable = array(); - $registered_post_types = get_post_types( array('public' => true), 'names' ); - - foreach ( $registered_post_types as $post_type ) { - $trackable[] = $post_type; - } - - $trackable = apply_filters( 'wpp_trackable_post_types', $trackable ); - - if ( is_singular($trackable) && !is_front_page() && !is_preview() && !is_trackback() && !is_feed() && !is_robots() ) { - global $post; - $this->current_post_id = ( is_object($post) ) ? $post->ID : 0; - } else { - $this->current_post_id = 0; - } - } // end is_single - - /** - * Checks for valid number - * - * @since 2.1.6 - * @param int number - * @return bool - */ - private function __is_numeric($number){ - return !empty($number) && is_numeric($number) && (intval($number) == floatval($number)); - } - - /** - * Returns server datetime - * - * @since 2.1.6 - * @return string - */ - private function __curdate() { - return gmdate( 'Y-m-d', ( time() + ( get_site_option( 'gmt_offset' ) * 3600 ) )); - } // end __curdate - - /** - * Returns mysql datetime - * - * @since 2.1.6 - * @return string - */ - private function __now() { - return current_time('mysql'); - } // end __now - - /** - * Returns time - * - * @since 2.3.0 - * @return string - */ - private function __microtime_float() { - - list( $msec, $sec ) = explode( ' ', microtime() ); - - $microtime = (float) $msec + (float) $sec; - return $microtime; - - } // end __microtime_float - - /** - * Merges two associative arrays recursively - * - * @since 2.3.4 - * @link http://www.php.net/manual/en/function.array-merge-recursive.php#92195 - * @param array array1 - * @param array array2 - * @return array - */ - private function __merge_array_r( array &$array1, array &$array2 ) { - - $merged = $array1; - - foreach ( $array2 as $key => &$value ) { - - if ( is_array( $value ) && isset ( $merged[$key] ) && is_array( $merged[$key] ) ) { - $merged[$key] = $this->__merge_array_r( $merged[$key], $value ); - } else { - $merged[$key] = $value; - } - } - - return $merged; - - } // end __merge_array_r - - /** - * Checks if visitor is human or bot. - * - * @since 3.0.0 - * @return bool FALSE if human, TRUE if bot - */ - private function __is_bot() { - - if ( !isset($_SERVER['HTTP_USER_AGENT']) || empty($_SERVER['HTTP_USER_AGENT']) ) - return true; // No UA? Bot (probably) - - $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']); - - foreach ( $this->botlist as $bot ) { - if ( false !== strpos($user_agent, $bot) ) { - return true; // Bot - } - } - - return false; // Human, I guess... - - } // end __is_bot - - /** - * Debug function. - * - * @since 3.0.0 - * @param mixed $v variable to display with var_dump() - * @param mixed $v,... unlimited optional number of variables to display with var_dump() - */ - private function __debug($v) { - - if ( !defined('WPP_DEBUG') || !WPP_DEBUG ) - return; - - foreach (func_get_args() as $arg) { - - print "<pre>"; - var_dump($arg); - print "</pre>"; - - } - - } // end __debug - - } // end class - -} - -/** - * WordPress Popular Posts template tags for use in themes. - */ /** - * Template tag - gets views count. + * The plugin bootstrap file + * + * This file is read by WordPress to generate the plugin information in the plugin + * admin area. This file also includes all of the dependencies used by the plugin, + * registers the activation and deactivation functions, and defines a function + * that starts the plugin. + * + * @link http://cabrerahector.com/ + * @since 4.0.0 + * @package WordPressPopularPosts * - * @since 2.0.3 - * @global object wpdb - * @param int id - * @param string range - * @param bool number_format - * @return string + * @wordpress-plugin + * Plugin Name: WordPress Popular Posts + * Plugin URI: https://wordpress.org/plugins/wordpress-popular-posts/ + * Description: A highly customizable widget that displays the most popular posts on your blog. + * Version: 4.0.3 + * Author: Hector Cabrera + * Author URI: http://cabrerahector.com/ + * License: GPL-2.0+ + * License URI: http://www.gnu.org/licenses/gpl-2.0.txt + * Text Domain: wordpress-popular-posts + * Domain Path: /languages */ -function wpp_get_views($id = NULL, $range = NULL, $number_format = true) { - - // have we got an id? - if ( empty($id) || is_null($id) || !is_numeric($id) ) { - return "-1"; - } else { - global $wpdb; - - $table_name = $wpdb->prefix . "popularposts"; - - if ( !$range || 'all' == $range ) { - $query = "SELECT pageviews FROM {$table_name}data WHERE postid = '{$id}'"; - } else { - $interval = ""; - - switch( $range ){ - case "yesterday": - $interval = "1 DAY"; - break; - - case "daily": - $interval = "1 DAY"; - break; - - case "weekly": - $interval = "1 WEEK"; - break; - - case "monthly": - $interval = "1 MONTH"; - break; - - default: - $interval = "1 DAY"; - break; - } - - $now = current_time('mysql'); - - $query = "SELECT SUM(pageviews) FROM {$table_name}summary WHERE postid = '{$id}' AND last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) LIMIT 1;"; - } - - $result = $wpdb->get_var($query); - - if ( !$result ) { - return "0"; - } - - return ($number_format) ? number_format_i18n( intval($result) ) : $result; - } +if ( ! defined( 'WPINC' ) ) { + die(); } -/** - * Template tag - gets popular posts. - * - * @since 2.0.3 - * @param mixed args +/* + * The code that runs during plugin activation. */ -function wpp_get_mostpopular($args = NULL) { +require_once plugin_dir_path( __FILE__ ) . 'includes/class-wordpress-popular-posts-activator.php'; +register_activation_hook( __FILE__, array('WPP_Activator', 'activate') ); - $shortcode = '[wpp'; - - if ( is_null( $args ) ) { - $shortcode .= ']'; - } else { - if( is_array( $args ) ){ - $atts = ''; - foreach( $args as $key => $arg ){ - $atts .= ' ' . $key . '="' . htmlspecialchars($arg, ENT_QUOTES, $encoding = ini_get("default_charset"), false) . '"'; - } - } else { - $atts = trim( str_replace( "&", " ", $args ) ); - } - - $shortcode .= ' ' . $atts . ' php=true]'; - } - - echo do_shortcode( $shortcode ); +/* + * The code that runs during plugin activation. + */ +require_once plugin_dir_path( __FILE__ ) . 'includes/class-wordpress-popular-posts-deactivator.php'; +register_deactivation_hook( __FILE__, array('WPP_Deactivator', 'deactivate') ); -} +/* + * The core plugins class. + */ +require plugin_dir_path( __FILE__ ) . 'includes/class-wordpress-popular-posts.php'; -/** - * Template tag - gets popular posts. Deprecated in 2.0.3, use wpp_get_mostpopular instead. - * - * @since 1.0 - * @param mixed args +/* + * Begin execution of the plugin. */ -function get_mostpopular($args = NULL) { - trigger_error( 'The get_mostpopular() template tag has been deprecated since 2.0.3. Please use wpp_get_mostpopular() instead.', E_USER_WARNING ); -} +$wordpress_popular_posts = new WordPressPopularPosts(); +$wordpress_popular_posts->run(); diff --git a/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php b/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php index a6185be9f8338b158cf5b30eb7545dc7bb223a7e..0384226cd78019453ed5021160b2a9231f04bfa8 100644 --- a/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php +++ b/wp-content/plugins/wp-super-cache/plugins/awaitingmoderation.php @@ -51,4 +51,15 @@ function wp_supercache_awaitingmoderation_admin() { } add_cacheaction( 'cache_admin_page', 'wp_supercache_awaitingmoderation_admin' ); + +function wpsc_awaiting_moderation_list( $list ) { + $list[ 'awaitingmoderation' ] = array( + 'key' => 'awaitingmoderation', + 'url' => '', + 'title' => __( 'Awaiting Moderation', 'wp-super-cache' ), + 'desc' => __( 'Enables or disables plugin to Remove the text "Your comment is awaiting moderation." when someone leaves a moderated comment.', 'wp-super-cache' ), + ); + return $list; +} +add_cacheaction( 'wpsc_filter_list', 'wpsc_awaiting_moderation_list' ); ?> diff --git a/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php b/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php index 4f42d1a4d12f3d0df7d359e52c81e51d05b0e9dc..fa305cd6355aeeaa45dfe7282469393690853d90 100644 --- a/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php +++ b/wp-content/plugins/wp-super-cache/plugins/badbehaviour.php @@ -85,4 +85,15 @@ function wp_supercache_badbehaviour_admin() { } add_cacheaction( 'cache_admin_page', 'wp_supercache_badbehaviour_admin' ); +function wpsc_badbehaviour_list( $list ) { + $list[ 'badbehaviour' ] = array( + 'key' => 'badbehaviour', + 'url' => 'http://www.bad-behavior.ioerror.us/', + 'title' => __( 'Bad Behavior', 'wp-super-cache' ), + 'desc' => sprintf( __( 'Support for Bad Behavior. (Only WPCache caching supported, disabled compression and requires Bad Behavior in "%s/plugins/bad-behavior/") ', 'wp-super-cache' ), WP_CONTENT_DIR ), + ); + return $list; +} +add_cacheaction( 'wpsc_filter_list', 'wpsc_badbehaviour_list' ); + ?> diff --git a/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php b/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php index e5f381c0edebba970c6ed7876641c2ed91a74d4a..056263cc825f7fb967bc7d2e5b4350eded226bbb 100644 --- a/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php +++ b/wp-content/plugins/wp-super-cache/plugins/domain-mapping.php @@ -109,4 +109,16 @@ function wp_supercache_domain_mapping_exists() { if ( isset( $_GET[ 'page' ] ) && $_GET[ 'page' ] == 'wpsupercache' ) { add_cacheaction( 'add_cacheaction', 'wp_supercache_domain_mapping_exists' ); } + +function wpsc_domain_mapping_list( $list ) { + $list[ 'domain_mapping' ] = array( + 'key' => 'domain_mapping', + 'url' => 'http://wordpress.org/extend/plugins/wordpress-mu-domain-mapping/', + 'title' => __( 'Domain Mapping', 'wp-super-cache' ), + 'desc' => __( 'Provides support for Domain Mapping plugin to map multiple domains to a blog.', 'wp-super-cache' ), + ); + return $list; +} +add_cacheaction( 'wpsc_filter_list', 'wpsc_domain_mapping_list' ); + ?> diff --git a/wp-content/plugins/wp-super-cache/plugins/jetpack.php b/wp-content/plugins/wp-super-cache/plugins/jetpack.php index 1c398c6dae1e99536eb23f3729e29e275330315c..05906284585a61923c17ea172887c5ac32ec1cf7 100644 --- a/wp-content/plugins/wp-super-cache/plugins/jetpack.php +++ b/wp-content/plugins/wp-super-cache/plugins/jetpack.php @@ -75,4 +75,16 @@ function wp_super_cache_jetpack_cookie_check( $cache_key ) { if ( isset( $cache_jetpack ) && $cache_jetpack == 1 ) { add_cacheaction( 'wp_cache_check_mobile', 'wp_super_cache_jetpack_cookie_check' ); } + +function wpsc_cache_jetpack_list( $list ) { + $list[ 'jetpack' ] = array( + 'key' => 'jetpack', + 'url' => 'http://wordpress.org/extend/plugins/jetpack/', + 'title' => __( 'Jetpack Mobile Theme', 'wp-super-cache' ), + 'desc' => __( 'Provides support for the Jetpack mobile theme and plugin. PHP caching mode and mobile support will be enabled too.', 'wp-super-cache' ), + ); + return $list; +} +add_cacheaction( 'wpsc_filter_list', 'wpsc_cache_jetpack_list' ); + ?> diff --git a/wp-content/plugins/wp-super-cache/plugins/searchengine.php b/wp-content/plugins/wp-super-cache/plugins/searchengine.php index bac62f5cd30dece50893b93304706941f8f52ba9..9013a7913e9048989b97011e558dd12a15ef4ac2 100644 --- a/wp-content/plugins/wp-super-cache/plugins/searchengine.php +++ b/wp-content/plugins/wp-super-cache/plugins/searchengine.php @@ -2,7 +2,8 @@ function wp_supercache_searchengine( $string ) { global $passingthrough, $nevershowads, $cache_no_adverts_for_friends; - if( $cache_no_adverts_for_friends != 'yes' && $cache_no_adverts_for_friends != '1' ) + $cache_no_adverts_for_friends = wpsc_get_searchengine_setting(); + if ( ! $cache_no_adverts_for_friends ) return $string; if( $string != '' ) @@ -43,39 +44,67 @@ function searchenginesupercache( $user_info ) { } } +function wpsc_get_searchengine_setting() { + global $cache_no_adverts_for_friends; + + if ( ! isset( $cache_no_adverts_for_friends ) ) { + return 0; + } + + $changed = false; + if ( $cache_no_adverts_for_friends === 'yes' || $cache_no_adverts_for_friends === '1' ) { + $cache_no_adverts_for_friends = 1; + $changed = true; + } elseif ( $cache_no_adverts_for_friends === 'no' ) { + $cache_no_adverts_for_friends = 0; + $changed = true; + } + if ( $changed && function_exists( 'wp_cache_setting' ) ) { + wp_cache_setting( 'cache_no_adverts_for_friends', $cache_no_adverts_for_friends ); + } + + return $cache_no_adverts_for_friends; +} + function searchengine_phase2_actions() { global $cache_no_adverts_for_friends; - if( $cache_no_adverts_for_friends == 'yes' ) { + + $cache_no_adverts_for_friends = wpsc_get_searchengine_setting(); + if ( $cache_no_adverts_for_friends ) { add_filter( 'do_createsupercache', 'searchenginesupercache' ); } } add_cacheaction( 'add_cacheaction', 'searchengine_phase2_actions' ); function wp_supercache_searchengine_admin() { - global $cache_no_adverts_for_friends, $wp_cache_config_file, $valid_nonce; + global $cache_no_adverts_for_friends, $valid_nonce; - $cache_no_adverts_for_friends = $cache_no_adverts_for_friends == '' ? 'no' : $cache_no_adverts_for_friends; + $cache_no_adverts_for_friends = wpsc_get_searchengine_setting(); if(isset($_POST['cache_no_adverts_for_friends']) && $valid_nonce) { - $cache_no_adverts_for_friends = $_POST['cache_no_adverts_for_friends'] == __( 'Disable', 'wp-super-cache' ) ? 'no' : 'yes'; - wp_cache_replace_line('^ *\$cache_no_adverts_for_friends', "\$cache_no_adverts_for_friends = '$cache_no_adverts_for_friends';", $wp_cache_config_file); + if ( $cache_no_adverts_for_friends != (int)$_POST[ 'cache_no_adverts_for_friends' ] ) { + $changed = 1; + } else { + $changed = 0; + } + $cache_no_adverts_for_friends = (int)$_POST[ 'cache_no_adverts_for_friends' ]; + wp_cache_setting( 'cache_no_adverts_for_friends', $cache_no_adverts_for_friends ); } - $id = 'no_adverts_for_friends-section'; ?> - <fieldset id="<?php echo $id; ?>" class="options"> + <fieldset id="no_adverts_for_friends-section" class="options"> <h4><?php _e( 'No Adverts for Friends', 'wp-super-cache' ); ?></h4> <form name="wp_manager" action="" method="post"> - <label><input type="radio" name="cache_no_adverts_for_friends" value="1" <?php if( $cache_no_adverts_for_friends == 'yes' ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label> - <label><input type="radio" name="cache_no_adverts_for_friends" value="0" <?php if( $cache_no_adverts_for_friends == 'no' ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Disabled', 'wp-super-cache' ); ?></label> - <p><?php _e( '', 'wp-super-cache' ); ?></p><?php - echo '<p>' . __( 'Provides support for <a href="http://ocaoimh.ie/no-adverts-for-friends/">No Adverts for Friends</a>.', 'wp-super-cache' ) . '</p>'; - if ( isset( $changed ) && $changed ) { - if ( 'yes' == $cache_no_adverts_for_friends ) - $status = __( "enabled", 'wp-super-cache' ); - else - $status = __( "disabled", 'wp-super-cache' ); - echo "<p><strong>" . sprintf( __( "No Adverts for Friends support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>"; - } + <label><input type="radio" name="cache_no_adverts_for_friends" value="1" <?php if ( $cache_no_adverts_for_friends ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Enabled', 'wp-super-cache' ); ?></label> + <label><input type="radio" name="cache_no_adverts_for_friends" value="0" <?php if ( ! $cache_no_adverts_for_friends ) { echo 'checked="checked" '; } ?>/> <?php _e( 'Disabled', 'wp-super-cache' ); ?></label> + <?php + echo '<p>' . __( 'Provides support for <a href="https://odd.blog/no-adverts-for-friends/">No Adverts for Friends</a>.', 'wp-super-cache' ) . '</p>'; + if ( isset( $changed ) && $changed ) { + if ( $cache_no_adverts_for_friends ) + $status = __( "enabled", 'wp-super-cache' ); + else + $status = __( "disabled", 'wp-super-cache' ); + echo "<p><strong>" . sprintf( __( "No Adverts for Friends support is now %s", 'wp-super-cache' ), $status ) . "</strong></p>"; + } echo '<div class="submit"><input class="button-primary" ' . SUBMITDISABLED . 'type="submit" value="' . __( 'Update', 'wp-super-cache' ) . '" /></div>'; wp_nonce_field('wp-cache'); ?> @@ -86,4 +115,15 @@ function wp_supercache_searchengine_admin() { } add_cacheaction( 'cache_admin_page', 'wp_supercache_searchengine_admin' ); +function wpsc_cache_no_adverts_for_friends_list( $list ) { + $list[ 'no_adverts_for_friends' ] = array( + 'key' => 'no_adverts_for_friends', + 'url' => 'https://odd.blog/no-adverts-for-friends/', + 'title' => __( 'No Adverts for Friends', 'wp-super-cache' ), + 'desc' => __( 'Provides support for No Adverts for Friends plugin.', 'wp-super-cache' ), + ); + return $list; +} +add_cacheaction( 'wpsc_filter_list', 'wpsc_cache_no_adverts_for_friends_list' ); + ?> diff --git a/wp-content/plugins/wp-super-cache/plugins/wptouch.php b/wp-content/plugins/wp-super-cache/plugins/wptouch.php index 744d7efbba744e4b4082b56c9bcd369a757de895..6e82634c08aa0dc48e1ec7910e455f9fb98eccf7 100644 --- a/wp-content/plugins/wp-super-cache/plugins/wptouch.php +++ b/wp-content/plugins/wp-super-cache/plugins/wptouch.php @@ -119,4 +119,16 @@ if ( isset( $cache_wptouch ) && $cache_wptouch == 1 ) { add_cacheaction( 'wp_super_cache_mobile_prefixes', 'wp_super_cache_wptouch_prefixes' ); add_cacheaction( 'wp_cache_check_mobile', 'wp_super_cache_wptouch_cookie_check' ); } + +function wpsc_wptouch_list( $list ) { + $list[ 'wptouch' ] = array( + 'key' => 'wptouch', + 'url' => 'http://wordpress.org/extend/plugins/wptouch/', + 'title' => __( 'WPTouch', 'wp-super-cache' ), + 'desc' => __( 'Provides support for WPTouch mobile theme and plugin.', 'wp-super-cache' ), + ); + return $list; +} +add_cacheaction( 'wpsc_filter_list', 'wpsc_wptouch_list' ); + ?> diff --git a/wp-content/plugins/wp-super-cache/readme.txt b/wp-content/plugins/wp-super-cache/readme.txt index 9b67a1d39f710e67ab7d2c76656ea82968e033e9..a5d120ded6d87101de3645ddf03a4636634f5599 100644 --- a/wp-content/plugins/wp-super-cache/readme.txt +++ b/wp-content/plugins/wp-super-cache/readme.txt @@ -2,7 +2,7 @@ Contributors: donncha, automattic, kraftbj Tags: performance,caching,wp-cache,wp-super-cache,cache Tested up to: 4.8.1 -Stable tag: 1.5.4 +Stable tag: 1.5.7 Requires at least: 3.0 A very fast caching engine for WordPress that produces static html files. @@ -53,10 +53,30 @@ Interested in translating WP Super Cache to your language? See the [translation The cache directory, usually wp-content/cache/ is only for temporary files. Do not ever put important files or symlinks to important files or directories in that directory. They will be deleted if the plugin has write access to them. == Upgrade Notice == -Sitemap, feed, REST API and other maintenance fixes. - +Fixes fatal error for users who toggled the "no adverts for friends" plugin. == Changelog == += 1.5.7 = +* Fix fatal error in plugins/searchengine.php (#398) + += 1.5.6 = +* REST API: Added /plugins endpoint to handle the plugins settings page. (#382) +* Minor changes to indentaion and spaces to tabs conversion (#371) (#395) +* Don't set $wp_super_cache_comments here as it's not saved. (#379) +* realpath() only works on directories. The cache_file wasn't set correctly. (#377) +* Fix problem deleting cache from admin bar because of realpath() (#381) +* Use trigger_error() instead of echoing to the screen if a config file isn't writeable. (#394) +* Added the "wpsc_enable_wp_config_edit" filter to disable editing the wp-config.php (#392) +* Fix some PHP notices when comments are edited/published/maintained. (#386) +* Minor changes to description on plugins page. (#393) + += 1.5.5 = +* Catch fatal errors so they're not cached, improve code that catches unknown page types. (#367) +* Fix caching on older WP installs, and if the plugin is inactive on a blog, but still caching, give feeds a short TTL to ensure they're fresh. (#366) +* When preloading don't delete sub-directories, or child pages, when caching pages. (#363) +* Avoid PHP warnings from the REST API for settings that are not yet defined. (#361) +* Added missing settings to the config file. (#360) + = 1.5.4 = * Fix messages related to creating advanced-cache.php (#355, #354) * Deleting the plugin doesn't need to delete the cache directory as it's already done on deactivation. (#323) diff --git a/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-plugins.php b/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-plugins.php new file mode 100644 index 0000000000000000000000000000000000000000..005d44e1a0bf6be313af5eda52b03dc6c6be6736 --- /dev/null +++ b/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-plugins.php @@ -0,0 +1,16 @@ +<?php + +class WP_Super_Cache_Rest_Get_Plugins extends WP_REST_Controller { + + /** + * GET a list of plugins through the /plugins/ endpoint + * + * @param WP_REST_Request $request Full data about the request. + * @return WP_Error|WP_REST_Response + */ + public function callback( $request ) { + + $list = wpsc_get_plugin_list(); + return rest_ensure_response( $list ); + } +} diff --git a/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-settings.php b/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-settings.php index b6f5b805b1bb8cd5e5906f21eb815ee3109b6564..33a79d2144bcacdc4aa4aa13e70b288aae447331 100644 --- a/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-settings.php +++ b/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-get-settings.php @@ -43,7 +43,11 @@ class WP_Super_Cache_Rest_Get_Settings extends WP_REST_Controller { } elseif ( isset( $map['global'] ) ) { $global_var = $map['global']; - $settings[ $name ] = $$global_var; + if ( false == isset( $$global_var ) ) { + $settings[ $name ] = false; + } else { + $settings[ $name ] = $$global_var; + } } } diff --git a/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-update-plugins.php b/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-update-plugins.php new file mode 100644 index 0000000000000000000000000000000000000000..d1132337077d7d7485d56c56b95ee9f108b83284 --- /dev/null +++ b/wp-content/plugins/wp-super-cache/rest/class.wp-super-cache-rest-update-plugins.php @@ -0,0 +1,22 @@ +<?php + +class WP_Super_Cache_Rest_Update_Plugins extends WP_REST_Controller { + + /** + * Toggle plugins on/off through the /plugins/ endpoint + * + * @param WP_REST_Request $request Full data about the request. + * @return WP_Error|WP_REST_Response + */ + public function callback( $request ) { + $parameters = $request->get_json_params(); + + global $valid_nonce; + $valid_nonce = true; + + wpsc_update_plugin_list( $parameters ); + $list = wpsc_get_plugin_list(); + + return rest_ensure_response( $list ); + } +} diff --git a/wp-content/plugins/wp-super-cache/rest/load.php b/wp-content/plugins/wp-super-cache/rest/load.php index 75e0816298639e5671ec4ea61fa567a9c6d4e496..32007432b2f4547679171e9e795d4ffb3dee3db0 100644 --- a/wp-content/plugins/wp-super-cache/rest/load.php +++ b/wp-content/plugins/wp-super-cache/rest/load.php @@ -8,6 +8,8 @@ require_once( dirname( __FILE__ ) . '/class.wp-super-cache-rest-get-status.php' require_once( dirname( __FILE__ ) . '/class.wp-super-cache-rest-test-cache.php' ); require_once( dirname( __FILE__ ) . '/class.wp-super-cache-rest-delete-cache.php' ); require_once( dirname( __FILE__ ) . '/class.wp-super-cache-rest-preload.php' ); +require_once( dirname( __FILE__ ) . '/class.wp-super-cache-rest-get-plugins.php' ); +require_once( dirname( __FILE__ ) . '/class.wp-super-cache-rest-update-plugins.php' ); class WP_Super_Cache_Router { @@ -32,6 +34,8 @@ class WP_Super_Cache_Router { $delete_cache = new WP_Super_Cache_Rest_Delete_Cache(); $preload_cache = new WP_Super_Cache_Rest_Preload(); $get_status = new WP_Super_Cache_Rest_Get_Status(); + $get_plugins = new WP_Super_Cache_Rest_Get_Plugins(); + $update_plugins = new WP_Super_Cache_Rest_Update_plugins(); register_rest_route( $namespace, '/settings', array( array( @@ -87,6 +91,21 @@ class WP_Super_Cache_Router { 'permission_callback' => __CLASS__ . '::create_item_permissions_check', ) ); + register_rest_route( $namespace, '/plugins', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'callback' => array( $get_plugins, 'callback' ), + 'permission_callback' => __CLASS__ . '::get_item_permissions_check', + 'args' => array(), + ), + array( + 'methods' => WP_REST_Server::CREATABLE, + 'callback' => array( $update_plugins, 'callback' ), + 'permission_callback' => __CLASS__ . '::update_item_permissions_check', + 'args' => array(), + ), + ) ); + } /** diff --git a/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php b/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php index fccb848d4f9d7da27f22127097cbe1b7af1e1a2d..c8722c6081c6b7d9b736d02de76340ad48dca215 100644 --- a/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php +++ b/wp-content/plugins/wp-super-cache/wp-cache-config-sample.php @@ -98,4 +98,7 @@ $wp_cache_preload_email_volume = 'none'; $wp_cache_mobile_prefixes = ''; $cached_direct_pages = array(); $wpsc_served_header = false; +$cache_gc_email_me = 0; +$wpsc_save_headers = 0; +$cache_schedule_interval = 'daily'; ?> diff --git a/wp-content/plugins/wp-super-cache/wp-cache-phase1.php b/wp-content/plugins/wp-super-cache/wp-cache-phase1.php index fcd73cb4583ad4acadc1ac7b3e98b957b58e210b..c7406f40c3e11e3afdfd0f3fce804e27f2dc5523 100644 --- a/wp-content/plugins/wp-super-cache/wp-cache-phase1.php +++ b/wp-content/plugins/wp-super-cache/wp-cache-phase1.php @@ -46,6 +46,8 @@ if( is_array( $plugins ) ) { } } +$wp_start_time = microtime(); + if ( $wp_cache_not_logged_in && wp_cache_get_cookies_values() ) { wp_cache_debug( 'Caching disabled for logged in users on settings page.' ); return true; @@ -109,8 +111,6 @@ function setup_blog_cache_dir() { @mkdir( $blog_cache_dir . 'meta' ); } -$wp_start_time = microtime(); - function get_wp_cache_key( $url = false ) { global $wp_cache_request_uri, $wp_cache_gzip_encoding, $WPSC_HTTP_HOST; if ( ! $url ) { @@ -129,8 +129,8 @@ function wp_super_cache_init() { $cache_filename = $file_prefix . $key . '.php'; $meta_file = $file_prefix . $key . '.php'; - $cache_file = wpsc_get_realpath( $blog_cache_dir . $cache_filename ); - $meta_pathname = wpsc_get_realpath( $blog_cache_dir . 'meta/' . $meta_file ); + $cache_file = wpsc_get_realpath( $blog_cache_dir ) . '/' . $cache_filename; + $meta_pathname = wpsc_get_realpath( $blog_cache_dir . 'meta/' ) . '/' . $meta_file; return compact( 'key', 'cache_filename', 'meta_file', 'cache_file', 'meta_pathname' ); } @@ -200,7 +200,8 @@ function wp_cache_serve_cache_file() { foreach( $rss_types as $rss_type ) { if ( strpos( $meta[ 'headers' ][ 'Content-Type' ], $rss_type ) ) { global $wpsc_last_post_update; - if ( isset( $wpsc_last_post_update ) && filemtime( $meta_pathname ) < $wpsc_last_post_update ) { + if ( isset( $wpsc_last_post_update ) && filemtime( $meta_pathname ) < $wpsc_last_post_update || + ( isset( $meta[ 'ttl' ] ) && ( time() - filemtime( $meta_pathname ) ) > $meta[ 'ttl' ] ) ) { wp_cache_debug( "wp_cache_serve_cache_file: feed out of date. deleting cache files: $meta_pathname, $cache_file" ); @unlink( $meta_pathname ); @unlink( $cache_file ); @@ -583,7 +584,7 @@ function wp_cache_debug( $message, $level = 1 ) { return false; // Log message: Date URI Message - $log_message = date('H:i:s') . " " . getmypid() . " {$_SERVER['REQUEST_URI']} {$message}\n\r"; + $log_message = date('H:i:s') . " " . getmypid() . " {$_SERVER['REQUEST_URI']} {$message}" . PHP_EOL; // path to the log file in the cache folder $log_file = $cache_path . str_replace('/', '', str_replace('..', '', $wp_cache_debug_log)); diff --git a/wp-content/plugins/wp-super-cache/wp-cache-phase2.php b/wp-content/plugins/wp-super-cache/wp-cache-phase2.php index e3fc54e4a39a0bafd43a0ad915ee45f3e910005a..53b2324f9718f194ff48b5c8398bcaea918b287f 100644 --- a/wp-content/plugins/wp-super-cache/wp-cache-phase2.php +++ b/wp-content/plugins/wp-super-cache/wp-cache-phase2.php @@ -32,8 +32,8 @@ function wp_cache_phase2() { add_action('edit_comment', 'wp_cache_get_postid_from_comment', 99); add_action('wp_set_comment_status', 'wp_cache_get_postid_from_comment', 99, 2); // No post_id is available - add_action('switch_theme', 'wp_cache_no_postid', 99); - add_action('edit_user_profile_update', 'wp_cache_no_postid', 99); + add_action('switch_theme', 'wp_cache_no_postid', 99); + add_action('edit_user_profile_update', 'wp_cache_no_postid', 99); add_action( 'wp_update_nav_menu', 'wp_cache_clear_cache_on_menu' ); add_action('wp_cache_gc','wp_cache_gc_cron'); add_action( 'clean_post_cache', 'wp_cache_post_edit' ); @@ -58,7 +58,7 @@ function wp_cache_phase2() { header('Vary: Accept-Encoding, Cookie'); else header('Vary: Cookie'); - ob_start( 'wp_cache_ob_callback' ); + ob_start( 'wp_cache_ob_callback' ); wp_cache_debug( 'Created output buffer', 4 ); // restore old supercache file temporarily @@ -289,7 +289,7 @@ function wp_cache_mutex_init() { return true; if( !is_bool( $use_flock ) ) { - if(function_exists('sem_get')) + if(function_exists('sem_get')) $use_flock = false; else $use_flock = true; @@ -370,12 +370,29 @@ function wp_super_cache_query_vars() { $wp_super_cache_query[ 'is_home' ] = 1; if ( is_author() ) $wp_super_cache_query[ 'is_author' ] = 1; - if ( is_feed() || get_query_var( 'sitemap' ) || get_query_var( 'xsl' ) || get_query_var( 'xml_sitemap' ) ) + if ( is_feed() || ( method_exists( $GLOBALS['wp_query'], 'get') && ( get_query_var( 'sitemap' ) || get_query_var( 'xsl' ) || get_query_var( 'xml_sitemap' ) ) ) ) $wp_super_cache_query[ 'is_feed' ] = 1; + if ( is_404() ) + $wp_super_cache_query = array( 'is_404' => 1 ); return $wp_super_cache_query; } +function wpsc_is_fatal_error() { + global $wp_super_cache_query; + + if ( null === ( $error = error_get_last() ) ) { + return false; + } + + if ( $error['type'] & ( E_ERROR | E_CORE_ERROR | E_PARSE | E_COMPILE_ERROR | E_USER_ERROR ) ) { + $wp_super_cache_query[ 'is_fatal_error' ] = 1; + return true; + } + + return false; +} + function wp_cache_ob_callback( $buffer ) { global $wp_cache_pages, $wp_query, $wp_super_cache_query, $cache_acceptable_files, $wp_cache_no_cache_for_get, $wp_cache_object_cache, $wp_cache_request_uri, $do_rebuild_list, $wpsc_file_mtimes, $wpsc_save_headers, $super_cache_enabled; $buffer = apply_filters( 'wp_cache_ob_callback_filter', $buffer ); @@ -385,13 +402,16 @@ function wp_cache_ob_callback( $buffer ) { // All the things that can stop a page being cached $cache_this_page = true; - if ( empty( $wp_super_cache_query ) ) { + if ( wpsc_is_fatal_error() ) { + $cache_this_page = false; + wp_cache_debug( 'wp_cache_ob_callback: PHP Fatal error occurred. Not caching incomplete page.' ); + } elseif ( empty( $wp_super_cache_query ) && !empty( $buffer ) && is_object( $wp_query ) ) { $wp_super_cache_query = wp_super_cache_query_vars(); } - if ( empty( $wp_super_cache_query ) ) { + if ( empty( $wp_super_cache_query ) && function_exists( 'apply_filter' ) && apply_filter( 'wpsc_only_cache_known_pages', 1 ) ) { $cache_this_page = false; - wp_cache_debug( 'wp_cache_ob_callback: wp_super_cache_query is empty. Not caching unknown page type.' ); + wp_cache_debug( 'wp_cache_ob_callback: wp_super_cache_query is empty. Not caching unknown page type. Return 0 to the wpsc_only_cache_known_pages filter to cache this page.' ); } elseif ( defined( 'DONOTCACHEPAGE' ) ) { wp_cache_debug( 'DONOTCACHEPAGE defined. Caching disabled.', 2 ); $cache_this_page = false; @@ -454,9 +474,6 @@ function wp_cache_ob_callback( $buffer ) { if ( isset( $wpsc_save_headers ) && $wpsc_save_headers ) $super_cache_enabled = false; // use standard caching to record headers - if ( !isset( $wp_query ) ) - wp_cache_debug( 'wp_cache_ob_callback: WARNING! $query not defined but the plugin has worked around that problem.', 4 ); - if ( $cache_this_page ) { wp_cache_debug( 'Output buffer callback', 4 ); @@ -500,9 +517,9 @@ function wp_cache_append_tag( &$buffer ) { $timestamp = gmdate('Y-m-d H:i:s', (time() + ( $wp_cache_gmt_offset * 3600))); if ( $cache_enabled || $super_cache_enabled ) { - $msg = "\n<!-- Cached page generated by WP-Super-Cache on $timestamp -->\n"; + $msg = "Cached page generated by WP-Super-Cache on $timestamp"; } else { - $msg = "\n<!-- Live page served on $timestamp -->\n"; + $msg = "Live page served on $timestamp"; } if ( strpos( $buffer, '<html' ) === false ) { @@ -510,7 +527,7 @@ function wp_cache_append_tag( &$buffer ) { return false; } - $buffer .= $msg; + $buffer .= "\n<!-- $msg -->\n"; } function wp_cache_add_to_buffer( &$buffer, $text ) { @@ -530,7 +547,7 @@ function wp_cache_add_to_buffer( &$buffer, $text ) { $buffer .= "\n<!-- $text -->"; } -/* +/* * If dynamic caching is enabled then run buffer through wpsc_cachedata filter before returning it. * or we'll return template tags to visitors. */ @@ -560,7 +577,7 @@ function wp_cache_get_ob(&$buffer) { $new_cache = true; $wp_cache_meta = array(); - /* Mode paranoic, check for closing tags + /* Mode paranoic, check for closing tags * we avoid caching incomplete files */ if ( $buffer == '' ) { $new_cache = false; @@ -589,7 +606,7 @@ function wp_cache_get_ob(&$buffer) { wp_cache_debug( "robots.txt detected. Not caching.", 2 ); } } - + if( !$new_cache ) return wp_cache_maybe_dynamic( $buffer ); @@ -771,13 +788,13 @@ function wp_cache_get_ob(&$buffer) { wp_cache_debug( "Writing gzipped buffer to wp-cache cache file.", 5 ); fputs($fr, '<?php die(); ?>' . $gzdata); } elseif ( $cache_enabled && $wp_cache_object_cache ) { - wp_cache_set( $oc_key . ".gz", $gzdata, 'supercache', $cache_max_time ); + wp_cache_set( $oc_key . ".gz", $gzdata, 'supercache', $cache_max_time ); $added_cache = 1; } } else { // no compression $wp_cache_meta[ 'headers' ][ 'Vary' ] = 'Vary: Cookie'; if ( $cache_enabled && $wp_cache_object_cache ) { - wp_cache_set( $oc_key, $buffer, 'supercache', $cache_max_time ); + wp_cache_set( $oc_key, $buffer, 'supercache', $cache_max_time ); $added_cache = 1; } elseif ( $fr ) { wp_cache_debug( "Writing non-gzipped buffer to wp-cache cache file." ); @@ -788,7 +805,7 @@ function wp_cache_get_ob(&$buffer) { wp_cache_debug( "Writing non-gzipped buffer to supercache file." ); wp_cache_add_to_buffer( $buffer, "super cache" ); fputs($fr2, $buffer ); - } + } if ( isset( $gzdata ) && $gz ) { wp_cache_debug( "Writing gzipped buffer to supercache file." ); fwrite($gz, $gzdata ); @@ -874,7 +891,7 @@ function wp_cache_phase2_clean_cache($file_prefix) { if( !wp_cache_writers_entry() ) return false; wp_cache_debug( "wp_cache_phase2_clean_cache: Cleaning cache in $blog_cache_dir" ); - if ( $handle = @opendir( $blog_cache_dir ) ) { + if ( $handle = @opendir( $blog_cache_dir ) ) { while ( false !== ($file = @readdir($handle))) { if ( strpos( $file, $file_prefix ) !== false ) { if ( strpos( $file, '.html' ) ) { @@ -940,7 +957,7 @@ function prune_super_cache( $directory, $force = false, $rename = false ) { continue; $entry = $directory . $entry; prune_super_cache( $entry, $force, $rename ); - // If entry is a directory, AND it's not a protected one, AND we're either forcing the delete, OR the file is out of date, + // If entry is a directory, AND it's not a protected one, AND we're either forcing the delete, OR the file is out of date, if( is_dir( $entry ) && !in_array( $entry, $protected_directories ) && ( $force || @filemtime( $entry ) + $cache_max_time <= $now ) ) { // if the directory isn't empty can't delete it if( $handle = @opendir( $entry ) ) { @@ -1064,9 +1081,9 @@ function wp_cache_phase2_clean_expired( $file_prefix, $force = false ) { $now = time(); wp_cache_debug( "Cleaning expired cache files in $blog_cache_dir", 2 ); $deleted = 0; - if ( ( $handle = @opendir( $blog_cache_dir ) ) ) { + if ( ( $handle = @opendir( $blog_cache_dir ) ) ) { while ( false !== ($file = readdir($handle))) { - if ( preg_match("/^$file_prefix/", $file) && + if ( preg_match("/^$file_prefix/", $file) && (@filemtime( $blog_cache_dir . $file) + $cache_max_time) <= $now ) { @unlink( $blog_cache_dir . $file ); @unlink( $blog_cache_dir . 'meta/' . str_replace( '.html', '.meta', $file ) ); @@ -1098,6 +1115,17 @@ function wp_cache_shutdown_callback() { global $wp_cache_request_uri, $wp_cache_key, $wp_cache_object_cache, $cache_enabled, $wp_cache_blog_charset, $wp_cache_not_logged_in; global $WPSC_HTTP_HOST, $wp_super_cache_query; + if ( ! function_exists( 'wpsc_init' ) ) { + /* + * If a server has multiple networks the plugin may not have been activated + * on all of them. Give feeds on those blogs a short TTL. + * ref: https://wordpress.org/support/topic/fatal-error-while-updating-post-or-publishing-new-one/ + */ + $wpsc_feed_ttl = 1; + wp_cache_debug( "wp_cache_shutdown_callback: Plugin not loaded. Setting feed ttl to 60 seconds." ); + } + + if ( false == $new_cache ) { wp_cache_debug( "wp_cache_shutdown_callback: No cache file created. Returning." ); return false; @@ -1150,10 +1178,18 @@ function wp_cache_shutdown_callback() { $value = "application/rss+xml"; } } + if ( isset( $wpsc_feed_ttl ) && $wpsc_feed_ttl == 1 ) { + $wp_cache_meta[ 'ttl' ] = 60; + } + wp_cache_debug( "wp_cache_shutdown_callback: feed is type: $type - $value" ); } elseif ( get_query_var( 'sitemap' ) || get_query_var( 'xsl' ) || get_query_var( 'xml_sitemap' ) ) { wp_cache_debug( "wp_cache_shutdown_callback: sitemap detected: text/xml" ); $value = "text/xml"; + if ( isset( $wpsc_feed_ttl ) && $wpsc_feed_ttl == 1 ) { + $wp_cache_meta[ 'ttl' ] = 60; + } + } else { // not a feed $value = get_option( 'html_type' ); if( $value == '' ) @@ -1219,6 +1255,20 @@ function wp_cache_no_postid($id) { function wp_cache_get_postid_from_comment( $comment_id, $status = 'NA' ) { global $super_cache_enabled, $wp_cache_request_uri; + + if ( defined( 'DONOTDELETECACHE' ) ) { + return; + } + + // Check is it "Empty Spam" or "Empty Trash" + if ( isset( $GLOBALS[ 'pagenow' ] ) && $GLOBALS[ 'pagenow' ] === 'edit-comments.php' && + ( isset( $_REQUEST['delete_all'] ) || isset( $_REQUEST['delete_all2'] ) ) + ) { + wp_cache_debug( "Delete all SPAM or Trash comments. Don't delete any cache files.", 4 ); + define( 'DONOTDELETECACHE', 1 ); + return; + } + $comment = get_comment($comment_id, ARRAY_A); if ( $status != 'NA' ) { $comment[ 'old_comment_approved' ] = $comment[ 'comment_approved' ]; @@ -1231,7 +1281,7 @@ function wp_cache_get_postid_from_comment( $comment_id, $status = 'NA' ) { define( 'DONOTDELETECACHE', 1 ); return wp_cache_post_id(); } - $postid = $comment['comment_post_ID']; + $postid = isset( $comment[ 'comment_post_ID' ] ) ? (int) $comment[ 'comment_post_ID' ] : 0; // Do nothing if comment is not moderated // http://ocaoimh.ie/2006/12/05/caching-wordpress-with-wp-cache-in-a-spam-filled-world if ( !preg_match('/wp-admin\//', $wp_cache_request_uri) ) { @@ -1256,12 +1306,12 @@ function wp_cache_get_postid_from_comment( $comment_id, $status = 'NA' ) { } } // We must check it up again due to WP bugs calling two different actions - // for delete, for example both wp_set_comment_status and delete_comment + // for delete, for example both wp_set_comment_status and delete_comment // are called when deleting a comment if ($postid > 0) { wp_cache_debug( "Post $postid changed. Update cache.", 4 ); return wp_cache_post_change( $postid ); - } elseif ( $_GET[ 'delete_all' ] != 'Empty Trash' && $_GET[ 'delete_all2' ] != 'Empty Spam' ) { + } else { wp_cache_debug( "Unknown post changed. Update cache.", 4 ); return wp_cache_post_change( wp_cache_post_id() ); } @@ -1343,7 +1393,7 @@ function wp_cache_post_edit($post_id) { if ( is_object( $post ) == false ) return $post_id; - // Some users are inexplicibly seeing this error on scheduled posts. + // Some users are inexplicibly seeing this error on scheduled posts. // define this constant to disable the post status check. if ( false == defined( 'WPSCFORCEUPDATE' ) && !in_array($post->post_status, array( 'publish', 'private' ) ) ) { wp_cache_debug( "wp_cache_post_edit: draft post, not deleting any cache files. status: " . $post->post_status, 4 ); @@ -1368,7 +1418,7 @@ function wp_cache_post_edit($post_id) { function wp_cache_post_id_gc( $post_id, $all = 'all' ) { global $wp_cache_object_cache; - + if ( $wp_cache_object_cache ) reset_oc_version(); @@ -1389,7 +1439,7 @@ function wp_cache_post_id_gc( $post_id, $all = 'all' ) { do_action( 'gc_cache', 'prune', 'page/' ); } else { wp_cache_debug( "wp_cache_post_id_gc clearing cached index files in $dir.", 4 ); - prune_super_cache( $dir, true, true ); + prune_super_cache( $dir, true, true ); do_action( 'gc_cache', 'prune', $permalink ); } } @@ -1403,7 +1453,7 @@ function wp_cache_post_change( $post_id ) { return $post_id; } $post = get_post( $post_id ); - // Some users are inexplicibly seeing this error on scheduled posts. + // Some users are inexplicibly seeing this error on scheduled posts. // define this constant to disable the post status check. if ( false == defined( 'WPSCFORCEUPDATE' ) && is_object( $post ) && !in_array($post->post_status, array( 'publish', 'private' ) ) ) { wp_cache_debug( "wp_cache_post_change: draft post, not deleting any cache files.", 4 ); @@ -1458,7 +1508,7 @@ function wp_cache_post_change( $post_id ) { wp_cache_debug( "wp_cache_post_change: checking {$blog_cache_dir}meta/", 4 ); $supercache_files_deleted = false; - if ( $handle = @opendir( $blog_cache_dir ) ) { + if ( $handle = @opendir( $blog_cache_dir ) ) { while ( false !== ($file = readdir($handle))) { if ( strpos( $file, $file_prefix ) !== false ) { if ( strpos( $file, '.html' ) ) { @@ -1518,7 +1568,7 @@ function wp_cache_post_id() { // We try hard all options. More frequent first. if ($post_ID > 0 ) return $post_ID; if ($comment_post_ID > 0 ) return $comment_post_ID; - if (is_single() || is_page()) return $posts[0]->ID; + if (is_singular() && !empty($posts)) return $posts[0]->ID; if (isset( $_GET[ 'p' ] ) && $_GET['p'] > 0) return $_GET['p']; if (isset( $_POST[ 'p' ] ) && $_POST['p'] > 0) return $_POST['p']; return 0; @@ -1560,7 +1610,7 @@ function wp_cache_gc_cron() { return false; } - update_option( 'wpsupercache_gc_time', time() ); + update_option( 'wpsupercache_gc_time', time() ); wp_cache_debug( "wp_cache_gc_cron: Set GC Flag. ($gc_flag)", 5 ); $fp = @fopen( $gc_flag, 'w' ); @fclose( $fp ); @@ -1642,9 +1692,4 @@ function wp_cache_gc_watcher() { } } -function wpsc_timestamp_cache_update( $type, $permalink ) { - wp_cache_setting( 'wpsc_last_post_update', time() ); -} -add_action( 'gc_cache', 'wpsc_timestamp_cache_update', 10, 2 ); - ?> diff --git a/wp-content/plugins/wp-super-cache/wp-cache.php b/wp-content/plugins/wp-super-cache/wp-cache.php index 9f7ac154e67b9844776f150ebcf0bc561e9dba9d..048e55124a347086ddc3f40c62b69f3bc962504b 100644 --- a/wp-content/plugins/wp-super-cache/wp-cache.php +++ b/wp-content/plugins/wp-super-cache/wp-cache.php @@ -3,7 +3,7 @@ Plugin Name: WP Super Cache Plugin URI: https://wordpress.org/plugins/wp-super-cache/ Description: Very fast caching plugin for WordPress. -Version: 1.5.4 +Version: 1.5.7 Author: Automattic Author URI: https://automattic.com/ License: GPL2+ @@ -455,17 +455,20 @@ function admin_bar_delete_page() { return false; if ( isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'delcachepage' && ( isset( $_GET[ '_wpnonce' ] ) ? wp_verify_nonce( $_REQUEST[ '_wpnonce' ], 'delete-cache' ) : false ) ) { $path = realpath( trailingslashit( get_supercache_dir() . str_replace( '..', '', preg_replace( '/:.*$/', '', $_GET[ 'path' ] ) ) ) ) . '/'; - if ( $path == '/' ) + if ( $path == '/' ) { return false; // Directory not found. Probably not cached. - if ( false == wp_cache_confirm_delete( $path ) || substr( $path, 0, strlen( get_supercache_dir() ) ) != get_supercache_dir() ) + } + $supercachepath = realpath(get_supercache_dir()); + if ( false == wp_cache_confirm_delete( $path ) || substr( $path, 0, strlen( $supercachepath ) ) != $supercachepath ) { die( "Could not delete directory" ); + } wpsc_delete_files( $path ); wp_redirect( preg_replace( '/[ <>\'\"\r\n\t\(\)]/', '', $_GET[ 'path' ] ) ); die(); } } if ( isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'delcachepage' ) - add_action( 'admin_init', 'admin_bar_delete_page' ); + add_action( 'admin_init', 'admin_bar_delete_page' ); function wp_cache_manager_updates() { global $wp_cache_mobile_enabled, $wp_cache_mfunc_enabled, $wp_supercache_cache_list, $wp_cache_config_file, $wp_cache_hello_world, $wp_cache_clear_on_post_edit, $cache_rebuild_files, $wp_cache_mutex_disabled, $wp_cache_not_logged_in, $wp_cache_make_known_anon, $cache_path, $wp_cache_object_cache, $_wp_using_ext_object_cache, $wp_cache_refresh_single_only, $cache_compression, $wp_cache_mod_rewrite, $wp_supercache_304, $wp_super_cache_late_init, $wp_cache_front_page_checks, $cache_page_secret, $wp_cache_disable_utf8, $wp_cache_no_cache_for_get; @@ -768,18 +771,18 @@ function wp_cache_manager() { <script type='text/javascript'> <!-- function toggleLayer( whichLayer ) { - var elem, vis; - if( document.getElementById ) // this is the way the standards work - elem = document.getElementById( whichLayer ); - else if( document.all ) // this is the way old msie versions work - elem = document.all[whichLayer]; - else if( document.layers ) // this is the way nn4 works - elem = document.layers[whichLayer]; - vis = elem.style; - // if the style.display value is blank we try to figure it out here - if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) - vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none'; - vis.display = (vis.display==''||vis.display=='block')?'none':'block'; + var elem, vis; + if( document.getElementById ) // this is the way the standards work + elem = document.getElementById( whichLayer ); + else if( document.all ) // this is the way old msie versions work + elem = document.all[whichLayer]; + else if( document.layers ) // this is the way nn4 works + elem = document.layers[whichLayer]; + vis = elem.style; + // if the style.display value is blank we try to figure it out here + if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined) + vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none'; + vis.display = (vis.display==''||vis.display=='block')?'none':'block'; } // --> //Clicking header opens fieldset options @@ -1229,12 +1232,14 @@ table.wpsc-settings-table { echo '<input type="hidden" name="action" value="test" />'; if ( isset( $_SERVER['HTTPS' ] ) && 'on' == strtolower( $_SERVER['HTTPS' ] ) ) echo "<input type='checkbox' name='httponly' checked='checked' value='1' /> " . __( 'Send non-secure (non https) request for homepage', 'wp-super-cache' ); - if ( isset( $wp_super_cache_comments ) && $wp_super_cache_comments == 0 ) { - echo "<p>" . __( '<strong>Warning!</strong> Cache comments are currently disabled. Please go to the Debug page and enable Cache Status Messages there. You should clear the cache before testing.', 'wp-super-cache' ) . "</p>"; - echo '<div class="submit"><input disabled style="color: #aaa" class="button-secondary" type="submit" name="test" value="' . __( 'Test Cache', 'wp-super-cache' ) . '" /></div>'; - } else { - echo '<div class="submit"><input class="button-secondary" type="submit" name="test" value="' . __( 'Test Cache', 'wp-super-cache' ) . '" /></div>'; - } + + if ( isset( $wp_super_cache_comments ) && $wp_super_cache_comments == 0 ) { + echo "<p>" . __( '<strong>Warning!</strong> Cache comments are currently disabled. Please go to the Debug page and enable Cache Status Messages there. You should clear the cache before testing.', 'wp-super-cache' ) . "</p>"; + echo '<div class="submit"><input disabled style="color: #aaa" class="button-secondary" type="submit" name="test" value="' . __( 'Test Cache', 'wp-super-cache' ) . '" /></div>'; + } else { + echo '<div class="submit"><input class="button-secondary" type="submit" name="test" value="' . __( 'Test Cache', 'wp-super-cache' ) . '" /></div>'; + } + wp_nonce_field('wp-cache'); echo '</form>'; } @@ -1318,9 +1323,9 @@ table.wpsc-settings-table { } function wpsc_plugins_tab() { - echo '<p>' . __( 'Cache plugins are PHP scripts that live in a plugins folder inside the wp-super-cache folder. They are loaded when Supercache loads, much sooner than regular WordPress plugins.', 'wp-super-cache' ) . '</p>'; - echo '<p>' . __( 'This is strictly an advanced feature only and knowledge of both PHP and WordPress actions is required to create them.', 'wp-super-cache' ) . '</p>'; - echo '<p>' . __( '<strong>Warning</strong>! Due to the way WordPress upgrades plugins, the plugins you upload to wp-super-cache/plugins/ will be deleted when you upgrade WP Super Cache. You can avoid this by loading the plugins from elsewhere. Set <strong>$wp_cache_plugins_dir</strong> to the new location in wp-config.php and WP Super Cache will look there instead.<br />More info available in the <a href="http://ocaoimh.ie/wp-super-cache-developers/">developer documentation</a>.', 'wp-super-cache' ) . '</p>'; + echo '<p>' . __( 'Cache plugins are PHP scripts you\'ll find in a dedicated folder inside the WP Super Cache folder (wp-super-cache/plugins/). They load at the same time as WP Super Cache, and before regular WordPress plugins.', 'wp-super-cache' ) . '</p>'; + echo '<p>' . __( 'Keep in mind that cache plugins are for advanced users only. To create and manage them, you\'ll need extensive knowledge of both PHP and WordPress actions.', 'wp-super-cache' ) . '</p>'; + echo '<p>' . sprintf( __( '<strong>Warning</strong>! Due to the way WordPress upgrades plugins, the ones you upload to the WP Super Cache folder (wp-super-cache/plugins/) will be deleted when you upgrade WP Super Cache. To avoid this loss, load your cache plugins from a different location. When you set <strong>$wp_cache_plugins_dir</strong> to the new location in wp-config.php, WP Super Cache will look there instead. <br />You can find additional details in the <a href="%s">developer documentation</a>.', 'wp-super-cache' ), 'https://odd.blog/wp-super-cache-developers/' ) . '</p>'; ob_start(); if( defined( 'WP_CACHE' ) ) { if( function_exists( 'do_cacheaction' ) ) { @@ -2006,7 +2011,7 @@ function wpsc_update_debug_settings() { if ( ! isset( $wp_cache_debug_log ) || $wp_cache_debug_log == '' ) { extract( wpsc_create_debug_log() ); // $wp_cache_debug_log, $wp_cache_debug_username } elseif ( ! file_exists( $cache_path . $wp_cache_debug_log ) ) { // make sure debug log exists before toggling debugging - extract( wpsc_create_debug_log( $wp_cache_debug_log, $wp_cache_debug_username ) ); // $wp_cache_debug_log, $wp_cache_debug_username + extract( wpsc_create_debug_log( $wp_cache_debug_log, $wp_cache_debug_username ) ); // $wp_cache_debug_log, $wp_cache_debug_username } $wp_super_cache_debug = (int) $_POST[ 'wp_super_cache_debug' ]; wp_cache_setting( 'wp_super_cache_debug', $wp_super_cache_debug ); @@ -2173,7 +2178,7 @@ function wp_cache_is_enabled() { } $lines = file($wp_cache_config_file); foreach($lines as $line) { - if (preg_match('/^ *\$cache_enabled *= *true *;/', $line)) + if (preg_match('/^ *\$cache_enabled *= *true *;/', $line)) return true; } return false; @@ -2199,14 +2204,14 @@ function wp_cache_replace_line($old, $new, $my_file) { return false; } if (!is_writeable_ACLSafe($my_file)) { - echo "Error: file $my_file is not writable.\n"; + trigger_error( "Error: file $my_file is not writable." ); return false; } $found = false; $lines = file($my_file); foreach( (array)$lines as $line ) { - if ( preg_match("/$old/", $line)) { + if ( preg_match("/$old/", $line)) { $found = true; break; } @@ -2341,7 +2346,7 @@ function wp_cache_logout_all() { } } if ( isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] == 'wpsclogout' ) - add_action( 'admin_init', 'wp_cache_logout_all' ); + add_action( 'admin_init', 'wp_cache_logout_all' ); function wp_cache_add_index_protection() { global $cache_path, $blog_cache_dir; @@ -2488,6 +2493,12 @@ function wp_cache_create_advanced_cache() { } $line = 'define( \'WPCACHEHOME\', \'' . dirname( __FILE__ ) . '/\' );'; + + if ( ! apply_filters( 'wpsc_enable_wp_config_edit', true ) ) { + echo '<div class="notice notice-error"><h3>' . __( 'Warning', 'wp-super-cache' ) . "! " . sprintf( __( 'Not allowed to edit %s per configuration.', 'wp-super-cache' ), $global_config_file ) . "</h3></div>"; + return false; + } + if ( !is_writeable_ACLSafe($global_config_file) || !wp_cache_replace_line('define *\( *\'WPCACHEHOME\'', $line, $global_config_file ) ) { echo '<div class="notice notice-error"><h3>' . __( 'Warning', 'wp-super-cache' ) . "! <em>" . sprintf( __( 'Could not update %s!</em> WPCACHEHOME must be set in config file.', 'wp-super-cache' ), $global_config_file ) . "</h3></div>"; return false; @@ -2508,7 +2519,7 @@ function wp_cache_create_advanced_cache() { function wp_cache_check_link() { global $wp_cache_link, $wp_cache_file; - $ret = true; + $ret = true; if( file_exists($wp_cache_link) ) { $file = file_get_contents( $wp_cache_link ); if( strpos( $file, "WP SUPER CACHE 0.8.9.1" ) || strpos( $file, "WP SUPER CACHE 1.2" ) ) { @@ -3094,13 +3105,13 @@ add_filter( 'favorite_actions', 'wp_cache_favorite_action' ); function wp_cache_plugin_notice( $plugin ) { global $cache_enabled; - if( $plugin == 'wp-super-cache/wp-cache.php' && !$cache_enabled && function_exists( "admin_url" ) ) + if( $plugin == 'wp-super-cache/wp-cache.php' && !$cache_enabled && function_exists( 'admin_url' ) ) echo '<td colspan="5" class="plugin-update">' . sprintf( __( 'WP Super Cache must be configured. Go to <a href="%s">the admin page</a> to enable and configure the plugin.', 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ) ) . '</td>'; } add_action( 'after_plugin_row', 'wp_cache_plugin_notice' ); function wp_cache_plugin_actions( $links, $file ) { - if( $file == 'wp-super-cache/wp-cache.php' && function_exists( "admin_url" ) ) { + if( $file == 'wp-super-cache/wp-cache.php' && function_exists( 'admin_url' ) ) { $settings_link = '<a href="' . admin_url( 'options-general.php?page=wpsupercache' ) . '">' . __( 'Settings', 'wp-super-cache' ) . '</a>'; array_unshift( $links, $settings_link ); // before other links } @@ -3110,7 +3121,7 @@ add_filter( 'plugin_action_links', 'wp_cache_plugin_actions', 10, 2 ); function wp_cache_admin_notice() { global $cache_enabled, $wp_cache_phase1_loaded; - if( substr( $_SERVER["PHP_SELF"], -11 ) == 'plugins.php' && !$cache_enabled && function_exists( "admin_url" ) ) + if( substr( $_SERVER['PHP_SELF'], -11 ) == 'plugins.php' && !$cache_enabled && function_exists( 'admin_url' ) ) echo '<div class="notice notice-info"><p><strong>' . sprintf( __('WP Super Cache is disabled. Please go to the <a href="%s">plugin admin page</a> to enable caching.', 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ) ) . '</strong></p></div>'; if ( defined( 'WP_CACHE' ) && WP_CACHE == true && ( defined( 'ADVANCEDCACHEPROBLEM' ) || ( $cache_enabled && false == isset( $wp_cache_phase1_loaded ) ) ) ) { @@ -3133,22 +3144,22 @@ function wp_cache_check_site() { $front_page = wp_remote_get( site_url(), array('timeout' => 60, 'blocking' => true ) ); if( is_array( $front_page ) ) { // Check for gzipped front page - if ( $front_page[ 'headers' ][ 'content-type' ] == 'application/x-gzip' ) { - if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { - wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Please clear cache!', 'wp-super-cache' ), home_url() ), sprintf( __( "Please visit %s to clear the cache as the front page of your site is now downloading!", 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ) ) ); - } else { - wp_cache_clear_cache( $wpdb->blogid ); - wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Cache Cleared!', 'wp-super-cache' ), home_url() ), sprintf( __( "The cache on your blog has been cleared because the front page of your site is now downloading. Please visit %s to verify the cache has been cleared.", 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ) ) ); - } - } + if ( $front_page[ 'headers' ][ 'content-type' ] == 'application/x-gzip' ) { + if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { + wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Please clear cache!', 'wp-super-cache' ), home_url() ), sprintf( __( "Please visit %s to clear the cache as the front page of your site is now downloading!", 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ) ) ); + } else { + wp_cache_clear_cache( $wpdb->blogid ); + wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is gzipped! Cache Cleared!', 'wp-super-cache' ), home_url() ), sprintf( __( "The cache on your blog has been cleared because the front page of your site is now downloading. Please visit %s to verify the cache has been cleared.", 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ) ) ); + } + } // Check for broken front page if ( isset( $wp_super_cache_front_page_text ) && $wp_super_cache_front_page_text != '' && false === strpos( $front_page[ 'body' ], $wp_super_cache_front_page_text ) ) { if ( !isset( $wp_super_cache_front_page_clear ) || ( isset( $wp_super_cache_front_page_clear ) && $wp_super_cache_front_page_clear == 0 ) ) { - wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Please clear cache!', 'wp-super-cache' ), home_url() ), sprintf( __( 'Please visit %1$s to clear the cache as the front page of your site is not correct and missing the text, "%2$s"!', 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ), $wp_super_cache_front_page_text ) ); - } else { - wp_cache_clear_cache( $wpdb->blogid ); - wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Cache Cleared!', 'wp-super-cache' ), home_url() ), sprintf( __( 'The cache on your blog has been cleared because the front page of your site is missing the text "%2$s". Please visit %1$s to verify the cache has been cleared.', 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ), $wp_super_cache_front_page_text ) ); + wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Please clear cache!', 'wp-super-cache' ), home_url() ), sprintf( __( 'Please visit %1$s to clear the cache as the front page of your site is not correct and missing the text, "%2$s"!', 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ), $wp_super_cache_front_page_text ) ); + } else { + wp_cache_clear_cache( $wpdb->blogid ); + wp_mail( get_option( 'admin_email' ), sprintf( __( '[%s] Front page is not correct! Cache Cleared!', 'wp-super-cache' ), home_url() ), sprintf( __( 'The cache on your blog has been cleared because the front page of your site is missing the text "%2$s". Please visit %1$s to verify the cache has been cleared.', 'wp-super-cache' ), admin_url( 'options-general.php?page=wpsupercache' ), $wp_super_cache_front_page_text ) ); } } } @@ -3346,7 +3357,11 @@ function clear_post_supercache( $post_id ) { include_once( 'wp-cache-phase2.php' ); wp_cache_debug( "clear_post_supercache: deleting files in $dir", 2 ); - prune_super_cache( $dir, true ); + if ( get_post_type( $post_id ) != 'page' ) { // don't delete child pages if they exist + prune_super_cache( $dir, true ); + } else { + wpsc_delete_files( $dir ); + } } function wp_cron_preload_cache() { @@ -3586,13 +3601,18 @@ function wp_cache_disable_plugin( $delete_config_file = true ) { } else { $global_config_file = dirname(ABSPATH) . '/wp-config.php'; } - $line = 'define(\'WP_CACHE\', true);'; - if ( strpos( file_get_contents( $global_config_file ), $line ) && ( !is_writeable_ACLSafe( $global_config_file ) || !wp_cache_replace_line( 'define *\( *\'WP_CACHE\'', '', $global_config_file ) ) ) { - wp_die( "Could not remove WP_CACHE define from $global_config_file. Please edit that file and remove the line containing the text 'WP_CACHE'. Then refresh this page." ); - } - $line = 'define( \'WPCACHEHOME\','; - if ( strpos( file_get_contents( $global_config_file ), $line ) && ( !is_writeable_ACLSafe( $global_config_file ) || !wp_cache_replace_line( 'define *\( *\'WPCACHEHOME\'', '', $global_config_file ) ) ) { - wp_die( "Could not remove WPCACHEHOME define from $global_config_file. Please edit that file and remove the line containing the text 'WPCACHEHOME'. Then refresh this page." ); + + if ( apply_filters( 'wpsc_enable_wp_config_edit', true ) ) { + $line = 'define(\'WP_CACHE\', true);'; + if ( strpos( file_get_contents( $global_config_file ), $line ) && ( !is_writeable_ACLSafe( $global_config_file ) || !wp_cache_replace_line( 'define *\( *\'WP_CACHE\'', '', $global_config_file ) ) ) { + wp_die( "Could not remove WP_CACHE define from $global_config_file. Please edit that file and remove the line containing the text 'WP_CACHE'. Then refresh this page." ); + } + $line = 'define( \'WPCACHEHOME\','; + if ( strpos( file_get_contents( $global_config_file ), $line ) && ( !is_writeable_ACLSafe( $global_config_file ) || !wp_cache_replace_line( 'define *\( *\'WPCACHEHOME\'', '', $global_config_file ) ) ) { + wp_die( "Could not remove WPCACHEHOME define from $global_config_file. Please edit that file and remove the line containing the text 'WPCACHEHOME'. Then refresh this page." ); + } + } elseif ( function_exists( 'wp_cache_debug' ) ) { + wp_cache_debug( 'wp_cache_disable_plugin: not allowed to edit wp-config.php per configuration.' ); } uninstall_supercache( WP_CONTENT_DIR . '/cache' ); @@ -3730,8 +3750,8 @@ function wpsc_preload_settings( $min_refresh_interval = 'NA' ) { } elseif ( isset( $_POST[ 'preload_now' ] ) ) { wpsc_enable_preload(); return $return; - } - + } + if ( $min_refresh_interval == 'NA' ) { $count = wpsc_post_count(); if ( $count > 1000 ) { @@ -3798,7 +3818,7 @@ function wpsc_preload_settings( $min_refresh_interval = 'NA' ) { } function wpsc_is_preloading() { - if ( wp_next_scheduled( 'wp_cache_preload_hook' ) || wp_next_scheduled( 'wp_cache_full_preload_hook' ) ) { + if ( wp_next_scheduled( 'wp_cache_preload_hook' ) || wp_next_scheduled( 'wp_cache_full_preload_hook' ) ) { return true; } else { return false; @@ -3958,3 +3978,36 @@ function update_mod_rewrite_rules( $add_rules = true ) { return true; } + +function wpsc_timestamp_cache_update( $type, $permalink ) { + wp_cache_setting( 'wpsc_last_post_update', time() ); +} +add_action( 'gc_cache', 'wpsc_timestamp_cache_update', 10, 2 ); + +function wpsc_get_plugin_list() { + $list = do_cacheaction( 'wpsc_filter_list' ); + foreach( $list as $t => $details ) { + $key = "cache_" . $details[ 'key' ]; + global $$key; + if ( isset( $$key ) && $$key == 1 ) { + $list[ $t ][ 'enabled' ] = true; + } else { + $list[ $t ][ 'enabled' ] = false; + } + + $list[ $t ][ 'desc' ] = strip_tags( $list[ $t ][ 'desc' ] ); + $list[ $t ][ 'title' ] = strip_tags( $list[ $t ][ 'title' ] ); + } + return $list; +} + +function wpsc_update_plugin_list( $update ) { + $list = do_cacheaction( 'wpsc_filter_list' ); + foreach( $update as $key => $enabled ) { + $plugin_toggle = "cache_{$key}"; + global $$plugin_toggle; + if ( isset( $$plugin_toggle ) || isset( $list[ $key ] ) ) { + wp_cache_setting( $plugin_toggle, (int)$enabled ); + } + } +} diff --git a/wp-content/themes/vanilla/assets/scripts/theme.js b/wp-content/themes/vanilla/assets/scripts/theme.js index 5bc1e26ad263ae4bc6b1a19515bf5bf0aac94e78..fd86f407576ebfc307520dd7b3f499d4eeda697e 100644 --- a/wp-content/themes/vanilla/assets/scripts/theme.js +++ b/wp-content/themes/vanilla/assets/scripts/theme.js @@ -6,14 +6,11 @@ import ContentSpacer from './AppLayout/ContentSpacer'; import './skip-link-focus-fix'; $(function() { - $("[data-drawer]").each(function(){ new Drawer($(this)); }); - }); - $(function() { let $toplevelMenuItems = $('.primary-menu .menu-item-has-children, .primary-menu .page_item_has_children'); @@ -53,10 +50,9 @@ $(function() { $(function() { - let $appLayout = $(".app-layout"); $(window).on( 'load resize', () => { - $appLayout.removeClass("app-layout--disable"); + $appLayout.find(".app-layout__header").removeClass("app-layout__header--static"); } ); new HeaderClassController( $appLayout, "app-layout__header--fixed", 46 ); new HeaderEscaper( $appLayout, "app-layout__header--escape", 64 ); diff --git a/wp-content/themes/vanilla/assets/styles/Base/heading.styl b/wp-content/themes/vanilla/assets/styles/Base/heading.styl index 8391b8fe23c0add693a770350694e2b7e2167d82..1e7f8cef720ca8b5d0167d73c9a9640e155d1153 100644 --- a/wp-content/themes/vanilla/assets/styles/Base/heading.styl +++ b/wp-content/themes/vanilla/assets/styles/Base/heading.styl @@ -22,16 +22,30 @@ h2 { box-sizing: border-box; font-size: 1.7em; margin: 1em 0; - border-top: 1px solid rgba(0, 0, 0, .1); - padding-top: 1em; + + + &::before { + content ''; + border-top: 1px solid currentColor; + opacity: 0.1; + display: block; + padding-bottom: 1em; + } } h3 { font-weight: 600; font-size: 1.38em; - border-top: 1px solid rgba(0, 0, 0, .05); - padding-top: 1em; + + &::before { + content ''; + border-top: 1px solid currentColor; + opacity: 0.06; + display: block; + padding-bottom: 1em; + } + } diff --git a/wp-content/themes/vanilla/assets/styles/Base/list.styl b/wp-content/themes/vanilla/assets/styles/Base/list.styl index 974c0a70d3ecde2e4ce5114323085629029cef38..d44a17fa6906a7b01dec7da1dc55d76f59b2a190 100644 --- a/wp-content/themes/vanilla/assets/styles/Base/list.styl +++ b/wp-content/themes/vanilla/assets/styles/Base/list.styl @@ -1,4 +1,3 @@ - // List // // Markup: @@ -21,7 +20,16 @@ ul { padding-left: 1.5em; } +dl { + margin-top: 1em; +} + +dt { + margin-top: 1em; + font-weight: bolder; +} + dd { - margin-left: 1.5em; + margin-left: 2em; } diff --git a/wp-content/themes/vanilla/assets/styles/Base/table.styl b/wp-content/themes/vanilla/assets/styles/Base/table.styl index 6e7438777188b28770d66ade0d124d94fe81acf2..9f85730a76bdd95a2941f70f8cc214ed75774f77 100644 --- a/wp-content/themes/vanilla/assets/styles/Base/table.styl +++ b/wp-content/themes/vanilla/assets/styles/Base/table.styl @@ -6,6 +6,7 @@ table { width: 100%; + margin 1em 0; } thead { @@ -39,4 +40,4 @@ td { th { font-weight: bold; -} \ No newline at end of file +} diff --git a/wp-content/themes/vanilla/assets/styles/Base/typography.styl b/wp-content/themes/vanilla/assets/styles/Base/typography.styl index 72f2afa9dc3016f2d3384c6cc4e653839d35abc4..9b8e1d03486c7dfd8a6440f17b9b5f585c561e4f 100644 --- a/wp-content/themes/vanilla/assets/styles/Base/typography.styl +++ b/wp-content/themes/vanilla/assets/styles/Base/typography.styl @@ -1,11 +1,41 @@ +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 300; + src: local("YuGothic-Regular"), local("Yu Gothic"), local("YuGothic"); +} + +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 400; + src: local("YuGothic-Medium"), local("Yu Gothic Medium"), local("YuGothic-Regular"), local("Yu Gothic"), local("YuGothic"); +} + +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 500; + src: local("YuGothic-Medium"), local("Yu Gothic Medium"), local("YuGothic-Regular"), local("Yu Gothic"), local("YuGothic"); +} + +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 600; + src: local("YuGothic-Bold"), local("Yu Gothic"); +} + +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 700; + src: local("YuGothic-Bold"), local("Yu Gothic"); +} + html { - font-size: percentage(10/16); + font-size: percentage(10 / 16); min-height: 100%; } body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Helvetica', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Roboto', 'Droid Sans', '游ゴシック Medium', meiryo, sans-serif; + font-family: 'Avenir', -apple-system, BlinkMacSystemFont, 'Cross Yu Gothic', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Helvetica Neue', 'Helvetica', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Roboto', 'Droid Sans', '游ゴシック Medium', meiryo, sans-serif; font-size: 1.4em; +medium-up() { @@ -17,8 +47,6 @@ body { line-height: 1.75; overflow-wrap: break-word; word-wrap: break-word; - //letter-spacing: .05rem; - //text-align: justify; -webkit-font-smoothing: subpixel-antialiased; } @@ -35,5 +63,21 @@ pre { background: #EEE; margin: 1.2em 0; padding: 1em; - line-height: 1.5 -} \ No newline at end of file + line-height: 1.5; +} + +code,kbd { + background: #EEE; + padding: 0.2em 0.4em; +} + +blockquote { + margin: 1em 0; + padding 0 2em; + border-left: 1px solid currentColor; + + cite { + display: block; + text-align: right; + } +} diff --git a/wp-content/themes/vanilla/assets/styles/Components/archive-header.styl b/wp-content/themes/vanilla/assets/styles/Components/archive-header.styl index 17df4a3873fe93b40e3730185cf8e4a503e1916c..1b3f9a7cfce682b6c36a18f91c2004116b555f35 100644 --- a/wp-content/themes/vanilla/assets/styles/Components/archive-header.styl +++ b/wp-content/themes/vanilla/assets/styles/Components/archive-header.styl @@ -1,6 +1,6 @@ .archive-header { - gutter( padding-top, 1 ); - gutter( padding-bottom, 1 ); + gutter( padding-top ); + gutter( padding-bottom ); &__title { font-size: 1em; @@ -12,4 +12,4 @@ margin: 0; font-size: 0.8em; } -} \ No newline at end of file +} diff --git a/wp-content/themes/vanilla/assets/styles/Components/comment.styl b/wp-content/themes/vanilla/assets/styles/Components/comment.styl index bd816d67306f022b7067f775143dc464181e22b7..280c1c6ea7dfe6e9088ca3d6a891e2044520f717 100644 --- a/wp-content/themes/vanilla/assets/styles/Components/comment.styl +++ b/wp-content/themes/vanilla/assets/styles/Components/comment.styl @@ -73,7 +73,7 @@ } *:last-child { - margin-bottom:0 + margin-bottom: 0; } } @@ -81,11 +81,15 @@ font-size: 0.8em; } + textarea { + width: 100%; + } } + .pingback { .comment-body { padding-left: 0; font-size: 0.9em; } -} \ No newline at end of file +} diff --git a/wp-content/themes/vanilla/assets/styles/Components/entry.styl b/wp-content/themes/vanilla/assets/styles/Components/entry.styl index 49502676c5a043306db6bf95e1bbcfc451650774..b4dd9464599625dcc89016e41c4626d6704dc806 100644 --- a/wp-content/themes/vanilla/assets/styles/Components/entry.styl +++ b/wp-content/themes/vanilla/assets/styles/Components/entry.styl @@ -36,10 +36,14 @@ font-size: 2em; line-height: 1.6; margin: 0; - padding 0 + padding: 0; + + &::before { + display none; + } } &__content { gutter( margin-bottom ); } -} \ No newline at end of file +} diff --git a/wp-content/themes/vanilla/assets/styles/Components/gallery.styl b/wp-content/themes/vanilla/assets/styles/Components/gallery.styl index 2337eb01321dceee32db31c34b1cfd80f535f4fd..5861029fa7a2d874c6fe34150ae33bdaf3d401ab 100644 --- a/wp-content/themes/vanilla/assets/styles/Components/gallery.styl +++ b/wp-content/themes/vanilla/assets/styles/Components/gallery.styl @@ -10,12 +10,12 @@ $grid-gutter ?= 20px; justify-content: space-around; &-item { - margin: 0 0 $grid-gutter; + margin: 0; box-sizing: border-box; position: relative; flex-grow: 0; flex-shrink: 0; - padding: 0 ($grid-gutter / 2); + padding: ($grid-gutter / 2); } &-icon { @@ -25,21 +25,22 @@ $grid-gutter ?= 20px; } } + &-caption { + margin: 0.6em 0 0.2em; + font-size: 0.9em; + } + gallery-item-width($width) { flex-basis: $width; } - @media $medium-up { - for $i in (1..9) { - &.gallery-columns-{$i} &-item { gallery-item-width(percentage(1 /$i)); } } } - } diff --git a/wp-content/themes/vanilla/assets/styles/Objects/app-layout.styl b/wp-content/themes/vanilla/assets/styles/Objects/app-layout.styl index 3b1323c4f5f360bec66c84ebf2deb5e9fccf0ecc..7356830a02d1271729a0525ee6a4403ed27ecc40 100644 --- a/wp-content/themes/vanilla/assets/styles/Objects/app-layout.styl +++ b/wp-content/themes/vanilla/assets/styles/Objects/app-layout.styl @@ -1,23 +1,7 @@ $app-layout-use-escape = true; .app-layout { - //box-sizing border-box; - //display: flex; - //width: 100%; - //min-height: 100vh; - //flex-direction: column; - - background-color: inherit - &.app-layout--disable &__header { - position: relative !important; - top: 0 !important; - padding-top: 0px !important; - } - - // - //&.app-layout--disable &__content { - // padding-top: 0px !important; - //} + background-color: inherit; &__header { background-color: #FFF; @@ -26,13 +10,18 @@ $app-layout-use-escape = true; left: 0; top: 0; + &--static { + position: relative; + } + + //for WordPress .admin-bar & { padding-top: 46px; position: absolute; &--fixed { - padding-top: 0px; + padding-top: 0; position: fixed; } @@ -68,15 +57,14 @@ $app-layout-use-escape = true; &__content { box-sizing: border-box; //flex-grow: 1; - - background-color: inherit + background-color: inherit; } & &__header { if $app-layout-use-escape { &--escape { - transform: translateY(-100%); + //transform: translateY(-100%); } } diff --git a/wp-content/themes/vanilla/assets/styles/Trumps/wp.styl b/wp-content/themes/vanilla/assets/styles/Trumps/wp.styl index f82fe0adcc314a64ef184f97e19decb9b040a327..029ed7820034d0f90f30af5b8267a87afaf4d282 100644 --- a/wp-content/themes/vanilla/assets/styles/Trumps/wp.styl +++ b/wp-content/themes/vanilla/assets/styles/Trumps/wp.styl @@ -44,8 +44,7 @@ .wp-caption .wp-caption-text, -.entry-caption, -.gallery-caption { +.entry-caption { margin: 0.6em 0 1.7em; } diff --git a/wp-content/themes/vanilla/bundle.js b/wp-content/themes/vanilla/bundle.js index f5f9bda60cce984380ac570e453719a5d271d7f0..b32eacdd4be52b58f9bd69a332c291ef156deaeb 100644 --- a/wp-content/themes/vanilla/bundle.js +++ b/wp-content/themes/vanilla/bundle.js @@ -386,7 +386,6 @@ require('./skip-link-focus-fix'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } (0, _jquery2.default)(function () { - (0, _jquery2.default)("[data-drawer]").each(function () { new _Drawer2.default((0, _jquery2.default)(this)); }); @@ -427,10 +426,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de }); (0, _jquery2.default)(function () { - var $appLayout = (0, _jquery2.default)(".app-layout"); (0, _jquery2.default)(window).on('load resize', function () { - $appLayout.removeClass("app-layout--disable"); + $appLayout.find(".app-layout__header").removeClass("app-layout__header--static"); }); new _HeaderClassController2.default($appLayout, "app-layout__header--fixed", 46); new _HeaderEscaper2.default($appLayout, "app-layout__header--escape", 64); @@ -440,4 +438,4 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"./AppLayout/ContentSpacer":1,"./AppLayout/HeaderClassController":2,"./AppLayout/HeaderEscaper":3,"./Drawer":4,"./skip-link-focus-fix":5}]},{},[6]) -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJhc3NldHMvc2NyaXB0cy9BcHBMYXlvdXQvQ29udGVudFNwYWNlci5qcyIsImFzc2V0cy9zY3JpcHRzL0FwcExheW91dC9IZWFkZXJDbGFzc0NvbnRyb2xsZXIuanMiLCJhc3NldHMvc2NyaXB0cy9BcHBMYXlvdXQvSGVhZGVyRXNjYXBlci5qcyIsImFzc2V0cy9zY3JpcHRzL0RyYXdlci5qcyIsImFzc2V0cy9zY3JpcHRzL3NraXAtbGluay1mb2N1cy1maXguanMiLCJhc3NldHMvc2NyaXB0cy90aGVtZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7OztJQUVxQixhO0FBQ3BCOzs7O0FBSUEsd0JBQWEsR0FBYixFQUFtQjtBQUFBOztBQUNsQixPQUFLLEdBQUwsR0FBVyxHQUFYO0FBQ0EsTUFBSSxTQUFTLElBQUksSUFBSixDQUFTLG1CQUFULENBQWI7QUFDQSxNQUFJLFVBQVUsSUFBSSxJQUFKLENBQVMsbUJBQVQsQ0FBZDs7QUFFQSxPQUFLLE9BQUwsR0FBZSxzQkFBRyxNQUFILENBQWY7QUFDQSxPQUFLLFFBQUwsR0FBZ0Isc0JBQUcsT0FBSCxDQUFoQjtBQUNBLE9BQUssRUFBTDtBQUNBOzs7O3VCQUVJO0FBQUE7O0FBQ0oseUJBQUUsTUFBRixFQUFVLEVBQVYsQ0FBYyxhQUFkLEVBQTZCLFlBQU07QUFDbEMsVUFBSyxVQUFMO0FBQ0EsSUFGRDtBQUdBOzs7K0JBRVk7QUFDWixRQUFLLFFBQUwsQ0FBYyxHQUFkLENBQWtCLEVBQUMsWUFBWSxLQUFLLGVBQUwsS0FBeUIsSUFBdEMsRUFBbEI7QUFDQTs7O29DQUVpQjs7QUFFakIsVUFBTyxLQUFLLE9BQUwsQ0FBYSxNQUFiLEVBQVA7QUFDQTs7Ozs7O2tCQTVCbUIsYTs7Ozs7Ozs7Ozs7Ozs7QUNGckI7Ozs7QUFDQTs7Ozs7Ozs7SUFHcUIsd0I7QUFDcEI7Ozs7OztBQU1BLG1DQUFhLEdBQWIsRUFBa0IsV0FBbEIsRUFBK0IsU0FBL0IsRUFBMkM7QUFBQTs7QUFDMUMsT0FBSyxXQUFMLEdBQW1CLFdBQW5CO0FBQ0EsT0FBSyxTQUFMLEdBQWlCLFNBQWpCO0FBQ0EsT0FBSyxHQUFMLEdBQVcsR0FBWDtBQUNBLE1BQUksU0FBUyxJQUFJLElBQUosQ0FBUyxtQkFBVCxDQUFiO0FBQ0EsTUFBSSxVQUFVLElBQUksSUFBSixDQUFTLHdCQUFULENBQWQ7QUFDQSxPQUFLLE9BQUwsR0FBZSxzQkFBRyxNQUFILENBQWY7QUFDQSxNQUFLLFdBQVcsV0FBVyxRQUEzQixFQUFzQztBQUNyQyxRQUFLLFFBQUwsR0FBZ0Isc0JBQUcsT0FBSCxDQUFoQjtBQUNBLEdBRkQsTUFHSztBQUNKLFFBQUssUUFBTCxHQUFnQixzQkFBRyxNQUFILENBQWhCO0FBQ0E7O0FBRUQsT0FBSyxVQUFMO0FBQ0EsT0FBSyxFQUFMO0FBQ0E7Ozs7K0JBRVk7QUFDWjtBQUNBOzs7dUJBRUk7QUFDSixRQUFLLFFBQUwsQ0FBYyxFQUFkLENBQWtCLGVBQWxCLEVBQW1DLHFCQUFFLFFBQUYsQ0FBVyxZQUFVO0FBQ3ZELFNBQUssV0FBTDtBQUNBLElBRmtDLEVBRWhDLENBRmdDLEVBRTVCLElBRjRCLENBRXZCLElBRnVCLENBQW5DO0FBR0E7OztnQ0FFYTtBQUNiLE9BQUksS0FBSyxrQkFBTCxFQUFKLEVBQWdDO0FBQy9CLFNBQUssT0FBTCxDQUFhLFFBQWIsQ0FBdUIsS0FBSyxXQUE1QjtBQUNBLElBRkQsTUFHSztBQUNKLFNBQUssT0FBTCxDQUFhLFdBQWIsQ0FBMEIsS0FBSyxXQUEvQjtBQUNBO0FBQ0Q7OztpQ0FFYztBQUNkLE9BQUksT0FBTyxLQUFLLFNBQVosSUFBMEIsVUFBOUIsRUFBMkM7QUFDMUMsV0FBTyxLQUFLLFNBQUwsRUFBUDtBQUNBLElBRkQsTUFHSztBQUNKLFdBQU8sS0FBSyxTQUFaO0FBQ0E7QUFDRDs7O3VDQUVvQjtBQUNwQixPQUFJLFlBQVksS0FBSyxRQUFMLENBQWMsU0FBZCxFQUFoQjtBQUNBLFVBQVMsWUFBWSxLQUFLLFlBQUwsRUFBckI7QUFFQTs7Ozs7O2tCQXpEbUIsd0I7Ozs7Ozs7Ozs7Ozs7QUNKckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytCQUljO0FBQ1osUUFBSyxTQUFMLEdBQWlCLEtBQUssaUJBQUwsRUFBakI7QUFDQTs7O3NDQUVtQjtBQUNuQixVQUFPLEtBQUssUUFBTCxDQUFjLFNBQWQsRUFBUDtBQUNBOzs7Z0NBRWE7QUFDYixPQUFJLGFBQWEsS0FBSyxpQkFBTCxFQUFqQjs7QUFFQSxPQUFJLENBQUUsS0FBSyxrQkFBTCxFQUFOLEVBQWtDO0FBQ2pDLFNBQUssT0FBTCxDQUFhLFdBQWIsQ0FBMEIsS0FBSyxXQUEvQjtBQUNBLFNBQUssT0FBTCxDQUFhLElBQWIsQ0FBa0IsYUFBbEIsRUFBaUMsT0FBakM7QUFDQSxJQUhELE1BSUssSUFBSyxhQUFhLEtBQUssU0FBbEIsR0FBOEIsQ0FBbkMsRUFBdUM7QUFDM0M7QUFDQSxTQUFLLE9BQUwsQ0FBYSxRQUFiLENBQXVCLEtBQUssV0FBNUI7QUFDQSxTQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWtCLGFBQWxCLEVBQWlDLE1BQWpDO0FBQ0EsSUFKSSxNQUtBLElBQU0sYUFBYSxLQUFLLFNBQWxCLEdBQThCLENBQUUsQ0FBdEMsRUFBMEM7QUFDOUM7QUFDQSxTQUFLLE9BQUwsQ0FBYSxXQUFiLENBQTBCLEtBQUssV0FBL0I7QUFDQSxTQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWtCLGFBQWxCLEVBQWlDLE9BQWpDO0FBQ0E7O0FBRUQsUUFBSyxTQUFMLEdBQWlCLFVBQWpCO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQy9CRjs7Ozs7Ozs7SUFFcUIsTTtBQUVwQixpQkFBWSxHQUFaLEVBQWlCO0FBQUE7O0FBQ2hCLE9BQUssR0FBTCxHQUFXLEdBQVg7QUFDQSxPQUFLLFVBQUwsR0FBa0Isc0JBQUUsSUFBSSxJQUFKLENBQVMsMkJBQVQsQ0FBRixDQUFsQjtBQUNBLE9BQUssRUFBTCxHQUFVLElBQUksSUFBSixDQUFTLElBQVQsQ0FBVjtBQUNBLE9BQUssV0FBTCxHQUFtQixzQkFBRyxxQkFBbUIsS0FBSyxFQUF4QixHQUEyQixLQUE5QixDQUFuQjtBQUNBLE9BQUssVUFBTCxDQUFnQixRQUFoQixDQUF5QixrQkFBekI7QUFDQSxPQUFLLEVBQUw7QUFFQTs7Ozt1QkFFSTtBQUFBOztBQUNKLFFBQUssV0FBTCxDQUFpQixFQUFqQixDQUFvQixPQUFwQixFQUE2QixLQUFLLE1BQUwsQ0FBWSxJQUFaLENBQWlCLElBQWpCLENBQTdCO0FBQ0EsUUFBSyxHQUFMLENBQVMsRUFBVCxDQUFZLE9BQVosRUFBcUIsS0FBSyxLQUFMLENBQVcsSUFBWCxDQUFnQixJQUFoQixDQUFyQjtBQUNBLFFBQUssR0FBTCxDQUFTLFFBQVQsR0FBb0IsRUFBcEIsQ0FBdUIsT0FBdkIsRUFBZ0MsVUFBUyxLQUFULEVBQWU7QUFDOUMsVUFBTSxlQUFOO0FBQ0EsSUFGRDs7QUFJQSx5QkFBRSxRQUFGLEVBQVksRUFBWixDQUFlLE9BQWYsRUFBd0IsVUFBQyxLQUFELEVBQVc7QUFDbEMsUUFBSSxNQUFNLE9BQU4sSUFBaUIsRUFBckIsRUFBeUI7QUFDeEIsV0FBSyxLQUFMO0FBQ0E7QUFDRCxJQUpEOztBQU1BLFFBQUssR0FBTCxDQUFTLEVBQVQsQ0FBWSxlQUFaLEVBQTZCLEtBQUssYUFBTCxDQUFtQixJQUFuQixDQUF3QixJQUF4QixDQUE3QjtBQUNBOzs7a0NBRWU7QUFDZixRQUFLLEdBQUwsQ0FBUyxXQUFULENBQXFCLGFBQXJCO0FBQ0E7Ozt5QkFFTSxLLEVBQU87QUFDYixTQUFNLGNBQU47QUFDQSxPQUFLLEtBQUssR0FBTCxDQUFTLElBQVQsQ0FBYyxlQUFkLEtBQWtDLE9BQXZDLEVBQWlEO0FBQ2hELFNBQUssSUFBTDtBQUNBLElBRkQsTUFFTztBQUNOLFNBQUssS0FBTDtBQUNBO0FBQ0Q7Ozt5QkFFTTtBQUNOLFFBQUssR0FBTCxDQUFTLFFBQVQsQ0FBa0IsYUFBbEI7QUFDQSxRQUFLLEdBQUwsQ0FBUyxJQUFULENBQWMsZUFBZCxFQUE4QixNQUE5QjtBQUNBLFFBQUssR0FBTCxDQUFTLElBQVQsQ0FBYyxhQUFkLEVBQTRCLE9BQTVCO0FBQ0EsUUFBSyxXQUFMLENBQWlCLElBQWpCLENBQXNCLGVBQXRCLEVBQXNDLE1BQXRDO0FBQ0EsUUFBSyxVQUFMLENBQWdCLFFBQWhCLENBQXlCLGdCQUF6QjtBQUdBOzs7MEJBRU87QUFDUCxRQUFLLEdBQUwsQ0FBUyxRQUFULENBQWtCLGFBQWxCO0FBQ0EsUUFBSyxHQUFMLENBQVMsSUFBVCxDQUFjLGVBQWQsRUFBOEIsT0FBOUI7QUFDQSxRQUFLLEdBQUwsQ0FBUyxJQUFULENBQWMsYUFBZCxFQUE0QixNQUE1QjtBQUNBLFFBQUssV0FBTCxDQUFpQixJQUFqQixDQUFzQixlQUF0QixFQUFzQyxPQUF0QztBQUNBLFFBQUssVUFBTCxDQUFnQixXQUFoQixDQUE0QixnQkFBNUI7QUFDQTs7O3lCQUVhO0FBQ2IseUJBQUUsZUFBRixFQUFtQixJQUFuQixDQUF3QixZQUFVO0FBQ2pDLFFBQUksTUFBSixDQUFXLHNCQUFFLElBQUYsQ0FBWDtBQUNBLElBRkQ7QUFHQTs7Ozs7O2tCQS9EbUIsTTs7Ozs7OztBQ0ZyQjs7Ozs7OztBQU9BLENBQUUsWUFBVztBQUNaLEtBQUksV0FBVyxVQUFVLFNBQVYsQ0FBb0IsV0FBcEIsR0FBa0MsT0FBbEMsQ0FBMkMsUUFBM0MsSUFBd0QsQ0FBQyxDQUF4RTtBQUFBLEtBQ0MsVUFBVyxVQUFVLFNBQVYsQ0FBb0IsV0FBcEIsR0FBa0MsT0FBbEMsQ0FBMkMsT0FBM0MsSUFBd0QsQ0FBQyxDQURyRTtBQUFBLEtBRUMsT0FBVyxVQUFVLFNBQVYsQ0FBb0IsV0FBcEIsR0FBa0MsT0FBbEMsQ0FBMkMsTUFBM0MsSUFBd0QsQ0FBQyxDQUZyRTs7QUFJQSxLQUFLLENBQUUsWUFBWSxPQUFaLElBQXVCLElBQXpCLEtBQW1DLFNBQVMsY0FBNUMsSUFBOEQsT0FBTyxnQkFBMUUsRUFBNkY7QUFDNUYsU0FBTyxnQkFBUCxDQUF5QixZQUF6QixFQUF1QyxZQUFXO0FBQ2pELE9BQUksS0FBSyxTQUFTLElBQVQsQ0FBYyxTQUFkLENBQXlCLENBQXpCLENBQVQ7QUFBQSxPQUNDLE9BREQ7O0FBR0EsT0FBSyxDQUFJLGdCQUFnQixJQUFoQixDQUFzQixFQUF0QixDQUFULEVBQXdDO0FBQ3ZDO0FBQ0E7O0FBRUQsYUFBVSxTQUFTLGNBQVQsQ0FBeUIsRUFBekIsQ0FBVjs7QUFFQSxPQUFLLE9BQUwsRUFBZTtBQUNkLFFBQUssQ0FBSSx3Q0FBd0MsSUFBeEMsQ0FBOEMsUUFBUSxPQUF0RCxDQUFULEVBQTZFO0FBQzVFLGFBQVEsUUFBUixHQUFtQixDQUFDLENBQXBCO0FBQ0E7O0FBRUQsWUFBUSxLQUFSO0FBQ0E7QUFDRCxHQWpCRCxFQWlCRyxLQWpCSDtBQWtCQTtBQUNELENBekJEOzs7Ozs7QUNQQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQSxzQkFBRSxZQUFXOztBQUVaLHVCQUFFLGVBQUYsRUFBbUIsSUFBbkIsQ0FBd0IsWUFBVTtBQUNqQyx1QkFBVyxzQkFBRSxJQUFGLENBQVg7QUFDQSxFQUZEO0FBSUEsQ0FORDs7QUFTQSxzQkFBRSxZQUFXOztBQUVaLEtBQUkscUJBQXFCLHNCQUFFLDhFQUFGLENBQXpCO0FBQ0E7QUFDQSxLQUFJLGtCQUFrQixzQkFBRyxZQUFILEVBQWlCO0FBQ3RDLFdBQVMsaUJBRDZCO0FBRXRDLG1CQUFpQjtBQUZxQixFQUFqQixFQUdsQixNQUhrQixDQUdWLHNCQUFHLFVBQUgsRUFBZTtBQUMxQixXQUFTLG9CQURpQjtBQUUxQixRQUFNLGlCQUFpQjtBQUZHLEVBQWYsQ0FIVSxDQUF0Qjs7QUFRQSxvQkFBbUIsUUFBbkIsQ0FBNEIsR0FBNUIsRUFBaUMsS0FBakMsQ0FBd0MsZUFBeEM7O0FBR0EsdUJBQUUsa0RBQUYsRUFBc0QsSUFBdEQsQ0FBMkQsWUFBWTtBQUN0RSx3QkFBRSxJQUFGLEVBQVEsSUFBUixDQUFhLGVBQWIsRUFBNkIsT0FBN0I7QUFDQSxFQUZEOztBQUlBLG9CQUFtQixJQUFuQixDQUF3QixrQkFBeEIsRUFBNEMsRUFBNUMsQ0FBZ0QsT0FBaEQsRUFBeUQsVUFBVSxLQUFWLEVBQWlCO0FBQ3pFLE1BQUksT0FBTyxzQkFBRSxJQUFGLENBQVg7QUFDQSxNQUFJLFdBQVcsRUFBZjtBQUNBLE1BQUksVUFBVSxLQUFLLElBQUwsQ0FBVSxlQUFWLENBQWQsRUFBNEM7QUFDM0MsY0FBVyxPQUFYO0FBQ0EsUUFBSyxJQUFMLENBQVUscUJBQVYsRUFBaUMsSUFBakMsQ0FBc0MsaUJBQWlCLE1BQXZEO0FBQ0EsR0FIRCxNQUlLO0FBQ0osY0FBVyxNQUFYO0FBQ0EsUUFBSyxJQUFMLENBQVUscUJBQVYsRUFBaUMsSUFBakMsQ0FBc0MsaUJBQWlCLFFBQXZEO0FBQ0E7QUFDRCxPQUFLLElBQUwsQ0FBVSxlQUFWLEVBQTJCLFFBQTNCOztBQUVBLE9BQUssUUFBTCxDQUFjLHFCQUFkLEVBQXFDLElBQXJDLENBQTBDLGVBQTFDLEVBQTJELFFBQTNEO0FBQ0EsRUFkRDtBQWdCQSxDQW5DRDs7QUFzQ0Esc0JBQUUsWUFBVzs7QUFFWixLQUFJLGFBQWEsc0JBQUUsYUFBRixDQUFqQjtBQUNBLHVCQUFFLE1BQUYsRUFBVSxFQUFWLENBQWMsYUFBZCxFQUE2QixZQUFNO0FBQ2xDLGFBQVcsV0FBWCxDQUF1QixxQkFBdkI7QUFDQSxFQUZEO0FBR0EscUNBQTJCLFVBQTNCLEVBQXVDLDJCQUF2QyxFQUFvRSxFQUFwRTtBQUNBLDZCQUFtQixVQUFuQixFQUErQiw0QkFBL0IsRUFBNkQsRUFBN0Q7QUFDQSw2QkFBbUIsVUFBbkI7QUFFQSxDQVZEIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRTcGFjZXIge1xuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHtqUXVlcnl9ICRlbFxuXHQgKi9cblx0Y29uc3RydWN0b3IoICRlbCApIHtcblx0XHR0aGlzLiRlbCA9ICRlbDtcblx0XHRsZXQgaGVhZGVyID0gJGVsLmRhdGEoJ2FwcC1sYXlvdXQtaGVhZGVyJyk7XG5cdFx0bGV0IGNvbnRlbnQgPSAkZWwuZGF0YSgnYXBwLWxheW91dC1zcGFjZXInKTtcblxuXHRcdHRoaXMuJGhlYWRlciA9ICQoIGhlYWRlciApO1xuXHRcdHRoaXMuJGNvbnRlbnQgPSAkKCBjb250ZW50ICk7XG5cdFx0dGhpcy5vbigpO1xuXHR9XG5cblx0b24oKSB7XG5cdFx0JCh3aW5kb3cpLm9uKCAnbG9hZCByZXNpemUnLCAoKSA9PiB7XG5cdFx0XHR0aGlzLnNldFBhZGRpbmcoKVxuXHRcdH0gKTtcblx0fVxuXG5cdHNldFBhZGRpbmcoKSB7XG5cdFx0dGhpcy4kY29udGVudC5jc3Moe3BhZGRpbmdUb3A6IHRoaXMuZ2V0SGVhZGVySGVpZ2h0KCkgKyAncHgnfSk7XG5cdH1cblxuXHRnZXRIZWFkZXJIZWlnaHQoKSB7XG5cblx0XHRyZXR1cm4gdGhpcy4kaGVhZGVyLmhlaWdodCgpO1xuXHR9XG59IiwiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcbmltcG9ydCBfIGZyb20gJ3VuZGVyc2NvcmUnO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwcExheW91dENsYXNzQ29udHJvbGxlciB7XG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0gJGVsXG5cdCAqIEBwYXJhbSBjbGFzc1N0cmluZ1xuXHQgKiBAcGFyYW0gdGhyZXNob2xkIOOCr+ODqeOCueOBruioreWumuOCkuOBmeOCi+OBn+OCgeOBruOCueOCr+ODreODvOODq+S9jee9rlxuXHQgKi9cblx0Y29uc3RydWN0b3IoICRlbCwgY2xhc3NTdHJpbmcsIHRocmVzaG9sZCApIHtcblx0XHR0aGlzLmNsYXNzU3RyaW5nID0gY2xhc3NTdHJpbmc7XG5cdFx0dGhpcy50aHJlc2hvbGQgPSB0aHJlc2hvbGQ7XG5cdFx0dGhpcy4kZWwgPSAkZWw7XG5cdFx0bGV0IGhlYWRlciA9ICRlbC5kYXRhKCdhcHAtbGF5b3V0LWhlYWRlcicpO1xuXHRcdGxldCBjb250ZW50ID0gJGVsLmRhdGEoJ2FwcC1sYXlvdXQtc2Nyb2xsLWFyZWEnKTtcblx0XHR0aGlzLiRoZWFkZXIgPSAkKCBoZWFkZXIgKTtcblx0XHRpZiAoIGNvbnRlbnQgJiYgY29udGVudCAhPSAnd2luZG93JyApIHtcblx0XHRcdHRoaXMuJGNvbnRlbnQgPSAkKCBjb250ZW50ICk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy4kY29udGVudCA9ICQoIHdpbmRvdyApO1xuXHRcdH1cblxuXHRcdHRoaXMuaW5pdGlhbGl6ZSgpO1xuXHRcdHRoaXMub24oKTtcblx0fVxuXG5cdGluaXRpYWxpemUoKSB7XG5cdFx0Ly9mb3Igb3ZlcnJpZGVcblx0fVxuXG5cdG9uKCkge1xuXHRcdHRoaXMuJGNvbnRlbnQub24oICdzY3JvbGwgcmVzaXplJywgXy50aHJvdHRsZShmdW5jdGlvbigpe1xuXHRcdFx0dGhpcy50b2dnbGVDbGFzcygpO1xuXHRcdH0sIDEgKS5iaW5kKHRoaXMpICk7XG5cdH1cblxuXHR0b2dnbGVDbGFzcygpIHtcblx0XHRpZiggdGhpcy5pc0V4Y2VlZHNUaHJlc2hvbGQoKSApIHtcblx0XHRcdHRoaXMuJGhlYWRlci5hZGRDbGFzcyggdGhpcy5jbGFzc1N0cmluZyApO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuJGhlYWRlci5yZW1vdmVDbGFzcyggdGhpcy5jbGFzc1N0cmluZyApO1xuXHRcdH1cblx0fVxuXG5cdGdldFRocmVzaG9sZCgpIHtcblx0XHRpZiggdHlwZW9mIHRoaXMudGhyZXNob2xkICA9PSBcImZ1bmN0aW9uXCIgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50aHJlc2hvbGQoKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRyZXR1cm4gdGhpcy50aHJlc2hvbGQ7XG5cdFx0fVxuXHR9XG5cblx0aXNFeGNlZWRzVGhyZXNob2xkKCkge1xuXHRcdGxldCBzY3JvbGxUb3AgPSB0aGlzLiRjb250ZW50LnNjcm9sbFRvcCgpO1xuXHRcdHJldHVybiAoIHNjcm9sbFRvcCA+IHRoaXMuZ2V0VGhyZXNob2xkKCkgKTtcblxuXHR9XG59XG5cbiIsImltcG9ydCBIZWFkZXJDbGFzc0NvbnRyb2xsZXIgZnJvbSAnLi9IZWFkZXJDbGFzc0NvbnRyb2xsZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIEhlYWRlckNsYXNzQ29udHJvbGxlciB7XG5cblx0aW5pdGlhbGl6ZSgpIHtcblx0XHR0aGlzLnNjcm9sbFBvcyA9IHRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcblx0fVxuXG5cdGdldFNjcm9sbFBvc2l0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLiRjb250ZW50LnNjcm9sbFRvcCgpO1xuXHR9XG5cblx0dG9nZ2xlQ2xhc3MoKSB7XG5cdFx0bGV0IGN1cnJlbnRQb3MgPSB0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCk7XG5cblx0XHRpZiggISB0aGlzLmlzRXhjZWVkc1RocmVzaG9sZCgpICkge1xuXHRcdFx0dGhpcy4kaGVhZGVyLnJlbW92ZUNsYXNzKCB0aGlzLmNsYXNzU3RyaW5nICk7XG5cdFx0XHR0aGlzLiRoZWFkZXIuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiggIGN1cnJlbnRQb3MgLSB0aGlzLnNjcm9sbFBvcyA+IDUgKSB7XG5cdFx0XHQvL3Njcm9sbCB0byBkb3duXG5cdFx0XHR0aGlzLiRoZWFkZXIuYWRkQ2xhc3MoIHRoaXMuY2xhc3NTdHJpbmcgKTtcblx0XHRcdHRoaXMuJGhlYWRlci5hdHRyKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG5cdFx0fVxuXHRcdGVsc2UgaWYgKCAgY3VycmVudFBvcyAtIHRoaXMuc2Nyb2xsUG9zIDwgLSA1ICkge1xuXHRcdFx0Ly9zY3JvbGwgdG8gdXBcblx0XHRcdHRoaXMuJGhlYWRlci5yZW1vdmVDbGFzcyggdGhpcy5jbGFzc1N0cmluZyApO1xuXHRcdFx0dGhpcy4kaGVhZGVyLmF0dHIoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5zY3JvbGxQb3MgPSBjdXJyZW50UG9zO1xuXHR9XG5cbn1cbiIsImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyYXdlciB7XG5cblx0Y29uc3RydWN0b3IoJGVsKSB7XG5cdFx0dGhpcy4kZWwgPSAkZWw7XG5cdFx0dGhpcy4kY29udGFpbmVyID0gJCgkZWwuZGF0YShcImRyYXdlci1jb250YWluZXItc2VsZWN0b3JcIikpO1xuXHRcdHRoaXMuaWQgPSAkZWwuYXR0cignaWQnKTtcblx0XHR0aGlzLiRjb250cm9sbGVyID0gJCggJ1thcmlhLWNvbnRyb2xzPVwiJyt0aGlzLmlkKydcIiBdJyApO1xuXHRcdHRoaXMuJGNvbnRhaW5lci5hZGRDbGFzcyhcImRyYXdlci1jb250YWluZXJcIik7XG5cdFx0dGhpcy5vbigpO1xuXG5cdH1cblxuXHRvbigpIHtcblx0XHR0aGlzLiRjb250cm9sbGVyLm9uKCdjbGljaycsIHRoaXMudG9nZ2xlLmJpbmQodGhpcykpO1xuXHRcdHRoaXMuJGVsLm9uKCdjbGljaycsIHRoaXMuY2xvc2UuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy4kZWwuY2hpbGRyZW4oKS5vbignY2xpY2snLCBmdW5jdGlvbihldmVudCl7XG5cdFx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR9KVxuXG5cdFx0JChkb2N1bWVudCkub24oJ2tleXVwJywgKGV2ZW50KSA9PiB7XG5cdFx0XHRpZiAoZXZlbnQua2V5Q29kZSA9PSAyNykge1xuXHRcdFx0XHR0aGlzLmNsb3NlKCk7XG5cdFx0XHR9XG5cdFx0fSlcblxuXHRcdHRoaXMuJGVsLm9uKCd0cmFuc2l0aW9uZW5kJywgdGhpcy50cmFuc2l0aW9uZW5kLmJpbmQodGhpcykpO1xuXHR9XG5cblx0dHJhbnNpdGlvbmVuZCgpIHtcblx0XHR0aGlzLiRlbC5yZW1vdmVDbGFzcygnaXMtYW5pbWF0ZWQnKTtcblx0fVxuXG5cdHRvZ2dsZShldmVudCkge1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0aWYgKCB0aGlzLiRlbC5hdHRyKCdhcmlhLWV4cGFuZGVkJykgPT0gXCJmYWxzZVwiICkge1xuXHRcdFx0dGhpcy5vcGVuKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY2xvc2UoKTtcblx0XHR9XG5cdH1cblxuXHRvcGVuKCkge1xuXHRcdHRoaXMuJGVsLmFkZENsYXNzKCdpcy1hbmltYXRlZCcpO1xuXHRcdHRoaXMuJGVsLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLFwidHJ1ZVwiKTtcblx0XHR0aGlzLiRlbC5hdHRyKCdhcmlhLWhpZGRlbicsXCJmYWxzZVwiKTtcblx0XHR0aGlzLiRjb250cm9sbGVyLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLFwidHJ1ZVwiKTtcblx0XHR0aGlzLiRjb250YWluZXIuYWRkQ2xhc3MoXCJpcy1kcmF3ZXItb3BlblwiKTtcblxuXG5cdH1cblxuXHRjbG9zZSgpIHtcblx0XHR0aGlzLiRlbC5hZGRDbGFzcygnaXMtYW5pbWF0ZWQnKTtcblx0XHR0aGlzLiRlbC5hdHRyKCdhcmlhLWV4cGFuZGVkJyxcImZhbHNlXCIpO1xuXHRcdHRoaXMuJGVsLmF0dHIoJ2FyaWEtaGlkZGVuJyxcInRydWVcIik7XG5cdFx0dGhpcy4kY29udHJvbGxlci5hdHRyKCdhcmlhLWV4cGFuZGVkJyxcImZhbHNlXCIpO1xuXHRcdHRoaXMuJGNvbnRhaW5lci5yZW1vdmVDbGFzcyhcImlzLWRyYXdlci1vcGVuXCIpO1xuXHR9XG5cblx0c3RhdGljIGluaXQoKSB7XG5cdFx0JChcIltkYXRhLWRyYXdlcl1cIikuZWFjaChmdW5jdGlvbigpe1xuXHRcdFx0bmV3IERyYXdlcigkKHRoaXMpKTtcblx0XHR9KTtcblx0fVxufSIsIi8qKlxuICogRmlsZSBza2lwLWxpbmstZm9jdXMtZml4LmpzLlxuICpcbiAqIEhlbHBzIHdpdGggYWNjZXNzaWJpbGl0eSBmb3Iga2V5Ym9hcmQgb25seSB1c2Vycy5cbiAqXG4gKiBMZWFybiBtb3JlOiBodHRwczovL2dpdC5pby92V2RyMlxuICovXG4oIGZ1bmN0aW9uKCkge1xuXHR2YXIgaXNXZWJraXQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZiggJ3dlYmtpdCcgKSA+IC0xLFxuXHRcdGlzT3BlcmEgID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoICdvcGVyYScgKSAgPiAtMSxcblx0XHRpc0llICAgICA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCAnbXNpZScgKSAgID4gLTE7XG5cblx0aWYgKCAoIGlzV2Via2l0IHx8IGlzT3BlcmEgfHwgaXNJZSApICYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkICYmIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyICkge1xuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnaGFzaGNoYW5nZScsIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGlkID0gbG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoIDEgKSxcblx0XHRcdFx0ZWxlbWVudDtcblxuXHRcdFx0aWYgKCAhICggL15bQS16MC05Xy1dKyQvLnRlc3QoIGlkICkgKSApIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7XG5cblx0XHRcdGlmICggZWxlbWVudCApIHtcblx0XHRcdFx0aWYgKCAhICggL14oPzphfHNlbGVjdHxpbnB1dHxidXR0b258dGV4dGFyZWEpJC9pLnRlc3QoIGVsZW1lbnQudGFnTmFtZSApICkgKSB7XG5cdFx0XHRcdFx0ZWxlbWVudC50YWJJbmRleCA9IC0xO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0ZWxlbWVudC5mb2N1cygpO1xuXHRcdFx0fVxuXHRcdH0sIGZhbHNlICk7XG5cdH1cbn0pKCk7XG4iLCJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IERyYXdlciBmcm9tICcuL0RyYXdlcic7XG5pbXBvcnQgSGVhZGVyQ2xhc3NDb250cm9sbGVyIGZyb20gJy4vQXBwTGF5b3V0L0hlYWRlckNsYXNzQ29udHJvbGxlcic7XG5pbXBvcnQgSGVhZGVyRXNjYXBlciBmcm9tICcuL0FwcExheW91dC9IZWFkZXJFc2NhcGVyJztcbmltcG9ydCBDb250ZW50U3BhY2VyIGZyb20gJy4vQXBwTGF5b3V0L0NvbnRlbnRTcGFjZXInO1xuaW1wb3J0ICcuL3NraXAtbGluay1mb2N1cy1maXgnO1xuXG4kKGZ1bmN0aW9uKCkge1xuXG5cdCQoXCJbZGF0YS1kcmF3ZXJdXCIpLmVhY2goZnVuY3Rpb24oKXtcblx0XHRuZXcgRHJhd2VyKCQodGhpcykpO1xuXHR9KTtcblxufSk7XG5cblxuJChmdW5jdGlvbigpIHtcblxuXHRsZXQgJHRvcGxldmVsTWVudUl0ZW1zID0gJCgnLnByaW1hcnktbWVudSAubWVudS1pdGVtLWhhcy1jaGlsZHJlbiwgLnByaW1hcnktbWVudSAucGFnZV9pdGVtX2hhc19jaGlsZHJlbicpO1xuXHQvLyBBZGQgZHJvcGRvd24gdG9nZ2xlIHRoYXQgZGlzcGxheXMgY2hpbGQgbWVudSBpdGVtcy5cblx0bGV0ICRkcm9wZG93blRvZ2dsZSA9ICQoICc8YnV0dG9uIC8+Jywge1xuXHRcdCdjbGFzcyc6ICdkcm9wZG93bi10b2dnbGUnLFxuXHRcdCdhcmlhLWV4cGFuZGVkJzogZmFsc2Vcblx0fSApLmFwcGVuZCggJCggJzxzcGFuIC8+Jywge1xuXHRcdCdjbGFzcyc6ICdzY3JlZW4tcmVhZGVyLXRleHQnLFxuXHRcdHRleHQ6IHNjcmVlblJlYWRlclRleHQuZXhwYW5kXG5cdH0gKSApO1xuXG5cdCR0b3BsZXZlbE1lbnVJdGVtcy5jaGlsZHJlbignYScpLmFmdGVyKCAkZHJvcGRvd25Ub2dnbGUgKTtcblxuXG5cdCQoXCIucHJpbWFyeS1tZW51IC5zdWItbWVudSwgLnByaW1hcnktbWVudSAuY2hpbGRyZW5cIikuZWFjaChmdW5jdGlvbiAoKSB7XG5cdFx0JCh0aGlzKS5hdHRyKCdhcmlhLWV4cGFuZGVkJyxcImZhbHNlXCIpO1xuXHR9KTtcblxuXHQkdG9wbGV2ZWxNZW51SXRlbXMuZmluZCgnLmRyb3Bkb3duLXRvZ2dsZScpLm9uKCAnY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHtcblx0XHRsZXQgc2VsZiA9ICQodGhpcyk7XG5cdFx0bGV0IGV4cGFuZGVkID0gJyc7XG5cdFx0aWYoICd0cnVlJyA9PSBzZWxmLmF0dHIoJ2FyaWEtZXhwYW5kZWQnKSAgKSB7XG5cdFx0XHRleHBhbmRlZCA9ICdmYWxzZSc7XG5cdFx0XHRzZWxmLmZpbmQoJy5zY3JlZW4tcmVhZGVyLXRleHQnKS50ZXh0KHNjcmVlblJlYWRlclRleHQuZXhwYW5kKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRleHBhbmRlZCA9ICd0cnVlJztcblx0XHRcdHNlbGYuZmluZCgnLnNjcmVlbi1yZWFkZXItdGV4dCcpLnRleHQoc2NyZWVuUmVhZGVyVGV4dC5jb2xsYXBzZSk7XG5cdFx0fVxuXHRcdHNlbGYuYXR0cignYXJpYS1leHBhbmRlZCcsIGV4cGFuZGVkKTtcblxuXHRcdHNlbGYuc2libGluZ3MoJy5zdWItbWVudSwuY2hpbGRyZW4nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgZXhwYW5kZWQpO1xuXHR9KVxuXG59KTtcblxuXG4kKGZ1bmN0aW9uKCkge1xuXG5cdGxldCAkYXBwTGF5b3V0ID0gJChcIi5hcHAtbGF5b3V0XCIpO1xuXHQkKHdpbmRvdykub24oICdsb2FkIHJlc2l6ZScsICgpID0+IHtcblx0XHQkYXBwTGF5b3V0LnJlbW92ZUNsYXNzKFwiYXBwLWxheW91dC0tZGlzYWJsZVwiKTtcblx0fSApO1xuXHRuZXcgSGVhZGVyQ2xhc3NDb250cm9sbGVyKCAkYXBwTGF5b3V0LCBcImFwcC1sYXlvdXRfX2hlYWRlci0tZml4ZWRcIiwgNDYgKTtcblx0bmV3IEhlYWRlckVzY2FwZXIoICRhcHBMYXlvdXQsIFwiYXBwLWxheW91dF9faGVhZGVyLS1lc2NhcGVcIiwgNjQgKTtcblx0bmV3IENvbnRlbnRTcGFjZXIoICRhcHBMYXlvdXQgKTtcblxufSk7XG5cbiJdfQ== +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJhc3NldHMvc2NyaXB0cy9BcHBMYXlvdXQvQ29udGVudFNwYWNlci5qcyIsImFzc2V0cy9zY3JpcHRzL0FwcExheW91dC9IZWFkZXJDbGFzc0NvbnRyb2xsZXIuanMiLCJhc3NldHMvc2NyaXB0cy9BcHBMYXlvdXQvSGVhZGVyRXNjYXBlci5qcyIsImFzc2V0cy9zY3JpcHRzL0RyYXdlci5qcyIsImFzc2V0cy9zY3JpcHRzL3NraXAtbGluay1mb2N1cy1maXguanMiLCJhc3NldHMvc2NyaXB0cy90aGVtZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7OztJQUVxQixhO0FBQ3BCOzs7O0FBSUEsd0JBQWEsR0FBYixFQUFtQjtBQUFBOztBQUNsQixPQUFLLEdBQUwsR0FBVyxHQUFYO0FBQ0EsTUFBSSxTQUFTLElBQUksSUFBSixDQUFTLG1CQUFULENBQWI7QUFDQSxNQUFJLFVBQVUsSUFBSSxJQUFKLENBQVMsbUJBQVQsQ0FBZDs7QUFFQSxPQUFLLE9BQUwsR0FBZSxzQkFBRyxNQUFILENBQWY7QUFDQSxPQUFLLFFBQUwsR0FBZ0Isc0JBQUcsT0FBSCxDQUFoQjtBQUNBLE9BQUssRUFBTDtBQUNBOzs7O3VCQUVJO0FBQUE7O0FBQ0oseUJBQUUsTUFBRixFQUFVLEVBQVYsQ0FBYyxhQUFkLEVBQTZCLFlBQU07QUFDbEMsVUFBSyxVQUFMO0FBQ0EsSUFGRDtBQUdBOzs7K0JBRVk7QUFDWixRQUFLLFFBQUwsQ0FBYyxHQUFkLENBQWtCLEVBQUMsWUFBWSxLQUFLLGVBQUwsS0FBeUIsSUFBdEMsRUFBbEI7QUFDQTs7O29DQUVpQjs7QUFFakIsVUFBTyxLQUFLLE9BQUwsQ0FBYSxNQUFiLEVBQVA7QUFDQTs7Ozs7O2tCQTVCbUIsYTs7Ozs7Ozs7Ozs7Ozs7QUNGckI7Ozs7QUFDQTs7Ozs7Ozs7SUFHcUIsd0I7QUFDcEI7Ozs7OztBQU1BLG1DQUFhLEdBQWIsRUFBa0IsV0FBbEIsRUFBK0IsU0FBL0IsRUFBMkM7QUFBQTs7QUFDMUMsT0FBSyxXQUFMLEdBQW1CLFdBQW5CO0FBQ0EsT0FBSyxTQUFMLEdBQWlCLFNBQWpCO0FBQ0EsT0FBSyxHQUFMLEdBQVcsR0FBWDtBQUNBLE1BQUksU0FBUyxJQUFJLElBQUosQ0FBUyxtQkFBVCxDQUFiO0FBQ0EsTUFBSSxVQUFVLElBQUksSUFBSixDQUFTLHdCQUFULENBQWQ7QUFDQSxPQUFLLE9BQUwsR0FBZSxzQkFBRyxNQUFILENBQWY7QUFDQSxNQUFLLFdBQVcsV0FBVyxRQUEzQixFQUFzQztBQUNyQyxRQUFLLFFBQUwsR0FBZ0Isc0JBQUcsT0FBSCxDQUFoQjtBQUNBLEdBRkQsTUFHSztBQUNKLFFBQUssUUFBTCxHQUFnQixzQkFBRyxNQUFILENBQWhCO0FBQ0E7O0FBRUQsT0FBSyxVQUFMO0FBQ0EsT0FBSyxFQUFMO0FBQ0E7Ozs7K0JBRVk7QUFDWjtBQUNBOzs7dUJBRUk7QUFDSixRQUFLLFFBQUwsQ0FBYyxFQUFkLENBQWtCLGVBQWxCLEVBQW1DLHFCQUFFLFFBQUYsQ0FBVyxZQUFVO0FBQ3ZELFNBQUssV0FBTDtBQUNBLElBRmtDLEVBRWhDLENBRmdDLEVBRTVCLElBRjRCLENBRXZCLElBRnVCLENBQW5DO0FBR0E7OztnQ0FFYTtBQUNiLE9BQUksS0FBSyxrQkFBTCxFQUFKLEVBQWdDO0FBQy9CLFNBQUssT0FBTCxDQUFhLFFBQWIsQ0FBdUIsS0FBSyxXQUE1QjtBQUNBLElBRkQsTUFHSztBQUNKLFNBQUssT0FBTCxDQUFhLFdBQWIsQ0FBMEIsS0FBSyxXQUEvQjtBQUNBO0FBQ0Q7OztpQ0FFYztBQUNkLE9BQUksT0FBTyxLQUFLLFNBQVosSUFBMEIsVUFBOUIsRUFBMkM7QUFDMUMsV0FBTyxLQUFLLFNBQUwsRUFBUDtBQUNBLElBRkQsTUFHSztBQUNKLFdBQU8sS0FBSyxTQUFaO0FBQ0E7QUFDRDs7O3VDQUVvQjtBQUNwQixPQUFJLFlBQVksS0FBSyxRQUFMLENBQWMsU0FBZCxFQUFoQjtBQUNBLFVBQVMsWUFBWSxLQUFLLFlBQUwsRUFBckI7QUFFQTs7Ozs7O2tCQXpEbUIsd0I7Ozs7Ozs7Ozs7Ozs7QUNKckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytCQUljO0FBQ1osUUFBSyxTQUFMLEdBQWlCLEtBQUssaUJBQUwsRUFBakI7QUFDQTs7O3NDQUVtQjtBQUNuQixVQUFPLEtBQUssUUFBTCxDQUFjLFNBQWQsRUFBUDtBQUNBOzs7Z0NBRWE7QUFDYixPQUFJLGFBQWEsS0FBSyxpQkFBTCxFQUFqQjs7QUFFQSxPQUFJLENBQUUsS0FBSyxrQkFBTCxFQUFOLEVBQWtDO0FBQ2pDLFNBQUssT0FBTCxDQUFhLFdBQWIsQ0FBMEIsS0FBSyxXQUEvQjtBQUNBLFNBQUssT0FBTCxDQUFhLElBQWIsQ0FBa0IsYUFBbEIsRUFBaUMsT0FBakM7QUFDQSxJQUhELE1BSUssSUFBSyxhQUFhLEtBQUssU0FBbEIsR0FBOEIsQ0FBbkMsRUFBdUM7QUFDM0M7QUFDQSxTQUFLLE9BQUwsQ0FBYSxRQUFiLENBQXVCLEtBQUssV0FBNUI7QUFDQSxTQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWtCLGFBQWxCLEVBQWlDLE1BQWpDO0FBQ0EsSUFKSSxNQUtBLElBQU0sYUFBYSxLQUFLLFNBQWxCLEdBQThCLENBQUUsQ0FBdEMsRUFBMEM7QUFDOUM7QUFDQSxTQUFLLE9BQUwsQ0FBYSxXQUFiLENBQTBCLEtBQUssV0FBL0I7QUFDQSxTQUFLLE9BQUwsQ0FBYSxJQUFiLENBQWtCLGFBQWxCLEVBQWlDLE9BQWpDO0FBQ0E7O0FBRUQsUUFBSyxTQUFMLEdBQWlCLFVBQWpCO0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQy9CRjs7Ozs7Ozs7SUFFcUIsTTtBQUVwQixpQkFBWSxHQUFaLEVBQWlCO0FBQUE7O0FBQ2hCLE9BQUssR0FBTCxHQUFXLEdBQVg7QUFDQSxPQUFLLFVBQUwsR0FBa0Isc0JBQUUsSUFBSSxJQUFKLENBQVMsMkJBQVQsQ0FBRixDQUFsQjtBQUNBLE9BQUssRUFBTCxHQUFVLElBQUksSUFBSixDQUFTLElBQVQsQ0FBVjtBQUNBLE9BQUssV0FBTCxHQUFtQixzQkFBRyxxQkFBbUIsS0FBSyxFQUF4QixHQUEyQixLQUE5QixDQUFuQjtBQUNBLE9BQUssVUFBTCxDQUFnQixRQUFoQixDQUF5QixrQkFBekI7QUFDQSxPQUFLLEVBQUw7QUFFQTs7Ozt1QkFFSTtBQUFBOztBQUNKLFFBQUssV0FBTCxDQUFpQixFQUFqQixDQUFvQixPQUFwQixFQUE2QixLQUFLLE1BQUwsQ0FBWSxJQUFaLENBQWlCLElBQWpCLENBQTdCO0FBQ0EsUUFBSyxHQUFMLENBQVMsRUFBVCxDQUFZLE9BQVosRUFBcUIsS0FBSyxLQUFMLENBQVcsSUFBWCxDQUFnQixJQUFoQixDQUFyQjtBQUNBLFFBQUssR0FBTCxDQUFTLFFBQVQsR0FBb0IsRUFBcEIsQ0FBdUIsT0FBdkIsRUFBZ0MsVUFBUyxLQUFULEVBQWU7QUFDOUMsVUFBTSxlQUFOO0FBQ0EsSUFGRDs7QUFJQSx5QkFBRSxRQUFGLEVBQVksRUFBWixDQUFlLE9BQWYsRUFBd0IsVUFBQyxLQUFELEVBQVc7QUFDbEMsUUFBSSxNQUFNLE9BQU4sSUFBaUIsRUFBckIsRUFBeUI7QUFDeEIsV0FBSyxLQUFMO0FBQ0E7QUFDRCxJQUpEOztBQU1BLFFBQUssR0FBTCxDQUFTLEVBQVQsQ0FBWSxlQUFaLEVBQTZCLEtBQUssYUFBTCxDQUFtQixJQUFuQixDQUF3QixJQUF4QixDQUE3QjtBQUNBOzs7a0NBRWU7QUFDZixRQUFLLEdBQUwsQ0FBUyxXQUFULENBQXFCLGFBQXJCO0FBQ0E7Ozt5QkFFTSxLLEVBQU87QUFDYixTQUFNLGNBQU47QUFDQSxPQUFLLEtBQUssR0FBTCxDQUFTLElBQVQsQ0FBYyxlQUFkLEtBQWtDLE9BQXZDLEVBQWlEO0FBQ2hELFNBQUssSUFBTDtBQUNBLElBRkQsTUFFTztBQUNOLFNBQUssS0FBTDtBQUNBO0FBQ0Q7Ozt5QkFFTTtBQUNOLFFBQUssR0FBTCxDQUFTLFFBQVQsQ0FBa0IsYUFBbEI7QUFDQSxRQUFLLEdBQUwsQ0FBUyxJQUFULENBQWMsZUFBZCxFQUE4QixNQUE5QjtBQUNBLFFBQUssR0FBTCxDQUFTLElBQVQsQ0FBYyxhQUFkLEVBQTRCLE9BQTVCO0FBQ0EsUUFBSyxXQUFMLENBQWlCLElBQWpCLENBQXNCLGVBQXRCLEVBQXNDLE1BQXRDO0FBQ0EsUUFBSyxVQUFMLENBQWdCLFFBQWhCLENBQXlCLGdCQUF6QjtBQUdBOzs7MEJBRU87QUFDUCxRQUFLLEdBQUwsQ0FBUyxRQUFULENBQWtCLGFBQWxCO0FBQ0EsUUFBSyxHQUFMLENBQVMsSUFBVCxDQUFjLGVBQWQsRUFBOEIsT0FBOUI7QUFDQSxRQUFLLEdBQUwsQ0FBUyxJQUFULENBQWMsYUFBZCxFQUE0QixNQUE1QjtBQUNBLFFBQUssV0FBTCxDQUFpQixJQUFqQixDQUFzQixlQUF0QixFQUFzQyxPQUF0QztBQUNBLFFBQUssVUFBTCxDQUFnQixXQUFoQixDQUE0QixnQkFBNUI7QUFDQTs7O3lCQUVhO0FBQ2IseUJBQUUsZUFBRixFQUFtQixJQUFuQixDQUF3QixZQUFVO0FBQ2pDLFFBQUksTUFBSixDQUFXLHNCQUFFLElBQUYsQ0FBWDtBQUNBLElBRkQ7QUFHQTs7Ozs7O2tCQS9EbUIsTTs7Ozs7OztBQ0ZyQjs7Ozs7OztBQU9BLENBQUUsWUFBVztBQUNaLEtBQUksV0FBVyxVQUFVLFNBQVYsQ0FBb0IsV0FBcEIsR0FBa0MsT0FBbEMsQ0FBMkMsUUFBM0MsSUFBd0QsQ0FBQyxDQUF4RTtBQUFBLEtBQ0MsVUFBVyxVQUFVLFNBQVYsQ0FBb0IsV0FBcEIsR0FBa0MsT0FBbEMsQ0FBMkMsT0FBM0MsSUFBd0QsQ0FBQyxDQURyRTtBQUFBLEtBRUMsT0FBVyxVQUFVLFNBQVYsQ0FBb0IsV0FBcEIsR0FBa0MsT0FBbEMsQ0FBMkMsTUFBM0MsSUFBd0QsQ0FBQyxDQUZyRTs7QUFJQSxLQUFLLENBQUUsWUFBWSxPQUFaLElBQXVCLElBQXpCLEtBQW1DLFNBQVMsY0FBNUMsSUFBOEQsT0FBTyxnQkFBMUUsRUFBNkY7QUFDNUYsU0FBTyxnQkFBUCxDQUF5QixZQUF6QixFQUF1QyxZQUFXO0FBQ2pELE9BQUksS0FBSyxTQUFTLElBQVQsQ0FBYyxTQUFkLENBQXlCLENBQXpCLENBQVQ7QUFBQSxPQUNDLE9BREQ7O0FBR0EsT0FBSyxDQUFJLGdCQUFnQixJQUFoQixDQUFzQixFQUF0QixDQUFULEVBQXdDO0FBQ3ZDO0FBQ0E7O0FBRUQsYUFBVSxTQUFTLGNBQVQsQ0FBeUIsRUFBekIsQ0FBVjs7QUFFQSxPQUFLLE9BQUwsRUFBZTtBQUNkLFFBQUssQ0FBSSx3Q0FBd0MsSUFBeEMsQ0FBOEMsUUFBUSxPQUF0RCxDQUFULEVBQTZFO0FBQzVFLGFBQVEsUUFBUixHQUFtQixDQUFDLENBQXBCO0FBQ0E7O0FBRUQsWUFBUSxLQUFSO0FBQ0E7QUFDRCxHQWpCRCxFQWlCRyxLQWpCSDtBQWtCQTtBQUNELENBekJEOzs7Ozs7QUNQQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFFQSxzQkFBRSxZQUFXO0FBQ1osdUJBQUUsZUFBRixFQUFtQixJQUFuQixDQUF3QixZQUFVO0FBQ2pDLHVCQUFXLHNCQUFFLElBQUYsQ0FBWDtBQUNBLEVBRkQ7QUFHQSxDQUpEOztBQU1BLHNCQUFFLFlBQVc7O0FBRVosS0FBSSxxQkFBcUIsc0JBQUUsOEVBQUYsQ0FBekI7QUFDQTtBQUNBLEtBQUksa0JBQWtCLHNCQUFHLFlBQUgsRUFBaUI7QUFDdEMsV0FBUyxpQkFENkI7QUFFdEMsbUJBQWlCO0FBRnFCLEVBQWpCLEVBR2xCLE1BSGtCLENBR1Ysc0JBQUcsVUFBSCxFQUFlO0FBQzFCLFdBQVMsb0JBRGlCO0FBRTFCLFFBQU0saUJBQWlCO0FBRkcsRUFBZixDQUhVLENBQXRCOztBQVFBLG9CQUFtQixRQUFuQixDQUE0QixHQUE1QixFQUFpQyxLQUFqQyxDQUF3QyxlQUF4Qzs7QUFHQSx1QkFBRSxrREFBRixFQUFzRCxJQUF0RCxDQUEyRCxZQUFZO0FBQ3RFLHdCQUFFLElBQUYsRUFBUSxJQUFSLENBQWEsZUFBYixFQUE2QixPQUE3QjtBQUNBLEVBRkQ7O0FBSUEsb0JBQW1CLElBQW5CLENBQXdCLGtCQUF4QixFQUE0QyxFQUE1QyxDQUFnRCxPQUFoRCxFQUF5RCxVQUFVLEtBQVYsRUFBaUI7QUFDekUsTUFBSSxPQUFPLHNCQUFFLElBQUYsQ0FBWDtBQUNBLE1BQUksV0FBVyxFQUFmO0FBQ0EsTUFBSSxVQUFVLEtBQUssSUFBTCxDQUFVLGVBQVYsQ0FBZCxFQUE0QztBQUMzQyxjQUFXLE9BQVg7QUFDQSxRQUFLLElBQUwsQ0FBVSxxQkFBVixFQUFpQyxJQUFqQyxDQUFzQyxpQkFBaUIsTUFBdkQ7QUFDQSxHQUhELE1BSUs7QUFDSixjQUFXLE1BQVg7QUFDQSxRQUFLLElBQUwsQ0FBVSxxQkFBVixFQUFpQyxJQUFqQyxDQUFzQyxpQkFBaUIsUUFBdkQ7QUFDQTtBQUNELE9BQUssSUFBTCxDQUFVLGVBQVYsRUFBMkIsUUFBM0I7O0FBRUEsT0FBSyxRQUFMLENBQWMscUJBQWQsRUFBcUMsSUFBckMsQ0FBMEMsZUFBMUMsRUFBMkQsUUFBM0Q7QUFDQSxFQWREO0FBZ0JBLENBbkNEOztBQXNDQSxzQkFBRSxZQUFXO0FBQ1osS0FBSSxhQUFhLHNCQUFFLGFBQUYsQ0FBakI7QUFDQSx1QkFBRSxNQUFGLEVBQVUsRUFBVixDQUFjLGFBQWQsRUFBNkIsWUFBTTtBQUNsQyxhQUFXLElBQVgsQ0FBZ0IscUJBQWhCLEVBQXVDLFdBQXZDLENBQW1ELDRCQUFuRDtBQUNBLEVBRkQ7QUFHQSxxQ0FBMkIsVUFBM0IsRUFBdUMsMkJBQXZDLEVBQW9FLEVBQXBFO0FBQ0EsNkJBQW1CLFVBQW5CLEVBQStCLDRCQUEvQixFQUE2RCxFQUE3RDtBQUNBLDZCQUFtQixVQUFuQjtBQUVBLENBVEQiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiBlKHQsbixyKXtmdW5jdGlvbiBzKG8sdSl7aWYoIW5bb10pe2lmKCF0W29dKXt2YXIgYT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2lmKCF1JiZhKXJldHVybiBhKG8sITApO2lmKGkpcmV0dXJuIGkobywhMCk7dmFyIGY9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitvK1wiJ1wiKTt0aHJvdyBmLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsZn12YXIgbD1uW29dPXtleHBvcnRzOnt9fTt0W29dWzBdLmNhbGwobC5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciBuPXRbb11bMV1bZV07cmV0dXJuIHMobj9uOmUpfSxsLGwuZXhwb3J0cyxlLHQsbixyKX1yZXR1cm4gbltvXS5leHBvcnRzfXZhciBpPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7Zm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspcyhyW29dKTtyZXR1cm4gc30pIiwiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGVudFNwYWNlciB7XG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0ge2pRdWVyeX0gJGVsXG5cdCAqL1xuXHRjb25zdHJ1Y3RvciggJGVsICkge1xuXHRcdHRoaXMuJGVsID0gJGVsO1xuXHRcdGxldCBoZWFkZXIgPSAkZWwuZGF0YSgnYXBwLWxheW91dC1oZWFkZXInKTtcblx0XHRsZXQgY29udGVudCA9ICRlbC5kYXRhKCdhcHAtbGF5b3V0LXNwYWNlcicpO1xuXG5cdFx0dGhpcy4kaGVhZGVyID0gJCggaGVhZGVyICk7XG5cdFx0dGhpcy4kY29udGVudCA9ICQoIGNvbnRlbnQgKTtcblx0XHR0aGlzLm9uKCk7XG5cdH1cblxuXHRvbigpIHtcblx0XHQkKHdpbmRvdykub24oICdsb2FkIHJlc2l6ZScsICgpID0+IHtcblx0XHRcdHRoaXMuc2V0UGFkZGluZygpXG5cdFx0fSApO1xuXHR9XG5cblx0c2V0UGFkZGluZygpIHtcblx0XHR0aGlzLiRjb250ZW50LmNzcyh7cGFkZGluZ1RvcDogdGhpcy5nZXRIZWFkZXJIZWlnaHQoKSArICdweCd9KTtcblx0fVxuXG5cdGdldEhlYWRlckhlaWdodCgpIHtcblxuXHRcdHJldHVybiB0aGlzLiRoZWFkZXIuaGVpZ2h0KCk7XG5cdH1cbn0iLCJpbXBvcnQgJCBmcm9tICdqcXVlcnknO1xuaW1wb3J0IF8gZnJvbSAndW5kZXJzY29yZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXBwTGF5b3V0Q2xhc3NDb250cm9sbGVyIHtcblx0LyoqXG5cdCAqXG5cdCAqIEBwYXJhbSAkZWxcblx0ICogQHBhcmFtIGNsYXNzU3RyaW5nXG5cdCAqIEBwYXJhbSB0aHJlc2hvbGQg44Kv44Op44K544Gu6Kit5a6a44KS44GZ44KL44Gf44KB44Gu44K544Kv44Ot44O844Or5L2N572uXG5cdCAqL1xuXHRjb25zdHJ1Y3RvciggJGVsLCBjbGFzc1N0cmluZywgdGhyZXNob2xkICkge1xuXHRcdHRoaXMuY2xhc3NTdHJpbmcgPSBjbGFzc1N0cmluZztcblx0XHR0aGlzLnRocmVzaG9sZCA9IHRocmVzaG9sZDtcblx0XHR0aGlzLiRlbCA9ICRlbDtcblx0XHRsZXQgaGVhZGVyID0gJGVsLmRhdGEoJ2FwcC1sYXlvdXQtaGVhZGVyJyk7XG5cdFx0bGV0IGNvbnRlbnQgPSAkZWwuZGF0YSgnYXBwLWxheW91dC1zY3JvbGwtYXJlYScpO1xuXHRcdHRoaXMuJGhlYWRlciA9ICQoIGhlYWRlciApO1xuXHRcdGlmICggY29udGVudCAmJiBjb250ZW50ICE9ICd3aW5kb3cnICkge1xuXHRcdFx0dGhpcy4kY29udGVudCA9ICQoIGNvbnRlbnQgKTtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLiRjb250ZW50ID0gJCggd2luZG93ICk7XG5cdFx0fVxuXG5cdFx0dGhpcy5pbml0aWFsaXplKCk7XG5cdFx0dGhpcy5vbigpO1xuXHR9XG5cblx0aW5pdGlhbGl6ZSgpIHtcblx0XHQvL2ZvciBvdmVycmlkZVxuXHR9XG5cblx0b24oKSB7XG5cdFx0dGhpcy4kY29udGVudC5vbiggJ3Njcm9sbCByZXNpemUnLCBfLnRocm90dGxlKGZ1bmN0aW9uKCl7XG5cdFx0XHR0aGlzLnRvZ2dsZUNsYXNzKCk7XG5cdFx0fSwgMSApLmJpbmQodGhpcykgKTtcblx0fVxuXG5cdHRvZ2dsZUNsYXNzKCkge1xuXHRcdGlmKCB0aGlzLmlzRXhjZWVkc1RocmVzaG9sZCgpICkge1xuXHRcdFx0dGhpcy4kaGVhZGVyLmFkZENsYXNzKCB0aGlzLmNsYXNzU3RyaW5nICk7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy4kaGVhZGVyLnJlbW92ZUNsYXNzKCB0aGlzLmNsYXNzU3RyaW5nICk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0VGhyZXNob2xkKCkge1xuXHRcdGlmKCB0eXBlb2YgdGhpcy50aHJlc2hvbGQgID09IFwiZnVuY3Rpb25cIiApIHtcblx0XHRcdHJldHVybiB0aGlzLnRocmVzaG9sZCgpO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHJldHVybiB0aGlzLnRocmVzaG9sZDtcblx0XHR9XG5cdH1cblxuXHRpc0V4Y2VlZHNUaHJlc2hvbGQoKSB7XG5cdFx0bGV0IHNjcm9sbFRvcCA9IHRoaXMuJGNvbnRlbnQuc2Nyb2xsVG9wKCk7XG5cdFx0cmV0dXJuICggc2Nyb2xsVG9wID4gdGhpcy5nZXRUaHJlc2hvbGQoKSApO1xuXG5cdH1cbn1cblxuIiwiaW1wb3J0IEhlYWRlckNsYXNzQ29udHJvbGxlciBmcm9tICcuL0hlYWRlckNsYXNzQ29udHJvbGxlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIGV4dGVuZHMgSGVhZGVyQ2xhc3NDb250cm9sbGVyIHtcblxuXHRpbml0aWFsaXplKCkge1xuXHRcdHRoaXMuc2Nyb2xsUG9zID0gdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpO1xuXHR9XG5cblx0Z2V0U2Nyb2xsUG9zaXRpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuJGNvbnRlbnQuc2Nyb2xsVG9wKCk7XG5cdH1cblxuXHR0b2dnbGVDbGFzcygpIHtcblx0XHRsZXQgY3VycmVudFBvcyA9IHRoaXMuZ2V0U2Nyb2xsUG9zaXRpb24oKTtcblxuXHRcdGlmKCAhIHRoaXMuaXNFeGNlZWRzVGhyZXNob2xkKCkgKSB7XG5cdFx0XHR0aGlzLiRoZWFkZXIucmVtb3ZlQ2xhc3MoIHRoaXMuY2xhc3NTdHJpbmcgKTtcblx0XHRcdHRoaXMuJGhlYWRlci5hdHRyKCdhcmlhLWhpZGRlbicsICdmYWxzZScpO1xuXHRcdH1cblx0XHRlbHNlIGlmKCAgY3VycmVudFBvcyAtIHRoaXMuc2Nyb2xsUG9zID4gNSApIHtcblx0XHRcdC8vc2Nyb2xsIHRvIGRvd25cblx0XHRcdHRoaXMuJGhlYWRlci5hZGRDbGFzcyggdGhpcy5jbGFzc1N0cmluZyApO1xuXHRcdFx0dGhpcy4kaGVhZGVyLmF0dHIoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAoICBjdXJyZW50UG9zIC0gdGhpcy5zY3JvbGxQb3MgPCAtIDUgKSB7XG5cdFx0XHQvL3Njcm9sbCB0byB1cFxuXHRcdFx0dGhpcy4kaGVhZGVyLnJlbW92ZUNsYXNzKCB0aGlzLmNsYXNzU3RyaW5nICk7XG5cdFx0XHR0aGlzLiRoZWFkZXIuYXR0cignYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTtcblx0XHR9XG5cblx0XHR0aGlzLnNjcm9sbFBvcyA9IGN1cnJlbnRQb3M7XG5cdH1cblxufVxuIiwiaW1wb3J0ICQgZnJvbSAnanF1ZXJ5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJhd2VyIHtcblxuXHRjb25zdHJ1Y3RvcigkZWwpIHtcblx0XHR0aGlzLiRlbCA9ICRlbDtcblx0XHR0aGlzLiRjb250YWluZXIgPSAkKCRlbC5kYXRhKFwiZHJhd2VyLWNvbnRhaW5lci1zZWxlY3RvclwiKSk7XG5cdFx0dGhpcy5pZCA9ICRlbC5hdHRyKCdpZCcpO1xuXHRcdHRoaXMuJGNvbnRyb2xsZXIgPSAkKCAnW2FyaWEtY29udHJvbHM9XCInK3RoaXMuaWQrJ1wiIF0nICk7XG5cdFx0dGhpcy4kY29udGFpbmVyLmFkZENsYXNzKFwiZHJhd2VyLWNvbnRhaW5lclwiKTtcblx0XHR0aGlzLm9uKCk7XG5cblx0fVxuXG5cdG9uKCkge1xuXHRcdHRoaXMuJGNvbnRyb2xsZXIub24oJ2NsaWNrJywgdGhpcy50b2dnbGUuYmluZCh0aGlzKSk7XG5cdFx0dGhpcy4kZWwub24oJ2NsaWNrJywgdGhpcy5jbG9zZS5iaW5kKHRoaXMpKTtcblx0XHR0aGlzLiRlbC5jaGlsZHJlbigpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGV2ZW50KXtcblx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdH0pXG5cblx0XHQkKGRvY3VtZW50KS5vbigna2V5dXAnLCAoZXZlbnQpID0+IHtcblx0XHRcdGlmIChldmVudC5rZXlDb2RlID09IDI3KSB7XG5cdFx0XHRcdHRoaXMuY2xvc2UoKTtcblx0XHRcdH1cblx0XHR9KVxuXG5cdFx0dGhpcy4kZWwub24oJ3RyYW5zaXRpb25lbmQnLCB0aGlzLnRyYW5zaXRpb25lbmQuYmluZCh0aGlzKSk7XG5cdH1cblxuXHR0cmFuc2l0aW9uZW5kKCkge1xuXHRcdHRoaXMuJGVsLnJlbW92ZUNsYXNzKCdpcy1hbmltYXRlZCcpO1xuXHR9XG5cblx0dG9nZ2xlKGV2ZW50KSB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRpZiAoIHRoaXMuJGVsLmF0dHIoJ2FyaWEtZXhwYW5kZWQnKSA9PSBcImZhbHNlXCIgKSB7XG5cdFx0XHR0aGlzLm9wZW4oKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jbG9zZSgpO1xuXHRcdH1cblx0fVxuXG5cdG9wZW4oKSB7XG5cdFx0dGhpcy4kZWwuYWRkQ2xhc3MoJ2lzLWFuaW1hdGVkJyk7XG5cdFx0dGhpcy4kZWwuYXR0cignYXJpYS1leHBhbmRlZCcsXCJ0cnVlXCIpO1xuXHRcdHRoaXMuJGVsLmF0dHIoJ2FyaWEtaGlkZGVuJyxcImZhbHNlXCIpO1xuXHRcdHRoaXMuJGNvbnRyb2xsZXIuYXR0cignYXJpYS1leHBhbmRlZCcsXCJ0cnVlXCIpO1xuXHRcdHRoaXMuJGNvbnRhaW5lci5hZGRDbGFzcyhcImlzLWRyYXdlci1vcGVuXCIpO1xuXG5cblx0fVxuXG5cdGNsb3NlKCkge1xuXHRcdHRoaXMuJGVsLmFkZENsYXNzKCdpcy1hbmltYXRlZCcpO1xuXHRcdHRoaXMuJGVsLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLFwiZmFsc2VcIik7XG5cdFx0dGhpcy4kZWwuYXR0cignYXJpYS1oaWRkZW4nLFwidHJ1ZVwiKTtcblx0XHR0aGlzLiRjb250cm9sbGVyLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLFwiZmFsc2VcIik7XG5cdFx0dGhpcy4kY29udGFpbmVyLnJlbW92ZUNsYXNzKFwiaXMtZHJhd2VyLW9wZW5cIik7XG5cdH1cblxuXHRzdGF0aWMgaW5pdCgpIHtcblx0XHQkKFwiW2RhdGEtZHJhd2VyXVwiKS5lYWNoKGZ1bmN0aW9uKCl7XG5cdFx0XHRuZXcgRHJhd2VyKCQodGhpcykpO1xuXHRcdH0pO1xuXHR9XG59IiwiLyoqXG4gKiBGaWxlIHNraXAtbGluay1mb2N1cy1maXguanMuXG4gKlxuICogSGVscHMgd2l0aCBhY2Nlc3NpYmlsaXR5IGZvciBrZXlib2FyZCBvbmx5IHVzZXJzLlxuICpcbiAqIExlYXJuIG1vcmU6IGh0dHBzOi8vZ2l0LmlvL3ZXZHIyXG4gKi9cbiggZnVuY3Rpb24oKSB7XG5cdHZhciBpc1dlYmtpdCA9IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCAnd2Via2l0JyApID4gLTEsXG5cdFx0aXNPcGVyYSAgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZiggJ29wZXJhJyApICA+IC0xLFxuXHRcdGlzSWUgICAgID0gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoICdtc2llJyApICAgPiAtMTtcblxuXHRpZiAoICggaXNXZWJraXQgfHwgaXNPcGVyYSB8fCBpc0llICkgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQgJiYgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIgKSB7XG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICdoYXNoY2hhbmdlJywgZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgaWQgPSBsb2NhdGlvbi5oYXNoLnN1YnN0cmluZyggMSApLFxuXHRcdFx0XHRlbGVtZW50O1xuXG5cdFx0XHRpZiAoICEgKCAvXltBLXowLTlfLV0rJC8udGVzdCggaWQgKSApICkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggaWQgKTtcblxuXHRcdFx0aWYgKCBlbGVtZW50ICkge1xuXHRcdFx0XHRpZiAoICEgKCAvXig/OmF8c2VsZWN0fGlucHV0fGJ1dHRvbnx0ZXh0YXJlYSkkL2kudGVzdCggZWxlbWVudC50YWdOYW1lICkgKSApIHtcblx0XHRcdFx0XHRlbGVtZW50LnRhYkluZGV4ID0gLTE7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRlbGVtZW50LmZvY3VzKCk7XG5cdFx0XHR9XG5cdFx0fSwgZmFsc2UgKTtcblx0fVxufSkoKTtcbiIsImltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgRHJhd2VyIGZyb20gJy4vRHJhd2VyJztcbmltcG9ydCBIZWFkZXJDbGFzc0NvbnRyb2xsZXIgZnJvbSAnLi9BcHBMYXlvdXQvSGVhZGVyQ2xhc3NDb250cm9sbGVyJztcbmltcG9ydCBIZWFkZXJFc2NhcGVyIGZyb20gJy4vQXBwTGF5b3V0L0hlYWRlckVzY2FwZXInO1xuaW1wb3J0IENvbnRlbnRTcGFjZXIgZnJvbSAnLi9BcHBMYXlvdXQvQ29udGVudFNwYWNlcic7XG5pbXBvcnQgJy4vc2tpcC1saW5rLWZvY3VzLWZpeCc7XG5cbiQoZnVuY3Rpb24oKSB7XG5cdCQoXCJbZGF0YS1kcmF3ZXJdXCIpLmVhY2goZnVuY3Rpb24oKXtcblx0XHRuZXcgRHJhd2VyKCQodGhpcykpO1xuXHR9KTtcbn0pO1xuXG4kKGZ1bmN0aW9uKCkge1xuXG5cdGxldCAkdG9wbGV2ZWxNZW51SXRlbXMgPSAkKCcucHJpbWFyeS1tZW51IC5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLCAucHJpbWFyeS1tZW51IC5wYWdlX2l0ZW1faGFzX2NoaWxkcmVuJyk7XG5cdC8vIEFkZCBkcm9wZG93biB0b2dnbGUgdGhhdCBkaXNwbGF5cyBjaGlsZCBtZW51IGl0ZW1zLlxuXHRsZXQgJGRyb3Bkb3duVG9nZ2xlID0gJCggJzxidXR0b24gLz4nLCB7XG5cdFx0J2NsYXNzJzogJ2Ryb3Bkb3duLXRvZ2dsZScsXG5cdFx0J2FyaWEtZXhwYW5kZWQnOiBmYWxzZVxuXHR9ICkuYXBwZW5kKCAkKCAnPHNwYW4gLz4nLCB7XG5cdFx0J2NsYXNzJzogJ3NjcmVlbi1yZWFkZXItdGV4dCcsXG5cdFx0dGV4dDogc2NyZWVuUmVhZGVyVGV4dC5leHBhbmRcblx0fSApICk7XG5cblx0JHRvcGxldmVsTWVudUl0ZW1zLmNoaWxkcmVuKCdhJykuYWZ0ZXIoICRkcm9wZG93blRvZ2dsZSApO1xuXG5cblx0JChcIi5wcmltYXJ5LW1lbnUgLnN1Yi1tZW51LCAucHJpbWFyeS1tZW51IC5jaGlsZHJlblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcblx0XHQkKHRoaXMpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLFwiZmFsc2VcIik7XG5cdH0pO1xuXG5cdCR0b3BsZXZlbE1lbnVJdGVtcy5maW5kKCcuZHJvcGRvd24tdG9nZ2xlJykub24oICdjbGljaycsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdGxldCBzZWxmID0gJCh0aGlzKTtcblx0XHRsZXQgZXhwYW5kZWQgPSAnJztcblx0XHRpZiggJ3RydWUnID09IHNlbGYuYXR0cignYXJpYS1leHBhbmRlZCcpICApIHtcblx0XHRcdGV4cGFuZGVkID0gJ2ZhbHNlJztcblx0XHRcdHNlbGYuZmluZCgnLnNjcmVlbi1yZWFkZXItdGV4dCcpLnRleHQoc2NyZWVuUmVhZGVyVGV4dC5leHBhbmQpO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdGV4cGFuZGVkID0gJ3RydWUnO1xuXHRcdFx0c2VsZi5maW5kKCcuc2NyZWVuLXJlYWRlci10ZXh0JykudGV4dChzY3JlZW5SZWFkZXJUZXh0LmNvbGxhcHNlKTtcblx0XHR9XG5cdFx0c2VsZi5hdHRyKCdhcmlhLWV4cGFuZGVkJywgZXhwYW5kZWQpO1xuXG5cdFx0c2VsZi5zaWJsaW5ncygnLnN1Yi1tZW51LC5jaGlsZHJlbicpLmF0dHIoJ2FyaWEtZXhwYW5kZWQnLCBleHBhbmRlZCk7XG5cdH0pXG5cbn0pO1xuXG5cbiQoZnVuY3Rpb24oKSB7XG5cdGxldCAkYXBwTGF5b3V0ID0gJChcIi5hcHAtbGF5b3V0XCIpO1xuXHQkKHdpbmRvdykub24oICdsb2FkIHJlc2l6ZScsICgpID0+IHtcblx0XHQkYXBwTGF5b3V0LmZpbmQoXCIuYXBwLWxheW91dF9faGVhZGVyXCIpLnJlbW92ZUNsYXNzKFwiYXBwLWxheW91dF9faGVhZGVyLS1zdGF0aWNcIik7XG5cdH0gKTtcblx0bmV3IEhlYWRlckNsYXNzQ29udHJvbGxlciggJGFwcExheW91dCwgXCJhcHAtbGF5b3V0X19oZWFkZXItLWZpeGVkXCIsIDQ2ICk7XG5cdG5ldyBIZWFkZXJFc2NhcGVyKCAkYXBwTGF5b3V0LCBcImFwcC1sYXlvdXRfX2hlYWRlci0tZXNjYXBlXCIsIDY0ICk7XG5cdG5ldyBDb250ZW50U3BhY2VyKCAkYXBwTGF5b3V0ICk7XG5cbn0pO1xuXG4iXX0= diff --git a/wp-content/themes/vanilla/comments.php b/wp-content/themes/vanilla/comments.php index a50e65d24b7633086f1c3542eff286f5962a0574..d3a15e38a8cc2c2fe80cdfc165788002ea0ba0f1 100644 --- a/wp-content/themes/vanilla/comments.php +++ b/wp-content/themes/vanilla/comments.php @@ -24,10 +24,12 @@ if ( post_password_required() ) { <?php // You can start editing here -- including this comment! - if ( have_comments() ) : ?> + if ( have_comments() ) : + ?> <h4 class="comments-area__title"> <?php printf( // WPCS: XSS OK. + /* translators: %1$s: comments count. %2$s: Post Title. */ esc_html( _nx( '%1$s thought on “%2$s”', '%1$s thoughts on “%2$s”', get_comments_number(), 'comments title', 'vanilla' ) ), number_format_i18n( get_comments_number() ), '<span>' . get_the_title() . '</span>' @@ -65,7 +67,8 @@ if ( post_password_required() ) { endif; // Check for have_comments(). // If comments are closed and there are comments, let's leave a little note, shall we? - if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : ?> + if ( ! comments_open() && get_comments_number() && post_type_supports( get_post_type(), 'comments' ) ) : + ?> <p class="no-comments"><?php esc_html_e( 'Comments are closed.', 'vanilla' ); ?></p> <?php diff --git a/wp-content/themes/vanilla/footer.php b/wp-content/themes/vanilla/footer.php index bdccf98d00ae39773ee2d2c14e47764070c09426..09322adf51ab45665034ca072d6de1168f88c049 100644 --- a/wp-content/themes/vanilla/footer.php +++ b/wp-content/themes/vanilla/footer.php @@ -24,10 +24,16 @@ <?php endif; ?> <p class="text-small"> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'vanilla' ) ); ?>"><?php printf( esc_html__( 'Proudly powered by %s', 'vanilla' ), 'WordPress' ); ?></a> + <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'vanilla' ) ); ?>"> + <?php + /* translators: %s = WordPress */ printf( esc_html__( 'Proudly powered by %s', 'vanilla' ), 'WordPress' ); + ?> + </a> <span class="sep"> | </span> <?php - printf( esc_html__( 'Theme: %1$s by %2$s.', 'vanilla' ), 'Vanilla', '<a href="' . esc_url( __( 'https://torounit.com', 'vanilla' ) ) . '" target="_blank">' . esc_html__( 'Toro_Unit', 'vanilla' ) . '</a>' ); ?> + /* translators: %1$s = Theme Name. %2$s = link author site. */ + printf( esc_html__( 'Theme: %1$s by %2$s.', 'vanilla' ), 'Vanilla', '<a href="' . esc_url( __( 'https://torounit.com', 'vanilla' ) ) . '" target="_blank">' . esc_html__( 'Toro_Unit', 'vanilla' ) . '</a>' ); + ?> </p> </div> </div> diff --git a/wp-content/themes/vanilla/header.php b/wp-content/themes/vanilla/header.php index a14c57d3cf603a6aa1881e3bbfcaf2afdc33ea6d..c2dd220c0da7c0c169cb645020cba6e3c1b3da37 100644 --- a/wp-content/themes/vanilla/header.php +++ b/wp-content/themes/vanilla/header.php @@ -23,8 +23,8 @@ <body <?php body_class(); ?>> <a class="skip-link screen-reader-text" href="#content"><?php esc_html_e( 'Skip to content', 'vanilla' ); ?></a> -<div id="page" class="site [ app-layout <?php if ( ! is_front_page() ) : ?>app-layout--disable<?php endif;?> ]" data-app-layout-header=".app-layout__header" data-app-layout-spacer=".app-layout__spacer" data-app-layout-scroll-area="window"> - <header class="app-layout__header" aria-hidden="false" role="banner"> +<div id="page" class="site app-layout" data-app-layout-header=".app-layout__header" data-app-layout-spacer=".app-layout__spacer" data-app-layout-scroll-area="window"> + <header class="app-layout__header <?php echo ( ! is_front_page() ) ? 'app-layout__header--static' : ''; ?>" aria-hidden="false" role="banner"> <div class="navbar container"> <div class="navbar__branding"> <div class="site-branding"> @@ -33,7 +33,7 @@ <h1 class="site-branding__name site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1> <?php else : ?> <p class="site-branding__name site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p> - <?php endif;?> + <?php endif; ?> </div> </div> @@ -45,46 +45,46 @@ </header> - <nav class="drawer" - role="navigation" - data-drawer - data-drawer-container-selector="body" - id="primary-menu" - aria-hidden="true" - aria-expanded="false"> + <nav class="drawer" role="navigation" data-drawer data-drawer-container-selector="body" id="primary-menu" aria-hidden="true" aria-expanded="false"> <div class="drawer__body primary-menu"> <div class="drawer__search"> - <?php get_search_form();?> + <?php get_search_form(); ?> </div> - <?php wp_nav_menu( array( + <?php + wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'primary-menu__links', - ) );?> + ) ); + ?> </div> </nav> - <div class="site-content [ app-layout__content ]"> + <div class="site-content app-layout__content"> - <?php if ( is_front_page() and ! is_paged() ) : ?> - <div id="masthead" class="app-layout__spacer custom-header <?php if ( get_header_image() ) : ?> custom-header--has-image <?php endif;?>" role="banner"> + <?php if ( is_front_page() && ! is_paged() ) : ?> + <div id="masthead" class="app-layout__spacer custom-header + <?php + if ( get_header_image() ) : +?> + custom-header--has-image <?php endif; ?>" role="banner"> <div class="custom-header__media custom-header-media "> - <?php the_custom_header_markup();?> + <?php the_custom_header_markup(); ?> </div> <div class="custom-header__branding"> <div class="container"> - <p class="site-title [ custom-header__title ]"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p> - <p class="site-description [ custom-header__description ]"><?php bloginfo( 'description' ); ?></p> + <p class="site-title custom-header__title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p> + <p class="site-description custom-header__description"><?php bloginfo( 'description' ); ?></p> </div> </div> </div> <?php else : ?> <div class="app-layout__spacer"></div> - <?php endif;?> + <?php endif; ?> <div id="content" class="content-area"> diff --git a/wp-content/themes/vanilla/inc/custom-header.php b/wp-content/themes/vanilla/inc/custom-header.php index a8200cd030d4c56e9f16145d74238124ee141787..27612489452803ae9db76415b6fc6a9a59799f2c 100644 --- a/wp-content/themes/vanilla/inc/custom-header.php +++ b/wp-content/themes/vanilla/inc/custom-header.php @@ -73,8 +73,8 @@ function vanilla_header_style() { ?> <style id="vanilla-custom-header-styles" type="text/css"> <?php - // Has the text been hidden? - if ( 'blank' === $header_text_color ) : + // Has the text been hidden? + if ( 'blank' === $header_text_color ) : ?> .custom-header__branding { position: absolute; @@ -82,12 +82,14 @@ function vanilla_header_style() { } <?php // If the user has set a custom color for the text use that. - else : + else : ?> .custom-header { color: #<?php echo esc_attr( $header_text_color ); ?>; } - <?php endif; ?> + <?php + endif; + ?> </style> <?php } diff --git a/wp-content/themes/vanilla/inc/customizer.php b/wp-content/themes/vanilla/inc/customizer.php index e0116163a084c246300fa90b3dcd951d0ea0eb65..47503307ee19dcf22cab5829cc2c018a11cc192e 100644 --- a/wp-content/themes/vanilla/inc/customizer.php +++ b/wp-content/themes/vanilla/inc/customizer.php @@ -239,7 +239,8 @@ function vanilla_sanitize_posts_layout_on_front_page( $input ) { function vanilla_color_css() { foreach ( vanilla_get_customize_color_settings() as $key => $param ) { - if ( $value = get_theme_mod( $key ) ) { + $value = get_theme_mod( $key ); + if ( $value ) { $css = vanilla_create_css( $param['selector'], $param['property'], $value ); } else { $css = vanilla_create_css( $param['selector'], $param['property'], $param['default'] ); diff --git a/wp-content/themes/vanilla/inc/template-tags.php b/wp-content/themes/vanilla/inc/template-tags.php index bbc6574d5726cdfcd44e51684f807eaf0adebd60..303db34685d2ca9f8007cf55a65af509fa0571c6 100644 --- a/wp-content/themes/vanilla/inc/template-tags.php +++ b/wp-content/themes/vanilla/inc/template-tags.php @@ -62,6 +62,7 @@ if ( ! function_exists( 'vanilla_entry_meta' ) ) : if ( ! is_single() && ! post_password_required() && ( comments_open() || get_comments_number() ) ) { echo '<span class="comments-link entry-meta__item">'; echo '<span class="entry-meta__icon dashicons dashicons-admin-comments"></span>'; + /* translators: %s: Name of current post */ comments_popup_link( sprintf( __( 'Leave a comment<span class="screen-reader-text"> on %s</span>', 'vanilla' ), get_the_title() ) ); echo '</span>'; } @@ -75,6 +76,7 @@ if ( ! function_exists( 'vanilla_entry_footer' ) ) : * Prints HTML with meta information for the categories, tags and comments. */ function vanilla_entry_footer() { + /* translators: %s: Name of current post */ edit_post_link( sprintf( esc_html__( 'Edit %s', 'vanilla' ), the_title( '<span class="screen-reader-text">"', '"</span>', false ) ), '<span class="edit-link">', '</span>' ); } endif; @@ -86,7 +88,7 @@ endif; * @param WP_Customize_Partial|null $partial WP_Customize_Partial object. * @param int $id panel ID. */ -function vanilla_front_page_section( $partial = null, $id = 0 ) { +function vanilla_front_page_section( $partial = null, $id = 0 ) { if ( is_a( $partial, 'WP_Customize_Partial' ) ) { // Find out the id and set it up during a selective refresh. @@ -108,9 +110,14 @@ function vanilla_front_page_section( $partial = null, $id = 0 ) { } elseif ( is_customize_preview() ) { // The output placeholder anchor. ?> - <article class="entry panel panel--placeholder" id="panel<?php echo esc_attr( $id );?>"> + <article class="entry panel panel--placeholder" id="panel<?php echo esc_attr( $id ); ?>"> <div class="entry__body container"> - <div class="panel__content"><?php echo esc_html( sprintf( __( 'Front Page Section %1$s Placeholder', 'vanilla' ), $id ) );?></div> + <div class="panel__content"> + <?php + /* translators: %1$s: Section Number */ + echo esc_html( sprintf( __( 'Front Page Section %1$s Placeholder', 'vanilla' ), $id ) ); + ?> + </div> </div> </article> <?php diff --git a/wp-content/themes/vanilla/index.php b/wp-content/themes/vanilla/index.php index 95c04763ea37d95d4a8ffd12f160ab6170a9edb5..07b7810f1e89b9c28d2261f59e40e0c4390f0b3c 100644 --- a/wp-content/themes/vanilla/index.php +++ b/wp-content/themes/vanilla/index.php @@ -13,16 +13,26 @@ get_header(); ?> <?php do_action( 'vanilla_site_main_prepend' ); ?> <?php - if ( have_posts() ) :?> + if ( have_posts() ) : + ?> <?php if ( ! is_front_page() ) : ?> <header class="archive-header"> <div class="container"> <?php if ( is_search() ) : ?> - <h1 class="archive-header__title"><?php printf( esc_html__( 'Search Results for: %s', 'vanilla' ), '<span>' . get_search_query() . '</span>' ); ?></h1> + <h1 class="archive-header__title"> + <?php + /* translators: %s: Search keyword */ + printf( esc_html__( 'Search Results for: %s', 'vanilla' ), '<span>' . get_search_query() . '</span>' ); + ?> + </h1> <?php elseif ( is_home() ) : ?> - <h1 class="archive-header__title"><?php single_post_title(); ?></h1> + <h1 class="archive-header__title"> + <?php single_post_title(); ?> + </h1> <?php else : ?> - <h1 class="archive-header__title"><?php the_archive_title(); ?></h1> + <h1 class="archive-header__title"> + <?php the_archive_title(); ?> + </h1> <?php echo term_description(); ?> <?php endif; ?> @@ -31,7 +41,8 @@ get_header(); ?> <?php endif; ?> <?php - while ( have_posts() ) : the_post(); + while ( have_posts() ) : + the_post(); get_template_part( 'template-parts/content' ); endwhile; @@ -41,13 +52,15 @@ get_header(); ?> 'before_page_number' => '<span class="pagination__numbers">', 'after_page_number' => '</span>', - ) ); ?> + ) ); + ?> <?php else : get_template_part( 'template-parts/content', 'none' ); - endif; ?> + endif; + ?> <?php if ( is_active_sidebar( 'site-main-tail-widget' ) ) : ?> <div class="container"> diff --git a/wp-content/themes/vanilla/readme.txt b/wp-content/themes/vanilla/readme.txt index dac56d405ee3593d2b88f67e6d5faa7f2a73ac42..b85b08a7b80885451251d55730f05dea92b43072 100644 --- a/wp-content/themes/vanilla/readme.txt +++ b/wp-content/themes/vanilla/readme.txt @@ -4,7 +4,7 @@ Donate link: https://www.amazon.co.jp/registry/wishlist/COKSXS25MVQV Tags: one-column, custom-logo, custom-colors, custom-header, custom-menu, custom-background, editor-style, sticky-post, microformats, featured-image-header, featured-images, footer-widgets, threaded-comments, translation-ready, blog, news, photography, portfolio, food-and-drink Requires at least: 4.7 Tested up to: 4.7 -Stable tag: 1.6.4 +Stable tag: 2.0.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -67,6 +67,10 @@ License: GPL2.0+ == Changelog == += 2.0.0 = +* Update Base fonts. +* Fix gallery gutter. + = 1.6.4 = * Fix hr style. diff --git a/wp-content/themes/vanilla/searchform.php b/wp-content/themes/vanilla/searchform.php index 706113101fb9dc3e9eb35dff6a097c553d24c69b..e8da5bae60e3f17c9056cba3c0c53b853e3114d5 100644 --- a/wp-content/themes/vanilla/searchform.php +++ b/wp-content/themes/vanilla/searchform.php @@ -11,13 +11,11 @@ <form role="search" method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>"> <label> - <span class="screen-reader-text"><?php esc_attr_e( 'Search for:', 'vanilla' ) ?></span> - <input type="search" class="search-field" - placeholder="<?php esc_attr_e( 'Search …', 'vanilla' ) ?>" value="<?php echo get_search_query() ?>" - name="s" title="<?php esc_attr_e( 'Search for:', 'vanilla' ) ?>"/> + <span class="screen-reader-text"><?php esc_attr_e( 'Search for:', 'vanilla' ); ?></span> + <input type="search" class="search-field" placeholder="<?php esc_attr_e( 'Search …', 'vanilla' ); ?>" value="<?php echo get_search_query(); ?>" name="s" title="<?php esc_attr_e( 'Search for:', 'vanilla' ); ?>"/> </label> <button type="submit" class="search-submit"> <span class="dashicons dashicons-search"></span> - <span class="screen-reader-text"><?php esc_html_e( 'Search', 'vanilla' ) ?></span> + <span class="screen-reader-text"><?php esc_html_e( 'Search', 'vanilla' ); ?></span> </button> </form> diff --git a/wp-content/themes/vanilla/singular.php b/wp-content/themes/vanilla/singular.php index d6fa3bd242d2b281c8d20434e0404170dad3f484..a9dadf9cef2cf3a8f1341502e42fd20bfa4d89e3 100644 --- a/wp-content/themes/vanilla/singular.php +++ b/wp-content/themes/vanilla/singular.php @@ -14,13 +14,15 @@ get_header(); ?> <?php if ( have_posts() ) : - while ( have_posts() ) : the_post(); + while ( have_posts() ) : + the_post(); get_template_part( 'template-parts/content' ); endwhile; - endif; ?> + endif; + ?> <?php if ( is_front_page() ) : ?> <?php diff --git a/wp-content/themes/vanilla/style.css b/wp-content/themes/vanilla/style.css index 2d7dbc27cebfdb4788cc73283f50092421202323..47f4d9075cd53b8ecd3b2b0f92c7c0fcfbf6a6e8 100644 --- a/wp-content/themes/vanilla/style.css +++ b/wp-content/themes/vanilla/style.css @@ -6,7 +6,7 @@ Author: Toro_Unit Author URI: https://torounit.com Donate link: https://www.amazon.co.jp/registry/wishlist/COKSXS25MVQV Description: Vanilla is the simple theme for blogging. And for single column modern websites. -Version: 1.6.4 +Version: 2.0.1 Tags: one-column, custom-logo, custom-colors, custom-menu, custom-background, editor-style, sticky-post, microformats, featured-images, footer-widgets, threaded-comments, translation-ready, blog, photography License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -496,7 +496,6 @@ select { border: none; border-radius: 4px; box-shadow: inset 0 1px 1px rgba(0,0,0,0.075); - -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } select { @@ -555,7 +554,6 @@ textarea { max-width: 100%; background-color: #fff; background-image: none; - -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } textarea { @@ -587,14 +585,24 @@ h2 { box-sizing: border-box; font-size: 1.7em; margin: 1em 0; - border-top: 1px solid rgba(0,0,0,0.1); - padding-top: 1em; +} +h2::before { + content: ''; + border-top: 1px solid currentColor; + opacity: 0.1; + display: block; + padding-bottom: 1em; } h3 { font-weight: 600; font-size: 1.38em; - border-top: 1px solid rgba(0,0,0,0.05); - padding-top: 1em; +} +h3::before { + content: ''; + border-top: 1px solid currentColor; + opacity: 0.06; + display: block; + padding-bottom: 1em; } h4 { font-weight: 600; @@ -633,11 +641,19 @@ ol, ul { padding-left: 1.5em; } +dl { + margin-top: 1em; +} +dt { + margin-top: 1em; + font-weight: bolder; +} dd { - margin-left: 1.5em; + margin-left: 2em; } table { width: 100%; + margin: 1em 0; } thead { background-color: #999; @@ -656,13 +672,38 @@ td { th { font-weight: bold; } +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 300; + src: local("YuGothic-Regular"), local("Yu Gothic"), local("YuGothic"); +} +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 400; + src: local("YuGothic-Medium"), local("Yu Gothic Medium"), local("YuGothic-Regular"), local("Yu Gothic"), local("YuGothic"); +} +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 500; + src: local("YuGothic-Medium"), local("Yu Gothic Medium"), local("YuGothic-Regular"), local("Yu Gothic"), local("YuGothic"); +} +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 600; + src: local("YuGothic-Bold"), local("Yu Gothic"); +} +@font-face { + font-family: "Cross Yu Gothic"; + font-weight: 700; + src: local("YuGothic-Bold"), local("Yu Gothic"); +} html { font-size: 62.5%; min-height: 100%; } body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Helvetica', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Roboto', 'Droid Sans', '游ゴシック Medium', meiryo, sans-serif; + font-family: 'Avenir', -apple-system, BlinkMacSystemFont, 'Cross Yu Gothic', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Helvetica Neue', 'Helvetica', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Roboto', 'Droid Sans', '游ゴシック Medium', meiryo, sans-serif; font-size: 1.4em; color: #000; background-color: #fff; @@ -684,6 +725,20 @@ pre { padding: 1em; line-height: 1.5; } +code, +kbd { + background: #eee; + padding: 0.2em 0.4em; +} +blockquote { + margin: 1em 0; + padding: 0 2em; + border-left: 1px solid currentColor; +} +blockquote cite { + display: block; + text-align: right; +} /** * ============================================= * @@ -694,11 +749,6 @@ pre { .app-layout { background-color: inherit; } -.app-layout.app-layout--disable .app-layout__header { - position: relative !important; - top: 0 !important; - padding-top: 0px !important; -} .app-layout__header { background-color: #fff; -webkit-overflow-scrolling: touch; @@ -710,23 +760,22 @@ pre { overflow: hidden; width: 100%; box-shadow: 0 1px 2px 0 rgba(51,51,51,0.14), 0 3px 1px -2px rgba(51,51,51,0.2), 0 0px 5px 0 rgba(51,51,51,0.12); - -webkit-transition-delay: 0ms; - transition-delay: 0ms; - -webkit-transition-duration: 0.24s; - transition-duration: 0.24s; - -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); - -webkit-transition-property: height, box-shadow, -webkit-transform; + transition-delay: 0ms; + transition-duration: 0.24s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-property: height, box-shadow, -webkit-transform; transition-property: transform, height, box-shadow; transition-property: transform, height, box-shadow, -webkit-transform; } +.app-layout__header--static { + position: relative; +} .admin-bar .app-layout__header { padding-top: 46px; position: absolute; } .admin-bar .app-layout__header--fixed { - padding-top: 0px; + padding-top: 0; position: fixed; } .app-layout__header a, @@ -737,10 +786,6 @@ pre { box-sizing: border-box; background-color: inherit; } -.app-layout .app-layout__header--escape { - -webkit-transform: translateY(-100%); - transform: translateY(-100%); -} .container { box-sizing: content-box; margin: 0 auto; @@ -779,7 +824,6 @@ pre { box-sizing: border-box; -webkit-transform: translate(100%, 0); transform: translate(100%, 0); - -webkit-transition: -webkit-transform 0.2s ease-out 0s; transition: -webkit-transform 0.2s ease-out 0s; transition: transform 0.2s ease-out 0s; transition: transform 0.2s ease-out 0s, -webkit-transform 0.2s ease-out 0s; @@ -1094,7 +1138,6 @@ body.is-drawer-open { right: 0; height: 2px; background-color: currentColor; - -webkit-transition: background 0s 0.2s; transition: background 0s 0.2s; } .hamburger-button__bars::before, @@ -1106,21 +1149,17 @@ body.is-drawer-open { height: 2px; background-color: currentColor; content: ""; - -webkit-transition-duration: 0.2s, 0.2s; - transition-duration: 0.2s, 0.2s; - -webkit-transition-delay: 0.2s, 0s; - transition-delay: 0.2s, 0s; + transition-duration: 0.2s, 0.2s; + transition-delay: 0.2s, 0s; } .hamburger-button__bars::before { top: -7px; - -webkit-transition-property: top, -webkit-transform; transition-property: top, -webkit-transform; transition-property: top, transform; transition-property: top, transform, -webkit-transform; } .hamburger-button__bars::after { bottom: -7px; - -webkit-transition-property: bottom, -webkit-transform; transition-property: bottom, -webkit-transform; transition-property: bottom, transform; transition-property: bottom, transform, -webkit-transform; @@ -1148,8 +1187,7 @@ body.is-drawer-open { [aria-expanded="true"] .hamburger-button .hamburger-button__bars::before, .hamburger-button[aria-expanded="true"] .hamburger-button__bars::after, [aria-expanded="true"] .hamburger-button .hamburger-button__bars::after { - -webkit-transition-delay: 0s, 0.2s; - transition-delay: 0s, 0.2s; + transition-delay: 0s, 0.2s; } /** * ============================================= @@ -1254,6 +1292,10 @@ body.is-drawer-open { .pingback .reply { font-size: 0.8em; } +.comment textarea, +.pingback textarea { + width: 100%; +} .pingback .comment-body { padding-left: 0; font-size: 0.9em; @@ -1315,7 +1357,6 @@ body.is-drawer-open { .custom-header--has-image .custom-header__branding { position: absolute; bottom: 0; - background: -webkit-linear-gradient(top, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%); background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,0.3) 100%); } .custom-header__title { @@ -1385,6 +1426,9 @@ body.is-drawer-open { margin: 0; padding: 0; } +.entry__title::before { + display: none; +} .entry__content { margin-bottom: 16px; } @@ -1404,7 +1448,7 @@ body.is-drawer-open { justify-content: space-around; } .gallery-item { - margin: 0 0 16px; + margin: 0; box-sizing: border-box; position: relative; -webkit-box-flex: 0; @@ -1412,12 +1456,16 @@ body.is-drawer-open { flex-grow: 0; -ms-flex-negative: 0; flex-shrink: 0; - padding: 0 8px; + padding: 8px; } .gallery-icon img { display: block; margin: 0 auto; } +.gallery-caption { + margin: 0.6em 0 0.2em; + font-size: 0.9em; +} .navbar { display: -webkit-box; display: -ms-flexbox; @@ -1602,7 +1650,6 @@ body.is-drawer-open { .primary-menu__links li .sub-menu, .primary-menu__links li .children { overflow: hidden; - -webkit-transition: height 0.2s ease-out 0s; transition: height 0.2s ease-out 0s; } .primary-menu__links li .sub-menu li, @@ -1770,8 +1817,7 @@ body.is-drawer-open { } .wp-caption, .wp-caption-text, -.entry-caption, -.gallery-caption { +.entry-caption { margin: 0.6em 0 1.7em; } .wp-caption { @@ -2864,4 +2910,4 @@ img.wp-smiley, } } -/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnN0eWwiLCJzdHlsZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiQmFzZS9lbWJlZC5zdHlsIiwiQmFzZS9mb3JtLnN0eWwiLCJCYXNlL2hlYWRpbmcuc3R5bCIsIkJhc2UvaHIuc3R5bCIsIkJhc2UvbGlua3Muc3R5bCIsIkJhc2UvbGlzdC5zdHlsIiwiQmFzZS90YWJsZS5zdHlsIiwiQmFzZS90eXBvZ3JhcGh5LnN0eWwiLCJPYmplY3RzL2FwcC1sYXlvdXQuc3R5bCIsIk9iamVjdHMvY29udGFpbmVyLnN0eWwiLCJUb29scy9taXhpbi5zdHlsIiwiT2JqZWN0cy9kcmF3ZXIuc3R5bCIsIk9iamVjdHMvZ3JpZC5zdHlsIiwiT2JqZWN0cy9oYW1idXJnZXItYnRuLnN0eWwiLCJDb21wb25lbnRzL2FyY2hpdmUtaGVhZGVyLnN0eWwiLCJDb21wb25lbnRzL2NvbW1lbnQtZm9ybS5zdHlsIiwiQ29tcG9uZW50cy9jb21tZW50LnN0eWwiLCJUb29scy9sb2dpY2FsLXByb3BzLnN0eWwiLCJDb21wb25lbnRzL2NvbnRlbnQtYXJlYS5zdHlsIiwiQ29tcG9uZW50cy9jdXN0b20taGVhZGVyLnN0eWwiLCJDb21wb25lbnRzL2Rhc2hpY29ucy5zdHlsIiwiQ29tcG9uZW50cy9lbnRyeS1tZXRhLnN0eWwiLCJDb21wb25lbnRzL2VudHJ5LnN0eWwiLCJDb21wb25lbnRzL2dhbGxlcnkuc3R5bCIsIkNvbXBvbmVudHMvbmF2YmFyLnN0eWwiLCJDb21wb25lbnRzL3BhZ2luYXRpb24uc3R5bCIsIkNvbXBvbmVudHMvcGFuZWwuc3R5bCIsIkNvbXBvbmVudHMvcG9zdGxpc3Quc3R5bCIsIkNvbXBvbmVudHMvcHJpbWFyeS1tZW51LnN0eWwiLCJDb21wb25lbnRzL3NlYXJjaC1mb3JtLnN0eWwiLCJDb21wb25lbnRzL3NpdGUtYnJhbmRpbmcuc3R5bCIsIkNvbXBvbmVudHMvc2l0ZS1mb290ZXIuc3R5bCIsIkNvbXBvbmVudHMvc2l0ZS1tYWluLnN0eWwiLCJDb21wb25lbnRzL3dpZGdldC5zdHlsIiwiVHJ1bXBzL3RleHQuc3R5bCIsIlRydW1wcy92aXNpYmlsaXR5LnN0eWwiLCJUcnVtcHMvd3Auc3R5bCIsIlRvb2xzL21xLnN0eWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVMsaUJBQUE7QUFDVDs7Ozs7Ozs7Ozs7O0VDWUU7QURFRjs7Ozs7R0NJRztBREdIOzs7Ozs7R0NJRztBRE1IOzs7Ozs7R0NDRztBRFVIOzs7Ozs7R0NIRztBQ3hDSCw0RUFBQTs7QUFFQTs7OztHQUlDOztBQUVEO0VBQ0Usd0JBQUEsQ0FBQSxPQUFBO0VBQ0Esa0JBQUEsQ0FBQSxPQUFBO0VBQ0EsMkJBQUEsQ0FBQSxPQUFBO0VBQ0EsK0JBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7RUFDRSxVQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7Ozs7R0FJQzs7QUFFRDs7Ozs7Ozs7Ozs7VUFXQSxPQUFBO0VBQ0UsZUFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEOzs7O0VBSUUsc0JBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLGNBQUE7RUFDQSxVQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7RUFDRSx5QkFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDs7RUFFRSxjQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7OztHQUdDOztBQUVEO0VBQ0UsOEJBQUEsQ0FBQSxPQUFBO0VBQ0Esc0NBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7OztHQUdDOztBQUVEOztFQUVFLGlCQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7OztHQUdDOztBQUVEO0VBQ0Usb0JBQUEsQ0FBQSxPQUFBO0VBQ0EsMkJBQUEsQ0FBQSxPQUFBO0VBQ0Esa0NBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7O0VBRUUscUJBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDs7RUFFRSxvQkFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsbUJBQUE7Q0FDRjs7QUFFQTs7O0dBR0M7O0FBRUQ7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLHVCQUFBO0VBQ0EsWUFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsZUFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDs7RUFFRSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7Q0FDRjs7QUFFQTtFQUNFLGdCQUFBO0NBQ0Y7O0FBRUE7RUFDRSxZQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7O0dBRUM7O0FBRUQ7RUFDRSxtQkFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsaUJBQUE7Q0FDRjs7QUFFQTtnRkFDRzs7QUFFSDs7O0dBR0M7O0FBRUQ7Ozs7RUFJRSxrQ0FBQSxDQUFBLE9BQUE7RUFDQSxlQUFBLENBQUEsT0FBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsaUJBQUE7Q0FDRjs7QUFFQTs7O0dBR0M7O0FBRUQ7RUFDRSx3QkFBQSxDQUFBLE9BQUE7RUFDQSxVQUFBLENBQUEsT0FBQTtFQUNBLGtCQUFBLENBQUEsT0FBQTtDQUNGOztBQUVBO2dGQUNHOztBQUVIOzs7R0FHQzs7QUFFRDs7Ozs7RUFLRSxjQUFBLENBQUEsT0FBQTtFQUNBLFVBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7RUFDRSxrQkFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDtRQUNBLE9BQUE7RUFDRSxrQkFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDtTQUNBLE9BQUE7RUFDRSxxQkFBQTtDQUNGOztBQUVBOzs7O0dBSUM7O0FBRUQ7Ozs7RUFJRSwyQkFBQSxDQUFBLE9BQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDs7OztFQUlFLG1CQUFBO0VBQ0EsV0FBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEOzs7O0VBSUUsK0JBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLDBCQUFBO0VBQ0EsY0FBQTtFQUNBLCtCQUFBO0NBQ0Y7O0FBRUE7Ozs7O0dBS0M7O0FBRUQ7RUFDRSx1QkFBQSxDQUFBLE9BQUE7RUFDQSxlQUFBLENBQUEsT0FBQTtFQUNBLGVBQUEsQ0FBQSxPQUFBO0VBQ0EsZ0JBQUEsQ0FBQSxPQUFBO0VBQ0EsV0FBQSxDQUFBLE9BQUE7RUFDQSxvQkFBQSxDQUFBLE9BQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLGVBQUE7Q0FDRjs7QUFFQTs7O0dBR0M7O0FBRUQ7O0VBRUUsdUJBQUEsQ0FBQSxPQUFBO0VBQ0EsV0FBQSxDQUFBLE9BQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDs7RUFFRSxhQUFBO0NBQ0Y7O0FBRUE7OztHQUdDOztBQUVEO0VBQ0UsOEJBQUEsQ0FBQSxPQUFBO0VBQ0EscUJBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7O0VBRUUseUJBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLGVBQUE7RUFDQSxjQUFBO0NBQ0Y7O0FBRUE7OztHQUdDOztBQUVEO0VBQ0UsMkJBQUEsQ0FBQSxPQUFBO0VBQ0EsY0FBQSxDQUFBLE9BQUE7Q0FDRjs7QUYvV0E7Ozs7OztHQ2dhRztBRWxkSDs7RUFFQyxnQkFBQTtFQUNBLGFBQUE7Q0ZvZEE7QUVqZEQ7RUFDQyxnQkFBQTtDRm1kQTtBRWhkRDtFQUNDLG1CQUFBO0NGa2RBO0FFL2NEO0VBRUMsY0FBQTtDRmdkQTtBRTljQTtFQUNDLG1CQUFBO0VBRUEsZUFBQTtDRitjRDtBR3BlRDtFQUNDLHFCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLDhDQUFBO0VBQ0EsaUZBQUE7RUFBQSx5RUFBQTtDSHNlQTtBR25lRDtFQUNDLGVBQUE7Q0hxZUE7QUdsZUQ7Ozs7Ozs7Ozs7Ozs7OztFQWVDLHVCQUFBO0VBQ0Esb0JBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSwwQkFBQTtFQUNBLG1DQUFBO0NIb2VBO0FHbGVBOzs7Ozs7Ozs7Ozs7Ozs7RUFDQyxxQkFBQTtDSGtmRDtBRy9lRDs7Ozs7Ozs7Ozs7RUFXQyxnQkFBQTtFQUNBLHVCQUFBO0VBQ0EsdUJBQUE7RUFDQSxpRkFBQTtFQUFBLHlFQUFBO0NIaWZBO0FHOWVEO0VBQ0MsYUFBQTtDSGdmQTtBRzdlRDs7OztFQUlDLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSwrQkFBQTtNQUFBLDJCQUFBO0VBQ0EsZ0JBQUE7RUFDQSwwQkFBQTtLQUFBLHVCQUFBO01BQUEsc0JBQUE7VUFBQSxrQkFBQTtFQUNBLHVCQUFBO0NIK2VBO0FJL2lCRDtFQUNDLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0NKaWpCQTtBSTlpQkQ7RUFDQyxpQkFBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLHNDQUFBO0VBQ0EsaUJBQUE7Q0pnakJBO0FJNWlCRDtFQUNDLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSx1Q0FBQTtFQUNBLGlCQUFBO0NKOGlCQTtBSTFpQkQ7RUFDQyxpQkFBQTtFQUNBLGtCQUFBO0NKNGlCQTtBSXZpQkQ7RUFDQyxpQkFBQTtFQUNBLGVBQUE7Q0p5aUJBO0FJdGlCRDtFQUNDLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0NKd2lCQTtBSzVsQkQ7RUFDQyxhQUFBO0VBQ0EsOEJBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0NMOGxCQTtBTTVsQkQ7RUFDQyxlQUFBO0VBQ0Esc0JBQUE7Q044bEJBO0FNNWxCQTtFQUNDLDJCQUFBO0NOOGxCRDtBTTFsQkM7RUFDQyxhQUFBO0NONGxCRjtBTXhsQkE7RUFDQyxxQkFBQTtDTjBsQkQ7QU85bEJEOztFQUVDLG9CQUFBO0NQZ21CQTtBTzdsQkQ7RUFDQyxtQkFBQTtDUCtsQkE7QVFqbkJEO0VBQ0MsWUFBQTtDUm1uQkE7QVFobkJEO0VBQ0MsdUJBQUE7RUFDQSxZQUFBO0NSa25CQTtBUTltQkE7RUFDQywwQkFBQTtDUmduQkQ7QVF2bUJEOztFQUVDLGFBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0EsdUJBQUE7Q1J5bUJBO0FRam1CRDtFQUNDLGtCQUFBO0NSbW1CQTtBUzNvQkQ7RUFDQyxpQkFBQTtFQUNBLGlCQUFBO0NUNm9CQTtBUzFvQkQ7RUFDQyxVQUFBO0VBQ0EseUxBQUE7RUFDQSxpQkFBQTtFQU1BLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtFQUdBLDZDQUFBO0NUcW9CQTtBU2xvQkQ7RUFDQyxrQkFBQTtDVHlvQkE7QVN0b0JEO0VBQ0MsY0FBQTtDVHdvQkE7QVNyb0JEO0VBQ0MsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtFQUNBLGlCQUFBO0NUdW9CQTtBRDNtQkQ7Ozs7OztHQ2tuQkc7QVVqckJIO0VBT0MsMEJBQUE7Q1Y2cUJBO0FVNXFCQTtFQUNDLDhCQUFBO0VBQ0Esa0JBQUE7RUFDQSw0QkFBQTtDVjhxQkQ7QVV0cUJBO0VBQ0MsdUJBQUE7RUFDQSxrQ0FBQTtFQUNBLGdCQUFBO0VBQ0EsUUFBQTtFQUNBLE9BQUE7RUFxQkEsV0FBQTtFQUNBLHdCQUFBO0VBQ0EsaUJBQUE7RUFNQSxZQUFBO0VBQ0EsZ0hBQUE7RUFLQSw4QkFBQTtVQUFBLHNCQUFBO0VBQ0EsbUNBQUE7VUFBQSwyQkFBQTtFQUNBLGlFQUFBO1VBQUEseURBQUE7RUFDQSxtRUFBQTtFQUFBLDJEQUFBO0VBQUEsbURBQUE7RUFBQSxzRUFBQTtDVjJvQkQ7QVU5cUJDO0VBQ0Msa0JBQUE7RUFDQSxtQkFBQTtDVmdyQkY7QVU5cUJFO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtDVmdyQkg7QVVqcUJDOztFQUVDLHFCQUFBO0NWK3FCRjtBVWhxQkE7RUFDQyx1QkFBQTtFQUdBLDBCQUFBO0NWZ3FCRDtBVTFwQkU7RUFDQyxxQ0FBQTtVQUFBLDZCQUFBO0NWNHBCSDtBV3Z1QkQ7RUFDQyx3QkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VDZ0JNLG1CQUFBO0VBQUEsb0JBQUE7Q1oydEJOO0FhL3VCQTtFQUVDLFlBQUE7RUFDQSxjQUFBO0VBQ0EsZ0JBQUE7RUFFQSxZQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGtDQUFBO0NiNndCRDtBYXh3QkU7O0VBRUMsYUFBQTtFQUNBLGFBQUE7Q2Iwd0JIO0FhcHdCQTtFQUNDLG1CQUFBO0VBQ0Esd0VBQUE7RUFDQSxnQkFBQTtFQUNBLHVCQUFBO0VBQ0EsYUFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsY0FBQTtFQUNBLHVCQUFBO0VBRUEsc0NBQUE7VUFBQSw4QkFBQTtFQUNBLHVEQUFBO0VBQUEsK0NBQUE7RUFBQSx1Q0FBQTtFQUFBLDJFQUFBO0NicXdCRDtBYWx3QkM7RUFDQyxrQkFBQTtDYm93QkY7QWE1dkJBO0VBQ0Msb0JBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0Nib3dCRDtBYWp3QkE7RUFDQywrQkFBQTtDYm13QkQ7QWEvdkJBO0VBQ0MsZUFBQTtDYml3QkQ7QWE1dkJEO0VBQ0MsaUJBQUE7Q2I4dkJBO0FjNXpCRDtFQUNDLFlBQUE7RUFDQSxhQUFBO0VBRUEscUJBQUE7RUFBQSxxQkFBQTtFQUFBLGNBQUE7RUFDQSxvQkFBQTtNQUFBLGdCQUFBO0VBQ0EsK0JBQUE7RUFBQSw4QkFBQTtNQUFBLHdCQUFBO1VBQUEsb0JBQUE7Q2Q2ekJBO0FjM3pCQTtFQUVDLHVCQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7TUFBQSxxQkFBQTtVQUFBLGFBQUE7RUFDQSxxQkFBQTtNQUFBLGVBQUE7RUFDQSxhQUFBO0NkMnpCRDtBY3p6QkM7RUFDQyxvQkFBQTtNQUFBLHFCQUFBO1VBQUEsYUFBQTtDZDJ6QkY7QWNyekJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkcTFCQTtBY3p6QkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2R5MUJBO0FjN3pCRTtFQTdCRixZQUFBO0VBQ0EsOEJBQUE7TUFBQSxpQkFBQTtDZDYxQkE7QWNqMEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZGkyQkE7QWNyMEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHEyQkE7QWN6MEJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkeTJCQTtBYzcwQkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2Q2MkJBO0FjajFCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZGkzQkE7QWNyMUJFO0VBN0JGLFdBQUE7RUFDQSw2QkFBQTtNQUFBLGdCQUFBO0NkcTNCQTtBY3oxQkU7RUE3QkYsWUFBQTtFQUNBLDhCQUFBO01BQUEsaUJBQUE7Q2R5M0JBO0FjNzFCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZDYzQkE7QWNqMkJFO0VBN0JGLFdBQUE7RUFDQSw2QkFBQTtNQUFBLGdCQUFBO0NkaTRCQTtBY3IyQkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2RxNEJBO0FjejJCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZHk0QkE7QWM3MkJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkNjRCQTtBY2ozQkU7RUE3QkYsMkJBQUE7RUFDQSw2Q0FBQTtNQUFBLGdDQUFBO0NkaTVCQTtBY3IzQkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkcTVCQTtBY3ozQkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2R5NUJBO0FjNzNCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2Q2NUJBO0FjajRCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2RpNkJBO0FjcjRCRTtFQTdCRixZQUFBO0VBQ0EsOEJBQUE7TUFBQSxpQkFBQTtDZHE2QkE7QWN6NEJFO0VBN0JGLDJCQUFBO0VBQ0EsNkNBQUE7TUFBQSxnQ0FBQTtDZHk2QkE7QWM3NEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZDY2QkE7QWNqNUJFO0VBN0JGLDJCQUFBO0VBQ0EsNkNBQUE7TUFBQSxnQ0FBQTtDZGk3QkE7QWNyNUJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHE3QkE7QWN6NUJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHk3QkE7QWM3NUJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZDY3QkE7QWNqNkJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkaThCQTtBY3I2QkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkcThCQTtBY3o2QkU7RUE3QkYsMkJBQUE7RUFDQSw2Q0FBQTtNQUFBLGdDQUFBO0NkeThCQTtBYzc2QkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2Q2OEJBO0FjajdCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2RpOUJBO0FjcjdCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2RxOUJBO0FjejdCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZHk5QkE7QWM3N0JFO0VBN0JGLDJCQUFBO0VBQ0EsNkNBQUE7TUFBQSxnQ0FBQTtDZDY5QkE7QWNqOEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZGkrQkE7QWNyOEJFO0VBN0JGLFdBQUE7RUFDQSw2QkFBQTtNQUFBLGdCQUFBO0NkcStCQTtBY3o4QkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkeStCQTtBYzc4QkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkNitCQTtBY2o5QkU7RUE3QkYsWUFBQTtFQUNBLDhCQUFBO01BQUEsaUJBQUE7Q2RpL0JBO0FjNTZCQTtFQUNDLHlCQUFBO01BQUEsc0JBQUE7VUFBQSx3QkFBQTtDZG81Q0Q7QWNqNUNBO0VBQ0MsMEJBQUE7TUFBQSx1QkFBQTtVQUFBLG9CQUFBO0NkbTVDRDtBY2g1Q0E7RUFDQyx1QkFBQTtNQUFBLG9CQUFBO1VBQUEsc0JBQUE7Q2RrNUNEO0FjLzRDQTtFQUNDLCtCQUFBO0VBQUEsK0JBQUE7TUFBQSxnQ0FBQTtVQUFBLDRCQUFBO0NkaTVDRDtBYzk0Q0E7RUFDQyxVQUFBO0NkZzVDRDtBYzc0Q0E7RUFDQyxXQUFBO0NkKzRDRDtBYzU0Q0E7RUFDQyxjQUFBO0NkODRDRDtBYzM0Q0E7RUFDQyxjQUFBO0NkNjRDRDtBZTcrQ0Q7RUFDQyw4QkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7S0FBQSxzQkFBQTtVQUFBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtDZisrQ0E7QWU5K0NBO0VBQ0MsY0FBQTtDZmcvQ0Q7QWU3K0NBO0VBQ0MsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0VBQ0EsdUNBQUE7RUFBQSwrQkFBQTtDZisrQ0Q7QWU5K0NDOztFQUNDLG1CQUFBO0VBQ0EsZUFBQTtFQUNBLFFBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0VBQ0EsWUFBQTtFQUNBLHdDQUFBO1VBQUEsZ0NBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0NmaS9DRjtBZS8rQ0M7RUFDQyxVQUFBO0VBQ0Esb0RBQUE7RUFBQSw0Q0FBQTtFQUFBLG9DQUFBO0VBQUEsdURBQUE7Q2ZpL0NGO0FlLytDQztFQUNDLGFBQUE7RUFDQSx1REFBQTtFQUFBLCtDQUFBO0VBQUEsdUNBQUE7RUFBQSwwREFBQTtDZmkvQ0Y7QWU3K0NBO0VBQ0MsVUFBQTtDZisrQ0Q7QWU1K0NBOztFQUVDLGlCQUFBO0NmOCtDRDtBZTcrQ0M7O0VBQ0MsT0FBQTtFQUNBLGlDQUFBO1VBQUEseUJBQUE7Q2ZnL0NGO0FlOStDQzs7RUFDQyxVQUFBO0VBQ0Esa0NBQUE7VUFBQSwwQkFBQTtDZmkvQ0Y7QWUvK0NDOzs7O0VBQ0MsbUNBQUE7VUFBQSwyQkFBQTtDZm8vQ0Y7QURwL0NEOzs7Ozs7R0MyL0NHO0FnQnRrREg7RUp1Qk8sa0JBQUE7RUFBQSxxQkFBQTtDWm1qRE47QWdCdGtEQTtFQUNDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7Q2hCc21ERDtBZ0JubURBO0VBQ0MsVUFBQTtFQUNBLGlCQUFBO0NoQnFtREQ7QWlCL21EQTtFQUNDLGtCQUFBO0NqQmluREQ7QWlCeG1EQTs7OztFQUNDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0NqQjZtREQ7QWtCdG5EQTs7RUFDQyxlQUFBO0VBQ0EsWUFBQTtFQUNBLG1DQUFBO0VBQ0EsYUFBQTtDbEJ5bkREO0FrQnRuREE7O0VBQ0Msa0JBQUE7Q2xCeW5ERDtBa0J0bkRBOztFQUVDLGlCQUFBO0NsQnduREQ7QWtCcm5EQTs7RUFDQyxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0VBQ0EsVUFBQTtDbEJ3bkREO0FrQnBuREE7O0VBQ0MsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7Q2xCdW5ERDtBa0JwbkRBOztFQUNDLGlCQUFBO0NsQnVuREQ7QWtCdG5EQzs7OztFQUVDLHVCQUFBO0NsQjBuREY7QWtCeG5EQzs7RUFDQyxtQkFBQTtFQUNBLFFBQUE7Q2xCMm5ERjtBa0JwbkRDOztFQUNDLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQ3pERixtQkFBQTtFRDJERSxhQUFBO0VBQ0EsdUJBQUE7Q2xCdW5ERjtBa0JubkRBOztFQUNDLGlCQUFBO0NsQnNuREQ7QWtCbG5EQzs7RUFDQyxjQUFBO0NsQnFuREY7QWtCbG5EQzs7RUFDQyxpQkFBQTtDbEJxbkRGO0FrQmpuREE7O0VBQ0MsaUJBQUE7Q2xCb25ERDtBa0I5bURBO0VBQ0MsZ0JBQUE7RUFDQSxpQkFBQTtDbEJnbkREO0FvQnhzREQ7RUFDQyxtQkFBQTtFQUNBLDBCQUFBO0NwQjBzREE7QXFCNXNERDtFQUNDLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSx5Q0FBQTtDckI4c0RBO0FxQjVzREE7RUFDQyxVQUFBO0NyQjhzREQ7QXFCM3NEQTtFQUVDLGFBQUE7Q3JCNHNERDtBcUIxc0RDO0VBQ0MsMEJBQUE7Q3JCNHNERjtBcUIvckRBO0VBQ0MsZ0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLGdCQUFBO0NyQnlzREQ7QXFCcnNEQTtFQUNDLFlBQUE7RUFDQSxhQUFBO0NyQnVzREQ7QXFCcnNEQztFQUNDLFlBQUE7RUFDQSxhQUFBO0NyQnVzREY7QXFCcnNEQzs7O0VBR0MsZUFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsUUFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7Q3JCdXNERjtBcUJsc0RFOzs7RUFJQywwQkFBQTtDckJtc0RIO0FxQnpyREE7RUFDQyxZQUFBO0VUbERLLGtCQUFBO0VBQUEscUJBQUE7Q1p1dkROO0FxQmpzREE7RUFDQyxtQkFBQTtFQUNBLFVBQUE7RUFDQSxpRkFBQTtFQUFBLCtFQUFBO0NyQml1REQ7QXFCOXREQTtFQUNDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7Q3JCZ3VERDtBcUIxdERDO0VBQ0MsZUFBQTtFQUNBLHNCQUFBO0NyQmt1REY7QXFCOXREQTtFQUNDLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7Q3JCZ3VERDtBc0JyMEREO0VBQ0MscUJBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7Q3RCNDBEQTtBdUJoMUREO0VBQ0MsaUJBQUE7Q3ZCazFEQTtBdUJqMURBO0VKR0Esb0JBQUE7Q25CaTFEQTtBdUI5MERBO0VBQ0MsYUFBQTtFQUNBLGVBQUE7RUFDQSxhQUFBO0VKTkQsb0JBQUE7RUlRQyxxQkFBQTtDdkJnMUREO0F1QjUwREQ7RUFDQyxjQUFBO0N2QjgwREE7QXdCaDJERDtFQUNDLGlCQUFBO0Vac0JNLGtCQUFBO0VBQUEscUJBQUE7RVlqQk4sK0NBQUE7Q3hCZzJEQTtBd0I5MURBO0VBQ0MsZUFBQTtDeEI4M0REO0F3QjMzREE7RVpXTSxvQkFBQTtDWm0zRE47QXdCeDNEQTtFWktNLG1CQUFBO0VBQUEsb0JBQUE7Q1pzNEROO0F3QnQ0REE7RUFDQyxjQUFBO0VBQ0EsaUJBQUE7Q3hCczZERDtBd0JuNkRBO0VBQ0MsbUJBQUE7RVpOSyxpQkFBQTtDWjQ2RE47QXdCbDZEQTtFQUNDLGFBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtDeEJtN0REO0F3Qmg3REE7RVpsQk0sb0JBQUE7Q1pxOEROO0F5QjE5REQ7RUFFQyxZQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQUEscUJBQUE7RUFBQSxjQUFBO0VBQ0Esb0JBQUE7TUFBQSxnQkFBQTtFQUNBLCtCQUFBO0VBQUEsOEJBQUE7TUFBQSx3QkFBQTtVQUFBLG9CQUFBO0VBQ0EsMEJBQUE7TUFBQSw4QkFBQTtDekIwK0RBO0F5QngrREE7RUFDQyxpQkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtNQUFBLHFCQUFBO1VBQUEsYUFBQTtFQUNBLHFCQUFBO01BQUEsZUFBQTtFQUNBLGVBQUE7Q3pCMCtERDtBeUJ0K0RDO0VBQ0MsZUFBQTtFQUNBLGVBQUE7Q3pCdytERjtBMEIvL0REO0VBQ0MscUJBQUE7RUFBQSxxQkFBQTtFQUFBLGNBQUE7RUFDQSx1QkFBQTtNQUFBLHFCQUFBO1VBQUEsZUFBQTtFQUNBLDBCQUFBO01BQUEsdUJBQUE7VUFBQSwrQkFBQTtFQUNBLDBCQUFBO01BQUEsdUJBQUE7VUFBQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7QzFCOGhFQTtBMEI1aEVBO0VBR0MsYUFBQTtDMUI0aEVEO0EwQjNoRUM7RUFDQyxlQUFBO0MxQjZoRUY7QTBCemhFQTtFQUNDLFlBQUE7QzFCMmhFRDtBMEJwL0RBO0VBQ0Msb0JBQUE7RUFDQSw4QkFBQTtNQUFBLG1CQUFBO1VBQUEsVUFBQTtFQUNBLGFBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0Esb0JBQUE7QzFCcy9ERDtBMkJ0akVEO0VBRUMsY0FBQTtFQUNBLG1CQUFBO0MzQnVqRUE7QTJCcmpFQTtFQUNDLGlCQUFBO0MzQnVqRUQ7QTJCcGpFQTtFQUNDLHVCQUFBO0MzQnNqRUQ7QTJCbmpFQTtFQUNDLHNCQUFBO0MzQnFqRUQ7QTJCbGpFQTs7OztFQUtDLGFBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0MzQm1qRUQ7QTJCaGpFQTs7RUFFQyxpQkFBQTtFQUNBLGNBQUE7RUFDQSxzQkFBQTtDM0JrakVEO0EyQi9pRUE7RUFFQywrQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxlQUFBO0VBQ0EsaUJBQUE7QzNCZ2pFRDtBMkIxaUVBO0VBQ0Msc0NBQUE7QzNCNGlFRDtBNEJsbUVEO0VBQ0MsbUJBQUE7QzVCb21FQTtBNEJsbUVBO0VBQ0MsY0FBQTtDNUJvbUVEO0E0Qi9sRUE7RUFDQyxPQUFBO0VBQ0EsVUFBQTtDNUJpbUVEO0E0QjNsRUM7RUFDQywyQkFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGFBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtDNUI2bEVGO0E2QnZuRUQ7RUFDQyxvQkFBQTtDN0J5bkVBO0E2QnZuRUE7RUFDQyx1QkFBQTtDN0J5bkVEO0E2QnRuRUE7RUFDQyxtQkFBQTtDN0J3bkVEO0E2QnJuRUE7RUFDQyxnQkFBQTtFQUNBLG9CQUFBO0VBQ0EsVUFBQTtDN0J1bkVEO0E2QnBuRUE7RUFDQyxnQkFBQTtDN0JzbkVEO0E2Qm5uRUE7RUFDQyxlQUFBO0VBQ0EscUJBQUE7QzdCcW5FRDtBNkJsbkVBO0VBQ0MsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7QzdCb25FRDtBOEIvb0VBO0VBQ0MsV0FBQTtFQUNBLFVBQUE7RUFDQSx5Q0FBQTtDOUJpcEVEO0E4QmhwRUM7RUFDQyxVQUFBO0VBQ0EsV0FBQTtDOUJrcEVGO0E4QmhwRUM7O0VBR0MsV0FBQTtFQUNBLGlCQUFBO0M5QmlwRUY7QThCL29FQztFQUNDLGVBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUNBQUE7QzlCaXBFRjtBOEI1b0VDO0VBQ0MsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsU0FBQTtFQUNBLFNBQUE7RUFDQSxhQUFBO0VBRUEsZ0JBQUE7QzlCNm9FRjtBOEIxb0VFO0VBQ0MsYUFBQTtFQUNBLHlCQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsNEJBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtDOUI0b0VIO0E4QnpvRUU7RUFDQyxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTtFQUNBLHdDQUFBO0VBQ0EsZUFBQTtDOUIyb0VIO0E4QnhvRUU7RUFDQyxpQkFBQTtDOUIwb0VIO0E4QnRvRUM7RUFJQyxtQkFBQTtDOUJxb0VGO0E4QnBvRUU7O0VBRUMsaUJBQUE7RUFDQSw0Q0FBQTtFQUFBLG9DQUFBO0M5QnNvRUg7QThCcG9FRzs7RUFDQyxrQkFBQTtDOUJ1b0VKO0E4QmhvRUc7O0VBQ0MscUJBQUE7RUFDQSxtQkFBQTtDOUJtb0VKO0E4QmhvRUc7O0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QzlCbW9FSjtBK0IzdEVEO0VBRUMsbUJBQUE7RUFFQSxZQUFBO0MvQjJ0RUE7QStCMXRFQTtFQUNDLFlBQUE7RUFDQSxtQkFBQTtDL0I0dEVEO0ErQjF0RUE7RUFDQywwQkFBQTtFQUNBLG1CQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7Qy9CNHRFRDtBZ0N6dUVEO0VBQ0MscUJBQUE7RUFBQSxxQkFBQTtFQUFBLGNBQUE7RUFDQSwwQkFBQTtNQUFBLHVCQUFBO1VBQUEsb0JBQUE7Q2hDMnVFQTtBZ0N2dUVDO0VBQ0MsZUFBQTtFYkZGLG1CQUFBO0VhSUUsZ0JBQUE7Q2hDeXVFRjtBZ0M3dEVBO0VBQ0MsZUFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7TUFBQSxxQkFBQTtVQUFBLGFBQUE7RUFDQSxVQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtDaEN5dUVEO0FnQ3Z1RUM7RUFDQyxlQUFBO0NoQ3l1RUY7QWlDdndFRDtFQUNDLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSwwQkFBQTtFQUNBLDRDQUFBO0NqQ3l3RUE7QWlDeHdFQTtFckJrQk0sa0JBQUE7Q1p5dkVOO0FrQ2h4RUQ7RUFDQyxXQUFBO0VBRUEsaUJBQUE7Q2xDZ3lFQTtBbUNueUVEO0V2QnVCTyxvQkFBQTtFQUFBLGlCQUFBO0NaZ3hFTjtBbUNueUVBO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0NuQ20wRUQ7QURwdkVEOzs7Ozs7R0MydkVHO0FvQ2gxRUg7RUFDQyxtQkFBQTtDcENrMUVBO0FvQy8wRUQ7RUFDQyxlQUFBO0NwQ2kxRUE7QW9DOTBFRDtFQUNDLGlCQUFBO0NwQ2cxRUE7QW9DNzBFRDtFQUNDLGtCQUFBO0NwQyswRUE7QW9DMzBFRDtFQUNDLGlCQUFBO0NwQzYwRUE7QW9DejBFRDtFQUNDLGlCQUFBO0NwQzIwRUE7QW9DeDBFRDtFQUNDLGlCQUFBO0NwQzAwRUE7QXFDcjJFRDtFQUNDLGVBQUE7Q3JDdTJFQTtBcUN0MkVBO0VBQ0MsZ0JBQUE7Q3JDdzJFRDtBcUNwMkVEO0VBQ0MsY0FBQTtDckNzMkVBO0FxQ24yRUQ7RUFDQyxjQUFBO0NyQ3EyRUE7QXFDNTFFRDtFQUNDLGNBQUE7Q3JDczJFQTtBcUN0MUVEO0VBQ0MsY0FBQTtDckNxMkVBO0FxQ3IxRUQ7RUFDQyxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0VBQ0EsVUFBQTtDckNvMkVBO0FxQ2oyRUQ7RUFDQyx1QkFBQTtFQUNBLG1CQUFBO0VBRUEsd0NBQUE7RUFDQSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZ0JBQUE7Q3JDbTJFQTtBc0NwN0VEO0VBQ0MseUJBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7Q3RDczdFQTtBc0MvNkVEOzs7OztFQUtDLGVBQUE7RUFDQSxlQUFBO0VBQ0EsWUFBQTtDdENpN0VBO0FzQ3Y1RUQ7Ozs7RUFJQyxzQkFBQTtDdEMwNkVBO0FzQ3Y2RUQ7RUFDQyxnQkFBQTtFQUNBLHVCQUFBO0VBQ0EsOEJBQUE7RUFDQSxtQkFBQTtFQUtBLG1CQUFBO0N0Q3E2RUE7QXNDejZFQTtFQUNDLGVBQUE7RUFDQSxhQUFBO0N0QzI2RUQ7QXNDcjZFRDs7RUFFQyxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7Q3RDdTZFQTtBc0NuNkVBOztFQUNDLDRCQUFBO0N0Q3M2RUQ7QXVDdjlFaUI7O0VBQUE7STlCaEJoQixpQkFBQTtHVG1wQkM7O0VVcG5CaUI7SUFDaEIsZ0JBQUE7SUFDQSw2QkFBQTtHVmtyQkQ7O0VZanNCZTtJQUNWLG1CQUFBO0daNnRCTDs7RVk5dEJlO0lBQ1Ysb0JBQUE7R1o0dUJMOztFYTN0QmlCO0lBQ2hCLGdCQUFBO0lBQ0Esa0JBQUE7R2Jzd0JEOztFYy92QkM7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2R3cENFOztFY3RtQ0M7SUFuREgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q0cENFOztFYzFtQ0M7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RncUNFOztFYzltQ0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkb3FDRTs7RWNsbkNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHdxQ0U7O0VjdG5DQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZDRxQ0U7O0VjMW5DQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGdyQ0U7O0VjOW5DQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZG9yQ0U7O0VjbG9DQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHdyQ0U7O0VjdG9DQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZDRyQ0U7O0VjMW9DQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGdzQ0U7O0VjOW9DQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZG9zQ0U7O0VjbHBDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHdzQ0U7O0VjdHBDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDRzQ0U7O0VjMXBDQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZGd0Q0U7O0VjOXBDQztJQW5ESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2RvdENFOztFY2xxQ0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkd3RDRTs7RWN0cUNDO0lBbkRILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkNHRDRTs7RWMxcUNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGd1Q0U7O0VjOXFDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RvdUNFOztFY2xyQ0M7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2R3dUNFOztFY3RyQ0M7SUFuREgsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dkNHVDRTs7RWMxckNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGd2Q0U7O0VjOXJDQztJQW5ESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2RvdkNFOztFY2xzQ0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkd3ZDRTs7RWN0c0NDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDR2Q0U7O0VjMXNDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Rnd0NFOztFYzlzQ0M7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Rvd0NFOztFY2x0Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkd3dDRTs7RWN0dENDO0lBbkRILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZDR3Q0U7O0VjMXRDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGd4Q0U7O0VjOXRDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RveENFOztFY2x1Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkd3hDRTs7RWN0dUNDO0lBbkRILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkNHhDRTs7RWMxdUNDO0lBbkRILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZGd5Q0U7O0VjOXVDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RveUNFOztFY2x2Q0M7SUFuREgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2R3eUNFOztFY3R2Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkNHlDRTs7RWMxdkNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGd6Q0U7O0VjOXZDQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZG96Q0U7O0VZN3hDZTtJQUNWLGtCQUFBO0dacWpETDs7RVl0akRlO0lBQ1YscUJBQUE7R1pva0RMOztFdUN2a0RlO0lsQlBmLGNBQUE7R3JCNHNEQTs7RXFCMXNERTtJQUNDLDJCQUFBO0dyQjRzREg7O0V1Q3hzRGU7OztJbEJzQ2IsYUFBQTtJQUNBLGtCQUFBO0dyQnNzREY7O0VZM3VEZTtJQUNWLGtCQUFBO0daeXZETDs7RVkxdkRlO0lBQ1YscUJBQUE7R1p3d0RMOztFdUMzd0RlO0lsQjZEZixpQkFBQTtJQUNBLGlCQUFBO0dyQmt1REE7O0V1Q2h5RGU7SWxCNkVmLGlCQUFBO0dyQml1REE7O0VZNXlEZTtJQUNWLGtCQUFBO0daaTFETDs7RVlsMURlO0lBQ1YscUJBQUE7R1pnMkRMOztFWWoyRGU7SUFDVixvQkFBQTtHWnEzREw7O0VZdDNEZTtJQUNWLG1CQUFBO0dadzRETDs7RVl6NERlO0lBQ1Ysb0JBQUE7R1p1NURMOztFWXg1RGU7SUFDVixpQkFBQTtHWjg2REw7O0VZLzZEZTtJQUNWLG9CQUFBO0dadThETDs7RXlCajhEQTtJQVJELDhCQUFBO0lBQUEsaUJBQUE7R3pCdStEQzs7RXlCLzlEQTtJQVJELDZCQUFBO0lBQUEsZ0JBQUE7R3pCMCtEQzs7RXlCbCtEQTtJQVJELDRDQUFBO0lBQUEsK0JBQUE7R3pCNitEQzs7RXlCcitEQTtJQVJELDZCQUFBO0lBQUEsZ0JBQUE7R3pCZy9EQzs7RXlCeCtEQTtJQVJELDZCQUFBO0lBQUEsZ0JBQUE7R3pCbS9EQzs7RXlCMytEQTtJQVJELDZDQUFBO0lBQUEsZ0NBQUE7R3pCcy9EQzs7RXlCOStEQTtJQVJELDZDQUFBO0lBQUEsZ0NBQUE7R3pCeS9EQzs7RXlCai9EQTtJQVJELCtCQUFBO0lBQUEsa0JBQUE7R3pCNC9EQzs7RXlCcC9EQTtJQVJELDRDQUFBO0lBQUEsK0JBQUE7R3pCKy9EQzs7RWdDOWdFaUI7SUFDaEIsZ0JBQUE7R2hDNnVFRDs7RVk5dEVlO0lBQ1Ysa0JBQUE7R1oydkVMOztFWTV2RWU7SUFDVixvQkFBQTtHWmt4RUw7O0VZbnhFZTtJQUNWLGlCQUFBO0daaXlFTDs7RXFDeHlFZTtJQUNoQixlQUFBO0dyQ3cyRUM7O0VxQ3YyRUQ7SUFDQyxnQkFBQTtHckN5MkVBOztFcUNuMkVlO0lBQ2hCLGNBQUE7R3JDdTJFQztDQXp1REY7QVV6bkJrQjs7RUFBQTtJQUNmLGdCQUFBO0lBQ0Esa0JBQUE7R1ZnckJEOztFWS9yQmM7SUFDVCxtQkFBQTtHWjR0Qkw7O0VZN3RCYztJQUNULG9CQUFBO0daMnVCTDs7RWN6dEJDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dkcy9CRTs7RWNoOUJDO0lBdkNILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkMC9CRTs7RWNwOUJDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dkOC9CRTs7RWN4OUJDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGtnQ0U7O0VjNTlCQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RzZ0NFOztFY2grQkM7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2QwZ0NFOztFY3ArQkM7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q4Z0NFOztFY3grQkM7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RraENFOztFYzUrQkM7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RzaENFOztFY2gvQkM7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2QwaENFOztFY3AvQkM7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q4aENFOztFY3gvQkM7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RraUNFOztFYzUvQkM7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RzaUNFOztFY2hnQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2QwaUNFOztFY3BnQ0M7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q4aUNFOztFY3hnQ0M7SUF2Q0gsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dka2pDRTs7RWM1Z0NDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHNqQ0U7O0VjaGhDQztJQXZDSCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDBqQ0U7O0VjcGhDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Q4akNFOztFY3hoQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dka2tDRTs7RWM1aENDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dkc2tDRTs7RWNoaUNDO0lBdkNILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZDBrQ0U7O0VjcGlDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Q4a0NFOztFY3hpQ0M7SUF2Q0gsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dka2xDRTs7RWM1aUNDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHNsQ0U7O0VjaGpDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2QwbENFOztFY3BqQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkOGxDRTs7RWN4akNDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dka21DRTs7RWM1akNDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHNtQ0U7O0VjaGtDQztJQXZDSCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2QwbUNFOztFY3BrQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q4bUNFOztFY3hrQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dka25DRTs7RWM1a0NDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHNuQ0U7O0VjaGxDQztJQXZDSCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDBuQ0U7O0VjcGxDQztJQXZDSCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2Q4bkNFOztFY3hsQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dka29DRTs7RWM1bENDO0lBdkNILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkc29DRTs7RWNobUNDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDBvQ0U7O0VjcG1DQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Q4b0NFOztFY3htQ0M7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RrcENFOztFWS9uQ2M7SUFDVCxrQkFBQTtHWm9qREw7O0VZcmpEYztJQUNULHFCQUFBO0dabWtETDs7RVlwa0RjO0lBQ1Qsa0JBQUE7R1p3dkRMOztFWXp2RGM7SUFDVCxxQkFBQTtHWnV3REw7O0VZeHdEYztJQUNULGtCQUFBO0daZzFETDs7RVlqMURjO0lBQ1QscUJBQUE7R1orMURMOztFWWgyRGM7SUFDVCxvQkFBQTtHWm8zREw7O0VZcjNEYztJQUNULG1CQUFBO0dadTRETDs7RVl4NERjO0lBQ1Qsb0JBQUE7R1pzNURMOztFWXY1RGM7SUFDVCxpQkFBQTtHWjY2REw7O0VZOTZEYztJQUNULG9CQUFBO0daczhETDs7RWdDdDlEZ0I7SUFDZixnQkFBQTtHaEMydUVEOztFWTd0RWM7SUFDVCxrQkFBQTtHWjB2RUw7O0VZM3ZFYztJQUNULG9CQUFBO0daaXhFTDs7RVlseEVjO0lBQ1QsaUJBQUE7R1pneUVMOztFcUM3eUVjO0lBQ2YsZUFBQTtHckN1MkVDOztFcUN0MkVEO0lBQ0MsZ0JBQUE7R3JDdzJFQTs7RXNDaDJFRjtJQUNDLG1CQUFBO0d0Qzg2RUM7O0VzQzM2RUY7SUFDQyxZQUFBO0lBQ0Esa0JBQUE7R3RDNjZFQzs7RXNDMTZFRjtJQUNDLGFBQUE7SUFDQSxrQkFBQTtHdEM0NkVDOztFc0N6NkVGOztJQUVDLGVBQUE7R3RDMjZFQztDQTF2REY7QVl4ckJnQjs7RUFBQTtJQUNULG1CQUFBO0daOHRCTDs7RVkvdEJjO0lBQ1Qsb0JBQUE7R1o2dUJMOztFYzVzQkM7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2QwekNFOztFYzd2Q0M7SUE5REgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q4ekNFOztFY2p3Q0M7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RrMENFOztFY3J3Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkczBDRTs7RWN6d0NDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDAwQ0U7O0VjN3dDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZDgwQ0U7O0VjanhDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGsxQ0U7O0VjcnhDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHMxQ0U7O0VjenhDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDAxQ0U7O0VjN3hDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZDgxQ0U7O0VjanlDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGsyQ0U7O0VjcnlDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHMyQ0U7O0VjenlDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDAyQ0U7O0VjN3lDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDgyQ0U7O0VjanpDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZGszQ0U7O0VjcnpDQztJQTlESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2RzM0NFOztFY3p6Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkMDNDRTs7RWM3ekNDO0lBOURILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkODNDRTs7RWNqMENDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGs0Q0U7O0VjcjBDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RzNENFOztFY3owQ0M7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2QwNENFOztFYzcwQ0M7SUE5REgsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dkODRDRTs7RWNqMUNDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGs1Q0U7O0VjcjFDQztJQTlESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2RzNUNFOztFY3oxQ0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkMDVDRTs7RWM3MUNDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDg1Q0U7O0VjajJDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RrNkNFOztFY3IyQ0M7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RzNkNFOztFY3oyQ0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkMDZDRTs7RWM3MkNDO0lBOURILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZDg2Q0U7O0VjajNDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGs3Q0U7O0VjcjNDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RzN0NFOztFY3ozQ0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkMDdDRTs7RWM3M0NDO0lBOURILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkODdDRTs7RWNqNENDO0lBOURILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZGs4Q0U7O0VjcjRDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RzOENFOztFY3o0Q0M7SUE5REgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2QwOENFOztFYzc0Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkODhDRTs7RWNqNUNDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGs5Q0U7O0VjcjVDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZHM5Q0U7O0VZMzdDYztJQUNULGtCQUFBO0dac2pETDs7RVl2akRjO0lBQ1QscUJBQUE7R1pxa0RMOztFWXRrRGM7SUFDVCxrQkFBQTtHWjB2REw7O0VZM3ZEYztJQUNULHFCQUFBO0daeXdETDs7RVkxd0RjO0lBQ1Qsa0JBQUE7R1prMURMOztFWW4xRGM7SUFDVCxxQkFBQTtHWmkyREw7O0VZbDJEYztJQUNULG9CQUFBO0daczNETDs7RVl2M0RjO0lBQ1QsbUJBQUE7R1p5NERMOztFWTE0RGM7SUFDVCxvQkFBQTtHWnc1REw7O0VZejVEYztJQUNULGlCQUFBO0daKzZETDs7RVloN0RjO0lBQ1Qsb0JBQUE7R1p3OERMOztFWXo4RGM7SUFDVCxrQkFBQTtHWjR2RUw7O0VZN3ZFYztJQUNULG9CQUFBO0dabXhFTDs7RVlweEVjO0lBQ1QsaUJBQUE7R1preUVMOztFcUM1eEVjO0lBQ2YsZUFBQTtHckN1MkVDOztFcUN0MkVEO0lBQ0MsZ0JBQUE7R3JDdzJFQTs7RXFDbDJFYztJQUNmLGNBQUE7R3JDczJFQztDQXZwREYiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlUm9vdCI6Ii4vYXNzZXRzL3N0eWxlcyJ9 */ +/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLnN0eWwiLCJzdHlsZS5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiQmFzZS9lbWJlZC5zdHlsIiwiQmFzZS9mb3JtLnN0eWwiLCJCYXNlL2hlYWRpbmcuc3R5bCIsIkJhc2UvaHIuc3R5bCIsIkJhc2UvbGlua3Muc3R5bCIsIkJhc2UvbGlzdC5zdHlsIiwiQmFzZS90YWJsZS5zdHlsIiwiQmFzZS90eXBvZ3JhcGh5LnN0eWwiLCJPYmplY3RzL2FwcC1sYXlvdXQuc3R5bCIsIk9iamVjdHMvY29udGFpbmVyLnN0eWwiLCJUb29scy9taXhpbi5zdHlsIiwiT2JqZWN0cy9kcmF3ZXIuc3R5bCIsIk9iamVjdHMvZ3JpZC5zdHlsIiwiT2JqZWN0cy9oYW1idXJnZXItYnRuLnN0eWwiLCJDb21wb25lbnRzL2FyY2hpdmUtaGVhZGVyLnN0eWwiLCJDb21wb25lbnRzL2NvbW1lbnQtZm9ybS5zdHlsIiwiQ29tcG9uZW50cy9jb21tZW50LnN0eWwiLCJUb29scy9sb2dpY2FsLXByb3BzLnN0eWwiLCJDb21wb25lbnRzL2NvbnRlbnQtYXJlYS5zdHlsIiwiQ29tcG9uZW50cy9jdXN0b20taGVhZGVyLnN0eWwiLCJDb21wb25lbnRzL2Rhc2hpY29ucy5zdHlsIiwiQ29tcG9uZW50cy9lbnRyeS1tZXRhLnN0eWwiLCJDb21wb25lbnRzL2VudHJ5LnN0eWwiLCJDb21wb25lbnRzL2dhbGxlcnkuc3R5bCIsIkNvbXBvbmVudHMvbmF2YmFyLnN0eWwiLCJDb21wb25lbnRzL3BhZ2luYXRpb24uc3R5bCIsIkNvbXBvbmVudHMvcGFuZWwuc3R5bCIsIkNvbXBvbmVudHMvcG9zdGxpc3Quc3R5bCIsIkNvbXBvbmVudHMvcHJpbWFyeS1tZW51LnN0eWwiLCJDb21wb25lbnRzL3NlYXJjaC1mb3JtLnN0eWwiLCJDb21wb25lbnRzL3NpdGUtYnJhbmRpbmcuc3R5bCIsIkNvbXBvbmVudHMvc2l0ZS1mb290ZXIuc3R5bCIsIkNvbXBvbmVudHMvc2l0ZS1tYWluLnN0eWwiLCJDb21wb25lbnRzL3dpZGdldC5zdHlsIiwiVHJ1bXBzL3RleHQuc3R5bCIsIlRydW1wcy92aXNpYmlsaXR5LnN0eWwiLCJUcnVtcHMvd3Auc3R5bCIsIlRvb2xzL21xLnN0eWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVMsaUJBQUE7QUFDVDs7Ozs7Ozs7Ozs7O0VDWUU7QURFRjs7Ozs7R0NJRztBREdIOzs7Ozs7R0NJRztBRE1IOzs7Ozs7R0NDRztBRFVIOzs7Ozs7R0NIRztBQ3hDSCw0RUFBQTs7QUFFQTs7OztHQUlDOztBQUVEO0VBQ0Usd0JBQUEsQ0FBQSxPQUFBO0VBQ0Esa0JBQUEsQ0FBQSxPQUFBO0VBQ0EsMkJBQUEsQ0FBQSxPQUFBO0VBQ0EsK0JBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7RUFDRSxVQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7Ozs7R0FJQzs7QUFFRDs7Ozs7Ozs7Ozs7VUFXQSxPQUFBO0VBQ0UsZUFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEOzs7O0VBSUUsc0JBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLGNBQUE7RUFDQSxVQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7RUFDRSx5QkFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDs7RUFFRSxjQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7OztHQUdDOztBQUVEO0VBQ0UsOEJBQUEsQ0FBQSxPQUFBO0VBQ0Esc0NBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7OztHQUdDOztBQUVEOztFQUVFLGlCQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7OztHQUdDOztBQUVEO0VBQ0Usb0JBQUEsQ0FBQSxPQUFBO0VBQ0EsMkJBQUEsQ0FBQSxPQUFBO0VBQ0Esa0NBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7O0VBRUUscUJBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDs7RUFFRSxvQkFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsbUJBQUE7Q0FDRjs7QUFFQTs7O0dBR0M7O0FBRUQ7RUFDRSxlQUFBO0VBQ0EsaUJBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLHVCQUFBO0VBQ0EsWUFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsZUFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDs7RUFFRSxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EseUJBQUE7Q0FDRjs7QUFFQTtFQUNFLGdCQUFBO0NBQ0Y7O0FBRUE7RUFDRSxZQUFBO0NBQ0Y7O0FBRUE7Z0ZBQ0c7O0FBRUg7O0dBRUM7O0FBRUQ7RUFDRSxtQkFBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsaUJBQUE7Q0FDRjs7QUFFQTtnRkFDRzs7QUFFSDs7O0dBR0M7O0FBRUQ7Ozs7RUFJRSxrQ0FBQSxDQUFBLE9BQUE7RUFDQSxlQUFBLENBQUEsT0FBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEO0VBQ0UsaUJBQUE7Q0FDRjs7QUFFQTs7O0dBR0M7O0FBRUQ7RUFDRSx3QkFBQSxDQUFBLE9BQUE7RUFDQSxVQUFBLENBQUEsT0FBQTtFQUNBLGtCQUFBLENBQUEsT0FBQTtDQUNGOztBQUVBO2dGQUNHOztBQUVIOzs7R0FHQzs7QUFFRDs7Ozs7RUFLRSxjQUFBLENBQUEsT0FBQTtFQUNBLFVBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7RUFDRSxrQkFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDtRQUNBLE9BQUE7RUFDRSxrQkFBQTtDQUNGOztBQUVBOzs7R0FHQzs7QUFFRDtTQUNBLE9BQUE7RUFDRSxxQkFBQTtDQUNGOztBQUVBOzs7O0dBSUM7O0FBRUQ7Ozs7RUFJRSwyQkFBQSxDQUFBLE9BQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDs7OztFQUlFLG1CQUFBO0VBQ0EsV0FBQTtDQUNGOztBQUVBOztHQUVDOztBQUVEOzs7O0VBSUUsK0JBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLDBCQUFBO0VBQ0EsY0FBQTtFQUNBLCtCQUFBO0NBQ0Y7O0FBRUE7Ozs7O0dBS0M7O0FBRUQ7RUFDRSx1QkFBQSxDQUFBLE9BQUE7RUFDQSxlQUFBLENBQUEsT0FBQTtFQUNBLGVBQUEsQ0FBQSxPQUFBO0VBQ0EsZ0JBQUEsQ0FBQSxPQUFBO0VBQ0EsV0FBQSxDQUFBLE9BQUE7RUFDQSxvQkFBQSxDQUFBLE9BQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLGVBQUE7Q0FDRjs7QUFFQTs7O0dBR0M7O0FBRUQ7O0VBRUUsdUJBQUEsQ0FBQSxPQUFBO0VBQ0EsV0FBQSxDQUFBLE9BQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDs7RUFFRSxhQUFBO0NBQ0Y7O0FBRUE7OztHQUdDOztBQUVEO0VBQ0UsOEJBQUEsQ0FBQSxPQUFBO0VBQ0EscUJBQUEsQ0FBQSxPQUFBO0NBQ0Y7O0FBRUE7O0dBRUM7O0FBRUQ7O0VBRUUseUJBQUE7Q0FDRjs7QUFFQTs7R0FFQzs7QUFFRDtFQUNFLGVBQUE7RUFDQSxjQUFBO0NBQ0Y7O0FBRUE7OztHQUdDOztBQUVEO0VBQ0UsMkJBQUEsQ0FBQSxPQUFBO0VBQ0EsY0FBQSxDQUFBLE9BQUE7Q0FDRjs7QUYvV0E7Ozs7OztHQ2dhRztBRWxkSDs7RUFFQyxnQkFBQTtFQUNBLGFBQUE7Q0ZvZEE7QUVqZEQ7RUFDQyxnQkFBQTtDRm1kQTtBRWhkRDtFQUNDLG1CQUFBO0NGa2RBO0FFL2NEO0VBRUMsY0FBQTtDRmdkQTtBRTljQTtFQUNDLG1CQUFBO0VBRUEsZUFBQTtDRitjRDtBR3BlRDtFQUNDLHFCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGFBQUE7RUFDQSxtQkFBQTtFQUNBLDhDQUFBO0VBQ0EseUVBQUE7Q0hzZUE7QUduZUQ7RUFDQyxlQUFBO0NIcWVBO0FHbGVEOzs7Ozs7Ozs7Ozs7Ozs7RUFlQyx1QkFBQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsMEJBQUE7RUFDQSxtQ0FBQTtDSG9lQTtBR2xlQTs7Ozs7Ozs7Ozs7Ozs7O0VBQ0MscUJBQUE7Q0hrZkQ7QUcvZUQ7Ozs7Ozs7Ozs7O0VBV0MsZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLHVCQUFBO0VBQ0EseUVBQUE7Q0hpZkE7QUc5ZUQ7RUFDQyxhQUFBO0NIZ2ZBO0FHN2VEOzs7O0VBSUMsbUJBQUE7RUFDQSxvQkFBQTtFQUNBLCtCQUFBO01BQUEsMkJBQUE7RUFDQSxnQkFBQTtFQUNBLDBCQUFBO0tBQUEsdUJBQUE7TUFBQSxzQkFBQTtVQUFBLGtCQUFBO0VBQ0EsdUJBQUE7Q0grZUE7QUkvaUJEO0VBQ0MsaUJBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7Q0ppakJBO0FJOWlCRDtFQUNDLGlCQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBO0NKZ2pCQTtBSTdpQkE7RUFDQyxZQUFBO0VBQ0EsbUNBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0NKK2lCRDtBSTFpQkQ7RUFDQyxpQkFBQTtFQUNBLGtCQUFBO0NKNGlCQTtBSTFpQkE7RUFDQyxZQUFBO0VBQ0EsbUNBQUE7RUFDQSxjQUFBO0VBQ0EsZUFBQTtFQUNBLG9CQUFBO0NKNGlCRDtBSXRpQkQ7RUFDQyxpQkFBQTtFQUNBLGtCQUFBO0NKd2lCQTtBSW5pQkQ7RUFDQyxpQkFBQTtFQUNBLGVBQUE7Q0pxaUJBO0FJbGlCRDtFQUNDLG9CQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0NKb2lCQTtBS3RtQkQ7RUFDQyxhQUFBO0VBQ0EsOEJBQUE7RUFDQSxXQUFBO0VBQ0Esa0JBQUE7RUFDQSxZQUFBO0NMd21CQTtBTXRtQkQ7RUFDQyxlQUFBO0VBQ0Esc0JBQUE7Q053bUJBO0FNdG1CQTtFQUNDLDJCQUFBO0NOd21CRDtBTXBtQkM7RUFDQyxhQUFBO0NOc21CRjtBTWxtQkE7RUFDQyxxQkFBQTtDTm9tQkQ7QU96bUJEOztFQUVDLG9CQUFBO0NQMm1CQTtBT3htQkQ7RUFDQyxnQkFBQTtDUDBtQkE7QU92bUJEO0VBQ0MsZ0JBQUE7RUFDQSxvQkFBQTtDUHltQkE7QU90bUJEO0VBQ0MsaUJBQUE7Q1B3bUJBO0FRbG9CRDtFQUNDLFlBQUE7RUFDQSxjQUFBO0NSb29CQTtBUWpvQkQ7RUFDQyx1QkFBQTtFQUNBLFlBQUE7Q1Jtb0JBO0FRL25CQTtFQUNDLDBCQUFBO0NSaW9CRDtBUXhuQkQ7O0VBRUMsYUFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSx1QkFBQTtDUjBuQkE7QVFsbkJEO0VBQ0Msa0JBQUE7Q1JvbkJBO0FTN3BCRDtFQUNDLCtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxzRUFBQTtDVCtwQkE7QVM1cEJEO0VBQ0MsK0JBQUE7RUFDQSxpQkFBQTtFQUNBLDJIQUFBO0NUOHBCQTtBUzNwQkQ7RUFDQywrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsMkhBQUE7Q1Q2cEJBO0FTMXBCRDtFQUNDLCtCQUFBO0VBQ0EsaUJBQUE7RUFDQSxnREFBQTtDVDRwQkE7QVN6cEJEO0VBQ0MsK0JBQUE7RUFDQSxpQkFBQTtFQUNBLGdEQUFBO0NUMnBCQTtBU3hwQkQ7RUFDQyxpQkFBQTtFQUNBLGlCQUFBO0NUMHBCQTtBU3ZwQkQ7RUFDQyxVQUFBO0VBQ0Esb1FBQUE7RUFDQSxpQkFBQTtFQU1BLFlBQUE7RUFDQSx1QkFBQTtFQUNBLGtCQUFBO0VBQ0EsMEJBQUE7RUFDQSxzQkFBQTtFQUNBLDZDQUFBO0NUb3BCQTtBU2pwQkQ7RUFDQyxrQkFBQTtDVHdwQkE7QVNycEJEO0VBQ0MsY0FBQTtDVHVwQkE7QVNwcEJEO0VBQ0MsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsYUFBQTtFQUNBLGlCQUFBO0NUc3BCQTtBU25wQkQ7O0VBQ0MsaUJBQUE7RUFDQSxxQkFBQTtDVHNwQkE7QVNucEJEO0VBQ0MsY0FBQTtFQUNBLGVBQUE7RUFDQSxvQ0FBQTtDVHFwQkE7QVNucEJBO0VBQ0MsZUFBQTtFQUNBLGtCQUFBO0NUcXBCRDtBRHBxQkQ7Ozs7OztHQzJxQkc7QVUxdUJIO0VBQ0MsMEJBQUE7Q1Y0dUJBO0FVMXVCQTtFQUNDLHVCQUFBO0VBQ0Esa0NBQUE7RUFDQSxnQkFBQTtFQUNBLFFBQUE7RUFDQSxPQUFBO0VBMEJBLFdBQUE7RUFDQSx3QkFBQTtFQUNBLGlCQUFBO0VBTUEsWUFBQTtFQUNBLGdIQUFBO0VBS0Esc0JBQUE7RUFDQSwyQkFBQTtFQUNBLHlEQUFBO0VBQ0EsMkRBQUE7RUFBQSxtREFBQTtFQUFBLHNFQUFBO0NWMHNCRDtBVW52QkM7RUFDQyxtQkFBQTtDVnF2QkY7QVVodkJDO0VBQ0Msa0JBQUE7RUFDQSxtQkFBQTtDVmt2QkY7QVVodkJFO0VBQ0MsZUFBQTtFQUNBLGdCQUFBO0NWa3ZCSDtBVW51QkM7O0VBRUMscUJBQUE7Q1ZpdkJGO0FVbHVCQTtFQUNDLHVCQUFBO0VBRUEsMEJBQUE7Q1ZtdUJEO0FXM3hCRDtFQUNDLHdCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7RUNnQk0sbUJBQUE7RUFBQSxvQkFBQTtDWit3Qk47QWFueUJBO0VBRUMsWUFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUVBLFlBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0Esa0NBQUE7Q2JpMEJEO0FhNXpCRTs7RUFFQyxhQUFBO0VBQ0EsYUFBQTtDYjh6Qkg7QWF4ekJBO0VBQ0MsbUJBQUE7RUFDQSx3RUFBQTtFQUNBLGdCQUFBO0VBQ0EsdUJBQUE7RUFDQSxhQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsdUJBQUE7RUFFQSxzQ0FBQTtVQUFBLDhCQUFBO0VBQ0EsK0NBQUE7RUFBQSx1Q0FBQTtFQUFBLDJFQUFBO0NieXpCRDtBYXR6QkM7RUFDQyxrQkFBQTtDYnd6QkY7QWFoekJBO0VBQ0Msb0JBQUE7RUFDQSxtQ0FBQTtVQUFBLDJCQUFBO0Nid3pCRDtBYXJ6QkE7RUFDQywrQkFBQTtDYnV6QkQ7QWFuekJBO0VBQ0MsZUFBQTtDYnF6QkQ7QWFoekJEO0VBQ0MsaUJBQUE7Q2JrekJBO0FjaDNCRDtFQUNDLFlBQUE7RUFDQSxhQUFBO0VBRUEscUJBQUE7RUFBQSxxQkFBQTtFQUFBLGNBQUE7RUFDQSxvQkFBQTtNQUFBLGdCQUFBO0VBQ0EsK0JBQUE7RUFBQSw4QkFBQTtNQUFBLHdCQUFBO1VBQUEsb0JBQUE7Q2RpM0JBO0FjLzJCQTtFQUVDLHVCQUFBO0VBQ0EsWUFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7TUFBQSxxQkFBQTtVQUFBLGFBQUE7RUFDQSxxQkFBQTtNQUFBLGVBQUE7RUFDQSxhQUFBO0NkKzJCRDtBYzcyQkM7RUFDQyxvQkFBQTtNQUFBLHFCQUFBO1VBQUEsYUFBQTtDZCsyQkY7QWN6MkJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkeTRCQTtBYzcyQkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2Q2NEJBO0FjajNCRTtFQTdCRixZQUFBO0VBQ0EsOEJBQUE7TUFBQSxpQkFBQTtDZGk1QkE7QWNyM0JFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHE1QkE7QWN6M0JFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHk1QkE7QWM3M0JFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkNjVCQTtBY2o0QkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2RpNkJBO0FjcjRCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZHE2QkE7QWN6NEJFO0VBN0JGLFdBQUE7RUFDQSw2QkFBQTtNQUFBLGdCQUFBO0NkeTZCQTtBYzc0QkU7RUE3QkYsWUFBQTtFQUNBLDhCQUFBO01BQUEsaUJBQUE7Q2Q2NkJBO0FjajVCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZGk3QkE7QWNyNUJFO0VBN0JGLFdBQUE7RUFDQSw2QkFBQTtNQUFBLGdCQUFBO0NkcTdCQTtBY3o1QkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2R5N0JBO0FjNzVCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZDY3QkE7QWNqNkJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkaThCQTtBY3I2QkU7RUE3QkYsMkJBQUE7RUFDQSw2Q0FBQTtNQUFBLGdDQUFBO0NkcThCQTtBY3o2QkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkeThCQTtBYzc2QkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2Q2OEJBO0FjajdCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2RpOUJBO0FjcjdCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2RxOUJBO0FjejdCRTtFQTdCRixZQUFBO0VBQ0EsOEJBQUE7TUFBQSxpQkFBQTtDZHk5QkE7QWM3N0JFO0VBN0JGLDJCQUFBO0VBQ0EsNkNBQUE7TUFBQSxnQ0FBQTtDZDY5QkE7QWNqOEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZGkrQkE7QWNyOEJFO0VBN0JGLDJCQUFBO0VBQ0EsNkNBQUE7TUFBQSxnQ0FBQTtDZHErQkE7QWN6OEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHkrQkE7QWM3OEJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZDYrQkE7QWNqOUJFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZGkvQkE7QWNyOUJFO0VBN0JGLFlBQUE7RUFDQSw4QkFBQTtNQUFBLGlCQUFBO0NkcS9CQTtBY3o5QkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkeS9CQTtBYzc5QkU7RUE3QkYsMkJBQUE7RUFDQSw2Q0FBQTtNQUFBLGdDQUFBO0NkNi9CQTtBY2orQkU7RUE3QkYsV0FBQTtFQUNBLDZCQUFBO01BQUEsZ0JBQUE7Q2RpZ0NBO0FjcitCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2RxZ0NBO0FjeitCRTtFQTdCRiwwQkFBQTtFQUNBLDRDQUFBO01BQUEsK0JBQUE7Q2R5Z0NBO0FjNytCRTtFQTdCRixXQUFBO0VBQ0EsNkJBQUE7TUFBQSxnQkFBQTtDZDZnQ0E7QWNqL0JFO0VBN0JGLDJCQUFBO0VBQ0EsNkNBQUE7TUFBQSxnQ0FBQTtDZGloQ0E7QWNyL0JFO0VBN0JGLDBCQUFBO0VBQ0EsNENBQUE7TUFBQSwrQkFBQTtDZHFoQ0E7QWN6L0JFO0VBN0JGLFdBQUE7RUFDQSw2QkFBQTtNQUFBLGdCQUFBO0NkeWhDQTtBYzcvQkU7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkNmhDQTtBY2pnQ0U7RUE3QkYsMEJBQUE7RUFDQSw0Q0FBQTtNQUFBLCtCQUFBO0NkaWlDQTtBY3JnQ0U7RUE3QkYsWUFBQTtFQUNBLDhCQUFBO01BQUEsaUJBQUE7Q2RxaUNBO0FjaCtCQTtFQUNDLHlCQUFBO01BQUEsc0JBQUE7VUFBQSx3QkFBQTtDZHc4Q0Q7QWNyOENBO0VBQ0MsMEJBQUE7TUFBQSx1QkFBQTtVQUFBLG9CQUFBO0NkdThDRDtBY3A4Q0E7RUFDQyx1QkFBQTtNQUFBLG9CQUFBO1VBQUEsc0JBQUE7Q2RzOENEO0FjbjhDQTtFQUNDLCtCQUFBO0VBQUEsK0JBQUE7TUFBQSxnQ0FBQTtVQUFBLDRCQUFBO0NkcThDRDtBY2w4Q0E7RUFDQyxVQUFBO0NkbzhDRDtBY2o4Q0E7RUFDQyxXQUFBO0NkbThDRDtBY2g4Q0E7RUFDQyxjQUFBO0NkazhDRDtBYy83Q0E7RUFDQyxjQUFBO0NkaThDRDtBZWppREQ7RUFDQyw4QkFBQTtFQUNBLGVBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7S0FBQSxzQkFBQTtVQUFBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxnQkFBQTtDZm1pREE7QWVsaURBO0VBQ0MsY0FBQTtDZm9pREQ7QWVqaURBO0VBQ0MsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsWUFBQTtFQUNBLCtCQUFBO0VBQ0EsK0JBQUE7Q2ZtaUREO0FlbGlEQzs7RUFDQyxtQkFBQTtFQUNBLGVBQUE7RUFDQSxRQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSwrQkFBQTtFQUNBLFlBQUE7RUFDQSxnQ0FBQTtFQUNBLDJCQUFBO0NmcWlERjtBZW5pREM7RUFDQyxVQUFBO0VBQ0EsNENBQUE7RUFBQSxvQ0FBQTtFQUFBLHVEQUFBO0NmcWlERjtBZW5pREM7RUFDQyxhQUFBO0VBQ0EsK0NBQUE7RUFBQSx1Q0FBQTtFQUFBLDBEQUFBO0NmcWlERjtBZWppREE7RUFDQyxVQUFBO0NmbWlERDtBZWhpREE7O0VBRUMsaUJBQUE7Q2ZraUREO0FlamlEQzs7RUFDQyxPQUFBO0VBQ0EsaUNBQUE7VUFBQSx5QkFBQTtDZm9pREY7QWVsaURDOztFQUNDLFVBQUE7RUFDQSxrQ0FBQTtVQUFBLDBCQUFBO0NmcWlERjtBZW5pREM7Ozs7RUFDQywyQkFBQTtDZndpREY7QUR4aUREOzs7Ozs7R0MraURHO0FnQjFuREg7RUp1Qk8sa0JBQUE7RUFBQSxxQkFBQTtDWnVtRE47QWdCMW5EQTtFQUNDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7Q2hCMHBERDtBZ0J2cERBO0VBQ0MsVUFBQTtFQUNBLGlCQUFBO0NoQnlwREQ7QWlCbnFEQTtFQUNDLGtCQUFBO0NqQnFxREQ7QWlCNXBEQTs7OztFQUNDLGVBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0NqQmlxREQ7QWtCMXFEQTs7RUFDQyxlQUFBO0VBQ0EsWUFBQTtFQUNBLG1DQUFBO0VBQ0EsYUFBQTtDbEI2cUREO0FrQjFxREE7O0VBQ0Msa0JBQUE7Q2xCNnFERDtBa0IxcURBOztFQUVDLGlCQUFBO0NsQjRxREQ7QWtCenFEQTs7RUFDQyxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0VBQ0EsVUFBQTtDbEI0cUREO0FrQnhxREE7O0VBQ0MsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7Q2xCMnFERDtBa0J4cURBOztFQUNDLGlCQUFBO0NsQjJxREQ7QWtCMXFEQzs7OztFQUVDLHVCQUFBO0NsQjhxREY7QWtCNXFEQzs7RUFDQyxtQkFBQTtFQUNBLFFBQUE7Q2xCK3FERjtBa0J4cURDOztFQUNDLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtFQ3pERixtQkFBQTtFRDJERSxhQUFBO0VBQ0EsdUJBQUE7Q2xCMnFERjtBa0J2cURBOztFQUNDLGlCQUFBO0NsQjBxREQ7QWtCdHFEQzs7RUFDQyxjQUFBO0NsQnlxREY7QWtCdHFEQzs7RUFDQyxpQkFBQTtDbEJ5cURGO0FrQnJxREE7O0VBQ0MsaUJBQUE7Q2xCd3FERDtBa0JycURBOztFQUNDLFlBQUE7Q2xCd3FERDtBa0JscURBO0VBQ0MsZ0JBQUE7RUFDQSxpQkFBQTtDbEJvcUREO0FvQmh3REQ7RUFDQyxtQkFBQTtFQUNBLDBCQUFBO0NwQmt3REE7QXFCcHdERDtFQUNDLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDQSx5Q0FBQTtDckJzd0RBO0FxQnB3REE7RUFDQyxVQUFBO0NyQnN3REQ7QXFCbndEQTtFQUVDLGFBQUE7Q3JCb3dERDtBcUJsd0RDO0VBQ0MsMEJBQUE7Q3JCb3dERjtBcUJ2dkRBO0VBQ0MsZ0JBQUE7RUFDQSxPQUFBO0VBQ0EsUUFBQTtFQUNBLGdCQUFBO0NyQml3REQ7QXFCN3ZEQTtFQUNDLFlBQUE7RUFDQSxhQUFBO0NyQit2REQ7QXFCN3ZEQztFQUNDLFlBQUE7RUFDQSxhQUFBO0NyQit2REY7QXFCN3ZEQzs7O0VBR0MsZUFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0EsUUFBQTtFQUNBLHFCQUFBO0VBQ0Esa0JBQUE7Q3JCK3ZERjtBcUIxdkRFOzs7RUFJQywwQkFBQTtDckIydkRIO0FxQmp2REE7RUFDQyxZQUFBO0VUbERLLGtCQUFBO0VBQUEscUJBQUE7Q1oreUROO0FxQnp2REE7RUFDQyxtQkFBQTtFQUNBLFVBQUE7RUFDQSwrRUFBQTtDckJ5eEREO0FxQnR4REE7RUFDQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxVQUFBO0NyQnd4REQ7QXFCbHhEQztFQUNDLGVBQUE7RUFDQSxzQkFBQTtDckIweERGO0FxQnR4REE7RUFDQyxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBO0NyQnd4REQ7QXNCNzNERDtFQUNDLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0N0Qm80REE7QXVCeDRERDtFQUNDLGlCQUFBO0N2QjA0REE7QXVCejREQTtFSkdBLG9CQUFBO0NuQnk0REE7QXVCdDREQTtFQUNDLGFBQUE7RUFDQSxlQUFBO0VBQ0EsYUFBQTtFSk5ELG9CQUFBO0VJUUMscUJBQUE7Q3ZCdzRERDtBdUJwNEREO0VBQ0MsY0FBQTtDdkJzNERBO0F3Qng1REQ7RUFDQyxpQkFBQTtFWnNCTSxrQkFBQTtFQUFBLHFCQUFBO0VZakJOLCtDQUFBO0N4Qnc1REE7QXdCdDVEQTtFQUNDLGVBQUE7Q3hCczdERDtBd0JuN0RBO0VaV00sb0JBQUE7Q1oyNkROO0F3Qmg3REE7RVpLTSxtQkFBQTtFQUFBLG9CQUFBO0NaODdETjtBd0I5N0RBO0VBQ0MsY0FBQTtFQUNBLGlCQUFBO0N4Qjg5REQ7QXdCMzlEQTtFQUNDLG1CQUFBO0VaTkssaUJBQUE7Q1pvK0ROO0F3QjE5REE7RUFDQyxhQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7Q3hCMitERDtBd0J6K0RDO0VBQ0MsY0FBQTtDeEIyK0RGO0F3QnYrREE7RVp0Qk0sb0JBQUE7Q1pnZ0VOO0F5QnJoRUQ7RUFFQyxZQUFBO0VBQ0EsYUFBQTtFQUNBLHFCQUFBO0VBQUEscUJBQUE7RUFBQSxjQUFBO0VBQ0Esb0JBQUE7TUFBQSxnQkFBQTtFQUNBLCtCQUFBO0VBQUEsOEJBQUE7TUFBQSx3QkFBQTtVQUFBLG9CQUFBO0VBQ0EsMEJBQUE7TUFBQSw4QkFBQTtDekJxaUVBO0F5Qm5pRUE7RUFDQyxVQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO01BQUEscUJBQUE7VUFBQSxhQUFBO0VBQ0EscUJBQUE7TUFBQSxlQUFBO0VBQ0EsYUFBQTtDekJxaUVEO0F5QmppRUM7RUFDQyxlQUFBO0VBQ0EsZUFBQTtDekJtaUVGO0F5Qi9oRUE7RUFDQyxzQkFBQTtFQUNBLGlCQUFBO0N6QmlpRUQ7QTBCOWpFRDtFQUNDLHFCQUFBO0VBQUEscUJBQUE7RUFBQSxjQUFBO0VBQ0EsdUJBQUE7TUFBQSxxQkFBQTtVQUFBLGVBQUE7RUFDQSwwQkFBQTtNQUFBLHVCQUFBO1VBQUEsK0JBQUE7RUFDQSwwQkFBQTtNQUFBLHVCQUFBO1VBQUEsb0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0MxQjZsRUE7QTBCM2xFQTtFQUdDLGFBQUE7QzFCMmxFRDtBMEIxbEVDO0VBQ0MsZUFBQTtDMUI0bEVGO0EwQnhsRUE7RUFDQyxZQUFBO0MxQjBsRUQ7QTBCbmpFQTtFQUNDLG9CQUFBO0VBQ0EsOEJBQUE7TUFBQSxtQkFBQTtVQUFBLFVBQUE7RUFDQSxhQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBO0MxQnFqRUQ7QTJCcm5FRDtFQUVDLGNBQUE7RUFDQSxtQkFBQTtDM0JzbkVBO0EyQnBuRUE7RUFDQyxpQkFBQTtDM0JzbkVEO0EyQm5uRUE7RUFDQyx1QkFBQTtDM0JxbkVEO0EyQmxuRUE7RUFDQyxzQkFBQTtDM0JvbkVEO0EyQmpuRUE7Ozs7RUFLQyxhQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtDM0JrbkVEO0EyQi9tRUE7O0VBRUMsaUJBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7QzNCaW5FRDtBMkI5bUVBO0VBRUMsK0JBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBO0MzQittRUQ7QTJCem1FQTtFQUNDLHNDQUFBO0MzQjJtRUQ7QTRCanFFRDtFQUNDLG1CQUFBO0M1Qm1xRUE7QTRCanFFQTtFQUNDLGNBQUE7QzVCbXFFRDtBNEI5cEVBO0VBQ0MsT0FBQTtFQUNBLFVBQUE7QzVCZ3FFRDtBNEIxcEVDO0VBQ0MsMkJBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7QzVCNHBFRjtBNkJ0ckVEO0VBQ0Msb0JBQUE7QzdCd3JFQTtBNkJ0ckVBO0VBQ0MsdUJBQUE7QzdCd3JFRDtBNkJyckVBO0VBQ0MsbUJBQUE7QzdCdXJFRDtBNkJwckVBO0VBQ0MsZ0JBQUE7RUFDQSxvQkFBQTtFQUNBLFVBQUE7QzdCc3JFRDtBNkJuckVBO0VBQ0MsZ0JBQUE7QzdCcXJFRDtBNkJsckVBO0VBQ0MsZUFBQTtFQUNBLHFCQUFBO0M3Qm9yRUQ7QTZCanJFQTtFQUNDLGVBQUE7RUFDQSxvQkFBQTtFQUNBLGlCQUFBO0M3Qm1yRUQ7QThCOXNFQTtFQUNDLFdBQUE7RUFDQSxVQUFBO0VBQ0EseUNBQUE7QzlCZ3RFRDtBOEIvc0VDO0VBQ0MsVUFBQTtFQUNBLFdBQUE7QzlCaXRFRjtBOEIvc0VDOztFQUdDLFdBQUE7RUFDQSxpQkFBQTtDOUJndEVGO0E4QjlzRUM7RUFDQyxlQUFBO0VBQ0EsZUFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtFQUNBLHVDQUFBO0M5Qmd0RUY7QThCM3NFQztFQUNDLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLFNBQUE7RUFDQSxTQUFBO0VBQ0EsYUFBQTtFQUVBLGdCQUFBO0M5QjRzRUY7QThCenNFRTtFQUNDLGFBQUE7RUFDQSx5QkFBQTtFQUNBLGVBQUE7RUFDQSxtQkFBQTtFQUNBLDRCQUFBO0VBQ0Esc0JBQUE7RUFDQSx1QkFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7QzlCMnNFSDtBOEJ4c0VFO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0VBQ0EsUUFBQTtFQUNBLFNBQUE7RUFDQSx3Q0FBQTtFQUNBLGVBQUE7QzlCMHNFSDtBOEJ2c0VFO0VBQ0MsaUJBQUE7QzlCeXNFSDtBOEJyc0VDO0VBSUMsbUJBQUE7QzlCb3NFRjtBOEJuc0VFOztFQUVDLGlCQUFBO0VBQ0Esb0NBQUE7QzlCcXNFSDtBOEJuc0VHOztFQUNDLGtCQUFBO0M5QnNzRUo7QThCL3JFRzs7RUFDQyxxQkFBQTtFQUNBLG1CQUFBO0M5QmtzRUo7QThCL3JFRzs7RUFDQyxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxvQkFBQTtDOUJrc0VKO0ErQjF4RUQ7RUFFQyxtQkFBQTtFQUVBLFlBQUE7Qy9CMHhFQTtBK0J6eEVBO0VBQ0MsWUFBQTtFQUNBLG1CQUFBO0MvQjJ4RUQ7QStCenhFQTtFQUNDLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxPQUFBO0VBQ0EsU0FBQTtDL0IyeEVEO0FnQ3h5RUQ7RUFDQyxxQkFBQTtFQUFBLHFCQUFBO0VBQUEsY0FBQTtFQUNBLDBCQUFBO01BQUEsdUJBQUE7VUFBQSxvQkFBQTtDaEMweUVBO0FnQ3R5RUM7RUFDQyxlQUFBO0ViRkYsbUJBQUE7RWFJRSxnQkFBQTtDaEN3eUVGO0FnQzV4RUE7RUFDQyxlQUFBO0VBQ0Esb0JBQUE7RUFDQSxvQkFBQTtNQUFBLHFCQUFBO1VBQUEsYUFBQTtFQUNBLFVBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0NoQ3d5RUQ7QWdDdHlFQztFQUNDLGVBQUE7Q2hDd3lFRjtBaUN0MEVEO0VBQ0MsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLDBCQUFBO0VBQ0EsNENBQUE7Q2pDdzBFQTtBaUN2MEVBO0VyQmtCTSxrQkFBQTtDWnd6RU47QWtDLzBFRDtFQUNDLFdBQUE7RUFFQSxpQkFBQTtDbEMrMUVBO0FtQ2wyRUQ7RXZCdUJPLG9CQUFBO0VBQUEsaUJBQUE7Q1orMEVOO0FtQ2wyRUE7RUFDQyxjQUFBO0VBQ0Esb0JBQUE7Q25DazRFRDtBRG56RUQ7Ozs7OztHQzB6RUc7QW9DLzRFSDtFQUNDLG1CQUFBO0NwQ2k1RUE7QW9DOTRFRDtFQUNDLGVBQUE7Q3BDZzVFQTtBb0M3NEVEO0VBQ0MsaUJBQUE7Q3BDKzRFQTtBb0M1NEVEO0VBQ0Msa0JBQUE7Q3BDODRFQTtBb0MxNEVEO0VBQ0MsaUJBQUE7Q3BDNDRFQTtBb0N4NEVEO0VBQ0MsaUJBQUE7Q3BDMDRFQTtBb0N2NEVEO0VBQ0MsaUJBQUE7Q3BDeTRFQTtBcUNwNkVEO0VBQ0MsZUFBQTtDckNzNkVBO0FxQ3I2RUE7RUFDQyxnQkFBQTtDckN1NkVEO0FxQ242RUQ7RUFDQyxjQUFBO0NyQ3E2RUE7QXFDbDZFRDtFQUNDLGNBQUE7Q3JDbzZFQTtBcUMzNUVEO0VBQ0MsY0FBQTtDckNxNkVBO0FxQ3I1RUQ7RUFDQyxjQUFBO0NyQ282RUE7QXFDcDVFRDtFQUNDLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxXQUFBO0VBQ0EsYUFBQTtFQUNBLGlCQUFBO0VBQ0EsdUJBQUE7RUFDQSxVQUFBO0NyQ202RUE7QXFDaDZFRDtFQUNDLHVCQUFBO0VBQ0EsbUJBQUE7RUFFQSx3Q0FBQTtFQUNBLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtDckNrNkVBO0FzQ24vRUQ7RUFDQyx5QkFBQTtFQUNBLGtCQUFBO0VBQ0EsYUFBQTtDdENxL0VBO0FzQzkrRUQ7Ozs7O0VBS0MsZUFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0N0Q2cvRUE7QXNDdDlFRDs7O0VBR0Msc0JBQUE7Q3RDeStFQTtBc0N0K0VEO0VBQ0MsZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLDhCQUFBO0VBQ0EsbUJBQUE7RUFLQSxtQkFBQTtDdENvK0VBO0FzQ3grRUE7RUFDQyxlQUFBO0VBQ0EsYUFBQTtDdEMwK0VEO0FzQ3ArRUQ7O0VBRUMsVUFBQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLGNBQUE7RUFDQSxXQUFBO0N0Q3MrRUE7QXNDbCtFQTs7RUFDQyw0QkFBQTtDdENxK0VEO0F1Q3JoRmlCOztFQUFBO0k5QmNoQixpQkFBQTtHVGdxQkM7O0VVMXFCaUI7SUFDaEIsZ0JBQUE7SUFDQSw2QkFBQTtHVm92QkQ7O0VZeHZCZTtJQUNWLG1CQUFBO0daaXhCTDs7RVlseEJlO0lBQ1Ysb0JBQUE7R1pneUJMOztFYS93QmlCO0lBQ2hCLGdCQUFBO0lBQ0Esa0JBQUE7R2IwekJEOztFY256QkM7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q0c0NFOztFYzFwQ0M7SUFuREgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RndENFOztFYzlwQ0M7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RvdENFOztFY2xxQ0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkd3RDRTs7RWN0cUNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDR0Q0U7O0VjMXFDQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZGd1Q0U7O0VjOXFDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZG91Q0U7O0VjbHJDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHd1Q0U7O0VjdHJDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDR1Q0U7O0VjMXJDQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZGd2Q0U7O0VjOXJDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZG92Q0U7O0VjbHNDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHd2Q0U7O0VjdHNDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDR2Q0U7O0VjMXNDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGd3Q0U7O0VjOXNDQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZG93Q0U7O0VjbHRDQztJQW5ESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2R3d0NFOztFY3R0Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkNHdDRTs7RWMxdENDO0lBbkRILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkZ3hDRTs7RWM5dENDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZG94Q0U7O0VjbHVDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2R3eENFOztFY3R1Q0M7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q0eENFOztFYzF1Q0M7SUFuREgsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dkZ3lDRTs7RWM5dUNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZG95Q0U7O0VjbHZDQztJQW5ESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2R3eUNFOztFY3R2Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkNHlDRTs7RWMxdkNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGd6Q0U7O0VjOXZDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RvekNFOztFY2x3Q0M7SUFuREgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2R3ekNFOztFY3R3Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkNHpDRTs7RWMxd0NDO0lBbkRILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZGcwQ0U7O0VjOXdDQztJQW5ESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZG8wQ0U7O0VjbHhDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2R3MENFOztFY3R4Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkNDBDRTs7RWMxeENDO0lBbkRILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkZzFDRTs7RWM5eENDO0lBbkRILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZG8xQ0U7O0VjbHlDQztJQW5ESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2R3MUNFOztFY3R5Q0M7SUFuREgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q0MUNFOztFYzF5Q0M7SUFuREgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkZzJDRTs7RWM5eUNDO0lBbkRILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZG8yQ0U7O0VjbHpDQztJQW5ESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZHcyQ0U7O0VZajFDZTtJQUNWLGtCQUFBO0daeW1ETDs7RVkxbURlO0lBQ1YscUJBQUE7R1p3bkRMOztFdUMzbkRlO0lsQlBmLGNBQUE7R3JCb3dEQTs7RXFCbHdERTtJQUNDLDJCQUFBO0dyQm93REg7O0V1Q2h3RGU7OztJbEJzQ2IsYUFBQTtJQUNBLGtCQUFBO0dyQjh2REY7O0VZbnlEZTtJQUNWLGtCQUFBO0daaXpETDs7RVlsekRlO0lBQ1YscUJBQUE7R1pnMERMOztFdUNuMERlO0lsQjZEZixpQkFBQTtJQUNBLGlCQUFBO0dyQjB4REE7O0V1Q3gxRGU7SWxCNkVmLGlCQUFBO0dyQnl4REE7O0VZcDJEZTtJQUNWLGtCQUFBO0daeTRETDs7RVkxNERlO0lBQ1YscUJBQUE7R1p3NURMOztFWXo1RGU7SUFDVixvQkFBQTtHWjY2REw7O0VZOTZEZTtJQUNWLG1CQUFBO0daZzhETDs7RVlqOERlO0lBQ1Ysb0JBQUE7R1orOERMOztFWWg5RGU7SUFDVixpQkFBQTtHWnMrREw7O0VZditEZTtJQUNWLG9CQUFBO0daa2dFTDs7RXlCMS9EQTtJQUxELDhCQUFBO0lBQUEsaUJBQUE7R3pCaWlFQzs7RXlCNWhFQTtJQUxELDZCQUFBO0lBQUEsZ0JBQUE7R3pCb2lFQzs7RXlCL2hFQTtJQUxELDRDQUFBO0lBQUEsK0JBQUE7R3pCdWlFQzs7RXlCbGlFQTtJQUxELDZCQUFBO0lBQUEsZ0JBQUE7R3pCMGlFQzs7RXlCcmlFQTtJQUxELDZCQUFBO0lBQUEsZ0JBQUE7R3pCNmlFQzs7RXlCeGlFQTtJQUxELDZDQUFBO0lBQUEsZ0NBQUE7R3pCZ2pFQzs7RXlCM2lFQTtJQUxELDZDQUFBO0lBQUEsZ0NBQUE7R3pCbWpFQzs7RXlCOWlFQTtJQUxELCtCQUFBO0lBQUEsa0JBQUE7R3pCc2pFQzs7RXlCampFQTtJQUxELDRDQUFBO0lBQUEsK0JBQUE7R3pCeWpFQzs7RWdDN2tFaUI7SUFDaEIsZ0JBQUE7R2hDNHlFRDs7RVk3eEVlO0lBQ1Ysa0JBQUE7R1owekVMOztFWTN6RWU7SUFDVixvQkFBQTtHWmkxRUw7O0VZbDFFZTtJQUNWLGlCQUFBO0daZzJFTDs7RXFDdjJFZTtJQUNoQixlQUFBO0dyQ3U2RUM7O0VxQ3Q2RUQ7SUFDQyxnQkFBQTtHckN3NkVBOztFcUNsNkVlO0lBQ2hCLGNBQUE7R3JDczZFQztDQTd2REY7QVUvcUJrQjs7RUFBQTtJQUNmLGdCQUFBO0lBQ0Esa0JBQUE7R1ZrdkJEOztFWXR2QmM7SUFDVCxtQkFBQTtHWmd4Qkw7O0VZanhCYztJQUNULG9CQUFBO0daK3hCTDs7RWM3d0JDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dkMGlDRTs7RWNwZ0NDO0lBdkNILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkOGlDRTs7RWN4Z0NDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dka2pDRTs7RWM1Z0NDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHNqQ0U7O0VjaGhDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2QwakNFOztFY3BoQ0M7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q4akNFOztFY3hoQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Rra0NFOztFYzVoQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Rza0NFOztFY2hpQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Qwa0NFOztFY3BpQ0M7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q4a0NFOztFY3hpQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RrbENFOztFYzVpQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RzbENFOztFY2hqQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2QwbENFOztFY3BqQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q4bENFOztFY3hqQ0M7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RrbUNFOztFYzVqQ0M7SUF2Q0gsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dkc21DRTs7RWNoa0NDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDBtQ0U7O0VjcGtDQztJQXZDSCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDhtQ0U7O0VjeGtDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RrbkNFOztFYzVrQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkc25DRTs7RWNobENDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dkMG5DRTs7RWNwbENDO0lBdkNILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZDhuQ0U7O0VjeGxDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Rrb0NFOztFYzVsQ0M7SUF2Q0gsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dkc29DRTs7RWNobUNDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDBvQ0U7O0VjcG1DQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Q4b0NFOztFY3htQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dka3BDRTs7RWM1bUNDO0lBdkNILFlBQUE7SUFDQSw4QkFBQTtJQUFBLGlCQUFBO0dkc3BDRTs7RWNobkNDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDBwQ0U7O0VjcG5DQztJQXZDSCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2Q4cENFOztFY3huQ0M7SUF2Q0gsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RrcUNFOztFYzVuQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkc3FDRTs7RWNob0NDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDBxQ0U7O0VjcG9DQztJQXZDSCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDhxQ0U7O0VjeG9DQztJQXZDSCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2RrckNFOztFYzVvQ0M7SUF2Q0gsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkc3JDRTs7RWNocENDO0lBdkNILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkMHJDRTs7RWNwcENDO0lBdkNILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDhyQ0U7O0VjeHBDQztJQXZDSCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2Rrc0NFOztFYzVwQ0M7SUF2Q0gsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Rzc0NFOztFWW5yQ2M7SUFDVCxrQkFBQTtHWndtREw7O0VZem1EYztJQUNULHFCQUFBO0dadW5ETDs7RVl4bkRjO0lBQ1Qsa0JBQUE7R1pnekRMOztFWWp6RGM7SUFDVCxxQkFBQTtHWit6REw7O0VZaDBEYztJQUNULGtCQUFBO0dadzRETDs7RVl6NERjO0lBQ1QscUJBQUE7R1p1NURMOztFWXg1RGM7SUFDVCxvQkFBQTtHWjQ2REw7O0VZNzZEYztJQUNULG1CQUFBO0daKzdETDs7RVloOERjO0lBQ1Qsb0JBQUE7R1o4OERMOztFWS84RGM7SUFDVCxpQkFBQTtHWnErREw7O0VZdCtEYztJQUNULG9CQUFBO0daaWdFTDs7RWdDamhFZ0I7SUFDZixnQkFBQTtHaEMweUVEOztFWTV4RWM7SUFDVCxrQkFBQTtHWnl6RUw7O0VZMXpFYztJQUNULG9CQUFBO0daZzFFTDs7RVlqMUVjO0lBQ1QsaUJBQUE7R1orMUVMOztFcUM1MkVjO0lBQ2YsZUFBQTtHckNzNkVDOztFcUNyNkVEO0lBQ0MsZ0JBQUE7R3JDdTZFQTs7RXNDLzVFRjtJQUNDLG1CQUFBO0d0QzYrRUM7O0VzQzErRUY7SUFDQyxZQUFBO0lBQ0Esa0JBQUE7R3RDNCtFQzs7RXNDeitFRjtJQUNDLGFBQUE7SUFDQSxrQkFBQTtHdEMyK0VDOztFc0N4K0VGOztJQUVDLGVBQUE7R3RDMCtFQztDQWx3REY7QVkvdUJnQjs7RUFBQTtJQUNULG1CQUFBO0daa3hCTDs7RVlueEJjO0lBQ1Qsb0JBQUE7R1ppeUJMOztFY2h3QkM7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q4MkNFOztFY2p6Q0M7SUE5REgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2RrM0NFOztFY3J6Q0M7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2RzM0NFOztFY3p6Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkMDNDRTs7RWM3ekNDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZDgzQ0U7O0VjajBDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZGs0Q0U7O0VjcjBDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHM0Q0U7O0VjejBDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDA0Q0U7O0VjNzBDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDg0Q0U7O0VjajFDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZGs1Q0U7O0VjcjFDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHM1Q0U7O0VjejFDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDA1Q0U7O0VjNzFDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZDg1Q0U7O0VjajJDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZGs2Q0U7O0VjcjJDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZHM2Q0U7O0VjejJDQztJQTlESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2QwNkNFOztFYzcyQ0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkODZDRTs7RWNqM0NDO0lBOURILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkazdDRTs7RWNyM0NDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHM3Q0U7O0VjejNDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2QwN0NFOztFYzczQ0M7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2Q4N0NFOztFY2o0Q0M7SUE5REgsMkJBQUE7SUFDQSw2Q0FBQTtJQUFBLGdDQUFBO0dkazhDRTs7RWNyNENDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHM4Q0U7O0VjejRDQztJQTlESCwyQkFBQTtJQUNBLDZDQUFBO0lBQUEsZ0NBQUE7R2QwOENFOztFYzc0Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkODhDRTs7RWNqNUNDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZGs5Q0U7O0VjcjVDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2RzOUNFOztFY3o1Q0M7SUE5REgsWUFBQTtJQUNBLDhCQUFBO0lBQUEsaUJBQUE7R2QwOUNFOztFYzc1Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkODlDRTs7RWNqNkNDO0lBOURILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZGsrQ0U7O0VjcjZDQztJQTlESCxXQUFBO0lBQ0EsNkJBQUE7SUFBQSxnQkFBQTtHZHMrQ0U7O0VjejZDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2QwK0NFOztFYzc2Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dkOCtDRTs7RWNqN0NDO0lBOURILFdBQUE7SUFDQSw2QkFBQTtJQUFBLGdCQUFBO0dkay9DRTs7RWNyN0NDO0lBOURILDJCQUFBO0lBQ0EsNkNBQUE7SUFBQSxnQ0FBQTtHZHMvQ0U7O0VjejdDQztJQTlESCwwQkFBQTtJQUNBLDRDQUFBO0lBQUEsK0JBQUE7R2QwL0NFOztFYzc3Q0M7SUE5REgsV0FBQTtJQUNBLDZCQUFBO0lBQUEsZ0JBQUE7R2Q4L0NFOztFY2o4Q0M7SUE5REgsMEJBQUE7SUFDQSw0Q0FBQTtJQUFBLCtCQUFBO0dka2dERTs7RWNyOENDO0lBOURILDBCQUFBO0lBQ0EsNENBQUE7SUFBQSwrQkFBQTtHZHNnREU7O0VjejhDQztJQTlESCxZQUFBO0lBQ0EsOEJBQUE7SUFBQSxpQkFBQTtHZDBnREU7O0VZLytDYztJQUNULGtCQUFBO0daMG1ETDs7RVkzbURjO0lBQ1QscUJBQUE7R1p5bkRMOztFWTFuRGM7SUFDVCxrQkFBQTtHWmt6REw7O0VZbnpEYztJQUNULHFCQUFBO0daaTBETDs7RVlsMERjO0lBQ1Qsa0JBQUE7R1owNERMOztFWTM0RGM7SUFDVCxxQkFBQTtHWnk1REw7O0VZMTVEYztJQUNULG9CQUFBO0daODZETDs7RVkvNkRjO0lBQ1QsbUJBQUE7R1ppOERMOztFWWw4RGM7SUFDVCxvQkFBQTtHWmc5REw7O0VZajlEYztJQUNULGlCQUFBO0dadStETDs7RVl4K0RjO0lBQ1Qsb0JBQUE7R1ptZ0VMOztFWXBnRWM7SUFDVCxrQkFBQTtHWjJ6RUw7O0VZNXpFYztJQUNULG9CQUFBO0daazFFTDs7RVluMUVjO0lBQ1QsaUJBQUE7R1ppMkVMOztFcUMzMUVjO0lBQ2YsZUFBQTtHckNzNkVDOztFcUNyNkVEO0lBQ0MsZ0JBQUE7R3JDdTZFQTs7RXFDajZFYztJQUNmLGNBQUE7R3JDcTZFQztDQWxxREYiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlUm9vdCI6Ii4vYXNzZXRzL3N0eWxlcyJ9 */ diff --git a/wp-content/themes/vanilla/template-parts/content-front-page-panels.php b/wp-content/themes/vanilla/template-parts/content-front-page-panels.php index 0242ae16f484cd773ac6a1b3653ece4a4c611700..cea8fb0d82d234a2c2324beeb14dd39217bab2e1 100644 --- a/wp-content/themes/vanilla/template-parts/content-front-page-panels.php +++ b/wp-content/themes/vanilla/template-parts/content-front-page-panels.php @@ -16,7 +16,7 @@ global $vanillacounter; <?php the_post_thumbnail( 'vanilla-featured-image' ); ?> <?php else : ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'vanilla-featured-image' ); ?></a> - <?php endif;?> + <?php endif; ?> </div> <?php endif; ?> @@ -30,9 +30,11 @@ global $vanillacounter; <?php // Show recent blog posts if is blog posts page (Note that get_option returns a string, so we're casting the result as an int). - if ( get_the_ID() === (int) get_option( 'page_for_posts' ) ) : ?> + if ( get_the_ID() === (int) get_option( 'page_for_posts' ) ) : + ?> - <?php // Show four most recent posts. + <?php + // Show four most recent posts. $recent_posts = new WP_Query( array( 'post_status' => 'publish', 'ignore_sticky_posts' => true, @@ -44,13 +46,12 @@ global $vanillacounter; <div class="postlist"> <?php - while ( $recent_posts->have_posts() ) : $recent_posts->the_post(); + while ( $recent_posts->have_posts() ) : + $recent_posts->the_post(); ?> - <article class="postlist__item" itemscope - itemtype="http://schema.org/Article"> - <time class="postlist__pubdate" - itemprop="datePublished" content="<?php the_time( 'c' ); ?>"><?php the_time( 'Y.m.d' ); ?></time> - <meta itemprop="dateModified" content="<?php the_modified_date( 'c' );?>"> + <article class="postlist__item" itemscope itemtype="http://schema.org/Article"> + <time class="postlist__pubdate" itemprop="datePublished" content="<?php the_time( 'c' ); ?>"><?php the_time( 'Y.m.d' ); ?></time> + <meta itemprop="dateModified" content="<?php the_modified_date( 'c' ); ?>"> <h5 class="postlist__title"><a href="<?php the_permalink(); ?>"><span itemprop="headline"><?php the_title(); ?></span></a></h5> </article> <?php @@ -62,8 +63,7 @@ global $vanillacounter; <?php else : ?> <?php - /* translators: %s: Name of current post */ - the_content( sprintf( + the_content( /* translators: %s: Name of current post */ sprintf( __( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'vanilla' ), get_the_title() ) ); diff --git a/wp-content/themes/vanilla/template-parts/content-none.php b/wp-content/themes/vanilla/template-parts/content-none.php index e48dc40603bcc3441948b56f7c868f2396987de3..a5743599182b2f15c996d94eb5c8ba03f3849c5b 100644 --- a/wp-content/themes/vanilla/template-parts/content-none.php +++ b/wp-content/themes/vanilla/template-parts/content-none.php @@ -17,9 +17,19 @@ <div class="entry-content entry__content"> <?php - if ( is_home() && current_user_can( 'publish_posts' ) ) : ?> + if ( is_home() && current_user_can( 'publish_posts' ) ) : + ?> - <p><?php printf( wp_kses( __( 'Ready to publish your first post? <a href="%1$s">Get started here</a>.', 'vanilla' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( admin_url( 'post-new.php' ) ) ); ?></p> + <p> + <?php + /* translators: add post link. */ + printf( wp_kses( __( 'Ready to publish your first post? <a href="%1$s">Get started here</a>.', 'vanilla' ), array( + 'a' => array( + 'href' => array(), + ), + ) ), esc_url( admin_url( 'post-new.php' ) ) ); +?> +</p> <?php elseif ( is_search() ) : ?> @@ -27,13 +37,15 @@ <?php get_search_form(); - else : ?> + else : + ?> <p><?php esc_html_e( 'It seems we can’t find what you’re looking for. Perhaps searching can help.', 'vanilla' ); ?></p> <?php get_search_form(); - endif; ?> + endif; + ?> </div> </div> </section> diff --git a/wp-content/themes/vanilla/template-parts/content.php b/wp-content/themes/vanilla/template-parts/content.php index 4f90bf476339e5dea22793076bd896818e9cc428..e666cff89b16f3810ea7c57ed5aebc8aa8a86cb4 100644 --- a/wp-content/themes/vanilla/template-parts/content.php +++ b/wp-content/themes/vanilla/template-parts/content.php @@ -14,8 +14,7 @@ <?php the_post_thumbnail( 'vanilla-featured-image' ); ?> <?php else : ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( 'vanilla-featured-image' ); ?></a> - <?php endif;?> - + <?php endif; ?> </div> <?php endif; ?> @@ -23,14 +22,16 @@ <header class="entry-header entry__header"> <?php - if ( is_sticky() && is_home() && ! is_paged() ) :?> + if ( is_sticky() && is_home() && ! is_paged() ) : + ?> <div class="sticky-post"> <span class="dashicons dashicons-admin-post"></span> <?php esc_html_e( 'Featured', 'vanilla' ); ?> </div> <?php - elseif ( in_array( get_post_type(), array( 'post', 'attachment' ) ) ) : ?> + elseif ( in_array( get_post_type(), array( 'post', 'attachment' ) ) ) : + ?> <p class="entry__posted-on posted-on"> <span class="dashicons dashicons-calendar"></span> @@ -39,7 +40,8 @@ </p> <?php - endif; ?> + endif; + ?> <?php if ( is_singular() && ! is_front_page() ) : ?> <h1 class="entry-title entry__title"><?php the_title(); ?></h1> @@ -47,7 +49,7 @@ <h2 class="entry-title entry__title"><?php the_title(); ?></h2> <?php else : ?> <h2 class="entry-title entry__title"><?php the_title( '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a>' ); ?></h2> - <?php endif;?> + <?php endif; ?> <div class="entry__meta"> <?php vanilla_entry_meta(); ?> @@ -69,15 +71,16 @@ else : the_excerpt(); ?> - <p><a href="<?php the_permalink();?>" class="read-more"><?php printf( wp_kses_post( __( 'Continue reading <span class="screen-reader-text">%1$s</span>', 'vanilla' ) ), esc_attr( strip_tags( get_the_title() ) ) );?></a></p> + <p><a href="<?php the_permalink(); ?>" class="read-more"><?php /* translators: Continue reading 'post title'. */ printf( wp_kses_post( __( 'Continue reading <span class="screen-reader-text">%1$s</span>', 'vanilla' ) ), esc_attr( strip_tags( get_the_title() ) ) ); ?></a></p> <?php endif; ?> - <?php vanilla_entry_footer();?> + <?php vanilla_entry_footer(); ?> </div> <?php - if ( is_singular() and ( comments_open() || get_comments_number() ) ) : ?> + if ( is_singular() && ( comments_open() || get_comments_number() ) ) : + ?> <?php comments_template(); ?> <?php endif; ?>