From e0cd6b99a1172da37d491a61304457bf55a3c028 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 27 Nov 2021 17:07:00 +0100 Subject: [PATCH 1/4] Deprecated the BLOGGER addon --- blogger/blogger.css | 16 +++ blogger/blogger.php | 216 +++++++++++++++++++++++++++++++++ blogger/lang/C/messages.po | 54 +++++++++ blogger/lang/ar/messages.po | 57 +++++++++ blogger/lang/ar/strings.php | 16 +++ blogger/lang/ca/messages.po | 56 +++++++++ blogger/lang/ca/strings.php | 16 +++ blogger/lang/cs/messages.po | 57 +++++++++ blogger/lang/cs/strings.php | 16 +++ blogger/lang/de/messages.po | 56 +++++++++ blogger/lang/de/strings.php | 16 +++ blogger/lang/en-gb/messages.po | 56 +++++++++ blogger/lang/en-gb/strings.php | 14 +++ blogger/lang/eo/strings.php | 11 ++ blogger/lang/es/messages.po | 56 +++++++++ blogger/lang/es/strings.php | 16 +++ blogger/lang/fi-fi/messages.po | 57 +++++++++ blogger/lang/fi-fi/strings.php | 16 +++ blogger/lang/fr/messages.po | 58 +++++++++ blogger/lang/fr/strings.php | 16 +++ blogger/lang/hu/messages.po | 56 +++++++++ blogger/lang/hu/strings.php | 16 +++ blogger/lang/is/messages.po | 56 +++++++++ blogger/lang/is/strings.php | 16 +++ blogger/lang/it/messages.po | 56 +++++++++ blogger/lang/it/strings.php | 16 +++ blogger/lang/nb-no/strings.php | 11 ++ blogger/lang/nl/messages.po | 56 +++++++++ blogger/lang/nl/strings.php | 16 +++ blogger/lang/pl/messages.po | 56 +++++++++ blogger/lang/pl/strings.php | 16 +++ blogger/lang/pt-br/messages.po | 57 +++++++++ blogger/lang/pt-br/strings.php | 16 +++ blogger/lang/ro/messages.po | 55 +++++++++ blogger/lang/ro/strings.php | 16 +++ blogger/lang/ru/messages.po | 56 +++++++++ blogger/lang/ru/strings.php | 16 +++ blogger/lang/sv/messages.po | 56 +++++++++ blogger/lang/sv/strings.php | 16 +++ blogger/lang/zh-cn/strings.php | 11 ++ 40 files changed, 1546 insertions(+) create mode 100644 blogger/blogger.css create mode 100644 blogger/blogger.php create mode 100644 blogger/lang/C/messages.po create mode 100644 blogger/lang/ar/messages.po create mode 100644 blogger/lang/ar/strings.php create mode 100644 blogger/lang/ca/messages.po create mode 100644 blogger/lang/ca/strings.php create mode 100644 blogger/lang/cs/messages.po create mode 100644 blogger/lang/cs/strings.php create mode 100644 blogger/lang/de/messages.po create mode 100644 blogger/lang/de/strings.php create mode 100644 blogger/lang/en-gb/messages.po create mode 100644 blogger/lang/en-gb/strings.php create mode 100644 blogger/lang/eo/strings.php create mode 100644 blogger/lang/es/messages.po create mode 100644 blogger/lang/es/strings.php create mode 100644 blogger/lang/fi-fi/messages.po create mode 100644 blogger/lang/fi-fi/strings.php create mode 100644 blogger/lang/fr/messages.po create mode 100644 blogger/lang/fr/strings.php create mode 100644 blogger/lang/hu/messages.po create mode 100644 blogger/lang/hu/strings.php create mode 100644 blogger/lang/is/messages.po create mode 100644 blogger/lang/is/strings.php create mode 100644 blogger/lang/it/messages.po create mode 100644 blogger/lang/it/strings.php create mode 100644 blogger/lang/nb-no/strings.php create mode 100644 blogger/lang/nl/messages.po create mode 100644 blogger/lang/nl/strings.php create mode 100644 blogger/lang/pl/messages.po create mode 100644 blogger/lang/pl/strings.php create mode 100644 blogger/lang/pt-br/messages.po create mode 100644 blogger/lang/pt-br/strings.php create mode 100644 blogger/lang/ro/messages.po create mode 100644 blogger/lang/ro/strings.php create mode 100644 blogger/lang/ru/messages.po create mode 100644 blogger/lang/ru/strings.php create mode 100644 blogger/lang/sv/messages.po create mode 100644 blogger/lang/sv/strings.php create mode 100644 blogger/lang/zh-cn/strings.php diff --git a/blogger/blogger.css b/blogger/blogger.css new file mode 100644 index 0000000..2304ef9 --- /dev/null +++ b/blogger/blogger.css @@ -0,0 +1,16 @@ + +#blogger-enable-label, #blogger-username-label, #blogger-password-label, #blogger-bydefault-label, #blogger-blog-label { + float: left; + width: 200px; + margin-top: 10px; +} + +#blogger-checkbox, #blogger-username, #blogger-password, #blogger-bydefault, #blogger-blog { + float: left; + margin-top: 10px; +} + +#blogger-submit { + margin-top: 15px; +} + diff --git a/blogger/blogger.php b/blogger/blogger.php new file mode 100644 index 0000000..ff87476 --- /dev/null +++ b/blogger/blogger.php @@ -0,0 +1,216 @@ +get(local_user(), 'blogger', 'post')) { + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'blogger_enable', + DI::l10n()->t('Post to blogger'), + DI::pConfig()->get(local_user(), 'blogger', 'post_by_default') + ] + ]; + } +} + + +function blogger_settings(App $a, &$s) +{ + if (! local_user()) { + return; + } + + /* Add our stylesheet to the page so we can make our settings look nice */ + + DI::page()['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variables */ + + $enabled = DI::pConfig()->get(local_user(), 'blogger', 'post'); + $checked = (($enabled) ? ' checked="checked" ' : ''); + $css = (($enabled) ? '' : '-disabled'); + + $def_enabled = DI::pConfig()->get(local_user(), 'blogger', 'post_by_default'); + + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + + $bl_username = DI::pConfig()->get(local_user(), 'blogger', 'bl_username'); + $bl_password = DI::pConfig()->get(local_user(), 'blogger', 'bl_password'); + $bl_blog = DI::pConfig()->get(local_user(), 'blogger', 'bl_blog'); + + /* Add some HTML to the existing form */ + $s .= ''; + $s .= '

'. DI::l10n()->t('Blogger Export').'

'; + $s .= '
'; + $s .= ''; +} + + +function blogger_settings_post(App $a, array &$b) +{ + if (!empty($_POST['blogger-submit'])) { + DI::pConfig()->set(local_user(), 'blogger', 'post', $_POST['blogger'] ?? false); + DI::pConfig()->set(local_user(), 'blogger', 'post_by_default', $_POST['bl_bydefault'] ?? false); + DI::pConfig()->set(local_user(), 'blogger', 'bl_username', trim($_POST['bl_username'])); + DI::pConfig()->set(local_user(), 'blogger', 'bl_password', trim($_POST['bl_password'])); + DI::pConfig()->set(local_user(), 'blogger', 'bl_blog', trim($_POST['bl_blog'])); + } +} + +function blogger_hook_fork(App &$a, array &$b) +{ + if ($b['name'] != 'notifier_normal') { + return; + } + + $post = $b['data']; + + if ($post['deleted'] || $post['private'] || ($post['created'] !== $post['edited']) || + !strstr($post['postopts'], 'blogger') || ($post['parent'] != $post['id'])) { + $b['execute'] = false; + return; + } +} + +function blogger_post_local(App $a, array &$b) +{ + // This can probably be changed to allow editing by pointing to a different API endpoint + + if ($b['edit']) { + return; + } + + if (!local_user() || (local_user() != $b['uid'])) { + return; + } + + if ($b['private'] || $b['parent']) { + return; + } + + $bl_post = intval(DI::pConfig()->get(local_user(), 'blogger', 'post')); + + $bl_enable = (($bl_post && !empty($_REQUEST['blogger_enable'])) ? intval($_REQUEST['blogger_enable']) : 0); + + if ($b['api_source'] && intval(DI::pConfig()->get(local_user(), 'blogger', 'post_by_default'))) { + $bl_enable = 1; + } + + if (!$bl_enable) { + return; + } + + if (strlen($b['postopts'])) { + $b['postopts'] .= ','; + } + + $b['postopts'] .= 'blogger'; +} + +function blogger_send(App $a, array &$b) +{ + if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) { + return; + } + + if (! strstr($b['postopts'], 'blogger')) { + return; + } + + if ($b['parent'] != $b['id']) { + return; + } + + $bl_username = XML::escape(DI::pConfig()->get($b['uid'], 'blogger', 'bl_username')); + $bl_password = XML::escape(DI::pConfig()->get($b['uid'], 'blogger', 'bl_password')); + $bl_blog = DI::pConfig()->get($b['uid'], 'blogger', 'bl_blog'); + + if ($bl_username && $bl_password && $bl_blog) { + $title = '' . (($b['title']) ? $b['title'] : DI::l10n()->t('Post from Friendica')) . ''; + $post = $title . BBCode::convertForUriId($b['uri-id'], $b['body'], BBCode::CONNECTORS); + $post = XML::escape($post); + + $xml = <<< EOT + + + blogger.newPost + + + + $bl_username + $bl_password + $post + 1 + + + +EOT; + + Logger::debug('blogger: data: ' . $xml); + + if ($bl_blog !== 'test') { + $x = DI::httpClient()->post($bl_blog, $xml)->getBody(); + } + + Logger::info('posted to blogger: ' . (($x) ? $x : '')); + } +} diff --git a/blogger/lang/C/messages.po b/blogger/lang/C/messages.po new file mode 100644 index 0000000..025350c --- /dev/null +++ b/blogger/lang/C/messages.po @@ -0,0 +1,54 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: blogger.php:37 +msgid "Post to blogger" +msgstr "" + +#: blogger.php:71 blogger.php:75 +msgid "Blogger Export" +msgstr "" + +#: blogger.php:79 +msgid "Enable Blogger Post Addon" +msgstr "" + +#: blogger.php:84 +msgid "Blogger username" +msgstr "" + +#: blogger.php:89 +msgid "Blogger password" +msgstr "" + +#: blogger.php:94 +msgid "Blogger API URL" +msgstr "" + +#: blogger.php:99 +msgid "Post to Blogger by default" +msgstr "" + +#: blogger.php:104 +msgid "Save Settings" +msgstr "" + +#: blogger.php:188 +msgid "Post from Friendica" +msgstr "" diff --git a/blogger/lang/ar/messages.po b/blogger/lang/ar/messages.po new file mode 100644 index 0000000..84af1b4 --- /dev/null +++ b/blogger/lang/ar/messages.po @@ -0,0 +1,57 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# abidin toumi , 2021 +# Farida Khalaf , 2021 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-10-29 08:18+0000\n" +"Last-Translator: abidin toumi \n" +"Language-Team: Arabic (http://www.transifex.com/Friendica/friendica/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: blogger.php:37 +msgid "Post to blogger" +msgstr "شارك على بلوغر" + +#: blogger.php:71 blogger.php:75 +msgid "Blogger Export" +msgstr "تصدير بلوغر" + +#: blogger.php:79 +msgid "Enable Blogger Post Addon" +msgstr "تفعيل إضافة مشاركة بلوغر" + +#: blogger.php:84 +msgid "Blogger username" +msgstr "اسم مستخدم بلوغر" + +#: blogger.php:89 +msgid "Blogger password" +msgstr "كلمة السر بلوغر" + +#: blogger.php:94 +msgid "Blogger API URL" +msgstr "عنوان URL لواجهة برمجة تطبيقات API بلوغر" + +#: blogger.php:99 +msgid "Post to Blogger by default" +msgstr "شارك في بلوغر إفتراضيا" + +#: blogger.php:104 +msgid "Save Settings" +msgstr "احفظ الإعدادات" + +#: blogger.php:188 +msgid "Post from Friendica" +msgstr "شارك من فرينديكا Friendica" diff --git a/blogger/lang/ar/strings.php b/blogger/lang/ar/strings.php new file mode 100644 index 0000000..74cc9a9 --- /dev/null +++ b/blogger/lang/ar/strings.php @@ -0,0 +1,16 @@ +=3 && $n%100<=10) { return 3; } else if ($n%100>=11 && $n%100<=99) { return 4; } else { return 5; } +}} +$a->strings['Post to blogger'] = 'شارك على بلوغر'; +$a->strings['Blogger Export'] = 'تصدير بلوغر'; +$a->strings['Enable Blogger Post Addon'] = 'تفعيل إضافة مشاركة بلوغر'; +$a->strings['Blogger username'] = 'اسم مستخدم بلوغر'; +$a->strings['Blogger password'] = 'كلمة السر بلوغر'; +$a->strings['Blogger API URL'] = 'عنوان URL لواجهة برمجة تطبيقات API بلوغر'; +$a->strings['Post to Blogger by default'] = 'شارك في بلوغر إفتراضيا'; +$a->strings['Save Settings'] = 'احفظ الإعدادات'; +$a->strings['Post from Friendica'] = 'شارك من فرينديكا Friendica'; diff --git a/blogger/lang/ca/messages.po b/blogger/lang/ca/messages.po new file mode 100644 index 0000000..fa2be53 --- /dev/null +++ b/blogger/lang/ca/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Joan Bar , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2019-10-14 11:51+0000\n" +"Last-Translator: Joan Bar \n" +"Language-Team: Catalan (http://www.transifex.com/Friendica/friendica/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Publicar a blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Exportació de Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Habilita Addon Post de Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Nom d'usuari de Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Contrasenya de Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "URL de l'API de Blogger" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Publica a Blogger de manera predeterminada" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Desa la configuració" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Publica de Friendica" diff --git a/blogger/lang/ca/strings.php b/blogger/lang/ca/strings.php new file mode 100644 index 0000000..26835b9 --- /dev/null +++ b/blogger/lang/ca/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Publicar a blogger'; +$a->strings['Blogger Export'] = 'Exportació de Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Habilita Addon Post de Blogger'; +$a->strings['Blogger username'] = 'Nom d\'usuari de Blogger'; +$a->strings['Blogger password'] = 'Contrasenya de Blogger'; +$a->strings['Blogger API URL'] = 'URL de l\'API de Blogger'; +$a->strings['Post to Blogger by default'] = 'Publica a Blogger de manera predeterminada'; +$a->strings['Save Settings'] = 'Desa la configuració'; +$a->strings['Post from Friendica'] = 'Publica de Friendica'; diff --git a/blogger/lang/cs/messages.po b/blogger/lang/cs/messages.po new file mode 100644 index 0000000..a1ee80b --- /dev/null +++ b/blogger/lang/cs/messages.po @@ -0,0 +1,57 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Aditoo, 2018 +# michal_s , 2014 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-06-07 12:31+0000\n" +"Last-Translator: Aditoo\n" +"Language-Team: Czech (http://www.transifex.com/Friendica/friendica/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Poslat na blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Blogger Export" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Povolit doplněk Blogger Post" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger uživatelské jméno" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger heslo" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger API URL" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Defaultně zaslat na Blogger" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Uložit Nastavení" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Příspěvek z Friendica" diff --git a/blogger/lang/cs/strings.php b/blogger/lang/cs/strings.php new file mode 100644 index 0000000..784336e --- /dev/null +++ b/blogger/lang/cs/strings.php @@ -0,0 +1,16 @@ += 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; } +}} +$a->strings['Post to blogger'] = 'Poslat na blogger'; +$a->strings['Blogger Export'] = 'Blogger Export'; +$a->strings['Enable Blogger Post Addon'] = 'Povolit doplněk Blogger Post'; +$a->strings['Blogger username'] = 'Blogger uživatelské jméno'; +$a->strings['Blogger password'] = 'Blogger heslo'; +$a->strings['Blogger API URL'] = 'Blogger API URL'; +$a->strings['Post to Blogger by default'] = 'Defaultně zaslat na Blogger'; +$a->strings['Save Settings'] = 'Uložit Nastavení'; +$a->strings['Post from Friendica'] = 'Příspěvek z Friendica'; diff --git a/blogger/lang/de/messages.po b/blogger/lang/de/messages.po new file mode 100644 index 0000000..0ecdfd7 --- /dev/null +++ b/blogger/lang/de/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# bavatar , 2014 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2014-06-29 08:19+0000\n" +"Last-Translator: bavatar \n" +"Language-Team: German (http://www.transifex.com/projects/p/friendica/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Auf Blogger posten" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Blogger Export" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Blogger-Post-Addon aktivieren" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger-Benutzername" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger-Passwort" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger-API-URL" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Standardmäßig auf Blogger posten" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Einstellungen speichern" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Post via Friendica" diff --git a/blogger/lang/de/strings.php b/blogger/lang/de/strings.php new file mode 100644 index 0000000..c8cd312 --- /dev/null +++ b/blogger/lang/de/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Auf Blogger posten'; +$a->strings['Blogger Export'] = 'Blogger Export'; +$a->strings['Enable Blogger Post Addon'] = 'Blogger-Post-Addon aktivieren'; +$a->strings['Blogger username'] = 'Blogger-Benutzername'; +$a->strings['Blogger password'] = 'Blogger-Passwort'; +$a->strings['Blogger API URL'] = 'Blogger-API-URL'; +$a->strings['Post to Blogger by default'] = 'Standardmäßig auf Blogger posten'; +$a->strings['Save Settings'] = 'Einstellungen speichern'; +$a->strings['Post from Friendica'] = 'Post via Friendica'; diff --git a/blogger/lang/en-gb/messages.po b/blogger/lang/en-gb/messages.po new file mode 100644 index 0000000..304db23 --- /dev/null +++ b/blogger/lang/en-gb/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Kris, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-04-08 19:53+0000\n" +"Last-Translator: Kris\n" +"Language-Team: English (United Kingdom) (http://www.transifex.com/Friendica/friendica/language/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Post to Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Enable Blogger Post Addon" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger username" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger password" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Post to Blogger by default" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Save Settings" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Post from Friendica" diff --git a/blogger/lang/en-gb/strings.php b/blogger/lang/en-gb/strings.php new file mode 100644 index 0000000..d665f31 --- /dev/null +++ b/blogger/lang/en-gb/strings.php @@ -0,0 +1,14 @@ +strings['Post to blogger'] = 'Post to Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Enable Blogger Post Addon'; +$a->strings['Blogger username'] = 'Blogger username'; +$a->strings['Blogger password'] = 'Blogger password'; +$a->strings['Post to Blogger by default'] = 'Post to Blogger by default'; +$a->strings['Save Settings'] = 'Save Settings'; +$a->strings['Post from Friendica'] = 'Post from Friendica'; diff --git a/blogger/lang/eo/strings.php b/blogger/lang/eo/strings.php new file mode 100644 index 0000000..a7783cd --- /dev/null +++ b/blogger/lang/eo/strings.php @@ -0,0 +1,11 @@ +strings["Post to blogger"] = "Afiŝi al blogger"; +$a->strings["Blogger Post Settings"] = "Agordo pri Blogger Afiŝoj"; +$a->strings["Enable Blogger Post Addon"] = "Ŝalti la Blogger afiŝo kromprogramon"; +$a->strings["Blogger username"] = "Blogger uzantonomo"; +$a->strings["Blogger password"] = "Blogger pasvorto"; +$a->strings["Blogger API URL"] = "Blogger API URL"; +$a->strings["Post to Blogger by default"] = "Defaŭlte afiŝi al Blogger"; +$a->strings["Submit"] = "Sendi"; +$a->strings["Post from Friendica"] = "Afiŝo de Friendica"; diff --git a/blogger/lang/es/messages.po b/blogger/lang/es/messages.po new file mode 100644 index 0000000..e4c6497 --- /dev/null +++ b/blogger/lang/es/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Albert, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-05-21 14:27+0000\n" +"Last-Translator: Albert\n" +"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Entrada para blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Esportar Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Habilitar el complemento de publicación de Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Nombre de usuario de Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Contraseña de Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "URL API de Blogger" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Entrada a Blogger por defecto" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Guardar ajustes" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Entrada desde Friendica" diff --git a/blogger/lang/es/strings.php b/blogger/lang/es/strings.php new file mode 100644 index 0000000..fb9cc2a --- /dev/null +++ b/blogger/lang/es/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Entrada para blogger'; +$a->strings['Blogger Export'] = 'Esportar Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Habilitar el complemento de publicación de Blogger'; +$a->strings['Blogger username'] = 'Nombre de usuario de Blogger'; +$a->strings['Blogger password'] = 'Contraseña de Blogger'; +$a->strings['Blogger API URL'] = 'URL API de Blogger'; +$a->strings['Post to Blogger by default'] = 'Entrada a Blogger por defecto'; +$a->strings['Save Settings'] = 'Guardar ajustes'; +$a->strings['Post from Friendica'] = 'Entrada desde Friendica'; diff --git a/blogger/lang/fi-fi/messages.po b/blogger/lang/fi-fi/messages.po new file mode 100644 index 0000000..e24eda7 --- /dev/null +++ b/blogger/lang/fi-fi/messages.po @@ -0,0 +1,57 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Kris, 2018 +# Kris, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-04-17 19:18+0000\n" +"Last-Translator: Kris\n" +"Language-Team: Finnish (Finland) (http://www.transifex.com/Friendica/friendica/language/fi_FI/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi_FI\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Julkaise Bloggerissa" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Blogger Export" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Ota Blogger-viestilisäosa käyttöön" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger -käyttäjätunnus" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger -salasana" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger API URL-osoite" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Julkaise Bloggeriin oletuksena" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Tallenna asetukset" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Julkaise Friendicasta" diff --git a/blogger/lang/fi-fi/strings.php b/blogger/lang/fi-fi/strings.php new file mode 100644 index 0000000..fe4f829 --- /dev/null +++ b/blogger/lang/fi-fi/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Julkaise Bloggerissa'; +$a->strings['Blogger Export'] = 'Blogger Export'; +$a->strings['Enable Blogger Post Addon'] = 'Ota Blogger-viestilisäosa käyttöön'; +$a->strings['Blogger username'] = 'Blogger -käyttäjätunnus'; +$a->strings['Blogger password'] = 'Blogger -salasana'; +$a->strings['Blogger API URL'] = 'Blogger API URL-osoite'; +$a->strings['Post to Blogger by default'] = 'Julkaise Bloggeriin oletuksena'; +$a->strings['Save Settings'] = 'Tallenna asetukset'; +$a->strings['Post from Friendica'] = 'Julkaise Friendicasta'; diff --git a/blogger/lang/fr/messages.po b/blogger/lang/fr/messages.po new file mode 100644 index 0000000..119fcb5 --- /dev/null +++ b/blogger/lang/fr/messages.po @@ -0,0 +1,58 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Hypolite Petovan , 2016 +# Marie Olive , 2018 +# RyDroid , 2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-11-13 12:44+0000\n" +"Last-Translator: Marie Olive \n" +"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Poster sur Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Export Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Activer l'extension de publication Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Nom d'utilisateur Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Mot de passe Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "URL de l'API de Blogger" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Poster sur Blogger par défaut" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Sauvegarder les paramètres" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Publier depuis Friendica" diff --git a/blogger/lang/fr/strings.php b/blogger/lang/fr/strings.php new file mode 100644 index 0000000..ba85db3 --- /dev/null +++ b/blogger/lang/fr/strings.php @@ -0,0 +1,16 @@ + 1); +}} +$a->strings['Post to blogger'] = 'Poster sur Blogger'; +$a->strings['Blogger Export'] = 'Export Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Activer l\'extension de publication Blogger'; +$a->strings['Blogger username'] = 'Nom d\'utilisateur Blogger'; +$a->strings['Blogger password'] = 'Mot de passe Blogger'; +$a->strings['Blogger API URL'] = 'URL de l\'API de Blogger'; +$a->strings['Post to Blogger by default'] = 'Poster sur Blogger par défaut'; +$a->strings['Save Settings'] = 'Sauvegarder les paramètres'; +$a->strings['Post from Friendica'] = 'Publier depuis Friendica'; diff --git a/blogger/lang/hu/messages.po b/blogger/lang/hu/messages.po new file mode 100644 index 0000000..d350be4 --- /dev/null +++ b/blogger/lang/hu/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Balázs Úr, 2020 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2020-12-23 00:44+0000\n" +"Last-Translator: Balázs Úr\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Beküldés a Bloggerre" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Blogger exportálás" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "A Blogger-beküldő bővítmény engedélyezése" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger felhasználónév" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger jelszó" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger API URL" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Beküldés a Bloggerre alapértelmezetten" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Beállítások mentése" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Bejegyzés a Friendicáról" diff --git a/blogger/lang/hu/strings.php b/blogger/lang/hu/strings.php new file mode 100644 index 0000000..d3d27fc --- /dev/null +++ b/blogger/lang/hu/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Beküldés a Bloggerre'; +$a->strings['Blogger Export'] = 'Blogger exportálás'; +$a->strings['Enable Blogger Post Addon'] = 'A Blogger-beküldő bővítmény engedélyezése'; +$a->strings['Blogger username'] = 'Blogger felhasználónév'; +$a->strings['Blogger password'] = 'Blogger jelszó'; +$a->strings['Blogger API URL'] = 'Blogger API URL'; +$a->strings['Post to Blogger by default'] = 'Beküldés a Bloggerre alapértelmezetten'; +$a->strings['Save Settings'] = 'Beállítások mentése'; +$a->strings['Post from Friendica'] = 'Bejegyzés a Friendicáról'; diff --git a/blogger/lang/is/messages.po b/blogger/lang/is/messages.po new file mode 100644 index 0000000..687b624 --- /dev/null +++ b/blogger/lang/is/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Sveinn í Felli , 2016,2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-05-24 09:45+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic (http://www.transifex.com/Friendica/friendica/language/is/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: is\n" +"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Senda færslu á bloggara" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Flytja út blogg" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Virkja sendiviðbót fyrir blogg" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Notandanafn bloggara" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Aðgangsorð bloggara" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "API slóð bloggs" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Sjálfgefið láta færslur flæða inn á blogg" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Vista stillingar" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Færslur frá Friendica" diff --git a/blogger/lang/is/strings.php b/blogger/lang/is/strings.php new file mode 100644 index 0000000..89ad002 --- /dev/null +++ b/blogger/lang/is/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Senda færslu á bloggara'; +$a->strings['Blogger Export'] = 'Flytja út blogg'; +$a->strings['Enable Blogger Post Addon'] = 'Virkja sendiviðbót fyrir blogg'; +$a->strings['Blogger username'] = 'Notandanafn bloggara'; +$a->strings['Blogger password'] = 'Aðgangsorð bloggara'; +$a->strings['Blogger API URL'] = 'API slóð bloggs'; +$a->strings['Post to Blogger by default'] = 'Sjálfgefið láta færslur flæða inn á blogg'; +$a->strings['Save Settings'] = 'Vista stillingar'; +$a->strings['Post from Friendica'] = 'Færslur frá Friendica'; diff --git a/blogger/lang/it/messages.po b/blogger/lang/it/messages.po new file mode 100644 index 0000000..9ee69d6 --- /dev/null +++ b/blogger/lang/it/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# fabrixxm , 2014,2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-03-19 13:21+0000\n" +"Last-Translator: fabrixxm \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Invia a Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Esporta Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Abilita il componente aggiuntivo di invio a Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Nome utente Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Password Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Indirizzo API Blogger" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Invia sempre a Blogger" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Salva Impostazioni" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Messaggio da Friendica" diff --git a/blogger/lang/it/strings.php b/blogger/lang/it/strings.php new file mode 100644 index 0000000..c4be5a0 --- /dev/null +++ b/blogger/lang/it/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Invia a Blogger'; +$a->strings['Blogger Export'] = 'Esporta Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Abilita il componente aggiuntivo di invio a Blogger'; +$a->strings['Blogger username'] = 'Nome utente Blogger'; +$a->strings['Blogger password'] = 'Password Blogger'; +$a->strings['Blogger API URL'] = 'Indirizzo API Blogger'; +$a->strings['Post to Blogger by default'] = 'Invia sempre a Blogger'; +$a->strings['Save Settings'] = 'Salva Impostazioni'; +$a->strings['Post from Friendica'] = 'Messaggio da Friendica'; diff --git a/blogger/lang/nb-no/strings.php b/blogger/lang/nb-no/strings.php new file mode 100644 index 0000000..3c5a03d --- /dev/null +++ b/blogger/lang/nb-no/strings.php @@ -0,0 +1,11 @@ +strings["Post to blogger"] = ""; +$a->strings["Blogger Post Settings"] = ""; +$a->strings["Enable Blogger Post Addon"] = ""; +$a->strings["Blogger username"] = ""; +$a->strings["Blogger password"] = ""; +$a->strings["Blogger API URL"] = ""; +$a->strings["Post to Blogger by default"] = ""; +$a->strings["Submit"] = "Lagre"; +$a->strings["Post from Friendica"] = ""; diff --git a/blogger/lang/nl/messages.po b/blogger/lang/nl/messages.po new file mode 100644 index 0000000..e81976f --- /dev/null +++ b/blogger/lang/nl/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# AgnesElisa , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-04-18 23:20+0000\n" +"Last-Translator: AgnesElisa \n" +"Language-Team: Dutch (http://www.transifex.com/Friendica/friendica/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Plaatsen op Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Blogger Exporteren" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Blogger Post Addon inschakelen" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger gebruikersnaam" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger wachtwoord" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger API URL" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Plaatsen op Blogger als standaard instellen" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Instellingen Opslaan" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Bericht plaatsen vanaf Friendica" diff --git a/blogger/lang/nl/strings.php b/blogger/lang/nl/strings.php new file mode 100644 index 0000000..05d09c5 --- /dev/null +++ b/blogger/lang/nl/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Plaatsen op Blogger'; +$a->strings['Blogger Export'] = 'Blogger Exporteren'; +$a->strings['Enable Blogger Post Addon'] = 'Blogger Post Addon inschakelen'; +$a->strings['Blogger username'] = 'Blogger gebruikersnaam'; +$a->strings['Blogger password'] = 'Blogger wachtwoord'; +$a->strings['Blogger API URL'] = 'Blogger API URL'; +$a->strings['Post to Blogger by default'] = 'Plaatsen op Blogger als standaard instellen'; +$a->strings['Save Settings'] = 'Instellingen Opslaan'; +$a->strings['Post from Friendica'] = 'Bericht plaatsen vanaf Friendica'; diff --git a/blogger/lang/pl/messages.po b/blogger/lang/pl/messages.po new file mode 100644 index 0000000..0730360 --- /dev/null +++ b/blogger/lang/pl/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Waldemar Stoczkowski , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-08-04 10:57+0000\n" +"Last-Translator: Waldemar Stoczkowski \n" +"Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Opublikuj w bloggerze" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Eksport Bloggera" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Włącz dodatek Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Nazwa użytkownika Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Hasło Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Adres URL interfejsu API Blogger" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Opublikuj domyślnie na Blogger" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Zapisz ustawienia" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Post od Friendica" diff --git a/blogger/lang/pl/strings.php b/blogger/lang/pl/strings.php new file mode 100644 index 0000000..6e1e66a --- /dev/null +++ b/blogger/lang/pl/strings.php @@ -0,0 +1,16 @@ +=2 && $n%10<=4) && ($n%100<12 || $n%100>14)) { return 1; } else if ($n!=1 && ($n%10>=0 && $n%10<=1) || ($n%10>=5 && $n%10<=9) || ($n%100>=12 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['Post to blogger'] = 'Opublikuj w bloggerze'; +$a->strings['Blogger Export'] = 'Eksport Bloggera'; +$a->strings['Enable Blogger Post Addon'] = 'Włącz dodatek Blogger'; +$a->strings['Blogger username'] = 'Nazwa użytkownika Blogger'; +$a->strings['Blogger password'] = 'Hasło Blogger'; +$a->strings['Blogger API URL'] = 'Adres URL interfejsu API Blogger'; +$a->strings['Post to Blogger by default'] = 'Opublikuj domyślnie na Blogger'; +$a->strings['Save Settings'] = 'Zapisz ustawienia'; +$a->strings['Post from Friendica'] = 'Post od Friendica'; diff --git a/blogger/lang/pt-br/messages.po b/blogger/lang/pt-br/messages.po new file mode 100644 index 0000000..6b22fc2 --- /dev/null +++ b/blogger/lang/pt-br/messages.po @@ -0,0 +1,57 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Beatriz Vital , 2016 +# John Brazil, 2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2016-08-19 20:36+0000\n" +"Last-Translator: Beatriz Vital \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/Friendica/friendica/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Publicar no Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Exportador Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Habilitar plug-in para publicar no Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Nome de usuário no Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Senha do Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "URL da API do Blogger" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Publicar no Blogger por padrão" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Salvar Configurações" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Postar a partir de Friendica" diff --git a/blogger/lang/pt-br/strings.php b/blogger/lang/pt-br/strings.php new file mode 100644 index 0000000..6e0f041 --- /dev/null +++ b/blogger/lang/pt-br/strings.php @@ -0,0 +1,16 @@ + 1); +}} +$a->strings['Post to blogger'] = 'Publicar no Blogger'; +$a->strings['Blogger Export'] = 'Exportador Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Habilitar plug-in para publicar no Blogger'; +$a->strings['Blogger username'] = 'Nome de usuário no Blogger'; +$a->strings['Blogger password'] = 'Senha do Blogger'; +$a->strings['Blogger API URL'] = 'URL da API do Blogger'; +$a->strings['Post to Blogger by default'] = 'Publicar no Blogger por padrão'; +$a->strings['Save Settings'] = 'Salvar Configurações'; +$a->strings['Post from Friendica'] = 'Postar a partir de Friendica'; diff --git a/blogger/lang/ro/messages.po b/blogger/lang/ro/messages.po new file mode 100644 index 0000000..de35da2 --- /dev/null +++ b/blogger/lang/ro/messages.po @@ -0,0 +1,55 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2014-07-08 11:44+0000\n" +"Last-Translator: Arian - Cazare Muncitori \n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro_RO\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Postați pe Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Export pe Blogger " + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Activare Modul Postare pe Blogger " + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Utilizator Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Parolă Blogger " + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "URL Cheie API Blogger " + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Postați implicit pe Blogger" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Salvare Configurări" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Postați din Friendica" diff --git a/blogger/lang/ro/strings.php b/blogger/lang/ro/strings.php new file mode 100644 index 0000000..068e0a3 --- /dev/null +++ b/blogger/lang/ro/strings.php @@ -0,0 +1,16 @@ +19)||(($n%100==0)&&($n!=0)))) { return 2; } else { return 1; } +}} +$a->strings['Post to blogger'] = 'Postați pe Blogger'; +$a->strings['Blogger Export'] = 'Export pe Blogger '; +$a->strings['Enable Blogger Post Addon'] = 'Activare Modul Postare pe Blogger '; +$a->strings['Blogger username'] = 'Utilizator Blogger'; +$a->strings['Blogger password'] = 'Parolă Blogger '; +$a->strings['Blogger API URL'] = 'URL Cheie API Blogger '; +$a->strings['Post to Blogger by default'] = 'Postați implicit pe Blogger'; +$a->strings['Save Settings'] = 'Salvare Configurări'; +$a->strings['Post from Friendica'] = 'Postați din Friendica'; diff --git a/blogger/lang/ru/messages.po b/blogger/lang/ru/messages.po new file mode 100644 index 0000000..62ad1fb --- /dev/null +++ b/blogger/lang/ru/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Stanislav N. , 2017-2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-05-25 00:00+0000\n" +"Last-Translator: Stanislav N. \n" +"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Написать в Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Экспорт в Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Включить аддон репоста в Blogger" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Имя пользователя Blogger" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Пароль Blogger" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger API URL" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Отправлять в Blogger по умолчанию" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Сохранить настройки" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Сообщение от Friendica" diff --git a/blogger/lang/ru/strings.php b/blogger/lang/ru/strings.php new file mode 100644 index 0000000..b5769ec --- /dev/null +++ b/blogger/lang/ru/strings.php @@ -0,0 +1,16 @@ +=2 && $n%10<=4 && ($n%100<12 || $n%100>14)) { return 1; } else if ($n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['Post to blogger'] = 'Написать в Blogger'; +$a->strings['Blogger Export'] = 'Экспорт в Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Включить аддон репоста в Blogger'; +$a->strings['Blogger username'] = 'Имя пользователя Blogger'; +$a->strings['Blogger password'] = 'Пароль Blogger'; +$a->strings['Blogger API URL'] = 'Blogger API URL'; +$a->strings['Post to Blogger by default'] = 'Отправлять в Blogger по умолчанию'; +$a->strings['Save Settings'] = 'Сохранить настройки'; +$a->strings['Post from Friendica'] = 'Сообщение от Friendica'; diff --git a/blogger/lang/sv/messages.po b/blogger/lang/sv/messages.po new file mode 100644 index 0000000..a9e4ae8 --- /dev/null +++ b/blogger/lang/sv/messages.po @@ -0,0 +1,56 @@ +# ADDON blogger +# Copyright (C) +# This file is distributed under the same license as the Friendica blogger addon package. +# +# +# Translators: +# Bjoessi , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2019-08-20 07:54+0000\n" +"Last-Translator: Bjoessi \n" +"Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: blogger.php:42 +msgid "Post to blogger" +msgstr "Lägg in på Blogger" + +#: blogger.php:74 blogger.php:78 +msgid "Blogger Export" +msgstr "Export till Blogger" + +#: blogger.php:82 +msgid "Enable Blogger Post Addon" +msgstr "Aktivera tillägg för Blogger-inlägg" + +#: blogger.php:87 +msgid "Blogger username" +msgstr "Blogger användarnamn" + +#: blogger.php:92 +msgid "Blogger password" +msgstr "Blogger lösenord" + +#: blogger.php:97 +msgid "Blogger API URL" +msgstr "Blogger API URL" + +#: blogger.php:102 +msgid "Post to Blogger by default" +msgstr "Lägg in på Blogger som standard" + +#: blogger.php:108 +msgid "Save Settings" +msgstr "Spara inställningar" + +#: blogger.php:178 +msgid "Post from Friendica" +msgstr "Inlägg från Friendica" diff --git a/blogger/lang/sv/strings.php b/blogger/lang/sv/strings.php new file mode 100644 index 0000000..b2a3bb5 --- /dev/null +++ b/blogger/lang/sv/strings.php @@ -0,0 +1,16 @@ +strings['Post to blogger'] = 'Lägg in på Blogger'; +$a->strings['Blogger Export'] = 'Export till Blogger'; +$a->strings['Enable Blogger Post Addon'] = 'Aktivera tillägg för Blogger-inlägg'; +$a->strings['Blogger username'] = 'Blogger användarnamn'; +$a->strings['Blogger password'] = 'Blogger lösenord'; +$a->strings['Blogger API URL'] = 'Blogger API URL'; +$a->strings['Post to Blogger by default'] = 'Lägg in på Blogger som standard'; +$a->strings['Save Settings'] = 'Spara inställningar'; +$a->strings['Post from Friendica'] = 'Inlägg från Friendica'; diff --git a/blogger/lang/zh-cn/strings.php b/blogger/lang/zh-cn/strings.php new file mode 100644 index 0000000..d9b7173 --- /dev/null +++ b/blogger/lang/zh-cn/strings.php @@ -0,0 +1,11 @@ +strings["Post to blogger"] = "转播到blogger"; +$a->strings["Blogger Post Settings"] = "Blogger转播设置"; +$a->strings["Enable Blogger Post Addon"] = "使Blogger转播插件可用"; +$a->strings["Blogger username"] = "Blogger用户名"; +$a->strings["Blogger password"] = "Blogger密码"; +$a->strings["Blogger API URL"] = "Blogger API URL"; +$a->strings["Post to Blogger by default"] = "默认地转播到Blogger"; +$a->strings["Submit"] = "提交"; +$a->strings["Post from Friendica"] = "文章从Friendica"; From 12274063bbad3d957255aa3b8baa3c1f5d2438d7 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 27 Nov 2021 17:07:15 +0100 Subject: [PATCH 2/4] deprecated the BUFFER addon --- buffer/README.md | 8 + buffer/buffer.css | 15 ++ buffer/buffer.php | 399 ++++++++++++++++++++++++++++++++++ buffer/bufferapp.php | 207 ++++++++++++++++++ buffer/lang/C/messages.po | 74 +++++++ buffer/lang/ar/messages.po | 77 +++++++ buffer/lang/ar/strings.php | 21 ++ buffer/lang/ca/messages.po | 76 +++++++ buffer/lang/ca/strings.php | 21 ++ buffer/lang/cs/messages.po | 78 +++++++ buffer/lang/cs/strings.php | 21 ++ buffer/lang/de/messages.po | 79 +++++++ buffer/lang/de/strings.php | 21 ++ buffer/lang/es/messages.po | 76 +++++++ buffer/lang/es/strings.php | 21 ++ buffer/lang/fi-fi/messages.po | 77 +++++++ buffer/lang/fi-fi/strings.php | 16 ++ buffer/lang/fr/messages.po | 79 +++++++ buffer/lang/fr/strings.php | 21 ++ buffer/lang/hu/messages.po | 76 +++++++ buffer/lang/hu/strings.php | 21 ++ buffer/lang/is/messages.po | 76 +++++++ buffer/lang/is/strings.php | 8 + buffer/lang/it/messages.po | 77 +++++++ buffer/lang/it/strings.php | 21 ++ buffer/lang/nl/messages.po | 77 +++++++ buffer/lang/nl/strings.php | 21 ++ buffer/lang/pl/messages.po | 76 +++++++ buffer/lang/pl/strings.php | 21 ++ buffer/lang/pt-br/messages.po | 77 +++++++ buffer/lang/pt-br/strings.php | 18 ++ buffer/lang/ro/messages.po | 75 +++++++ buffer/lang/ro/strings.php | 21 ++ buffer/lang/ru/messages.po | 76 +++++++ buffer/lang/ru/strings.php | 21 ++ buffer/lang/sv/messages.po | 77 +++++++ buffer/lang/sv/strings.php | 21 ++ buffer/templates/admin.tpl | 3 + 38 files changed, 2250 insertions(+) create mode 100644 buffer/README.md create mode 100644 buffer/buffer.css create mode 100644 buffer/buffer.php create mode 100644 buffer/bufferapp.php create mode 100644 buffer/lang/C/messages.po create mode 100644 buffer/lang/ar/messages.po create mode 100644 buffer/lang/ar/strings.php create mode 100644 buffer/lang/ca/messages.po create mode 100644 buffer/lang/ca/strings.php create mode 100644 buffer/lang/cs/messages.po create mode 100644 buffer/lang/cs/strings.php create mode 100644 buffer/lang/de/messages.po create mode 100644 buffer/lang/de/strings.php create mode 100644 buffer/lang/es/messages.po create mode 100644 buffer/lang/es/strings.php create mode 100644 buffer/lang/fi-fi/messages.po create mode 100644 buffer/lang/fi-fi/strings.php create mode 100644 buffer/lang/fr/messages.po create mode 100644 buffer/lang/fr/strings.php create mode 100644 buffer/lang/hu/messages.po create mode 100644 buffer/lang/hu/strings.php create mode 100644 buffer/lang/is/messages.po create mode 100644 buffer/lang/is/strings.php create mode 100644 buffer/lang/it/messages.po create mode 100644 buffer/lang/it/strings.php create mode 100644 buffer/lang/nl/messages.po create mode 100644 buffer/lang/nl/strings.php create mode 100644 buffer/lang/pl/messages.po create mode 100644 buffer/lang/pl/strings.php create mode 100644 buffer/lang/pt-br/messages.po create mode 100644 buffer/lang/pt-br/strings.php create mode 100644 buffer/lang/ro/messages.po create mode 100644 buffer/lang/ro/strings.php create mode 100644 buffer/lang/ru/messages.po create mode 100644 buffer/lang/ru/strings.php create mode 100644 buffer/lang/sv/messages.po create mode 100644 buffer/lang/sv/strings.php create mode 100644 buffer/templates/admin.tpl diff --git a/buffer/README.md b/buffer/README.md new file mode 100644 index 0000000..f97cf07 --- /dev/null +++ b/buffer/README.md @@ -0,0 +1,8 @@ +The addon uses the library from [https://github.com/thewebguy/bufferapp-php](https://github.com/thewebguy/bufferapp-php) + +Please register an app at [http://bufferapp.com/developers/api](http://bufferapp.com/developers/api) + +Please use (your server address)/buffer/connect as Callback URL. + +After the registration please enter the values for "Client ID" and "Client Secret" in the +[administration](admin/addons/buffer). diff --git a/buffer/buffer.css b/buffer/buffer.css new file mode 100644 index 0000000..67a2856 --- /dev/null +++ b/buffer/buffer.css @@ -0,0 +1,15 @@ +#buffer-enable-label, #buffer-bydefault-label, #buffer-delete-label { + float: left; + width: 200px; + margin-top: 10px; +} + +#buffer-checkbox, #buffer-bydefault, #buffer-delete { + float: left; + margin-top: 10px; +} + +#buffer-submit { + margin-top: 15px; +} + diff --git a/buffer/buffer.php b/buffer/buffer.php new file mode 100644 index 0000000..1f50aa3 --- /dev/null +++ b/buffer/buffer.php @@ -0,0 +1,399 @@ + + * Status: Unsupported + */ +require 'addon/buffer/bufferapp.php'; + +use Friendica\App; +use Friendica\Content\Text\Plaintext; +use Friendica\Core\Hook; +use Friendica\Core\Logger; +use Friendica\Core\Protocol; +use Friendica\Core\Renderer; +use Friendica\Database\DBA; +use Friendica\DI; +use Friendica\Util\Proxy as ProxyUtils; + +function buffer_install() +{ + Hook::register('hook_fork', 'addon/buffer/buffer.php', 'buffer_hook_fork'); + Hook::register('post_local', 'addon/buffer/buffer.php', 'buffer_post_local'); + Hook::register('notifier_normal', 'addon/buffer/buffer.php', 'buffer_send'); + Hook::register('jot_networks', 'addon/buffer/buffer.php', 'buffer_jot_nets'); + Hook::register('connector_settings', 'addon/buffer/buffer.php', 'buffer_settings'); + Hook::register('connector_settings_post', 'addon/buffer/buffer.php', 'buffer_settings_post'); +} + +function buffer_module() +{ +} + +function buffer_content(App $a) +{ + if (! local_user()) { + notice(DI::l10n()->t('Permission denied.') . EOL); + return ''; + } + + require_once "mod/settings.php"; + settings_init($a); + + if (isset(DI::args()->getArgv()[1])) { + switch (DI::args()->getArgv()[1]) { + case "connect": + $o = buffer_connect($a); + break; + + default: + $o = print_r(DI::args()->getArgv(), true); + break; + } + } else { + $o = buffer_connect($a); + } + + return $o; +} + +function buffer_addon_admin(App $a, &$o) +{ + $t = Renderer::getMarkupTemplate("admin.tpl", "addon/buffer/"); + + $o = Renderer::replaceMacros($t, [ + '$submit' => DI::l10n()->t('Save Settings'), + // name, label, value, help, [extra values] + '$client_id' => ['client_id', DI::l10n()->t('Client ID'), DI::config()->get('buffer', 'client_id'), ''], + '$client_secret' => ['client_secret', DI::l10n()->t('Client Secret'), DI::config()->get('buffer', 'client_secret'), ''], + ]); +} + +function buffer_addon_admin_post(App $a) +{ + $client_id = trim($_POST['client_id'] ?? ''); + $client_secret = trim($_POST['client_secret'] ?? ''); + + DI::config()->set('buffer', 'client_id' , $client_id); + DI::config()->set('buffer', 'client_secret', $client_secret); +} + +function buffer_connect(App $a) +{ + if (isset($_REQUEST["error"])) { + $o = DI::l10n()->t('Error when registering buffer connection:')." ".$_REQUEST["error"]; + return $o; + } + + // Start a session. This is necessary to hold on to a few keys the callback script will also need + session_start(); + + // Define the needed keys + $client_id = DI::config()->get('buffer','client_id'); + $client_secret = DI::config()->get('buffer','client_secret'); + + // The callback URL is the script that gets called after the user authenticates with buffer + $callback_url = DI::baseUrl()->get()."/buffer/connect"; + + $buffer = new BufferApp($client_id, $client_secret, $callback_url); + + if (!$buffer->ok) { + $o = 'Connect to Buffer!'; + } else { + Logger::notice("buffer_connect: authenticated"); + $o = DI::l10n()->t("You are now authenticated to buffer. "); + $o .= '
' . DI::l10n()->t("return to the connector page") . ''; + DI::pConfig()->set(local_user(), 'buffer','access_token', $buffer->access_token); + } + + return $o; +} + +function buffer_jot_nets(App $a, array &$jotnets_fields) +{ + if (!local_user()) { + return; + } + + if (DI::pConfig()->get(local_user(), 'buffer', 'post')) { + $jotnets_fields[] = [ + 'type' => 'checkbox', + 'field' => [ + 'buffer_enable', + DI::l10n()->t('Post to Buffer'), + DI::pConfig()->get(local_user(), 'buffer', 'post_by_default') + ] + ]; + } +} + +function buffer_settings(App $a, &$s) +{ + if (! local_user()) { + return; + } + + /* Add our stylesheet to the page so we can make our settings look nice */ + + DI::page()['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variables */ + + $enabled = DI::pConfig()->get(local_user(),'buffer','post'); + $checked = (($enabled) ? ' checked="checked" ' : ''); + $css = (($enabled) ? '' : '-disabled'); + + $def_enabled = DI::pConfig()->get(local_user(),'buffer','post_by_default'); + $def_checked = (($def_enabled) ? ' checked="checked" ' : ''); + + /* Add some HTML to the existing form */ + + $s .= ''; + $s .= '

'. DI::l10n()->t('Buffer Export').'

'; + $s .= '
'; + $s .= ''; +} + + +function buffer_settings_post(App $a, array &$b) +{ + if (!empty($_POST['buffer-submit'])) { + if (!empty($_POST['buffer_delete'])) { + DI::pConfig()->set(local_user(), 'buffer', 'access_token' , ''); + DI::pConfig()->set(local_user(), 'buffer', 'post' , false); + DI::pConfig()->set(local_user(), 'buffer', 'post_by_default', false); + } else { + DI::pConfig()->set(local_user(), 'buffer', 'post' , intval($_POST['buffer'] ?? false)); + DI::pConfig()->set(local_user(), 'buffer', 'post_by_default', intval($_POST['buffer_bydefault'] ?? false)); + } + } +} + +function buffer_post_local(App $a, array &$b) +{ + if (!local_user() || (local_user() != $b['uid'])) { + return; + } + + $buffer_post = intval(DI::pConfig()->get(local_user(),'buffer','post')); + + $buffer_enable = (($buffer_post && !empty($_REQUEST['buffer_enable'])) ? intval($_REQUEST['buffer_enable']) : 0); + + if ($b['api_source'] && intval(DI::pConfig()->get(local_user(),'buffer','post_by_default'))) { + $buffer_enable = 1; + } + + if (!$buffer_enable) { + return; + } + + if (strlen($b['postopts'])) { + $b['postopts'] .= ','; + } + + $b['postopts'] .= 'buffer'; +} + +function buffer_hook_fork(&$a, &$b) +{ + if ($b['name'] != 'notifier_normal') { + return; + } + + $post = $b['data']; + + if ($post['deleted'] || $post['private'] || ($post['created'] !== $post['edited']) || + !strstr($post['postopts'], 'buffer') || ($post['parent'] != $post['id'])) { + $b['execute'] = false; + return; + } +} + +function buffer_send(App $a, array &$b) +{ + if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) { + return; + } + + if (!strstr($b['postopts'],'buffer')) { + return; + } + + if ($b['parent'] != $b['id']) { + return; + } + + // Dont't post if the post doesn't belong to us. + // This is a check for forum postings + $self = DBA::selectFirst('contact', ['id'], ['uid' => $b['uid'], 'self' => true]); + if ($b['contact-id'] != $self['id']) { + return; + } + + // if post comes from buffer don't send it back + //if($b['app'] == "Buffer") + // return; + + $client_id = DI::config()->get("buffer", "client_id"); + $client_secret = DI::config()->get("buffer", "client_secret"); + $access_token = DI::pConfig()->get($b['uid'], "buffer","access_token"); + $callback_url = ""; + + if ($access_token) { + $buffer = new BufferApp($client_id, $client_secret, $callback_url, $access_token); + + $profiles = $buffer->go('/profiles'); + if (is_array($profiles)) { + Logger::info("Will send these parameter ".print_r($b, true)); + + foreach ($profiles as $profile) { + if (!$profile->default) + continue; + + $send = false; + + switch ($profile->service) { + case 'facebook': + $send = ($b["extid"] != Protocol::FACEBOOK); + $limit = 0; + $includedlinks = false; + $htmlmode = 9; + break; + + case 'twitter': + $send = ($b["extid"] != Protocol::TWITTER); + $limit = 280; + $includedlinks = true; + $htmlmode = 8; + break; + + case 'linkedin': + $send = ($b["extid"] != Protocol::LINKEDIN); + $limit = 700; + $includedlinks = true; + $htmlmode = 2; + break; + } + + if (!$send) + continue; + + $item = $b; + + $post = Plaintext::getPost($item, $limit, $includedlinks, $htmlmode); + Logger::info("buffer_send: converted message ".$b["id"]." result: ".print_r($post, true)); + + // The image proxy is used as a sanitizer. Buffer seems to be really picky about pictures + if (isset($post["image"])) { + $post["image"] = ProxyUtils::proxifyUrl($post["image"]); + } + + if (isset($post["preview"])) { + $post["preview"] = ProxyUtils::proxifyUrl($post["preview"]); + } + + // Seems like a bug to me + // Buffer doesn't add links to Twitter (but pictures) + if (($profile->service == "twitter") && isset($post["url"]) && ($post["type"] != "photo")) { + $post["text"] .= " " . $post["url"]; + } + + $message = []; + $message["text"] = $post["text"]; + $message["profile_ids[]"] = $profile->id; + $message["shorten"] = false; + $message["now"] = true; + + if (isset($post["title"])) { + $message["media[title]"] = $post["title"]; + } + + if (isset($post["description"])) { + $message["media[description]"] = $post["description"]; + } + + if (isset($post["url"]) && ($post["type"] != "photo")) { + $message["media[link]"] = $post["url"]; + } + + if (isset($post["image"])) { + $message["media[picture]"] = $post["image"]; + + if ($post["type"] == "photo") { + $message["media[thumbnail]"] = $post["image"]; + } + } + + if (isset($post["preview"])) { + $message["media[thumbnail]"] = $post["preview"]; + } + + //print_r($message); + Logger::info("buffer_send: data for message " . $b["id"] . ": " . print_r($message, true)); + $ret = $buffer->go('/updates/create', $message); + Logger::info("buffer_send: send message " . $b["id"] . " result: " . print_r($ret, true)); + } + } + } +} diff --git a/buffer/bufferapp.php b/buffer/bufferapp.php new file mode 100644 index 0000000..ed1d935 --- /dev/null +++ b/buffer/bufferapp.php @@ -0,0 +1,207 @@ + 'get', + + '/profiles' => 'get', + '/profiles/:id' => 'get', + '/profiles/:id/schedules' => 'get', + '/profiles/:id/schedules/update' => 'post', // Array schedules [0][days][]=mon, [0][times][]=12:00 + + '/updates/:id' => 'get', + '/profiles/:id/updates/pending' => 'get', + '/profiles/:id/updates/sent' => 'get', + '/updates/:id/interactions' => 'get', + + '/profiles/:id/updates/reorder' => 'post', // Array order, int offset, bool utc + '/profiles/:id/updates/shuffle' => 'post', + '/updates/create' => 'post', // String text, Array profile_ids, Aool shorten, Bool now, Array media ['link'], ['description'], ['picture'] + '/updates/:id/update' => 'post', // String text, Bool now, Array media ['link'], ['description'], ['picture'], Bool utc + '/updates/:id/share' => 'post', + '/updates/:id/destroy' => 'post', + '/updates/:id/move_to_top' => 'post', + + '/links/shares' => 'get', + + '/info/configuration' => 'get', + + ]; + + public $errors = [ + 'invalid-endpoint' => 'The endpoint you supplied does not appear to be valid.', + + '401' => 'Unauthorized.', + '403' => 'Permission denied.', + '404' => 'Endpoint not found.', + '405' => 'Method not allowed.', + '504' => 'Gateway timeout server response timeout.', + '1000' => 'An unknown error occurred.', + '1001' => 'Access token required.', + '1002' => 'Not within application scope.', + '1003' => 'Parameter not recognized.', + '1004' => 'Required parameter missing.', + '1005' => 'Unsupported response format.', + '1006' => 'Parameter value not within bounds.', + '1010' => 'Profile could not be found.', + '1011' => 'No authorization to access profile.', + '1012' => 'Profile did not save successfully.', + '1013' => 'Profile schedule limit reached.', + '1014' => 'Profile limit for user has been reached.', + '1015' => 'Profile could not be destroyed.', + '1016' => 'Profile buffer could not be emptied.', + '1020' => 'Update could not be found.', + '1021' => 'No authorization to access update.', + '1022' => 'Update did not save successfully.', + '1023' => 'Update limit for profile has been reached.', + '1024' => 'Update limit for team profile has been reached.', + '1025' => "Update was recently posted, can't post duplicate content.", + '1026' => 'Update must be in error status to requeue.', + '1027' => 'Update must be in buffer and not custom scheduled in order to move to top.', + '1028' => 'Update soft limit for profile reached.', + '1029' => 'Event type not supported.', + '1030' => 'Media filetype not supported.', + '1031' => 'Media filesize out of acceptable range.', + '1032' => 'Unable to post image to LinkedIn group(s).', + '1033' => 'Comments can only be posted to Facebook at this time.', + '1034' => 'Cannot schedule updates in the past.', + '1042' => 'User did not save successfully.', + '1050' => 'Client could not be found.', + '1051' => 'No authorization to access client.', + ]; + + function __construct($client_id = '', $client_secret = '', $callback_url = '', $access_token = '') { + if ($client_id) $this->set_client_id($client_id); + if ($client_secret) $this->set_client_secret($client_secret); + if ($callback_url) $this->set_callback_url($callback_url); + if ($access_token) $this->access_token = $access_token; + + if (isset($_GET['code']) && $_GET['code']) { + $this->code = $_GET['code']; + $this->create_access_token_url(); + } + + if (!$access_token) + $this->retrieve_access_token(); + } + + function go($endpoint = '', $data = '') { + if (in_array($endpoint, array_keys($this->endpoints))) { + $done_endpoint = $endpoint; + } else { + $ok = false; + + foreach (array_keys($this->endpoints) as $done_endpoint) { + if (preg_match('/' . preg_replace('/(\:\w+)/i', '(\w+)', str_replace('/', '\/', $done_endpoint)) . '/i', $endpoint, $match)) { + $ok = true; + break; + } + } + + if (!$ok) return $this->error('invalid-endpoint'); + } + + if (!$data || !is_array($data)) $data = []; + $data['access_token'] = $this->access_token; + + $method = $this->endpoints[$done_endpoint]; //get() or post() + return $this->$method($this->buffer_url . $endpoint . '.json', $data); + } + + function store_access_token() { + $_SESSION['oauth']['buffer']['access_token'] = $this->access_token; + } + + function retrieve_access_token() { + $this->access_token = $_SESSION['oauth']['buffer']['access_token']; + + if ($this->access_token) { + $this->ok = true; + } + } + + function error($error) { + return (object) ['error' => $this->errors[$error]]; + } + + function create_access_token_url() { + $data = [ + 'code' => $this->code, + 'grant_type' => 'authorization_code', + 'client_id' => $this->client_id, + 'client_secret' => $this->client_secret, + 'redirect_uri' => $this->callback_url, + ]; + + $obj = $this->post($this->access_token_url, $data); + $this->access_token = $obj->access_token; + + $this->store_access_token(); + } + + function req($url = '', $data = '', $post = true) { + if (!$url) return false; + if (!$data || !is_array($data)) $data = []; + + $options = [CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => false]; + + if ($post) { + $options += [ + CURLOPT_POST => $post, + CURLOPT_POSTFIELDS => $data + ]; + } else { + $url .= '?' . http_build_query($data); + } + + $ch = curl_init($url); + curl_setopt_array($ch, $options); + $rs = curl_exec($ch); + + $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); + if ($code >= 400) { + return $this->error($code); + } + + return json_decode($rs); + } + + function get($url = '', $data = '') { + return $this->req($url, $data, false); + } + + function post($url = '', $data = '') { + return $this->req($url, $data, true); + } + + function get_login_url() { + return $this->authorize_url . '?' + . 'client_id=' . $this->client_id + . '&redirect_uri=' . urlencode($this->callback_url) + . '&response_type=code'; + } + + function set_client_id($client_id) { + $this->client_id = $client_id; + } + + function set_client_secret($client_secret) { + $this->client_secret = $client_secret; + } + + function set_callback_url($callback_url) { + $this->callback_url = $callback_url; + } + } +?> diff --git a/buffer/lang/C/messages.po b/buffer/lang/C/messages.po new file mode 100644 index 0000000..65ba7f4 --- /dev/null +++ b/buffer/lang/C/messages.po @@ -0,0 +1,74 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-07-25 13:17+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: buffer.php:39 +msgid "Permission denied." +msgstr "" + +#: buffer.php:68 buffer.php:216 +msgid "Save Settings" +msgstr "" + +#: buffer.php:70 +msgid "Client ID" +msgstr "" + +#: buffer.php:71 +msgid "Client Secret" +msgstr "" + +#: buffer.php:87 +msgid "Error when registering buffer connection:" +msgstr "" + +#: buffer.php:107 +msgid "You are now authenticated to buffer. " +msgstr "" + +#: buffer.php:108 +msgid "return to the connector page" +msgstr "" + +#: buffer.php:126 +msgid "Post to Buffer" +msgstr "" + +#: buffer.php:155 buffer.php:159 +msgid "Buffer Export" +msgstr "" + +#: buffer.php:170 +msgid "Authenticate your Buffer connection" +msgstr "" + +#: buffer.php:174 +msgid "Enable Buffer Post Addon" +msgstr "" + +#: buffer.php:179 +msgid "Post to Buffer by default" +msgstr "" + +#: buffer.php:184 +msgid "Check to delete this preset" +msgstr "" + +#: buffer.php:196 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "" diff --git a/buffer/lang/ar/messages.po b/buffer/lang/ar/messages.po new file mode 100644 index 0000000..1f03b4d --- /dev/null +++ b/buffer/lang/ar/messages.po @@ -0,0 +1,77 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# abidin toumi , 2021 +# Farida Khalaf , 2021 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-07-25 13:17+0000\n" +"PO-Revision-Date: 2021-10-29 08:25+0000\n" +"Last-Translator: abidin toumi \n" +"Language-Team: Arabic (http://www.transifex.com/Friendica/friendica/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: buffer.php:39 +msgid "Permission denied." +msgstr "رُفض الإذن." + +#: buffer.php:68 buffer.php:216 +msgid "Save Settings" +msgstr "احفظ الإعدادات" + +#: buffer.php:70 +msgid "Client ID" +msgstr "معرف العميل" + +#: buffer.php:71 +msgid "Client Secret" +msgstr "الرمز السري للعميل" + +#: buffer.php:87 +msgid "Error when registering buffer connection:" +msgstr "خطأ عند تسجيل اتصال بافر:" + +#: buffer.php:107 +msgid "You are now authenticated to buffer. " +msgstr "خولت بافر." + +#: buffer.php:108 +msgid "return to the connector page" +msgstr "ارجع إلى صفحة الموصل" + +#: buffer.php:126 +msgid "Post to Buffer" +msgstr "شارك في بافر" + +#: buffer.php:155 buffer.php:159 +msgid "Buffer Export" +msgstr "تصدير بافر" + +#: buffer.php:170 +msgid "Authenticate your Buffer connection" +msgstr "استوثق اتصال بافر" + +#: buffer.php:174 +msgid "Enable Buffer Post Addon" +msgstr "تفعيل إضافة مشركة بافر" + +#: buffer.php:179 +msgid "Post to Buffer by default" +msgstr "شارك في بافر افتراضيا" + +#: buffer.php:184 +msgid "Check to delete this preset" +msgstr "تحقق لحذف هذا الإعداد المسبق" + +#: buffer.php:196 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr " جميع المشاركات ستنتقل إلى الحسابات التي تم تمكينها افتراضيًا:" diff --git a/buffer/lang/ar/strings.php b/buffer/lang/ar/strings.php new file mode 100644 index 0000000..2689894 --- /dev/null +++ b/buffer/lang/ar/strings.php @@ -0,0 +1,21 @@ +=3 && $n%100<=10) { return 3; } else if ($n%100>=11 && $n%100<=99) { return 4; } else { return 5; } +}} +$a->strings['Permission denied.'] = 'رُفض الإذن.'; +$a->strings['Save Settings'] = 'احفظ الإعدادات'; +$a->strings['Client ID'] = 'معرف العميل'; +$a->strings['Client Secret'] = 'الرمز السري للعميل'; +$a->strings['Error when registering buffer connection:'] = 'خطأ عند تسجيل اتصال بافر:'; +$a->strings['You are now authenticated to buffer. '] = 'خولت بافر.'; +$a->strings['return to the connector page'] = 'ارجع إلى صفحة الموصل'; +$a->strings['Post to Buffer'] = 'شارك في بافر'; +$a->strings['Buffer Export'] = 'تصدير بافر'; +$a->strings['Authenticate your Buffer connection'] = 'استوثق اتصال بافر'; +$a->strings['Enable Buffer Post Addon'] = 'تفعيل إضافة مشركة بافر'; +$a->strings['Post to Buffer by default'] = 'شارك في بافر افتراضيا'; +$a->strings['Check to delete this preset'] = 'تحقق لحذف هذا الإعداد المسبق'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = ' جميع المشاركات ستنتقل إلى الحسابات التي تم تمكينها افتراضيًا:'; diff --git a/buffer/lang/ca/messages.po b/buffer/lang/ca/messages.po new file mode 100644 index 0000000..4a3490f --- /dev/null +++ b/buffer/lang/ca/messages.po @@ -0,0 +1,76 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Joan Bar , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2019-10-14 18:57+0000\n" +"Last-Translator: Joan Bar \n" +"Language-Team: Catalan (http://www.transifex.com/Friendica/friendica/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Permís denegat." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Desa la configuració" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Identificador de client" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Secret del client" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Error al registrar la connexió del buffer:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Ara esteu autenticats com a buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "Torna a la pàgina del connector" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Publica a Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Exportació de buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Autentiqueu la vostra connexió buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Activa l’addició de missatges de buffer" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Publica a Buffer de manera predeterminada" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Comproveu suprimir aquesta configuració" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Les publicacions aniran a tots els comptes que estan habilitats de manera predeterminada:" diff --git a/buffer/lang/ca/strings.php b/buffer/lang/ca/strings.php new file mode 100644 index 0000000..3df4a56 --- /dev/null +++ b/buffer/lang/ca/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Permís denegat.'; +$a->strings['Save Settings'] = 'Desa la configuració'; +$a->strings['Client ID'] = 'Identificador de client'; +$a->strings['Client Secret'] = 'Secret del client'; +$a->strings['Error when registering buffer connection:'] = 'Error al registrar la connexió del buffer:'; +$a->strings['You are now authenticated to buffer. '] = 'Ara esteu autenticats com a buffer.'; +$a->strings['return to the connector page'] = 'Torna a la pàgina del connector'; +$a->strings['Post to Buffer'] = 'Publica a Buffer'; +$a->strings['Buffer Export'] = 'Exportació de buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Autentiqueu la vostra connexió buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Activa l’addició de missatges de buffer'; +$a->strings['Post to Buffer by default'] = 'Publica a Buffer de manera predeterminada'; +$a->strings['Check to delete this preset'] = 'Comproveu suprimir aquesta configuració'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Les publicacions aniran a tots els comptes que estan habilitats de manera predeterminada:'; diff --git a/buffer/lang/cs/messages.po b/buffer/lang/cs/messages.po new file mode 100644 index 0000000..ce1d936 --- /dev/null +++ b/buffer/lang/cs/messages.po @@ -0,0 +1,78 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Aditoo, 2018 +# Aditoo, 2018 +# michal_s , 2014 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-09-12 09:43+0000\n" +"Last-Translator: Aditoo\n" +"Language-Team: Czech (http://www.transifex.com/Friendica/friendica/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Přístup odmítnut." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Uložit Nastavení" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Client ID" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Client Secret" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Chyba při registraci připojení na buffer:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Nyní jste přihlášen/a na buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "zpět ke stránce konektoru" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Posílat na Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Buffer Export" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Autentikujte své připojení na Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Povolit doplněk Buffer Post" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Ve výchozím stavu posílat na Buffer" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Zaškrtnutím smažete toto nastavení" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Příspěvky budou posílány na všechny účty, které jsou ve výchozím stavu povoleny:" diff --git a/buffer/lang/cs/strings.php b/buffer/lang/cs/strings.php new file mode 100644 index 0000000..857a2cf --- /dev/null +++ b/buffer/lang/cs/strings.php @@ -0,0 +1,21 @@ += 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; } +}} +$a->strings['Permission denied.'] = 'Přístup odmítnut.'; +$a->strings['Save Settings'] = 'Uložit Nastavení'; +$a->strings['Client ID'] = 'Client ID'; +$a->strings['Client Secret'] = 'Client Secret'; +$a->strings['Error when registering buffer connection:'] = 'Chyba při registraci připojení na buffer:'; +$a->strings['You are now authenticated to buffer. '] = 'Nyní jste přihlášen/a na buffer.'; +$a->strings['return to the connector page'] = 'zpět ke stránce konektoru'; +$a->strings['Post to Buffer'] = 'Posílat na Buffer'; +$a->strings['Buffer Export'] = 'Buffer Export'; +$a->strings['Authenticate your Buffer connection'] = 'Autentikujte své připojení na Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Povolit doplněk Buffer Post'; +$a->strings['Post to Buffer by default'] = 'Ve výchozím stavu posílat na Buffer'; +$a->strings['Check to delete this preset'] = 'Zaškrtnutím smažete toto nastavení'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Příspěvky budou posílány na všechny účty, které jsou ve výchozím stavu povoleny:'; diff --git a/buffer/lang/de/messages.po b/buffer/lang/de/messages.po new file mode 100644 index 0000000..e01056b --- /dev/null +++ b/buffer/lang/de/messages.po @@ -0,0 +1,79 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Tobias Diekershoff , 2014 +# Tobias Diekershoff , 2018 +# Ulf Rompe , 2019 +# Vinzenz Vietzke , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2019-08-19 10:15+0000\n" +"Last-Translator: Vinzenz Vietzke \n" +"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Zugriff verweigert." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Einstellungen speichern" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Client ID" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Client Secret" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Fehler beim Registrieren des Buffer-Connectors." + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Du bist nun auf Buffer authentifiziert." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "zurück zur Connector-Seite" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Auf Buffer veröffentlichen" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Buffer Export" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Authentifiziere deine Verbindung zu Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Buffer-Post-Addon aktivieren" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Standardmäßig auf Buffer veröffentlichen" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Markieren, um diese Voreinstellung zu löschen" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Beiträge werden an alle Accounts geschickt, die standardmäßig aktiviert sind." diff --git a/buffer/lang/de/strings.php b/buffer/lang/de/strings.php new file mode 100644 index 0000000..477f296 --- /dev/null +++ b/buffer/lang/de/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Zugriff verweigert.'; +$a->strings['Save Settings'] = 'Einstellungen speichern'; +$a->strings['Client ID'] = 'Client ID'; +$a->strings['Client Secret'] = 'Client Secret'; +$a->strings['Error when registering buffer connection:'] = 'Fehler beim Registrieren des Buffer-Connectors.'; +$a->strings['You are now authenticated to buffer. '] = 'Du bist nun auf Buffer authentifiziert.'; +$a->strings['return to the connector page'] = 'zurück zur Connector-Seite'; +$a->strings['Post to Buffer'] = 'Auf Buffer veröffentlichen'; +$a->strings['Buffer Export'] = 'Buffer Export'; +$a->strings['Authenticate your Buffer connection'] = 'Authentifiziere deine Verbindung zu Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Buffer-Post-Addon aktivieren'; +$a->strings['Post to Buffer by default'] = 'Standardmäßig auf Buffer veröffentlichen'; +$a->strings['Check to delete this preset'] = 'Markieren, um diese Voreinstellung zu löschen'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Beiträge werden an alle Accounts geschickt, die standardmäßig aktiviert sind.'; diff --git a/buffer/lang/es/messages.po b/buffer/lang/es/messages.po new file mode 100644 index 0000000..eb38cc3 --- /dev/null +++ b/buffer/lang/es/messages.po @@ -0,0 +1,76 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Albert, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-05-21 14:28+0000\n" +"Last-Translator: Albert\n" +"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Permiso denegado" + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Guardar ajustes" + +#: buffer.php:59 +msgid "Client ID" +msgstr "ID de cliente" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Secreto de cliente" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Error al registrar cunexión de buffer" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Ahora está autenticado al fufer" + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "Vuelva a la página de conexión" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Publique en Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Exportar Buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Autenticar su conexión de Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Habilitar el complemento de publicación de Buffer" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Publicar en Buffer por defecto" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Verificar para eliminar este preajuste" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Las publicaciones van a todas las cuentas que estén habilitadas por defecto" diff --git a/buffer/lang/es/strings.php b/buffer/lang/es/strings.php new file mode 100644 index 0000000..97f769a --- /dev/null +++ b/buffer/lang/es/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Permiso denegado'; +$a->strings['Save Settings'] = 'Guardar ajustes'; +$a->strings['Client ID'] = 'ID de cliente'; +$a->strings['Client Secret'] = 'Secreto de cliente'; +$a->strings['Error when registering buffer connection:'] = 'Error al registrar cunexión de buffer'; +$a->strings['You are now authenticated to buffer. '] = 'Ahora está autenticado al fufer'; +$a->strings['return to the connector page'] = 'Vuelva a la página de conexión'; +$a->strings['Post to Buffer'] = 'Publique en Buffer'; +$a->strings['Buffer Export'] = 'Exportar Buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Autenticar su conexión de Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Habilitar el complemento de publicación de Buffer'; +$a->strings['Post to Buffer by default'] = 'Publicar en Buffer por defecto'; +$a->strings['Check to delete this preset'] = 'Verificar para eliminar este preajuste'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Las publicaciones van a todas las cuentas que estén habilitadas por defecto'; diff --git a/buffer/lang/fi-fi/messages.po b/buffer/lang/fi-fi/messages.po new file mode 100644 index 0000000..e834f3f --- /dev/null +++ b/buffer/lang/fi-fi/messages.po @@ -0,0 +1,77 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Kris, 2018 +# Kris, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-04-18 14:49+0000\n" +"Last-Translator: Kris\n" +"Language-Team: Finnish (Finland) (http://www.transifex.com/Friendica/friendica/language/fi_FI/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi_FI\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Lupa kielletty." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Tallenna asetukset" + +#: buffer.php:59 +msgid "Client ID" +msgstr "" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Virhe Buffer-yhteyden rekisteröimisessä:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Buffer-yhteydesi on todennettu." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Julkaise Bufferiin" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Buffer Export" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Todenna Buffer-yhteydesi" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Ota Buffer-viestilisäosa käyttöön" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Julkaise Bufferiin oletuksena" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "" diff --git a/buffer/lang/fi-fi/strings.php b/buffer/lang/fi-fi/strings.php new file mode 100644 index 0000000..34a61ed --- /dev/null +++ b/buffer/lang/fi-fi/strings.php @@ -0,0 +1,16 @@ +strings['Permission denied.'] = 'Lupa kielletty.'; +$a->strings['Save Settings'] = 'Tallenna asetukset'; +$a->strings['Error when registering buffer connection:'] = 'Virhe Buffer-yhteyden rekisteröimisessä:'; +$a->strings['You are now authenticated to buffer. '] = 'Buffer-yhteydesi on todennettu.'; +$a->strings['Post to Buffer'] = 'Julkaise Bufferiin'; +$a->strings['Buffer Export'] = 'Buffer Export'; +$a->strings['Authenticate your Buffer connection'] = 'Todenna Buffer-yhteydesi'; +$a->strings['Enable Buffer Post Addon'] = 'Ota Buffer-viestilisäosa käyttöön'; +$a->strings['Post to Buffer by default'] = 'Julkaise Bufferiin oletuksena'; diff --git a/buffer/lang/fr/messages.po b/buffer/lang/fr/messages.po new file mode 100644 index 0000000..716f539 --- /dev/null +++ b/buffer/lang/fr/messages.po @@ -0,0 +1,79 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Hypolite Petovan , 2016 +# Marie Olive , 2018 +# RyDroid , 2015 +# StefOfficiel , 2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-11-13 12:56+0000\n" +"Last-Translator: Marie Olive \n" +"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Permission refusée." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Enregistrer les Paramètres" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Identifiant client" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Secret Client" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Une erreur est survenue lors de la connexion à Buffer :" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Vous êtes maintenant authentifié sur Buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "revenir à la page du connecteur" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Publier sur Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Export Buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Authentifier votre connexion à Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Activer l'extension de publication Buffer" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Publier sur Buffer par défaut" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Cocher pour supprimer ce préréglage" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Les posts sont envoyés à tous les comptes activés par défault:" diff --git a/buffer/lang/fr/strings.php b/buffer/lang/fr/strings.php new file mode 100644 index 0000000..6d93278 --- /dev/null +++ b/buffer/lang/fr/strings.php @@ -0,0 +1,21 @@ + 1); +}} +$a->strings['Permission denied.'] = 'Permission refusée.'; +$a->strings['Save Settings'] = 'Enregistrer les Paramètres'; +$a->strings['Client ID'] = 'Identifiant client'; +$a->strings['Client Secret'] = 'Secret Client'; +$a->strings['Error when registering buffer connection:'] = 'Une erreur est survenue lors de la connexion à Buffer :'; +$a->strings['You are now authenticated to buffer. '] = 'Vous êtes maintenant authentifié sur Buffer.'; +$a->strings['return to the connector page'] = 'revenir à la page du connecteur'; +$a->strings['Post to Buffer'] = 'Publier sur Buffer'; +$a->strings['Buffer Export'] = 'Export Buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Authentifier votre connexion à Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Activer l\'extension de publication Buffer'; +$a->strings['Post to Buffer by default'] = 'Publier sur Buffer par défaut'; +$a->strings['Check to delete this preset'] = 'Cocher pour supprimer ce préréglage'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Les posts sont envoyés à tous les comptes activés par défault:'; diff --git a/buffer/lang/hu/messages.po b/buffer/lang/hu/messages.po new file mode 100644 index 0000000..0d94532 --- /dev/null +++ b/buffer/lang/hu/messages.po @@ -0,0 +1,76 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Balázs Úr, 2020 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2020-12-23 00:50+0000\n" +"Last-Translator: Balázs Úr\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Hozzáférés megtagadva." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Beállítások mentése" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Ügyfél-azonosító" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Ügyféltitok" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Hiba a Buffer-kapcsolat regisztrálásakor:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Most már hitelesítve van a Bufferhez." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "Visszatérés az összekötő oldalra" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Beküldés a Bufferre" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Buffer exportálás" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "A Buffer-kapcsolatának hitelesítése" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "A Buffer-beküldő bővítmény engedélyezése" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Beküldés a Bufferre alapértelmezetten" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Jelölje be az előbeállítás törléséhez" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "A bejegyzések az összes olyan fiókba mennek, amelyek alapértelmezetten engedélyezve vannak:" diff --git a/buffer/lang/hu/strings.php b/buffer/lang/hu/strings.php new file mode 100644 index 0000000..e8c092f --- /dev/null +++ b/buffer/lang/hu/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Hozzáférés megtagadva.'; +$a->strings['Save Settings'] = 'Beállítások mentése'; +$a->strings['Client ID'] = 'Ügyfél-azonosító'; +$a->strings['Client Secret'] = 'Ügyféltitok'; +$a->strings['Error when registering buffer connection:'] = 'Hiba a Buffer-kapcsolat regisztrálásakor:'; +$a->strings['You are now authenticated to buffer. '] = 'Most már hitelesítve van a Bufferhez.'; +$a->strings['return to the connector page'] = 'Visszatérés az összekötő oldalra'; +$a->strings['Post to Buffer'] = 'Beküldés a Bufferre'; +$a->strings['Buffer Export'] = 'Buffer exportálás'; +$a->strings['Authenticate your Buffer connection'] = 'A Buffer-kapcsolatának hitelesítése'; +$a->strings['Enable Buffer Post Addon'] = 'A Buffer-beküldő bővítmény engedélyezése'; +$a->strings['Post to Buffer by default'] = 'Beküldés a Bufferre alapértelmezetten'; +$a->strings['Check to delete this preset'] = 'Jelölje be az előbeállítás törléséhez'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'A bejegyzések az összes olyan fiókba mennek, amelyek alapértelmezetten engedélyezve vannak:'; diff --git a/buffer/lang/is/messages.po b/buffer/lang/is/messages.po new file mode 100644 index 0000000..dea1585 --- /dev/null +++ b/buffer/lang/is/messages.po @@ -0,0 +1,76 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Sveinn í Felli , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-05-24 15:15+0000\n" +"Last-Translator: Sveinn í Felli \n" +"Language-Team: Icelandic (http://www.transifex.com/Friendica/friendica/language/is/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: is\n" +"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Heimild ekki veitt." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "" + +#: buffer.php:59 +msgid "Client ID" +msgstr "" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "" + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "" diff --git a/buffer/lang/is/strings.php b/buffer/lang/is/strings.php new file mode 100644 index 0000000..5453c83 --- /dev/null +++ b/buffer/lang/is/strings.php @@ -0,0 +1,8 @@ +strings['Permission denied.'] = 'Heimild ekki veitt.'; diff --git a/buffer/lang/it/messages.po b/buffer/lang/it/messages.po new file mode 100644 index 0000000..6f4c94c --- /dev/null +++ b/buffer/lang/it/messages.po @@ -0,0 +1,77 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# fabrixxm , 2014,2018 +# Sandro Santilli , 2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-03-19 13:21+0000\n" +"Last-Translator: fabrixxm \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Permesso negato." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Salva Impostazioni" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Client ID" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Client Secret" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Errore registrando la connessione a buffer:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Sei autenticato su buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "ritorna alla pagina del connettore" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Invia a Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Esporta Buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Autentica la tua connessione a Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Abilita il componente aggiuntivo di invio a Buffer" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Invia sempre a Buffer" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Seleziona per eliminare questo preset" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "I messaggi andranno a tutti gli account che sono abilitati:" diff --git a/buffer/lang/it/strings.php b/buffer/lang/it/strings.php new file mode 100644 index 0000000..7f64371 --- /dev/null +++ b/buffer/lang/it/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Permesso negato.'; +$a->strings['Save Settings'] = 'Salva Impostazioni'; +$a->strings['Client ID'] = 'Client ID'; +$a->strings['Client Secret'] = 'Client Secret'; +$a->strings['Error when registering buffer connection:'] = 'Errore registrando la connessione a buffer:'; +$a->strings['You are now authenticated to buffer. '] = 'Sei autenticato su buffer.'; +$a->strings['return to the connector page'] = 'ritorna alla pagina del connettore'; +$a->strings['Post to Buffer'] = 'Invia a Buffer'; +$a->strings['Buffer Export'] = 'Esporta Buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Autentica la tua connessione a Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Abilita il componente aggiuntivo di invio a Buffer'; +$a->strings['Post to Buffer by default'] = 'Invia sempre a Buffer'; +$a->strings['Check to delete this preset'] = 'Seleziona per eliminare questo preset'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'I messaggi andranno a tutti gli account che sono abilitati:'; diff --git a/buffer/lang/nl/messages.po b/buffer/lang/nl/messages.po new file mode 100644 index 0000000..1dc00c7 --- /dev/null +++ b/buffer/lang/nl/messages.po @@ -0,0 +1,77 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# AgnesElisa , 2018 +# Jeroen De Meerleer , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-08-24 13:04+0000\n" +"Last-Translator: Jeroen De Meerleer \n" +"Language-Team: Dutch (http://www.transifex.com/Friendica/friendica/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Toegang geweigerd." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Instellingen opslaan" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Cliënt ID" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Cliënt geheim" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Fout bij het registreren van de buffer verbinding:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Je bent nu aangemeld bij Buffer" + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "ga terug naar de verbindingspagina" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Plaats bericht op Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Buffer Exporteren" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Verbinding met Buffer goedkeuren" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Buffer Post Addon inschakelen" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Plaatsen op Buffer als standaard instellen" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Vink aan om deze vooraf ingestelde opties te verwijderen " + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Berichten gaan naar alle accounts die als standaard zijn ingeschakeld: " diff --git a/buffer/lang/nl/strings.php b/buffer/lang/nl/strings.php new file mode 100644 index 0000000..fb56022 --- /dev/null +++ b/buffer/lang/nl/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Toegang geweigerd.'; +$a->strings['Save Settings'] = 'Instellingen opslaan'; +$a->strings['Client ID'] = 'Cliënt ID'; +$a->strings['Client Secret'] = 'Cliënt geheim'; +$a->strings['Error when registering buffer connection:'] = 'Fout bij het registreren van de buffer verbinding:'; +$a->strings['You are now authenticated to buffer. '] = 'Je bent nu aangemeld bij Buffer'; +$a->strings['return to the connector page'] = 'ga terug naar de verbindingspagina'; +$a->strings['Post to Buffer'] = 'Plaats bericht op Buffer'; +$a->strings['Buffer Export'] = 'Buffer Exporteren'; +$a->strings['Authenticate your Buffer connection'] = 'Verbinding met Buffer goedkeuren'; +$a->strings['Enable Buffer Post Addon'] = 'Buffer Post Addon inschakelen'; +$a->strings['Post to Buffer by default'] = 'Plaatsen op Buffer als standaard instellen'; +$a->strings['Check to delete this preset'] = 'Vink aan om deze vooraf ingestelde opties te verwijderen '; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Berichten gaan naar alle accounts die als standaard zijn ingeschakeld: '; diff --git a/buffer/lang/pl/messages.po b/buffer/lang/pl/messages.po new file mode 100644 index 0000000..d44d11b --- /dev/null +++ b/buffer/lang/pl/messages.po @@ -0,0 +1,76 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Waldemar Stoczkowski , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-03-31 17:10+0000\n" +"Last-Translator: Waldemar Stoczkowski \n" +"Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Odmowa uprawnień." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Zapisz ustawienia" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Identyfikator ID klienta" + +#: buffer.php:60 +msgid "Client Secret" +msgstr " Tajny klucz klienta" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Błąd podczas rejestrowania połączenia z buforem:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Jesteś teraz uwierzytelniony w buforze." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "powrót do strony połączenia" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Opublikuj w buforze" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Eksportuj Bufor" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Uwierzytelnij swoje połączenie z buforem" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Włącz dodatek bufora pocztowego" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Wyślij domyślnie post do bufora" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Zaznacz, aby usunąć to ustawienie wstępne" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Wpisy są wysyłane na wszystkie konta, które są domyślnie włączone:" diff --git a/buffer/lang/pl/strings.php b/buffer/lang/pl/strings.php new file mode 100644 index 0000000..1365acd --- /dev/null +++ b/buffer/lang/pl/strings.php @@ -0,0 +1,21 @@ +=2 && $n%10<=4) && ($n%100<12 || $n%100>14)) { return 1; } else if ($n!=1 && ($n%10>=0 && $n%10<=1) || ($n%10>=5 && $n%10<=9) || ($n%100>=12 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['Permission denied.'] = 'Odmowa uprawnień.'; +$a->strings['Save Settings'] = 'Zapisz ustawienia'; +$a->strings['Client ID'] = 'Identyfikator ID klienta'; +$a->strings['Client Secret'] = ' Tajny klucz klienta'; +$a->strings['Error when registering buffer connection:'] = 'Błąd podczas rejestrowania połączenia z buforem:'; +$a->strings['You are now authenticated to buffer. '] = 'Jesteś teraz uwierzytelniony w buforze.'; +$a->strings['return to the connector page'] = 'powrót do strony połączenia'; +$a->strings['Post to Buffer'] = 'Opublikuj w buforze'; +$a->strings['Buffer Export'] = 'Eksportuj Bufor'; +$a->strings['Authenticate your Buffer connection'] = 'Uwierzytelnij swoje połączenie z buforem'; +$a->strings['Enable Buffer Post Addon'] = 'Włącz dodatek bufora pocztowego'; +$a->strings['Post to Buffer by default'] = 'Wyślij domyślnie post do bufora'; +$a->strings['Check to delete this preset'] = 'Zaznacz, aby usunąć to ustawienie wstępne'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Wpisy są wysyłane na wszystkie konta, które są domyślnie włączone:'; diff --git a/buffer/lang/pt-br/messages.po b/buffer/lang/pt-br/messages.po new file mode 100644 index 0000000..795f264 --- /dev/null +++ b/buffer/lang/pt-br/messages.po @@ -0,0 +1,77 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# André Alves , 2016 +# Rui Andrada , 2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2016-01-03 06:19+0000\n" +"Last-Translator: André Alves \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/Friendica/friendica/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Permissão negada." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Salvar configurações" + +#: buffer.php:59 +msgid "Client ID" +msgstr "" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Erro ao registrar conexão de buffer:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Você está autenticado no buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "Volte a página de conectores." + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Publicar no Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Exportar Buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Autenticar sua conexão de Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Habilita addon para publicar no Buffer" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Publica no Buffer por padrão" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Marque para excluir este perfil" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "" diff --git a/buffer/lang/pt-br/strings.php b/buffer/lang/pt-br/strings.php new file mode 100644 index 0000000..f97e007 --- /dev/null +++ b/buffer/lang/pt-br/strings.php @@ -0,0 +1,18 @@ + 1); +}} +$a->strings['Permission denied.'] = 'Permissão negada.'; +$a->strings['Save Settings'] = 'Salvar configurações'; +$a->strings['Error when registering buffer connection:'] = 'Erro ao registrar conexão de buffer:'; +$a->strings['You are now authenticated to buffer. '] = 'Você está autenticado no buffer.'; +$a->strings['return to the connector page'] = 'Volte a página de conectores.'; +$a->strings['Post to Buffer'] = 'Publicar no Buffer'; +$a->strings['Buffer Export'] = 'Exportar Buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Autenticar sua conexão de Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Habilita addon para publicar no Buffer'; +$a->strings['Post to Buffer by default'] = 'Publica no Buffer por padrão'; +$a->strings['Check to delete this preset'] = 'Marque para excluir este perfil'; diff --git a/buffer/lang/ro/messages.po b/buffer/lang/ro/messages.po new file mode 100644 index 0000000..81e46a5 --- /dev/null +++ b/buffer/lang/ro/messages.po @@ -0,0 +1,75 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2014-07-08 11:45+0000\n" +"Last-Translator: Arian - Cazare Muncitori \n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro_RO\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Permisiune refuzată." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Salvare Configurări" + +#: buffer.php:59 +msgid "Client ID" +msgstr "ID Client" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Cheia Secretă Client" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Eroare la înregistrarea conexiunii Buffer:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Acum sunteți autentificat pe Buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "revenire la pagina de conectare" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Postați pe Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Export pe Buffer " + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Autentificați-vă conectarea la Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Activare Modul Postare pe Buffer" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Postați implicit pe Buffer" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Bifați pentru a șterge această presetare" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Posturile merg către toate conturile care sunt activate implicit:" diff --git a/buffer/lang/ro/strings.php b/buffer/lang/ro/strings.php new file mode 100644 index 0000000..092f599 --- /dev/null +++ b/buffer/lang/ro/strings.php @@ -0,0 +1,21 @@ +19)||(($n%100==0)&&($n!=0)))) { return 2; } else { return 1; } +}} +$a->strings['Permission denied.'] = 'Permisiune refuzată.'; +$a->strings['Save Settings'] = 'Salvare Configurări'; +$a->strings['Client ID'] = 'ID Client'; +$a->strings['Client Secret'] = 'Cheia Secretă Client'; +$a->strings['Error when registering buffer connection:'] = 'Eroare la înregistrarea conexiunii Buffer:'; +$a->strings['You are now authenticated to buffer. '] = 'Acum sunteți autentificat pe Buffer.'; +$a->strings['return to the connector page'] = 'revenire la pagina de conectare'; +$a->strings['Post to Buffer'] = 'Postați pe Buffer'; +$a->strings['Buffer Export'] = 'Export pe Buffer '; +$a->strings['Authenticate your Buffer connection'] = 'Autentificați-vă conectarea la Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Activare Modul Postare pe Buffer'; +$a->strings['Post to Buffer by default'] = 'Postați implicit pe Buffer'; +$a->strings['Check to delete this preset'] = 'Bifați pentru a șterge această presetare'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Posturile merg către toate conturile care sunt activate implicit:'; diff --git a/buffer/lang/ru/messages.po b/buffer/lang/ru/messages.po new file mode 100644 index 0000000..7aabaf4 --- /dev/null +++ b/buffer/lang/ru/messages.po @@ -0,0 +1,76 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Stanislav N. , 2017-2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2018-05-25 00:01+0000\n" +"Last-Translator: Stanislav N. \n" +"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Доступ запрещен." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Сохранить настройки" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Client ID" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Client Secret" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Ошибка при регистрации соединения Buffer:" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Вы аутентифицированы на Buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "вернуться на страницу коннектора" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Написать в Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Экспорт в Buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Аутентифицируйте свое соединение с Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Включить аддон Buffer Post" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Отправлять в Buffer по умолчанию" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Отметьте для удаления этих настроек" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Сообщения уходят во все учетные записи по умолчанию:" diff --git a/buffer/lang/ru/strings.php b/buffer/lang/ru/strings.php new file mode 100644 index 0000000..b055b48 --- /dev/null +++ b/buffer/lang/ru/strings.php @@ -0,0 +1,21 @@ +=2 && $n%10<=4 && ($n%100<12 || $n%100>14)) { return 1; } else if ($n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['Permission denied.'] = 'Доступ запрещен.'; +$a->strings['Save Settings'] = 'Сохранить настройки'; +$a->strings['Client ID'] = 'Client ID'; +$a->strings['Client Secret'] = 'Client Secret'; +$a->strings['Error when registering buffer connection:'] = 'Ошибка при регистрации соединения Buffer:'; +$a->strings['You are now authenticated to buffer. '] = 'Вы аутентифицированы на Buffer.'; +$a->strings['return to the connector page'] = 'вернуться на страницу коннектора'; +$a->strings['Post to Buffer'] = 'Написать в Buffer'; +$a->strings['Buffer Export'] = 'Экспорт в Buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Аутентифицируйте свое соединение с Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Включить аддон Buffer Post'; +$a->strings['Post to Buffer by default'] = 'Отправлять в Buffer по умолчанию'; +$a->strings['Check to delete this preset'] = 'Отметьте для удаления этих настроек'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Сообщения уходят во все учетные записи по умолчанию:'; diff --git a/buffer/lang/sv/messages.po b/buffer/lang/sv/messages.po new file mode 100644 index 0000000..5ca6e6e --- /dev/null +++ b/buffer/lang/sv/messages.po @@ -0,0 +1,77 @@ +# ADDON buffer +# Copyright (C) +# This file is distributed under the same license as the Friendica buffer addon package. +# +# +# Translators: +# Hypolite Petovan , 2019 +# Bjoessi , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-06-22 13:18+0200\n" +"PO-Revision-Date: 2019-08-20 08:07+0000\n" +"Last-Translator: Bjoessi \n" +"Language-Team: Swedish (http://www.transifex.com/Friendica/friendica/language/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: buffer.php:31 +msgid "Permission denied." +msgstr "Åtkomst nekad." + +#: buffer.php:57 buffer.php:185 +msgid "Save Settings" +msgstr "Spara inställningar" + +#: buffer.php:59 +msgid "Client ID" +msgstr "Klient-ID" + +#: buffer.php:60 +msgid "Client Secret" +msgstr "Klient hemlig nyckel" + +#: buffer.php:67 +msgid "Error when registering buffer connection:" +msgstr "Fel vid anslutning till Buffer" + +#: buffer.php:86 +msgid "You are now authenticated to buffer. " +msgstr "Du är nu autentiserad mot Buffer." + +#: buffer.php:87 +msgid "return to the connector page" +msgstr "återgå till anslutningssida" + +#: buffer.php:103 +msgid "Post to Buffer" +msgstr "Inlägg till Buffer" + +#: buffer.php:128 buffer.php:132 +msgid "Buffer Export" +msgstr "Export till Buffer" + +#: buffer.php:142 +msgid "Authenticate your Buffer connection" +msgstr "Validera din anslutning mot Buffer" + +#: buffer.php:146 +msgid "Enable Buffer Post Addon" +msgstr "Aktivera tillägg för Buffer-inlägg" + +#: buffer.php:151 +msgid "Post to Buffer by default" +msgstr "Lägg in på Buffer som standard" + +#: buffer.php:156 +msgid "Check to delete this preset" +msgstr "Markera för att ta bort förinställning" + +#: buffer.php:165 +msgid "Posts are going to all accounts that are enabled by default:" +msgstr "Inlägg skickas som standard till alla konton som är aktiverade:" diff --git a/buffer/lang/sv/strings.php b/buffer/lang/sv/strings.php new file mode 100644 index 0000000..7f580b0 --- /dev/null +++ b/buffer/lang/sv/strings.php @@ -0,0 +1,21 @@ +strings['Permission denied.'] = 'Åtkomst nekad.'; +$a->strings['Save Settings'] = 'Spara inställningar'; +$a->strings['Client ID'] = 'Klient-ID'; +$a->strings['Client Secret'] = 'Klient hemlig nyckel'; +$a->strings['Error when registering buffer connection:'] = 'Fel vid anslutning till Buffer'; +$a->strings['You are now authenticated to buffer. '] = 'Du är nu autentiserad mot Buffer.'; +$a->strings['return to the connector page'] = 'återgå till anslutningssida'; +$a->strings['Post to Buffer'] = 'Inlägg till Buffer'; +$a->strings['Buffer Export'] = 'Export till Buffer'; +$a->strings['Authenticate your Buffer connection'] = 'Validera din anslutning mot Buffer'; +$a->strings['Enable Buffer Post Addon'] = 'Aktivera tillägg för Buffer-inlägg'; +$a->strings['Post to Buffer by default'] = 'Lägg in på Buffer som standard'; +$a->strings['Check to delete this preset'] = 'Markera för att ta bort förinställning'; +$a->strings['Posts are going to all accounts that are enabled by default:'] = 'Inlägg skickas som standard till alla konton som är aktiverade:'; diff --git a/buffer/templates/admin.tpl b/buffer/templates/admin.tpl new file mode 100644 index 0000000..b4cc365 --- /dev/null +++ b/buffer/templates/admin.tpl @@ -0,0 +1,3 @@ +{{include file="field_input.tpl" field=$client_id}} +{{include file="field_input.tpl" field=$client_secret}} +
From 483e8e9755644601951f03426d350fc333296015 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 27 Nov 2021 17:07:34 +0100 Subject: [PATCH 3/4] deprecated the NOTIMELINE addon --- notimeline/lang/C/messages.po | 30 ++++++++++++++++ notimeline/lang/ar/messages.po | 32 +++++++++++++++++ notimeline/lang/ar/strings.php | 10 ++++++ notimeline/lang/ca/strings.php | 6 ++++ notimeline/lang/cs/messages.po | 36 +++++++++++++++++++ notimeline/lang/cs/strings.php | 11 ++++++ notimeline/lang/de/messages.po | 37 ++++++++++++++++++++ notimeline/lang/de/strings.php | 11 ++++++ notimeline/lang/eo/strings.php | 6 ++++ notimeline/lang/es/messages.po | 33 ++++++++++++++++++ notimeline/lang/es/strings.php | 10 ++++++ notimeline/lang/fi-fi/messages.po | 37 ++++++++++++++++++++ notimeline/lang/fi-fi/strings.php | 10 ++++++ notimeline/lang/fr/strings.php | 6 ++++ notimeline/lang/hu/messages.po | 32 +++++++++++++++++ notimeline/lang/hu/strings.php | 10 ++++++ notimeline/lang/is/strings.php | 6 ++++ notimeline/lang/it/messages.po | 36 +++++++++++++++++++ notimeline/lang/it/strings.php | 11 ++++++ notimeline/lang/nb-no/strings.php | 6 ++++ notimeline/lang/nl/messages.po | 36 +++++++++++++++++++ notimeline/lang/nl/strings.php | 9 +++++ notimeline/lang/pl/messages.po | 36 +++++++++++++++++++ notimeline/lang/pl/strings.php | 11 ++++++ notimeline/lang/pt-br/strings.php | 6 ++++ notimeline/lang/ro/messages.po | 36 +++++++++++++++++++ notimeline/lang/ro/strings.php | 11 ++++++ notimeline/lang/ru/strings.php | 6 ++++ notimeline/lang/sv/strings.php | 3 ++ notimeline/lang/zh-cn/messages.po | 36 +++++++++++++++++++ notimeline/lang/zh-cn/strings.php | 10 ++++++ notimeline/notimeline.css | 14 ++++++++ notimeline/notimeline.php | 57 +++++++++++++++++++++++++++++++ 33 files changed, 647 insertions(+) create mode 100644 notimeline/lang/C/messages.po create mode 100644 notimeline/lang/ar/messages.po create mode 100644 notimeline/lang/ar/strings.php create mode 100644 notimeline/lang/ca/strings.php create mode 100644 notimeline/lang/cs/messages.po create mode 100644 notimeline/lang/cs/strings.php create mode 100644 notimeline/lang/de/messages.po create mode 100644 notimeline/lang/de/strings.php create mode 100644 notimeline/lang/eo/strings.php create mode 100644 notimeline/lang/es/messages.po create mode 100644 notimeline/lang/es/strings.php create mode 100644 notimeline/lang/fi-fi/messages.po create mode 100644 notimeline/lang/fi-fi/strings.php create mode 100644 notimeline/lang/fr/strings.php create mode 100644 notimeline/lang/hu/messages.po create mode 100644 notimeline/lang/hu/strings.php create mode 100644 notimeline/lang/is/strings.php create mode 100644 notimeline/lang/it/messages.po create mode 100644 notimeline/lang/it/strings.php create mode 100644 notimeline/lang/nb-no/strings.php create mode 100644 notimeline/lang/nl/messages.po create mode 100644 notimeline/lang/nl/strings.php create mode 100644 notimeline/lang/pl/messages.po create mode 100644 notimeline/lang/pl/strings.php create mode 100644 notimeline/lang/pt-br/strings.php create mode 100644 notimeline/lang/ro/messages.po create mode 100644 notimeline/lang/ro/strings.php create mode 100644 notimeline/lang/ru/strings.php create mode 100644 notimeline/lang/sv/strings.php create mode 100644 notimeline/lang/zh-cn/messages.po create mode 100644 notimeline/lang/zh-cn/strings.php create mode 100644 notimeline/notimeline.css create mode 100644 notimeline/notimeline.php diff --git a/notimeline/lang/C/messages.po b/notimeline/lang/C/messages.po new file mode 100644 index 0000000..8e99fda --- /dev/null +++ b/notimeline/lang/C/messages.po @@ -0,0 +1,30 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: notimeline.php:48 +msgid "No Timeline Settings" +msgstr "" + +#: notimeline.php:50 +msgid "Disable Archive selector on profile wall" +msgstr "" + +#: notimeline.php:56 +msgid "Save Settings" +msgstr "" diff --git a/notimeline/lang/ar/messages.po b/notimeline/lang/ar/messages.po new file mode 100644 index 0000000..bfaeff1 --- /dev/null +++ b/notimeline/lang/ar/messages.po @@ -0,0 +1,32 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Farida Khalaf , 2021 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-02-22 00:46+0000\n" +"Last-Translator: Farida Khalaf \n" +"Language-Team: Arabic (http://www.transifex.com/Friendica/friendica/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: notimeline.php:48 +msgid "No Timeline Settings" +msgstr "لا يوجد إعدادات للتسلسل  الزمني" + +#: notimeline.php:50 +msgid "Disable Archive selector on profile wall" +msgstr "تعطيل محدد الأرشيف على جدار الملف الشخصي" + +#: notimeline.php:56 +msgid "Save Settings" +msgstr "حفظ الإعدادات" diff --git a/notimeline/lang/ar/strings.php b/notimeline/lang/ar/strings.php new file mode 100644 index 0000000..daf0af1 --- /dev/null +++ b/notimeline/lang/ar/strings.php @@ -0,0 +1,10 @@ +=3 && $n%100<=10) { return 3; } else if ($n%100>=11 && $n%100<=99) { return 4; } else { return 5; } +}} +$a->strings['No Timeline Settings'] = 'لا يوجد إعدادات للتسلسل  الزمني'; +$a->strings['Disable Archive selector on profile wall'] = 'تعطيل محدد الأرشيف على جدار الملف الشخصي'; +$a->strings['Save Settings'] = 'حفظ الإعدادات'; diff --git a/notimeline/lang/ca/strings.php b/notimeline/lang/ca/strings.php new file mode 100644 index 0000000..5dc52a8 --- /dev/null +++ b/notimeline/lang/ca/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = "No s'han actualitzat els ajustos de la línia de temps"; +$a->strings["No Timeline Settings"] = "No hi han ajustos de la línia de temps"; +$a->strings["Disable Archive selector on profile wall"] = "Desactivar el selector d'arxius del mur de perfils"; +$a->strings["Submit"] = "Enviar"; diff --git a/notimeline/lang/cs/messages.po b/notimeline/lang/cs/messages.po new file mode 100644 index 0000000..f5280e5 --- /dev/null +++ b/notimeline/lang/cs/messages.po @@ -0,0 +1,36 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Michal Šupler , 2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2015-02-11 19:38+0000\n" +"Last-Translator: Michal Šupler \n" +"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "Nastavení No Timeline aktualizováno." + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "Nastavení No Timeline" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "Znemožnit použití archivu na této profilové zdi." + +#: notimeline.php:64 +msgid "Submit" +msgstr "Odeslat" diff --git a/notimeline/lang/cs/strings.php b/notimeline/lang/cs/strings.php new file mode 100644 index 0000000..5f86390 --- /dev/null +++ b/notimeline/lang/cs/strings.php @@ -0,0 +1,11 @@ +=2 && $n<=4)) { return 1; } else { return 2; } +}} +$a->strings['No Timeline settings updated.'] = 'Nastavení No Timeline aktualizováno.'; +$a->strings['No Timeline Settings'] = 'Nastavení No Timeline'; +$a->strings['Disable Archive selector on profile wall'] = 'Znemožnit použití archivu na této profilové zdi.'; +$a->strings['Submit'] = 'Odeslat'; diff --git a/notimeline/lang/de/messages.po b/notimeline/lang/de/messages.po new file mode 100644 index 0000000..a7b9105 --- /dev/null +++ b/notimeline/lang/de/messages.po @@ -0,0 +1,37 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Andreas H., 2014 +# Ulf Rompe , 2019 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2019-02-18 15:06+0000\n" +"Last-Translator: Ulf Rompe \n" +"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "Keine Timeline-Einstellungen aktualisiert." + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "Keine Timeline-Einstellungen" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "Deaktiviere Archiv-Auswahl auf deiner Pinnwand" + +#: notimeline.php:64 +msgid "Submit" +msgstr "Senden" diff --git a/notimeline/lang/de/strings.php b/notimeline/lang/de/strings.php new file mode 100644 index 0000000..8d6f015 --- /dev/null +++ b/notimeline/lang/de/strings.php @@ -0,0 +1,11 @@ +strings['No Timeline settings updated.'] = 'Keine Timeline-Einstellungen aktualisiert.'; +$a->strings['No Timeline Settings'] = 'Keine Timeline-Einstellungen'; +$a->strings['Disable Archive selector on profile wall'] = 'Deaktiviere Archiv-Auswahl auf deiner Pinnwand'; +$a->strings['Submit'] = 'Senden'; diff --git a/notimeline/lang/eo/strings.php b/notimeline/lang/eo/strings.php new file mode 100644 index 0000000..9d890e2 --- /dev/null +++ b/notimeline/lang/eo/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = "No Timeline agordojn ĝisdatigita."; +$a->strings["No Timeline Settings"] = "No Timeline Agordoj"; +$a->strings["Disable Archive selector on profile wall"] = "Malaktivigi la Arkivo elektilo sur la profilmuro"; +$a->strings["Submit"] = "Sendi"; diff --git a/notimeline/lang/es/messages.po b/notimeline/lang/es/messages.po new file mode 100644 index 0000000..86e5613 --- /dev/null +++ b/notimeline/lang/es/messages.po @@ -0,0 +1,33 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Albert, 2016 +# Senex Petrovic , 2021 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-04-06 01:47+0000\n" +"Last-Translator: Senex Petrovic \n" +"Language-Team: Spanish (http://www.transifex.com/Friendica/friendica/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: notimeline.php:48 +msgid "No Timeline Settings" +msgstr "No hay ajustes de Línea de Tiempo" + +#: notimeline.php:50 +msgid "Disable Archive selector on profile wall" +msgstr "Deshabilitar el selector Archivo en el muro de perfil" + +#: notimeline.php:56 +msgid "Save Settings" +msgstr "Grabar ajustes" diff --git a/notimeline/lang/es/strings.php b/notimeline/lang/es/strings.php new file mode 100644 index 0000000..e07aa1c --- /dev/null +++ b/notimeline/lang/es/strings.php @@ -0,0 +1,10 @@ +strings['No Timeline Settings'] = 'No hay ajustes de Línea de Tiempo'; +$a->strings['Disable Archive selector on profile wall'] = 'Deshabilitar el selector Archivo en el muro de perfil'; +$a->strings['Save Settings'] = 'Grabar ajustes'; diff --git a/notimeline/lang/fi-fi/messages.po b/notimeline/lang/fi-fi/messages.po new file mode 100644 index 0000000..0301e7d --- /dev/null +++ b/notimeline/lang/fi-fi/messages.po @@ -0,0 +1,37 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Kris, 2018 +# Kris, 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2018-04-08 16:10+0000\n" +"Last-Translator: Kris\n" +"Language-Team: Finnish (Finland) (http://www.transifex.com/Friendica/friendica/language/fi_FI/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi_FI\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "No Timeline -asetukset päivitetty" + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "No Timeline -asetukset" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "" + +#: notimeline.php:64 +msgid "Submit" +msgstr "Lähetä" diff --git a/notimeline/lang/fi-fi/strings.php b/notimeline/lang/fi-fi/strings.php new file mode 100644 index 0000000..08f4e7a --- /dev/null +++ b/notimeline/lang/fi-fi/strings.php @@ -0,0 +1,10 @@ +strings['No Timeline settings updated.'] = 'No Timeline -asetukset päivitetty'; +$a->strings['No Timeline Settings'] = 'No Timeline -asetukset'; +$a->strings['Submit'] = 'Lähetä'; diff --git a/notimeline/lang/fr/strings.php b/notimeline/lang/fr/strings.php new file mode 100644 index 0000000..70b6d96 --- /dev/null +++ b/notimeline/lang/fr/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = "Pas de mise à jour de paramètres du calendrier."; +$a->strings["No Timeline Settings"] = "Pas de paramètres de calendrier"; +$a->strings["Disable Archive selector on profile wall"] = "Désactiver le sélecteur d'archives sur le mur"; +$a->strings["Submit"] = "Envoyer"; diff --git a/notimeline/lang/hu/messages.po b/notimeline/lang/hu/messages.po new file mode 100644 index 0000000..7a59b94 --- /dev/null +++ b/notimeline/lang/hu/messages.po @@ -0,0 +1,32 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Balázs Úr, 2020-2021 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-01 18:15+0100\n" +"PO-Revision-Date: 2021-03-25 22:50+0000\n" +"Last-Translator: Balázs Úr\n" +"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: notimeline.php:48 +msgid "No Timeline Settings" +msgstr "Nincs idővonal beállításai" + +#: notimeline.php:50 +msgid "Disable Archive selector on profile wall" +msgstr "Archiválás kiválasztó letiltása a profil falán" + +#: notimeline.php:56 +msgid "Save Settings" +msgstr "Beállítások mentése" diff --git a/notimeline/lang/hu/strings.php b/notimeline/lang/hu/strings.php new file mode 100644 index 0000000..3c12888 --- /dev/null +++ b/notimeline/lang/hu/strings.php @@ -0,0 +1,10 @@ +strings['No Timeline Settings'] = 'Nincs idővonal beállításai'; +$a->strings['Disable Archive selector on profile wall'] = 'Archiválás kiválasztó letiltása a profil falán'; +$a->strings['Save Settings'] = 'Beállítások mentése'; diff --git a/notimeline/lang/is/strings.php b/notimeline/lang/is/strings.php new file mode 100644 index 0000000..9100a7d --- /dev/null +++ b/notimeline/lang/is/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = ""; +$a->strings["No Timeline Settings"] = ""; +$a->strings["Disable Archive selector on profile wall"] = ""; +$a->strings["Submit"] = "Senda inn"; diff --git a/notimeline/lang/it/messages.po b/notimeline/lang/it/messages.po new file mode 100644 index 0000000..c42ec25 --- /dev/null +++ b/notimeline/lang/it/messages.po @@ -0,0 +1,36 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# fabrixxm , 2014-2015 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2017-09-20 06:08+0000\n" +"Last-Translator: fabrixxm \n" +"Language-Team: Italian (http://www.transifex.com/Friendica/friendica/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "Impostazioni \"No Timeline\" aggiornate." + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "Impostazioni \"No Timeline\"" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "Disabilita il selettore dell'archivio sulla pagina del profilo" + +#: notimeline.php:64 +msgid "Submit" +msgstr "Invia" diff --git a/notimeline/lang/it/strings.php b/notimeline/lang/it/strings.php new file mode 100644 index 0000000..fb82692 --- /dev/null +++ b/notimeline/lang/it/strings.php @@ -0,0 +1,11 @@ +strings['No Timeline settings updated.'] = 'Impostazioni "No Timeline" aggiornate.'; +$a->strings['No Timeline Settings'] = 'Impostazioni "No Timeline"'; +$a->strings['Disable Archive selector on profile wall'] = 'Disabilita il selettore dell\'archivio sulla pagina del profilo'; +$a->strings['Submit'] = 'Invia'; diff --git a/notimeline/lang/nb-no/strings.php b/notimeline/lang/nb-no/strings.php new file mode 100644 index 0000000..d330f5a --- /dev/null +++ b/notimeline/lang/nb-no/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = ""; +$a->strings["No Timeline Settings"] = ""; +$a->strings["Disable Archive selector on profile wall"] = ""; +$a->strings["Submit"] = "Lagre"; diff --git a/notimeline/lang/nl/messages.po b/notimeline/lang/nl/messages.po new file mode 100644 index 0000000..7b7589b --- /dev/null +++ b/notimeline/lang/nl/messages.po @@ -0,0 +1,36 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Jeroen De Meerleer , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2018-08-24 13:48+0000\n" +"Last-Translator: Jeroen De Meerleer \n" +"Language-Team: Dutch (http://www.transifex.com/Friendica/friendica/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "Geen tijdlijn instellingen opgeslagen" + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "No Timeline instellingen" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "" + +#: notimeline.php:64 +msgid "Submit" +msgstr "" diff --git a/notimeline/lang/nl/strings.php b/notimeline/lang/nl/strings.php new file mode 100644 index 0000000..256b57b --- /dev/null +++ b/notimeline/lang/nl/strings.php @@ -0,0 +1,9 @@ +strings['No Timeline settings updated.'] = 'Geen tijdlijn instellingen opgeslagen'; +$a->strings['No Timeline Settings'] = 'No Timeline instellingen'; diff --git a/notimeline/lang/pl/messages.po b/notimeline/lang/pl/messages.po new file mode 100644 index 0000000..3e1b37e --- /dev/null +++ b/notimeline/lang/pl/messages.po @@ -0,0 +1,36 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Waldemar Stoczkowski , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2018-03-31 19:17+0000\n" +"Last-Translator: Waldemar Stoczkowski \n" +"Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "Nie zaktualizowano ustawień osi czasu." + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "Brak ustawień osi czasu" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "Wyłącz selektor Archiwum na ścianie profilowej" + +#: notimeline.php:64 +msgid "Submit" +msgstr "Wyślij" diff --git a/notimeline/lang/pl/strings.php b/notimeline/lang/pl/strings.php new file mode 100644 index 0000000..d488baf --- /dev/null +++ b/notimeline/lang/pl/strings.php @@ -0,0 +1,11 @@ +=2 && $n%10<=4) && ($n%100<12 || $n%100>14)) { return 1; } else if ($n!=1 && ($n%10>=0 && $n%10<=1) || ($n%10>=5 && $n%10<=9) || ($n%100>=12 && $n%100<=14)) { return 2; } else { return 3; } +}} +$a->strings['No Timeline settings updated.'] = 'Nie zaktualizowano ustawień osi czasu.'; +$a->strings['No Timeline Settings'] = 'Brak ustawień osi czasu'; +$a->strings['Disable Archive selector on profile wall'] = 'Wyłącz selektor Archiwum na ścianie profilowej'; +$a->strings['Submit'] = 'Wyślij'; diff --git a/notimeline/lang/pt-br/strings.php b/notimeline/lang/pt-br/strings.php new file mode 100644 index 0000000..bf7560b --- /dev/null +++ b/notimeline/lang/pt-br/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = ""; +$a->strings["No Timeline Settings"] = ""; +$a->strings["Disable Archive selector on profile wall"] = ""; +$a->strings["Submit"] = "Enviar"; diff --git a/notimeline/lang/ro/messages.po b/notimeline/lang/ro/messages.po new file mode 100644 index 0000000..d89a14e --- /dev/null +++ b/notimeline/lang/ro/messages.po @@ -0,0 +1,36 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# Doru DEACONU , 2014 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2014-11-27 14:16+0000\n" +"Last-Translator: Doru DEACONU \n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/projects/p/friendica/language/ro_RO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ro_RO\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "Configurările pentru Lipsă Cronologie, au fost actualizate." + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "Configurări pentru Lipsă Cronologie" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "Dezactivare selector Arhivă din peretele de profil" + +#: notimeline.php:64 +msgid "Submit" +msgstr "Trimite" diff --git a/notimeline/lang/ro/strings.php b/notimeline/lang/ro/strings.php new file mode 100644 index 0000000..c518446 --- /dev/null +++ b/notimeline/lang/ro/strings.php @@ -0,0 +1,11 @@ +19)||(($n%100==0)&&($n!=0)))) { return 2; } else { return 1; } +}} +$a->strings['No Timeline settings updated.'] = 'Configurările pentru Lipsă Cronologie, au fost actualizate.'; +$a->strings['No Timeline Settings'] = 'Configurări pentru Lipsă Cronologie'; +$a->strings['Disable Archive selector on profile wall'] = 'Dezactivare selector Arhivă din peretele de profil'; +$a->strings['Submit'] = 'Trimite'; diff --git a/notimeline/lang/ru/strings.php b/notimeline/lang/ru/strings.php new file mode 100644 index 0000000..e0d0a9e --- /dev/null +++ b/notimeline/lang/ru/strings.php @@ -0,0 +1,6 @@ +strings["No Timeline settings updated."] = ""; +$a->strings["No Timeline Settings"] = ""; +$a->strings["Disable Archive selector on profile wall"] = ""; +$a->strings["Submit"] = "Подтвердить"; diff --git a/notimeline/lang/sv/strings.php b/notimeline/lang/sv/strings.php new file mode 100644 index 0000000..3ec569a --- /dev/null +++ b/notimeline/lang/sv/strings.php @@ -0,0 +1,3 @@ +strings["Submit"] = "Spara"; diff --git a/notimeline/lang/zh-cn/messages.po b/notimeline/lang/zh-cn/messages.po new file mode 100644 index 0000000..ed7edb6 --- /dev/null +++ b/notimeline/lang/zh-cn/messages.po @@ -0,0 +1,36 @@ +# ADDON notimeline +# Copyright (C) +# This file is distributed under the same license as the Friendica notimeline addon package. +# +# +# Translators: +# 朱陈锬 , 2018 +msgid "" +msgstr "" +"Project-Id-Version: friendica\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-02-27 05:01-0500\n" +"PO-Revision-Date: 2018-06-16 09:44+0000\n" +"Last-Translator: 朱陈锬 \n" +"Language-Team: Chinese (China) (http://www.transifex.com/Friendica/friendica/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: notimeline.php:32 +msgid "No Timeline settings updated." +msgstr "时间轴设置未更新。" + +#: notimeline.php:56 +msgid "No Timeline Settings" +msgstr "无时间轴设置" + +#: notimeline.php:58 +msgid "Disable Archive selector on profile wall" +msgstr "" + +#: notimeline.php:64 +msgid "Submit" +msgstr "提交" diff --git a/notimeline/lang/zh-cn/strings.php b/notimeline/lang/zh-cn/strings.php new file mode 100644 index 0000000..61fa040 --- /dev/null +++ b/notimeline/lang/zh-cn/strings.php @@ -0,0 +1,10 @@ +strings['No Timeline settings updated.'] = '时间轴设置未更新。'; +$a->strings['No Timeline Settings'] = '无时间轴设置'; +$a->strings['Submit'] = '提交'; diff --git a/notimeline/notimeline.css b/notimeline/notimeline.css new file mode 100644 index 0000000..5440337 --- /dev/null +++ b/notimeline/notimeline.css @@ -0,0 +1,14 @@ + + + +#notimeline-label { + float: left; + width: 200px; + margin-bottom: 25px; +} + +#notimeline-checkbox { + float: left; +} + + diff --git a/notimeline/notimeline.php b/notimeline/notimeline.php new file mode 100644 index 0000000..b99501c --- /dev/null +++ b/notimeline/notimeline.php @@ -0,0 +1,57 @@ + + * Status: Unsupported + * + */ +use Friendica\Core\Hook; +use Friendica\DI; + +function notimeline_install() +{ + Hook::register('addon_settings', 'addon/notimeline/notimeline.php', 'notimeline_settings'); + Hook::register('addon_settings_post', 'addon/notimeline/notimeline.php', 'notimeline_settings_post'); +} + +function notimeline_settings_post($a, $post) +{ + if (!local_user() || empty($_POST['notimeline-submit'])) { + return; + } + + DI::pConfig()->set(local_user(), 'system', 'no_wall_archive_widget', intval($_POST['notimeline'])); +} + +function notimeline_settings(&$a, &$s) +{ + if (! local_user()) { + return; + } + + /* Add our stylesheet to the page so we can make our settings look nice */ + + DI::page()['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variable */ + + $notimeline = DI::pConfig()->get(local_user(), 'system', 'no_wall_archive_widget', false); + + $notimeline_checked = (($notimeline) ? ' checked="checked" ' : ''); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . DI::l10n()->t('No Timeline Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; +} From 8be6275d433cfd1867f90bcc61ed87ce3c61b1c9 Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 27 Nov 2021 17:07:48 +0100 Subject: [PATCH 4/4] deprecated the XMPP addon --- xmpp/converse/CONTRIBUTING.rst | 37 + xmpp/converse/README.rst | 110 + xmpp/converse/builds/converse.min.js | 237 + xmpp/converse/builds/locales.js | 11108 +++++++++++++++++ xmpp/converse/builds/templates.js | 1150 ++ xmpp/converse/css/converse.css | 2041 +++ xmpp/converse/css/converse.min.css | 30 + xmpp/converse/css/images/arrow.svg | 4 + xmpp/converse/css/images/bgbl.svg | 26 + xmpp/converse/css/images/bgtr.svg | 26 + xmpp/converse/css/images/bitcoin_qr_code.png | Bin 0 -> 1098 bytes xmpp/converse/css/images/dark-arrow.svg | 4 + xmpp/converse/css/images/header.jpg | Bin 0 -> 30117 bytes xmpp/converse/css/images/overlay.png | Bin 0 -> 40851 bytes xmpp/converse/css/images/user.png | Bin 0 -> 950 bytes xmpp/converse/css/theme.css | 341 + xmpp/converse/fonticons/Read Me.txt | 5 + xmpp/converse/fonticons/demo-files/demo.css | 150 + xmpp/converse/fonticons/demo-files/demo.js | 30 + xmpp/converse/fonticons/demo.html | 1511 +++ xmpp/converse/fonticons/fonts/icomoon.eot | Bin 0 -> 18600 bytes xmpp/converse/fonticons/fonts/icomoon.svg | 102 + xmpp/converse/fonticons/fonts/icomoon.ttf | Bin 0 -> 18436 bytes xmpp/converse/fonticons/fonts/icomoon.woff | Bin 0 -> 18512 bytes xmpp/converse/fonticons/selection.json | 2641 ++++ xmpp/converse/fonticons/style.css | 301 + xmpp/converse/sounds/README | 5 + xmpp/converse/sounds/msg_received.mp3 | Bin 0 -> 13716 bytes xmpp/converse/sounds/msg_received.ogg | Bin 0 -> 15405 bytes xmpp/lang/C/messages.po | 49 + xmpp/lang/ar/messages.po | 53 + xmpp/lang/ar/strings.php | 9 + xmpp/lang/cs/messages.po | 61 + xmpp/lang/cs/strings.php | 16 + xmpp/lang/de/messages.po | 58 + xmpp/lang/de/strings.php | 14 + xmpp/lang/en-us/messages.po | 61 + xmpp/lang/en-us/strings.php | 16 + xmpp/lang/es/messages.po | 56 + xmpp/lang/es/strings.php | 14 + xmpp/lang/fi-fi/messages.po | 58 + xmpp/lang/fi-fi/strings.php | 12 + xmpp/lang/fr/messages.po | 56 + xmpp/lang/fr/strings.php | 14 + xmpp/lang/hu/messages.po | 57 + xmpp/lang/hu/strings.php | 14 + xmpp/lang/it/messages.po | 61 + xmpp/lang/it/strings.php | 16 + xmpp/lang/nl/messages.po | 61 + xmpp/lang/nl/strings.php | 16 + xmpp/lang/pl/messages.po | 61 + xmpp/lang/pl/strings.php | 16 + xmpp/lang/pt-br/messages.po | 61 + xmpp/lang/pt-br/strings.php | 16 + xmpp/lang/ru/messages.po | 62 + xmpp/lang/ru/strings.php | 16 + xmpp/lang/zh-cn/messages.po | 58 + xmpp/lang/zh-cn/strings.php | 16 + xmpp/templates/admin.tpl | 3 + xmpp/xmpp.css | 10 + xmpp/xmpp.php | 213 + 61 files changed, 21163 insertions(+) create mode 100644 xmpp/converse/CONTRIBUTING.rst create mode 100644 xmpp/converse/README.rst create mode 100644 xmpp/converse/builds/converse.min.js create mode 100644 xmpp/converse/builds/locales.js create mode 100644 xmpp/converse/builds/templates.js create mode 100644 xmpp/converse/css/converse.css create mode 100644 xmpp/converse/css/converse.min.css create mode 100644 xmpp/converse/css/images/arrow.svg create mode 100644 xmpp/converse/css/images/bgbl.svg create mode 100644 xmpp/converse/css/images/bgtr.svg create mode 100644 xmpp/converse/css/images/bitcoin_qr_code.png create mode 100644 xmpp/converse/css/images/dark-arrow.svg create mode 100644 xmpp/converse/css/images/header.jpg create mode 100644 xmpp/converse/css/images/overlay.png create mode 100644 xmpp/converse/css/images/user.png create mode 100644 xmpp/converse/css/theme.css create mode 100644 xmpp/converse/fonticons/Read Me.txt create mode 100644 xmpp/converse/fonticons/demo-files/demo.css create mode 100644 xmpp/converse/fonticons/demo-files/demo.js create mode 100644 xmpp/converse/fonticons/demo.html create mode 100644 xmpp/converse/fonticons/fonts/icomoon.eot create mode 100644 xmpp/converse/fonticons/fonts/icomoon.svg create mode 100644 xmpp/converse/fonticons/fonts/icomoon.ttf create mode 100644 xmpp/converse/fonticons/fonts/icomoon.woff create mode 100644 xmpp/converse/fonticons/selection.json create mode 100644 xmpp/converse/fonticons/style.css create mode 100644 xmpp/converse/sounds/README create mode 100644 xmpp/converse/sounds/msg_received.mp3 create mode 100644 xmpp/converse/sounds/msg_received.ogg create mode 100644 xmpp/lang/C/messages.po create mode 100644 xmpp/lang/ar/messages.po create mode 100644 xmpp/lang/ar/strings.php create mode 100644 xmpp/lang/cs/messages.po create mode 100644 xmpp/lang/cs/strings.php create mode 100644 xmpp/lang/de/messages.po create mode 100644 xmpp/lang/de/strings.php create mode 100644 xmpp/lang/en-us/messages.po create mode 100644 xmpp/lang/en-us/strings.php create mode 100644 xmpp/lang/es/messages.po create mode 100644 xmpp/lang/es/strings.php create mode 100644 xmpp/lang/fi-fi/messages.po create mode 100644 xmpp/lang/fi-fi/strings.php create mode 100644 xmpp/lang/fr/messages.po create mode 100644 xmpp/lang/fr/strings.php create mode 100644 xmpp/lang/hu/messages.po create mode 100644 xmpp/lang/hu/strings.php create mode 100644 xmpp/lang/it/messages.po create mode 100644 xmpp/lang/it/strings.php create mode 100644 xmpp/lang/nl/messages.po create mode 100644 xmpp/lang/nl/strings.php create mode 100644 xmpp/lang/pl/messages.po create mode 100644 xmpp/lang/pl/strings.php create mode 100644 xmpp/lang/pt-br/messages.po create mode 100644 xmpp/lang/pt-br/strings.php create mode 100644 xmpp/lang/ru/messages.po create mode 100644 xmpp/lang/ru/strings.php create mode 100644 xmpp/lang/zh-cn/messages.po create mode 100644 xmpp/lang/zh-cn/strings.php create mode 100644 xmpp/templates/admin.tpl create mode 100644 xmpp/xmpp.css create mode 100644 xmpp/xmpp.php diff --git a/xmpp/converse/CONTRIBUTING.rst b/xmpp/converse/CONTRIBUTING.rst new file mode 100644 index 0000000..49d7193 --- /dev/null +++ b/xmpp/converse/CONTRIBUTING.rst @@ -0,0 +1,37 @@ +======================= +Contribution Guidelines +======================= + +Thanks for contributing to `Converse.js `_. + +Support questions +================= +Please ask support and setup questions on the mailing list: conversejs@librelist.com + +The issue tracker is only for bugs (i.e. issues) and feature requests. + +Contributing Code +================= +Please follow the usual github workflow. Create your own local fork of this repository, +make your changes and then submit a pull request. + +Before submitting a pull request +-------------------------------- + +Please read the `style guide `_ and make sure that your code follows it. + +Add tests for your bugfix or feature +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Add a test for any bug fixed or feature added. We use Jasmine +for testing. + +Take a look at `tests.html `_ +and the `spec files `_ +to see how tests are implemented. + +Check that the tests pass +~~~~~~~~~~~~~~~~~~~~~~~~~ +Check that all tests complete sucessfully. + +Run ``make check`` in your terminal or open `tests.html `_ +in your browser. diff --git a/xmpp/converse/README.rst b/xmpp/converse/README.rst new file mode 100644 index 0000000..96b61a7 --- /dev/null +++ b/xmpp/converse/README.rst @@ -0,0 +1,110 @@ +=========== +converse.js +=========== + +.. figure:: https://api.travis-ci.org/jcbrand/converse.js.png?branch=master + :alt: Build Status + +`Converse.js `_ is a web based `XMPP/Jabber `_ +instant messaging client. + +It enables you to add chat functionality to your website, independent of any +specific backend. You will however need an XMPP server to connect to, either +your own, or a public one. + +-------- +Features +-------- + +It has the following features: + +* Single-user chat +* Multi-user chat rooms `XEP 45 `_ +* Direct invitations to chat rooms `XEP 249 `_ +* vCard support `XEP 54 `_ +* Service discovery `XEP 30 `_ +* In-band registration `XEP 77 `_ +* Contact rosters and groups +* Contact subscriptions +* Roster item exchange `XEP 144 `_ +* Chat statuses (online, busy, away, offline) +* Custom status messages +* Typing and state notifications `XEP 85 `_ +* Messages appear in all connnected chat clients `XEP 280 `_ +* Third person "/me" messages `XEP 245 `_ +* XMPP Ping `XEP 199 `_ +* Server-side archiving of messages `XEP 313 `_ +* Client state indication `XEP 352 `_ +* Off-the-record encryption +* Translated into 16 languages + +----------- +Screencasts +----------- + +* `In a static HTML page`_. Here we chat to external XMPP accounts on Jabber.org and Gmail. +* `Integrated into a Plone site`_ via collective.xmpp.chat. +* `Off-the-record encryption `_ in Converse 0.7. + +Integration into other frameworks +--------------------------------- + +* `Plone `_: + `collective.xmpp.chat `_ is an add-on for Plone that uses *Converse.js*. Together with `collective.xmpp.core `_, it provides for single-signon-support (SSO) and also enables you to manually or automatically register your Plone users onto your XMPP server. +* `Django `_: + `django-conversejs `_ is an app that makes it easer to integrate *Converse.js* into Django. + `django-xmpp `_ adds XMPP chat integration with converse.js by letting Ejabberd authenticate against your Django site. +* `Roundcube `_: + `roundcube-converse.js-xmpp-plugin `_ is an addon for Roundcube Webmail. +* `Wordpress `_: + `ConverseJS `_ +* `Patternslib `_: + `patterns.converse `_ provides a Patternslib pattern for Converse.js +* `Alfresco `_: + `alfresco-js-chat-share`_: `alfresco-js-chat-share `_ + +---- +Demo +---- + +A live demo is available at ``_ + +----- +Tests +----- + +We use behavior-driven tests written with `jasmine.js `_. + +Open `tests.html `_ +in your browser, and the tests will run automatically. + +------------- +Documentation +------------- + +The developer/integrator documentation can be found at ``_. + +------- +Licence +------- + +``Converse.js`` is released under the `Mozilla Public License (MPL) `_. + +------- +Support +------- + +For support queries and discussions, please join the mailing list: conversejs@librelist.com + +Also take a look at the `mailing list archives `_. + +Issues can be logged on the `Github issue tracker `_. + +---------------------------------- +Donations and tips are appreciated +---------------------------------- + +* Bitcoin: 16FsPqE9DhFTryxrUenpsGX4LJ1TPu8GqS + +.. _`Integrated into a Plone site`: http://opkode.com/media/blog/instant-messaging-for-plone-with-javascript-and-xmpp +.. _`In a static HTML page`: http://opkode.com/media/blog/2013/04/02/converse.js-xmpp-instant-messaging-with-javascript diff --git a/xmpp/converse/builds/converse.min.js b/xmpp/converse/builds/converse.min.js new file mode 100644 index 0000000..7ac8310 --- /dev/null +++ b/xmpp/converse/builds/converse.min.js @@ -0,0 +1,237 @@ +/** + * @license almond 0.3.1 Copyright (c) 2011-2014, The Dojo Foundation All Rights Reserved. + * Available via the MIT or new BSD license. + * see: http://github.com/jrburke/almond for details + */ + +/*! + * jQuery JavaScript Library v1.11.0 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-01-23T21:02Z + */ + +/*! + * Sizzle CSS Selector Engine v1.10.16 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2014-01-13 + */ + +// Underscore.js 1.8.3 +// http://underscorejs.org +// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +/** + * @license RequireJS text 2.0.14 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved. + * Available via the MIT or new BSD license. + * see: http://github.com/requirejs/text for details + */ + +// RequireJS UnderscoreJS template addon +// http://github.com/jfparadis/requirejs-tpl +// +// An alternative to http://github.com/ZeeAgency/requirejs-tpl +// +// Using UnderscoreJS micro-templates at http://underscorejs.org/#template +// Using and RequireJS text.js at http://requirejs.org/docs/api.html#text +// @author JF Paradis +// @version 0.0.2 +// +// Released under the MIT license +// +// Usage: +// require(['backbone', 'tpl!mytemplate'], function (Backbone, mytemplate) { +// return Backbone.View.extend({ +// initialize: function(){ +// this.render(); +// }, +// render: function(){ +// this.$el.html(mytemplate({message: 'hello'})); +// }); +// }); +// +// Configuration: (optional) +// require.config({ +// tpl: { +// extension: '.tpl' // default = '.html' +// } +// }); + +/* +jed.js +v0.5.0beta + +https://github.com/SlexAxton/Jed +----------- +A gettext compatible i18n library for modern JavaScript Applications + +by Alex Sexton - AlexSexton [at] gmail - @SlexAxton +WTFPL license for use +Dojo CLA for contributions + +Jed offers the entire applicable GNU gettext spec'd set of +functions, but also offers some nicer wrappers around them. +The api for gettext was written for a language with no function +overloading, so Jed allows a little more of that. + +Many thanks to Joshua I. Miller - unrtst@cpan.org - who wrote +gettext.js back in 2008. I was able to vet a lot of my ideas +against his. I also made sure Jed passed against his tests +in order to offer easy upgrades -- jsgettext.berlios.de +*/ + +// Underscore 1.3.0 was used to port and is licensed + +/** + sprintf() for JavaScript 0.7-beta1 + http://www.diveintojavascript.com/projects/javascript-sprintf + + Copyright (c) Alexandru Marasteanu + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of sprintf() for JavaScript nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL Alexandru Marasteanu BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*! + * jQuery Browser Plugin 0.0.8 + * https://github.com/gabceb/jquery-browser-plugin + * + * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors + * http://jquery.org/license + * + * Modifications Copyright 2015 Gabriel Cebrian + * https://github.com/gabceb + * + * Released under the MIT license + * + * Date: 05-07-2015 + */ + +/* +CryptoJS v3.1.2 +code.google.com/p/crypto-js +(c) 2009-2013 by Jeff Mott. All rights reserved. +code.google.com/p/crypto-js/wiki/License +*/ + +/*! + * EventEmitter v4.2.3 - git.io/ee + * Oliver Caldwell + * MIT license + * @preserve + */ + +/*! + + otr.js v0.2.12 - 2014-04-15 + (c) 2014 - Arlo Breault + Freely distributed under the MPL v2.0 license. + + This file is concatenated for the browser. + Please see: https://github.com/arlolra/otr + +*/ + +//! moment.js +//! version : 2.10.6 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +/* + * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined + * in FIPS PUB 180-1 + * Version 2.1a Copyright Paul Johnston 2000 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for details. + */ + +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + This program is distributed under the terms of the MIT license. + Please see the LICENSE file for details. + + Copyright 2006-2008, OGG, LLC +*/ + +/* + Copyright 2010, François de Metz +*/ + +/* +* Based on Ping Strophejs plugins (https://github.com/metajack/strophejs-plugins/tree/master/ping) +* This addon is distributed under the terms of the MIT licence. +* Please see the LICENCE file for details. +* +* Copyright (c) Markus Kohlhase, 2010 +* Refactored by Pavel Lang, 2011 +*/ + +// (c) 2010-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Backbone may be freely distributed under the MIT license. +// For all details and documentation: +// http://backbonejs.org + +/*! + * Backbone.Overview + * + * Copyright (c) 2014, JC Brand + * Licensed under the Mozilla Public License (MPL) + */ + +/*! + * typeahead.js 0.10.5 + * https://github.com/twitter/typeahead.js + * Copyright 2013-2014 Twitter, Inc. and other contributors; Licensed MIT + */ + +// Converse.js (A browser based XMPP chat client) +// http://conversejs.org +// +// Copyright (c) 2012-2015, Jan-Carel Brand +// Licensed under the Mozilla Public License (MPLv2) +// + +var requirejs,require,define;(function(e){function h(e,t){return f.call(e,t)}function p(e,t){var n,r,i,s,o,a,f,l,h,p,d,v=t&&t.split("/"),m=u.map,g=m&&m["*"]||{};if(e&&e.charAt(0)===".")if(t){e=e.split("/"),o=e.length-1,u.nodeIdCompat&&c.test(e[o])&&(e[o]=e[o].replace(c,"")),e=v.slice(0,v.length-1).concat(e);for(h=0;h0&&(e.splice(h-1,2),h-=2)}}e=e.join("/")}else e.indexOf("./")===0&&(e=e.substring(2));if((v||g)&&m){n=e.split("/");for(h=n.length;h>0;h-=1){r=n.slice(0,h).join("/");if(v)for(p=v.length;p>0;p-=1){i=m[v.slice(0,p).join("/")];if(i){i=i[r];if(i){s=i,a=h;break}}}if(s)break;!f&&g&&g[r]&&(f=g[r],l=h)}!s&&f&&(s=f,a=l),s&&(n.splice(0,a,s),e=n.join("/"))}return e}function d(t,r){return function(){var i=l.call(arguments,0);return typeof i[0]!="string"&&i.length===1&&i.push(null),n.apply(e,i.concat([t,r]))}}function v(e){return function(t){return p(t,e)}}function m(e){return function(t){s[e]=t}}function g(n){if(h(o,n)){var r=o[n];delete o[n],a[n]=!0,t.apply(e,r)}if(!h(s,n)&&!h(a,n))throw new Error("No "+n);return s[n]}function y(e){var t,n=e?e.indexOf("!"):-1;return n>-1&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function b(e){return function(){return u&&u.config&&u.config[e]||{}}}var t,n,r,i,s={},o={},u={},a={},f=Object.prototype.hasOwnProperty,l=[].slice,c=/\.js$/;r=function(e,t){var n,r=y(e),i=r[0];return e=r[1],i&&(i=p(i,t),n=g(i)),i?n&&n.normalize?e=n.normalize(e,v(t)):e=p(e,t):(e=p(e,t),r=y(e),i=r[0],e=r[1],i&&(n=g(i))),{f:i?i+"!"+e:e,n:e,pr:i,p:n}},i={require:function(e){return d(e)},exports:function(e){var t=s[e];return typeof t!="undefined"?t:s[e]={}},module:function(e){return{id:e,uri:"",exports:s[e],config:b(e)}}},t=function(t,n,u,f){var l,c,p,v,y,b=[],w=typeof u,E;f=f||t;if(w==="undefined"||w==="function"){n=!n.length&&u.length?["require","exports","module"]:n;for(y=0;y0&&t-1 in e}function x(e,t,n){if(p.isFunction(t))return p.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return p.grep(e,function(e){return e===t!==n});if(typeof t=="string"){if(S.test(t))return p.filter(t,e,n);t=p.filter(t,e)}return p.grep(e,function(e){return p.inArray(e,t)>=0!==n})}function O(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function D(e){var t=_[e]={};return p.each(e.match(M)||[],function(e,n){t[n]=!0}),t}function H(){N.addEventListener?(N.removeEventListener("DOMContentLoaded",B,!1),e.removeEventListener("load",B,!1)):(N.detachEvent("onreadystatechange",B),e.detachEvent("onload",B))}function B(){if(N.addEventListener||event.type==="load"||N.readyState==="complete")H(),p.ready()}function R(e,t,n){if(n===undefined&&e.nodeType===1){var r="data-"+t.replace(q,"-$1").toLowerCase();n=e.getAttribute(r);if(typeof n=="string"){try{n=n==="true"?!0:n==="false"?!1:n==="null"?null:+n+""===n?+n:I.test(n)?p.parseJSON(n):n}catch(i){}p.data(e,t,n)}else n=undefined}return n}function U(e){var t;for(t in e){if(t==="data"&&p.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function z(e,t,r,i){if(!p.acceptData(e))return;var s,o,u=p.expando,a=e.nodeType,f=a?p.cache:e,l=a?e[u]:e[u]&&u;if((!l||!f[l]||!i&&!f[l].data)&&r===undefined&&typeof t=="string")return;l||(a?l=e[u]=n.pop()||p.guid++:l=u),f[l]||(f[l]=a?{}:{toJSON:p.noop});if(typeof t=="object"||typeof t=="function")i?f[l]=p.extend(f[l],t):f[l].data=p.extend(f[l].data,t);return o=f[l],i||(o.data||(o.data={}),o=o.data),r!==undefined&&(o[p.camelCase(t)]=r),typeof t=="string"?(s=o[t],s==null&&(s=o[p.camelCase(t)])):s=o,s}function W(e,t,n){if(!p.acceptData(e))return;var r,i,s=e.nodeType,o=s?p.cache:e,u=s?e[p.expando]:p.expando;if(!o[u])return;if(t){r=n?o[u]:o[u].data;if(r){p.isArray(t)?t=t.concat(p.map(t,p.camelCase)):t in r?t=[t]:(t=p.camelCase(t),t in r?t=[t]:t=t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!U(r):!p.isEmptyObject(r))return}}if(!n){delete o[u].data;if(!U(o[u]))return}s?p.cleanData([e],!0):c.deleteExpando||o!=o.window?delete o[u]:o[u]=null}function tt(){return!0}function nt(){return!1}function rt(){try{return N.activeElement}catch(e){}}function it(e){var t=st.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Et(e,t){var n,r,i=0,s=typeof e.getElementsByTagName!==j?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==j?e.querySelectorAll(t||"*"):undefined;if(!s)for(s=[],n=e.childNodes||e;(r=n[i])!=null;i++)!t||p.nodeName(r,t)?s.push(r):p.merge(s,Et(r,t));return t===undefined||t&&p.nodeName(e,t)?p.merge([e],s):s}function St(e){K.test(e.type)&&(e.defaultChecked=e.checked)}function xt(e,t){return p.nodeName(e,"table")&&p.nodeName(t.nodeType!==11?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Tt(e){return e.type=(p.find.attr(e,"type")!==null)+"/"+e.type,e}function Nt(e){var t=mt.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Ct(e,t){var n,r=0;for(;(n=e[r])!=null;r++)p._data(n,"globalEval",!t||p._data(t[r],"globalEval"))}function kt(e,t){if(t.nodeType!==1||!p.hasData(e))return;var n,r,i,s=p._data(e),o=p._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r")).appendTo(t.documentElement),t=(At[0].contentWindow||At[0].contentDocument).document,t.write(),t.close(),n=Mt(e,t),At.detach();Ot[e]=n}return n}function Ft(e,t){return{get:function(){var n=e();if(n==null)return;if(n){delete this.get;return}return(this.get=t).apply(this,arguments)}}}function $t(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Vt.length;while(i--){t=Vt[i]+n;if(t in e)return t}return r}function Jt(e,t){var n,r,i,s=[],o=0,u=e.length;for(;o=0&&n=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||p.type(e)!=="object"||e.nodeType||p.isWindow(e))return!1;try{if(e.constructor&&!f.call(e,"constructor")&&!f.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(c.ownLast)for(t in e)return f.call(e,t);for(t in e);return t===undefined||f.call(e,t)},type:function(e){return e==null?e+"":typeof e=="object"||typeof e=="function"?u[a.call(e)]||"object":typeof e},globalEval:function(t){t&&p.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(v,"ms-").replace(m,g)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,s=e.length,o=y(e);if(n)if(o)for(;ir.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function st(e){return e[y]=!0,e}function ot(e){var t=c.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ut(e,t){var n=e.split("|"),i=e.length;while(i--)r.attrHandle[n[i]]=t}function at(e,t){var n=t&&e,r=n&&e.nodeType===1&&t.nodeType===1&&(~t.sourceIndex||k)-(~e.sourceIndex||k);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function ct(e){return st(function(t){return t=+t,st(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ht(e){return e&&typeof e.getElementsByTagName!==C&&e}function pt(){}function dt(e,t){var n,i,s,o,u,a,f,l=x[e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=r.preFilter;while(u){if(!n||(i=U.exec(u)))i&&(u=u.slice(i[0].length)||u),a.push(s=[]);n=!1;if(i=z.exec(u))n=i.shift(),s.push({value:n,type:i[0].replace(R," ")}),u=u.slice(n.length);for(o in r.filter)(i=$[o].exec(u))&&(!f[o]||(i=f[o](i)))&&(n=i.shift(),s.push({value:n,type:o,matches:i}),u=u.slice(n.length));if(!n)break}return t?u.length:u?rt.error(e):x(e,a).slice(0)}function vt(e){var t=0,n=e.length,r="";for(;t1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function yt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=yt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):_.apply(o,g)})}function wt(e){var t,n,i,s=e.length,o=r.relative[e[0].type],a=o||r.relative[" "],f=o?1:0,l=mt(function(e){return e===t},a,!0),c=mt(function(e){return P.call(t,e)>-1},a,!0),h=[function(e,n,r){return!o&&(r||n!==u)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];for(;f1&>(h),f>1&&vt(e.slice(0,f-1).concat({value:e[f-2].type===" "?"*":""})).replace(R,"$1"),n,f0,i=e.length>0,s=function(s,o,a,f,l){var h,p,d,v=0,m="0",g=s&&[],y=[],b=u,E=s||i&&r.find.TAG("*",l),S=w+=b==null?1:Math.random()||.1,x=E.length;l&&(u=o!==c&&o);for(;m!==x&&(h=E[m])!=null;m++){if(i&&h){p=0;while(d=e[p++])if(d(h,o,a)){f.push(h);break}l&&(w=S)}n&&((h=!d&&h)&&v--,s&&g.push(h))}v+=m;if(n&&m!==v){p=0;while(d=t[p++])d(g,y,o,a);if(s){if(v>0)while(m--)!g[m]&&!y[m]&&(y[m]=O.call(f));y=yt(y)}_.apply(f,y),l&&!s&&y.length>0&&v+t.length>1&&rt.uniqueSort(f)}return l&&(w=S,u=b),g};return n?st(s):s}function St(e,t,n){var r=0,i=t.length;for(;r2&&(f=a[0]).type==="ID"&&n.getById&&t.nodeType===9&&p&&r.relative[a[1].type]){t=(r.find.ID(f.matches[0].replace(et,tt),t)||[])[0];if(!t)return i;e=e.slice(a.shift().value.length)}u=$.needsContext.test(e)?0:a.length;while(u--){f=a[u];if(r.relative[l=f.type])break;if(c=r.find[l])if(s=c(f.matches[0].replace(et,tt),Y.test(a[0].type)&&ht(t.parentNode)||t)){a.splice(u,1),e=s.length&&vt(a);if(!e)return _.apply(i,s),i;break}}}return o(e,h)(s,t,!p,i,Y.test(e)&&ht(t.parentNode)||t),i}var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y="sizzle"+ -(new Date),b=e.document,w=0,E=0,S=it(),x=it(),T=it(),N=function(e,t){return e===t&&(f=!0),0},C=typeof undefined,k=1<<31,L={}.hasOwnProperty,A=[],O=A.pop,M=A.push,_=A.push,D=A.slice,P=A.indexOf||function(e){var t=0,n=this.length;for(;t+~]|"+B+")"+B+"*"),W=new RegExp("="+B+"*([^\\]'\"]*?)"+B+"*\\]","g"),X=new RegExp(q),V=new RegExp("^"+F+"$"),$={ID:new RegExp("^#("+j+")"),CLASS:new RegExp("^\\.("+j+")"),TAG:new RegExp("^("+j.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+B+"*(even|odd|(([+-]|)(\\d*)n|)"+B+"*(?:([+-]|)"+B+"*(\\d+)|))"+B+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+B+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+B+"*((?:-\\d)?\\d*)"+B+"*\\)|)(?=[^-]|$)","i")},J=/^(?:input|select|textarea|button)$/i,K=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,G=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Y=/[+~]/,Z=/'|\\/g,et=new RegExp("\\\\([\\da-f]{1,6}"+B+"?|("+B+")|.)","ig"),tt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,r&1023|56320)};try{_.apply(A=D.call(b.childNodes),b.childNodes),A[b.childNodes.length].nodeType}catch(nt){_={apply:A.length?function(e,t){M.apply(e,D.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}n=rt.support={},s=rt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},l=rt.setDocument=function(e){var t,i=e?e.ownerDocument||e:b,o=i.defaultView;if(i===c||i.nodeType!==9||!i.documentElement)return c;c=i,h=i.documentElement,p=!s(i),o&&o!==o.top&&(o.addEventListener?o.addEventListener("unload",function(){l()},!1):o.attachEvent&&o.attachEvent("onunload",function(){l()})),n.attributes=ot(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ot(function(e){return e.appendChild(i.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(i.getElementsByClassName)&&ot(function(e){return e.innerHTML="
",e.firstChild.className="i",e.getElementsByClassName("i").length===2}),n.getById=ot(function(e){return h.appendChild(e).id=y,!i.getElementsByName||!i.getElementsByName(y).length}),n.getById?(r.find.ID=function(e,t){if(typeof t.getElementById!==C&&p){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},r.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(delete r.find.ID,r.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==C&&e.getAttributeNode("id");return n&&n.value===t}}),r.find.TAG=n.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==C)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],i=0,s=t.getElementsByTagName(e);if(e==="*"){while(n=s[i++])n.nodeType===1&&r.push(n);return r}return s},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(typeof t.getElementsByClassName!==C&&p)return t.getElementsByClassName(e)},v=[],d=[];if(n.qsa=Q.test(i.querySelectorAll))ot(function(e){e.innerHTML="",e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+B+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||d.push("\\["+B+"*(?:value|"+H+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),ot(function(e){var t=i.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&d.push("name"+B+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")});return(n.matchesSelector=Q.test(m=h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ot(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),v.push("!=",q)}),d=d.length&&new RegExp(d.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),g=t||Q.test(h.contains)?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!r&&r.nodeType===1&&!!(n.contains?n.contains(r):e.compareDocumentPosition&&e.compareDocumentPosition(r)&16)}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r?r:(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,r&1||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===i||e.ownerDocument===b&&g(b,e)?-1:t===i||t.ownerDocument===b&&g(b,t)?1:a?P.call(a,e)-P.call(a,t):0:r&4?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,s=e.parentNode,o=t.parentNode,u=[e],l=[t];if(!s||!o)return e===i?-1:t===i?1:s?-1:o?1:a?P.call(a,e)-P.call(a,t):0;if(s===o)return at(e,t);n=e;while(n=n.parentNode)u.unshift(n);n=t;while(n=n.parentNode)l.unshift(n);while(u[r]===l[r])r++;return r?at(u[r],l[r]):u[r]===b?-1:l[r]===b?1:0},i},rt.matches=function(e,t){return rt(e,null,null,t)},rt.matchesSelector=function(e,t){(e.ownerDocument||e)!==c&&l(e),t=t.replace(W,"='$1']");if(n.matchesSelector&&p&&(!v||!v.test(t))&&(!d||!d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&e.document.nodeType!==11)return r}catch(i){}return rt(t,c,null,[e]).length>0},rt.contains=function(e,t){return(e.ownerDocument||e)!==c&&l(e),g(e,t)},rt.attr=function(e,t){(e.ownerDocument||e)!==c&&l(e);var i=r.attrHandle[t.toLowerCase()],s=i&&L.call(r.attrHandle,t.toLowerCase())?i(e,t,!p):undefined;return s!==undefined?s:n.attributes||!p?e.getAttribute(t):(s=e.getAttributeNode(t))&&s.specified?s.value:null},rt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},rt.uniqueSort=function(e){var t,r=[],i=0,s=0;f=!n.detectDuplicates,a=!n.sortStable&&e.slice(0),e.sort(N);if(f){while(t=e[s++])t===e[s]&&(i=r.push(s));while(i--)e.splice(r[i],1)}return a=null,e},i=rt.getText=function(e){var t,n="",r=0,s=e.nodeType;if(!s)while(t=e[r++])n+=i(t);else if(s===1||s===9||s===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(s===3||s===4)return e.nodeValue;return n},r=rt.selectors={cacheLength:50,createPseudo:st,match:$,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1].slice(0,3)==="nth"?(e[3]||rt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(e[3]==="even"||e[3]==="odd")),e[5]=+(e[7]+e[8]||e[3]==="odd")):e[3]&&rt.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return $.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&X.test(n)&&(t=dt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(et,tt).toLowerCase();return e==="*"?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=S[e+" "];return t||(t=new RegExp("(^|"+B+")"+e+"("+B+"|$)"))&&S(e,function(e){return t.test(typeof e.className=="string"&&e.className||typeof e.getAttribute!==C&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=rt.attr(r,e);return i==null?t==="!=":t?(i+="",t==="="?i===n:t==="!="?i!==n:t==="^="?n&&i.indexOf(n)===0:t==="*="?n&&i.indexOf(n)>-1:t==="$="?n&&i.slice(-n.length)===n:t==="~="?(" "+i+" ").indexOf(n)>-1:t==="|="?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var s=e.slice(0,3)!=="nth",o=e.slice(-4)!=="last",u=t==="of-type";return r===1&&i===0?function(e){return!!e.parentNode}:function(t,n,a){var f,l,c,h,p,d,v=s!==o?"nextSibling":"previousSibling",m=t.parentNode,g=u&&t.nodeName.toLowerCase(),b=!a&&!u;if(m){if(s){while(v){c=t;while(c=c[v])if(u?c.nodeName.toLowerCase()===g:c.nodeType===1)return!1;d=v=e==="only"&&!d&&"nextSibling"}return!0}d=[o?m.firstChild:m.lastChild];if(o&&b){l=m[y]||(m[y]={}),f=l[e]||[],p=f[0]===w&&f[1],h=f[0]===w&&f[2],c=p&&m.childNodes[p];while(c=++p&&c&&c[v]||(h=p=0)||d.pop())if(c.nodeType===1&&++h&&c===t){l[e]=[w,p,h];break}}else if(b&&(f=(t[y]||(t[y]={}))[e])&&f[0]===w)h=f[1];else while(c=++p&&c&&c[v]||(h=p=0)||d.pop())if((u?c.nodeName.toLowerCase()===g:c.nodeType===1)&&++h){b&&((c[y]||(c[y]={}))[e]=[w,h]);if(c===t)break}return h-=i,h===r||h%r===0&&h/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||rt.error("unsupported pseudo: "+e);return i[y]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?st(function(e,n){var r,s=i(e,t),o=s.length;while(o--)r=P.call(e,s[o]),e[r]=!(n[r]=s[o])}):function(e){return i(e,0,n)}):i}},pseudos:{not:st(function(e){var t=[],n=[],r=o(e.replace(R,"$1"));return r[y]?st(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:st(function(e){return function(t){return rt(e,t).length>0}}),contains:st(function(e){return function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:st(function(e){return V.test(e||"")||rt.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=p?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||n.indexOf(e+"-")===0;while((t=t.parentNode)&&t.nodeType===1);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===c.activeElement&&(!c.hasFocus||c.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return K.test(e.nodeName)},input:function(e){return J.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},text:function(e){var t;return e.nodeName.toLowerCase()==="input"&&e.type==="text"&&((t=e.getAttribute("type"))==null||t.toLowerCase()==="text")},first:ct(function(){return[0]}),last:ct(function(e,t){return[t-1]}),eq:ct(function(e,t,n){return[n<0?n+t:n]}),even:ct(function(e,t){var n=0;for(;n=0;)e.push(r);return e}),gt:ct(function(e,t,n){var r=n<0?n+t:n;for(;++r(?:<\/\1>|)$/,S=/^.[^:#\[\.,]*$/;p.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),t.length===1&&r.nodeType===1?p.find.matchesSelector(r,e)?[r]:[]:p.find.matches(e,p.grep(t,function(e){return e.nodeType===1}))},p.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if(typeof e!="string")return this.pushStack(p(e).filter(function(){for(t=0;t1?p.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(x(this,e||[],!1))},not:function(e){return this.pushStack(x(this,e||[],!0))},is:function(e){return!!x(this,typeof e=="string"&&w.test(e)?p(e):e||[],!1).length}});var T,N=e.document,C=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=p.fn.init=function(e,t){var n,r;if(!e)return this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?n=[null,e,null]:n=C.exec(e);if(n&&(n[1]||!t)){if(n[1]){t=t instanceof p?t[0]:t,p.merge(this,p.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:N,!0));if(E.test(n[1])&&p.isPlainObject(t))for(n in t)p.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}r=N.getElementById(n[2]);if(r&&r.parentNode){if(r.id!==n[2])return T.find(e);this.length=1,this[0]=r}return this.context=N,this.selector=e,this}return!t||t.jquery?(t||T).find(e):this.constructor(t).find(e)}return e.nodeType?(this.context=this[0]=e,this.length=1,this):p.isFunction(e)?typeof T.ready!="undefined"?T.ready(e):e(p):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),p.makeArray(e,this))};k.prototype=p.fn,T=p(N);var L=/^(?:parents|prev(?:Until|All))/,A={children:!0,contents:!0,next:!0,prev:!0};p.extend({dir:function(e,t,n){var r=[],i=e[t];while(i&&i.nodeType!==9&&(n===undefined||i.nodeType!==1||!p(i).is(n)))i.nodeType===1&&r.push(i),i=i[t];return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}}),p.fn.extend({has:function(e){var t,n=p(e,this),r=n.length;return this.filter(function(){for(t=0;t-1:n.nodeType===1&&p.find.matchesSelector(n,e))){s.push(n);break}return this.pushStack(s.length>1?p.unique(s):s)},index:function(e){return e?typeof e=="string"?p.inArray(this[0],p(e)):p.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(p.unique(p.merge(this.get(),p(e,t))))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),p.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return p.dir(e,"parentNode")},parentsUntil:function(e,t,n){return p.dir(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return p.dir(e,"nextSibling")},prevAll:function(e){return p.dir(e,"previousSibling")},nextUntil:function(e,t,n){return p.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return p.dir(e,"previousSibling",n)},siblings:function(e){return p.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return p.sibling(e.firstChild)},contents:function(e){return p.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:p.merge([],e.childNodes)}},function(e,t){p.fn[e]=function(n,r){var i=p.map(this,t,n);return e.slice(-5)!=="Until"&&(r=n),r&&typeof r=="string"&&(i=p.filter(r,i)),this.length>1&&(A[e]||(i=p.unique(i)),L.test(e)&&(i=i.reverse())),this.pushStack(i)}});var M=/\S+/g,_={};p.Callbacks=function(e){e=typeof e=="string"?_[e]||D(e):p.extend({},e);var t,n,r,i,s,o,u=[],a=!e.once&&[],f=function(c){n=e.memory&&c,r=!0,s=o||0,o=0,i=u.length,t=!0;for(;u&&s-1)u.splice(r,1),t&&(r<=i&&i--,r<=s&&s--)}),this},has:function(e){return e?p.inArray(e,u)>-1:!!u&&!!u.length},empty:function(){return u=[],i=0,this},disable:function(){return u=a=n=undefined,this},disabled:function(){return!u},lock:function(){return a=undefined,n||l.disable(),this},locked:function(){return!a},fireWith:function(e,n){return u&&(!r||a)&&(n=n||[],n=[e,n.slice?n.slice():n],t?a.push(n):f(n)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l},p.extend({Deferred:function(e){var t=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return p.Deferred(function(n){p.each(t,function(t,s){var o=p.isFunction(e[t])&&e[t];i[s[1]](function(){var e=o&&o.apply(this,arguments);e&&p.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s[0]+"With"](this===r?n.promise():this,o?[e]:arguments)})}),e=null}).promise()},promise:function(e){return e!=null?p.extend(e,r):r}},i={};return r.pipe=r.then,p.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=function(){return i[s[0]+"With"](this===i?r:this,arguments),this},i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=r.call(arguments),i=n.length,s=i!==1||e&&p.isFunction(e.promise)?i:0,o=s===1?e:p.Deferred(),u=function(e,t,n){return function(i){t[e]=this,n[e]=arguments.length>1?r.call(arguments):i,n===a?o.notifyWith(t,n):--s||o.resolveWith(t,n)}},a,f,l;if(i>1){a=new Array(i),f=new Array(i),l=new Array(i);for(;t0)return;P.resolveWith(N,[p]),p.fn.trigger&&p(N).trigger("ready").off("ready")}}),p.ready.promise=function(t){if(!P){P=p.Deferred();if(N.readyState==="complete")setTimeout(p.ready);else if(N.addEventListener)N.addEventListener("DOMContentLoaded",B,!1),e.addEventListener("load",B,!1);else{N.attachEvent("onreadystatechange",B),e.attachEvent("onload",B);var n=!1;try{n=e.frameElement==null&&N.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!p.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}H(),p.ready()}}()}}return P.promise(t)};var j=typeof undefined,F;for(F in p(c))break;c.ownLast=F!=="0",c.inlineBlockNeedsLayout=!1,p(function(){var e,t,n=N.getElementsByTagName("body")[0];if(!n)return;e=N.createElement("div"),e.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",t=N.createElement("div"),n.appendChild(e).appendChild(t);if(typeof t.style.zoom!==j){t.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1";if(c.inlineBlockNeedsLayout=t.offsetWidth===3)n.style.zoom=1}n.removeChild(e),e=t=null}),function(){var e=N.createElement("div");if(c.deleteExpando==null){c.deleteExpando=!0;try{delete e.test}catch(t){c.deleteExpando=!1}}e=null}(),p.acceptData=function(e){var t=p.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return n!==1&&n!==9?!1:!t||t!==!0&&e.getAttribute("classid")===t};var I=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,q=/([A-Z])/g;p.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?p.cache[e[p.expando]]:e[p.expando],!!e&&!U(e)},data:function(e,t,n){return z(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return z(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)}}),p.fn.extend({data:function(e,t){var n,r,i,s=this[0],o=s&&s.attributes;if(e===undefined){if(this.length){i=p.data(s);if(s.nodeType===1&&!p._data(s,"parsedAttrs")){n=o.length;while(n--)r=o[n].name,r.indexOf("data-")===0&&(r=p.camelCase(r.slice(5)),R(s,r,i[r]));p._data(s,"parsedAttrs",!0)}}return i}return typeof e=="object"?this.each(function(){p.data(this,e)}):arguments.length>1?this.each(function(){p.data(this,e,t)}):s?R(s,e,p.data(s,e)):undefined},removeData:function(e){return this.each(function(){p.removeData(this,e)})}}),p.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=p._data(e,t),n&&(!r||p.isArray(n)?r=p._data(e,t,p.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=p.queue(e,t),r=n.length,i=n.shift(),s=p._queueHooks(e,t),o=function(){p.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return p._data(e,n)||p._data(e,n,{empty:p.Callbacks("once memory").add(function(){p._removeData(e,t+"queue"),p._removeData(e,n)})})}}),p.fn.extend({queue:function(e,t){var n=2;return typeof e!="string"&&(t=e,e="fx",n--),arguments.length
a",c.leadingWhitespace=t.firstChild.nodeType===3,c.tbody=!t.getElementsByTagName("tbody").length,c.htmlSerialize=!!t.getElementsByTagName("link").length,c.html5Clone=N.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",n.type="checkbox",n.checked=!0,e.appendChild(n),c.appendChecked=n.checked,t.innerHTML="",c.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,e.appendChild(t),t.innerHTML="",c.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,c.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){c.noCloneEvent=!1}),t.cloneNode(!0).click());if(c.deleteExpando==null){c.deleteExpando=!0;try{delete t.test}catch(r){c.deleteExpando=!1}}e=t=n=null})(),function(){var t,n,r=N.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(c[t+"Bubbles"]=n in e)||(r.setAttribute(n,"t"),c[t+"Bubbles"]=r.attributes[n].expando===!1);r=null}();var Q=/^(?:input|select|textarea)$/i,G=/^key/,Y=/^(?:mouse|contextmenu)|click/,Z=/^(?:focusinfocus|focusoutblur)$/,et=/^([^.]*)(?:\.(.+)|)$/;p.event={global:{},add:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,d,v,m,g=p._data(e);if(!g)return;n.handler&&(a=n,n=a.handler,i=a.selector),n.guid||(n.guid=p.guid++),(o=g.events)||(o=g.events={}),(l=g.handle)||(l=g.handle=function(e){return typeof p===j||!!e&&p.event.triggered===e.type?undefined:p.event.dispatch.apply(l.elem,arguments)},l.elem=e),t=(t||"").match(M)||[""],u=t.length;while(u--){s=et.exec(t[u])||[],d=m=s[1],v=(s[2]||"").split(".").sort();if(!d)continue;f=p.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=p.event.special[d]||{},c=p.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&p.expr.match.needsContext.test(i),namespace:v.join(".")},a);if(!(h=o[d])){h=o[d]=[],h.delegateCount=0;if(!f.setup||f.setup.call(e,r,v,l)===!1)e.addEventListener?e.addEventListener(d,l,!1):e.attachEvent&&e.attachEvent("on"+d,l)}f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?h.splice(h.delegateCount++,0,c):h.push(c),p.event.global[d]=!0}e=null},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,d,v,m,g=p.hasData(e)&&p._data(e);if(!g||!(l=g.events))return;t=(t||"").match(M)||[""],f=t.length;while(f--){u=et.exec(t[f])||[],d=m=u[1],v=(u[2]||"").split(".").sort();if(!d){for(d in l)p.event.remove(e,d+t[f],n,r,!0);continue}c=p.event.special[d]||{},d=(r?c.delegateType:c.bindType)||d,h=l[d]||[],u=u[2]&&new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=s=h.length;while(s--)o=h[s],(i||m===o.origType)&&(!n||n.guid===o.guid)&&(!u||u.test(o.namespace))&&(!r||r===o.selector||r==="**"&&o.selector)&&(h.splice(s,1),o.selector&&h.delegateCount--,c.remove&&c.remove.call(e,o));a&&!h.length&&((!c.teardown||c.teardown.call(e,v,g.handle)===!1)&&p.removeEvent(e,d,g.handle),delete l[d])}p.isEmptyObject(l)&&(delete g.handle,p._removeData(e,"events"))},trigger:function(t,n,r,i){var s,o,u,a,l,c,h,d=[r||N],v=f.call(t,"type")?t.type:t,m=f.call(t,"namespace")?t.namespace.split("."):[];u=c=r=r||N;if(r.nodeType===3||r.nodeType===8)return;if(Z.test(v+p.event.triggered))return;v.indexOf(".")>=0&&(m=v.split("."),v=m.shift(),m.sort()),o=v.indexOf(":")<0&&"on"+v,t=t[p.expando]?t:new p.Event(v,typeof t=="object"&&t),t.isTrigger=i?2:3,t.namespace=m.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=n==null?[t]:p.makeArray(n,[t]),l=p.event.special[v]||{};if(!i&&l.trigger&&l.trigger.apply(r,n)===!1)return;if(!i&&!l.noBubble&&!p.isWindow(r)){a=l.delegateType||v,Z.test(a+v)||(u=u.parentNode);for(;u;u=u.parentNode)d.push(u),c=u;c===(r.ownerDocument||N)&&d.push(c.defaultView||c.parentWindow||e)}h=0;while((u=d[h++])&&!t.isPropagationStopped())t.type=h>1?a:l.bindType||v,s=(p._data(u,"events")||{})[t.type]&&p._data(u,"handle"),s&&s.apply(u,n),s=o&&u[o],s&&s.apply&&p.acceptData(u)&&(t.result=s.apply(u,n),t.result===!1&&t.preventDefault());t.type=v;if(!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&p.acceptData(r)&&o&&r[v]&&!p.isWindow(r)){c=r[o],c&&(r[o]=null),p.event.triggered=v;try{r[v]()}catch(g){}p.event.triggered=undefined,c&&(r[o]=c)}return t.result},dispatch:function(e){e=p.event.fix(e);var t,n,i,s,o,u=[],a=r.call(arguments),f=(p._data(this,"events")||{})[e.type]||[],l=p.event.special[e.type]||{};a[0]=e,e.delegateTarget=this;if(l.preDispatch&&l.preDispatch.call(this,e)===!1)return;u=p.event.handlers.call(this,e,f),t=0;while((s=u[t++])&&!e.isPropagationStopped()){e.currentTarget=s.elem,o=0;while((i=s.handlers[o++])&&!e.isImmediatePropagationStopped())if(!e.namespace_re||e.namespace_re.test(i.namespace))e.handleObj=i,e.data=i.data,n=((p.event.special[i.origType]||{}).handle||i.handler).apply(s.elem,a),n!==undefined&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation())}return l.postDispatch&&l.postDispatch.call(this,e),e.result},handlers:function(e,t){var n,r,i,s,o=[],u=t.delegateCount,a=e.target;if(u&&a.nodeType&&(!e.button||e.type!=="click"))for(;a!=this;a=a.parentNode||this)if(a.nodeType===1&&(a.disabled!==!0||e.type!=="click")){i=[];for(s=0;s=0:p.find(n,this,null,[a]).length),i[n]&&i.push(r);i.length&&o.push({elem:a,handlers:i})}return u]","i"),at=/^\s+/,ft=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,lt=/<([\w:]+)/,ct=/\s*$/g,yt={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:c.htmlSerialize?[0,"",""]:[1,"X
","
"]},bt=it(N),wt=bt.appendChild(N.createElement("div"));yt.optgroup=yt.option,yt.tbody=yt.tfoot=yt.colgroup=yt.caption=yt.thead,yt.th=yt.td,p.extend({clone:function(e,t,n){var r,i,s,o,u,a=p.contains(e.ownerDocument,e);c.html5Clone||p.isXMLDoc(e)||!ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(wt.innerHTML=e.outerHTML,wt.removeChild(s=wt.firstChild));if((!c.noCloneEvent||!c.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!p.isXMLDoc(e)){r=Et(s),u=Et(e);for(o=0;(i=u[o])!=null;++o)r[o]&&Lt(i,r[o])}if(t)if(n){u=u||Et(e),r=r||Et(s);for(o=0;(i=u[o])!=null;o++)kt(i,r[o])}else kt(e,s);return r=Et(s,"script"),r.length>0&&Ct(r,!a&&Et(e,"script")),r=u=i=null,s},buildFragment:function(e,t,n,r){var i,s,o,u,a,f,l,h=e.length,d=it(t),v=[],m=0;for(;m")+l[2],i=l[0];while(i--)u=u.lastChild;!c.leadingWhitespace&&at.test(s)&&v.push(t.createTextNode(at.exec(s)[0]));if(!c.tbody){s=a==="table"&&!ct.test(s)?u.firstChild:l[1]===""&&!ct.test(s)?u:0,i=s&&s.childNodes.length;while(i--)p.nodeName(f=s.childNodes[i],"tbody")&&!f.childNodes.length&&s.removeChild(f)}p.merge(v,u.childNodes),u.textContent="";while(u.firstChild)u.removeChild(u.firstChild);u=d.lastChild}}u&&d.removeChild(u),c.appendChecked||p.grep(Et(v,"input"),St),m=0;while(s=v[m++]){if(r&&p.inArray(s,r)!==-1)continue;o=p.contains(s.ownerDocument,s),u=Et(d.appendChild(s),"script"),o&&Ct(u);if(n){i=0;while(s=u[i++])vt.test(s.type||"")&&n.push(s)}}return u=null,d},cleanData:function(e,t){var r,i,s,o,u=0,a=p.expando,f=p.cache,l=c.deleteExpando,h=p.event.special;for(;(r=e[u])!=null;u++)if(t||p.acceptData(r)){s=r[a],o=s&&f[s];if(o){if(o.events)for(i in o.events)h[i]?p.event.remove(r,i):p.removeEvent(r,i,o.handle);f[s]&&(delete f[s],l?delete r[a]:typeof r.removeAttribute!==j?r.removeAttribute(a):r[a]=null,n.push(s))}}}}),p.fn.extend({text:function(e){return J(this,function(e){return e===undefined?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||N).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=xt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var t=xt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?p.filter(e,this):this,i=0;for(;(n=r[i])!=null;i++)!t&&n.nodeType===1&&p.cleanData(Et(n)),n.parentNode&&(t&&p.contains(n.ownerDocument,n)&&Ct(Et(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&p.cleanData(Et(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&p.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return p.clone(this,e,t)})},html:function(e){return J(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined)return t.nodeType===1?t.innerHTML.replace(ot,""):undefined;if(typeof e=="string"&&!pt.test(e)&&(c.htmlSerialize||!ut.test(e))&&(c.leadingWhitespace||!at.test(e))&&!yt[(lt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(ft,"<$1>");try{for(;n1&&typeof v=="string"&&!c.checkClone&&dt.test(v))return this.each(function(n){var r=h.eq(n);m&&(e[0]=v.call(this,n,r.html())),r.domManip(e,t)});if(l){a=p.buildFragment(e,this[0].ownerDocument,!1,this),n=a.firstChild,a.childNodes.length===1&&(a=n);if(n){o=p.map(Et(a,"script"),Tt),s=o.length;for(;f
a",e=n.getElementsByTagName("a")[0],e.style.cssText="float:left;opacity:.5",c.opacity=/^0.5/.test(e.style.opacity),c.cssFloat=!!e.style.cssFloat,n.style.backgroundClip="content-box",n.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle=n.style.backgroundClip==="content-box",e=n=null,c.shrinkWrapBlocks=function(){var e,n,i,s;if(t==null){e=N.getElementsByTagName("body")[0];if(!e)return;s="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",n=N.createElement("div"),i=N.createElement("div"),e.appendChild(n).appendChild(i),t=!1,typeof i.style.zoom!==j&&(i.style.cssText=r+";width:1px;padding:1px;zoom:1",i.innerHTML="
",i.firstChild.style.width="5px",t=i.offsetWidth!==3),e.removeChild(n),e=n=i=null}return t}})();var Dt=/^margin/,Pt=new RegExp("^("+X+")(?!px)[a-z%]+$","i"),Ht,Bt,jt=/^(top|right|bottom|left)$/;e.getComputedStyle?(Ht=function(e){return e.ownerDocument.defaultView.getComputedStyle(e,null)},Bt=function(e,t,n){var r,i,s,o,u=e.style;return n=n||Ht(e),o=n?n.getPropertyValue(t)||n[t]:undefined,n&&(o===""&&!p.contains(e.ownerDocument,e)&&(o=p.style(e,t)),Pt.test(o)&&Dt.test(t)&&(r=u.width,i=u.minWidth,s=u.maxWidth,u.minWidth=u.maxWidth=u.width=o,o=n.width,u.width=r,u.minWidth=i,u.maxWidth=s)),o===undefined?o:o+""}):N.documentElement.currentStyle&&(Ht=function(e){return e.currentStyle},Bt=function(e,t,n){var r,i,s,o,u=e.style;return n=n||Ht(e),o=n?n[t]:undefined,o==null&&u&&u[t]&&(o=u[t]),Pt.test(o)&&!jt.test(t)&&(r=u.left,i=e.runtimeStyle,s=i&&i.left,s&&(i.left=e.currentStyle.left),u.left=t==="fontSize"?"1em":o,o=u.pixelLeft+"px",u.left=r,s&&(i.left=s)),o===undefined?o:o+""||"auto"}),function(){function l(){var t,n,u=N.getElementsByTagName("body")[0];if(!u)return;t=N.createElement("div"),n=N.createElement("div"),t.style.cssText=a,u.appendChild(t).appendChild(n),n.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",p.swap(u,u.style.zoom!=null?{zoom:1}:{},function(){r=n.offsetWidth===4}),i=!0,s=!1,o=!0,e.getComputedStyle&&(s=(e.getComputedStyle(n,null)||{}).top!=="1%",i=(e.getComputedStyle(n,null)||{width:"4px"}).width==="4px"),u.removeChild(t),n=u=null}var t,n,r,i,s,o,u=N.createElement("div"),a="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",f="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";u.innerHTML="
a",t=u.getElementsByTagName("a")[0],t.style.cssText="float:left;opacity:.5",c.opacity=/^0.5/.test(t.style.opacity),c.cssFloat=!!t.style.cssFloat,u.style.backgroundClip="content-box",u.cloneNode(!0).style.backgroundClip="",c.clearCloneStyle=u.style.backgroundClip==="content-box",t=u=null,p.extend(c,{reliableHiddenOffsets:function(){if(n!=null)return n;var e,t,r,i=N.createElement("div"),s=N.getElementsByTagName("body")[0];if(!s)return;return i.setAttribute("className","t"),i.innerHTML="
a",e=N.createElement("div"),e.style.cssText=a,s.appendChild(e).appendChild(i),i.innerHTML="
t
",t=i.getElementsByTagName("td"),t[0].style.cssText="padding:0;margin:0;border:0;display:none",r=t[0].offsetHeight===0,t[0].style.display="",t[1].style.display="none",n=r&&t[0].offsetHeight===0,s.removeChild(e),i=s=null,n},boxSizing:function(){return r==null&&l(),r},boxSizingReliable:function(){return i==null&&l(),i},pixelPosition:function(){return s==null&&l(),s},reliableMarginRight:function(){var t,n,r,i;if(o==null&&e.getComputedStyle){t=N.getElementsByTagName("body")[0];if(!t)return;n=N.createElement("div"),r=N.createElement("div"),n.style.cssText=a,t.appendChild(n).appendChild(r),i=r.appendChild(N.createElement("div")),i.style.cssText=r.style.cssText=f,i.style.marginRight=i.style.width="0",r.style.width="1px",o=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight),t.removeChild(n)}return o}})}(),p.swap=function(e,t,n,r){var i,s,o={};for(s in t)o[s]=e.style[s],e.style[s]=t[s];i=n.apply(e,r||[]);for(s in t)e.style[s]=o[s];return i};var It=/alpha\([^)]*\)/i,qt=/opacity\s*=\s*([^)]*)/,Rt=/^(none|table(?!-c[ea]).+)/,Ut=new RegExp("^("+X+")(.*)$","i"),zt=new RegExp("^([+-])=("+X+")","i"),Wt={position:"absolute",visibility:"hidden",display:"block"},Xt={letterSpacing:0,fontWeight:400},Vt=["Webkit","O","Moz","ms"];p.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Bt(e,"opacity");return n===""?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":c.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var i,s,o,u=p.camelCase(t),a=e.style;t=p.cssProps[u]||(p.cssProps[u]=$t(a,u)),o=p.cssHooks[t]||p.cssHooks[u];if(n===undefined)return o&&"get"in o&&(i=o.get(e,!1,r))!==undefined?i:a[t];s=typeof n,s==="string"&&(i=zt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(p.css(e,t)),s="number");if(n==null||n!==n)return;s==="number"&&!p.cssNumber[u]&&(n+="px"),!c.clearCloneStyle&&n===""&&t.indexOf("background")===0&&(a[t]="inherit");if(!o||!("set"in o)||(n=o.set(e,n,r))!==undefined)try{a[t]="",a[t]=n}catch(f){}},css:function(e,t,n,r){var i,s,o,u=p.camelCase(t);return t=p.cssProps[u]||(p.cssProps[u]=$t(e.style,u)),o=p.cssHooks[t]||p.cssHooks[u],o&&"get"in o&&(s=o.get(e,!0,n)),s===undefined&&(s=Bt(e,t,r)),s==="normal"&&t in Xt&&(s=Xt[t]),n===""||n?(i=parseFloat(s),n===!0||p.isNumeric(i)?i||0:s):s}}),p.each(["height","width"],function(e,t){p.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&Rt.test(p.css(e,"display"))?p.swap(e,Wt,function(){return Gt(e,t,r)}):Gt(e,t,r)},set:function(e,n,r){var i=r&&Ht(e);return Kt(e,n,r?Qt(e,t,r,c.boxSizing()&&p.css(e,"boxSizing",!1,i)==="border-box",i):0)}}}),c.opacity||(p.cssHooks.opacity={get:function(e,t){return qt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=p.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if((t>=1||t==="")&&p.trim(s.replace(It,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(t===""||r&&!r.filter)return}n.filter=It.test(s)?s.replace(It,i):s+" "+i}}),p.cssHooks.marginRight=Ft(c.reliableMarginRight,function(e,t){if(t)return p.swap(e,{display:"inline-block"},Bt,[e,"marginRight"])}),p.each({margin:"",padding:"",border:"Width"},function(e,t){p.cssHooks[e+t]={expand:function(n){var r=0,i={},s=typeof n=="string"?n.split(" "):[n];for(;r<4;r++)i[e+V[r]+t]=s[r]||s[r-2]||s[0];return i}},Dt.test(e)||(p.cssHooks[e+t].set=Kt)}),p.fn.extend({css:function(e,t){return J(this,function(e,t,n){var r,i,s={},o=0;if(p.isArray(t)){r=Ht(e),i=t.length;for(;o1)},show:function(){return Jt(this,!0)},hide:function(){return Jt(this)},toggle:function(e){return typeof e=="boolean"?e?this.show():this.hide():this.each(function(){$(this)?p(this).show():p(this).hide()})}}),p.Tween=Yt,Yt.prototype={constructor:Yt,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(p.cssNumber[n]?"":"px")},cur:function(){var e=Yt.propHooks[this.prop];return e&&e.get?e.get(this):Yt.propHooks._default.get(this)},run:function(e){var t,n=Yt.propHooks[this.prop];return this.options.duration?this.pos=t=p.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yt.propHooks._default.set(this),this}},Yt.prototype.init.prototype=Yt.prototype,Yt.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=p.css(e.elem,e.prop,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){p.fx.step[e.prop]?p.fx.step[e.prop](e):e.elem.style&&(e.elem.style[p.cssProps[e.prop]]!=null||p.cssHooks[e.prop])?p.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yt.propHooks.scrollTop=Yt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},p.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},p.fx=Yt.prototype.init,p.fx.step={};var Zt,en,tn=/^(?:toggle|show|hide)$/,nn=new RegExp("^(?:([+-])=|)("+X+")([a-z%]*)$","i"),rn=/queueHooks$/,sn=[ln],on={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=nn.exec(t),s=i&&i[3]||(p.cssNumber[e]?"":"px"),o=(p.cssNumber[e]||s!=="px"&&+r)&&nn.exec(p.css(n.elem,e)),u=1,a=20;if(o&&o[3]!==s){s=s||o[3],i=i||[],o=+r||1;do u=u||".5",o/=u,p.style(n.elem,e,o+s);while(u!==(u=n.cur()/r)&&u!==1&&--a)}return i&&(o=n.start=+o||+r||0,n.unit=s,n.end=i[1]?o+(i[1]+1)*i[2]:+i[2]),n}]};p.Animation=p.extend(hn,{tweener:function(e,t){p.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r
a",e=i.getElementsByTagName("a")[0],n=N.createElement("select"),r=n.appendChild(N.createElement("option")),t=i.getElementsByTagName("input")[0],e.style.cssText="top:1px",c.getSetAttribute=i.className!=="t",c.style=/top/.test(e.getAttribute("style")),c.hrefNormalized=e.getAttribute("href")==="/a",c.checkOn=!!t.value,c.optSelected=r.selected,c.enctype=!!N.createElement("form").enctype,n.disabled=!0,c.optDisabled=!r.disabled,t=N.createElement("input"),t.setAttribute("value",""),c.input=t.getAttribute("value")==="",t.value="t",t.setAttribute("type","radio"),c.radioValue=t.value==="t",e=t=n=r=i=null}();var pn=/\r/g;p.fn.extend({val:function(e){var t,n,r,i=this[0];if(!arguments.length){if(i)return t=p.valHooks[i.type]||p.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,typeof n=="string"?n.replace(pn,""):n==null?"":n);return}return r=p.isFunction(e),this.each(function(n){var i;if(this.nodeType!==1)return;r?i=e.call(this,n,p(this).val()):i=e,i==null?i="":typeof i=="number"?i+="":p.isArray(i)&&(i=p.map(i,function(e){return e==null?"":e+""})),t=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!t||!("set"in t)||t.set(this,i,"value")===undefined)this.value=i})}}),p.extend({valHooks:{option:{get:function(e){var t=p.find.attr(e,"value");return t!=null?t:p.text(e)}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0)try{r.selected=n=!0}catch(u){r.scrollHeight}else r.selected=!1}return n||(e.selectedIndex=-1),i}}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]={set:function(e,t){if(p.isArray(t))return e.checked=p.inArray(p(e).val(),t)>=0}},c.checkOn||(p.valHooks[this].get=function(e){return e.getAttribute("value")===null?"on":e.value})});var dn,vn,mn=p.expr.attrHandle,gn=/^(?:checked|selected)$/i,yn=c.getSetAttribute,bn=c.input;p.fn.extend({attr:function(e,t){return J(this,p.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){p.removeAttr(this,e)})}}),p.extend({attr:function(e,t,n){var r,i,s=e.nodeType;if(!e||s===3||s===8||s===2)return;if(typeof e.getAttribute===j)return p.prop(e,t,n);if(s!==1||!p.isXMLDoc(e))t=t.toLowerCase(),r=p.attrHooks[t]||(p.expr.match.bool.test(t)?vn:dn);if(n===undefined)return r&&"get"in r&&(i=r.get(e,t))!==null?i:(i=p.find.attr(e,t),i==null?undefined:i);if(n!==null)return r&&"set"in r&&(i=r.set(e,n,t))!==undefined?i:(e.setAttribute(t,n+""),n);p.removeAttr(e,t)},removeAttr:function(e,t){var n,r,i=0,s=t&&t.match(M);if(s&&e.nodeType===1)while(n=s[i++])r=p.propFix[n]||n,p.expr.match.bool.test(n)?bn&&yn||!gn.test(n)?e[r]=!1:e[p.camelCase("default-"+n)]=e[r]=!1:p.attr(e,n,""),e.removeAttribute(yn?n:r)},attrHooks:{type:{set:function(e,t){if(!c.radioValue&&t==="radio"&&p.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),vn={set:function(e,t,n){return t===!1?p.removeAttr(e,n):bn&&yn||!gn.test(n)?e.setAttribute(!yn&&p.propFix[n]||n,n):e[p.camelCase("default-"+n)]=e[n]=!0,n}},p.each(p.expr.match.bool.source.match(/\w+/g),function(e,t){var n=mn[t]||p.find.attr;mn[t]=bn&&yn||!gn.test(t)?function(e,t,r){var i,s;return r||(s=mn[t],mn[t]=i,i=n(e,t,r)!=null?t.toLowerCase():null,mn[t]=s),i}:function(e,t,n){if(!n)return e[p.camelCase("default-"+t)]?t.toLowerCase():null}});if(!bn||!yn)p.attrHooks.value={set:function(e,t,n){if(!p.nodeName(e,"input"))return dn&&dn.set(e,t,n);e.defaultValue=t}};yn||(dn={set:function(e,t,n){var r=e.getAttributeNode(n);r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="";if(n==="value"||t===e.getAttribute(n))return t}},mn.id=mn.name=mn.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&r.value!==""?r.value:null},p.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:dn.set},p.attrHooks.contenteditable={set:function(e,t,n){dn.set(e,t===""?!1:t,n)}},p.each(["width","height"],function(e,t){p.attrHooks[t]={set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}}})),c.style||(p.attrHooks.style={get:function(e){return e.style.cssText||undefined},set:function(e,t){return e.style.cssText=t+""}});var wn=/^(?:input|select|textarea|button|object)$/i,En=/^(?:a|area)$/i;p.fn.extend({prop:function(e,t){return J(this,p.prop,e,t,arguments.length>1)},removeProp:function(e){return e=p.propFix[e]||e,this.each(function(){try{this[e]=undefined,delete this[e]}catch(t){}})}}),p.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,s,o=e.nodeType;if(!e||o===3||o===8||o===2)return;return s=o!==1||!p.isXMLDoc(e),s&&(t=p.propFix[t]||t,i=p.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&(r=i.get(e,t))!==null?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=p.find.attr(e,"tabindex");return t?parseInt(t,10):wn.test(e.nodeName)||En.test(e.nodeName)&&e.href?0:-1}}}}),c.hrefNormalized||p.each(["href","src"],function(e,t){p.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),c.optSelected||(p.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),p.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){p.propFix[this.toLowerCase()]=this}),c.enctype||(p.propFix.enctype="encoding");var Sn=/[\t\r\n\f]/g;p.fn.extend({addClass:function(e){var t,n,r,i,s,o,u=0,a=this.length,f=typeof e=="string"&&e;if(p.isFunction(e))return this.each(function(t){p(this).addClass(e.call(this,t,this.className))});if(f){t=(e||"").match(M)||[];for(;u=0)r=r.replace(" "+i+" "," ");o=e?p.trim(r):"",n.className!==o&&(n.className=o)}}}return this},toggleClass:function(e,t){var n=typeof e;return typeof t=="boolean"&&n==="string"?t?this.addClass(e):this.removeClass(e):p.isFunction(e)?this.each(function(n){p(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var t,r=0,i=p(this),s=e.match(M)||[];while(t=s[r++])i.hasClass(t)?i.removeClass(t):i.addClass(t)}else if(n===j||n==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||e===!1?"":p._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){p.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),p.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)}});var xn=p.now(),Tn=/\?/,Nn=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;p.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=p.trim(t+"");return i&&!p.trim(i.replace(Nn,function(e,t,i,s){return n&&t&&(r=0),r===0?e:(n=i||t,r+=!s-!i,"")}))?Function("return "+i)():p.error("Invalid JSON: "+t)},p.parseXML=function(t){var n,r;if(!t||typeof t!="string")return null;try{e.DOMParser?(r=new DOMParser,n=r.parseFromString(t,"text/xml")):(n=new ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=undefined}return(!n||!n.documentElement||n.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+t),n};var Cn,kn,Ln=/#.*$/,An=/([?&])_=[^&]*/,On=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,Mn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,_n=/^(?:GET|HEAD)$/,Dn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hn={},Bn={},jn="*/".concat("*");try{kn=location.href}catch(Fn){kn=N.createElement("a"),kn.href="",kn=kn.href}Cn=Pn.exec(kn.toLowerCase())||[],p.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:kn,type:"GET",isLocal:Mn.test(Cn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":jn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Rn(Rn(e,p.ajaxSettings),t):Rn(p.ajaxSettings,e)},ajaxPrefilter:In(Hn),ajaxTransport:In(Bn),ajax:function(e,t){function x(e,t,n,r){var f,g,y,w,S,x=t;if(b===2)return;b=2,o&&clearTimeout(o),a=undefined,s=r||"",E.readyState=e>0?4:0,f=e>=200&&e<300||e===304,n&&(w=Un(l,E,n)),w=zn(l,w,E,f);if(f)l.ifModified&&(S=E.getResponseHeader("Last-Modified"),S&&(p.lastModified[i]=S),S=E.getResponseHeader("etag"),S&&(p.etag[i]=S)),e===204||l.type==="HEAD"?x="nocontent":e===304?x="notmodified":(x=w.state,g=w.data,y=w.error,f=!y);else{y=x;if(e||!x)x="error",e<0&&(e=0)}E.status=e,E.statusText=(t||x)+"",f?d.resolveWith(c,[g,x,E]):d.rejectWith(c,[E,x,y]),E.statusCode(m),m=undefined,u&&h.trigger(f?"ajaxSuccess":"ajaxError",[E,l,f?g:y]),v.fireWith(c,[E,x]),u&&(h.trigger("ajaxComplete",[E,l]),--p.active||p.event.trigger("ajaxStop"))}typeof e=="object"&&(t=e,e=undefined),t=t||{};var n,r,i,s,o,u,a,f,l=p.ajaxSetup({},t),c=l.context||l,h=l.context&&(c.nodeType||c.jquery)?p(c):p.event,d=p.Deferred(),v=p.Callbacks("once memory"),m=l.statusCode||{},g={},y={},b=0,w="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(b===2){if(!f){f={};while(t=On.exec(s))f[t[1].toLowerCase()]=t[2]}t=f[e.toLowerCase()]}return t==null?null:t},getAllResponseHeaders:function(){return b===2?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return b||(l.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)m[t]=[m[t],e[t]];else E.always(e[E.status]);return this},abort:function(e){var t=e||w;return a&&a.abort(t),x(0,t),this}};d.promise(E).complete=v.add,E.success=E.done,E.error=E.fail,l.url=((e||l.url||kn)+"").replace(Ln,"").replace(Dn,Cn[1]+"//"),l.type=t.method||t.type||l.method||l.type,l.dataTypes=p.trim(l.dataType||"*").toLowerCase().match(M)||[""],l.crossDomain==null&&(n=Pn.exec(l.url.toLowerCase()),l.crossDomain=!(!n||n[1]===Cn[1]&&n[2]===Cn[2]&&(n[3]||(n[1]==="http:"?"80":"443"))===(Cn[3]||(Cn[1]==="http:"?"80":"443")))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),qn(Hn,l,t,E);if(b===2)return E;u=l.global,u&&p.active++===0&&p.event.trigger("ajaxStart"),l.type=l.type.toUpperCase(),l.hasContent=!_n.test(l.type),i=l.url,l.hasContent||(l.data&&(i=l.url+=(Tn.test(i)?"&":"?")+l.data,delete l.data),l.cache===!1&&(l.url=An.test(i)?i.replace(An,"$1_="+xn++):i+(Tn.test(i)?"&":"?")+"_="+xn++)),l.ifModified&&(p.lastModified[i]&&E.setRequestHeader("If-Modified-Since",p.lastModified[i]),p.etag[i]&&E.setRequestHeader("If-None-Match",p.etag[i])),(l.data&&l.hasContent&&l.contentType!==!1||t.contentType)&&E.setRequestHeader("Content-Type",l.contentType),E.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+jn+"; q=0.01":""):l.accepts["*"]);for(r in l.headers)E.setRequestHeader(r,l.headers[r]);if(!l.beforeSend||l.beforeSend.call(c,E,l)!==!1&&b!==2){w="abort";for(r in{success:1,error:1,complete:1})E[r](l[r]);a=qn(Bn,l,t,E);if(!a)x(-1,"No Transport");else{E.readyState=1,u&&h.trigger("ajaxSend",[E,l]),l.async&&l.timeout>0&&(o=setTimeout(function(){E.abort("timeout")},l.timeout));try{b=1,a.send(g,x)}catch(S){if(!(b<2))throw S;x(-1,S)}}return E}return E.abort()},getJSON:function(e,t,n){return p.get(e,t,n,"json")},getScript:function(e,t){return p.get(e,undefined,t,"script")}}),p.each(["get","post"],function(e,t){p[t]=function(e,n,r,i){return p.isFunction(n)&&(i=i||r,r=n,n=undefined),p.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),p.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){p.fn[t]=function(e){return this.on(t,e)}}),p._evalUrl=function(e){return p.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},p.fn.extend({wrapAll:function(e){if(p.isFunction(e))return this.each(function(t){p(this).wrapAll(e.call(this,t))});if(this[0]){var t=p(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return p.isFunction(e)?this.each(function(t){p(this).wrapInner(e.call(this,t))}):this.each(function(){var t=p(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=p.isFunction(e);return this.each(function(n){p(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()}}),p.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!c.reliableHiddenOffsets()&&(e.style&&e.style.display||p.css(e,"display"))==="none"},p.expr.filters.visible=function(e){return!p.expr.filters.hidden(e)};var Wn=/%20/g,Xn=/\[\]$/,Vn=/\r?\n/g,$n=/^(?:submit|button|image|reset|file)$/i,Jn=/^(?:input|select|textarea|keygen)/i;p.param=function(e,t){var n,r=[],i=function(e,t){t=p.isFunction(t)?t():t==null?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};t===undefined&&(t=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(e)||e.jquery&&!p.isPlainObject(e))p.each(e,function(){i(this.name,this.value)});else for(n in e)Kn(n,e[n],t,i);return r.join("&").replace(Wn,"+")},p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=p.prop(this,"elements");return e?p.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!p(this).is(":disabled")&&Jn.test(this.nodeName)&&!$n.test(e)&&(this.checked||!K.test(e))}).map(function(e,t){var n=p(this).val();return n==null?null:p.isArray(n)?p.map(n,function(e){return{name:t.name,value:e.replace(Vn,"\r\n")}}):{name:t.name,value:n.replace(Vn,"\r\n")}}).get()}}),p.ajaxSettings.xhr=e.ActiveXObject!==undefined?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zn()||er()}:Zn;var Qn=0,Gn={},Yn=p.ajaxSettings.xhr();e.ActiveXObject&&p(e).on("unload",function(){for(var e in Gn)Gn[e](undefined,!0)}),c.cors=!!Yn&&"withCredentials"in Yn,Yn=c.ajax=!!Yn,Yn&&p.ajaxTransport(function(e){if(!e.crossDomain||c.cors){var t;return{send:function(n,r){var i,s=e.xhr(),o=++Qn;s.open(e.type,e.url,e.async,e.username,e.password);if(e.xhrFields)for(i in e.xhrFields)s[i]=e.xhrFields[i];e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),!e.crossDomain&&!n["X-Requested-With"]&&(n["X-Requested-With"]="XMLHttpRequest");for(i in n)n[i]!==undefined&&s.setRequestHeader(i,n[i]+"");s.send(e.hasContent&&e.data||null),t=function(n,i){var u,a,f;if(t&&(i||s.readyState===4)){delete Gn[o],t=undefined,s.onreadystatechange=p.noop;if(i)s.readyState!==4&&s.abort();else{f={},u=s.status,typeof s.responseText=="string"&&(f.text=s.responseText);try{a=s.statusText}catch(l){a=""}!u&&e.isLocal&&!e.crossDomain?u=f.text?200:404:u===1223&&(u=204)}}f&&r(u,a,f,s.getAllResponseHeaders())},e.async?s.readyState===4?setTimeout(t):s.onreadystatechange=Gn[o]=t:t()},abort:function(){t&&t(undefined,!0)}}}}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return p.globalEval(e),e}}}),p.ajaxPrefilter("script",function(e){e.cache===undefined&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),p.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=N.head||p("head")[0]||N.documentElement;return{send:function(r,i){t=N.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){if(n||!t.readyState||/loaded|complete/.test(t.readyState))t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success")},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(undefined,!0)}}}});var tr=[],nr=/(=)\?(?=&|$)|\?\?/;p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=tr.pop()||p.expando+"_"+xn++;return this[e]=!0,e}}),p.ajaxPrefilter("json jsonp",function(t,n,r){var i,s,o,u=t.jsonp!==!1&&(nr.test(t.url)?"url":typeof t.data=="string"&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&nr.test(t.data)&&"data");if(u||t.dataTypes[0]==="jsonp")return i=t.jsonpCallback=p.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,u?t[u]=t[u].replace(nr,"$1"+i):t.jsonp!==!1&&(t.url+=(Tn.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return o||p.error(i+" was not called"),o[0]},t.dataTypes[0]="json",s=e[i],e[i]=function(){o=arguments},r.always(function(){e[i]=s,t[i]&&(t.jsonpCallback=n.jsonpCallback,tr.push(i)),o&&p.isFunction(s)&&s(o[0]),o=s=undefined}),"script"}),p.parseHTML=function(e,t,n){if(!e||typeof e!="string")return null;typeof t=="boolean"&&(n=t,t=!1),t=t||N;var r=E.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=p.buildFragment([e],t,i),i&&i.length&&p(i).remove(),p.merge([],r.childNodes))};var rr=p.fn.load;p.fn.load=function(e,t,n){if(typeof e!="string"&&rr)return rr.apply(this,arguments);var r,i,s,o=this,u=e.indexOf(" ");return u>=0&&(r=e.slice(u,e.length),e=e.slice(0,u)),p.isFunction(t)?(n=t,t=undefined):t&&typeof t=="object"&&(s="POST"),o.length>0&&p.ajax({url:e,type:s,dataType:"html",data:t}).done(function(e){i=arguments,o.html(r?p("
").append(p.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){o.each(n,i||[e.responseText,t,e])}),this},p.expr.filters.animated=function(e){return p.grep(p.timers,function(t){return e===t.elem}).length};var ir=e.document.documentElement;p.offset={setOffset:function(e,t,n){var r,i,s,o,u,a,f,l=p.css(e,"position"),c=p(e),h={};l==="static"&&(e.style.position="relative"),u=c.offset(),s=p.css(e,"top"),a=p.css(e,"left"),f=(l==="absolute"||l==="fixed")&&p.inArray("auto",[s,a])>-1,f?(r=c.position(),o=r.top,i=r.left):(o=parseFloat(s)||0,i=parseFloat(a)||0),p.isFunction(t)&&(t=t.call(e,n,u)),t.top!=null&&(h.top=t.top-u.top+o),t.left!=null&&(h.left=t.left-u.left+i),"using"in t?t.using.call(e,h):c.css(h)}},p.fn.extend({offset:function(e){if(arguments.length)return e===undefined?this:this.each(function(t){p.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],s=i&&i.ownerDocument;if(!s)return;return t=s.documentElement,p.contains(t,i)?(typeof i.getBoundingClientRect!==j&&(r=i.getBoundingClientRect()),n=sr(s),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(!this[0])return;var e,t,n={top:0,left:0},r=this[0];return p.css(r,"position")==="fixed"?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),p.nodeName(e[0],"html")||(n=e.offset()),n.top+=p.css(e[0],"borderTopWidth",!0),n.left+=p.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-p.css(r,"marginTop",!0),left:t.left-n.left-p.css(r,"marginLeft",!0)}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||ir;while(e&&!p.nodeName(e,"html")&&p.css(e,"position")==="static")e=e.offsetParent;return e||ir})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);p.fn[e]=function(r){return J(this,function(e,r,i){var s=sr(e);if(i===undefined)return s?t in s?s[t]:s.document.documentElement[r]:e[r];s?s.scrollTo(n?p(s).scrollLeft():i,n?i:p(s).scrollTop()):e[r]=i},e,r,arguments.length,null)}}),p.each(["top","left"],function(e,t){p.cssHooks[t]=Ft(c.pixelPosition,function(e,n){if(n)return n=Bt(e,t),Pt.test(n)?p(e).position()[t]+"px":n})}),p.each({Height:"height",Width:"width"},function(e,t){p.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){p.fn[r]=function(r,i){var s=arguments.length&&(n||typeof r!="boolean"),o=n||(r===!0||i===!0?"margin":"border");return J(this,function(t,n,r){var i;return p.isWindow(t)?t.document.documentElement["client"+e]:t.nodeType===9?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):r===undefined?p.css(t,n,o):p.style(t,n,r,o)},t,s?r:undefined,s,null)}})}),p.fn.size=function(){return this.length},p.fn.andSelf=p.fn.addBack,typeof define=="function"&&define.amd&&define("jquery",[],function(){return p});var or=e.jQuery,ur=e.$;return p.noConflict=function(t){return e.$===p&&(e.$=ur),t&&e.jQuery===p&&(e.jQuery=or),p},typeof t===j&&(e.jQuery=e.$=p),p}),define("jquery-private",["jquery"],function(e){return e.noConflict(!0)}),function(){function x(e){function t(t,n,r,i,s,o){for(;s>=0&&s0?0:u-1;return arguments.length<3&&(i=n[o?o[a]:a],a+=e),t(n,r,i,o,a,u)}}function C(e){return function(t,n,r){n=m(n,r);var i=E(t),s=e>0?0:i-1;for(;s>=0&&s0?u=s>=0?s:Math.max(s+a,u):a=s>=0?Math.min(s+1,a):s+a+1;else if(n&&s&&a)return s=n(r,i),r[s]===i?s:-1;if(i!==i)return s=t(o.call(r,u,a),d.isNaN),s>=0?s+u:-1;for(s=e>0?u:a-1;s>=0&&s=0&&t<=w};d.each=d.forEach=function(e,t,n){t=v(t,n);var r,i;if(S(e))for(r=0,i=e.length;r=0},d.invoke=function(e,t){var n=o.call(arguments,2),r=d.isFunction(t);return d.map(e,function(e){var i=r?t:e[t];return i==null?i:i.apply(e,n)})},d.pluck=function(e,t){return d.map(e,d.property(t))},d.where=function(e,t){return d.filter(e,d.matcher(t))},d.findWhere=function(e,t){return d.find(e,d.matcher(t))},d.max=function(e,t,n){var r=-Infinity,i=-Infinity,s,o;if(t==null&&e!=null){e=S(e)?e:d.values(e);for(var u=0,a=e.length;ur&&(r=s)}else t=m(t,n),d.each(e,function(e,n,s){o=t(e,n,s);if(o>i||o===-Infinity&&r===-Infinity)r=e,i=o});return r},d.min=function(e,t,n){var r=Infinity,i=Infinity,s,o;if(t==null&&e!=null){e=S(e)?e:d.values(e);for(var u=0,a=e.length;ur||n===void 0)return 1;if(nt?(o&&(clearTimeout(o),o=null),u=f,s=e.apply(r,i),o||(r=i=null)):!o&&n.trailing!==!1&&(o=setTimeout(a,l)),s}},d.debounce=function(e,t,n){var r,i,s,o,u,a=function(){var f=d.now()-o;f=0?r=setTimeout(a,t-f):(r=null,n||(u=e.apply(s,i),r||(s=i=null)))};return function(){s=this,i=arguments,o=d.now();var f=n&&!r;return r||(r=setTimeout(a,t)),f&&(u=e.apply(s,i),s=i=null),u}},d.wrap=function(e,t){return d.partial(t,e)},d.negate=function(e){return function(){return!e.apply(this,arguments)}},d.compose=function(){var e=arguments,t=e.length-1;return function(){var n=t,r=e[t].apply(this,arguments);while(n--)r=e[n].call(this,r);return r}},d.after=function(e,t){return function(){if(--e<1)return t.apply(this,arguments)}},d.before=function(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}},d.once=d.partial(d.before,2);var A=!{toString:null}.propertyIsEnumerable("toString"),O=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];d.keys=function(e){if(!d.isObject(e))return[];if(l)return l(e);var t=[];for(var n in e)d.has(e,n)&&t.push(n);return A&&M(e,t),t},d.allKeys=function(e){if(!d.isObject(e))return[];var t=[];for(var n in e)t.push(n);return A&&M(e,t),t},d.values=function(e){var t=d.keys(e),n=t.length,r=Array(n);for(var i=0;i":">",'"':""","'":"'","`":"`"},P=d.invert(D),H=function(e){var t=function(t){return e[t]},n="(?:"+d.keys(e).join("|")+")",r=RegExp(n),i=RegExp(n,"g");return function(e){return e=e==null?"":""+e,r.test(e)?e.replace(i,t):e}};d.escape=H(D),d.unescape=H(P),d.result=function(e,t,n){var r=e==null?void 0:e[t];return r===void 0&&(r=n),d.isFunction(r)?r.call(e):r};var B=0;d.uniqueId=function(e){var t=++B+"";return e?e+t:t},d.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var j=/(.)^/,F={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},I=/\\|'|\r|\n|\u2028|\u2029/g,q=function(e){return"\\"+F[e]};d.template=function(e,t,n){!t&&n&&(t=n),t=d.defaults({},t,d.templateSettings);var r=RegExp([(t.escape||j).source,(t.interpolate||j).source,(t.evaluate||j).source].join("|")+"|$","g"),i=0,s="__p+='";e.replace(r,function(t,n,r,o,u){return s+=e.slice(i,u).replace(I,q),i=u+t.length,n?s+="'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?s+="'+\n((__t=("+r+"))==null?'':__t)+\n'":o&&(s+="';\n"+o+"\n__p+='"),t}),s+="';\n",t.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var o=new Function(t.variable||"obj","_",s)}catch(u){throw u.source=s,u}var a=function(e){return o.call(this,e,d)},f=t.variable||"obj";return a.source="function("+f+"){\n"+s+"}",a},d.chain=function(e){var t=d(e);return t._chain=!0,t};var R=function(e,t){return e._chain?d(t).chain():t};d.mixin=function(e){d.each(d.functions(e),function(t){var n=d[t]=e[t];d.prototype[t]=function(){var e=[this._wrapped];return s.apply(e,arguments),R(this,n.apply(d,e))}})},d.mixin(d),d.each(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=n[e];d.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e==="shift"||e==="splice")&&n.length===0&&delete n[0],R(this,n)}}),d.each(["concat","join","slice"],function(e){var t=n[e];d.prototype[e]=function(){return R(this,t.apply(this._wrapped,arguments))}}),d.prototype.value=function(){return this._wrapped},d.prototype.valueOf=d.prototype.toJSON=d.prototype.value,d.prototype.toString=function(){return""+this._wrapped},typeof define=="function"&&define.amd&&define("underscore",[],function(){return d})}.call(this),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){var n=this.toString();if(t===undefined||t>n.length)t=n.length;t-=e.length;var r=n.indexOf(e,t);return r!==-1&&r===t}),String.prototype.splitOnce=function(e){var t=this.split(e);return[t.shift(),t.join(e)]},String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}),define("polyfill",function(){}),define("text",["module"],function(e){"use strict";var t,n,r,i,s,o=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],u=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,a=/]*>\s*([\s\S]+)\s*<\/body>/im,f=typeof location!="undefined"&&location.href,l=f&&location.protocol&&location.protocol.replace(/\:/,""),c=f&&location.hostname,h=f&&(location.port||undefined),p={},d=e.config&&e.config()||{};t={version:"2.0.14",strip:function(e){if(e){e=e.replace(u,"");var t=e.match(a);t&&(e=t[1])}else e="";return e},jsEscape:function(e){return e.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:d.createXhr||function(){var e,t,n;if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")for(t=0;t<3;t+=1){n=o[t];try{e=new ActiveXObject(n)}catch(r){}if(e){o=[n];break}}return e},parseName:function(e){var t,n,r,i=!1,s=e.lastIndexOf("."),o=e.indexOf("./")===0||e.indexOf("../")===0;return s!==-1&&(!o||s>1)?(t=e.substring(0,s),n=e.substring(s+1)):t=e,r=n||t,s=r.indexOf("!"),s!==-1&&(i=r.substring(s+1)==="strip",r=r.substring(0,s),n?n=r:t=r),{moduleName:t,ext:n,strip:i}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(e,n,r,i){var s,o,u,a=t.xdRegExp.exec(e);return a?(s=a[2],o=a[3],o=o.split(":"),u=o[1],o=o[0],(!s||s===n)&&(!o||o.toLowerCase()===r.toLowerCase())&&(!u&&!o||u===i)):!0},finishLoad:function(e,n,r,i){r=n?t.strip(r):r,d.isBuild&&(p[e]=r),i(r)},load:function(e,n,r,i){if(i&&i.isBuild&&!i.inlineText){r();return}d.isBuild=i&&i.isBuild;var s=t.parseName(e),o=s.moduleName+(s.ext?"."+s.ext:""),u=n.toUrl(o),a=d.useXhr||t.useXhr;if(u.indexOf("empty:")===0){r();return}!f||a(u,l,c,h)?t.get(u,function(n){t.finishLoad(e,s.strip,n,r)},function(e){r.error&&r.error(e)}):n([o],function(e){t.finishLoad(s.moduleName+"."+s.ext,s.strip,e,r)})},write:function(e,n,r,i){if(p.hasOwnProperty(n)){var s=t.jsEscape(p[n]);r.asModule(e+"!"+n,"define(function () { return '"+s+"';});\n")}},writeFile:function(e,n,r,i,s){var o=t.parseName(n),u=o.ext?"."+o.ext:"",a=o.moduleName+u,f=r.toUrl(o.moduleName+u)+".js";t.load(a,r,function(n){var r=function(e){return i(f,e)};r.asModule=function(e,t){return i.asModule(e,f,t)},t.write(e,a,r,s)},s)}};if(d.env==="node"||!d.env&&typeof process!="undefined"&&process.versions&&!!process.versions.node&&!process.versions["node-webkit"]&&!process.versions["atom-shell"])n=require.nodeRequire("fs"),t.get=function(e,t,r){try{var i=n.readFileSync(e,"utf8");i[0]===""&&(i=i.substring(1)),t(i)}catch(s){r&&r(s)}};else if(d.env==="xhr"||!d.env&&t.createXhr())t.get=function(e,n,r,i){var s=t.createXhr(),o;s.open("GET",e,!0);if(i)for(o in i)i.hasOwnProperty(o)&&s.setRequestHeader(o.toLowerCase(),i[o]);d.onXhr&&d.onXhr(s,e),s.onreadystatechange=function(t){var i,o;s.readyState===4&&(i=s.status||0,i>399&&i<600?(o=new Error(e+" HTTP status: "+i),o.xhr=s,r&&r(o)):n(s.responseText),d.onXhrComplete&&d.onXhrComplete(s,e))},s.send(null)};else if(d.env==="rhino"||!d.env&&typeof Packages!="undefined"&&typeof java!="undefined")t.get=function(e,t){var n,r,i="utf-8",s=new java.io.File(e),o=java.lang.System.getProperty("line.separator"),u=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(s),i)),a="";try{n=new java.lang.StringBuffer,r=u.readLine(),r&&r.length()&&r.charAt(0)===65279&&(r=r.substring(1)),r!==null&&n.append(r);while((r=u.readLine())!==null)n.append(o),n.append(r);a=String(n.toString())}finally{u.close()}t(a)};else if(d.env==="xpconnect"||!d.env&&typeof Components!="undefined"&&Components.classes&&Components.interfaces)r=Components.classes,i=Components.interfaces,Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),s="@mozilla.org/windows-registry-key;1"in r,t.get=function(e,t){var n,o,u,a={};s&&(e=e.replace(/\//g,"\\")),u=new FileUtils.File(e);try{n=r["@mozilla.org/network/file-input-stream;1"].createInstance(i.nsIFileInputStream),n.init(u,1,0,!1),o=r["@mozilla.org/intl/converter-input-stream;1"].createInstance(i.nsIConverterInputStream),o.init(n,"utf-8",n.available(),i.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),o.readString(n.available(),a),o.close(),n.close(),t(a.value)}catch(f){throw new Error((u&&u.path||"")+": "+f)}};return t}),define("tpl",["text","underscore"],function(e,t){"use strict";var n={},r="define('{pluginName}!{moduleName}', function () { return {source}; });\n";return{version:"0.0.2",load:function(r,i,s,o){o.tpl&&o.tpl.templateSettings&&(t.templateSettings=o.tpl.templateSettings);if(n[r])s(n[r]);else{var u=o.tpl&&o.tpl.extension||".html",a=o.tpl&&o.tpl.path||"";e.load(a+r+u,i,function(e){n[r]=t.template(e),s(n[r])},o)}},write:function(e,t,i){var s=n[t],o=s&&s.source;o&&i.asModule(e+"!"+t,r.replace("{pluginName}",e).replace("{moduleName}",t).replace("{source}",o))}}}),define("tpl!action",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='
\n '+((__t=time)==null?"":__t)+" **"+((__t=username)==null?"":__t)+' \n '+((__t=message)==null?"":__t)+"\n
\n";return __p}}),define("tpl!add_contact_dropdown",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='\n';return __p}}),define("tpl!add_contact_form",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='
  • \n
    \n \n \n
    \n
  • \n";return __p}}),define("tpl!change_status_message",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='
    \n
    \n \n \n \n \n
    \n
    \n';return __p}}),define("tpl!chat_status",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='\n';return __p}}),define("tpl!chatarea",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='
    \n
    \n
    \n ',show_toolbar&&(__p+='\n
      \n '),__p+='\n \n";return __p}}),define("tpl!form_username",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+="",label&&(__p+="\n\n"),__p+='\n
      \n '+((__t=domain)==null?"":__t)+"\n
      \n";return __p}}),define("tpl!group_header",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+=''+((__t=label_group)==null?"":__t)+"\n";return __p}}),define("tpl!info",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='
      '+((__t=message)==null?"":__t)+"
      \n";return __p}}),define("tpl!login_panel",[],function(){return function(obj){var __t,__p="",__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,"")};with(obj||{})__p+='\n ',auto_login&&(__p+='\n